code.py
 1  # SPDX-FileCopyrightText: Copyright (c) 2021 John Park for Adafruit
 2  #
 3  # SPDX-License-Identifier: MIT
 4  # FunHouse Parking Assistant
 5  
 6  import time
 7  import board
 8  import adafruit_hcsr04
 9  import neopixel
10  from adafruit_funhouse import FunHouse
11  
12  SLOW_DISTANCE = 30  # distance (in centimeters) when you should slow
13  STOP_DISTANCE = 8  # distance when you should hit those brakes
14  
15  GREEN = 0x00FF00
16  AMBER = 0xF0D000
17  RED = 0xFF0000
18  
19  
20  funhouse = FunHouse(default_bg=None, scale=3)
21  funhouse.peripherals.dotstars.brightness = 0.05
22  funhouse.peripherals.dotstars.fill(GREEN)
23  
24  pixel_pin = board.A2
25  num_pixels = 30
26  pixels = neopixel.NeoPixel(pixel_pin, num_pixels, brightness=0.3, auto_write=False)
27  
28  sonar = adafruit_hcsr04.HCSR04(trigger_pin=board.A0, echo_pin=board.A1)
29  
30  while True:
31      try:
32          print((sonar.distance,))
33  
34          if sonar.distance > SLOW_DISTANCE:
35              funhouse.peripherals.dotstars.fill(GREEN)
36              pixels.fill(GREEN)
37              pixels.show()
38          elif sonar.distance < SLOW_DISTANCE and sonar.distance > STOP_DISTANCE:
39              funhouse.peripherals.dotstars.fill(AMBER)
40              pixels.fill(AMBER)
41              pixels.show()
42              funhouse.peripherals.play_tone(1000, 0.3)
43          elif sonar.distance < STOP_DISTANCE:
44              funhouse.peripherals.dotstars.fill(RED)
45              pixels.fill(RED)
46              pixels.show()
47              funhouse.peripherals.play_tone(2600, 0.3)
48  
49      except RuntimeError:
50          print("Retrying!")
51      time.sleep(0.01)