first edition of the code for a wall-following robot
Dependencies: motorController HC-SR04 UoY-serial
main.cpp@0:e8a382e50908, 2021-11-03 (annotated)
- 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?
User | Revision | Line number | New 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 | } |