daily pastebin goal
0%
SHARE
TWEET

Untitled

a guest Aug 10th, 2018 66 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2.  ~~~   Arduino Buggy by Quintens Kenny & Raepers Senne     ~
  3.  ~~~                                                       ~
  4.  ~~~  Code written by:   Quintens Kenny                    ~    
  5.  ~~~  Design by:         Quintens Kenny & Raepers Senne    ~
  6.  ~~~  Board design by:                    Raepers Senne    ~
  7.  ~~~  Construction by:   Quintens Kenny & Raepers Senne    ~
  8.  ~~~  Co├Ârdination by:   Odeurs   Luc                      ~                                                     ~
  9.  ~~~                                                       ~
  10.  ~~~                                                       ~
  11.  ~~~                  ___   ___                            ~
  12.  ~~~      Reset    1 |   `-┬┤   | 28  analog 5              ~
  13.  ~~~         RX    2 |         | 27  analog 4              ~
  14.  ~~~         TX    3 |    A    | 26  analog 3              ~
  15.  ~~~  digital 2    4 |    T    | 25  analog 2              ~
  16.  ~~~      PWM 3    5 |    M    | 24  analog 1              ~
  17.  ~~~  digital 4    6 |    E    | 23  analog 0              ~
  18.  ~~~        VCC    7 |    G    | 22  GND                   ~
  19.  ~~~        GND    8 |    A    | 21  analog reference      ~
  20.  ~~~    crystal    9 |         | 20  VCC                   ~
  21.  ~~~    crystal   10 |    3    | 19  digital 13            ~
  22.  ~~~      PWM 5   11 |    2    | 18  digital 12            ~
  23.  ~~~      PWM 6   12 |    8    | 17  PWM 11                ~
  24.  ~~~  digital 7   13 |         | 16  PWM 10                ~
  25.  ~~~  digital 8   14 |_________| 15  PWM 9                 ~
  26.  ~~~                                                       ~
  27.  ~~~  Copyright 2012:   Kenny Quintens     ~Q-Tronix~      ~
  28.  *///~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  29.  
  30.  
  31.  
  32. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  33. //~~~~~~~~~~~~~~~~~~ - Void Setup - Assignement of the used variables - ~~~~~~~~~~~~~~~~~~~~~~
  34. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  35. const int leftdirectionPin = 8;           // Pin nummer voor het richtingssignaal
  36. const int rightdirectionPin = 7;          // Pin nummer voor het richtingssignaal
  37. const int leftpwmPin = 9;                 // Pin nummer voor het PWM signaal   ~Motor control~
  38. const int rightpwmPin = 6;                // Pin nummer voor het PWM signaal
  39. byte leftPwm = 255;                       // Snelheid   "0 - 255"
  40. byte rightPwm = 255;                      // Snelheid   "0 - 255"           =>> Check the minumum speed!!!!
  41. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  42. int speaker = 13;                         // Luidspreker
  43. int led = 12;                             // Zwaailicht
  44. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  45. int sensorIR[3] = {A0, A1, A2};        // IR sensors
  46. int threshold = 120;                      // Minimum storings waarde die hij ziet in open lucht
  47. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  48. //~~~~~~~~~~~~~~~~~~~~~~ - Void Setup - Assignement of the I/O's - ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  49. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  50.  
  51. void setup(){
  52. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  53.   pinMode(leftdirectionPin, OUTPUT);     //
  54.   pinMode(rightdirectionPin, OUTPUT);    //                                    ~Motor control~
  55.   pinMode(leftpwmPin, OUTPUT);           //
  56.   pinMode(rightpwmPin, OUTPUT);          //
  57. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  58.   pinMode(speaker, OUTPUT);
  59.   pinMode(led, OUTPUT);
  60. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  61.   int i;
  62.   for(i = 0; i <3; i++){                 // Inlezing van de afstandssensoren
  63.     pinMode(sensorIR[i], INPUT);
  64.   }
  65. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  66.  
  67.   Serial.begin (9600);
  68.  
  69.   buggyStart();                          // Melding dat de buggy opgestart is
  70. }
  71.  
  72.  
  73.  
  74. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  75. //~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Void Loop - Main Programme - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  76. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  77.  
  78. void loop(){
  79. //=====================================================================
  80. //=                  Read the IRsensor values                         =
  81. //=====================================================================
  82. int sensorValue[3] = {0, 0, 0};
  83. int valueIR;        // Stokage ruimte voor de hoogste IR waarde
  84. int threshold = 120;                      // Minimum storings waarde die hij ziet in open lucht
  85. int sampleTime = 50;                      // Tijd nodig om de sensors in te lezen
  86. int i;
  87. byte highestSensor;
  88.  
  89.   for(i = 0; i < 2; i++){
  90.     sensorValue[i] = analogRead(sensorIR[i]);
  91.  
  92.     if(sensorValue[i] > valueIR){
  93.       valueIR = sensorValue[i];
  94.       highestSensor = i;
  95.     }
  96.     if((threshold > valueIR) || (valueIR == 0)){
  97.       highestSensor = 0;
  98.     }
  99.     if(sensorValue[i] <= threshold){
  100.       digitalWrite(speaker, LOW);
  101.       digitalWrite(led, LOW);
  102.       goForward();
  103.     }
  104.  
  105.     if((sensorValue[i] > threshold) && (sensorValue[i] <= 150)){
  106.       digitalWrite(speaker, LOW);
  107.       motorStop();
  108.       avoidObject();
  109.  
  110.       digitalWrite(led, HIGH);
  111.       delay(100);
  112.       digitalWrite(led, LOW);
  113.       delay(100);
  114.     }
  115.  
  116.     if((sensorValue[i] >= 150) && (sensorValue[i] < 500)){
  117.       digitalWrite(speaker, HIGH);
  118.       digitalWrite(led, HIGH);
  119.       delay(100);
  120.       digitalWrite(led, LOW);
  121.       delay(100);
  122.     }
  123.  
  124.     if(sensorValue[i] >= 500){
  125.       digitalWrite(speaker, LOW);
  126.       digitalWrite(led, LOW);
  127.     }
  128.     delay(sampleTime);
  129.   }
  130. }
  131.  
  132.  
  133. //=====================================================================
  134. //=                     Backriding decision                           =
  135. //=====================================================================
  136. void avoidObject(){
  137.   while(1){
  138.     int sensorValue[3] = {0, 0, 0};
  139.     int threshold = 120;
  140.     int i = 0;
  141.    
  142.     for(i = 0; i < 2; i++){
  143.       sensorValue[i] = analogRead(sensorIR[i]);
  144.      
  145.       if(sensorValue[i] > 250){
  146.         goBackward();
  147.       }
  148.       else{
  149.         goLeft();
  150.         if(sensorValue[i] <= threshold){
  151.           break;
  152.         }
  153.       }      
  154.     }
  155.   }
  156.  
  157. }  
  158.  
  159. //=====================================================================
  160. //=                      Set turn Right                               =
  161. //=====================================================================
  162. int goRight(){
  163.   setmotorR(LOW, (rightPwm - (rightPwm/2)));
  164.   setmotorL(LOW, leftPwm);
  165.  
  166.   Serial.println("Go left");
  167. }
  168.  
  169. //=====================================================================
  170. //=                      Set turn Left                                =
  171. //=====================================================================
  172. int goLeft(){
  173.   setmotorR(LOW, rightPwm);
  174.   setmotorL(LOW, (leftPwm - (leftPwm/2)));
  175.  
  176.   Serial.println("Go right");
  177. }
  178.  
  179. //=====================================================================
  180. //=                      Set forward                                  =
  181. //=====================================================================
  182. int goForward(){
  183.   setmotorR(LOW, rightPwm);
  184.   setmotorL(LOW, leftPwm);
  185.  
  186.   Serial.println("Go forward");
  187. }
  188. //=====================================================================
  189. //=                      Setbackward                                  =
  190. //=====================================================================
  191. int goBackward(){
  192.   setmotorR(HIGH, rightPwm);
  193.   setmotorL(HIGH, leftPwm);
  194.  
  195.   Serial.println("Go backward");
  196. }
  197. //=====================================================================
  198. //=                      Set stop                                     =
  199. //=====================================================================
  200. int motorStop(){
  201.   setmotorR(LOW, LOW);
  202.   setmotorL(LOW, LOW);
  203.  
  204.   Serial.println("Stop");
  205. }
  206.  
  207. //=====================================================================
  208. //=                      Set Right motor                              =
  209. //=====================================================================
  210. void setmotorR(int rightMdirection, int rightpowerValue){
  211.   analogWrite(rightpwmPin, rightpowerValue);
  212.   digitalWrite(rightdirectionPin, rightMdirection);
  213.  
  214.   Serial.println("Right motor PWM");
  215.   Serial.println('richtpowerValue');
  216. }
  217.  
  218. //=====================================================================
  219. //=                      Set Left motor                               =
  220. //=====================================================================
  221. void setmotorL(int leftMdirection, int leftpowerValue){
  222.   analogWrite(leftpwmPin, leftpowerValue);
  223.   digitalWrite(leftdirectionPin, leftMdirection);
  224.  
  225.   Serial.println("Left motor PWM");
  226.   Serial.println(leftpowerValue);
  227. }
  228.  
  229. //=====================================================================
  230. //=                      Set buggy start                              =
  231. //=====================================================================
  232. void buggyStart(){
  233.   Serial.println("Buggy start");
  234.  
  235.   digitalWrite(speaker, HIGH);
  236.   digitalWrite(led, HIGH);
  237.   delay(1000);
  238.   digitalWrite(led, LOW);
  239.   delay(1000);
  240.   digitalWrite(speaker, LOW);
  241. }
  242.  
  243. //=====================================================================
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top