上学期买的小车套件和Arduino板子都还在吃灰,昨天兴致来了就准备一步步的整一个
首先找资料把ADXL345三轴加速度传感器调通了
然后把Arduino UNO板子和L293D电机驱动扩展板程序调通了
最后把蓝牙模块HC-05程序调通了。
三轴加速度传感器暂时还没想好怎么使用,so暂时来个蓝牙控制的小车好了。
手机下载蓝牙串口助手,设置串口发送 1 2 3 4 四个数字分别代表前进、后退、右拐、左拐
关于Arduino的编程语言
我想说和C语言对比,爽太多。
你根本不需要了解硬件怎么连接的,内部协议是什么。
因为有很多集成库,只需要会调用其中的API接口即可。
在8位单片机上搞面向对象开发,适合DIYer,适合初学者。
程序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
| #include "AFMotor.h"
AF_DCMotor motor1(1); //设置一号电机 AF_DCMotor motor2(2); //设置二号电机 AF_DCMotor motor3(3); //设置三号电机 AF_DCMotor motor4(4); //设置四号电机 void setup() { Serial.begin(9600); //串口设置波特率9600 } void Goahead(unsigned char i) //前进 { motor1.run(FORWARD); motor1.setSpeed(i); motor2.run(FORWARD); motor2.setSpeed(i); motor3.run(FORWARD); motor3.setSpeed(i); motor4.run(FORWARD); motor4.setSpeed(i); }
void Back(unsigned char i) //后退 { motor1.run(BACKWARD); motor1.setSpeed(i); motor2.run(BACKWARD); motor2.setSpeed(i); motor3.run(BACKWARD); motor3.setSpeed(i); motor4.run(BACKWARD); motor4.setSpeed(i); }
void Turn_Left(unsigned char i) //左拐 { motor1.run(BACKWARD); motor1.setSpeed(i); motor2.run(FORWARD); motor2.setSpeed(i); motor3.run(FORWARD); motor3.setSpeed(i); motor4.run(BACKWARD); motor4.setSpeed(i); }
void Turn_Right(unsigned char i) //右拐 { motor1.run(FORWARD); motor1.setSpeed(i); motor2.run(BACKWARD); motor2.setSpeed(i); motor3.run(BACKWARD); motor3.setSpeed(i); motor4.run(FORWARD); motor4.setSpeed(i); } void stop() //停止 { motor1.run(RELEASE); motor2.run(RELEASE); motor3.run(RELEASE); motor4.run(RELEASE); } void loop() { while (Serial.available() > 0) { int inChar = Serial.read(); inChar=inChar-0x30; if(inChar == 1) //前进 { Goahead(250); delay(300); stop(); } else if(inChar == 2) //后退 { Back(250); delay(300); stop(); } else if(inChar == 3) //右转 { Turn_Right(250); delay(300); stop(); } else if(inChar == 4) //左转 { Turn_Left(250); delay(300); stop(); } else { stop(); //停止 } inChar=0; } }
|
BOM
- Arduino Uno
- L293D模块
- 小车底盘模块
- 18650电池 x 2
- HC-05 蓝牙模块
视频暂时还没录制,等哪天有心情了录一个。