新闻  |   论坛  |   博客  |   在线研讨会
使用Arduino开发板设计的智能小车
utmel | 2023-06-02 10:36:32    阅读:1588   发布文章

  芯片是从很早的六七十年代简单的单片机,发展到现在先进的处理器,已经变得越来越强大。它给人们的生活带来了不少的便利,不管是电脑,电视,空调,手机还是相机,都离不开芯片技术的发展和进步。但是随着人们的要求越来越高,对芯片的性能要求也不断提高,51单片机陈旧的结构和落后的性能已经越来越不能满足人们对知识的渴望,所以一种崭新的硬件平台应运而生——Arduino开发板。本文将介绍Arduino开发板的一些知识以及利用其各种便利特性设计的一款智能小车。


  1.Arduino开发板

  Arduino开发板(如图1所示)是一个开源平台,适合没有基础的学生学习和使用。Arduino是一块基于开放源代码的USB接口Simple LO接口板(包括12通道数字GPIO,4通道PWM输出,6-8通道10bit ADC输入通道),该系统的硬件主要由Arduino UNO主控板、Arduino Xbee传感器扩展板、蓝牙串口模块和数字温度传感器组成。它构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。主要包含两个的部分:硬件部分是可以用来做电路连接的Arduino开发板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino开发板后,程序便会告诉Arduino开发板要做些什么了。


  Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。对Arduino的编程是通过Arduino编程语言 (基于Wiring)和Arduino开发环境(基于Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,它们之间进行通信(比如Flash, Processing, MaxMSP)来实现。

20230602Arduino开发板.jpg

图1 Arduino开发板

  2.系统硬件设计

  2.1寻线功能的实现

  小车想要完成寻线功能,希望它能够跟着黑线走,那么它首先也要能够“看见”那些黑线,因此需要用到传感器。传感器,简单的说就是一种检测装置,能够感受到被测量的信息,并将检测到的信息,按一定规律变换成为电信号或者是其他所需形式的信息输出,以满足信息的传输,处理,存储,显示,记录,控制等要求。这里选择一个红外巡线传感器,而这个红外传感器就将充当智能小车的眼睛来检测黑线。红外巡线传感器模块的原理是利用红外对管检测自己发出的红外线反射光(深色反射弱,浅色反射强)。寻线传感器可以帮助机器人进行白线或者黑线跟踪,可以检测白底中的黑线,也可以检测黑底中的白线,检测到黑线返回低电平。

  设计的小车采用前置驱动,由两个电机分别控制左右两个前轮,后面是个万向轮,可以自由转动。当确定了小车模型之后,如果小车的两个前轮同时以相同的速度向前转的话那么小车就往前走。当小车右轮向前转左轮不动那么小车就会向左转,同理小车左轮向前转右轮不动那么小车就向右转,两个轮子同时以相同的速度向后转那么小车就会倒车。接下来就是由传感器控制小车运行了,在这里设置三个寻线传感器,三个传感器也就有三种情况,分别是每个传感器遇到黑线而两外两个没有遇到黑线时的三种情况。中间一个用于检测黑线,当中间的一个检测到黑线时就返回低电平,此时小车直走;当黑线向左边转弯,此时小车若直走则左边的传感器则会检测到黑线,此时返回低电平,此时就要右轮转,左轮停,小车就会向左转弯;当转过弯后左边的传感器已经检测不到黑线,中间的又能检测到黑线了,那么就继续向前直走。同理,当黑线向右转弯时右边的传感器也会检测到黑线,返回低电平,此时小车左轮转,右轮停止,那么小车就会像右转,直到中间的传感器检测到黑线为止。

  2.2避障功能的实现

  至于小车的避障功能,首先要选用传感器,在这里选用红外避障传感器,由一个红外****管和一个  红外接收管构成。工作原理是:传感器****红外线,根据反射红外光探测前方障碍物,无障碍物时输出高电平,有障碍时输出低电平。这样看来其实这个传感器的原理和之前的寻线传感器是差不多的,因此可以如法炮制,先将传感器装在小车的前端来感受环境变化,在这里一样使用三个传感器,分别放在正前方,左前方,右前方。这里情况会比前面的寻线功能要稍微复杂一点,因为寻线只有一条,但是这里有可能是只有一个传感器被遮挡,也有可能有两个传感器被遮挡,也有可能是三个传感器都被遮挡,因此就需要把这几种情况都要考虑进去。

  2.3超声波测距功能的实现

  对于超声波测距功能,使用的是HC-SRO4,它是最常见的超声波传感器之一,价格便宜,好用;如图2所示。超声波的****和接收采用HC-SR04模块,模块包括超声波****、接收器和控制电路3。超声波的原理是非常简单的,想要在Arduino平台中实现也是—件非常方便的事情,不过因为要显示到电脑上,所以别忘了串口的波特率设置。

20230602HC-SR04模块.jpg

  2.4 温度传感功能的实现

  温度传感功能,在这里选用的是DS18B20数字温度传感器。DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器,具有测温系统简单、测温精度高、连接方便、占用接口线少等优点。从主机CPU到DSI820仅需一条线(和地线),DS1820的电源可以由数据线提供而不需要外部电源。因为每一个DS1820在出厂时已经给定了唯一的序号,因此任意多个DS1820可以连接在同一条单线总线上。DS1820的测量范围从- 55℃到+125℃增量值为0.5℃,可在ls(典型值)内把温度变换成数字。简单的理解DS18B20测温原理就是芯片把感知到的温度换成数值放在数据寄存器里面,要想得到寄存器里面的数据,只有按照DALLAS规定的一种时序才能正确传出数据,这种时序被称为单总线,CPU就可通过单总线协议,取得DS18B20里面的温度值。图3是DS18B20引脚排列。

20230602DS18B20引脚图.jpg

图3 DS18B20引脚图

  2.5红外控制功能的实现

  为了实现红外控制功能,所选择的是38K红外接收模块,并且还带有一个小遥控器以方便控制。这里要实现的目标是对小车行走进行控制,也就是控制小车前进,后退,左转,右转。前面的寻线也好,红外避障也好,都提供了一个对小车行走的控制函数,在这里进行调用就好了,这不是问题。限于红外****的本质,也就是红外线本身的限制,所以在控制范围上是有限制的,就好比家里的电视遥控器,必须对准了才能遥控,所以把红外接收头装在小车后面,在后面进行控制。

  2.6智能小车系统结构

  图4是小车被三个传感器控制的运行状态,另外还有两个传感器的结果是要输出到电脑用专用软件的监视窗口去进行监视的,如图5所示。

20230602小车控制框图.jpg

图4 小车控制框图

智能小车控制框图5.jpg

 图5 智能小车控制框图

  3.系统软件设计

  3.1超声波传感器程序设计

  超声波传感器测距是通过先****超声波然后检测传回的超声波所耗费的时间从而计算距离,图6是其流程图。

20230602超声波测距流程图.jpg

图6 超声波测距流程图

  3.2红外遥控程序设计

  红外模块,因为配备了一个遥控器,所以先读取出每个遥控中按钮的值,然后将每个按钮的值记录下来,将每个值作为一个操作命令。当遥控器中的某个按钮按下时,就会****出那个对应的值,然后当红外接收头接收到信号时,处理器就会读取到那个值并按照程序做出相应的反应,图7是红外控制逻辑框图。

20230602红外控制逻辑框图.jpg

 图7 红外控制逻辑框图

  结束语

  以上就是使用Arduino开发板设计的智能小车介绍了,该设计实现了小车的自动循迹、避障、超声波测距等功能,在设计中软件采用模块化设计思想。实验结果表明,利用传感器自动采集环境数据从而按照程序自动运行。设计的智能小车操作简单,稳定可靠,该系统具有宽广潜力和应用价值。

关注公众号“优特美尔商城”,获取更多电子元器件知识、电路讲解、型号资料、电子资讯,欢迎留言讨论。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客