Skip to content

控船术 V6

Compare
Choose a tag to compare
@QingchenWait QingchenWait released this 15 Jul 16:53
· 6 commits to master since this release
baa8679

控船术 V6

之前的数个更新版本,并未加入此分支。这里直接给出在实物阶段之前的 V6 测试版本。

  • 更新和修复
    新增 - 蓝牙远程控制功能。可以在手机上安装蓝牙串口通讯 APP,连接到蓝牙模块,实现稳定便捷的远程遥控。
    新增 - OLED 状态屏显功能:在船体上安装一块 OLED 屏幕,可以同时在船体和遥控端 APP 上,查看实时运行状态。
    新增 - 加速 / 减速功能:为马达设置了 3 档速度,可以在手机遥控端实现船体的 加速 / 减速 。
    新增 - 持续转向功能:在手机遥控端,按住按钮,可以一直转向,直到松开按钮。

  • 使用的零件
    Arduino Uno 开发板 x1;面包板 x1;供电模块 x1;DC电机 x2;L293D控制芯片 x1;
    HC-05 蓝牙接收模块 x1;Android手机 x1;“蓝牙调试器”安卓端软件;SSD1306 128x64 I2C OLED 模块。

  • 注意事项
    (1) 在向Ardunio上传烧录程序之前,需要预先导入 Adafruit_SSD1306-2.2.0 和 Adafruit-GFX-Library-1.7.6 两个驱动 OLED 屏幕的第三方库。 需要在主界面顶部的菜单中,选择“项目 - 加载库 - 添加 .ZIP库“,找到它们的压缩包文件。
    (2) Adafruit_SSD1306 库,默认的配置是针对于驱动 128x32 分辨率的屏幕。因此,在加载库函数完成以后,必须要对库函数进行修改。这个第三方库的位置,一般在 "文档 - Arduino - libraries - Adafruit_SSD1306"里。打开这个文件夹,可以看到一个名为 Adafruit_SSD1306.h 的文件。用记事本的方式打开它,找到 "//#define SSD1306_128_64" 语句,将它前面的 "//" 删去,这样可以让这一行取消注释、发挥作用;然后将 "#define SSD1306_128_32" 语句前面加上 "//" ,将其注释掉。
    (3) 为了让L293D成功控制转速,必须把芯片的两个Enable端连接到Arduino上的PWM引脚,这样才能为芯片传传递具有脉冲宽度的PWM信号。在Arduino上,有标注 "~" 的引脚才是PWM引脚。
    (4) 对于一块新的蓝牙模块,首先需要向 Arduino 烧录 Bluetooth_AT_InitializeV2 文件夹下的程序。这个程序的功能,是将 HC-05 模块初始化,并自动设定各项参数。接线方式如图:
    image

  • 整体接线图
    image

  • 控制端 APP 逻辑
    (1) Power On 按钮: 发送 P - 开启马达
    (2) Power Off 按钮:发送 O - 关闭马达
    (3) Left 按钮:发送 L - 左转3秒
    (4) Right 按钮:发送 R - 右转3秒
    (5) Speed Up 按钮:发送 W - 提高转速
    (6) Speed Down 按钮: 发送 S- 降低转速
    (7) Turning L 按钮:按下时发送 A - 持续左转;松开时发送 T - 停止左转
    (8) Turning R 按钮:按下时发送 D - 持续右转;松开时发送 T - 停止左转