PRACOWNIA MIERNICTWA ELEKTRONICZNEGO/
INTERNETU RZECZY
ĆWICZENIE NR 8
Temat
:
Raspberry Pi jako podstawa systemów wizualnych
Komponenty:
Raspberry pi3 B+
Opornik 200Ω
Mała płytka stykowa
Switch THT
Dioda LED
Raspberry Pi Camera
Cel ćwiczenia:
Złożenie i zaprogramowanie układu, w który pozwoli na zapalenie i zgaszenie diody LED przy
pomocy guzika
Dołożenie do zestawu kamery i napisanie skryptu, który prosi o podanie nazwy zdjęcia i po
wciśnięciu guzika wykonuje zdjęcie o podanej nazwie
Rysunek 2- Schemat układu do złożenia
Teoria
Rysunek 1- Schemat pinów w Raspberry pi3 B+
Instrukcja
Krok 1.
Złożony zestaw:
Rysunek 3 - Złożony zestaw do pierwszej części ćwiczenia
Aby uruchomić skrypt należy w katalogu ze skryptem wpisać „python nazwa skryptu”.
Kod:
import RPi.GPIO as GPIO //import modułuRPi.GPIO
import time //import modułu time
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.IN, pull_up_down = GPIO.PUD_UP) //przyporządkowanie 23 do switcha
GPIO.setup(24, GPIO.OUT) //przyporządkowanie pinu 24 dla diody LED
Led_status = 1//flaga, która pozwala na sprawdzenie czy dioda jest zapalona
try :
while True : //nieskończona pętla w której wykonuje się program
button_state = GPIO.input(23)//odczyt stanu switch-a(czy jest wciśnięty)
if button_state == False and Led_status == 1 : //jeżeli switch zostanie wciśnięty i dioda jest zgaszona
Led_status = 0//ustawienie flagi na zero
print('Led light') //wypisanie ‘Led light’ na ekran
time.sleep(0.5) //program zatrzymuje się na pół sekundy
elif button_state == False and Led_status == 0: //jeżeli switch zostanie wciśnięty i dioda jest zgaszona
Led_status = 1 //ustawienie flagi na jeden
GPIO.output(24, False) //zgaszenie diody LED
print('Led off') //wypisanie ‘Led off’ na ekran
time.sleep(0.5) //program zatrzymuje się na pół sekundy
except :
GPIO.cleanup() //wyczyszczenie wszystkich używanych portów
Krok 2.
Rozbudowa złożonego zestawu o kamerę
Konfiguracja kamery:
Aby można było używać kamery należy wpisać następujące komendy do terminala oraz włączyć
obsługę kamery w ustawieniach.
sudo apt-get update
sudo apt-get upgrade(może trwać do 30 minut)
sudo raspi-config
Konfiguracja:
Rysunek 6 - wybrać "P1 Camera" i potwierdzić wybór
Kod:
import RPi.GPIO as GPIO//import modułuRPi.GPIO
import time//import modułu time
from picamera import PiCamera//import modułu PiCamera
camera = PiCamera()//stworzenie obiektu typu PiCamera
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.IN, pull_up_down = GPIO.PUD_UP) //przyporządkowanie 23 do switcha
GPIO.setup(24, GPIO.OUT) //przyporządkowanie pinu 24 dla diody LED
name = raw_input("Write photo name: ")//skrypt prosi o podanie nazwy zdjęcia
try :
while True :
button_state = GPIO.input(23) )//odczyt stanu switch-a(czy jest wciśnięty)
if button_state == False : //jeżeli guzik jest wciśnięty
GPIO.output(24, False) //Zgaszenie diody LED
print('Wait for photo!') //wypisanie na ekran ‘Wait for photo!’
camera.start_preview()
time.sleep(2) //program zatrzymuje się na dwie sekundy
camera.capture("/home/pi/Pictures/" + name + ".jpg")//wykonanie zdjęcia i zapisanie we wskazanej lokalizacji
camera.stop_preview()
GPIO.output(24, True) //Zapalenie diody LED
print('Photo is made!') //wypisanie na ekran ‘Photo is made’
name = raw_input("Write photo name: ")//program prosi o podanie nazwy kolejnego zdjęci
except:
GPIO.cleanup()//wyczyszczenie wszystkich używanych portów