“MCookie-LEGOShield/zh”的版本间的差异
(→开发) |
Zhangfengfeng(讨论 | 贡献) (→文档) |
||
(未显示2个用户的7个中间版本) | |||
第22行: | 第22行: | ||
*主控:MCookie-LEGOShield采用Atmega328p主控,独立运行驱动程序。 | *主控:MCookie-LEGOShield采用Atmega328p主控,独立运行驱动程序。 | ||
*通讯:IIC通讯,地址0x08(可自定义) | *通讯:IIC通讯,地址0x08(可自定义) | ||
+ | *接口:4个NXT电机接口,6个NXT传感器接口(其中只有S1、S2支持超声波传感器和颜色传感器) | ||
{|class="wikitable" | {|class="wikitable" | ||
! rowspan="1" |mCookie引脚||shield芯片引脚||功能 | ! rowspan="1" |mCookie引脚||shield芯片引脚||功能 | ||
|- | |- | ||
− | | | + | | SDA||SDA|| IIC接口SDA引脚 |
|- | |- | ||
− | | | + | | SCL||SCL|| IIC接口SCL引脚 |
|- | |- | ||
| D0|| D1||mCookie的Serial1 RX(可选悍,默认不连接) | | D0|| D1||mCookie的Serial1 RX(可选悍,默认不连接) | ||
第42行: | 第43行: | ||
**如果使用shield供电,由于shield固件初始化需要一定时间,所以在mCookie写控制程序的时候需要上点延迟一会再运行(delay一段时间) | **如果使用shield供电,由于shield固件初始化需要一定时间,所以在mCookie写控制程序的时候需要上点延迟一会再运行(delay一段时间) | ||
− | [[File: | + | [[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接口按键=== | ===使用乐高NXT接口按键=== | ||
− | + | 常用方法: | |
− | + | ====判断是否按下==== | |
+ | ====判断是否释放==== | ||
<source lang="cpp"> | <source lang="cpp"> | ||
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
</source> | </source> | ||
===使用乐高NXT接口电机=== | ===使用乐高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> | ||
第168行: | 第114行: | ||
[[乐高遥控小车]] | [[乐高遥控小车]] | ||
− | |||
− | |||
− | |||
==图库== | ==图库== | ||
− | [[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);
}
应用
图库
|