用Arduino打造一辆蓝牙遥控坦克
本帖最后由 RRoy 于 2025-6-4 09:33 编辑这个由创客Drone Proton分享的项目,结合了3D打印和Arduino,让你能轻松制作出一辆通过蓝牙模块与手机APP连接、实现无线遥控的RC坦克。用你的手机屏幕就能指挥坦克前进、后退、转弯。
唯一的小缺憾是,作者做的这辆其实是只有履带没有“炮”的坦克,不过有兴趣的小伙伴可以结合上一期的——远程操控,精准打击!DIY一个智能炮塔!把这辆坦克变成完整形态。
### 材料准备
要完成这个项目,需要准备一些基本的电子元件和工具:
* 核心控制板:Arduino Nano(项目推荐,小巧强大)
* 蓝牙通信:HC-05蓝牙模块(实现手机与坦克的无线连接)
* 电机驱动:L298N电机驱动模块(驱动坦克的直流电机)
* 动力来源:
* 7.4V 1300 mAh LiPo电池(为电机供电)
* 9V电池及电池夹(为Arduino和蓝牙模块供电)
* 传动装置:4个直流电机
* 连接线材:跳线
* 结构件:M3螺母
* 3D打印:一台3D打印机(用于打印坦克车身和履带)
* 控制终端:一部Android手机(安装配套的蓝牙遥控APP)
### 3D打印结构件
首先,可以从Thingiverse下载项目提供的3D模型文件。(也可以在文末打包一起下载)
包括坦克的车身、履带和侧板等部件。确保3D打印机设置正确,打印出这些塑料零件,它们是坦克的基础骨架。
* 坦克车身模型链接:`thingiverse.com/thing:3004073`
* 坦克履带及侧板模型链接:`thingiverse.com/thing:972768`
### 电路连接
按照项目提供的电子原理图,将Arduino Nano、HC-05蓝牙模块、L298N电机驱动模块以及所有直流电机连接起来。重点在于理解电源供电、蓝牙模块与Arduino的串口通信、以及电机驱动模块与电机和Arduino的连接关系。
* 详细的电子图和代码,你可以在项目作者的GitHub仓库找到:`github.com/Drone-Proton/Drone-Proton-RC-Tank-`
### 代码烧录
将项目提供的Arduino代码下载到你的电脑,并通过Arduino IDE将其烧录到Arduino Nano开发板中。这段代码负责解析手机APP发送的蓝牙指令,并控制电机驱动模块,从而让坦克做出相应的动作。
// DRONE PROTON RC TANK CODES
constint sol_enable = 11;// ENABLE A
constint sag_ileri = 10; // INPUT 1
constint sag_geri = 9; // INPUT 2
constint sol_ileri = 8; // INPUT 3
constint sol_geri = 7; // INPUT 4
constint sag_enable = 6; // ENABLE B
void setup(){
pinMode(sag_ileri, OUTPUT);
pinMode(sag_geri, OUTPUT);
pinMode(sol_ileri, OUTPUT);
pinMode(sol_geri, OUTPUT);
pinMode(sag_enable, OUTPUT);
pinMode(sol_enable, OUTPUT);
Serial.begin(9600);
}
void loop() {
if (Serial.available() > 0) {
char gelen_veri = Serial.read();
Serial.println(gelen_veri);
if( gelen_veri == 'R' ) { // gelen_veri 'R' ise / if incoming_data is 'R'
/* araç geri gitsin / get the car back */
digitalWrite(sag_ileri, 1);
digitalWrite(sag_geri, 0);
digitalWrite(sol_ileri, 1);
digitalWrite(sol_geri, 0);
analogWrite(sag_enable, 255); // motor hızı / engine speed
analogWrite(sol_enable, 255);
}
if( gelen_veri == 'F' ) { // gelen_veri 'F' ise / if incoming_data is 'F'
/* araç sola dönsün / get the car left*/
digitalWrite(sag_ileri, 0);
digitalWrite(sag_geri, 1);
digitalWrite(sol_ileri, 1);
digitalWrite(sol_geri, 0);
analogWrite(sag_enable, 255); // motor hızı / engine speed
analogWrite(sol_enable, 255);
}
if( gelen_veri == 'B' ) { // gelen_veri 'B' ise / if incoming_data is 'B'
/* araç sağa dönsün / get the car Right*/
digitalWrite(sag_ileri, 1);
digitalWrite(sag_geri, 0);
digitalWrite(sol_ileri, 0);
digitalWrite(sol_geri, 1);
analogWrite(sag_enable, 255); // motor hızı / engine speed
analogWrite(sol_enable, 255);
}
if( gelen_veri == 'L' ) { // gelen_veri 'L' ise / if incoming_data is 'L'
/* araç ileri gitsin / get the car forward */
digitalWrite(sag_ileri, 0);
digitalWrite(sag_geri, 1);
digitalWrite(sol_ileri, 0);
digitalWrite(sol_geri, 1);
analogWrite(sag_enable, 255); // motor hızı / engine speed
analogWrite(sol_enable, 255);
}
if( gelen_veri == 'S' ) { // gelen_veri 'S' ise / if incoming_data is 'S'
/* araç dursun / get the car stop */
digitalWrite(sag_ileri, 0);
digitalWrite(sag_geri, 0);
digitalWrite(sol_ileri, 0);
digitalWrite(sol_geri, 0);
}
}
}
### 组装与调试
将打印好的3D零件与电子元件进行组装,形成完整的坦克模型。组装完成后,连接电源,通过手机安装“arduino bluetooth car controller”APP,尝试连接蓝牙并测试坦克的各项功能。如果遇到问题,可以根据电子图和代码进行排查。
### 最后
这个RC坦克项目能够让你在实践中收获知识,在创造中体会乐趣。在制作过程中有任何疑问,欢迎在评论区交流讨论!
页:
[1]