Skip to content

Releases: QingchenWait/ShipDominator

驭船术 V7:最终版本

16 Jul 00:24
8f2f0cd
Compare
Choose a tag to compare

驭船术 V7

最终交付的版本,可用于垃圾收集船实物的控制程序。

  • 更新和修复
    新增 - 引入了两个新的 DC 马达,用于控制船体中用于运输垃圾的传送带,可以通过蓝牙控制它们的启停。
    修改 - 适配了 Arduino Mega 2560 版控制器。
    修改 - 适配了在实物中使用的两个马达驱动板(具体型号将在下面提及)。
    修改 - 为了控制程序的易调试性,删去了 OLED 屏幕显示运行状态的功能,改为直接在遥控端 APP 上进行显示。

  • 使用的零件
    Arduino Mega 2560 开发板 x1;面包板 x1;9V 电源模块 x1;DC 马达 x4;
    Cytron MDD10A 10A 5-30V Dual Channel 马达驱动板 x1(用于驱动为船体提供航行动力的马达);
    L293D 600mA Dual H-Bridge Motor Driver Shield x1(用于驱动使传送带运转的马达);
    HC-05 蓝牙接收模块 x1;Android手机 x1;“蓝牙调试器”安卓端软件;

  • 注意事项
    (1) 对于一块新的蓝牙模块,首先需要向 Arduino 烧录 V6 版本中附带的 Bluetooth_AT_InitializeV2 文件夹下的程序(或者直接下载本版本下的文件,然后使用Bluetooth_AT_Initialize 文件夹下的程序)。这个程序的功能,是将 HC-05 模块初始化,并自动设定各项参数。接线方式如图:
    image
    (2) 马达驱动板的厂商,已经对引脚功能进行了预先定义,在接线的时候,需要遵循这些定义。L293D 驱动板的功能如下表所示:

Motor Control PWM IN1 IN2
MOTOR1 M1A/M1B D6 D2 D3
MOTOR2 M2A/M2B D9 D4 D5
MOTOR3 M3A/M3B D10 D7 D8
MOTOR4 M4A/M4B D11 D12 D13
  • 整体接线图
    image
    引脚的连接方式,如下表所示:
L293D MDD10A HC-05
引脚名称 To Arduino 引脚名称 To Arduino 引脚名称 To Arduino
DIR1 D31 D6 D3 VCC 5V
PWM1 D5 D2 D39 GND GND
DIR2 D33 D3 D41 TXD RX
PWM2 D6 D9 D4 RXD TX
GND GND D4 D43  
  D5 D45
  • 控制端 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 - 停止左转
    (9) Belt On 按钮:按下时发送 B - 启动传送带;
    (10) Belt Off 按钮:按下时发送 E - 关闭传送带;

控船术 V6

15 Jul 16:53
baa8679
Compare
Choose a tag to compare

控船术 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 - 停止左转

控船术 V2

23 Feb 13:40
5c3265d
Compare
Choose a tag to compare

控船术 V2

  • 更新和修复
    新增 - 通过 L293D 控制芯片,使用 Arduino 同时驱动两个 DC 马达,并通过红外遥控器控制马达启停。
    修改 - 由于第二个马达的引入,修改了马达控制引脚的变量名。“L" 开头的变量代表左侧马达,"R" 开头的变量代表右侧马达。
    修改 - 响应输入信号后留给系统中断的延迟,由 delay(500) 修改为 delay(200) 。暂未对程序的运行产生负面影响。

  • 使用的零件
    Arduino Uno 开发板 x1;面包板 x1;供电模块 x1;DC电机 x2;L293D控制芯片 x1;
    红外接收器 x1;遥控器 x1;导线若干。

  • 注意事项
    (1) 在向Ardunio上传烧录程序之前,需要预先导入 IRremote 库。 需要在主界面顶部的菜单中,选择“项目 - 加载库 - 添加 .ZIP库“,找到名为IRremote的压缩包文件。
    (2) 为了让L293D成功控制转速,必须把芯片的两个Enable端连接到Arduino上的PWM引脚,这样才能为芯片传传递具有脉冲宽度的PWM信号。在Arduino上,有标注 "~" 的引脚才是PWM引脚。
    (3) 关于两个GND引脚的接线:鉴于UNO板在数字信号区只有一个GND引脚,将两个马达都接在该区域内的引脚显然是不现实的。可以像接线图中所示、利用面包板创建并联电路。

  • 接线图
    image

  • 控制逻辑
    (1) 按下电源键:两只马达同时开始运转。
    (2) 按下 |<< 键:模拟左转,左马达停转,右马达转动;3秒后,两只马达继续正常运转。
    (3) 按下 >>| 键:模拟右转,右马达停转,左马达转动;3秒后,两只马达继续正常运转。
    (4) 按下STOP键:两只马达同时停转。

控船术 V1

19 Feb 13:39
bec9db7
Compare
Choose a tag to compare

控船术 V1

  • 新增功能
    一些基本功能的实现:成功使用Arduino驱动DC马达,并通过红外遥控器控制马达启停。

  • 使用的零件
    Arduino Uno 开发板 x1;面包板 x1;供电模块 x1;DC电机 x1;L293D控制芯片 x1;
    红外接收器 x1;遥控器 x1;导线若干。

  • 注意事项
    (1) 在向Ardunio上传烧录程序之前,需要预先导入 IRremote 库。 需要在主界面顶部的菜单中,选择“项目 - 加载库 - 添加 .ZIP库“,找到名为IRremote的压缩包文件。
    (2) 在录制实验结果视频的时候,发现手机的摄像头,以及OLED屏幕,居然会对红外接受模块产生干扰,导致接收失败!这一点仍然需要进一步验证。

  • 接线图
    V1 接线图