电子说
1. 功能描述
本文提供的示例所实现的功能为:用手机APP遥控斜三角履带底盘样机实现移动,包括前进、停止、后退、原地左转、原地右转。
2. 电子硬件
在这个示例中,采用了以下硬件,请大家参考:
Basra主控板(兼容Arduino Uno)、Bigfish2.1扩展板、7.4V锂电池、蓝牙串口模块
为斜三角履带底盘样机安装蓝牙串口模块,斜三角履带底盘样机有两种摆放方式:
车身右侧为安装了蓝牙串口模块的主控板,左侧控制板请忽略
3. 示例程序
编程环境:Arduino 1.8.19
程序通过使用if语句来判断读取到的串口的不同字符值来匹配不同的动作,从而实现对机器人的远程控制。
接收到“1”的时候,执行前进;
接收到“2”的时候,执行后退;
接收到“3”的时候,执行左转;
接收到“4”的时候,执行右转;
接收到“5”的时候,执行停止;
手机APP的键值按上述规则进行配置,然后单片机接收到不同的信息,对应执行不同的动作。
例程代码(robot_ble_control.ino)如下:
/*------------------------------------------------------------------------------------ 版权说明:Copyright 2022 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 机器谱 2022-9-28 https://www.robotway.com/ ------------------------------ 实功能: 从串口(蓝牙)接收字符,根据不同字符分别做出前进、后退、停止、原地左转、原地右转的动作。 ----------------------------------------------------- 实验接线: 左轮:D9,D10 右轮:D5,D6。 ------------------------------------------------------------------------------------*/ int _ABVAR_1_Bluetooth_data = 0 ; void Left(); void Stop(); void Right(); void Back(); void Forward(); void setup() { Serial.begin(9600); pinMode( 5 , OUTPUT); pinMode( 6 , OUTPUT); pinMode( 9 , OUTPUT); pinMode( 10 , OUTPUT); } void loop() { _ABVAR_1_Bluetooth_data = Serial.parseInt() ; if (( ( _ABVAR_1_Bluetooth_data ) > ( 0 ) )) { if (( ( _ABVAR_1_Bluetooth_data ) == ( 1 ) )) { Forward(); } if (( ( _ABVAR_1_Bluetooth_data ) == ( 2 ) )) { Back(); } if (( ( _ABVAR_1_Bluetooth_data ) == ( 3 ) )) { Left(); } if (( ( _ABVAR_1_Bluetooth_data ) == ( 4 ) )) { Right(); } if (( ( _ABVAR_1_Bluetooth_data ) == ( 5 ) )) { Stop(); } } } void Right() { digitalWrite( 5 , HIGH ); digitalWrite( 6 , LOW ); digitalWrite( 9 , LOW ); digitalWrite( 10 , HIGH ); } void Back() { digitalWrite( 5 , HIGH ); digitalWrite( 6 , LOW ); digitalWrite( 9 , HIGH ); digitalWrite( 10 , LOW ); } void Left() { digitalWrite( 5 , LOW ); digitalWrite( 6 , HIGH ); digitalWrite( 9 , HIGH ); digitalWrite( 10 , LOW ); } void Forward() { digitalWrite( 5 , LOW ); digitalWrite( 6 , HIGH ); digitalWrite( 9 , LOW ); digitalWrite( 10 , HIGH ); } void Stop() { digitalWrite( 5 , HIGH ); digitalWrite( 6 , HIGH ); digitalWrite( 9 , HIGH ); digitalWrite( 10 , HIGH ); } |
审核编辑 黄昊宇
全部0条评论
快来发表一下你的评论吧 !