s2 project 1st try
Dependencies: TB6612 HCSR04 UoY-serial
main.cpp@5:57196959be02, 2022-05-08 (annotated)
- Committer:
- sas638
- Date:
- Sun May 08 20:12:11 2022 +0000
- Revision:
- 5:57196959be02
- Parent:
- 4:137b119e5198
s2 original ;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ajp109 | 0:77209603a6fe | 1 | #include "mbed.h" |
sas638 | 5:57196959be02 | 2 | #include "HCSR04.h" |
sas638 | 5:57196959be02 | 3 | #include "tb6612.h" |
sas638 | 5:57196959be02 | 4 | //Library for controlling ultrasonic module HCSR04 |
sas638 | 5:57196959be02 | 5 | //Ported by hiawoood from arduino library orgininally created by ITead studio. |
sas638 | 5:57196959be02 | 6 | HCSR04 sensorF(D7,D2); //Create sensor object of type HCSR04 (class borrowed HCSR04.cpp), with pins D2 and D3 assigned to trig and echo respectively |
sas638 | 5:57196959be02 | 7 | HCSR04 sensorL(D12,D13); |
sas638 | 5:57196959be02 | 8 | //HCSR04 sensorR(D9,D10); |
sas638 | 5:57196959be02 | 9 | TB6612 motorL(D9,D10,D11); |
sas638 | 5:57196959be02 | 10 | TB6612 motorR(D3,D4,D5); |
sas638 | 5:57196959be02 | 11 | Thread turnL; |
sas638 | 5:57196959be02 | 12 | Thread turnR; |
sas638 | 5:57196959be02 | 13 | Thread turnN; |
ajp109 | 1:a7c3f3f3f2e7 | 14 | |
sas638 | 5:57196959be02 | 15 | void turnLFN() { |
sas638 | 5:57196959be02 | 16 | motorL.setSpeed(-1); |
sas638 | 5:57196959be02 | 17 | motorR.setSpeed(1); |
sas638 | 5:57196959be02 | 18 | thread_sleep_for(1500); |
sas638 | 5:57196959be02 | 19 | } |
sas638 | 5:57196959be02 | 20 | |
sas638 | 5:57196959be02 | 21 | void turnRFN() { |
sas638 | 5:57196959be02 | 22 | motorR.setSpeed(-1); |
sas638 | 5:57196959be02 | 23 | motorL.setSpeed(1); |
sas638 | 5:57196959be02 | 24 | thread_sleep_for(1500); |
sas638 | 5:57196959be02 | 25 | } |
sas638 | 2:aa03460cf824 | 26 | |
sas638 | 5:57196959be02 | 27 | void turnNFN() { |
sas638 | 5:57196959be02 | 28 | motorL.setSpeed(1); |
sas638 | 5:57196959be02 | 29 | motorR.setSpeed(1); |
sas638 | 5:57196959be02 | 30 | } |
sas638 | 5:57196959be02 | 31 | |
sas638 | 5:57196959be02 | 32 | //long distanceL = sensorL.distance(CM); |
sas638 | 5:57196959be02 | 33 | int turn = 5000; |
ajp109 | 1:a7c3f3f3f2e7 | 34 | |
ajp109 | 0:77209603a6fe | 35 | int main() |
ajp109 | 0:77209603a6fe | 36 | { |
sas638 | 5:57196959be02 | 37 | long distanceF; |
sas638 | 5:57196959be02 | 38 | long distanceL; |
sas638 | 5:57196959be02 | 39 | |
sas638 | 4:137b119e5198 | 40 | while(true) { |
sas638 | 5:57196959be02 | 41 | distanceF = sensorF.distance(CM); |
sas638 | 5:57196959be02 | 42 | distanceL = sensorL.distance(CM); |
sas638 | 2:aa03460cf824 | 43 | |
sas638 | 5:57196959be02 | 44 | if (distanceL<10 && distanceF>10) { |
sas638 | 5:57196959be02 | 45 | /*motorL.setSpeed(0.50); |
sas638 | 5:57196959be02 | 46 | motorR.setSpeed(0.50); |
sas638 | 5:57196959be02 | 47 | printf ("forward \r\n");*/ |
sas638 | 5:57196959be02 | 48 | turnN.start(turnNFN); |
sas638 | 5:57196959be02 | 49 | } |
sas638 | 2:aa03460cf824 | 50 | |
sas638 | 5:57196959be02 | 51 | if (distanceL>=10) { |
sas638 | 5:57196959be02 | 52 | /*motorL.setSpeed(-0.50); |
sas638 | 5:57196959be02 | 53 | motorR.setSpeed(0.50); |
sas638 | 5:57196959be02 | 54 | printf ("turn left \r\n"); |
sas638 | 5:57196959be02 | 55 | thread_sleep_for(turn); |
sas638 | 5:57196959be02 | 56 | |
sas638 | 5:57196959be02 | 57 | motorL.setSpeed(0.50); |
sas638 | 5:57196959be02 | 58 | motorR.setSpeed(0.50); |
sas638 | 5:57196959be02 | 59 | thread_sleep_for(300);*/ |
sas638 | 5:57196959be02 | 60 | turnL.start(turnLFN); |
sas638 | 4:137b119e5198 | 61 | } |
sas638 | 5:57196959be02 | 62 | |
sas638 | 5:57196959be02 | 63 | if (distanceL<10 && distanceF<10) { |
sas638 | 5:57196959be02 | 64 | /*motorL.setSpeed(0.50); |
sas638 | 5:57196959be02 | 65 | motorR.setSpeed(-0.50); |
sas638 | 5:57196959be02 | 66 | printf("turn right \r\n"); |
sas638 | 5:57196959be02 | 67 | thread_sleep_for(turn);*/ |
sas638 | 5:57196959be02 | 68 | turnR.start(turnRFN); |
sas638 | 5:57196959be02 | 69 | } |
ajp109 | 1:a7c3f3f3f2e7 | 70 | } |
sas638 | 5:57196959be02 | 71 | } |