Deryc Cg
10/06/2022, 9:16 AMfloitsch
10/06/2022, 9:17 AMtext in tripple ` looks like code.
floitsch
10/06/2022, 9:18 AMfloitsch
10/06/2022, 9:18 AMfloitsch
10/06/2022, 9:19 AMprint
there. Does it show the distance correctly?
If the DOOR OPEN
and DOOR LOCKED
are shown correctly, then you are almost there.floitsch
10/06/2022, 9:20 AMfloitsch
10/06/2022, 9:20 AMfloitsch
10/06/2022, 9:21 AMmeasure_distance trigger echo = 20
is an assignment, not a comparison.floitsch
10/06/2022, 9:21 AM(measure_distance trigger echo) == 20
Deryc Cg
10/06/2022, 9:31 AMDeryc Cg
10/06/2022, 9:34 AMfloitsch
10/06/2022, 9:35 AMfloitsch
10/06/2022, 9:35 AMfloitsch
10/06/2022, 9:36 AM== 20
) you are now missing a :
.Deryc Cg
10/06/2022, 9:36 AMfloitsch
10/06/2022, 9:36 AMfloitsch
10/06/2022, 9:39 AMmain:
trigger := gpio.Pin TRIGGER --output
echo := gpio.Pin ECHO --input
servo := gpio.Pin 14
generator := pwm.Pwm --frequency=50
channel := generator.start servo --duty_factor=0.075
while true:
distance := measure_distance trigger echo
print "measured $(distance)cm"
if distance <= 200:
print "DOOR OPEN"
channel.set_duty_factor 0.125 // Max angle.
else:
print "DOOR LOCKED"
channel.set_duty_factor 0.025 // Min angle.
// The sleep can be lower (or even be removed), but while
// we are printing, we don't want the loop to run too
// quickly.
sleep --ms=500
Deryc Cg
10/06/2022, 9:39 AMfloitsch
10/06/2022, 9:40 AMprint "starting"
.floitsch
10/06/2022, 9:40 AMfloitsch
10/06/2022, 9:40 AMDeryc Cg
10/06/2022, 9:44 AMfloitsch
10/06/2022, 9:45 AMjag run
(while jag monitor
is still running).Deryc Cg
10/06/2022, 9:52 AMDeryc Cg
10/06/2022, 9:52 AMfloitsch
10/06/2022, 10:02 AMmain
?floitsch
10/06/2022, 10:02 AMprint "starting"
?Deryc Cg
10/06/2022, 10:06 AMfloitsch
10/06/2022, 10:06 AMDeryc Cg
10/06/2022, 10:10 AMDeryc Cg
10/06/2022, 10:10 AMfloitsch
10/06/2022, 10:10 AMfloitsch
10/06/2022, 10:11 AMfloitsch
10/06/2022, 10:11 AMDeryc Cg
10/06/2022, 10:12 AMfloitsch
10/06/2022, 10:12 AM` (three times)
I sent a screenshot earlier.floitsch
10/06/2022, 10:13 AMDeryc Cg
10/06/2022, 10:19 AMimport gpio
import i2c
import gpio.pwm
TRIGGER ::= 21
ECHO ::= 22
measure_distance trigger echo:
trigger_start := Time.monotonic_us
trigger.set 1
while Time.monotonic_us < trigger_start + 10:
// Do nothing while waiting for the 10us.
trigger.set 0
while echo.get != 1: null
echo_start := Time.monotonic_us
while echo.get == 1: null
echo_end := Time.monotonic_us
diff := echo_end - echo_start
return diff / 58
main:
print "starting"
trigger := gpio.Pin TRIGGER --output
echo := gpio.Pin ECHO --input
while true:
print "measured $(measure_distance trigger echo)cm"
sleep --ms=50
if (measure_distance trigger echo) == 200:
print "DOOR OPEN"
else:
print "DOOR LOCKED"
servo := gpio.Pin 14
generator := pwm.Pwm --frequency=50
channel := generator.start servo --duty_factor=0.075
sleep --ms=10
// https://github.com/toitlang/toit/issues/518
// Max angle.
channel.set_duty_factor 0.125
sleep --ms=2000
// Min angle.
channel.set_duty_factor 0.025
sleep --ms=200
Deryc Cg
10/06/2022, 10:19 AMfloitsch
10/06/2022, 10:20 AMfloitsch
10/06/2022, 10:21 AMfloitsch
10/06/2022, 10:21 AMfloitsch
10/06/2022, 10:21 AMfloitsch
10/06/2022, 10:22 AMDeryc Cg
10/06/2022, 10:24 AMfloitsch
10/06/2022, 10:24 AMDeryc Cg
10/06/2022, 10:24 AMfloitsch
10/06/2022, 10:24 AMwhile true
loop.floitsch
10/06/2022, 10:24 AMfloitsch
10/06/2022, 10:25 AMfloitsch
10/06/2022, 10:25 AMDeryc Cg
10/06/2022, 10:35 AMfloitsch
10/06/2022, 10:36 AMfloitsch
10/06/2022, 10:36 AMfloitsch
10/06/2022, 10:37 AMfloitsch
10/06/2022, 10:37 AMfloitsch
10/06/2022, 10:38 AMfloitsch
10/06/2022, 10:39 AMDeryc Cg
10/06/2022, 10:42 AMDeryc Cg
10/06/2022, 10:43 AMfloitsch
10/06/2022, 10:43 AMfloitsch
10/06/2022, 10:44 AMfloitsch
10/06/2022, 10:44 AMDeryc Cg
10/06/2022, 10:46 AMfloitsch
10/06/2022, 10:46 AMDeryc Cg
10/06/2022, 10:48 AMfloitsch
10/06/2022, 10:48 AMDeryc Cg
10/06/2022, 10:49 AMfloitsch
10/06/2022, 10:49 AMfloitsch
10/06/2022, 10:50 AMDeryc Cg
10/06/2022, 10:53 AMDeryc Cg
10/06/2022, 10:53 AMfloitsch
10/06/2022, 10:54 AMfloitsch
10/06/2022, 10:54 AMDeryc Cg
10/06/2022, 10:54 AMfloitsch
10/06/2022, 10:55 AMfloitsch
10/06/2022, 10:55 AMfloitsch
10/06/2022, 10:56 AMDeryc Cg
10/06/2022, 11:06 AMDeryc Cg
10/06/2022, 11:06 AM