“与mRobots连接控制小车”的版本间的差异
502748957@qq.com(讨论 | 贡献) |
502748957@qq.com(讨论 | 贡献) |
||
(未显示同一用户的2个中间版本) | |||
第1行: | 第1行: | ||
− | + | <p style="color: #E87E05;font-size:135%">示例说明</p> | |
+ | 该示例主要用于测试BLEUPLOAD模块与mRobot应用通信,通过LED灯验证通信是否成功。 | ||
+ | <p style="color: #E87E05;font-size:135%">硬件清单</p> | ||
+ | *[[MBattery+]] | ||
+ | *[[MCookie-Core+]] | ||
+ | *[[mCookie-Hub/zh|mCookie-Hub]] | ||
+ | *[[Sensor-LED/zh]] | ||
+ | *1.27mm 4pin传感器连接线 | ||
+ | <br> | ||
+ | <p style="color: #E87E05;font-size:135%">应用实例</p> | ||
+ | 1)参照:[[【使用mRobot通信制作小车】]]示例,在APP STORE下载mRobots。<br> | ||
+ | 2)下载如下程序至Core+模块中。LED灯连接到D6口<br> | ||
+ | 注意:下载时不要叠加BLEUPLOAD模块否则会造成下载失败<br> | ||
<source lang = "cpp"> | <source lang = "cpp"> | ||
#include <Microduino_Protocol.h> | #include <Microduino_Protocol.h> | ||
第57行: | 第69行: | ||
Serial.print(",steering:"); | Serial.print(",steering:"); | ||
Serial.println(steering); | Serial.println(steering); | ||
− | if(throttle>128) | + | if(abs(throttle)>128) |
{ | { | ||
digitalWrite(D6,HIGH); | digitalWrite(D6,HIGH); | ||
第63行: | 第75行: | ||
{ | { | ||
digitalWrite(D6,LOW); | digitalWrite(D6,LOW); | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
#endif | #endif | ||
第82行: | 第87行: | ||
} | } | ||
</source> | </source> | ||
+ | |||
+ | 3)下载完成后叠上BLEUPLOAD模块<br> | ||
+ | 4)打开手机蓝牙,之后打开手机端mRobots APP,使用TANK模式,之后将手机贴近BLEUPLOAD模块连接蓝牙<br> | ||
+ | 5)蓝牙连接成功后进入控制页面<br> | ||
+ | [[File:BLEUPLOAD MROBOT APP.PNG|600px|center]] | ||
+ | 6)使用右侧摇杆测试,摇杆'''竖直'''上推到顶或下推到底,D6连接的LED点亮。证明不仅可以收到手机APP的数据,并且数据有效<br> | ||
+ | 7)同时可以连接USB线观察串口,显示收到的数据,LED灯亮灭与throttle值有关 | ||
+ | [[File:BLEUPLOAD MROBOT SERIAL.png|600px|center]] | ||
+ | |||
+ | 【[[MCookie-BLEUpload/zh|返回MCookie-BLEUpload界面]]】 |
2018年12月19日 (三) 07:58的最新版本
示例说明
该示例主要用于测试BLEUPLOAD模块与mRobot应用通信,通过LED灯验证通信是否成功。
硬件清单
- MBattery+
- MCookie-Core+
- mCookie-Hub
- Sensor-LED/zh
- 1.27mm 4pin传感器连接线
应用实例
1)参照:【使用mRobot通信制作小车】示例,在APP STORE下载mRobots。
2)下载如下程序至Core+模块中。LED灯连接到D6口
注意:下载时不要叠加BLEUPLOAD模块否则会造成下载失败
#include <Microduino_Protocol.h>
#include <Microduino_Motor.h>
#define _DEBUG //DEBUG调试
#define BLE_SPEED 57600 //蓝牙接口速度
#define CHANNEL_NUM 8
#define SAFE_TIME_OUT 250 //失控保护时间
#define MAX_THROTTLE 255 //最大油门 < 255
#define MAX_STEERING 512 //最大转向 < 512
#define CHANNEL_THROTTLE 1 //油门通道
#define CHANNEL_STEERING 0 //转向通道
Motor MotorLeft(MOTOR0_PINA, MOTOR0_PINB);
Motor MotorRight(MOTOR1_PINA, MOTOR1_PINB);
#define ProSerial Serial
ProtocolSer bleProtocol(&ProSerial, 16); //采用ProSerial,数据长度为16个字节
///////////////////////////////////////////////////////////
uint16_t channalData[CHANNEL_NUM]; //8通道数据
int16_t throttle = 0; //油门
int16_t steering = 0; //转向
unsigned long safe_ms = millis();
uint8_t recCmd;
void setup() {
bleProtocol.begin(BLE_SPEED);
pinMode(D6,OUTPUT);
MotorLeft.begin(); //电机MotorLeft初始化
MotorRight.begin(); //电机MotorLeft初始化
}
void loop() {
if (bleProtocol.available())
{
bleProtocol.readWords(&recCmd, channalData, 8);
throttle = map(channalData[CHANNEL_THROTTLE], 1000, 2000, -MAX_THROTTLE, MAX_THROTTLE);
steering = map(channalData[CHANNEL_STEERING], 1000, 2000, -MAX_STEERING, MAX_STEERING);
MotorLeft.setSpeed((throttle + steering / 2));
MotorRight.setSpeed(-(throttle - steering / 2));
#ifdef _DEBUG
Serial.print("DATA OK :[");
for (int a = 0; a < CHANNEL_NUM; a++) {
Serial.print(channalData[a]);
Serial.print(" ");
}
Serial.print("],throttle:");
Serial.print(throttle); //+153
Serial.print(",steering:");
Serial.println(steering);
if(abs(throttle)>128)
{
digitalWrite(D6,HIGH);
}else
{
digitalWrite(D6,LOW);
}
#endif
safe_ms = millis();
}
if (safe_ms > millis()) safe_ms = millis();
if (millis() - safe_ms > SAFE_TIME_OUT) {
MotorLeft.setSpeed(FREE); //设置电机MotorLeft为释放状态,即速度为0
MotorRight.setSpeed(FREE);
}
}
3)下载完成后叠上BLEUPLOAD模块
4)打开手机蓝牙,之后打开手机端mRobots APP,使用TANK模式,之后将手机贴近BLEUPLOAD模块连接蓝牙
5)蓝牙连接成功后进入控制页面
6)使用右侧摇杆测试,摇杆竖直上推到顶或下推到底,D6连接的LED点亮。证明不仅可以收到手机APP的数据,并且数据有效
7)同时可以连接USB线观察串口,显示收到的数据,LED灯亮灭与throttle值有关