“乐高遥控小车”的版本间的差异
(→实验原理) |
|||
第56行: | 第56行: | ||
*本次我们主要使用两轮驱动的结构,通过控制两个轮子的旋转方向,实现前进后退,旋转等功能,当然还要加上辅助轮,这样才能保持平衡。 | *本次我们主要使用两轮驱动的结构,通过控制两个轮子的旋转方向,实现前进后退,旋转等功能,当然还要加上辅助轮,这样才能保持平衡。 | ||
*该小车结构简单,主要包括三个方面:车轮、车身、控制系统。 | *该小车结构简单,主要包括三个方面:车轮、车身、控制系统。 | ||
− | **1) | + | **1)车轮采用两个NXT接口电机。 |
− | **2) | + | **2)车身采用乐高积木堆叠而成。 |
**3)整个控制系统包括四个部分: | **3)整个控制系统包括四个部分: | ||
2016年4月25日 (一) 06:36的版本
Language | English |
---|
概述
材料清单
实验原理
程序下载
程序烧写
拼装过程
操作说明蓝牙遥控指南
疑难解答/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);
}