上回书说到,小车的超声波避障功能基本完成。那么本篇就来介绍最后一个功能,蓝牙智能控制功能。
废话不多说,来吧。  

蓝牙控制功能

最令我感动的是,我原以为最困难的一个功能在实际操作下居然成为了最简单的那个。 原本我以为,蓝牙模块要查一堆代码并且慢慢理解才能掌握(这个模块一开始是和我同组的另一个组员来研究的,所以我当时并不了解。),没想到这个功能一下子就搞出来了,现在细细来说吧。 示例代码:  
int inputPin = 8; // 定义超声波信号接收接口
int outputPin = 9; // 定义超声波信号发出接口

int STBY = 11; //控制电机驱动状态引脚

int PWMA = 3; //A电机速度控制
int AIN1 = 23; //A电机方向
int AIN2 = 22; 

int PWMB = 5; //与上述A做对应即可
int BIN1 = 25;
int BIN2 = 24; 
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);       //波特率设为9600
}

void loop() {
  // put your main code here, to run repeatedly:
  int i;
  Serial.println("Hello World!");     //这个代码是一开始测试用的,用的Arduino上的串口监视器来测试数据是否接收到
  if(Serial.available())                   //下面这个if条件语句,是让从串口输入数据来给i赋值的
  {
     i=Serial.parseInt();
  }
  Serial.println(i,DEC);
  switch(i)              //i的值不同,所实现的功能不同
  {
    case 2:            //如果i=2,小车前进
    {
      move(1,128,1);
      move(2,128,1);
      Serial.println("前进");      //输出这个是为了测试输入的数据是否进入了case语句中
      break;
    }
    case 4:            //如果i=4,小车左转
    {
      move(1,90,1);
      move(2,90,0);
      Serial.println("左转");
      break;
    }
    case 6:            //如果i=6,小车右转
    {
      move(1,90,0);
      move(2,90,1);
      Serial.println("右转");
      break;
    }
    case 8:            //如果i=8,小车后退
    {
      move(1,128,0);
      move(2,128,0);
      Serial.println("后退");
      break;
    }
    case 5:            //如果i=5,小车停止
    {
      move(1,0,0);
      move(2,0,0);
      Serial.println("STOP!!!");
      break;
    }
  }
}
  当然要控制,只有代码是不行的,要下一个app叫蓝牙串口。   1   就是这么一个app,进去后也要设置好。进入页面,点击右上角的连接,找到HC—05,连接初始密码是1234   2   成功连接后,你就可以输入消息了。比如输入2,则给i赋值为2,就会打印“前进”字符,证明了成功进入了case 2语句中,随后小车前进。其他样例与之类似,蓝牙功能就可以实现了。 这个app有一点十分方便,输入数据的十分麻烦,如果是按键形式,那不就简单多了,这个app就有这种功能。   3   聊天那一行,如果往右滑,会发现一个键盘的操作界面,打开编辑模式,你就可以自己改变了。比如点击前进,就自动输入2这个消息,十分方便吧。  

我的想法:

在蓝牙功能这一设计上,并没有出现太多的困难。(大概是实现的功能太简单了吧,蓝牙的其他功能没有涉及到的缘故吧)   至此,Arduino智能小车的三个功能就介绍完了。不出意外的话,下一篇智能小车介绍的内容应该是矩阵焊接(因为现在实现的功能是一个一个的,还没有选择这一功能),完成矩阵焊接,各个模块就都可以放在小车上了。
加油