Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2011
280
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.54 KB | None | 0 0
  1. //STEERING POSITIONS:
  2. //Neutral:90
  3. //Left: 55
  4. //Right: 125
  5.  
  6. //THROTTLE POSITIONS
  7. //Full Reverse: 0
  8. //Full Ahead: 180
  9. //Normal Reverse: 75
  10. //Normal Ahead: 105
  11. //Neutral: 90
  12.  
  13. #include <Servo.h>
  14. #include <avr/interrupt.h>
  15.  
  16. Servo steering;
  17. Servo throttle;
  18. int FrontBumper = 2;
  19. int RearBumper = 3;
  20. int LeftSensorPin = 4;
  21. int RightSensorPin = 5;
  22. int forwardLED = 12;
  23. int reverseLED = 11;
  24.  
  25. int AccelerationSpeed = 105;
  26. int ReverseSpeed = 75;
  27. int SteeringNeutral = 90;
  28. int LeftTurn = 55;
  29. int RightTurn = 125;
  30. int leftsensorState = 0;
  31. int rightsensorState = 0;
  32. int rearsensorState = 0;
  33. volatile int frontbumper;
  34. volatile int rearbumper;
  35.  
  36.  
  37. void setup() {
  38.   steering.attach(9);
  39.   throttle.attach(10);
  40.   pinMode(forwardLED, OUTPUT);
  41.   pinMode(reverseLED, OUTPUT);
  42.   pinMode(FrontBumper, INPUT);
  43.   pinMode(LeftSensorPin, INPUT);
  44.   pinMode(RightSensorPin, INPUT);
  45.   pinMode(RearBumper, INPUT);
  46.   Serial.begin(115200);
  47.   digitalWrite(FrontBumper, HIGH);
  48.   digitalWrite(RearBumper, HIGH);
  49.   attachInterrupt(0, frontbumperISR, FALLING);
  50.   attachInterrupt(1, rearbumperISR, FALLING);
  51.   interrupts();
  52.   frontbumper = 0;
  53.   rearbumper = 0;
  54.   MoveForward();
  55. }
  56.  
  57. void frontbumperISR(){
  58.     Serial.println("Front Bumper Hit!!");
  59.     FrontBrakes();
  60.     frontbumper = 1;
  61. }
  62.  
  63. void rearbumperISR(){
  64.     Serial.println("Rear Bumper Hit!!");
  65.     RearBrakes();
  66.     rearbumper = 1;
  67. }
  68.  
  69. void FrontBrakes() {
  70.       throttle.write(70);
  71.       Serial.println("Throttle at 70 (brakes engaged)");
  72.       Serial.println('\n');
  73. }
  74.  
  75. void RearBrakes() {
  76.     throttle.write(90);
  77.     Serial.println("Throttle at 0");
  78.     Serial.println('\n');
  79. }
  80.  
  81. void Stop() {
  82.   throttle.write(90);
  83.   Serial.println("Throttle at neutral");
  84.   Serial.println('\n');
  85. }
  86.  
  87. void MoveForward(){
  88.   throttle.write(AccelerationSpeed);
  89.   digitalWrite(forwardLED, HIGH);
  90.   Serial.print("Throttle @ ");
  91.   Serial.println(AccelerationSpeed);
  92.   Serial.println('\n');
  93. }
  94.  
  95. void loop() {
  96.   steering.write(SteeringNeutral);
  97.   leftsensorState = digitalRead(LeftSensorPin);
  98.   rightsensorState = digitalRead(RightSensorPin);  
  99.  
  100.   if (frontbumper > 0){
  101.     frontbumper = 0;
  102.     delay(200);
  103.     Stop();
  104.     delay(200);
  105.     leftsensorState = digitalRead(LeftSensorPin);
  106.     rightsensorState = digitalRead(RightSensorPin);  
  107.     if (leftsensorState < 1) {
  108.       steering.write(RightTurn);
  109.     }
  110.     if (rightsensorState < 1) {
  111.       steering.write(LeftTurn);
  112.     }
  113.     if (rightsensorState > 0 && leftsensorState > 0) {
  114.       steering.write(LeftTurn);
  115.     }
  116.     throttle.write(ReverseSpeed);
  117.     delay(1350);
  118.     Stop();
  119.     steering.write(SteeringNeutral);
  120.     MoveForward();
  121.   }
  122.    
  123.   if (rearbumper > 0){
  124.     rearbumper = 0;
  125.     delay(200);
  126.     leftsensorState = digitalRead(LeftSensorPin);
  127.     rightsensorState = digitalRead(RightSensorPin);  
  128.     if (leftsensorState < 1) {
  129.       steering.write(RightTurn);
  130.     }
  131.     if (rightsensorState < 1) {
  132.       steering.write(LeftTurn);
  133.     }
  134.     if (rightsensorState > 0 && leftsensorState > 0) {
  135.       steering.write(LeftTurn);
  136.     }
  137.     throttle.write(AccelerationSpeed);
  138.     delay(1350);
  139.     Stop();
  140.     steering.write(SteeringNeutral);
  141.     MoveForward();    
  142.   }
  143.  
  144.  if (leftsensorState < 1) {
  145.    while(leftsensorState < 1) {
  146.      leftsensorState = digitalRead(LeftSensorPin);
  147.      steering.write(RightTurn);
  148.      Serial.print("Steering @ ");
  149.      Serial.println(RightTurn);
  150.      Serial.println('\n');
  151.    }
  152.  }
  153.  
  154.   if (rightsensorState < 1) {
  155.    while(rightsensorState < 1) {
  156.      rightsensorState = digitalRead(RightSensorPin);
  157.      steering.write(LeftTurn);
  158.      Serial.print("Steering @ ");
  159.      Serial.println(LeftTurn);
  160.      Serial.println('\n');
  161.    }
  162.  }
  163.  
  164. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement