Advertisement
Guest User

Roomba robot Arduino source

a guest
Jul 22nd, 2012
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.36 KB | None | 0 0
  1. #include <Servo.h>
  2.  
  3. Servo servo1;
  4. Servo servo2;
  5. const int m1_p1 = 3;
  6. const int m1_p2 = 5;
  7. const int m2_p1 = 6;
  8. const int m2_p2 = 11;
  9.  
  10. void setup() {
  11.   pinMode(m1_p1,OUTPUT);
  12.   pinMode(m1_p2,OUTPUT);
  13.   pinMode(m2_p1,OUTPUT);
  14.   pinMode(m2_p2,OUTPUT);
  15.   pinMode(A0,OUTPUT);
  16.   pinMode(A1,OUTPUT);
  17.   digitalWrite(m1_p1,LOW);
  18.   digitalWrite(m1_p2,LOW);
  19.   digitalWrite(m2_p1,LOW);
  20.   digitalWrite(m2_p2,LOW);
  21.   Serial.begin(9600);
  22.   servo1.attach(A0 );
  23.   servo2.attach(A1);
  24. }
  25.  
  26. void loop() {
  27.   if (Serial.read() == 'c' ) {
  28.     delay(5);  
  29.     int a = Serial.parseInt();
  30.     int b = Serial.parseInt();
  31.     int s1 = Serial.parseInt();
  32.     int s2 = Serial.parseInt          ();
  33.     int motor1_value = constrain(a,0,255);
  34.     int motor2_value = constrain(b,0,255);
  35.     Serial.write(10);
  36.     int m1_p1_value = constrain(motor1_value - 128,0,128)*2;
  37.     int m1_p2_value = constrain(motor1_value,0,127)*2;
  38.     if (m1_p1_value != 0 && m1_p2_value != 0)
  39.         m1_p2_value = 0;
  40.     int m2_p1_value = constrain(motor2_value - 128,0,128)*2;
  41.     int m2_p2_value = constrain(motor2_value,0,127)*2;
  42.     if (m2_p1_value != 0 && m2_p2_value != 0)
  43.         m2_p2_value = 0;
  44.     servo1.write(s1);
  45.     servo2.write(s2);
  46.     analogWrite(m1_p1,m1_p1_value);
  47.     analogWrite(m1_p2,m1_p2_value);
  48.     analogWrite(m2_p1,m2_p1_value);
  49.     analogWrite(m2_p2,m2_p2_value);
  50.   }
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement