Cestna razsvetljava

Zadnja naloga pri projektu prometne signalizacije bo izdelava samodejne cestne razsvetljave. Ta deluje tako, da vsebuje svetlobni senzor, ki vključi ali izključi LED diodo (ki predstavlja ulične svetilke oziroma cestno razsvetljavo). To pomeni, da boš na preizkusno ploščico dodal/-a LED diodo fotocelico in kondenzator ter jih sprogramiral/-a tako, da bodo oponašali samodejno prižiganje oziroma ugašanje cestne razsvetljave. LED dioda bo svetila kot prava cestna razsvetljava: v temi bo svetila, v mraku pa bo svetila le na pol.

Strojna oprema

  • 1 Malina
  • 1 preizkusna ploščica (angl. breadboard)
  • 1 zatič oblike T s kablom (angl. T-cobbler with breakout cable)
  • 1 LED dioda (oranžne barve)
  • 1 upor 330 Ω
  • 1 fotocelica oz. svetlobni senzor (angl. photo cell or light-dependent resistor – LDR)
  • 1 kondenzator 1 µF (angl. capacitor)
  • vtične žičke moški-moški (angl. jumper wire male-to-male)

Programska oprema

  • Python 3 (prednameščen na Raspbianu)
  • Pythonov modul gpiozero (prednameščen na Raspbianu)

Navodila

  1. Poveži Malinine GPIO nožice in preizkusno ploščico s pomočjo T-zatiča in kabla.
  2. Poveži oranžno LED diodo z nožico GND in nožico GPIO 27 (glej zavihek Vezje).
  3. Poveži eno nožico fotocelice z nožico 3V3 in drugo nožico z nožico GPIO 17 (glej zavihek Vezje).
  4. Z drugo nožico fotocelice, povezano na nožico GPIO 17, poveži daljšo nožico kondenzatorja.
    Krajšo nožico kondenzatorja pa poveži z nožico GND (glej zavihek Vezje).
  5. Odpri IDLE in ustvari novo datoteko tako, da klikneš File > New file.
  6. Shrani novo datoteko tako, da klikneš File > Save. Datoteki daj ime signalizacija8.py.
  7. V datoteko signalizacija8.py vnesi kodo z zavihka Koda.
  8. Shrani kodo s Ctrl+S in jo nato zaženi s F5.
  9. LED diode bi morale začeti simulacijo semaforja za pešce in avtomobile.


# encoding: utf-8
import gpiozero
import time

led = gpiozero.PWMLED(27)
ldr = gpiozero.LightSensor(17)

while True:
    if ldr.value >= 0.75:
        led.value = 0   # ne sveti
    elif ldr.value < 0.75 and ldr.value >= 0.5:
        led.value = 0.5 # sveti na pol
    else:
        led.value = 1   # sveti
    time.sleep(1)

Izvorna koda