s2 project 1st try

Dependencies:   TB6612 HCSR04 UoY-serial

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?

UserRevisionLine numberNew 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 }