智能机器鱼控制方案

机器鱼“小白”所采用的主控芯片是使用的基于ATmega328单片机的Arduino nano芯片,该款芯片体积小,功能强大,发热功耗低,在这里主要实现四个方面的功能。

机器鱼“小白”所采用的主控芯片是使用的基于ATmega328单片机的Arduino nano芯片,该款芯片体积小,功能强大,发热功耗低,在这里主要实现四个方面的功能。

从其中引出两个引脚分别控制1号舵机和2号舵机。

使用其RX和TX端口实现和蓝牙模块的通信。

引出两个引脚来分别控制A4988丝杠驱动器的direction和stepper 两个接口。

使用其两个引脚来触发和接收红外传感器的测距信号,并且将测得的数值反馈到程序中,判断是否需要执行转弯操作。

该芯片的单片机原理图和实物图片分别如图所示。

智能机器鱼控制方案

单片机原理图

智能机器鱼控制方案

芯片实物图

Arduino通过产生PWM波来驱动舵机,在平游速度下,尾部的一号舵机从-30°到30°范围内,以3rad/s的角速度转动,然后在30P到-30°的范围内,以3rad/s的角速度转回来。二号舵机执行同样的程序,但是二号舵机相对于一号舵机滞后15ms。此为一个运动控制的循环,循环一次尾鳍往左、往右分别拍动一次。尾部的摆动程序控制由多个循环语句体组成。

改变其摆动的幅度和摆动速度,均可以影响其实际游动速度。在快速游动下,两台舵机转动角速度为5m/s,二号舵机相对于一号舵机滯后10m/s。尾部舵机摆动如下图所示。

智能机器鱼控制方案

舵机摆动图

控制转弯通过改变两台舵机左右摆动的实际轴线来实现。在向前游动模式下,其尾部推力的方向同鱼身体轴线方向重合;向左转弯时,尾部推力方向和鱼身体轴线方向产生夹角,推力角右偏。一号舵机从0°以3rad/s的角速度转到30°,8ms后,二号舵机也从0°以相同的角速度转到30°,此为向左转弯程序的- -个控制循环,向右控制同理,改变尾部摆动方向使之右转。