基于Arduino的智能寻迹小车设计
本文基于Arduino平台设计了智能寻迹小车系统。硬件方面采用Arduino Uno开发板作为核心控制器,配备14个数字I/O口和6个模拟输入口,通过转接板连接电机、寻迹模块等组件。软件设计基于C/C++混合编程语言,利用Arduino IDE开发环境实现控制算法。项目调试中解决了小车转弯控制和程序下载等关键问题,通过PWM调速(最优值150)实现差速转向。系统测试表明,该设计能有效完成寻迹功能,
2 项目硬件设计
2.1 Arduino平台简介
Arduino Uno是基于ATmega328P单片机的开发板。它有14个数字输入/输出引脚,6个模拟输入引脚,一个16 MHz的晶体振荡器,一个USB接口,一个DC电源接口,一个ICSP接口,一个复位按钮。它包含了单片机最小系统的全部内容,只用简单地连接到计算机的USB接口,或者使用电源适配器,甚至是电池,就可以驱动[9]。
在硬件方面,选择了Arduino Uno这块开发板,“Uno”在意大利语是“一”的意思,这是Arduino平台的第一块开发板,因此在功能反面这块开发板功能全、性能好,此后的Arduino开发板都是基于“Uno”的衍生产品。在软件方面Arduino平台开发出一套自己专门的Arduino IDE这就完成了Arduino平台初版的开发标准,也为后来的Arduino其他开发板奠定了基础。Arduino Uno的主要数据如表2.1.1所示。
3 项目的软件设计
3.1 Arduino的开发环境
Arduino的编程语言是基于C语言开发的,不过后来又引入C++的了面向对象的变成思想,这使得现在的Arduino核心库文件采用了C和C++混合而成[18]。
Arduino的编程语言,是指Arduino的给广大开发者们提供的接口(英文名是API)的集合。在Java中接口是一系列方法的声明,可以被任何人实现这个接口,这和C++的面向对象的编程思想有着异曲同工之妙。因此,即使我们不懂在传统的开发方式中,不懂配置各个寄存之间的关系,只要我们调用的相应的接口,底层的代码直接就帮我们配置了各个繁杂的寄存器。如下图3.1所示就是一个最基本的Arduino开发环境。
4 项目调试
4.1 项目硬件调试
电路板焊接,按照元器件的判断方式按照长正短负的方式进行区分安装,逐一焊接。焊接好后,接通5V电源,首次通电需马上断电,检查指示灯提示,以防出现焊接错误造成器件损毁。焊接好的转接板和Arduino开发板如下图4.1所示。
图4.1 (左) Arduino开发板 (右)转接板
把转接板按照Arduino开发板上的孔位对齐,接到Arduino开发板上,如下图4.2所示。
图4.2 Arduino开发板和转接板对接图
硬件部分整体联调,将小车的电机、主板、寻迹模块等依次用L形固定架固定在小车上,最终小车的整体如下图4.3所示。
4.3 基于Arduino的智能寻迹小车整体图
4.2 项目软件调试
(1)小车的转弯问题
由于小车没有传统汽车的差速器,为了解决这一难题,我查阅了大量资料,学习后发现可以在程序中控制,当小车遇到弯路的时,使一侧车轮前进,另一侧车轮停止,这样两侧车轮实现一个速度差来实现转弯。在程序中体现如下图4.4小车的转弯算法所示。经过多次的调试发现,当小车的PWM调速值较低的时候,小车整体的行进速度不快,性能较差,当PWM调速比例过高,会导致小车转弯速度过快,导致小车跑出黑线寻迹路线,由此把小车PWM调速确定在150。
(2)程序下载问题
当编写好程序并编译通过后,通过USB连接到Arduino开发板,发现并不能连接并下载到开发板中,为此我查阅了大量资料,并且实践到项目中,最终总结出Arduino正确使用方法。
首先需要建立一个新的项目,选择使用的Arduino平台的类型。在主界面的工具—>开发板—>Arduino Uno,可以编写一个新的文件,编写完程序后进行验证,验证就是检测程序是否有错误,如果有错误就不能下载到Arduino开发板中。验证通过后可以通过USB端口连接直接点击上传,就可以把写好的程序下载到Arduino当中。下载之前需要检查程序是否安装了驱动,Arduino的安装包中自带了Windows的安装驱动,我们只需把他安装到自己的电脑中,在工具—>端口中选择正确的连接端口,就可以把程序正确的下载到Arduino中。若程序正确的验证并且成功的下载到Arduino平台中。
文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。
更多推荐



所有评论(0)