“MCookie-LEGOShield/zh”的版本间的差异
(Created page with "{{Language|mCookie-Motor}} {| style="width: 800px;" |- | 400px|thumb|right|mCookie-Motor mCookie-Motor是一款直流电机(马达)控制器...") |
Zhangfengfeng(讨论 | 贡献) (→文档) |
||
| (未显示2个用户的16个中间版本) | |||
| 第3行: | 第3行: | ||
|- | |- | ||
| | | | ||
| − | [[File: | + | [[File:mCookie-LEGOShield.jpg|400px|thumb|right|mCookie-LEGOShield]] |
| − | mCookie- | + | |
| + | mCookie-LEGOShield(下文中简称shield)是一款乐高兼容底板,在兼容乐高NXT接口传感器和电机的同时,能够继续堆叠mCookie模块,让乐高更加智能。 | ||
| 第12行: | 第13行: | ||
==特色== | ==特色== | ||
| − | * | + | *4路电机接口,兼容乐高NXT电机; |
| − | * | + | *4路普通传感器接口,兼容NXT接口的按键、声音传感器等; |
| − | * | + | *2路全功能传感器接口,除了能兼容普通传感器接口的所有传感器之外,兼容NXT接口的超声波传感器和颜色传感器; |
| − | * | + | *IIC接口通讯,不占用其他多余IO口 |
==规格== | ==规格== | ||
| − | * | + | *供电:使用2S航模锂电池供电,7.4V。 |
| − | * | + | *主控:MCookie-LEGOShield采用Atmega328p主控,独立运行驱动程序。 |
| + | *通讯:IIC通讯,地址0x08(可自定义) | ||
| + | *接口:4个NXT电机接口,6个NXT传感器接口(其中只有S1、S2支持超声波传感器和颜色传感器) | ||
{|class="wikitable" | {|class="wikitable" | ||
| − | ! rowspan="1" |mCookie引脚|| | + | ! rowspan="1" |mCookie引脚||shield芯片引脚||功能 |
|- | |- | ||
| − | | | + | | SDA||SDA|| IIC接口SDA引脚 |
|- | |- | ||
| − | | | + | | SCL||SCL|| IIC接口SCL引脚 |
|- | |- | ||
| − | | | + | | D0|| D1||mCookie的Serial1 RX(可选悍,默认不连接) |
|- | |- | ||
| − | | | + | | D1|| D0||mCookie的Serial1 TX (可选悍,默认不连接) |
|- | |- | ||
| − | | | + | | 5V||5V||可以用shield给mCookie供电 |
|- | |- | ||
| GND||GND||共地 | | GND||GND||共地 | ||
| 第37行: | 第40行: | ||
*注意: | *注意: | ||
| − | ** | + | **shield的IIC从机地址位可调节,需要重新烧写固件。 |
| − | ** | + | **如果使用shield供电,由于shield固件初始化需要一定时间,所以在mCookie写控制程序的时候需要上点延迟一会再运行(delay一段时间) |
| − | |||
| − | |||
| − | |||
| − | |||
| + | [[File:mCookie-LEGOShield-TOP.jpg|800px|thumb|center]] | ||
| + | [[File:mCookie-LEGOShield-BUT.jpg|800px|thumb|center]] | ||
==开发== | ==开发== | ||
| + | shield采用IIC接口通讯,IIC地址默认为0x08,就像其他芯片一样读写寄存器地址。 | ||
| + | API接口说明.pdf | ||
| + | *针对各个传感器和电机已经做了常用的驱动封装,不需要关注底层的API | ||
| + | *直接调用库里的方法就可以操作,具体的协议在shield自己的主控里已经实现 | ||
| + | *在开始使用各种传感器和电机直前,要先设置传感器的类型和每个接口的连接与否 | ||
| + | *只有S1和S2支持超声波和颜色传感器 | ||
| + | ===使用乐高NXT接口按键=== | ||
| + | 常用方法: | ||
| + | ====判断是否按下==== | ||
| + | ====判断是否释放==== | ||
| + | <source lang="cpp"> | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
</source> | </source> | ||
| − | === | + | ===使用乐高NXT接口电机=== |
| − | + | 常用方法: | |
| − | + | ====设置固定的速度==== | |
| − | + | 速度范围:-255~255 | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
<source lang="cpp"> | <source lang="cpp"> | ||
| − | # | + | #include <mCookieLEGO.h> |
| − | # | + | #include "Wire.h" |
| − | |||
| − | |||
| − | void setup() | + | mCookieLEGO m; |
| − | { | + | void setup(){ |
| − | + | Wire.begin(); | |
| − | + | m.configConnection(0xFFFF); //设置每个接口的连接情况 | |
| − | |||
| − | |||
} | } | ||
| − | void loop() | + | void loop(){ |
| − | { | + | m.motor_setFixedDrive(mCookieLEGO::M1, 50); |
| − | + | delay(1); // very important | |
| − | delay( | + | m.motor_setFixedDrive(mCookieLEGO::M2, 50); |
| − | + | delay(1); // very important | |
| − | delay( | + | m.motor_setFixedDrive(mCookieLEGO::M3, 50); |
| − | + | delay(1); // very important | |
| − | delay( | + | m.motor_setFixedDrive(mCookieLEGO::M4, 50); |
| − | + | delay(2000); | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
} | } | ||
</source> | </source> | ||
| + | ===使用乐高NXT接口超声波=== | ||
| + | 常用方法: | ||
| + | ====获取当前的距离==== | ||
| + | <source lang="cpp"> | ||
| + | #include <mCookieLEGO.h> | ||
| + | #include "Wire.h" | ||
| − | + | mCookieLEGO m; | |
| − | + | void setup(){ | |
| − | + | Wire.begin(); | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | m.configSensorType(mCookieLEGO::S1, mCookieLEGO::SENSOR_ULTRA); // 把S1设置为超声波传感器 | |
| − | + | m.configConnection(0xFFFF); | |
| − | |||
| − | |||
| − | |||
| − | |||
} | } | ||
| − | void loop() | + | uint8_t dis; |
| − | { | + | |
| − | + | void loop(){ | |
| − | + | dis = m.sensor_ultra_getDistance(mCookieLEGO::S1); | |
| − | + | Serial.print("dis: "); | |
| − | + | Serial.println(dis); | |
| − | + | delay(1000); | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
} | } | ||
</source> | </source> | ||
==应用== | ==应用== | ||
| + | [[乐高遥控小车]] | ||
| − | |||
| − | |||
==图库== | ==图库== | ||
| − | [[File:mCookie- | + | [[File:mCookie-LEGOShield-pic1.jpg|800px|thumb|center]] |
| − | |||
| − | |||
|} | |} | ||
2017年4月21日 (五) 06:11的最新版本
| Language | English |
|---|
|
目录特色
规格
开发shield采用IIC接口通讯,IIC地址默认为0x08,就像其他芯片一样读写寄存器地址。 API接口说明.pdf
使用乐高NXT接口按键常用方法: 判断是否按下判断是否释放
使用乐高NXT接口电机常用方法: 设置固定的速度速度范围:-255~255 #include <mCookieLEGO.h>
#include "Wire.h"
mCookieLEGO m;
void setup(){
Wire.begin();
m.configConnection(0xFFFF); //设置每个接口的连接情况
}
void loop(){
m.motor_setFixedDrive(mCookieLEGO::M1, 50);
delay(1); // very important
m.motor_setFixedDrive(mCookieLEGO::M2, 50);
delay(1); // very important
m.motor_setFixedDrive(mCookieLEGO::M3, 50);
delay(1); // very important
m.motor_setFixedDrive(mCookieLEGO::M4, 50);
delay(2000);
}
使用乐高NXT接口超声波常用方法: 获取当前的距离#include <mCookieLEGO.h>
#include "Wire.h"
mCookieLEGO m;
void setup(){
Wire.begin();
m.configSensorType(mCookieLEGO::S1, mCookieLEGO::SENSOR_ULTRA); // 把S1设置为超声波传感器
m.configConnection(0xFFFF);
}
uint8_t dis;
void loop(){
dis = m.sensor_ultra_getDistance(mCookieLEGO::S1);
Serial.print("dis: ");
Serial.println(dis);
delay(1000);
}
应用
图库
|


