查看: 10874|回复: 15

android 手机控制的arduino小车(PID调速)

[复制链接]
  • TA的每日心情

    2016-3-12 14:21
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2015-6-18 14:05 | 显示全部楼层 |阅读模式
    本帖最后由 Martinezou 于 2015-6-18 14:05 编辑

    最近自己尝试做了一个安卓手机控制的蓝牙无线小车(最近在研究PID调速,用matlab画出速度图像,调节PID参数),和大家分享一下,里面也有很多问题希望大家能帮忙指正。一.所需材料
    小车车体套装一套;
    hc-05蓝牙模块一个;
    串口转USB一个(最后有一个比较方便,没有也不要紧);
    L298N电机驱动芯片一块;
    测速模块两个;
    电子积木扩展版1个;
    arduino uno开发板一个;


    二.组装车体
    这个根据买到的小车套件参考图纸很快就可以安装好,在这里就不再细述了。三.电路原理图

    图片1.png


  • TA的每日心情

    2016-3-12 14:21
  • 签到天数: 10 天

    [LV.3]偶尔看看II

     楼主| 发表于 2015-6-18 14:11 | 显示全部楼层
    四.蓝牙模块调试
    hc-05是主从一体机,可以通过AT指令把模块设置为主模式。模块默认为从机,默认密码为1234.我用的安卓手机控制小车,以蓝牙模块为从机所以不用设置,接好线即可使用。
  • TA的每日心情

    2016-3-12 14:21
  • 签到天数: 10 天

    [LV.3]偶尔看看II

     楼主| 发表于 2015-6-18 14:14 | 显示全部楼层
    五.用arduino ide编写小车程序
    首先要装一个库函数,有了库函数,函数调用起来十分方便。
    #include<MsTimer2.h>
    #define Value 0.012
    int in1=9;
    int in2=7;
    //left
    int in3=5;
    int in4=6;
    //right
    char val;
    int r_wheel=0;
    int l_wheel=0;
    float r_speed=0;
    float l_speed=0;
    //float r_speed;
    //float l_speed;

    //r_wheel=0;
    //l_wheel=0;

    void flash()
    {
      float r_speed=Value*r_wheel;
      float l_speed=Value*l_wheel;
      Serial.print(r_speed);
      Serial.println("m/s(R)");
      Serial.print(l_speed);
      Serial.println("m/s(L)");
      r_wheel=0;
      l_wheel=0;
    }
    void setup()
    {
      pinMode(in1,OUTPUT);
      pinMode(in2,OUTPUT);
      pinMode(in3,OUTPUT);
      pinMode(in4,OUTPUT);
      Serial.begin(9600);
      attachInterrupt(1,RCount,FALLING);
      attachInterrupt(0,LCount,FALLING);
      digitalWrite(6,LOW);
      digitalWrite(5,LOW);
      digitalWrite(7,LOW);
      digitalWrite(9,LOW);
      MsTimer2::set(1000, flash);
      MsTimer2::start();
      
    }

    void loop()
    {
      
      if(Serial.available()>0)
      {
        val=Serial.read();
      
        if(val=='W')
         {
           Serial.println("go forward!");
           analogWrite(6,0);
           analogWrite(5,155);
           analogWrite(7,0);
           analogWrite(9,150);//award   
         }
         if(val=='S')
         {
           Serial.println("go back!");
           analogWrite(6,250);
           analogWrite(5,0);
           analogWrite(7,250);
           analogWrite(9,0);//back
         }
         if(val=='A')
         {
           Serial.println("turn left");
           analogWrite(6,0);
           analogWrite(5,250);
           analogWrite(7,0);
           analogWrite(9,180);
         }
         if(val=='D')
         {
            Serial.println("turn right");
            analogWrite(6,0);
            analogWrite (5,180);
            analogWrite (7,0);
            analogWrite(9,250);
         }
          if(val=='T')
         {
            Serial.println("stop");
            analogWrite(6,0);
            analogWrite(5,0);
            analogWrite(7,0);
            analogWrite(9,0);
         }
      }
    }
    void LCount()
    {
      l_wheel+=1;
    }
    void RCount()
    {
      r_wheel+=1;
    }
  • TA的每日心情

    2016-3-12 14:21
  • 签到天数: 10 天

    [LV.3]偶尔看看II

     楼主| 发表于 2015-6-18 14:16 | 显示全部楼层
    <MsTimer2.h>函数下载链接http://pan.baidu.com/s/1jG4Bo6E
  • TA的每日心情

    2016-3-12 14:21
  • 签到天数: 10 天

    [LV.3]偶尔看看II

     楼主| 发表于 2015-6-18 14:18 | 显示全部楼层
    接下来就是用app inventor编写手机app控制蓝牙小车了。由于笔记本除了一点小问题,稍后再把app程序图贴出来
  • TA的每日心情

    2016-3-12 14:21
  • 签到天数: 10 天

    [LV.3]偶尔看看II

     楼主| 发表于 2015-6-18 14:19 | 显示全部楼层
    下载一个手机蓝牙串口助手,通过蓝牙连接小车,给小车发送相应字符即可完成对小车的控制。

    该用户从未签到

    发表于 2015-6-22 16:26 | 显示全部楼层
    现在手机都有无线功能,使用无线模块呢
  • TA的每日心情

    2016-3-12 14:21
  • 签到天数: 10 天

    [LV.3]偶尔看看II

     楼主| 发表于 2015-6-22 23:24 | 显示全部楼层
    北纬36° 发表于 2015-6-22 16:26
    现在手机都有无线功能,使用无线模块呢

    对啊手机可以和蓝牙模块配对使用
  • TA的每日心情
    开心
    2016-5-14 20:28
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2015-12-5 21:03 | 显示全部楼层
    编译不通过啊
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    有没人做过把arduino跟生物结合起来做课题的
    有没人做过把arduino跟生
    我想做一些这方面的有没有人做过可以稍微指点一下
    跪求,nano读两个软串口传感器,写入sd卡,一个读不到数
    跪求,nano读两个软串口传
    dfrobot的nano板,两个软串口连接攀藤pm2.5传感器和GPS ublox m8n,SPI连sd卡模块。
    Arduino2560/MegaPi与ROS机器人操作系统的连接
    Arduino2560/MegaPi与ROS
    大家好,我因为需要更多时间维系琐碎平凡的工作和生活,一段时间没有上Arduino论坛。
    atmegu328p开发板怎么做流水灯啊
    atmegu328p开发板怎么做流
    我是白小 求指点
    BuddyBlock 1.0.0 测试版发布,一款面向Arduino的图形化开发工...
    BuddyBlock 1.0.0 测试版
    BuddyBlock是一款面向Arduino图形化编程开发的集成开发工具,开发者可以通过积木模块
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表