Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2011
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.44 KB | None | 0 0
  1. #include <Servo.h>
  2. #include <avr/interrupt.h>
  3.  
  4. Servo steering;
  5. Servo throttle;
  6. int bumpswitchPin = 2;
  7. int forwardLED = 12;
  8. int reverseLED = 11;
  9. int bumpswitchState = 0;
  10. int AccelerationSpeed = 105;
  11. int ReverseSpeed = 75;
  12. int SteeringNeutral = 90;
  13. int LeftTurn = 55;
  14. int RightTurn = 125;
  15. int LeftSensorPin = 3;
  16. int RightSensorPin = 4;
  17. int RearSensorPin = 5;
  18. int leftsensorState = 0;
  19. int rightsensorState = 0;
  20. int rearsensorState = 0;
  21. volatile int bumper;
  22.  
  23.  
  24. void setup() {
  25.   steering.attach(9);
  26.   throttle.attach(10);
  27.   pinMode(forwardLED, OUTPUT);
  28.   pinMode(reverseLED, OUTPUT);
  29.   pinMode(bumpswitchPin, INPUT);
  30.   pinMode(LeftSensorPin, INPUT);
  31.   pinMode(RightSensorPin, INPUT);
  32.   pinMode(RearSensorPin, INPUT);
  33.   Serial.begin(115200);
  34.   digitalWrite(bumpswitchPin, HIGH);
  35.   attachInterrupt(0, bumperISR, FALLING);
  36.   interrupts();
  37.   bumper = 0;
  38.   MoveForward();
  39. }
  40.  
  41. void bumperISR(){
  42.     digitalWrite(forwardLED, LOW);
  43.     digitalWrite(reverseLED, LOW);
  44.     Serial.println("Bumper Hit!!");
  45.     Brakes();
  46.     bumper = 1;
  47. }
  48.  
  49. void Brakes() {
  50.   throttle.write(0);
  51.   Serial.println("Brakes on!!");
  52.   Serial.println('\n');
  53. }
  54.  
  55. void Stop() {
  56.   throttle.write(90);
  57.   Serial.println("Throttle at neutral");
  58.   Serial.println('\n');
  59. }
  60.  
  61. void MoveForward(){
  62.   throttle.write(AccelerationSpeed);
  63.   digitalWrite(forwardLED, HIGH);
  64.   Serial.print("Throttle @ ");
  65.   Serial.println(AccelerationSpeed);
  66.   Serial.println('\n');
  67. }
  68.  
  69. void loop() {
  70.   steering.write(SteeringNeutral);
  71.   leftsensorState = digitalRead(LeftSensorPin);
  72.   rightsensorState = digitalRead(RightSensorPin);  
  73.   if (bumper > 0) {
  74.     delay(200);
  75.     Stop();
  76.     delay(200);
  77.     steering.write(LeftTurn);
  78.     delay(5);
  79.     throttle.write(ReverseSpeed);
  80.     digitalWrite(reverseLED, HIGH);
  81.     Serial.print("Throttle @ ");
  82.     Serial.println(ReverseSpeed);
  83.     Serial.println('\n');
  84.     delay(1350);
  85.     Stop();
  86.     digitalWrite(reverseLED, LOW);
  87.     steering.write(SteeringNeutral);
  88.     delay(5);
  89.     delay(500);
  90.     bumper = 0;
  91.     MoveForward();
  92.  }
  93.  
  94.  if (leftsensorState < 1) {
  95.    while(leftsensorState < 1) {
  96.      leftsensorState = digitalRead(LeftSensorPin);
  97.      steering.write(RightTurn);
  98.      Serial.print("Steering @ ");
  99.      Serial.println(RightTurn);
  100.      Serial.println('\n');
  101.    }
  102.  }
  103.  
  104.   if (rightsensorState < 1) {
  105.    while(rightsensorState < 1) {
  106.      rightsensorState = digitalRead(RightSensorPin);
  107.      steering.write(LeftTurn);
  108.      Serial.print("Steering @ ");
  109.      Serial.println(LeftTurn);
  110.      Serial.println('\n');
  111.    }
  112.  }
  113.  
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement