servoLeft.writeMicroseconds(1500); servoRight.writeMicroseconds(1300);
BOE Shield-Bot speed = 11 in/s
BOE Shield-Bot distance = 36 in/s
time = (BOE Shield-Bot distance / BOE Shield-Bot speed) * (1000 ms / s)
= (36 / 11 ) * (1000)
= 3.727272…s * 1000 ms/s
≈ 3727 ms
servoLeft.writeMicroseconds(1300); servoRight.writeMicroseconds(1700); delay(2500);
// 30/180 = 1/6, so use 1200/6 = 200 servoLeft.writeMicroseconds(1700); servoRight.writeMicroseconds(1700); delay(200); // alternate approach servoLeft.writeMicroseconds(1700); servoRight.writeMicroseconds(1700); delay(1200 * 30 / 180); // 45/180 = 1/4, so use 1200/4 = 300 servoLeft.writeMicroseconds(1700); servoRight.writeMicroseconds(1700); delay(300); // 60/180 = 1/3, so use 1200/3 = 400 servoLeft.writeMicroseconds(1700); servoRight.writeMicroseconds(1700); delay(400);
// forward 1 second servoLeft.writeMicroseconds(1700); servoRight.writeMicroseconds(1700); delay(1000); // ramp into pivot for(int speed = 0; speed <= 100; speed+=2) { servoLeft.writeMicroseconds(1500); servoRight.writeMicroseconds(1500+speed); delay(20); }; // ramp out of pivot for(int speed = 100; speed >= 0; speed-=2) { servoLeft.writeMicroseconds(1500); servoRight.writeMicroseconds(1500+speed); delay(20); } // forward again servoLeft.writeMicroseconds(1700); servoRight.writeMicroseconds(1700); delay(1000);
Circle sketch:
// Robotics with the BOE Shield - Chapter 4, project 2 - Circle // BOE Shield-Bot navigates a circle of 1 yard diameter. #include <Servo.h> // Include servo library Servo servoLeft; // Declare left and right servos Servo servoRight; void setup() // Built-in initialization block { tone(4, 3000, 1000); // Play tone for 1 second delay(1000); // Delay to finish tone servoLeft.attach(13); // Attach left signal to pin 13 servoRight.attach(12); // Attach right signal to pin 12 // Arc to the right servoLeft.writeMicroseconds(1600); // Left wheel counterclockwise servoRight.writeMicroseconds(1438); // Right wheel clockwise slower delay(25500); // ...for 25.5 seconds servoLeft.detach(); // Stop sending servo signals servoRight.detach(); } void loop() // Main loop auto-repeats { // Nothing needs repeating }
Triangle sketch:
// Robotics with the BOE Shield - Chapter 4, project 2 - Triangle // BOE Shield-Bot navigates a triangle with 1 yard sides and 120 // degree angles. Go straight 1 yard, turn 120 degrees, repeat 3 times #include <Servo.h> // Include servo library Servo servoLeft; // Declare left and right servos Servo servoRight; void setup() // Built-in initialization block { tone(4, 3000, 1000); // Play tone for 1 second delay(1000); // Delay to finish tone servoLeft.attach(13); // Attach left signal to pin 13 servoRight.attach(12); // Attach right signal to pin 12 for(int index = 1; index <= 3; index++) { // Full speed forward servoLeft.writeMicroseconds(1700); // Left wheel counterclockwise servoRight.writeMicroseconds(1300); // Right wheel clockwise slower delay(5500); // ...for 5.5 seconds // Turn left 120 degrees servoLeft.writeMicroseconds(1300); // Left wheel counterclockwise servoRight.writeMicroseconds(1300); // Right wheel clockwise slower delay(700); } servoLeft.detach(); // Stop sending servo signals servoRight.detach(); } void loop() // Main loop auto-repeats { // Nothing needs repeating }