找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7437|回复: 0
打印 上一主题 下一主题
收起左侧

Arduino+Mixly蓝牙语音键控超声波避障智能机器人小车制作

[复制链接]
跳转到指定楼层
楼主
ID:313638 发表于 2020-5-3 10:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
电子制作要与时俱进就必须要智能化,电子工程师和广大的电子爱好者希望能降低计算机编程难度,又能制作出高智能的电子产品。本文通蓝牙机器人小车的制作,启发您如何用最简单的图形编程,制作出高智能的电子产品。
本文选用Arduino uno单片机作为开发主板,选用Mixly(米思齐)图形编程软件编程,避免繁琐复杂的编程程序(例如在51单片机和其他计算机中使用中断和计数编程达到PWM电机调速和硬件延时功能,要编很多程序还要调用头文件,还要编译复杂的超声波避障程序)。现在我们在Arduino单片机上用Mixly(米思齐)图形编程软件编程,不仅使得编程更容易,而制作出的产品依然能保障高质量。
首先按照蓝牙机器人小车的实物图a.b.c.d从淘宝购买模块和元器件。



下面具体说一下主板和主要元件的选择:
Adiuino 单片机主板:
意大利进口原装单片机主板淘宝参考价85-168元左右见图:
国产兼容Arduino UNO单片机主板16—48元左右见图:
经本人实际使用国产主板在性能上不比原装的差,是原装主板四分之一的价格。建议追求经济实惠的朋友购买。
扩展板淘宝价10元左右,用来扩展接口方便接线,给两个参考图:
蓝牙HC-05 主从机一体蓝牙模块淘宝参考价28元:

      
小车车体最好选择两个电机转速相近的:
超声波模块2块,用途:测距,距离达到设定范围后让小车前后避障。
红外避障模块4块,用途:距离达到设定范围后让小车在四个角避障。
L298N电机驱动模块
  由于单片机主板的功率较小带负载能力弱,所以要采用电机驱动模块来驱动电机运转,还要外加7.2V的锂电池供电。
左图的L298N电机驱动模块是大功率的,能驱动4个电机,有PWM使能控制接口,用跳线帽选择。右图的模块能驱动2个电机,本例采用的是这款,这款电机驱动模块体积小,耗电量低,价格非常低,没有PWM脉宽调制调速使能接口,适合Arduino单片机不适合51单片机。
数字电压表模块:
数字电压表模块用来显示锂电池的电压,防止使用中锂电池电压降到安全电压以下使锂电池报废。
USB-TTL串口模块用来和串口软件调试和设置蓝牙模块,参考价5元(辅助调试器件,具体操作可查看商家给的技术操作手册。本例中如果蓝牙通讯正常也可不用)。
硬件备齐后我们来安装手机APP软件。
我们蓝牙模块型号选用HC-05,能和HC-05蓝牙模块兼容的上位机APP软件很多,不象JDY-18蓝牙模块通讯距离60米挺远,但蓝牙模块基本上找不到兼容的手机软件,本人推荐两个软件,编程兼顾两个软件设置。
蓝牙小车:软件控制方式是触屏方式发指令。下图分别是蓝牙小车软件图标,蓝牙小车操作界面,蓝牙小车指令设置图界面。




这个软件操作比较简单,但是非常好用。手指放到方向箭头上是运行,手指离开是停止;方向键的设置是自己定义的。
蓝牙智能小车:软件控制方式有语音模式、按键模式、重力模式、手势模式、多种方式见图:

     

蓝牙小车软件下载地址:http://shouji.baidu.com/software/11629425.html
手机软件安装好后我们来安装Mixly(米思齐)图形编程软件。
Mixly官方的软件下载地址:http://www.imkedu.com/thread-92-1-1.html
下载后安装到你的电脑系统上,接下来把Arduin开发板插到电脑USB口上,鼠标右键单击这台电脑,点设备管理器,打开端口小三角记下端口号。
现在我们用它来编写蓝牙模块和手机APP软件通信程序。
打开米思齐软件按下图把程序写好后点编译,成功后在右下角的主板型号选择项目
   
中点选Arduino Uno,端口号选你刚才电脑端口上测到的那个号,我这里是COM9,见下图:
      
然后点上传将程序烧到单片机中,关闭单片机电源。现在把蓝牙模块用杜邦线按下图连接到Arduino主板上,LED就不要接了,用串口监视器查看窗口的数码和字符串显示就行了。

蓝牙模块的 TX 与 Arduino RX 连接,RX 与 Arduino TX 连接,蓝牙模块的VCC连接Arduino 5V,蓝牙模块的GND连接Arduino GND

   

现在上电打开端口,点击串口监视器将其打开观察串口信号我们发现全是16进制的F这是手机没有发指令。现在我们用蓝牙智能小车的APP软件发指令,按上下左右停键在单片机串口分别显示2、8、6、7、3。测试语音指令前进、后退、左转、右转、停止分别得到:2、8、9、16、3.见图:

接下来我们用相同的方法对蓝牙小车软件的指令进行测试。先在手机软件中将前后左右停分别设置成大写字母A、B、L、R、S。然后拔掉蓝牙模块的VCC 5V电压的导线(向Arduino主板烧写程序一般是断开蓝牙模块和主板的连接,否则不仅上传失败还可能损坏模块)。打开米思齐软件按下图编程测试结果如图。
蓝牙小车上位机发出的指令不是16进制数,而是常用字符,所以我们要打印读取字符串。(此时如果用串口监视器观察智能小车发的指令会发现是象制表符一样的特殊符号,因为有些符号本人找不到,所以改用16进制接受。而蓝牙小车软件不存在这种问题)。打开串口监视器我们把手指放到上下左右停止键上对应串口监视器显示ABLRS,当手指离开后都会显示S。到这一步蓝牙模块和手机通讯已经成功!接下来我们按照测试结果在米思齐软件上编出能与这两种手机软件匹配的蓝牙智能小车的程序。见图:
   
下图是各函数模块折叠后的程序图,是不是感觉很清爽,这是因为我们编程序的方法是用函数编程。需要了解函数时我们把它逐条展开来,你一看就明白不用我解释程序;这是图形编程的好处。

我们按下图连接元器件。
   

将两个电机分别接到电机A和电机B上,在电机驱动模块上用杜邦线将A1,A2分别接到Arduino主板的接口5和接口6上;B1,B2分别接到Arduino主板的接口9和接口10上。将Arduino主板的接口5V和GND分别接到电机驱动板的“+”和“-”上。在小车上接完线如果安装了车轮要让轮子悬空,请不要连接蓝牙模块。接着将程序装到主板里,关机。接下来在Arduino主板连上蓝牙模块,用手机发送前进指令,观察两电机车轮的旋转方向是否是前进转向,如果不相符将插在Arduino主板上的5和6或9和10杜邦线插头对调,调整到两车轮转动方向都是前进就OK了。两个轮子的速度调整我们采用(PWM)脉冲宽度调制,速度的赋值范围可在120-255之间选择。两个轮子电机转速如果不同小车就不能走直线,就要做相应的调整,数值越大转速越快。接下来我们给机器人安装超声波避障模块和红外避障模块。
我们展开超声波函数的程序:
程序中前面的超声波模块的Trig发射和Echo接受是分别接在Arduino主板的第7和第8接口上的,我们用杜邦线将它们连接在一起;再把模块的VCC和GND分别接到Arduino主板的5V和GND上。把小车后面的超声波模块的Trig发射和Echo接受分别接在Arduino主板的第A2和第A3接口上,再把模块的VCC和GND分别接到Arduino主板的5V和GND上。程序中小车的避障距离是小于12mm,进入避障范围后向反方向运行1秒后停止。如果加转向和复杂的动作会在电池电量不足的时候小车遥控失灵,直接STOP,就没有这种现象。接下来打开红外避障函数程序:
程序中小车4个角的红外避障模块的OUT输出分别接到Arduino主板的A1.A4.A5.13接口,并将各自的VCC和GND分别接到Arduino主板的5V和GND上。程序中非数字输入管脚的意思是这个管脚输入的是低电平,红外接收管没有收到红外发射波。红外管收到信号时串口监视器中显示“1”就是高电平,受到障碍是显示“0”模块连接好后给机器人小车供电,最好是7.2V(两节1650锂电池串联,如果用2个这样的串联电池再并联效果更好,能让小车工作时间加倍还能保护锂电池,如本例电源)。用十字螺丝刀调整各红外模块的避障范围,具体是用手掌放到模块前,前后慢慢移动手掌,旋转模块上的电位器调到距离大约4-6cm两个LED灯都亮为止,4个角的模块都要这样调好。
蓝牙遥控程序见上图:程序是按蓝牙智能小车和蓝牙小车的多种模式编的,程序中语音控制的9和16是加了延时200毫秒和STOP函数的限制转动的角度在20度左右。大家可以根据自己的需要灵活制定转动角度。

由于小车后轮是万向轮所以走直线不如4驱小车,动力也比4驱小,但比4驱省电。两驱制作完,四驱小车的制作你会觉的易如反掌:
采用4驱电机驱动模块见上图,按图接线,程序稍加改动再连接4个接口(3、4、11、12),将左边两个电机并联再将右边的两个电机并联即可其他都不改动。读者还可根据自己的需要增加其他功能,例如WiFi远程遥控摄像智能小车,无人驾驶高清摄像飞机等。

                                     作者: 薛 成

以上文档.doc

3.36 MB, 下载次数: 48, 下载积分: 黑币 -5

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶1 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表