Difference between revisions of "MCookie-LEGOShield"
From Microduino Wiki
(Created page with "{{Language|mCookie-Motor}} {| style="width: 800px;" |- | 400px|thumb|right|mCookie-LEGOShield mCookie-LEGOShield(hereafter refered to as sh...") |
|||
(7 intermediate revisions by the same user not shown) | |||
Line 6: | Line 6: | ||
− | mCookie-LEGOShield(hereafter | + | mCookie-LEGOShield(hereafter referred to as shield)is a plate compatible with Lego. At the same time compatible with Lego NXT interface and motor, it can continue to be stacked with mCookie modules, to make the Lego more smart. |
− | |||
− | |||
==Features== | ==Features== | ||
− | *4 motor interfaces, compatible with Lego NXT | + | *4 motor interfaces, compatible with Lego NXT motors; |
− | *4 common sensor interfaces, compatible with the button of NXT interface and sound sensors, and so | + | *4 common sensor interfaces, compatible with the button of NXT interface and sound sensors, and so on; |
− | *2 fully functional sensor interfaces, beside compatible with all sensors of common sensor interfaces, also compatible with the NXT ultrasonic sensors and color | + | *2 fully functional sensor interfaces, beside compatible with all sensors of common sensor interfaces, also compatible with the NXT ultrasonic sensors and color sensors; |
*IIC interface protocol, and not take up other spare IO ports. | *IIC interface protocol, and not take up other spare IO ports. | ||
==Specification== | ==Specification== | ||
− | *Power | + | *Power supply: Use 2S model aircraft lithium battery to supply power, 7.4V. |
− | *Master | + | *Master control: MCookie-LEGOShield adopts Atmega328p master control, and it can run driver independently. |
− | * | + | *Communication: IIC communication, and the address is 0x08(can be customized) |
− | * | + | *Interface: 4 NXT motor interfaces, and 6 NXT sensor interfaces(only S1 and S2 support the ultrasonic sensors and color sensors among them) |
{|class="wikitable" | {|class="wikitable" | ||
! rowspan="1" |MCookie pins||Shield chip pins||Function | ! rowspan="1" |MCookie pins||Shield chip pins||Function | ||
|- | |- | ||
− | | SDA||SDA|| IIC interface SDA pin|- | + | | SDA||SDA|| IIC interface SDA pin |
+ | |- | ||
| SCL||SCL|| IIC interface SCL pin | | SCL||SCL|| IIC interface SCL pin | ||
|- | |- | ||
| D0|| D1|| Serial1 RX of mCookie(You can decide weld it or not, and the default is not connecting) | | D0|| D1|| Serial1 RX of mCookie(You can decide weld it or not, and the default is not connecting) | ||
|- | |- | ||
− | | D1|| D0|| | + | | D1|| D0||Serial1 TX of mCookie(You can decide weld it or not, and the default is not connecting) |
|- | |- | ||
| 5V||5V||Shield can be used to supply power to mCookie. | | 5V||5V||Shield can be used to supply power to mCookie. | ||
Line 38: | Line 37: | ||
|} | |} | ||
− | * | + | *Note: |
**The bit of IIC slave address of shield is adjustable, and you need to rewrite the firmware. | **The bit of IIC slave address of shield is adjustable, and you need to rewrite the firmware. | ||
*If you use shield to supply power, because the initialization of shield firmware needs a certain time, when mCookie writes the control program, you should run it after delayed for a while. | *If you use shield to supply power, because the initialization of shield firmware needs a certain time, when mCookie writes the control program, you should run it after delayed for a while. | ||
Line 51: | Line 50: | ||
==Development== | ==Development== | ||
− | Shield adopts IIC interface communication, and the address of IIC is defaulted to | + | Shield adopts IIC interface communication, and the address of IIC is defaulted to 0x08, which can read and write register address just like other chips. |
Explanation of API interface.pdf | Explanation of API interface.pdf | ||
− | *Driver package has been done for each sensor and motor, so you | + | *Driver package has been done for each sensor and motor, so you needn't focus on the basic API any more. |
− | *Directly use the methods in the library to operate, and the specific protocols have been realized in | + | *Directly use the methods in the library to operate, and the specific protocols have been realized in shield's own master control. |
*Before using various sensors and motors, you should set the type of the sensors and each interface connected or not. | *Before using various sensors and motors, you should set the type of the sensors and each interface connected or not. | ||
*Only S1 and S2 support ultrasonic and color sensors. | *Only S1 and S2 support ultrasonic and color sensors. | ||
===Use Lego NXT Interface key=== | ===Use Lego NXT Interface key=== | ||
− | Common | + | Common method: |
====Determine Whether to Press==== | ====Determine Whether to Press==== | ||
====Determine Whether to Release==== | ====Determine Whether to Release==== | ||
Line 66: | Line 65: | ||
===Use Lego NXT Interface Motor=== | ===Use Lego NXT Interface Motor=== | ||
− | Common | + | Common method: |
====Set a Fixed Speed==== | ====Set a Fixed Speed==== | ||
− | Range of | + | Range of speed: -255~255 |
<source lang="cpp"> | <source lang="cpp"> | ||
#include <mCookieLEGO.h> | #include <mCookieLEGO.h> |
Latest revision as of 03:38, 4 August 2017
Language: | English • 中文 |
---|
ContentsFeatures
Specification
Documentsmcps17 A3906 Atmega328p DevelopmentShield adopts IIC interface communication, and the address of IIC is defaulted to 0x08, which can read and write register address just like other chips. Explanation of API interface.pdf
Use Lego NXT Interface keyCommon method: Determine Whether to PressDetermine Whether to ReleaseUse Lego NXT Interface MotorCommon method: Set a Fixed SpeedRange of speed: -255~255 #include <mCookieLEGO.h>
#include "Wire.h"
mCookieLEGO m;
void setup(){
Wire.begin();
m.configConnection(0xFFFF); //Set the connection of each interface.
}
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);
} Use Lego NXT Interface UltrasonicCommon method: Get the Current Distance#include <mCookieLEGO.h>
#include "Wire.h"
mCookieLEGO m;
void setup(){
Wire.begin();
m.configSensorType(mCookieLEGO::S1, mCookieLEGO::SENSOR_ULTRA); // Set S1 as ultrasonic sensor.
m.configConnection(0xFFFF);
}
uint8_t dis;
void loop(){
dis = m.sensor_ultra_getDistance(mCookieLEGO::S1);
Serial.print("dis: ");
Serial.println(dis);
delay(1000);
} ApplicationPurchaseNo open purchase now. HistoryMap storageVideo |