Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Tässä ohjeessa rakennamme pysäköintianturin. Tämän pysäköintianturin ajatuksena on näyttää vihreää, kun sinulla on runsaasti tilaa vetää autoa eteenpäin pysäköintialueella, ja muuttua sitten keltaiseksi lähestyessäsi täysin eteenpäin -asentoa ja sitten punaiseksi, kun sinun pitäisi pysähtyä. Aiomme rakentaa tämän järjestelmän Raspberry Pi: n kanssa ja käyttää joitain etäisyyksiä, joita voimme helposti testata.
Vaihe 1: Asioita, joita tarvitset
Tarvitset seuraavat osat kuin Raspberry Pi -asennuksen.
- HC-SR04 ultraääni-etäisyysanturi
- Led (X3)
- 330Ω vastus (X3)
- 10KΩ vastus (x2)
- Uros-uros / uros-naarasliitinjohdot
- Leipälauta
Vaihe 2: Tee johdotus
- Etäisyysanturin liipaisin on GPIO 4, kaiku GPIO 18, vihreä valo 17, keltainen valo 27 ja punainen valo 22.
- 330 ohmin vastukset ovat ledeille ja ne kytkeytyvät ledien positiiviseen osaan ja sitten GPIO: han.
- 10K ohmin vastukset ovat etäisyysanturin kaiutapille ja liitetään GPIO: han.
Vaihe 3: Koodi
tuoda RPi. GPIO GPIO -tuontiaikaksi
GPIO.setwarnings (False)
GPIO.cleanup ()
GPIO.setmode (GPIO. BCM)
TRIG = 4
ECHO = 18
VIHREÄ = 17
KELTAINEN = 27
PUNAINEN = 22
GPIO.asetukset (TRIG, GPIO. OUT)
GPIO.asetukset (ECHO, GPIO. IN)
GPIO.setup (GREEN, GPIO. OUT)
GPIO.setup (KELTAINEN, GPIO. OUT)
GPIO.asetukset (PUNAINEN, GPIO. LÄHTÖ)
def green_light ():
GPIO -lähtö (VIHREÄ, GPIO. KORKEA)
GPIO -lähtö (KELTAINEN, GPIO. LOW)
GPIO -lähtö (RED, GPIO. LOW)
def keltainen_valo ():
GPIO -lähtö (VIHREÄ, GPIO. LOW)
GPIO -lähtö (KELTAINEN, GPIO. KORKEA)
GPIO -lähtö (RED, GPIO. LOW)
def red_light (): GPIO. output (GREEN, GPIO. LOW)
GPIO -lähtö (KELTAINEN, GPIO. LOW)
GPIO -lähtö (PUNAINEN, GPIO. KORKEA)
def get_distance ():
GPIO -lähtö (TRIG, True)
time.sleep (0.00001)
GPIO. output (TRIG, False)
kun GPIO.input (ECHO) == False: start = time.time ()
kun GPIO.input (ECHO) == True: end = time.time ()
signal_time = loppuaika
etäisyys = signaalin aika / 0.000058
paluumatka
vaikka totta:
etäisyys = get_distance ()
aika. unta (0,05)
tulosta (etäisyys)
jos etäisyys> = 25:
vihreä valo()
elif 25> etäisyys> 10:
keltainen_valo ()
elif -etäisyys <= 5:
punainen valo()
Jos etäisyys on suurempi tai yhtä suuri kuin 25 cm, näytetään vihreä valo. Jos se on 10–25 cm, muutumme keltaiseksi ja sitten punaiseksi alle 10 cm.