“与mRobots连接控制小车”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
 
(未显示同一用户的2个中间版本)
第1行: 第1行:
参照:[[【使用mRobot通信制作小车】]]示例,在APP STORE下载mRobots。
+
<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);
    }
 
    if(steering>256)
 
    {
 
      digitalWrite(D8,HIGH);
 
    }else
 
    {
 
      digitalWrite(D8,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灯验证通信是否成功。

硬件清单


应用实例

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)蓝牙连接成功后进入控制页面

BLEUPLOAD MROBOT APP.PNG

6)使用右侧摇杆测试,摇杆竖直上推到顶或下推到底,D6连接的LED点亮。证明不仅可以收到手机APP的数据,并且数据有效
7)同时可以连接USB线观察串口,显示收到的数据,LED灯亮灭与throttle值有关

BLEUPLOAD MROBOT SERIAL.png

返回MCookie-BLEUpload界面