水中机器人的崛起:仿生机器鱼的系统设计
本文根据国际机器人大赛的三关节机器鱼的设计思路设计了双关节机器鱼的控制系统。仿生机器鱼在水质检测、海洋资源勘测、水下搜救方面发挥了重要的作用。本系统具有成本低廉、功耗低、体积轻巧的特性。
1 机器鱼控制系统设计方案
机器鱼控制系统总体结构如图1所示。系统主要分为指令发送端和指令执行端,两部分均以CC1110无线单片机作为核心控制器,负责指令的发送、接收、数据处理,进而控制机器鱼的相关执行机构工作。指令发送端的指令来自上位机,USB串口转换电路将USB接口模拟成串口,实现上位机与CC1110的串口通信。电源模块完成电压的变换,为相关电路提供各种合适的工作电压。存储器模块存储机器鱼的相关信息。舵机驱动模块为执行机构舵机提供合适的控制信号。
图1 机器鱼控制系统总体结构图
2 机器鱼控制系统硬件设计2.1 USB串口转换电路
CH341T是一款USB总线转接芯片,通过简单的接线即可实现USB接口和串口之间的转换,此时无需改动上位机与下位机的程序,通过USB接口即可实现上位机与下位机的串行通信。USB串口转换电路原理图如图2所示。
图2 USB串口转换电路
在本设计电路中,将CH341T芯片的SDA和SCL引脚悬空,此时芯片功能为USB转异步串口,模拟计算机串口;CH341T芯片的TXD和RXD两个引脚分别连接到CC1110无线单片机的RX(P0.2)和TX(P0.3)两个引脚;TEN#引脚为串口发送使能端,接地使CH341T能发送数据。CH341T芯片的地要和CC1110无线单片机的地相连。CH341T不需外接电源,直接由上位机通过USB口提供+5V电源。2.2 DC-DC电压变换电路
指令发送端由USB提供5V电压,指令执行端由电池提供5V直流电压。电池提供的5V直流电压可以直接为舵机驱动芯片以及舵机供电。而系统内部CC1110无线单片机正常工作电压范围是2.0~3.6V,存储器芯片24AA01正常工作电压范围是1.7~5.5V,这里可以将二者的工作电压选择为3.3V.为此,专门设计了一个DC-DC电压变换电路,将5V直流电压变换为3.3V直流电压后再提供给CC1110无线单片机和24AA01芯片,以保证系统的正常工作。这里采用AMS公司生产的AMS1117芯片设计了电压变换电路,具体的DC-DC电压变换电路如图3所示。
图3 DC-DC电压变换电路
在电压输入端接有22 μF电解电容及电压输出端接有47 μF电解电容,以保证输出电压的稳定。
2.3 CC1110无线收发电路
在机器鱼控制系统中,机器鱼指令的发送、接收以及指令解析执行是系统的关键部分。而现有的无线收发系统很多都是采用单片机和RF收发模块组成,这样整个控制电路的体积较大,将会使机器鱼的体积变大。为了将机器鱼体积做小以及将功耗降低,这里采用TI公司生产的一种低成本、低功耗的CC1110无线单片机作为指令收发执行的核心器件。CC1110无线收发电路如图4所示。
图4 CC1110无线收发电路
在无线收发电路中,电容C1-C6为电源去耦电容;电阻R2和电容C18构成上电复位电路;电容C7、C9以及电感L1、L2构成BALUN阻抗匹配电路,将输出阻抗转换为50 Ω标准天线阻抗;Y1、C13以及C14构成CC1110高速时钟源;Y2、C15以及C16构成CC1110低速时钟源:JATG接口用于在线调试与下载程序;PWM01(P1.0)和PWM02(P1.1)接舵机驱动电路的输入;RX(P0.2)和TX(P0.3)接USB串口转换电路,用于串口通信;2401_WP(P0.4)、2401_SCL(P0.5)以及2401_SDA(P0.6)接存储器模块,控制存储器的读写。2.4 舵机驱动电路
在机器鱼控制系统中,我们利用舵机的摆动来模拟机器鱼的游动。而无线单片机产生的PWM信号不足以驱动舵机,为保证舵机正常工作,要专门设计一个舵机驱动电路。舵机驱动电路采用了74AHCT1G04芯片,舵机驱动电路原理图如图5所示。
图5 舵机驱动电路
2.5 存储器电路在机器鱼初始化阶段以及在机器鱼控制过程中需要存储一些参数,因此要有专门的存储模块。由于参数的数据量比较小,这里采用I2C接口的24AA01存储芯片,存储器电路原理图如图6所示。
图6 存储器电路
3 机器鱼控制系统软件设计在机器鱼控制系统中软件设计采用模块化设计,主要包括串口通信程序、无线通信程序、存储器读写程序以及舵机驱动程序。
3.1 串口通信程序设计
串口通信程序完成CC1110无线单片机与上位机PC的串行通信。串口接收数据采用中断的方式,串口发送数据采用查询的方式。串口收发程序流程图如图7所示。
图7 串口收发程序流程图
在硬件设计中采用了CH341T串口转换电路模拟串口,为了配合硬件的使用,需要在上位机中安装驱动程序,驱动程序可以从南京沁恒电子有限公司网站上下载。
3.2 无线通信程序设计
在设计无线通信程序前,需要配置CC1110的高频部分,以确定无线收发器的收发频率、发送功率、传输速率以及调制方式等。由于CC11 10高频配置较为复杂,这里可以采用TI公司的SmartRF Studio软件来进行配置。通过设置寄存器FREQ2、FREQ1和FREQ0将CC1110的收发频率选择在433MHz频段;通过设置PA TABLE0将CC1110的发送功率设置为10dBm,这样可以提高发射距离;由于该控制系统的指令数据量较小,可以选择较低的传输速率,不仅可以提高传输距离,而且可以降低能耗;调制方式选择2-FSK方式。
无线通信程序包括无线发送程序和无线接收程序两部分。无线发送程序将待发送的数据通过无线的方式发送出去,无线接收程序可以接收同频率的发射机发送的数据。无线通信程序流程图如图8所示。
图8 无线通信程序流程图
3.3 指令发送端主程序设计
在机器鱼控制系统的指令发送端,实现的功能包括串口收发数据和无线收发数据。指令发送端主程序流程图如图9所示。
图9 指令发送端主程序流程图
指令数据无线发送以后,指令发送端开始等待接收指令执行端反馈的数据。指令发送端接收到反馈数据后调用串口发送程序将反馈数据发回到PC,将反馈数据与指令数据比对,如果反馈数据与发送数据一致,则认为指令数据发送成功,否则重新发送指令数据。如果长时间没有接收到反馈数据,则重新发送指令数据。
3.4 指令执行端主程序设计
在机器鱼控制系统指令执行端,主要包含指令数据的接收、指令数据的反馈发送、存储器的读写以及舵机的控制等。其中,舵机的控制是最为关键的部分。在控制舵机前要先对指令数据进行解析,计算出舵机的控制量。由于舵机采用级联的方式来模仿鱼体的摆动,因此舵机间关节的运动规律可以采用以下数学模型:
式中,Ka为振幅系数,Ki为偏斜系数,f为摆动频率,φi为关节滞后角,Aimax为关节摆动幅度,t为时间。以上参数即为舵机的主要控制参数。在程序设计过程中,一般取Ka≤0.5,Ki、f、φi以及Aimax四个参数根据具体的速度指令和方向指令来计算出相应的控制量。指令执行端主程序流程图如图10所示。
图10 指令执行端主程序流程图