MCookie-LEGOShield/zh

来自Microduino Wikipedia
跳转至: 导航搜索
Language English
mCookie-LEGOShield


mCookie-LEGOShield(下文中简称shield)是一款乐高兼容底板,在兼容乐高NXT接口传感器和电机的同时,能够继续堆叠mCookie模块,让乐高更加智能。



特色

  • 4路电机接口,兼容乐高NXT电机;
  • 4路普通传感器接口,兼容NXT接口的按键、声音传感器等;
  • 2路全功能传感器接口,除了能兼容普通传感器接口的所有传感器之外,兼容NXT接口的超声波传感器和颜色传感器;
  • IIC接口通讯,不占用其他多余IO口

规格

  • 供电:使用2S航模锂电池供电,7.4V。
  • 主控:MCookie-LEGOShield采用Atmega328p主控,独立运行驱动程序。
  • 通讯:IIC通讯,地址0x08(可自定义)
  • 接口:4个NXT电机接口,6个NXT传感器接口(其中只有S1、S2支持超声波传感器和颜色传感器)
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 共地
  • 注意:
    • shield的IIC从机地址位可调节,需要重新烧写固件。
    • 如果使用shield供电,由于shield固件初始化需要一定时间,所以在mCookie写控制程序的时候需要上点延迟一会再运行(delay一段时间)
MCookie-LEGOShield-TOP.jpg
MCookie-LEGOShield-BUT.jpg

开发

shield采用IIC接口通讯,IIC地址默认为0x08,就像其他芯片一样读写寄存器地址。 API接口说明.pdf

  • 针对各个传感器和电机已经做了常用的驱动封装,不需要关注底层的API
  • 直接调用库里的方法就可以操作,具体的协议在shield自己的主控里已经实现
  • 在开始使用各种传感器和电机直前,要先设置传感器的类型和每个接口的连接与否
  • 只有S1和S2支持超声波和颜色传感器

使用乐高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);
}

应用

乐高遥控小车


图库

MCookie-LEGOShield-pic1.jpg