蓝牙智能车arduino_arduino蓝牙智能小车 - CSDN
  • 很多热衷于玩单片机小车、机器人的童靴,往往也向往着有天能自己编写一个Android手机的遥控程序,通过自己的手机遥控小车,单片机程序用C语言或者汇编什么的都可以容易完成,,无奈要写一个上位机的Android控制程序...

     很多热衷于玩单片机小车、机器人的童靴,往往也向往着有天能自己编写一个Android手机的遥控程序,通过自己的手机遥控小车,单片机程序用C语言或者汇编什么的都可以容易完成,,无奈要写一个上位机的Android控制程序就要会java、还要学一点xml知识,对于只学过C 或C++的人来说……..╮(╯▽╰)╭

             不过万能的Google提供了一款云端Android程序开发工具: AppInventor。因为对于想要用手机控制机器人的使用者而言,他们不大需要太华丽的界面,只要使用基本组件例如按钮、文字输入输出即可,所以,App Inventor 让你抛开复杂的程序代码,使用搭积木式的方法来完成您的Android程序。(完全不需要编程哦)

    上个效果图先。



             呵呵,有没有跃跃欲试的冲动?按照下面的步骤一步一步来吧:

    一、            要有一台电脑(废话呀…………)

    系统需求:

    1)Macintosh:Mac OS X 10.5,10.6

    2)Windows系列:Windows XP,Windows Vista,Windows 7都可以的

    3)GUN/Linux系统:Ubuntu 8+,Debian 5+ 等。

     

    1)Mozilla Firefox 3.6或更高

    2)Apple Safari 5.0或更高

    3)Google Chrome 4.0或更高

    4)IE6及更高

    其次测试一下你的Java环境配置是否正确:

    这需要在你的电脑上能够运行Java ,目前官方更新到了Java 7,如果没有安装的话,可以在Oracle官方网站上去下载(我的电脑有没有装了java呢?到java 的官方链接里看一下知道了http://www.java.com/zh_CN/download/installed.jsp)。

     

    要有一个Gmail帐号,个人认为Gmail邮箱是必备的邮箱啊,没有就申请一个。

    最后,安装App Inventor软件包:在使用App Inventor之前,你还需要安装一个叫做App Inventor Setup的软件包在你的电脑上。当然你需要根据你的操作系统来下载不同的软件包的。这里我提供的是Windows系统下的软件包,其他的可以在Google的网站上去下载!Download!!下载完成后的文件名应该是:AppInventor_Setup_Installer_v_1_2.exe (~92 MB), 点击打开安装即可,这里建议最好不要更改安装路径的。这里提供以下地址:

    http://beta.appinventor.mit.edu/learn/setup/setupwindows.html

    到目前为止,以上4个步骤如果都顺利,那么我们可以登录这里开始编写Android软件啦:http://appinventor.mit.edu/

    点击右边的红色“Invent”按钮进入MyProjects页面,这里就可以新建工程,开始编写Android软件了。


    网站上也提供了一些教程。有兴趣可以浏览下。


    二、            编写下位机(单片机小车)程序,设置好蓝牙通信协议。

    走到第二步,对于很多智能小车、机器人爱好者来说都不是问题了。

    先理一下Android手机与小车的遥控方式:


    这样一来,手机发送事先规定好的数据指令,蓝牙模块接收到,再传送给小车,小车对指令进行一下Switch,,是前进指令的就前进、该后退的就后退……

    相应的,下位机小车应该要有的几个基本功能函数,它们应该是:

    前进函数(Forward(void) )、后退(Backward(void) )、左转(Lift(void))、右转(Right(void) )、停止(Stop(void) )。

    这里名称是否一致,内容是什么的无关紧要,你也可以拿来控制机器人相应的动作,下位机由人怎么写控制函数的程序段都行。。这里是我们设定的小车的协议,有这个现成的下位机程序供我们驱动,玩其他智能小车、机器人的童靴可以自己编嘛。   

    (程序在:   LHcar光盘\No.3-Lighthouse源代码\Chapter10-小车综合程序\No.8-Android遥控蓝牙小车)




    目前就先控制这几个命令吧,协议里面加、减速,转圈等功能就不做控制了。

                       个人按照自己的要求写好下位机程序,这一步就算完成了。

     

    三、            利用Appinventor开始搭建Android控制软件。


    第三步了,在这之前先对Appinventor界面做一下讲解:

    A、建立一个新工程:(红框所示位置)


    B、如图,进入到了软件编辑界面以此可见各个区域的功能(控件编辑区虚拟的软件界面软件所添加使用的控件当前选中控件的属性Block EditorandPackage for Phone


    我们将需要使用的控件从控件编辑区拖拽到虚拟的软件界面并对相应的控件修改其属性。

    添加完控件,点击Block Editor将进入搭积木式的编程界面 :



    “New emulator”是生成一个Android模拟机,由于体态传感器和蓝牙设备模拟器是无法实现的,所以还是连接自己的手机吧,右边的“Connect to Device”可以连接自己的手机,这样编程过程中,会实时的显示软件界面和程序运行状况。

    展开全文
  • 首先材料,L298N,步进电机,杜邦线,HC-05蓝牙模块,arduino模块 制作智能小车的连线部分网上都有, 这里只说蓝牙部分,首先你要依照网上所说的把hc-05进入AT调成从模式,别的随意 然后就是arduino蓝牙模块的...

    本人比较懒,纯文本

    首先材料,L298N,步进电机,杜邦线,HC-05蓝牙模块,arduino模块

    制作智能小车的连线部分网上都有,

    这里只说蓝牙部分,首先你要依照网上所说的把hc-05进入AT调成从模式,别的随意

    然后就是arduino与蓝牙模块的连接:5v---5v ,GND----GND,tx---rx,rx---tx

    然后就是代码了:

    #define IN1 2
    #define IN2 4
    #define IN3 5
    #define IN4 7
    #define ENA 3
    #define ENB 6
    #define TURNSPEED 100
    #define RUNSPEED 60
    void go_forward();
    void turn_left();
    void turn_right();
    void go_back();
    void setup() {
      pinMode(IN1, OUTPUT);
      pinMode(IN2, OUTPUT);
      pinMode(IN3, OUTPUT);
      pinMode(IN4, OUTPUT);
      pinMode(ENA, OUTPUT);
      pinMode(ENB, OUTPUT);
      Serial.begin(9600); 
      Serial.println("BT is ready!");
    }
      int val;
    void loop() {
      if (Serial.available()) {
      val = Serial.read();
      switch(val){
      case '0':
      stop_s();delay(100);break;
      case '1':
      go_forward(RUNSPEED,RUNSPEED);delay(100);break;
      case '2':
      turn_left(TURNSPEED,TURNSPEED);delay(100);break;
      case '3':
      go_back(RUNSPEED,RUNSPEED);delay(100);break;
      case '4':
      turn_right(TURNSPEED,TURNSPEED);delay(100);break;
      default:
      Serial.println("error");delay(100);break;
               }
        }
    }
    void stop_s(){
      digitalWrite(IN1,LOW);
      digitalWrite(IN2,LOW);
      digitalWrite(IN3,LOW);
      digitalWrite(IN4,LOW);    
      }
    void go_forward(int L,int R){
    digitalWrite(IN1,HIGH);
    digitalWrite(IN2,LOW);
    digitalWrite(IN3,HIGH);
    digitalWrite(IN4,LOW);
      analogWrite(ENA, L);//control speed
      analogWrite(ENB, R);//control speed
    }
    //the connection of my L298N is wrong
    //IN1,IN2 is right,IN3,IN4 is left;
    void turn_left(int L,int R){
    digitalWrite(IN3,LOW);
    digitalWrite(IN4,HIGH);
    digitalWrite(IN1,HIGH);
    digitalWrite(IN2,LOW);
      analogWrite(ENA, L);
      analogWrite(ENB, R);
    }
    void turn_right(int L,int R){
    digitalWrite(IN3,HIGH);
    digitalWrite(IN4,LOW);
    digitalWrite(IN1,LOW);
    digitalWrite(IN2,HIGH);
      analogWrite(ENA, L);
      analogWrite(ENB, R);
    }
    void go_back(int L,int R){
    digitalWrite(IN1,LOW);
    digitalWrite(IN2,HIGH);
    digitalWrite(IN3,LOW);
    digitalWrite(IN4,HIGH);
      analogWrite(ENA, L);
      analogWrite(ENB, R);
    }



    手机上下载蓝牙串口spp,键盘的界面进行设置信号输入到arduino的信号按钮,呵呵

    在我尝试的过程中发现使用使用if语句达不到效果必须要使用case语句。

    还有我的电机的连线是反的,IN1和IN2控制的是右边的电机。

    最后感谢贴吧和CSDN的大佬们,也希望这篇文章对小伙伴们也有所帮助。




     

     

     

    展开全文
  • Arduino智能小车——蓝牙小车  上一章我们完成了小车的运动控制,虽然小车已经可以运动,但是不能远程遥控,不够高大上。在这一篇,我们将尝试用手机蓝牙遥控小车。蓝牙模块  蓝牙( Bluetooth® ):是一种无线...

    Arduino智能小车——蓝牙小车

      上一章我们完成了小车的运动控制,虽然小车已经可以运动,但是不能远程遥控,不够高大上。在这一篇,我们将尝试用手机蓝牙遥控小车。

    蓝牙模块

      蓝牙( Bluetooth® ):是一种无线技术标准,可实现固定设备、移动设备和楼宇个人域网之间的短距离数据交换(使用2.4—2.485GHz的ISM波段的UHF无线电波)。

      我们在此使用的蓝牙模块(HC-05)已经在内部实现了蓝牙协议,不用我们再去自己开发调试协议。这类模块一般都是借助于串口协议通信,因此我们只需借助串口将我们需要发送的数据发送给蓝牙模块,蓝牙模块会自动将数据通过蓝牙协议发送给配对好的蓝牙设备。

    串口通信

      由于要借助串口实现蓝牙通信功能,所以我们在此要先了解下Arduino的串口通信。

      Arduino UNO开发板上的串口为0->RX,1->TX,在开发板内部也已经配置好了串口的功能,我们只需调用函数借口即可。以下列出串口通信里面常用的函数,并加以简单解释,详细用法可在用到时自行查询。

    开启串行通信接口并设置通信波特率

    Serial.begin(speed); 
    

    关闭串口通信

    Serial.end();    
    

    判断串口缓冲器是否有数据写入

    Serial.available();
    

    读取串口数据

    Serial.read();    
    

    返回下一字节(字符)输入数据,但不删除它

    Serial.peek();   
    

    清空串口缓存

    Serial.flush();    
    

    写入字符串数据到串口

    Serial.print();    
    

    写入字符串数据+换行到串口

    Serial.println(); 
    

    写入二进制数据到串口

    Serial.write();     
    

    read时触发的事件函数

    Serial.SerialEvent();
    

    读取固定长度的二进制流

    Serial.readBytes(buffer,length);
    

    打印接到数据十进制表示的ascii码

    Serial.println(incomingByte, DEC);
    

    蓝牙模块连接

    TX: 接Arduino UNO开发板"RX"引脚
    RX: 接Arduino UNO开发板"TX"引脚
    GND: 接Arduino UNO开发板"GND"引脚
    VCC: 接Arduino UNO开发板"5V"或"3.3V"引脚

    手机蓝牙助手

      想实现手机蓝牙遥控小车,手机APP是必不可少的,目前网上有很多蓝牙串口助手,省去了我们自己写APP的时间,当然如果朋友你有能力或者想自己DIY的话也可以尝试自己写APP,在这里我推荐大家用这款手机蓝牙助手(百度上搜手机蓝牙串口助手就可以搜到,挺好用的)

      如果不想自己去找的话可以到我的百度网盘下载 [点击这里下载](http://pan.baidu.com/s/1pKClRTL)

      下载并安装后打开APP,在这里可能会提示你有新版本请求更新,建议点击以后再说(暂时不更新),以我的经验,一般点击立即更新都会更新失败。

      进入主界面,左上角会提示"蓝牙未连接",这个时候我们可以先对蓝牙助手的界面进行自定义设置。点击右下角的三个点(在我这里是这样的,其他手机可能不同,如果没有这三个点可以试着点击手机的功能键),选择“更多”。
      然后选择“地面站设置”进入自定义界面,往下拖动,找到“自定义按键[x]”,在此我们对按键[1][2][3][4][6]进行自定义设置。
    **  点击自定义按键[1],将其“显示名称”属性改为“停止”,“点击发送”属性改为“00”,并点击“确定”保存**
    同理更改其他按键:

    点击自定义按键[2],将其“显示名称”属性改为“前进”,“点击发送”属性改为“01”,并点击“确定”保存
    点击自定义按键[4],将其“显示名称”属性改为“左转”,“点击发送”属性改为“03”,并点击“确定”保存
    点击自定义按键[5],将其“显示名称”属性改为“后退”,“点击发送”属性改为“02”,并点击“确定”保存
    点击自定义按键[6],将其“显示名称”属性改为“右转”,“点击发送”属性改为“04”,并点击“确定”保存

      以上修改的属性值即为我们点击对应按键之后,蓝牙串口助手自动通过蓝牙发送的数据,与上一篇所定义的小车的几个状态一致,这样方便在Arduino在接收到蓝牙模块的数据后对小车的状态进行控制。

    #define STOP      0
    #define FORWARD   1
    #define BACKWARD  2
    #define TURNLEFT  3
    #define TURNRIGHT 4
    

    修改后属性如下图

    下面就来看看我们修改的效果吧,点击“模式切换”

    这时候你就可以看到我们自定义的按键咯,看看修改前后的对比吧。
      接下来我们将连接蓝牙,仍然点击右下角的三个点,然后点击“连接”
      一般没有连接过蓝牙模块的时候“已配对的设备”下面没有可选择的设备名称,因此我们要点击“扫描新设备”来检测我们的蓝牙模块,扫描成功后蓝牙模块的名称将显示在“已配对的设备”一栏中
      点击我们的蓝牙模块的名称,输入密码进行配对。配对成功后在蓝牙串口助手的左上角会显示“蓝牙已连接”字样,恭喜你,这时候你已经连接成功。

    小科普:
      蓝牙模块上电(只简单连接"VCC"和"GND"引脚)之后,其他蓝牙设备即可与其连接,一般蓝牙模块默认初始连接密码为"0000"或"1234",如果连接不上蓝牙,请尽快与厂商或者店家联系。蓝牙模块上电后LED指示灯不断闪亮,当有设备连接预期连接之后会隔一段闪两下,蓝牙串口助手也会有相应已连接的提示。

    ##Arduino代码编写
    新建一个工程,将下面代码复制到工程内

    #define STOP      0
    #define FORWARD   1
    #define BACKWARD  2
    #define TURNLEFT  3
    #define TURNRIGHT 4
    
    int leftMotor1 = 4;
    int leftMotor2 = 5;
    int rightMotor1 = 6;
    int rightMotor2 = 7;
    
    void setup() {
      // put your setup code here, to run once:
      Serial.begin(9600);
      pinMode(leftMotor1, OUTPUT);
      pinMode(leftMotor2, OUTPUT);
      pinMode(rightMotor1, OUTPUT);
      pinMode(rightMotor2, OUTPUT);
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
      //usart read
      if(Serial.available()>0)
      {
        char cmd = Serial.read();//读取蓝牙模块发送到串口的数据
      
        Serial.print(cmd);
        motorRun(cmd);
          
      }  
    }
    void motorRun(int cmd)
    {
      switch(cmd){
        case FORWARD:
          Serial.println("FORWARD"); //输出状态
          digitalWrite(leftMotor1, HIGH);
          digitalWrite(leftMotor2, LOW);
          digitalWrite(rightMotor1, HIGH);
          digitalWrite(rightMotor2, LOW);
          break;
         case BACKWARD:
          Serial.println("BACKWARD"); //输出状态
          digitalWrite(leftMotor1, LOW);
          digitalWrite(leftMotor2, HIGH);
          digitalWrite(rightMotor1, LOW);
          digitalWrite(rightMotor2, HIGH);
          break;
         case TURNLEFT:
          Serial.println("TURN  LEFT"); //输出状态
          digitalWrite(leftMotor1, HIGH);
          digitalWrite(leftMotor2, LOW);
          digitalWrite(rightMotor1, LOW);
          digitalWrite(rightMotor2, HIGH);
          break;
         case TURNRIGHT:
          Serial.println("TURN  RIGHT"); //输出状态
          digitalWrite(leftMotor1, LOW);
          digitalWrite(leftMotor2, HIGH);
          digitalWrite(rightMotor1, HIGH);
          digitalWrite(rightMotor2, LOW);
          break;
         default:
          Serial.println("STOP"); //输出状态
          digitalWrite(leftMotor1, LOW);
          digitalWrite(leftMotor2, LOW);
          digitalWrite(rightMotor1, LOW);
          digitalWrite(rightMotor2, LOW);
      }
    }
    

      朋友们大概也发现了,这个代码和上一篇的代码基本上相同,只不过增加了串口的内容。

    ##代码详解
      串口初始化函数,想要通过串口的库函数对串口进行操作,必须在void set_up()函数中对其进行初始化。

    Serial.begin(9600);
    

      在void loop()函数内,加入了检测串口接收内容的函数,并将接收到的命令输入到 void motorRun(int cmd)函数中控制小车运动。

    if(Serial.available()>0)
      {
        char cmd = Serial.read();
      
        Serial.print(cmd);
        motorRun(cmd);
      }  
    

    蓝牙小车测试

      下载程序之后,重新连接蓝牙模块,切换到我们自定义的按键界面,快试试蓝牙遥控小车吧。

    附件

    安卓手机蓝牙串口点击下载,也可以复制链接 https://download.csdn.net/download/qq_16775293/11165678 到浏览器下载。

    欢迎各位有兴趣的朋友加入Q群1:789127261点评、交流

    展开全文
  • 遥控小车是每个人童年的最爱,不仅好奇它的奇妙,更是喜欢它...本文为基于arduino的手机蓝牙遥控小车 基于arduino的手机蓝牙遥控小车 基于arduino的红外遥控小车 基于arduino的无线NRF24L01遥控小车 基于ardu...

    遥控小车是每个人童年的最爱,不仅好奇它的奇妙,更是喜欢它带来的刺激。小编为大家带来几篇博客,来给大家讲讲制作遥控小车的程序。

    看大标题可知我们一共有五个方法去制作一款带有遥控功能的小车,小编分开来给大家讲解。

    本文为基于arduino的手机蓝牙遥控小车


    基于arduino的手机蓝牙遥控小车

    基于arduino的红外遥控小车

    基于arduino的无线NRF24L01遥控小车

    基于ardunio的无线手柄遥控小车

    基于ardunio的有线手柄遥控小车

     

    从0到1教你做:基于手机蓝牙的Arduino的遥控小车

    bilibili:https://www.bilibili.com/video/av74340803/

    腾讯视频:https://v.qq.com/x/page/z3016nw00yq.html

     

    获取该源码方式:

    1、CSDN下载:

    https://download.csdn.net/download/qq_38351824/11107057

     

    2、可以关注点赞并在下方评论,我给你邮箱发过去。

     

    3、关注微信公众号下载:

         ① 关注微信公众号:Tech云  

         ②

     

    一、接线:

    (1)HC05蓝牙接线:

               

    连接方式:蓝牙上的RX和TX分别接arduino板子上的TX和RX

    !!!注意!!!  下载程序的时候要拔掉蓝牙模块(或拔掉arduino板上RX引脚或让蓝牙断电),否则会出现下载错误。

    (2)电机接线:

    四个逻辑通道从左到右(即IN1到IN4)分别接5、6、9、10

    12v供电,5伏输出给arduino供电

    注意:此处驱动一定要和arduino共地!!!否则无法传输数据。

    输出A接左边电机,输出B做右边电机

    二、书写代码:

    然后将以下代码下载到arduino板:

    //-------------------------------------------------------------------//
    //*******************************************************************//
    ///////////////////////////////////////////////////////////////////////
    //////////////////////////////电机设置/////////////////////////////////
    ///////////////////////////////////////////////////////////////////////
    
    #define leftA_PIN 5
    #define leftB_PIN 6
    #define righA_PIN 9
    #define righB_PIN 10
    void motor_pinint( );     //引脚初始化
    void forward( );          //前进
    void back( );             //后退
    void turnLeftOrigin( );   //原地左
    void turnRightOrigin( );  //原地右
    void turnRightforword( ); //右前
    void turnLeftforword( );  //左前
    void turnLeftback( );     //左后
    void turnRightback( );    //右后
    void _stop();             //停车
    
    //-------------------------------------------------------------------//
    //*******************************************************************//
    ///////////////////////////////////////////////////////////////////////
    //////////////////////////////蓝牙遥控/////////////////////////////////
    ///////////////////////////////////////////////////////////////////////
    int receive;
    void reve(void);
    
    //----------------------------------------------------------------//
    
    void setup()
    {
      Serial.begin(9600); //串口波特率9600(手机端使用)
      motor_pinint( );
    }
    void loop()
    {
       reve();
    }
     
    void reve(void)
    {
              receive=Serial.parseInt();
           if(receive==7)     {forward( )         ;delay(500);_stop();}//前进
      else if(receive==6)     {back( )            ;delay(500);_stop();}//后退
      else if(receive==1)     {_stop()            ;delay(500);_stop();}//停车
      else if(receive==3)     {turnLeftforword( ) ;delay(500);_stop();}//左前
      else if(receive==2)     {turnRightforword( );delay(500);_stop();}//右前
      else if(receive==5)     {turnLeftback( )    ;delay(500);_stop();}//左后
      else if(receive==4)     {turnRightback( )   ;delay(500);_stop();}//右后
      else if(receive==8)     {turnLeftOrigin( )  ;delay(250);_stop();}//原地左
      else if(receive==9)     {turnRightOrigin( ) ;delay(250);_stop();}//原地右
    }
    
    /*电机引脚初始化*/
    void motor_pinint( )
    {
      pinMode (leftA_PIN, OUTPUT); //设置引脚为输出引脚
      pinMode (leftB_PIN, OUTPUT); //设置引脚为输出引脚
      pinMode (righA_PIN, OUTPUT); //设置引脚为输出引脚
      pinMode (righB_PIN, OUTPUT); //设置引脚为输出引脚
      }
    /**************************************************
    forward子函数——前进子函数
    函数功能:控制车前进
    **************************************************/
    void forward( )
    {
      analogWrite(leftA_PIN,180);      
      analogWrite(leftB_PIN,0);         //左轮前进
      analogWrite(righA_PIN,180);      
      analogWrite(righB_PIN,0);         //右轮前进
    }
    /**************************************************
    back子函数——后退子函数
    函数功能:控制车后退
    **************************************************/
    void back( )
    {
      analogWrite(leftA_PIN,0);      
      analogWrite(leftB_PIN,180);        //左轮后退
      analogWrite(righA_PIN,0);      
      analogWrite(righB_PIN,180);        //右轮后退
    }
    /**************************************************
    turnLeftOrigin子函数——原地左转子函数
    函数功能:控制车原地左转
    **************************************************/
    void turnLeftOrigin( )
    {
      analogWrite(leftA_PIN,0);      
      analogWrite(leftB_PIN,120);        //左轮后退
      analogWrite(righA_PIN,120);      
      analogWrite(righB_PIN,0);          //右轮前进
    }
    /**************************************************
    turnRightOrigin子函数——原地右转子函数
    函数功能:控制车原地右转
    **************************************************/
    void turnRightOrigin( )
    {
      analogWrite(leftA_PIN,120);      
      analogWrite(leftB_PIN,0);        //左轮前进
      analogWrite(righA_PIN,0);      
      analogWrite(righB_PIN,120);      //右轮后退
    }
    /**************************************************
    turnRightforword子函数——右前运动子函数
    函数功能:控制车右前
    **************************************************/
    void turnRightforword( )
    {
      analogWrite(leftA_PIN,200);      
      analogWrite(leftB_PIN,0);        //左轮快前进
      analogWrite(righA_PIN,120);      
      analogWrite(righB_PIN,0);        //右轮慢前进
    }
    /**************************************************
    turnLeftforword子函数——左前运动子函数
    函数功能:控制车左前
    **************************************************/
    void turnLeftforword( )
    {
      analogWrite(leftA_PIN,120);      
      analogWrite(leftB_PIN,0);       //左轮慢前进
      analogWrite(righA_PIN,200);      
      analogWrite(righB_PIN,0);       //右轮快前进
    }
    /**************************************************
    turnRightforword子函数——右后运动子函数
    函数功能:控制车右后
    **************************************************/
    void turnRightback( )
    {
      analogWrite(leftA_PIN,0);      
      analogWrite(leftB_PIN,200);        //左轮快后退
      analogWrite(righA_PIN,0);      
      analogWrite(righB_PIN,120);        //右轮慢后退
    }
    /**************************************************
    turnLeftforword子函数——左后运动子函数
    函数功能:控制车左后
    **************************************************/
    void turnLeftback( )
    {
      analogWrite(leftA_PIN,0);      
      analogWrite(leftB_PIN,120);        //左轮慢后退
      analogWrite(righA_PIN,0);      
      analogWrite(righB_PIN,200);        //右轮快后退
    }
    /**************************************************
    stop子函数—停止子函数
    函数功能:控制车停止
    **************************************************/
    void _stop()
    {
      analogWrite(leftA_PIN,0);      
      analogWrite(leftB_PIN,0);         //左轮静止不动
      analogWrite(righA_PIN,0);      
      analogWrite(righB_PIN,0);         //右轮静止不动
    }
    

    三、蓝牙串口助手APP:

     

    获取该源码方式:

    1、CSDN下载:

    下载地址:https://download.csdn.net/download/qq_38351824/10613322

    2、可以关注点赞并在下方评论,我给你邮箱发过去。

    3、关注微信公众号下载:

         ① 关注微信公众号:Tech云  

         ②

    下载安装后,打开APP后会自动开始搜索附近的蓝牙设备:

    搜索到后:

    然后选择我们要连接的设备

    输入PIN,一般密码为1234或0000或123456

    输入正确后如下图

    这个APP只有这三种模式,但是足够一般人使用啦。我们使用的是键盘模式,其他两种模式,大家可以尝试玩一下。

    那么,选择键盘模式后,如下图

    大家的和我的应该不一样,我这个是配置好了的样子(其中退出主函数和调节舵机中值不是,这是我之前用在智能车上的

    那么,如何配置呢?

    点击右上角的

    然后再点击配置键盘值。看似没什么区别,但是在点开按键会弹出界面

    显示名:就是刚才那个界面的名字;按下发送值:顾名思义,就是按下该按键后发送的数字。

    按照这个对应,更改下

      7---前进
      6---后退
      1---停车
      3---左前
      2---右前
      5---左后
      4---右后
      8---原地左
      9---原地右

    然后再点击右上角的

    然后点击保存就全部大功告成啦!

    如果大家在制作过程中有什么问题或者思路可以在下方留言和我一起交流噢!

    如果发现本文有错误,也请在下方评论区指出,感激不尽!

    展开全文
  • Arduino蓝牙控制两驱智能小车程序,用手机蓝牙小车APP控制,用HC-05蓝牙模块在Arduino uno单片机上安装程序即可
  • 在应用市场上下载手机蓝牙调试助手,通过HC-05蓝牙模块连接到arduino Uno的串口上,修改按键发送的字符就可以控制智能小车,类似于红外遥控控制。
  • arduino智能小车的功能3:蓝牙遥控 arduino智能小车小车的蓝牙遥控 材料清单: HC-05的蓝牙模块; arduino智能小车一台; 杜邦线若干: 首先我们需要在电脑上下载串口调试软件,并进行蓝牙的调试,确保...

    arduino的智能小车的功能3:蓝牙遥控
    arduino智能小车小车的蓝牙遥控
    材料清单:
    HC-05的蓝牙模块;
    arduino的智能小车一台;
    杜邦线若干:
    首先我们需要在电脑上下载串口调试软件,并进行蓝牙的调试,确保蓝牙模块可以正常使用和可以进行通信,手机端下载SPP蓝牙串口,可以进行信息的传送还有终端的接收显示,还可以进行按键和开关的编辑。
    下面是串口调试软件,在上面进行正确的设置,然后确认蓝牙模块可以正常发送和接收信息,即可进行蓝牙模块在小车上的安装。
    这里写图片描述

    注意RX和TX的反接。
    下载程序时RX,TX上面不要接东西。
    接下来是代码。
    代码段的思路是,当接收到1时,小车直行,当接收到2时,小车后退,当接收到3时,小车左转,当接收到4时,小车右转,其他命令时,小车暂停。

    #include <Servo.h>
    Servo s;  //舵机
    int mL1=6;//左1
    int mL2=5;
    int mR1=11;//右1
    int mR2=3;
    
    void setup()
    { 
      s.attach(9);//舵机信号线
      s.write(68);//舵机初始化角度 
      Serial.begin(9600);
      pinMode(mL1,OUTPUT);
      pinMode(mL2,OUTPUT);
      pinMode(mR1,OUTPUT);
      pinMode(mR2,OUTPUT);
    }
    
    void loop()
    {
      if(Serial.available())
      {
      char num = Serial.read();
      Serial.println(num);
      if(num == '1'){
        line(); 
      }else if(num == '2'){
        back();
      }else if(num == '3') {
        L();
        }else if(num == '4'){
          R();
          }else{
            lull();
            }
      }
    }
    void line(){//直线
        analogWrite(mL1,30);
        analogWrite(mL2,LOW);
        analogWrite(mR1,30);
        analogWrite(mR2,LOW);
        delay(300);
    }
    
    
    void lull(){//暂停 
      digitalWrite(mR1,LOW);
      digitalWrite(mL1,LOW);
      digitalWrite(mR2,LOW);
      digitalWrite(mL2,LOW);
      delay(10);
    }
    
    
    void back(){//后退
        analogWrite(mL1,0);
        analogWrite(mL2,40);
        digitalWrite(mR1,LOW);
        analogWrite(mR2,40);
        delay(0);
    }
    
    
     void R(){//右转
        analogWrite(mL1,70);
        analogWrite(mL2,0);
        analogWrite(mR1,0);
        analogWrite(mR2,53);
        delay(600);
    }
    
    void L(){//左转
        analogWrite(mL1,0);
        analogWrite(mL2,20);
        analogWrite(mR1,60);
        analogWrite(mR2,0);
        delay(600);
        }
    展开全文
  • 前言:在该项目,我们实现对小车的控制,并且通过DHT11温湿度等传感器采集...蓝牙模块: 这里我是用的是HC_05蓝牙串口模块: Arduino代码编写:#include &lt;dht11.h&gt; dht11 DHT11; #define DHT11...
  • 制作需要:用AppInventor制作App,小车硬件以Arduino Nano为主控板,接蓝牙模块,超声波模块,两个直流电机。 功能:用手机App控制小车前进,后退,左转,右转,自动避障,并且可以通过滑动条调速。(其中自动巡线...
  • 基于Arduino蓝牙小车,其中有详细的报告文档、代码、蓝牙apk文件包等。
  • 基于Arduino平台的的wifi蓝牙智能小车源码 也可以结合C#上位机电脑端进行控制
  • arduino实验板为基础,在蓝牙模块、超声波模块、直流电机等模块的组合下开发一款智能车;要求可以在手机端控制小车的前进后退左右转向;超声波模块配合舵机模块实现多方位测距,并将测量结果返回到手机客户端; 二...
  • arduino教程-13. 蓝牙

    2019-04-11 16:53:16
    智能移动设备和Arduino微电脑,两者相辅相成,可各自发挥所长。例如,用手机当成Arduino的显示器或输入设备,Arduino当做手机的硬件扩展口,控制灯光和自走,或者返回温湿度传感器的数据给手机。 电波、频段和无线...
  • 需要材料: 小车套件(包括轮胎、电机) ... Arduino UNO 开发板 蓝牙模块(需要注意的是上传代码时因共用串口的原因会上传代码失败,解决方法:上传代码时,拔掉蓝牙模块) 需要手机安装 SPP蓝牙串...
  • 做了一辆Arduino智能车,其功能目前是:四路循迹行驶,同时在行驶过程中遇到障碍物进行规避(超声波避障模块),在把循迹用黑胶布遮住使它四个传感器均检测不到时候可以进行蓝牙遥控,现在我想做成使用蓝牙来远程...
  • arduino为主控板结合电机驱动模块、蓝牙模块、语音模块、蜂鸣器模块、超声波模块实现前进后退左转右转(语音同步提醒),避障蜂鸣器提醒。完美实现手机APP对各功能的切换(无死角切换)
  • 本组作品是红外避障+蓝牙遥控小车,用到了Arduino、电机、超声波、蓝牙、红外、显示屏、LED模块。该作品可通过手机端蓝牙串口软件实现自动避障和遥控两个模式的切换。在遥控模式中可实现控制小车的前进、后退、左转...
  • Android蓝牙控制小车,是一款android app,它具有一下功能: 控制3P小车前进、后退、左转、右转的基本功能; 实时显示小车的速度折线图; 查看小车的历史速度图; 删除小车历史速度记录; 实时显示IPCamera拍摄...
  • 遥控小车是每个人童年的最爱,不仅好奇它的奇妙,更是喜欢它...本文是基于arduino的无线(蓝牙传输)手柄遥控小车 基于arduino的手机蓝牙遥控小车 基于arduino的红外遥控小车 基于arduino的无线NRF24L01遥控小车 ...
  • Arduino 小车上我们使用的蓝牙模块是基于 cc2541 蓝牙芯片构成的.在 cc2541 芯片内部已经实现了 蓝牙协议,我们不需要开发调试蓝牙协议,一般的蓝牙模块都是采用的串口协议与外部设备进行...
1 2 3 4 5 ... 20
收藏数 447
精华内容 178
关键字:

蓝牙智能车arduino