用户工具

站点工具


ideas:car1

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

后一修订版
前一修订版
ideas:car1 [2015/12/23 11:39]
gdw 创建
ideas:car1 [2015/12/24 22:29] (当前版本)
gdw
行 1: 行 1:
 ===== 蓝牙小车 ===== ===== 蓝牙小车 =====
 +
 +先晒一下我的小车
 +
 +{{:​ideas:​6c8d146d55fbb2fb267202984a4a20a44723dc46.jpg?​200|}}
 +
 +{{:​ideas:​080e7cfbb2fb43160b4620f025a4462308f7d346.jpg?​200|}}
 +
 +{{:​ideas:​60989bfb43166d22282e4f1e432309f79152d246.jpg?​200|}}
 +
 +{{:​ideas:​4.jpg?​200|}}
 +
 +昨天搞了一天的蓝牙小车终于好了,现在在这里分享一下经验,和大家交流相互学习一下,希望大神多多指教哈 。首先呢,先来说一下,制作所需要的材料。硬件方面:L298驱动模块、蓝牙模块(我用的是HC-05)、小车底盘、当然了还少不了Arduino UNO、软件方面: 蓝牙串口助手(app store里面就可以下载,如果实在找不到,可以找我), 下面上图片
 +
 +{{:​ideas:​5.jpg?​200|}}
 +
 +{{:​ideas:​6.jpg?​200|}}
 +
 +{{:​ideas:​7.jpg?​200|}}
 +
 +原谅我盗了几张图
 +对于L298驱动模块的话,相信大家都不会陌生,才子精品教程里面讲的很详细,这里我就不多说了,
 +那就来说说蓝牙模块吧啊,在蓝牙模块使用之前一定要先设置好,否则根本连不上手机
 +设置的话有多种方法,我是通过Arduino设置的,将代码下载到Arduino里,然后将蓝牙模块接到Arduino上,​然后按一下Arduino上的复位按钮(这里需要注意的是先下载程序,然后接蓝牙,顺序不能搞错,否则的话会下载错误)
 +代码如下:
 +<code C>
 +#define AT 2
 +#define LED 13
 +void setup()
 +{
 + pinMode(LED,​OUTPUT);​
 + pinMode(AT,​OUTPUT);​
 + digitalWrite(AT,​HIGH);​
 + Serial.begin(38400);//​这里应该和你的模块通信波特率一致
 + delay(100);​
 + Serial.println("​AT"​);​
 + delay(100);​
 + Serial.println("​AT+NAME=OPENJUMPER-Bluetooth"​);//​命名模块名
 + delay(100);​
 + Serial.println("​AT+ROLE=0"​);//​设置主从模式:0从机,1主机
 + delay(100);​
 + Serial.println("​AT+PSWD=1234"​);//​设置配对密码,如1234
 + delay(100);​
 + Serial.println("​AT+UART=9600,​0,​0"​);//​设置波特率9600,停止位1,校验位无
 + delay(100);​
 + Serial.println("​AT+RMAAD"​);//​清空配对列表
 +}
 +void loop()
 +{
 + digitalWrite(LED,​ HIGH);
 + delay(500);​
 + digitalWrite(LED,​ LOW);
 + delay(500);​
 +}
 +</​code>​
 +这里注意下蓝牙模块的接线:
 +蓝牙模块:RX——TX:Arduino
 +TX——RX
 +state——2
 +GND——GND
 +VCC——VCC
 +当你看到Arduino 上的LED闪烁的时候说明蓝牙模块已经设置好了
 +
 +接下来就是接线的问题了,闲话少说上图
 +
 +{{:​ideas:​8.jpg?​200|}}
 +
 +{{:​ideas:​9.jpg?​200|}}
 +
 +{{:​ideas:​10.jpg?​200|}}
 +
 +{{:​ideas:​11.jpg?​200|}}
 +
 +{{:​ideas:​12.jpg?​200|}}
 +
 +{{:​ideas:​13.jpg?​200|}}
 +
 +{{:​ideas:​14.jpg?​200|}}
 +
 +几个主要的问题已经解决差不多了
 +刚才的图片看的好像效果不是太好,再来二张
 +
 +{{:​ideas:​16.jpg?​200|}}
 +
 +{{:​ideas:​15.jpg?​200|}}
 +
 +最后上代码,我用的是4,​5,​6,​7,​ 四个I/​O口,如果用其他的,只需要将代码稍作改动即可。
 +各个数字作用如下: 1——左转,2——前进,3——右转,4——左转圈,5——急停,6——右转圈,7——向后左,8——向后,9——向后右。共九个指令。
 +
 +代码如下:
 +<code C>
 +#define IN1 4
 +#define IN2 5
 +#define IN3 6
 +#define IN4 7
 +void forward();
 +void back();
 +void turnLeft();
 +void turnRight();​
 +void turnbackLeft();​
 +void turnbackRight();​
 +void turnLeftOrigin();​
 +void turnRightOrigin();​
 +void _stop();
 +void setup()
 +{ pinMode(IN1,​OUTPUT);​
 +pinMode(IN2,​OUTPUT);​
 +pinMode(IN3,​OUTPUT);​
 +pinMode(IN4,​OUTPUT);​
 +Serial.begin(9600);​
 +}
 +int i;
 +void loop()
 +{ if(Serial.available())
 +{ i= Serial.read();​
 +switch(i)
 +{ case'​1':​{ turnLeft();​break;​}
 +case'​2':​{ forward();​break;​}
 +case'​3':​{turnRight();​break;​}
 +case'​4':​{turnLeftOrigin();​break;​}
 +case'​5':​{_stop();​break;​}
 +case'​6':​{turnRightOrigin();​break;​}
 +case'​7':​{turnbackLeft();​break;​}
 +case'​8':​{back();​break;​}
 +case'​9':​{turnbackRight();​break;​}
 +}
 +}
 +}
 +void forward()
 +{ digitalWrite(IN1,​HIGH);​
 +digitalWrite(IN2,​LOW);​
 +digitalWrite(IN3,​HIGH);​
 +digitalWrite(IN4,​LOW);​
 +}
 +void back()
 +{ digitalWrite(IN1,​LOW);​
 +digitalWrite(IN2,​HIGH);​
 +digitalWrite(IN3,​LOW);​
 +digitalWrite(IN4,​HIGH);​
 +}
 +void turnLeft()
 +{ digitalWrite(IN1,​LOW);​
 +digitalWrite(IN2,​LOW);​
 +digitalWrite(IN3,​HIGH);​
 +digitalWrite(IN4,​LOW);​
 +}
 +void turnbackLeft()
 +{ digitalWrite(IN1,​LOW);​
 +digitalWrite(IN2,​LOW);​
 +digitalWrite(IN3,​LOW);​
 +digitalWrite(IN4,​HIGH);​
 +}
 +void turnRight()
 +{ digitalWrite(IN1,​HIGH);​
 +digitalWrite(IN2,​LOW);​
 +digitalWrite(IN3,​LOW);​
 +digitalWrite(IN4,​LOW);​
 +}
 +void turnbackRight()
 +{ digitalWrite(IN1,​LOW);​
 +digitalWrite(IN2,​HIGH);​
 +digitalWrite(IN3,​LOW);​
 +digitalWrite(IN4,​LOW);​
 +}
 +void turnLeftOrigin()
 +{ digitalWrite(IN1,​LOW);​
 +digitalWrite(IN2,​HIGH);​
 +digitalWrite(IN3,​HIGH);​
 +digitalWrite(IN4,​LOW);​
 +}
 +void turnRightOrigin()
 +{ digitalWrite(IN1,​HIGH);​
 +digitalWrite(IN2,​LOW);​
 +digitalWrite(IN3,​LOW);​
 +digitalWrite(IN4,​HIGH);​
 +}
 +void _stop()
 +{ digitalWrite(IN1,​LOW);​
 +digitalWrite(IN2,​LOW);​
 +digitalWrite(IN3,​LOW);​
 +digitalWrite(IN4,​LOW);​
 +}
 +</​code>​
 +
 +接下来打开手机上的蓝牙串口助手软件,连接HC-05,密码为1234,
 +
 +连接成功后发送指令就可以了
 +
 +
 +补一下电源的接线图
 +
 +{{:​ideas:​19.jpg?​200|}}
 +
 +原文链接:http://​tieba.baidu.com/​p/​3817870670?​see_lz=1
 +
· 最后更改: 2015/12/23 11:39