11467| 2
|
[项目] ASR Board控制4WD小车 分享 |
说来实在惭愧,楼主被ASR Board整整折腾了两周,才解决了这个那个的问题,可以在这儿发个帖子,晒晒这个ASR Board语音控制的4WD小车。好像现在回顾一下,这个小车的制作流程还是比较简单的,当然Simple is the best。感兴趣的筒子们可以跟着楼主这个教程搭建一个简易的ASR 主控板控制的小车,少走点弯路:lol:lol:lol。 好了,言归正传,先列一下材料。 这里要提一下的是,我们的ASR Board控制4WD小车分为手持端和小车端。ASR Board作为手持端,通过对外界的语音识别来控制小车端的运动状态,小车端使用的是4WD小车和UNO R3的主控板。要实现手持端和小车端的通信,就要用到无线通信模块,我们这里选择的是蓝牙。一端一个蓝牙,所以一共需要两个蓝牙。 同时,因为ASR Board作为手持端,它使用SD卡进行语音播报的功能是多余的,因为正常情况下,小车边走边发出声音是比较好的,所以我们在这里并没有使用SD卡和小喇叭进行语音播报,后面会有一个帖子介绍小车边走边唱的语音控制程序。 步骤如下: 1.配置蓝牙,详细资料参见DF-BluetoothV3蓝牙串口模块使用教程。 设置两个蓝牙通信的关键是要将一个蓝牙设置成主,一个设置成从。具体AT指令如下: AT+ROLE=1 设置该蓝牙是主 AT+ROLE=0 设置该蓝牙是从 为了方便蓝牙与ASR Board的使用,楼主把蓝牙的通讯波特率也设置成了9600,具体AT指令如下: AT+UART=9600 2.连接ASR Board与电脑,修改库文件里面的样例程序example——>ASRBled(这个也是板子出厂时候下载的出厂程序),在其中添加一句Serial1.begin(9600),修改后的set up()如下: 程序的其他地方不需要作任何改动。(这是因为ASR Board使用的是leonardo的板卡,该板卡有两个串口,我们使用Serial1来与外部通信)下载程序到板卡。【友情提醒,该出厂代码使用了ASRB的库,如果下载出现错误,可以检查一下是否把ASRB库放到库文件libraries里面了哦】 3.打开Arduino IDE,在串口监视器中输入添加前进、后退、左转、右转等指令,比如:AT+KW=004,qian jin(AT指令的基本使用方法可以参见前面的示例),点击发送。发送成功以后,串口监视器会返回“OK”。如下图: 4.这个做完以后可以做个测试,对着ASR Board说“前进”,串口监视器会返回数值“4”(与上面输入的指令编号相对应)。 5.在AWD小车端编写程序。小车的具体使用见4WD教程。在这里要注意的是,小车前进、后退、左转、右转等动作的发生是因为通过蓝牙接受到了ASR Board传来你的数据,比如按照前面的设置,如果对着ASR Board说出“前进”,ASR Board会通过蓝牙向我们AWD小车上的UNO主板发出数据“4”,正是收到了数据“4”,我们的AWD小车才知道需要“前进”,所以在小车端的编程应该是当串口检测到有数据输入时,对读取到的数据进行判断,如果是“4”,就调用小车前进的函数,如果是其他的,就调用其他的函数,这个可以根据自己的设定作相应的调整。 参考程序如下: 6.将配置好的蓝牙插在ASR Board上面。示意图如下: 7.将另一块配置好的蓝牙插在4WD车XBee插孔处。示意图如下: 8.插好蓝牙,等待一段时间,两个蓝牙上的LINK指示灯亮起来了,表示两者正在通信。此时,我们对着ASR Board说出前进、后退、左转、右转等指令,小车就会做相应的动作了。 OK,just so easy~~bye bye~~ |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed