
任务三 智能鼠的运动姿态控制
TQD-Micromouse-JD智能鼠电动机驱动电路如图1-4-10所示。其中BA6845FS是步进电动机驱动芯片,包含两个H桥电路,最大驱动电流为1A,且在输入逻辑的控制下输出有三种模式:正向、反向和停止。

图1-4-10 电动机驱动电路
BA6845FS输入控制逻辑与输出信号的关系见表1-4-1。
表1-4-1 BA6845FS输入控制逻辑与输出信号的关系

实验一 智能鼠跑起来
读者经过电动机驱动的学习,已经知道了电动机有多种参数需要考虑:
(1)电动机状态:启动还是停止。
(2)运行方向:向前还是向后。
(3)速度:快还是慢。
(4)需要转动的步数。
(5)已经转动的步数。
因此,可以建立一个函数结构体来存储这些参数。
结构体和其他基础数据类型一样(如int类型、char类型),只不过结构体可以根据需要进行自定义。结构体在函数中的作用是封装。封装的好处就是可以再次利用,让使用者不必关心结构体具体是什么,只要根据定义使用即可。
视频

实验:智能鼠跑起来

流程图:本实验根据智能鼠运行状态、运行方向、速度、需要转动的步数、已经转动的步数来控制智能鼠的运行,如图1-4-11所示。

图1-4-11 智能鼠运行流程图
主程序:


实验二 电动机差速运行控制
视频

实验:电动机差速运行
智能鼠左右电动机速度相同时,它会沿着直线行走;否则,就会根据速度的差值大小转圈。下面就通过实验来尝试控制智能鼠转弯。
流程图:首先设定左右电动机的速度,根据速度差值来控制智能鼠转弯。

图1-4-12 智能鼠差速运行流程图
主程序:


实验三 电动机运行路程控制
通过上面两个实验已经学会了电动机的驱动方法和速度控制方法,那么如何确定智能鼠在迷宫中的位置呢?修改“智能鼠跑起来”程序中的__GmRight.uiPulse和__GmLeft.uiPulse均为500,观察智能鼠的运行距离;再次修改为750观察运行距离。通过实验得出结论,在轮毂不变的情况下,智能鼠运行500步可以走过四个单元格,运行750步可以走过六个单元格。智能鼠正是通过记录运行的步数,结合轮毂直径、每个单元格需要的步数,得出运行的单元格数量的。
TQD-Micromouse-JD在使用标准轮毂的情况下,运行一个单元格需要125步。



流程图:本实验通过记录运行的步数来计算当前的单元格数量,并通过7289显示出来,如图1-4-13所示。

图1-4-13 智能鼠运行路程控制流程图
主程序:


思考与总结
(1)智能鼠是如何实现人机交互的?
(2)红外传感器的作用是什么?如何提高检测精度?
(3)电动机共有哪几种类型?
(4)PWM技术常用作电动机的调速,具有响应迅速、精度高等优点。