2 拖地机器人系统的总体方案设计
本文使用ATmega2560作为控制板的核心芯片,并使用RS232串口通讯电路与电脑进行通讯,将数据和程序通过电脑传输到芯片中。驱动板是由L298N和ULN2003芯片为主的电路组合而成,再增加电量监控和显示的相关电路,最终实现避障行进,抹布的运动和电量显示的功能,系统的整体框架如图2-1所示。
图2.1 系统整体框架图
2.1 控制板的方案设计
控制板的核心芯片需要具备强大的计算能力,可以完成多项任务的同时工作,任务包括传感器的数据分析和逻辑判断,从而完成对电机驱动芯片的控制使拖地机器人进行避障行进;电量的监控和显示;抹布转动电机的驱动芯片控制等。控制芯片在进行工作任务之前需要对芯片进行程序的输入和工作仿真,因此控制板还需要能够与电脑进行通讯的电路。由于此拖地机器人需要用到的电机数量比较多,因此需要12V的电压驱动,而大多数控制芯片的输入电压是5V或者3.3V,因此还需要降压芯片。
鉴于以上要求,本文选用以ATmega2560芯片为核心的Arduino Mega 2560,它的优点如下:
(1)Arduino Mega 2560集成了RS232串口通讯电路,拥有非常多的数字I/O口和模拟I/O口,为以后功能的扩展开发提供了可行性;
(2)Arduino自带1.1V的参考电压,可以直接用来做电量监控而不需要设计多余的芯片电路;
(3)Arduino的最大优点是自带非常丰富的库函数,编程时不需要进行复杂的底层代码设计,使编程的难度大大降低。
2.2 驱动板的方案设计
由于驱动电机需要比较大的电流,而Arduino的输出电流只有几十毫安,远远不足以驱动电机,所以需要电机驱动芯片来协助。Arduino是一块已经整合完成的控制板,因此需要另外做一块驱动板,驱动板主要包括以下电路:
(1)L298N电机驱动模块
拖地机器人在进行拖地工作时需要做避障行进,L298N是一块普遍使用的电机驱动芯片,它可以控制两个直流减速电机,可以帮助Arduino对两个电机的转速分别进行调整,控制机器人的直行和转弯[11]。
(2)ULN2003电机驱动模块
当拖地机器人工作时抹布是在底面做履带式运动,所以驱动抹布转动轴需要比较大的力。步进电机在低速时具有比较大的扭矩,因此我们就使用步进电机来驱动抹布转动轴。虽然步进电机也可以用L298N来驱动,但对于抹布转动轴电机来说并不需要复杂的速度变化,因此选用由七个达林顿管组成的ULN2003最为合适,它既能驱动步进电机,且芯片价格较低,可以节约成本。
(3)电量监控电路
Arduino Mega 2560内部自带1.1V参考电压,可以用来监控电源电压,但是Arduino允许输入的电压只有5V[12],对于本设计来说无法将电源电压直接接入Arduino的模拟I/O口,因此需要将电源电压用电阻分压到5V以下。
(4)LCD1602显示屏模块
拖地机器人需要将电量情况反映给使用者查看,所以使用一块LCD1602显示屏来显示剩余电量。由于LCD1602显示屏有16个接口,如果直接接入Arduino就会占用太多I/O口,所以在LCD1602显示屏和Arduino之间使用了一块PCF8574T芯片,使显示屏可以通过IIC通讯方式与Arduino连接,这种通讯方式只占用4个I/O口,不会浪费接口资源[13]。
(5)HC-SR04超声波传感器
拖地机器人如果想要完成避障行进工作,就必须要有传感器将沿途的障碍物反映给控制芯片,因此本设计采用了HC-SR04超声波传感器。此传感器通过两个I/O口与Arduino进行通讯,将电源电路设计在驱动板中。
(6)LM2596S降压芯片
不论是各种芯片还是传感器,它们的供电电压都是5V,因此需要一块稳定的降压芯片将12V电压转换为5V。
2.3 本章小结
本章主要是对拖地机器人的电路进行一个总体方案的概述,根据设计要求罗列了各个电路的设计,并对电路的总体结构和设计思路进行了说明。
3 拖地机器人系统的相关元器件
3.1 控制板的元器件
本设计中需要通过主控芯片控制的元器件有传感器,电机,显示屏和串口通讯等模块,因此控制芯片需要拥有较多的I/O口,且需要强大的控制能力才能对如此多的工作量进行同时控制。为了选择合适的控制芯片,本小组在设计初期对Intel公司的8051系列单片机、ATMEL公司的AVR系列单片机和ST公司的STM系列单片机进行了比较。虽然8051单片机具有操作简单且容易上手,适合新手使用,但存在着运行速度较慢的缺点,不适合本设计;STM系列单片机以STM32为代表,是单片机中性能较高的产品,它接口丰富且运算速度较快,但在实际操作时需要对控制对象进行复杂的底层设计,因此需要花费较多时间才能熟练掌握,对于时间紧迫的毕业设计来说不太适合;以AVR系列单片机为基础的Arduino具有丰富的库函数,编程时不需要进行繁琐的底层设计,只需对函数进行调用即可,对编程设计的同学给予了很大的方便,且系列产品中也有接口丰富的产品,具有开发简单易于上手,功能强大运算速度快的优点,使我们最终选择了此系列产品作为本次设计的控制板[14]。
Arduino Mega 2560控制板是一块灵活便捷,便于上手的开源开发板,具有54路数字接口和16路模拟接口,其中16路数字接口可以作为PWM输出,除此之外还有4路UART接口,一个16MHz晶振器,一个USB口和复位按钮。虽然本设计使用的是现成的开发板,但对于控制芯片和最小系统的搭建都经过了研究和对比,最终才采用此款开发板,接下来将对控制板的芯片和电路组成进行说明。
3.1.1 控制芯片
ATmega系列是一种基于AVR的低功耗8位CMOS微控制器,是ATMEL公司生产的AVR单片机系列高档型号。该系列单片机集成度较高,使用它可以减少外围电路,它具有比传统单片机更强大的CPU,具有本设计需要的大多数功能,因此选用此系列单片机作为本次设计的控制核心芯片[15]。
本设计需要用到多个传感器,并且还要控制多个电机驱动模块和显示屏模块,需要多个I/O接口。ATmega2560作为该系列产品中的一款较为强大的芯片,具有接口众多且控制功能强大的优点,它不仅可以满足目前的设计要求,还能为后续的扩展设计提供便利。ATmega2560主要有以下特点:
(1)具有多达54路数字I/O接口和16个模拟I/O接口,适合需要大量I/O接口的设计;
(2)具有8位中央处理单元,频率为16MHz,能够快速响应中断并进行处理;
(3)采用5V供电电压,具有上电复位和可编程欠压检测;
(4)具有256k字节的闪存可储存程序,其中8kb用于bootloader,可选Boot代码区具有独立锁定位,可做到真正的读写同时操作,它还有8kb的SRAM和4kb的EEPROM,并具有64kb的可选外部储存空间;
(5)提供14路8位PWM输出;
(6)具有AREF模拟输出参考电压,可实现精确度较高的电压监控;
(7)内置4路UART,可以与外部进行串口通信,除此之外还有TWI接口,可兼容IIC总线。
芯片选用100引脚的贴片封装,管脚图如图3.1所示。
图3.1 ATmega2560引脚图
4 电路设计
拖地机器人的系统主要分为两部分,第一部分是控制部分,该部分以ATmega2560为核心,围绕它设计最小系统电路,并根据本设计添加需要的功能。第二部分是驱动板部分,该部分集成了电机驱动元器件和显示屏电路。
4.1 控制板的电路设计
4.1.1 控制芯片最小系统电路设计
本文中使用的核心控制芯片是ATmega2560,它具有控制功能强大,I/O接口多的特点,且容易开发,非常适合本设计。
ATmega2560作为本设计的核心控制芯片,整个电路都是围绕其搭建。首要任务是使芯片能够工作,因此先对其的最小系统电路进行搭建设计。将电源接口与5V电源进行连接,并连接去耦电容接地,稳定电源电压,减少电源杂波对芯片的影响。将每个接地端都共同接地。AREF作为基准电压外部输入引脚,将其串联滤波电容并接地。XTAL1和XTAL2用来提供外部振荡源给片内的时钟电路[23],将在下文进行具体说明。控制芯片的最小系统如图4.1所示。
图4.1 ATmega2560最小系统
5 电路板实物测试和仿真
以Altium Designer 18设计的电路原理图为基础完成的电路板焊接完成后,需要进行实物测试。由于此次设计是在家中完成,与小组其他成员各自在不同的地方,因此当电路板测试完成后无法马上进行所有器件的整合测试。鉴于这些原因本次设计除了进行实物测试之外还需要进行仿真测试,确保结构设计的同学在进行组装调试的时候不会出现电路设计和软件设计上的问题。
5.1 电路板的实物测试
鉴定一块电路板的好坏就是对其电子元器件进行通路测试和功能测试,确保其能完成设计的功能。由于此块电路板是手工焊接完成的,而且有贴片封装的元器件,焊接完成后需要对引脚进行检查,确保引脚不会连在一起。对引脚检查完毕后将万用表的量程调到蜂鸣档,即如图5.1所示档位,两个表笔碰到一起时万用表会发出“哔”的连续蜂鸣声,当表笔检测的电路是通路时万用表也会发出蜂鸣声,而电路为断路时万用表则不会发出声音,根据此原理使用此档位对电路板中的各个元器件进行通路的测试。对通路的检查完毕之后将万用表调至电压端,由于此电路的供电电池为12V锂电池,因此将万用表调至20V的档位即可,使用此档位对电路板的输出电压端进行测试,检测其是否能输出原理图所设计的输出电压。测试结果如图5.2,图5.3和图5.4所示,5V电压的输出端检测出4.92V电压,4V电压输出端检测出3.74V电压,12V电压输出端检测出11.32V电压,由于电池不是满电状态,且万用表存在的误差也会影响测试的结果,经多次测试,认为电路的输出电压符合原理图的设计。
图5.1 蜂鸣档
图5.2 输出5V电压的接口测试
图5.3 输出4V电压的接口测试
文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。