号外!号外!风火轮机器人套件正式上线啦,可猛戳下面的链接:
https://www.dfrobot.com.cn/goods-1344.html
今天带来的是风火轮机器人的组装及上手教程哦!在没有指导的情况下组装这个机器人还是比较困难的,大家可以参考我今天的介绍~
一、组装
首先我们需要准备的材料有:
1.用于组装本体的模型~
2.两个直流电机~
3.Romeo BLE mini控制器和一组螺丝~
4.十字型螺丝刀一枚~
5.电池盒一枚和4节7号电池~
接下来就动手组装:
第一步:组装内壳;
从模板上取下如下四块板子并组装,如下所示:
完成图:
第二步:组装控制板支撑板;
如下图所示:
第三步:组装电池盒支撑板;
如下图所示:
注意不要与插销搞混:
第四步:组装电机并固定;
将两个电机装进内壳并把电机轴固定在合适位置,插入插销,如下:
旋转插销夹紧两个电机至完全固定:
第五步:组装控制板并与电机连线;
使用螺丝固定控制板在支撑板上并连接电机的电源线:
控制板的电源线接口如图:
第六步:组装电池盒并连至控制板;
第七步:组装轮子;
先组装两个垫片:
装上轮子并使用垫圈和螺丝拧紧:
注意:旋转轮子确保轮子转动不受阻挡!
两边轮子都装好就基本上完成啦:
正式的组装说明书已经上线啦!可以戳帖子最后的链接下载~
二、调试
在调试上我们需要使用以下材料:
1.手机端APP:“走你”/“GoBLE”(目前仅支持iOS系统,即iPhone/iPad,可在App Store中免费下载)
下载地址:https://itunes.apple.com/cn/app/ ... qi/id950937437?mt=8
2.Arduino IDE
官网下载地址:https://www.arduino.cc/en/Main/Software/
选择Windows installer下载安装
第一步:安装GoBLE和Romeo.m库文件
因为在示例程序中需要调用已有的库函数,所以我们需要首先在Arduino的库中添加GoBLE(手机蓝牙通信App)和Romeo BLE mini板子的库文件。
库文件下载地址:
GoBLE 库函数;
Remeo 库函数;
GoBLE库文件安装方法:
首先打开下载文件并解压,找到library文件夹并打开,复制其中三个文件夹:
找到Arduino安装目录,找到libraries文件夹,将上述三个文件夹复制到这个文件夹下:
Remeo库文件安装方法:
打开下载文件并解压,直接复制在Arduino安装目录下libraries文件夹下:
如此,两个库文件即安装完成。
第二步:下载示例程序,用Arduino IDE打开,如下:/* -----蓝牙两轮小车控制程序
- //------2016.6.29 by LL
- //------适用于Romeo BLE mini 控制器
- //https://www.dfrobot.com.cn/goods-1182.html
-
- #include "GoBLE.h"
- #include <Romeo_m.h>
- #define LED 13
-
- 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();
- }
-
- //根据GoBle按键值进行小车运动控制
- //摇杆左右为转大弯,按键左右为原地转弯
- void motorContrl()
- {
- if ((buttonState[SWITCH_UP] == PRESSED)||((joystickX>128)&&(joystickY>=64)&&(joystickY<=192)))
- {
- Romeo_m.motorControl(Reverse,200,Forward,200);//前进
- return;//结束子函数
- }
-
- if ((buttonState[SWITCH_DOWN] == PRESSED)||((joystickX<128)&&(joystickY>=64)&&(joystickY<=192)))
- {
- Romeo_m.motorControl(Forward,150,Reverse,150);//后退
- return;//结束子函数
- }
-
- if(buttonState[SWITCH_LEFT] == PRESSED)
- {
- Romeo_m.motorControl(Forward,100,Forward,100);//左转
- return;//结束子函数
- }
-
- if((joystickY<128 )&&(joystickX>=64 )&&( joystickX<=192) )
- {
-
- Romeo_m.motorControl_M1(Reverse,80);//左转大弯
- Romeo_m.motorControl_M2(Forward,200);
-
- return;//结束子函数
- }
-
- if( buttonState[SWITCH_RIGHT] == PRESSED)
- {
- Romeo_m.motorControl(Reverse,100,Reverse,100);//右转
- return;//结束子函数
- }
-
- if((joystickY>128)&&(joystickX>=64)&&(joystickX<=192))
- {
-
- Romeo_m.motorControl_M2(Forward,80); //右转大弯
- Romeo_m.motorControl_M1(Reverse,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;
- }
- }
复制代码
程序简要解析:- #include "GoBLE.h"
- #include <Romeo_m.h>
复制代码
这段调用两个头文件,以便直接调用其中的库函数;定义LED灯引脚。
- void setup() {
- Romeo_m.Initialise();
- Goble.begin();
- pinMode(LED,OUTPUT);
- }
复制代码
程序初始化;
- void loop() {
- if (Goble.available())
- {
- readGoBle();
- motorContrl();
- }
- delayLedBlink();//delay 10ms and led blink
- }
复制代码
程序主体分两个函数,一是主要用于读取GoBLE中按键摇杆值的函数readGoBle(),另一个是进行小车控制的函数motorContrl(),并且添加了一个控制Led灯延时闪烁的程序;
- 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();
- }
复制代码
readGoBle()中库函数Goble.readJoystickX()和Goble.readJoystickY()分别读取摇杆的X轴和Y轴的值,Goble.readSwitchXXXX()则分别读取按键值。
- void motorContrl()
- {
- if ((buttonState[SWITCH_UP] == PRESSED)||((joystickX>128)&&(joystickY>=64)&&(joystickY<=192)))
- {
- Romeo_m.motorControl(Reverse,200,Forward,200);//前进
- return;//结束子函数
- }
-
- if ((buttonState[SWITCH_DOWN] == PRESSED)||((joystickX<128)&&(joystickY>=64)&&(joystickY<=192)))
- {
- Romeo_m.motorControl(Forward,150,Reverse,150);//后退
- return;//结束子函数
- }
-
- if(buttonState[SWITCH_LEFT] == PRESSED)
- {
- Romeo_m.motorControl(Forward,100,Forward,100);//左转
- return;//结束子函数
- }
-
- if((joystickY<128 )&&(joystickX>=64 )&&( joystickX<=192) )
- {
-
- Romeo_m.motorControl_M1(Reverse,80);//左转大弯
- Romeo_m.motorControl_M2(Forward,200);
-
- return;//结束子函数
- }
-
- if( buttonState[SWITCH_RIGHT] == PRESSED)
- {
- Romeo_m.motorControl(Reverse,100,Reverse,100);//右转
- return;//结束子函数
- }
-
- if((joystickY>128)&&(joystickX>=64)&&(joystickX<=192))
- {
-
- Romeo_m.motorControl_M2(Forward,80); //右转大弯
- Romeo_m.motorControl_M1(Reverse,200);
-
- return;//结束子函数
- }
复制代码
motorContrl()中主要是根据按键和摇杆的状态值控制小车进行相应的运动;
其中控制小车运动的库函数的格式如下:
Romeo_m.motorControl(a,b,c,d); 其中a和c为方向值,分别对应Forward和Reverse,亦即前进和后退,c和d分别为两个电机的速度大小,数值越高,转速越快;
Remeo_m.motorControl_Mx(a,b); 其中x为电机值,分别为1和2,a是方向值,对应Forward和Reverse,b是转速值。
注意:控制小车前进时两个电机的转动方向相反,为什么?答案就在于我们的电机安装方向相反,所以要让两个轮子转动方向相同,则两个电机的转动方向应该相反。
- void delayLedBlink()
- {
- delay(10);
- led_count++;
- if(led_count>100)
- {
- digitalWrite(LED,!digitalRead(LED));
- led_count=0;
- }
复制代码
这个函数用于延时,并且控制LED闪烁。
第三步,打开Arduino下载程序。
在工具栏中选择开发板型号为Arduino/Genuino Uno,并选择正确的端口号,调试并下载程序。
第四步:打开手机App进行调试
首先打开手机App GoBLE(“中文版为‘走你’”),如下所示:
下载好程序并给小车通电后,打开手机蓝牙,点击红色搜索按钮,搜索单片机的蓝牙信号,如下所示:
点击正确型号的单片机蓝牙并连接,连接成功后搜索按钮会变成绿色,如下:
此时就可以通过虚拟按键和摇杆控制小车啦。分别试试各个按键和摇杆看看它们的作用吧~
v0.1版本功能特性
1、电机驱动
2、手机蓝牙控制
V0.2版本
1、优化运动控制(起步停止匀加速匀减速)
2、增加避障功能
号外!号外!风火轮机器人套件正式上线啦,可猛戳下面的链接:
https://www.dfrobot.com.cn/goods-1344.html
|