(SKU: ROB0139) 风火轮
来自DFRobot Product Wiki
目录 |
简介
本产品为风火轮机器人,以椴木板为原材料,由激光切割而成。结构上充分利用鲁班的智慧,实现少用螺丝,为用户简化装配过程。
具备敏捷的轮式机动性,运动机制独特新颖,呈现的运动形态也诙谐、有趣、逗比。并且生产的材料环保清洁。配合可扩展的多个电子模块,可实现多种有趣的教育案例。用户通过自行组装来复活风火轮机器人的过程中,对机器人移动平台有更深入认识和学习,本产品可通过DFRobot出品的GO BLE软件实现控制。
技术规格
- 产品尺寸:120*120*85mm
- 工作电压:6 - 10V
- 工作电流:0 - 3A
- 工作温度:0 - 60°C
- Romeo BLE mini主控板
- 传输距离:空旷地带30m以内
- 支持蓝牙远程更新Arduino程序
- 微处理器:ATmega328P
- 引导装载程序:Arduino UNO
- 2路1.5A电流的H桥电机驱动接口
- 驱动方式:两轮差速驱动
- 电机空载转速:230±10% rpm
- 小车行驶速度:1m/s
使用教程
准备
- 硬件
- Romeo mini控制板V1.0 x1
- 电机 x2
- 4节7号电池盒 x1
- 7号电池 x4
- 小车车架木板套件
- 硅胶圈 X1
- 螺丝若干
- 十字小螺丝刀 x1
- 软件
- Arduino IDE 1.0.6 点击下载Arduino IDE
组装小车
参照安装说明。风火轮说明书下载
注意事项:
1.在安装说明中没有说明电机电源线走线路径,建议如下图方式走线,便于电机线的约束和小车的整洁。
程序代码
我们会在控制器中预装初始代码,也会提供代码下载,方便大家学习研究,代码如下:
关于如何安装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系统)
安装GO BLE后,打开手机蓝牙,打开手机app GO BLE,按上小车电池,靠近小车点击手机上对应的小车蓝牙名称即可链接。如下操作控制小车。
常见问题
如果安装完成后,操控小车前进或后退,小车一直打转,说明电机接线接反,对调更换即可。
此产品有任何问题,欢迎通过qq或者论坛联系我们!
更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。