]> rtime.felk.cvut.cz Git - hubacji1/autiminipoci.git/blob - go_and_stop.py
Rename go function
[hubacji1/autiminipoci.git] / go_and_stop.py
1 # -*- coding: utf-8 -*-
2 """Run the car and stop if distance to obstacle is < 40cm."""
3 from machine import Pin, PWM
4 from utime import sleep_us, ticks_us
5
6 TRIG = Pin(5, Pin.OUT)
7 ECHO = Pin(4, Pin.IN)
8 SPEED = PWM(Pin(14), freq=1000)
9 BACK = PWM(Pin(15), freq=1000)
10
11 dist = 40
12
13 def go():
14     """Read data from ultrasonic sensor and drive car if no obstacle."""
15     global dist
16     BACK.duty(0)
17     nc = ticks_us()
18     while True:
19         # read sensor data
20         TRIG.off()
21         sleep_us(2)
22         TRIG.on()
23         sleep_us(10)
24         TRIG.off()
25         while ECHO.value() == 0:
26             pass
27         t1 = ticks_us()
28         while ECHO.value() == 1:
29             pass
30         t2 = ticks_us()
31         dist = (t2 - t1) / 58.0
32         # drive if obstacle-free
33         if dist > 10:
34             SPEED.duty(1023)
35         else:
36             SPEED.duty(0)
37         nc += 20000
38         sleep_us(nc - ticks_us())
39     return
40
41 if __name__ == "__main__":
42     go()