1. 功能描述
用手机APP遥控履带机械臂小车样机实现移动和搬运。
2. 所用样机
履带机械臂小车
3. 电子硬件
在这个实验中,采用了以下硬件,请大家参考:
Basra主控板(兼容Arduino Uno)、Bigfish2.1扩展板、7.4V锂电池、蓝牙串口模块
下图为履带机械臂小车样机安装了蓝牙串口模块后的样子。
4. 示例程序
编程环境:Arduino 1.8.19
程序通过使用if语句来判断读取到的串口的不同字符值来匹配不同的动作,从而实现对机器人的远程控制。
接收到“1”的时候,执行前进;
接收到“2”的时候,执行后退;
接收到“3”的时候,执行左转;
接收到“4”的时候,执行右转;
接收到“5”的时候,执行停止;
接收到“6”的时候,机械爪打开;
接收到“7”的时候,机械爪闭合。
手机APP的键值按上述规则进行配置,然后单片机接收到不同的信息,对应执行不同的动作。
例程代码(211a_Bluetooth_RC.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/ ------------------------------ 实功能: 从串口(蓝牙)接收字符,根据不同字符分别做出前进、后退、原地左转、原地右转、夹爪打开、夹爪闭合的动作。 ----------------------------------------------------- 实验接线: 机械爪:D3 左轮:D9,D10 右轮:D5,D6。 ------------------------------------------------------------------------------------*/ #include <Servo.h> int a = 0 ; Servo servo_pin_3; void Open(); void Close(); void Spot_turn_Right(); void Spot_turn_Left(); void Stop(); void Backwards(); void Forward(); void setup() { pinMode( 10, OUTPUT); pinMode( 6, OUTPUT); pinMode( 5, OUTPUT); pinMode( 9, OUTPUT); Serial.begin(9600); servo_pin_3.attach(3); } void loop() { a = Serial.parseInt() ; if (( ( a ) > ( 0 ) )) { if (( ( a ) == ( 1 ) )) { Forward(); } if (( ( a ) == ( 2 ) )) { Backwards(); } if (( ( a ) == ( 3 ) )) { Spot_turn_Left(); } if (( ( a ) == ( 4 ) )) { Spot_turn_Right(); } if (( ( a ) == ( 5 ) )) { Stop(); } if (( ( a ) == ( 6 ) )) { Open(); } if (( ( a ) == ( 7 ) )) { Close(); } } } void Spot_turn_Right() { analogWrite(5 , 255); analogWrite(6 , 0); analogWrite(9 , 0); analogWrite(10 , 255); } void Stop() { analogWrite(5 , 255); analogWrite(6 , 255); analogWrite(9 , 255); analogWrite(10 , 255); } void Backwards() { analogWrite(5 , 255); analogWrite(6 , 0); analogWrite(9 , 255); analogWrite(10 , 0); } void Forward() { analogWrite(5 , 0); analogWrite(6 , 255); analogWrite(9 , 0); analogWrite(10 , 255); } void Spot_turn_Left() { analogWrite(5 , 0); analogWrite(6 , 255); analogWrite(9 , 255); analogWrite(10 , 0); } void Close() { servo_pin_3.write( 70 ); } void Open() { servo_pin_3.write( 110 ); } |
5. 资料下载
资料内容:样机组装步骤图、蓝牙遥控例程源代码(详情请参考蓝牙遥控搬运-履带机械臂小车)