“乐高遥控小车”的版本间的差异
第9行: | 第9行: | ||
通过IIC通讯,mCookie控制LEGOShield,完成对NXT接口电机和传感器的控制 | 通过IIC通讯,mCookie控制LEGOShield,完成对NXT接口电机和传感器的控制 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==概述== | ==概述== | ||
*项目名称:乐高蓝牙遥控小车 | *项目名称:乐高蓝牙遥控小车 | ||
第56行: | 第40行: | ||
|部件||数量||功能 | |部件||数量||功能 | ||
|- | |- | ||
− | | | + | |NXT接口电机||2||驱动车轮 |
|- | |- | ||
− | | | + | |NXT连接线||2||连接电机与底板 |
|- | |- | ||
− | | | + | |LEGO积木结构件||若干||搭建小车结构 |
|- | |- | ||
|Micro-USB数据线||1||下载程序 | |Micro-USB数据线||1||下载程序 | ||
|- | |- | ||
− | | | + | |7.4v锂电池||1||供电 |
− | |||
− | |||
− | |||
− | |||
|} | |} | ||
|} | |} |
2016年4月25日 (一) 06:24的版本
Language | English |
---|
目录原理通过手机端的mTank软件发送指令,叠加在mCookie的蓝牙模块接收并解析指令 通过IIC通讯,mCookie控制LEGOShield,完成对NXT接口电机和传感器的控制 概述
材料清单
实验原理
程序下载
程序烧写
拼装过程
操作说明
Joypad遥控指南
蓝牙遥控指南
代码说明
#define NRF_CHANNEL 70 //nRF通道
#define CHANNEL_THROTTLE 2 //油门通道
#define CHANNEL_STEERING 1 //转向通道
#define motor_fixL 1 //速度修正 -1到1之间
#define motor_fixR 1 //速度修正 -1到1之间
疑难解答/FAQ
|
程序说明
#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);
}