ROB0139_风火轮.jpg

简介

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

技术规格

使用教程

准备

组装小车

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

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

image:ROB0139_1.png image:ROB0139_2.png

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

程序代码

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

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

注意:由于Arduino官方对IDE中的某些库文件做了升级,故在新版本的IDE下编译使用会出现Y轴数据不正常的情况。请使用1.0.X 经典的版本,如Arduino IDE 1.0.6

/* -----蓝牙风火轮小车控制程序 V1.0
//------2016.6.29 by LL
//------适用于Romeo BLE mini 控制器
//http://www.dfrobot.com.cn/goods-1182.html
*/
#include "GoBLE.h"
#include <Romeo_m.h>

#define LED 13

 //GoBLE Goble(Serial);
 int joystickX, joystickY;
 int buttonState[7];
 unsigned int led_count;
void setup() {
  Romeo_m.Initialise();
  Goble.begin();
  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)))
    {
      Romeo_m.motorControl(Forward,200,Forward,200);//前进
      return;//结束子函数
    }
    if ((buttonState[SWITCH_DOWN] == PRESSED)||((joystickX<128)&&(joystickY>=64)&&(joystickY<=192)))
   {
     Romeo_m.motorControl(Reverse,150,Reverse,150);//后退
     return;//结束子函数
   }
    if(buttonState[SWITCH_LEFT] == PRESSED)
    {
        Romeo_m.motorControl(Reverse,100,Forward,100);//左转
        return;//结束子函数
    }
    if((joystickY<128 )&&(joystickX>=64 )&&( joystickX<=192) )
   {
       Romeo_m.motorControl_M1(Forward,80);//左转大弯
       Romeo_m.motorControl_M2(Forward,200);
        return;//结束子函数
   }
    if( buttonState[SWITCH_RIGHT] == PRESSED)
    {
        Romeo_m.motorControl(Forward,100,Reverse,100);//右转
        return;//结束子函数
    }
    if((joystickY>128)&&(joystickX>=64)&&(joystickX<=192))
    {
        Romeo_m.motorControl_M2(Forward,80); //右转大弯
        Romeo_m.motorControl_M1(Forward,200);
        return;//结束子函数
    }
    Romeo_m.motorStop();//没有按键按下则停止
 }
//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商城购买链接