本帖最后由 机器谱 于 2023-8-28 12:54 编辑
1. 功能说明
本文示例实现的功能为:利用 探索者Birdmen手柄扩展板【https://www.robotway.com/h-col-142.html】 和 探索者NRF无线通信模块【https://www.robotway.com/h-col-141.html】 遥控R023样机小型双轮差速底盘做出前进、后退以及转向的动作。
2. 电子硬件
在这个示例中,我们采用了以下硬件,请大家参考:
主控板 | Basra主控板(兼容Arduino Uno) x2
| 扩展板 | Bigfish2.1扩展板 x1
| Birdmen手柄扩展板x1
| 通信 | NRF无线通信模块 x2
| 电池 | 7.4V锂电池 |
3. 功能实现
编程环境:Arduino 1.8.19
3.1下载固件
分别下载master_.ino和slave_.ino到两个Basra主控板(软件解析:master_.ino为上位机程序,slave_.ino为下位机程序)。
注意:先不要堆叠NRF无线通信模块,因为会占用串口,造成下载失败。
① 参考例程(master_.ino):
② 参考例程(slave_.ino): - /*------------------------------------------------------------------------------------
- 版权说明:Copyright 2023 Robottime(Beijing) Technology Co., Ltd. All Rights Reserved.
- Distributed under MIT license.See file LICENSE for detail or copy at
- https://opensource.org/licenses/MIT
- by 机器谱 2023-07-21 https://www.robotway.com/
- ------------------------------*/
- int _ABVAR_1__data = 0 ;
- int _ABVAR_2__data_his = 0 ;
- int _ABVAR_3_0 = 0 ;
- void Right();
- void Select();
- void Left();
- void Stop();
- void Forward();
- void Back();
- void setup()
- {
- Serial.begin(9600);
- pinMode( 5 , OUTPUT);
- pinMode( 6 , OUTPUT);
- pinMode( 9 , OUTPUT);
- pinMode( 10 , OUTPUT);
- _ABVAR_1__data = 3 ;
- _ABVAR_2__data_his = 3 ;
- }
- void loop()
- {
- _ABVAR_1__data = Serial.parseInt() ;
- if (( ( _ABVAR_1__data ) > ( 0 ) ))
- {
- Select();
- }
- else
- {
- _ABVAR_1__data = _ABVAR_2__data_his ;
- Select();
- }
- _ABVAR_2__data_his = _ABVAR_1__data ;
- _ABVAR_1__data = _ABVAR_3_0 ;
- delay( 50 );
- }
- void Left()
- {
- digitalWrite( 5 , LOW );
- digitalWrite( 6 , HIGH );
- digitalWrite( 9 , HIGH );
- digitalWrite( 10 , LOW );
- }
- void Stop()
- {
- digitalWrite( 5 , LOW );
- digitalWrite( 6 , LOW );
- digitalWrite( 9 , LOW );
- digitalWrite( 10 , LOW );
- }
- void Back()
- {
- digitalWrite( 5 , LOW );
- digitalWrite( 6 , HIGH );
- digitalWrite( 9 , LOW );
- digitalWrite( 10 , HIGH );
- }
- void Forward()
- {
- digitalWrite( 5 , HIGH );
- digitalWrite( 6 , LOW );
- digitalWrite( 9 , HIGH );
- digitalWrite( 10 , LOW );
- }
- void Select()
- {
- if (( ( _ABVAR_1__data ) == ( 1 ) ))
- {
- Forward();
- }
- if (( ( _ABVAR_1__data ) == ( 2 ) ))
- {
- Back();
- }
- if (( ( _ABVAR_1__data ) == ( 3 ) ))
- {
- Stop();
- }
- if (( ( _ABVAR_1__data ) == ( 4 ) ))
- {
- Left();
- }
- if (( ( _ABVAR_1__data ) == ( 5 ) ))
- {
- Right();
- }
- }
- void Right()
- {
- digitalWrite( 5 , HIGH );
- digitalWrite( 6 , LOW );
- digitalWrite( 9 , LOW );
- digitalWrite( 10 , HIGH );
- }
复制代码
3.2 硬件连接
① 将Birdmen手柄扩展板堆叠到下载了master_.ino的Basra主控板上,然后堆叠上NRF无线通信模块。
② 将Bigfish扩展板堆叠到下载了slave_.ino的Basra主控板上,再堆叠上NRF无线通信模块。
③ 将小型双轮差速底盘的直流电机连到Bigfish扩展板的电机接口上。
④ 用master右侧的摇杆遥控slave,调整电机的接线,直到摇杆动作和小车动作匹配。
4. 资料下载
资料内容:程序源代码
资料下载地址:小型双轮差速底盘-无线遥控 https://www.robotway.com/h-col-113.html
|