|
|
(未显示同一用户的3个中间版本) |
第56行: |
第56行: |
| *本次我们主要使用两轮驱动的结构,通过控制两个轮子的旋转方向,实现前进后退,旋转等功能,当然还要加上辅助轮,这样才能保持平衡。 | | *本次我们主要使用两轮驱动的结构,通过控制两个轮子的旋转方向,实现前进后退,旋转等功能,当然还要加上辅助轮,这样才能保持平衡。 |
| *该小车结构简单,主要包括三个方面:车轮、车身、控制系统。 | | *该小车结构简单,主要包括三个方面:车轮、车身、控制系统。 |
− | **1)车轮采用两个减速电机,扭力大,可PWM调速,控制简单。 | + | **1)车轮采用两个NXT接口电机。 |
− | **2)车身采用木板,大小:8cm*8cm*8cm。 | + | **2)车身采用乐高积木堆叠而成。 |
| **3)整个控制系统包括四个部分: | | **3)整个控制系统包括四个部分: |
| | | |
第192行: |
第192行: |
| | | |
| |} | | |} |
− |
| |
− |
| |
− | ==程序说明==
| |
− |
| |
− | <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>
| |