“MCookie-LEGOShield/zh”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
应用
规格
第19行: 第19行:
  
 
==规格==
 
==规格==
*外部供电:BM模块供电。
+
*供电:使用2S航模锂电池供电,7.4V。
*引脚说明
+
*通讯:IIC通讯,地址0x08(可自定义)
 
{|class="wikitable"
 
{|class="wikitable"
! rowspan="1" |mCookie引脚||Motor芯片引脚||功能
+
! rowspan="1" |mCookie引脚||mCookie-LEGOShield芯片引脚||功能
 
|-
 
|-
| D6|| 1A||控制1A高电平,顺时针转
+
| A4||A4|| IIC接口SDA引脚
 
|-
 
|-
| D8|| 1B||控制1B高电平,逆时针转
+
| A5||A5|| IIC接口SCL引脚
 
|-
 
|-
| D5|| 2A||控制2A高电平,顺时针转
+
| D0|| D1||mCookie的Serial1 RX(可选悍,默认不连接)
 
|-
 
|-
| D7|| 2B||控制2A高电平,顺时针转
+
| D1|| D0||mCookie的Serial1 TX (可选悍,默认不连接)
 
|-
 
|-
| VMOT||BM模块||供电
+
| 5V||5V||可以用shield给mCookie供电
 
|-
 
|-
 
| GND||GND||共地
 
| GND||GND||共地
第38行: 第38行:
  
 
*注意:
 
*注意:
**使用Motor模块驱动电机5,6,7,8这几个引脚不能被其他传感器占用,否则会出现问题。
+
**shield的IIC从机地址位可调节,需要重新烧写固件。
**Motor模块必须通过[[mCookie-BM/zh]]模块进行供电,不能直接通过CoreUSB连接电脑供电否则可能导致应用无法工作
+
**如果使用shield供电,由于shield固件初始化需要一定时间,所以在mCookie写控制程序的时候需要上点延迟一会再运行(delay一段时间)
  
 
[[File:motor-Pinout-1Big.jpg|800px|thumb|center]]
 
[[File:motor-Pinout-1Big.jpg|800px|thumb|center]]

2016年4月22日 (五) 14:53的版本

Language English
mCookie-LEGOShield


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



特色

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

规格

  • 供电:使用2S航模锂电池供电,7.4V。
  • 通讯:IIC通讯,地址0x08(可自定义)
mCookie引脚 mCookie-LEGOShield芯片引脚 功能
A4 A4 IIC接口SDA引脚
A5 A5 IIC接口SCL引脚
D0 D1 mCookie的Serial1 RX(可选悍,默认不连接)
D1 D0 mCookie的Serial1 TX (可选悍,默认不连接)
5V 5V 可以用shield给mCookie供电
GND GND 共地
  • 注意:
    • shield的IIC从机地址位可调节,需要重新烧写固件。
    • 如果使用shield供电,由于shield固件初始化需要一定时间,所以在mCookie写控制程序的时候需要上点延迟一会再运行(delay一段时间)
Motor-Pinout-1Big.jpg

文档

开发

直流电机接线

  • 将一个直流电机接(OUT1A,OUT1B),另外一个直流电机接(OUT2A,OUT2B);
  • 直流电机控制引脚:
//D6,D8控制1A,1B的电机
#define OUT1A 6
#define OUT1B 8
//D5,D7控制2A,2B的电机
#define OUT2A 5
#define OUT2B 7

通断控制

6 8 5 7 1A 1B 2A 2B 功能
Low Low Low Low Off Off Off Off 关闭(惯性停下)
High Low High Low High Low High Low 顺时针转
Low High Low High Low High Low High 逆时针转
High High High High Low Low Low Low 急停
#define OUT1A 6
#define OUT1B 8
#define OUT2A 5
#define OUT2B 7

void setup()
{
  pinMode(OUT1A, OUTPUT);
  pinMode(OUT1B, OUTPUT);
  pinMode(OUT2A, OUTPUT);
  pinMode(OUT2B, OUTPUT);
}

void loop()
{
head();
delay(2000);
back();
delay(1000);
stop();
delay(500);
}

void head()
{
  digitalWrite(OUT1A, HIGH);
  digitalWrite(OUT1B, LOW);
  digitalWrite(OUT2A, HIGH);
  digitalWrite(OUT2B, LOW);
}
void back()
{
  digitalWrite(OUT1A, LOW);
  digitalWrite(OUT1B, HIGH);
  digitalWrite(OUT2A, LOW);
  digitalWrite(OUT2B, HIGH);
}
void stop()
{
  digitalWrite(OUT1A, LOW);
  digitalWrite(OUT1B, LOW);
  digitalWrite(OUT2A, LOW);
  digitalWrite(OUT2B, LOW);
}

PWM调速控制

//D6,D8控制1A,1B的电机
#define OUT1A 6
#define OUT1B 8
//D5,D7控制2A,2B的电机
#define OUT2A 5
#define OUT2B 7

void setup()
{
  pinMode(OUT1A, OUTPUT);
  pinMode(OUT1B, OUTPUT);
  pinMode(OUT2A, OUTPUT);
  pinMode(OUT2B, OUTPUT);
}

void loop()
{
  for (int fadeValue = 0; fadeValue <= 255; fadeValue += 5)
    //循环语句,控制PWM速度增加,控制fadeValue的变化大小可以控制亮度级别
  {
    analogWrite(OUT1A, fadeValue);  //将速度级别写入电机
    digitalWrite(OUT1B, LOW);
    analogWrite(OUT2A, fadeValue);
    digitalWrite(OUT2B, LOW);
    delay(100);                       //速度度级别维持的时间,单位毫秒
  }
  for (int fadeValue = 255; fadeValue >= 0; fadeValue -= 5)
    //循环语句,控制PWM速度减小,控制fadeValue的变化大小可以控制亮度级别
  {
    digitalWrite(OUT1A, LOW);
    analogWrite(OUT1B, fadeValue);  //将速度级别写入电机
    digitalWrite(OUT2A, LOW);
    analogWrite(OUT2B, fadeValue);
    delay(100);                     //速度度级别级别维持的时间,单位毫秒
  }
  delay(1000);
}

应用

乐高遥控小车

购买

暂不开放购买

历史

图库

MCookie-Motor-t1.jpg
MCookie-Motor-b1.jpg

视频