Advertisement
MrLunk

MrLunk's Autonomous Arduino r3 / Raspberry Pi 3b - Vehikel 2

Feb 27th, 2017
292
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.18 KB | None | 0 0
  1. // MrLunk's Autonomous Arduino r3 / Raspberry Pi 3b - Vehikel 2017
  2.  
  3. #define trigPin1 2
  4. #define echoPin1 3
  5. #define trigPin2 4
  6. #define echoPin2 5
  7. #define trigPin3 7
  8. #define echoPin3 8
  9. #include <Servo.h>
  10. #include <Wire.h>
  11. #include <Adafruit_MotorShield.h>
  12. #include "utility/Adafruit_MS_PWMServoDriver.h"
  13.  
  14. long duration, distance, RightSensor,BackSensor,FrontSensor,LeftSensor;
  15. Adafruit_MotorShield AFMS = Adafruit_MotorShield();
  16. Adafruit_DCMotor *DCMotor = AFMS.getMotor(1);
  17. Servo SteeringServo;
  18. int usbRead =0;
  19.  
  20. // --------------------------------------------------------------
  21.  
  22. void setup() {
  23.  AFMS.begin();  
  24.  DCMotor->setSpeed(0);
  25.  DCMotor->run(RELEASE);
  26.  SteeringServo.attach(10);  
  27.  
  28.  Serial.begin(9600);
  29.  pinMode(trigPin1, OUTPUT);
  30.  pinMode(echoPin1, INPUT);
  31.  pinMode(trigPin2, OUTPUT);
  32.  pinMode(echoPin2, INPUT);
  33.  pinMode(trigPin3, OUTPUT);
  34.  pinMode(echoPin3, INPUT);
  35. }
  36.  
  37. // --------------------------------------------------------------
  38.  
  39. int maxspeed = 65;
  40.  
  41. // ------------------ Main Routine --------------------------------------------
  42.  
  43. void loop() {
  44.  
  45.  SonarSensor(trigPin2, echoPin2);
  46.  if (distance <= 20){
  47.    SteeringServo.write(135);   // steer right
  48.    DCMotor->run(BACKWARD);
  49.    DCMotor->setSpeed(maxspeed);
  50.    delay(1100);
  51.    DCMotor->run(RELEASE);
  52.    SteeringServo.write(90);
  53.  }  
  54.  
  55.  SonarSensor(trigPin1, echoPin1);
  56.  if (distance <= 30){
  57.  SteeringServo.write(135);     //steer right        
  58.    Forwards();
  59.  }
  60.  
  61.  SonarSensor(trigPin3, echoPin3);
  62.  if (distance <= 30){
  63.  SteeringServo.write(45);   // steer left
  64.    Forwards();
  65.  }
  66.  
  67.  //SonarSensor(trigPin2, echoPin2);
  68.  //if (distance > 30){
  69.    SteeringServo.write(90);
  70.    Forwards();
  71.  //}
  72. }
  73.  
  74. // --------------Sub-Routine definitions------------------------------
  75.  
  76. void Forwards(){
  77.  DCMotor->run(FORWARD);
  78.  DCMotor->setSpeed(maxspeed);
  79.  delay(250);
  80.  DCMotor->run(RELEASE);
  81. }
  82.  
  83. void SonarSensor(int trigPin,int echoPin)
  84. {
  85.  digitalWrite(trigPin, LOW);
  86.  delayMicroseconds(2);
  87.  digitalWrite(trigPin, HIGH);
  88.  delayMicroseconds(10);
  89.  digitalWrite(trigPin, LOW);
  90.  duration = pulseIn(echoPin, HIGH);
  91.  distance = (duration/2) / 29.1;
  92.  
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement