新朋实验室之玩具遥控车改装为ARDUINO蓝牙遥控小车(代码及制作过程开源)

新朋实验室之玩具遥控车改装为ARDUINO蓝牙遥控小车(代码及制作过程开源)

2017年08月21日 12:55:25 XPLab 阅读数:4008

 

你家里的玩具遥控车坏了?遥控器丢了?先不要急着丢掉,看完这篇教程,你可以自己动手把玩具遥控车改装成一个手机蓝牙控制的遥控车!

 

 

首先来张成品图

 

所需物品清单:

 

  • 坏掉的遥控车*1
  • Arduino uno主板*1(可替换为其他Arduino板子,拓展板可加可不加)
  • TB6612电机驱动模块*1(可以替换为L298N电机驱动模块,但是效果差一点,感兴趣的可以自己了解)
  • HC-05蓝牙模块*1
  • 10kΩ电阻*1
  • 20kΩ电阻*1
  • 杜邦线以及跳线若干
  • 9V电池以及转接接口(可自行替换成适合自己的电源)
  • 洞洞板(焊接蓝牙模块)
  • 焊接套件(用于焊接导线来连接小车)
  • 安卓手机(苹果手机不支持HC-05蓝牙模块)
  • 黑色电工胶布

不清楚TB6612电机驱动模块的可以看这篇文章任意门http://blog.youkuaiyun.com/ling3ye/article/details/51691201点击打开链接

ps:本文的代码大部分也是由这篇文章的代码改来的

 

不清楚蓝牙模块如何使用的建议看看太极创客制作的教程http://www.taichi-maker.com/homepage/arduino-tutorial-index/mearm-index/mearm-17-bluetooth-arduino-1/点击打开链接

硬件连接部分

我用了拓展板,没有也没关系

请照下面的接线图连接,连接好后可用电工胶布或螺丝把板子固定在你的遥控车地盘上

 

 

 

接线图(用Fritzing制作的)

蓝牙模块建议先看上面太极创客的教程使用一下,熟悉之后再焊接到洞洞板上。把HC-05蓝牙模块和两个电阻按上图焊好,下图是我自己焊的

 

 

 

如果你已经完成了硬件的连接,那么恭喜你,你已经完成80%了,剩下的就是程序与软件部分。

上传程序

loop函数里面的代码是我自己写的,其他是copy这位仁兄的http://blog.youkuaiyun.com/ling3ye/article/details/51691201

在此谢过这位仁兄

把下面的·代码复制到arduino IDE上传即可(注意,上传程序的时候一定要把蓝牙模块的tx和rx与arduino断开连接,否则会报错,原因是上传程序时tx与rx这两个接口会被占用)

 
  1. [code]

  2. //motor A后轮 connected between A01 and A02

  3. //motor B转向connected between B01 and B02

  4. //Xinpengmaker

  5.  
  6. int STBY = 10; //standby

  7.  
  8.  
  9. char SerialData;

  10.  
  11.  
  12. //Motor A

  13. int PWMA = 3; //Speed control

  14. int AIN1 = 9; //Direction

  15. int AIN2 = 8; //Direction

  16.  
  17.  
  18. //Motor B

  19. int PWMB = 5; //Speed control

  20. int BIN1 = 11; //Direction

  21. int BIN2 = 12; //Direction

  22.  
  23. void setup(){

  24. pinMode(STBY, OUTPUT);

  25.  
  26. pinMode(PWMA, OUTPUT);

  27. pinMode(AIN1, OUTPUT);

  28. pinMode(AIN2, OUTPUT);

  29.  
  30. pinMode(PWMB, OUTPUT);

  31. pinMode(BIN1, OUTPUT);

  32. pinMode(BIN2, OUTPUT);

  33.  
  34. Serial.begin(9600);

  35. }

  36.  
  37. void loop(){

  38. if (Serial.available()>0){

  39. SerialData = Serial.read();

  40. if (SerialData == 'w' ) {

  41. Serial.print("Got command: "); Serial.println(SerialData);

  42. move(1, 255, 0);

  43.  
  44. }

  45. else if (SerialData == 'a' ) {

  46. Serial.print("Got command: "); Serial.println(SerialData);

  47. move(2, 255, 0); //motor 1, full speed, left

  48.  
  49. }

  50.  
  51. }

  52. if (SerialData == 'd' ) {

  53. Serial.print("Got command: "); Serial.println(SerialData);

  54. move(2, 255,1); //motor 1, full speed, left

  55.  
  56. }else if (SerialData == 's' ) {

  57. Serial.print("Got command: "); Serial.println(SerialData);

  58. move(1, 255, 1); //motor 1, full speed

  59. }

  60. if (SerialData == '0' ) {

  61. Serial.print("Got command: "); Serial.println(SerialData);

  62. stop();

  63.  
  64. }

  65. }

  66.  
  67. void move(int motor, int speed, int direction){

  68. //Move specific motor at speed and direction

  69. //motor: 0 for B转向 1 for A后轮

  70. //speed: 0 is off, and 255 is full speed

  71.  
  72.  
  73. digitalWrite(STBY, HIGH); //disable standby

  74.  
  75.  
  76. boolean inPin1 = LOW;

  77. boolean inPin2 = HIGH;

  78.  
  79. if(direction == 1){

  80. inPin1 = HIGH;

  81. inPin2 = LOW;

  82. }

  83.  
  84. if(motor == 1){

  85. digitalWrite(AIN1, inPin1);

  86. digitalWrite(AIN2, inPin2);

  87. analogWrite(PWMA, speed);

  88. }else{

  89. digitalWrite(BIN1, inPin1);

  90. digitalWrite(BIN2, inPin2);

  91. analogWrite(PWMB, speed);

  92. }

  93. }

  94. void stop(){

  95. digitalWrite(STBY, LOW);

  96. }

  97. [/code]

 

 

手机App下载及使用

如果你上面的步骤都完成了,那么不要急,接下来进行手机APP的安装和设置,你就可以通过蓝牙遥控你的小车了

第一步:拿出你的安卓手机,下载一个叫做“蓝牙串口助手”的软件

第二步:点击进入,APP会自动搜索你的蓝牙设备,搜索到后点击搜索出来的结果,进入后再点击“连接设备”

第三步:设备连接后,点击“键盘模式”

第四步:进入后点击右上角的“三个点”,再点击“设定长按发送频率”,设置为51,然后点击确定

第五步:然后再点击右上角的“三个点”,再点击配置键盘值,设置命令名称分别为前后左右。

第六步:按下发送值和长按发送值都用一样的,上下左右就分别是wsad,释放发送值都为0。

第七步:点击右上角的“三个点”,点击“保存键盘配置”,可以开车了!得意

 

 

更多文章请关注微信公众号:“新朋的实验室”阅读获取

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值