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

来自Microduino Wikipedia
跳转至: 导航搜索
开发
开发
第67行: 第67行:
 
常用方法:
 
常用方法:
 
====设置固定的速度====
 
====设置固定的速度====
 +
<source lang="cpp">
 +
#include <mCookieLEGOMotor.h>
 +
#include <Wire.h>
 +
#include <MCP23017.h>
 +
#include <mCookieLEGOShield.h>
  
===使用乐高NXT接口超声波===
+
mCookieLEGOMotor m(mCookieLEGOShield::MOTOR_1); //参数可以使MOTOR1~MOTOR4
常用方法:
 
====获取当前的距离====
 
<source lang="cpp">
 
#define OUT1A 6
 
#define OUT1B 8
 
#define OUT2A 5
 
#define OUT2B 7
 
  
 
void setup()
 
void setup()
 
{
 
{
   pinMode(OUT1A, OUTPUT);
+
   mCookieLEGOShield::begin();
   pinMode(OUT1B, OUTPUT);
+
   m.begin();
  pinMode(OUT2A, OUTPUT);
 
  pinMode(OUT2B, OUTPUT);
 
 
}
 
}
  
void loop()
+
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);
+
   m.setFixedDrive(75); //参数可以是-255~+255
  digitalWrite(OUT1B, LOW);
 
  digitalWrite(OUT2A, LOW);
 
  digitalWrite(OUT2B, LOW);
 
 
}
 
}
 
</source>
 
</source>
 
+
===使用乐高NXT接口超声波===
===PWM调速控制===
+
常用方法:
 +
====获取当前的距离====
 
<source lang="cpp">
 
<source lang="cpp">
//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);
 
}
 
 
</source>
 
</source>
  

2016年4月23日 (六) 02:35的版本

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(可自定义)
mCookie引脚 shield芯片引脚 功能
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

文档

mcps17 A3906 Atmega328p

开发

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

  • 针对各个传感器和电机已经做了常用的驱动封装,不需要关注底层的API
  • 直接调用库里的方法就可以操作,具体的协议在shield自己的主控里已经实现

使用乐高NXT接口按键

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

使用乐高NXT接口电机

常用方法:

设置固定的速度

#include <mCookieLEGOMotor.h>
#include <Wire.h>
#include <MCP23017.h>
#include <mCookieLEGOShield.h>

mCookieLEGOMotor m(mCookieLEGOShield::MOTOR_1); //参数可以使MOTOR1~MOTOR4

void setup()
{
  mCookieLEGOShield::begin();
  m.begin();
}

void loop() 
{
  m.setFixedDrive(75); //参数可以是-255~+255
}

使用乐高NXT接口超声波

常用方法:

获取当前的距离


应用

乐高遥控小车

购买

暂不开放购买

历史

图库

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

视频