“乐高遥控小车”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
准备
程序说明
第32行: 第32行:
  
 
==程序说明==
 
==程序说明==
 +
 +
<source lang=cpp>
 +
#include <mCookieLEGO.h>
 +
#include <Microduino_Protocol_HardSer.h>
 +
#include "Wire.h"
 +
 +
 +
uint16_t Data[8];
 +
int speedLeft = 0;
 +
int speedRight = 0;
 +
Protocol ProtocolB(&Serial1, TYPE_NUM);
 +
mCookieLEGO m;
 +
 +
void setup(){
 +
    Wire.begin();
 +
    Serial.begin(9600);
 +
   
 +
    ProtocolB.begin(9600);  //9600/19200/38400
 +
    m.configSensorType(mCookieLEGO::S1, mCookieLEGO::SENSOR_ULTRA);
 +
    m.configConnection(0xFFFF);
 +
}
 +
uint8_t dis;
 +
 +
void loop(){
 +
  int sta = ProtocolB.parse(Data, MODE_WHILE);
 +
  if (sta != P_NONE) {
 +
    switch (sta) {
 +
      case P_FINE:
 +
        speedLeft = map(Data[1], 1000, 2000, -255, 255);
 +
        speedRight = speedLeft;
 +
        int speedTurn = map(Data[4], 1000, 2000, -255, 255);
 +
        if(speedTurn < 0){
 +
          speedLeft += speedTurn;
 +
        }
 +
        else{
 +
        speedRight -=  speedTurn;
 +
        }
 +
        break;
 +
//      default:
 +
//        break;
 +
    }
 +
  }
 +
  refreshSpeed();
 +
  delay(10);
 +
}
 +
 +
void refreshSpeed{
 +
  m.motor_setFixedDrive(mCookieLEGO::M3, speedLeft);
 +
  m.motor_setFixedDrive(mCookieLEGO::M4, speedRight);
 +
}
 +
 +
 +
</source>
 +
 +
 
“ble()”函数是蓝牙接收数据及控制彩灯。
 
“ble()”函数是蓝牙接收数据及控制彩灯。
 
*定义蓝牙通讯串口  
 
*定义蓝牙通讯串口  
第68行: 第123行:
 
   }
 
   }
 
</source>
 
</source>
 +
 
==调试代码==
 
==调试代码==
 
*通过CoreUSB模块连接电脑并加载程序后,点击串口监视器,会弹出一个窗口,里面会显示光线传感器接收到的光线值的变化。
 
*通过CoreUSB模块连接电脑并加载程序后,点击串口监视器,会弹出一个窗口,里面会显示光线传感器接收到的光线值的变化。

2016年4月24日 (日) 04:26的版本

Language English

目的

通过mCookieLEGOShield,使mCookie可以控制NXT接口的电机和传感器。

原理

通过手机端的mTank软件发送指令,叠加在mCookie的蓝牙模块接收并解析指令 通过IIC通讯,mCookie控制LEGOShield,完成对NXT接口电机和传感器的控制

设备

模块 数量 功能
MCookie-CoreUSB/zh 1 核心板
MCookie-LEGOShield/zh 1 乐高底板
MCookie-BT/zh 1 蓝牙模块

准备

  • Setup 1:用USB线将CoreUSB模块与PC/Mac相连,并打开Arduino IDE。
  • Setup 2:点击文件 >示例 > mCookie > _201_CowardlyNightLight_BLE, 加载程序。
  • Setup 3:加载代码,将程序代买拷贝到IDE中。程序编译通过后选择好板卡和COM端口下载程序。
  • Setup4: 组装乐高小车,并将两个电机线插在MCookie-LEGOShield的M3,M4接口

程序说明

#include <mCookieLEGO.h>
#include <Microduino_Protocol_HardSer.h>
#include "Wire.h"


uint16_t Data[8];
int speedLeft = 0;
int speedRight = 0;
Protocol ProtocolB(&Serial1, TYPE_NUM);
mCookieLEGO m;

void setup(){
    Wire.begin();
    Serial.begin(9600);
    
    ProtocolB.begin(9600);  //9600/19200/38400
    m.configSensorType(mCookieLEGO::S1, mCookieLEGO::SENSOR_ULTRA);
    m.configConnection(0xFFFF);
}
uint8_t dis;

void loop(){
  int sta = ProtocolB.parse(Data, MODE_WHILE);
  if (sta != P_NONE) {
    switch (sta) {
      case P_FINE:
        speedLeft = map(Data[1], 1000, 2000, -255, 255);
        speedRight = speedLeft;
        int speedTurn = map(Data[4], 1000, 2000, -255, 255);
        if(speedTurn < 0){
          speedLeft += speedTurn; 
        }
        else{
         speedRight -=  speedTurn;
        }
        break;
//       default:
//        break;
    }
  }
  refreshSpeed();
  delay(10);
}

void refreshSpeed{
  m.motor_setFixedDrive(mCookieLEGO::M3, speedLeft);
  m.motor_setFixedDrive(mCookieLEGO::M4, speedRight);
}


“ble()”函数是蓝牙接收数据及控制彩灯。

  • 定义蓝牙通讯串口
#define my_Serial Serial1
  • 定义传感器引脚,及可连接的灯的数量。
#define PIXEL_PIN    6    // Digital IO pin connected to the NeoPixels.
#define PIXEL_COUNT  2

#define lightSensorPin  A0
  • 环境光预设值,更改Light的大小就可以改变在某个亮度下开启灯光。
#define lightSwitch  700
  • 读取亮度函数
sensorValue = analogRead(lightSensorPin);
  • 判断环境参数低于预设值则开启灯光,并且通过蓝牙控制,否则关闭灯光。
  if(sensorValue>lightSwitch) {
    Serial.println(sensorValue);
    strip.setPixelColor(0, strip.Color(0, 0, 0));
    strip.setPixelColor(1, strip.Color(0, 0, 0));
    strip.show();
  } else {
      ble();
      if (!color_en) {
        for (int i = 0; i < 1; i++)
          rainbow(10);
      }
  }

调试代码

  • 通过CoreUSB模块连接电脑并加载程序后,点击串口监视器,会弹出一个窗口,里面会显示光线传感器接收到的光线值的变化。

当前设定的感光值是700,你可以尝试根据之前监测出来的数据在程序中更改这一数值,重新刷入程序,看看会产生什么效果。

搭建硬件

  • Setup 1:将彩灯接到Sensorhub的D6引脚上,将光敏传感器接到A0引脚上。

LED灯的连接方法如图,请注意连接顺序,从LED的IN接口接入,从OUT接口接出本应用最多可控制2个LED灯。

CoreUSB Ble steup11.jpg
  • Setup 2:将激活后的电池盒与BM模块相连.
CoreUSB Ble steup2.jpg
  • Setup 3:将所有模块堆叠在一起,顺序随意,电路部分搭建完成。

APP调试

  • Setup 1:扫描左侧的二维码,下载Bluetooth Light APP。
App Ble steup1.jpg
  • Setup 2:载安装App后,打开应用,如果没有打开蓝牙,系统会提示,选择打开。
  • Setup 3:点击Scan,手机会开始搜索蓝牙设备,并显示在下方,选择名称为Microduino的设备.
  • Setup 4:连接成功后,你就可以用手机来控制灯光了

结果

遮住光线传感器,或进入较暗环境下,LED灯就会发光,这时你就可以用蓝牙来控制灯光的颜色。你也可以通过乐高搭建一个漂亮的外观。

视频