first edition of the code for a wall-following robot

Dependencies:   motorController HC-SR04 UoY-serial

Committer:
snapo
Date:
Wed Nov 03 09:52:25 2021 +0000
Revision:
0:e8a382e50908
first edition of the robot code for the micromouse project

Who changed what in which revision?

UserRevisionLine numberNew contents of line
snapo 0:e8a382e50908 1 #include "mbed.h"
snapo 0:e8a382e50908 2 #include "HC-SR04.h"
snapo 0:e8a382e50908 3 #include "motor.h"
snapo 0:e8a382e50908 4
snapo 0:e8a382e50908 5 #define uint unsigned int
snapo 0:e8a382e50908 6
snapo 0:e8a382e50908 7 motor motor1 (D1, D2, D3);
snapo 0:e8a382e50908 8 motor motor2 (D8, D9, D10);
snapo 0:e8a382e50908 9
snapo 0:e8a382e50908 10 HCSR04 ultraSoundF ( D5 , D6);
snapo 0:e8a382e50908 11 HCSR04 ultraSoundL ( D12 , D13);
snapo 0:e8a382e50908 12 HCSR04 ultraSoundR ( D14 , D15);
snapo 0:e8a382e50908 13
snapo 0:e8a382e50908 14 int main(){
snapo 0:e8a382e50908 15
snapo 0:e8a382e50908 16 uint uSReadingF = 0;
snapo 0:e8a382e50908 17 uint uSReadingL = 0;
snapo 0:e8a382e50908 18 uint uSReadingR = 0;
snapo 0:e8a382e50908 19
snapo 0:e8a382e50908 20 while(true){
snapo 0:e8a382e50908 21
snapo 0:e8a382e50908 22 ultraSoundF.fastTimeReading();
snapo 0:e8a382e50908 23 uSReadingF = ultraSoundF.getTime();
snapo 0:e8a382e50908 24 ultraSoundL.fastTimeReading();
snapo 0:e8a382e50908 25 uSReadingL = ultraSoundL.getTime();
snapo 0:e8a382e50908 26 ultraSoundR.fastTimeReading();
snapo 0:e8a382e50908 27
snapo 0:e8a382e50908 28
snapo 0:e8a382e50908 29 if (uSReadingF > 450){
snapo 0:e8a382e50908 30 motor1 = 0.5;
snapo 0:e8a382e50908 31 motor2 = 0.5;
snapo 0:e8a382e50908 32 } else if (uSReadingF > 300) {
snapo 0:e8a382e50908 33 motor1 = 0.2;
snapo 0:e8a382e50908 34 } else {
snapo 0:e8a382e50908 35 motor1 = 0;
snapo 0:e8a382e50908 36 }
snapo 0:e8a382e50908 37
snapo 0:e8a382e50908 38
snapo 0:e8a382e50908 39 if (uSReadingL > 300){
snapo 0:e8a382e50908 40 motor1 = -0.5;
snapo 0:e8a382e50908 41 motor2 = 0.5;
snapo 0:e8a382e50908 42 thread_sleep_for(500);
snapo 0:e8a382e50908 43 motor1 = 0;
snapo 0:e8a382e50908 44 motor2 = 0;
snapo 0:e8a382e50908 45 ultraSoundF.fastTimeReading();
snapo 0:e8a382e50908 46 if (ultraSoundF.getTime() > 450){
snapo 0:e8a382e50908 47 motor1 = 0.5;
snapo 0:e8a382e50908 48 motor2 = 0.5;
snapo 0:e8a382e50908 49 }
snapo 0:e8a382e50908 50 }
snapo 0:e8a382e50908 51
snapo 0:e8a382e50908 52
snapo 0:e8a382e50908 53 thread_sleep_for(500);
snapo 0:e8a382e50908 54 motor1 = 0;
snapo 0:e8a382e50908 55 motor2 = 0;
snapo 0:e8a382e50908 56 thread_sleep_for(3000);
snapo 0:e8a382e50908 57
snapo 0:e8a382e50908 58 }
snapo 0:e8a382e50908 59 }