蓝牙遥控履带底盘行驶

电子说

1.3w人已加入

描述

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 );
}

 

审核编辑 黄昊宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分