ROB0139_风火轮.jpg

简介

本产品为风火轮机器人,以椴木板为原材料,由激光切割而成。结构上充分利用鲁班的智慧,实现少用螺丝,为用户简化装配过程。 具备敏捷的轮式机动性,运动机制独特新颖,呈现的运动形态也诙谐、有趣、逗比。并且生产的材料环保清洁。配合可扩展的多个电子模块,可实现多种有趣的教育案例。用户通过自行组装来复活风火轮机器人的过程中,对机器人移动平台有更深入认识和学习,本产品可通过DFRobot出品的GO BLE软件实现控制。 注意:风火轮V2.0使用升级版Romeo BLE Mini V2.0作为主控,操作更加方便,代码兼容性更广。

技术规格

使用教程

准备

组装小车

参照安装说明。风火轮说明书下载

注意事项: 1.在安装说明中没有说明电机电源线走线路径,建议如下图方式走线,便于电机线的约束和小车的整洁。

image:ROB0139_1.png image:ROB0139_2.png

2.安装完车架后,按下图连接电机线和电源线。 Connection

程序代码

我们会在控制器中预装初始代码,也会提供代码下载,方便大家学习研究,代码如下:

关于如何安装Arduino库? 请点击Arduino library 安装教程

/* -----蓝牙风火轮小车控制程序v2.0
*/
#include "GoBLE.h"

//GoBLE Goble(Serial);
int joystickX, joystickY;
int buttonState[7];
unsigned int led_count;
#define LED 13

//Motor Driver Pin
int E1 = 5;     //M1 Speed Control
int E2 = 6;     //M2 Speed Control
int M1 = 4;    //M1 Direction Control
int M2 = 7;    //M1 Direction Control

void stop(void)                    //Stop
{
  digitalWrite(E1,LOW);
  digitalWrite(E2,LOW);
}
void advance(char a,char b)          //Move forward
{
  analogWrite (E1,a);      //PWM Speed Control
  digitalWrite(M1,LOW);
  analogWrite (E2,b);
  digitalWrite(M2,LOW);
}
void back_off (char a,char b)          //Move backward
{
  analogWrite (E1,a);
  digitalWrite(M1,HIGH);
  analogWrite (E2,b);
  digitalWrite(M2,HIGH);
}
void turn_L (char a,char b)             //Turn Left
{
  analogWrite (E1,a);
  digitalWrite(M1,HIGH);
  analogWrite (E2,b);
  digitalWrite(M2,LOW);
}
void turn_R (char a,char b)             //Turn Right
{
  analogWrite (E1,a);
  digitalWrite(M1,LOW);
  analogWrite (E2,b);
  digitalWrite(M2,HIGH);
}

void setup() {
  Goble.begin();
  Serial.begin(115200);
  int i;
  for(i=4;i<=7;i++)
    pinMode(i, OUTPUT);
  stop();
  pinMode(LED,OUTPUT);
}
void loop() {

  if (Goble.available())
  {
    readGoBle();
    motorContrl();
  }
  delayLedBlink();//delay 10ms and led blink
}
//读取GoBle所有按键摇杆值
void readGoBle()
{
  // read joystick value when there's valid command from bluetooth
  joystickX = Goble.readJoystickX();
  joystickY = Goble.readJoystickY();
  // read button state when there's valid command from bluetooth
  buttonState[SWITCH_UP]     = Goble.readSwitchUp();
  buttonState[SWITCH_DOWN]   = Goble.readSwitchDown();
  buttonState[SWITCH_LEFT]   = Goble.readSwitchLeft();
  buttonState[SWITCH_RIGHT]  = Goble.readSwitchRight();
  buttonState[SWITCH_SELECT] = Goble.readSwitchSelect();
  buttonState[SWITCH_START]  = Goble.readSwitchStart();
  /*Serial.println("========================");
   Serial.print("Joystick Value: ");
   Serial.print(joystickX);
   Serial.print("  ");
   Serial.println(joystickY);
   for (int i = 1; i <= 6; i++) {
   if (buttonState[i] == PRESSED) {
   Serial.print(" ID: ");
   Serial.print(i);
   Serial.print("\t ");
   Serial.println("Pressed!");
   }
   if (buttonState[i] == RELEASED){
   Serial.print("ID: ");
   Serial.print(i);
   Serial.print("\t ");
   Serial.println("Released!");
   }
   }*/
}
//根据GoBle按键值进行小车运动控制
//摇杆左右为转大弯,按键左右为原地转弯
void motorContrl()
{
  if ((buttonState[SWITCH_UP] == PRESSED)||((joystickX>128)&&(joystickY>=64)&&(joystickY<=192)))
  {
    advance (200,200);   //move forward in max speed
    return;//结束子函数
  }
  if ((buttonState[SWITCH_DOWN] == PRESSED)||((joystickX<128)&&(joystickY>=64)&&(joystickY<=192)))
  {
    back_off (200,200);   //move back in max speed
    return;//结束子函数
  }
  if(buttonState[SWITCH_LEFT] == PRESSED)
  {
    turn_L (100,100);
    return;//结束子函数
  }
  if((joystickY<128 )&&(joystickX>=64 )&&( joystickX<=192) )
  {
    advance (100,200);   //左转大弯
    return;//结束子函数
  }
  if( buttonState[SWITCH_RIGHT] == PRESSED)
  {
    turn_R (100,100);
    return;//结束子函数
  }
  if((joystickY>128)&&(joystickX>=64)&&(joystickX<=192))
  {
    advance (200,100);   //move forward in max speed
    return;//结束子函数
  }
  stop();//没有按键按下则停止
}
//led blink函数,每次执行延时10ms,100次时执行一次电平反向
void delayLedBlink()
{
  delay(10);
  led_count++;
  if(led_count>100)
  {
    digitalWrite(LED,!digitalRead(LED));
    led_count=0;
  }
}

安装手机控制APP

扫描说明书或如下二维码下载安装GO BLE(暂只支持ios系统) ROB0139_4.png

安装GO BLE后,打开手机蓝牙,打开手机app GO BLE,按上小车电池,靠近小车点击手机上对应的小车蓝牙名称即可链接。如下操作控制小车。

ROB0139_5.png

常见问题

如果安装完成后,操控小车前进或后退,小车一直打转,说明电机接线接反,对调更换即可。

安卓版控制软件goBle

此产品有任何问题,欢迎通过qq或者论坛联系我们!

更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。

更多

DFshopping_car1.png DFRobot商城购买链接