Difference between revisions of "Microduino-Shield Robot"

From Microduino Wiki
Jump to: navigation, search
m (Fengfeng moved page Microduino-Robot to Microduino-Shield Robot)
Line 1: Line 1:
{{Language|Microduino-Robot/zh}}
+
{{Language|Microduino-Robot}}
 
{| style="width: 800px;"
 
{| style="width: 800px;"
 
[[File: Microduino-Robot-rect.jpg|400px|thumb|right|Microduino- Robot]]
 
 
Microduino-Robot, as a robot control board, is used together with [[Microduino-Core+]], [[Microduino-Motor]] and [[Microduino-Stepper]]. With the onboard sensor interface, it enables users to introduce various sensors and achieve more functions. 
 
 
|-
 
|-
 
|
 
|
 +
[[File: Microduino-Robot-rect.jpg|400px|thumb|right|Microduino- Robot]]
 +
Microduino-Robot shield, as a DC motor control board, can control 4 DC motors together with [[Microduino-Core]] and [[Microduino-Core+]]. And at the same time with sensor interfaces onboard, the users can connect it with varieties of sensors to achieve more functions.
  
  
==Feature==
+
==Features==
*Two motor drive interfaces, capable of driving two stepping motors or four DC motors.
+
*With lithium battery charging and discharging management, including charging, boosting(5V) and stabilivolt (3.3V) functions.
*Rich sensor interfaces, easy for extension.
+
*With four motor driving interfaces, which makes it can drive four DC motor.  
*5V and 3.3V battery management.
+
*With abundant sensor interfaces, which makes it can be easily extended.  
*Upin27 base board to connect more Microduino modules.  
+
*With Upin27 baseboard, which makes it can be connected with more Microduino modules.
*Small size: 46.99mm*40.64mm
+
*With small size, 46.99mm*40.64mm
  
 
==Specification==
 
==Specification==
*Electrical Specification
+
*Electric
**5V stabilivolt: Adopt LM2674 voltage reduction scheme.
+
**5V boosting: Adopt G5177 rectifier booster chip, working voltage 3.0V~5V, and the output current 800mA
**3.3V stabilivolt: AMS1117 voltage reduction scheme.  
+
**3.3V stabilivolt: AMS1117 stabilivolt plan, and the maximum output current can achieve 600mA.
**Please make sure power source within 5V-9V.
+
**Charging management: LTC4054 power management solution, and MicroUSB charging interface.  
**Power switch  
+
**With battery interface and power switch onboard.  
*Motor drive
+
**The battery interface and the power switch can be led out, which makes it easy to be controlled.
**M.A:D7,D5,D8,D6(suitable for Core and PWM speed adjustment)
+
*Motor driving
**M.B:D19,D23,D18,D22(suitable for Core+ and PWM speed adjustment)
+
**Adopt 2 DRV8833two-channel motor driver, and the driving power supply is battery, and each motor can continually provide RMS driving current up to 400mA. And they support the peak current up to 450mA.
*Nine onboard sensor interfaces  
+
**A driver pins: D6, D8, D5, D7
*Onboard LED light connected to D4 
+
**B driver pins: A0, A1, A2, A3
*Onboard reset key
+
***'''The position from the head to the foot of the toggle switch as shown in the following picture is corresponding to the motor driving pin A0, A1, A2, A3'''
[[file:Microduino-Robot_Rule1.JPG|thumb|600px|center]]
+
***'''Turn the corresponding toggle switch to ON, and this motor can be used to drive pins'''
[[file:Microduino-Robot_Rule2.JPG|thumb|600px|center]]
+
*With 5 sensor interfaces onboard
 +
*With reset button onboard
 +
[[file:ROBOTSHIELtips.jpg|thumb|600px|center]]
  
 
==Document==
 
==Document==
*Chip:'''[[File: LM2674.pdf]]'''
+
*Chip: '''[[File: DRV8833datasheet.pdf]]'''
 +
*Microduino motor control library functions: [https://github.com/Microduino/Microduino-IDE-Support/tree/master/arduino-ide-Support/%5B1.6.x%5D-hardware%28library%29/hardware/Microduino/avr/libraries/_04_Microduino_Motor Microduino_Motor]
 +
 
 
==Development==
 
==Development==
*For DC motor drive, please refer to:[[Microduino-Motor]]
+
 
Program examples:  
+
===DC Motor Wiring===
 +
Connect a DC motor to(A.MOTOR.1), and the other to (A.MOTOR.2);
 +
Or one to (B.MOTOR.1), and the other to (B.MOTOR.2);
 +
 
 +
===DC Motor Control Mode===
 +
*A driver
 +
{|class="wikitable"
 +
! rowspan="1" |D6||D8||D5||D7||A.MOTOR.1.A||A.MOTOR.1.B||A.MOTOR.2.A||A.MOTOR.2.B||Function
 +
|-
 +
|0||0||0||0||Off||Off||Off||Off||Close
 +
|-
 +
|1||0||1||0||High||Low||High||Low||Forward
 +
|-
 +
|0||1||0||1||Low||High||Low||High||Reverse
 +
|-
 +
|1||1||1||1||Low||Low||Low||Low||Braking
 +
|}
 +
 
 +
*B driver
 +
{|class="wikitable"
 +
! rowspan="1" |A0||A1||A2||A3||B.MOTOR.1.A||B.MOTOR.1.B||B.MOTOR.2.A||B.MOTOR.2.B||Function
 +
|-
 +
|0||0||0||0||Off||Off||Off||Off||Close
 +
|-
 +
|1||0||1||0||High||Low||High||Low||Forward
 +
|-
 +
|0||1||0||1||Low||High||Low||High||Reverse
 +
|-
 +
|1||1||1||1||Low||Low||Low||Low||Braking
 +
|}
 +
 
 +
 
 +
 
 +
*For driving DC motor, refer to: [[Microduino-Motor]]:
 +
Example:  
 
<source lang="cpp">
 
<source lang="cpp">
 
//=========M.A=============//
 
//=========M.A=============//
int mic_left_A = 7;
+
int mic_left_A = 6;
int mic_right_A = 5;
+
int mic_right_A = 8;
int mic_head_A = 8;
+
int mic_head_A = 5;
int mic_back_A = 6;
+
int mic_back_A = 7;
 
//=========M.B=============//
 
//=========M.B=============//
 
/*
 
/*
int mic_left_B = 22;
+
int mic_left_A = A0;
  int mic_right_B =18;
+
  int mic_right_A =A1;
  int mic_head_B = 23;
+
  int mic_head_A = A2;
  int mic_back_B = 19;
+
  int mic_back_A = A3;
 
  */
 
  */
 
void setup() {
 
void setup() {
Line 107: Line 143:
 
}
 
}
 
</source>
 
</source>
*For stepmotor drive, please refer to: [[Microduino-Stepper]]
 
Program example:
 
<source lang="cpp">
 
 
#include <AccelStepper.h>
 
 
const int ENPin_A =8  ;      // the number of the LED pin
 
const int ENPin_B =23  ;      // the number of the LED pin
 
 
int motorSpeed = 9600; //maximum steps per second (about 3rps / at 16 microsteps)
 
int motorAccel = 80000; //steps/second/second to accelerate
 
 
int motorDirPin_A = 5; //digital pin 5
 
int motorStepPin_A = 7; //digital pin 7
 
int motorDirPin_B = 18; //digital pin 5
 
int motorStepPin_B = 22; //digital pin 7
 
 
//set up the accelStepper intance
 
//the "1" tells it we are using a driver
 
AccelStepper stepper_A(1, motorStepPin_A, motorDirPin_A);
 
AccelStepper stepper_B(1, motorStepPin_B, motorDirPin_B);
 
 
void setup(){
 
  pinMode(ENPin_A, OUTPUT); 
 
  pinMode(ENPin_B, OUTPUT);
 
  stepper_A.setMaxSpeed(motorSpeed);
 
  stepper_A.setSpeed(motorSpeed);
 
  stepper_A.setAcceleration(motorAccel);
 
 
  stepper_A.moveTo(3200); //move 32000 steps (should be 10 rev)
 
 
  stepper_B.setMaxSpeed(motorSpeed);
 
  stepper_B.setSpeed(motorSpeed);
 
  stepper_B.setAcceleration(motorAccel);
 
 
  stepper_B.moveTo(3200); //move 32000 steps (should be 10 rev)
 
 
}
 
 
void loop(){
 
  digitalWrite(ENPin_A, LOW);
 
  digitalWrite(ENPin_B, LOW);
 
  //if stepper is at desired location
 
  if (stepper_A.distanceToGo() == 0){
 
    //go the other way the same amount of steps
 
    //so if current position is 400 steps out, go position -400
 
    stepper_A.moveTo(-stepper_A.currentPosition());
 
  }
 
  //these must be called as often as possible to ensure smooth operation
 
  //any delay will cause jerky motion
 
  stepper_A.run();
 
 
  if (stepper_B.distanceToGo() == 0){
 
    //go the other way the same amount of steps
 
    //so if current position is 400 steps out, go position -400
 
    stepper_B.moveTo(-stepper_B.currentPosition());
 
  }
 
  //these must be called as often as possible to ensure smooth operation
 
  //any delay will cause jerky motion
 
  stepper_B.run();
 
}
 
</source>
 
  
 
==Application==
 
==Application==
==='''[[Microduino-Joypad Self-balance Robot Kit]]'''===
+
==='''[[Open Source Electric Driving Cube]]'''===
 
 
==='''[[BOXZ_mini Robot]]'''===
 
  
 
==Purchase==
 
==Purchase==
Line 179: Line 151:
 
==History==
 
==History==
  
==Pictures==
+
==Gallery==
  
 
*Front
 
*Front
  [[file:Microduino-Robot-F.JPG|thumb|600px|center]]
+
  [[file:Microduino-Robot-F.JPG|600px|center]]
 
*Back
 
*Back
[[file:Microduino-Robot-b.JPG|thumb|600px|center]]
+
[[file:Microduino-Robot-b.JPG|600px|center]]
 +
 
 
==Video==
 
==Video==
 
|}
 
|}

Revision as of 07:59, 26 August 2016

Language: English  • 中文
Microduino- Robot

Microduino-Robot shield, as a DC motor control board, can control 4 DC motors together with Microduino-Core and Microduino-Core+. And at the same time with sensor interfaces onboard, the users can connect it with varieties of sensors to achieve more functions.


Features

  • With lithium battery charging and discharging management, including charging, boosting(5V) and stabilivolt (3.3V) functions.
  • With four motor driving interfaces, which makes it can drive four DC motor.
  • With abundant sensor interfaces, which makes it can be easily extended.
  • With Upin27 baseboard, which makes it can be connected with more Microduino modules.
  • With small size, 46.99mm*40.64mm

Specification

  • Electric
    • 5V boosting: Adopt G5177 rectifier booster chip, working voltage 3.0V~5V, and the output current 800mA
    • 3.3V stabilivolt: AMS1117 stabilivolt plan, and the maximum output current can achieve 600mA.
    • Charging management: LTC4054 power management solution, and MicroUSB charging interface.
    • With battery interface and power switch onboard.
    • The battery interface and the power switch can be led out, which makes it easy to be controlled.
  • Motor driving
    • Adopt 2 DRV8833two-channel motor driver, and the driving power supply is battery, and each motor can continually provide RMS driving current up to 400mA. And they support the peak current up to 450mA.
    • A driver pins: D6, D8, D5, D7
    • B driver pins: A0, A1, A2, A3
      • The position from the head to the foot of the toggle switch as shown in the following picture is corresponding to the motor driving pin A0, A1, A2, A3
      • Turn the corresponding toggle switch to ON, and this motor can be used to drive pins
  • With 5 sensor interfaces onboard
  • With reset button onboard
ROBOTSHIELtips.jpg

Document

Development

DC Motor Wiring

Connect a DC motor to(A.MOTOR.1), and the other to (A.MOTOR.2); Or one to (B.MOTOR.1), and the other to (B.MOTOR.2);

DC Motor Control Mode

  • A driver
D6 D8 D5 D7 A.MOTOR.1.A A.MOTOR.1.B A.MOTOR.2.A A.MOTOR.2.B Function
0 0 0 0 Off Off Off Off Close
1 0 1 0 High Low High Low Forward
0 1 0 1 Low High Low High Reverse
1 1 1 1 Low Low Low Low Braking
  • B driver
A0 A1 A2 A3 B.MOTOR.1.A B.MOTOR.1.B B.MOTOR.2.A B.MOTOR.2.B Function
0 0 0 0 Off Off Off Off Close
1 0 1 0 High Low High Low Forward
0 1 0 1 Low High Low High Reverse
1 1 1 1 Low Low Low Low Braking


Example:

//=========M.A=============//
int mic_left_A = 6;
int mic_right_A = 8;
int mic_head_A = 5;
int mic_back_A = 7;
//=========M.B=============//
/*
 int mic_left_A = A0;
 int mic_right_A =A1;
 int mic_head_A = A2;
 int mic_back_A = A3;
 */
void setup() {
  pinMode(mic_left_A,OUTPUT);
  pinMode(mic_right_A,OUTPUT);
  pinMode(mic_head_A,OUTPUT);
  pinMode(mic_back_A,OUTPUT);
}

void loop() {
  head();
  delay(1500);
  back();
  delay(1500);
  left();
  delay(1500);
  right();
  delay(1500);
}

void head()
{
  digitalWrite(mic_left_A,LOW);
  digitalWrite(mic_right_A,HIGH);
  digitalWrite(mic_head_A,HIGH);
  digitalWrite(mic_back_A,LOW);
}

void left()
{
  digitalWrite(mic_left_A,HIGH);
  digitalWrite(mic_right_A,LOW);
  digitalWrite(mic_head_A,HIGH);
  digitalWrite(mic_back_A,LOW  );
}

void right()
{
  digitalWrite(mic_left_A,LOW);
  digitalWrite(mic_right_A,HIGH);
  digitalWrite(mic_head_A,LOW);
  digitalWrite(mic_back_A,HIGH);
}

void back()
{
  digitalWrite(mic_left_A,HIGH);
  digitalWrite(mic_right_A,LOW);
  digitalWrite(mic_head_A,LOW);
  digitalWrite(mic_back_A,HIGH);
}

void stoop()
{
  digitalWrite(mic_left_A,LOW);
  digitalWrite(mic_right_A,LOW);
  digitalWrite(mic_head_A,LOW);
  digitalWrite(mic_back_A,LOW);
}

Application

Open Source Electric Driving Cube

Purchase

History

Gallery

  • Front
Microduino-Robot-F.JPG
  • Back
Microduino-Robot-b.JPG

Video