查看: 41790|回复: 50

Arduino智能小车蓝牙控制代码及说明

[复制链接]
  • TA的每日心情
    开心
    2017-1-12 15:39
  • 签到天数: 89 天

    [LV.6]常住居民II

    发表于 2015-11-12 10:02 | 显示全部楼层 |阅读模式
    本帖最后由 sxmwhl 于 2018-1-17 11:56 编辑

    说明

    在完成Arduino智能小车的硬件组装接线后,可以为小车添加蓝牙模块进行蓝牙控制,蓝牙控制比红外控制距离更远,指挥更有效。

    教程见:http://www.3dant.cn/index.php/Home/Help/index

    小车套件:https://item.taobao.com/item.htm?id=523953094755

    蓝牙模块接线说明

    蓝牙模块使用调试教程请移步:http://www.3dant.cn/index.php/Home/Help/article?id=8

    蓝牙模块购买地址:https://item.taobao.com/item.htm?id=524020809762

    蓝牙模块与Arduino主板的串口(TX、RX)连接以后,就可以使用安装有蓝牙模块的智能设备,通过串口控制小车运动方向和动作。

    下面以Android手机为例介绍。

    Android手机端设置

    1、安装“蓝牙串口SPP”软件,手机各大APP Store都可以下载,也通过电脑下载:

    蓝牙串口SPP

    蓝牙串口SPP bluetoothSPP.zip

    2、设置五个按钮如下:GO、BACK、STOP、Turn Right、Turn Left。

    蓝牙软件设置

    蓝牙软件设置

    3、每个按钮具体设置如下:

    OFF和ON状态都写按钮名,字符GO发送“G”、BACK发送“B”、STOP发送“S”、Turn Right发送“R”、Turn Left发送“L”。

    蓝牙设置

    蓝牙设置


    代码

    Arduino烧制代码如下,由于接线针脚及顺序有所不同,部分代码可能需要调整。

    [mw_shl_code=cpp,true]
    /*
    蓝牙遥控Arduino小车程序
    功能:小车接收到蓝牙模块发送过来的字符“G”前进,字符“B”后退,字符“L”左转,字符“R”右转,字符“S”停止。
    By 贝壳物联 2015.11.5
    http://www.bigiot.net
    */
    const int L298nIn1 = 2;//L298N模块信号输入
    const int L298nIn2 = 3;
    const int L298nIn3 = 4;
    const int L298nIn4 = 5;
    const String GO = "G";//蓝牙遥控器发送信息代码定义
    const String BACK = "B";
    const String RIGHT = "R";
    const String LEFT = "L";
    const String STOP = "S";
    void setup()
    {
      pinMode(L298nIn1, OUTPUT);
      pinMode(L298nIn2, OUTPUT);
      pinMode(L298nIn3, OUTPUT);
      pinMode(L298nIn4, OUTPUT);
      Serial.begin(9600);
    }
    void goForward() {//小车前进
      digitalWrite(L298nIn1, HIGH);
      digitalWrite(L298nIn2, LOW);
      digitalWrite(L298nIn3, LOW);
      digitalWrite(L298nIn4, HIGH);
    }
    void goBack() {//小车后退
      digitalWrite(L298nIn1, LOW);
      digitalWrite(L298nIn2, HIGH);
      digitalWrite(L298nIn3, HIGH);
      digitalWrite(L298nIn4, LOW);
    }
    void goStop() {//小车停止
      digitalWrite(L298nIn1, LOW);
      digitalWrite(L298nIn2, LOW);
      digitalWrite(L298nIn3, LOW);
      digitalWrite(L298nIn4, LOW);
    }
    void turnRight() {//小车右转
      digitalWrite(L298nIn1, LOW);
      digitalWrite(L298nIn2, HIGH);
      digitalWrite(L298nIn3, LOW);
      digitalWrite(L298nIn4, HIGH);
    }
    void turnLeft() {//小车左转
      digitalWrite(L298nIn1, HIGH);
      digitalWrite(L298nIn2, LOW);
      digitalWrite(L298nIn3, HIGH);
      digitalWrite(L298nIn4, LOW);
    }
    String readTtl() {
      String comdata = "";
      while (Serial.available())
      {
        comdata += char(Serial.read());
        delay(2);
      }
      return comdata;
    }
    void loop()//主循环函数
    {
      String s = readTtl();
      if (s == GO ) goForward();//如果按GO键,小车前进,直到按STOP键停止
      if (s == LEFT ) turnLeft();
      if (s == STOP ) goStop();
      if (s == RIGHT ) turnRight();
      if (s == BACK ) goBack();
    }[/mw_shl_code]

    bluetoothSPP.zip

    775.2 KB, 下载次数: 941

  • TA的每日心情
    开心
    2017-1-12 15:39
  • 签到天数: 89 天

    [LV.6]常住居民II

     楼主| 发表于 2015-11-12 21:33 | 显示全部楼层
    辛辛苦苦搞的代码,没人支持,自己顶一下

    该用户从未签到

    发表于 2015-11-29 13:50 | 显示全部楼层
    支持支持~~~楼主棒棒的,请问按钮是怎么设置的啊
  • TA的每日心情
    开心
    2015-11-4 10:58
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2015-12-19 19:19 | 显示全部楼层
    支持支持  楼主辛苦了
  • TA的每日心情
    擦汗
    2016-1-28 14:53
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2015-12-24 15:44 | 显示全部楼层
    我也下来看看。谢谢!

    该用户从未签到

    发表于 2015-12-24 16:33 | 显示全部楼层
    楼主,问一下那个蓝牙模块的编程呢?
  • TA的每日心情
    开心
    2017-1-12 15:39
  • 签到天数: 89 天

    [LV.6]常住居民II

     楼主| 发表于 2015-12-27 22:02 | 显示全部楼层
    半月°C 发表于 2015-12-24 16:33
    楼主,问一下那个蓝牙模块的编程呢?

    模块本身不用编程啊
  • TA的每日心情
    开心
    2015-12-29 22:04
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2015-12-28 22:16 | 显示全部楼层
    楼主你好 我按照你的代码和软件设置,怎么蓝牙模块接收到的不是软件中设置的字符,而是乱码呢》
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    【干货分享】mega2560原理图PCB图纸altium designer18
    【干货分享】mega2560原理
    分享一下mega2560的板子 AD版本 **** 本内容被作者隐藏 **** ergo
    arduino pid麦克纳姆轮小车程序详解
    arduino pid麦克纳姆轮小
    之前发过几个帖子,大家可以参考,但经过多次尝试,整套系统升级了,优化了很多地方目录:
    稚晖大佬给抄袭了??
    稚晖大佬给抄袭了??
    今天逛淘宝突然看见个小板子叫夸克,夸克???开源的就是容易抄袭啊!下面贴上这家店
    步进电机的frizing模块
    步进电机的frizing模块
    请问哪位大佬有frizing中步进电机的驱动器和限位开关,求带
    关于给esp8266编程和给arduino编程的一些疑问
    关于给esp8266编程和给ard
    本人大一学生,目前正在做创新作业,已经进行到了最后一步:arduino从onenet上调取数
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表