1讲一下这个项目:小车驱动模块(TB6612FNG)、控制模块(FPGA)、感应模块(红外传感器)、电源模块(LM2596S-ADJ 降压)
控制模块用vhdl语言编写,主要由pwm波输出模块,时钟分频模块,循迹驱动模块,由感应模块输入不同的信号让控制模块进入不同状态,状态输出不同的调速和两侧轮子转向的信号,pwm波输出模块接受调速信号输出不同pwm波给电机驱动芯片控制转速;正反转信号直接输出给电机驱动芯片控制正反转。
2实现结果:能识别黑线还有十字和t字路口,通过不同的按键选择从而进入不同的药房,然后能在放完药调头回到起点。
3有时间的限定,还有行进稳定和路线正确的要求。
电路图
几个时钟分频模块
通过调节高电平占空比调节速度
这个代码目的为了实现运送药品到远端病房并返回到药房。
输入为寻迹模块,输出信号控制TB66FNG芯片工作。
转弯我们根据电机驱动模块的真值表设计了外圈正转、内圈反转的转弯方式。其他情况则是给一个很小的动力用来挣脱当前情况以防止中途受到干扰(如十字路口的全亮状态)导致小车无故停止和转弯。
小车寻迹模块四个灯为X2,X1,X3,X4,当小车接触到黑色行驶时,中间两个灯亮,信号为“1010”。根据TB6612FNG电机驱动控制逻辑表,运用正转即左一,左二为‘01’和‘01’,右一,右二为‘01’‘01’时小车直行。
当“1110”“1100”“1101”“1000”时,左边车轮反转,右边车轮正转,左一,左二为‘10’和‘10’,右一,右二为‘01’‘01’,小车左转
当“0111”“0011”“1011”时,左边车轮正转,右边车轮反转,左一,左二为‘01’和‘01’,右一,右二为‘10’‘10’,小车右转
当“0000”时,检测到全黑,小车应该在十字路口直行,T形路口向左转,所有灯应该全部亮,此时,左一反转为‘10’,左二不动为‘00’,右一不动为‘00’,右二正转为‘01’。
当“1111”时,检测到全白,小车应该在T形路口向左转,所有灯应该全部暗,此时,左一反转为‘10’,左二不动为‘00’,右一不动为‘00’,右二正转为‘01’。
当“0101”“0010”“0000”时,小车进入药房,原地向左转180度返回。
若出现其他输入信号,给小车一个慢的速度。
占空比模块
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。