DIY 蓝牙控制 Arduino 间谍小车
组件与材料
- Arduino UNO × 1
- HC-06 蓝牙模块 × 1
- Arduino Proto Shield(或任意可焊接排针的实验板)× 1
- Adafruit Motor/Stepper/Servo Shield V2 × 1
- SM-S4306R 连续旋转舵机 × 1
- 直流电机(通用)× 4
- 电机轮胎 × 4
- 跳线(电机用)× 8
- 4×AA 电池盒 × 2
- AA 电池 × 8
- 手机(项目用 Nokia Lumia 520)× 1
- 手机支架 × 1
- 自制底盘(简单木板)× 1
软件与在线服务
- Johnny-Five(Node.js 机器人框架)
项目简介
简介
这是一款通过蓝牙控制的四轮小车,可搭载任意手机作为 IP 摄像头。作者使用 JavaScript 编写 Node.js 网页服务器,在网页端监控小车行进画面。
主电路原理图见图1。

启动服务器后得到控制界面(见图2),含操作说明与摄像头画面窗口,且布局响应式适配。

底盘制作
本版本自制底盘。若无钻床或想省事,可直接购买塑料车身。自制时最关键的是:若采用差速转向,必须让轮胎间距尽可能小。详细物理原则与常见错误见:4-Wheel-Drive-Robot-Design。
电机固定是另一挑战。作者用尼龙扎带(150/3.5)固定电机,每电机用两根扎带。钻孔需精确,否则小车前进/后退时会偏向一侧。
电池方案
为简化供电,采用单一直流电源。底盘无法容纳 8×AA 电池盒,故将两个 4×AA 盒用螺丝拼接,需在塑料上钻孔。
供电方式
用 8 节 AA 充电电池给 Arduino Uno 供电,足以驱动电机扩展板。扩展板上有跳线帽,拔掉后电机扩展板不再从 Arduino 取电,可单独通过扩展板电源引脚供电。详见:Adafruit Motor Shield V2 供电指南。
无线连接
用 HC-06 蓝牙模块建立小车与电脑通信。为减少线缆,作者制作了自定义 Arduino 扩展板:将蓝牙模块插在空白 Proto Shield 上,底部走线焊接排针。可随时拔下蓝牙模块。成品见图3、图4。


蓝牙模块配置教程:Johnny-Five 蓝牙入门。
运动控制
小车支持前进、后退、差速转向。手机支架安装在连续旋转舵机上,可在不移动车身的情况下旋转摄像头。演示视频见项目页。
手机端
使用 Nokia Lumia 520 运行 Win IP Camera 应用:微软商店链接。
代码架构
作者为 JavaScript 开发者,采用模块化前后端架构。后端入口:
var boardModule = require('./src/boardModule'),
servoModule = require('./src/servoModule'),
motorModule = require('./src/motorModule');
boardModule.initBoard().then(function() {
motorModule.initMotors();
servoModule.initServo();
});
前端同样模块化:
import {moveWheels, stopWheels} from './wheelsControl';
import {moveServo, stopServo} from './servoControl';
document.onkeydown = checkKeyDown;
document.onkeyup = checkKeyUp;
function checkKeyDown(e) {
moveWheels(e.keyCode);
moveServo(e.keyCode);
}
function checkKeyUp(e) {
stopWheels(e.keyCode);
stopServo(e.keyCode);
}
完整代码库见 GitHub:github.com/dominikfilkus/arduino-spybot-V2
使用的软件库
- express.js — 增强 Node.js 应用
- johnny-five — Arduino JavaScript 控制 API
- socket.io — WebSocket 通信
- susy — 响应式布局
- Google Material Design — UI 组件
- gulpJS — 任务自动化
- BabelJS — ES6 转译
- Browserify — 模块化支持
结语
作者为物联网新手,这是首个项目。方案未必最优,但希望提供有用参考。
制造工艺
- ILI9341 2.4 英寸 TFT 触摸屏扩展板位图动画专业指南
- 基于 Web 控制的 DMX 灯光系统 – Arduino 主控制器
- FlickMote:基于手势的智能家居红外遥控器
- DIY Arduino TV-B-Gone:万能关机遥控器
- 自制大尺寸LED主时钟带闹钟功能 — 12米外清晰可见
- HSV 时钟:为 Arduino 爱好者打造的绚丽可定制时钟
- Android 手势遥控车:Raspberry Pi + Arduino 101 + 电机扩展板,I2T 协同控制
- Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
- Arduino 项目优化供电方案:从按键开关到电池监测与数据记录
- Arduino 井字棋游戏:MAX7219 点阵屏 + 纸板外壳 DIY
- 从零构建智能 Arduino 四足机器人:完整指南
- 无线Arduino编程盾:HC-05蓝牙模块实现免USB线烧录