Spisu treści:

Fotobudka Raspberry Pi: 5 kroków
Fotobudka Raspberry Pi: 5 kroków

Wideo: Fotobudka Raspberry Pi: 5 kroków

Wideo: Fotobudka Raspberry Pi: 5 kroków
Wideo: Фотобудка для кота. Проекты Амперки #1 2024, Listopad
Anonim
Fotobudka Raspberry Pi
Fotobudka Raspberry Pi

Cel:

  • Dowiedz się, jak kodować i instalować kamerę Pi
  • Używanie instrukcji define i if w kodowaniu
  • Nauka korzystania z nowych technologii, takich jak diody LED RGB

Krok 1: Czego będziesz potrzebować

Czego będziesz potrzebować
Czego będziesz potrzebować
Czego będziesz potrzebować
Czego będziesz potrzebować
Czego będziesz potrzebować
Czego będziesz potrzebować
  • 1 Raspberry Pi 3
  • Deska do krojenia chleba
  • Zworki
  • 1 rezystor zależny od światła
  • 1 kondensator
  • 1 przycisk
  • 6 Rezystory 220 Ohm
  • 2 diody LED RGB
  • 1 kamera Raspberry Pi

Krok 2: Podłączanie modułu kamery

Podłączanie modułu kamery
Podłączanie modułu kamery

Przede wszystkim, przy wyłączonym Pi, musisz podłączyć moduł kamery do portu kamery Raspberry Pi, a następnie uruchomić Pi i upewnić się, że oprogramowanie jest włączone.

  1. Znajdź port kamery, który znajduje się między portem HDMI a portem 3,5 mm
  2. Pociągnij klips kamery za plastikowe krawędzie, aż klip będzie ustawiony po przekątnej
  3. Teraz włóż kabel kamery z niebieskim skierowanym w stronę portu 3,5 mm

Krok 3: Konfiguracja kamery

Konfigurowanie kamery
Konfigurowanie kamery
Konfigurowanie kamery
Konfigurowanie kamery

Otwieranie narzędzia konfiguracyjnego Raspberry Pi z menu głównego oraz wyłączanie i włączanie wszystkich powyższych interfejsów

Z menu głównego otwórz Terminal i wpisz następujące wiersze kodu:

Konfiguracja Sudo Raspi

Teraz użyj klawiszy strzałek do obsługi systemu i kliknij opcję połączenia peryferyjnego, a następnie kliknij kamerę P1 i włącz kamerę, a następnie wybierz opcję Zakończ. Wracając do terminala, wpisz następujące wiersze kodu:

pip zainstaluj picamera

lub Sudo pip zainstaluj Picamera

Krok 4: Testowanie modułu kamery

Testowanie modułu kamery
Testowanie modułu kamery

Stąd możemy sprawdzić, czy kamera działa, czy nie, ponieważ mamy włączone całe oprogramowanie i sprzęt.

Otwórz Pythona 3 z menu

Stamtąd otwórz nowy plik z powłoki i zapisz go jako cameratest.py.

Wpisz następujący kod:

from picamera import PiCamera #zaimportowany moduł utworzony z komendy pip install pi camera from time import sleep #import sleep aby upewnić się, że nasza kamera pozostaje w aparacie = PiCamera() #Konfiguracja dla kamery

camera.start_preview()#uruchamia kamerę i pokazuje, jak wygląda wyjście kamery

sleep(10)#pozostawia podgląd na 10 sekund

camera.stop_preview()#w końcu zamyka podgląd

Uruchom kod przez F5

Jeśli pojawi się ten błąd podczas uruchamiania kodu:

(mmal: mmal_vc_component_create: nie udało się utworzyć komponentu „vc.ril.camera” (1:ENOMEM)

mmal: mmal_component_create_core: nie można utworzyć komponentu 'vc.ril.camera' (1) Traceback (ostatnie wywołanie ostatniego): Plik "", wiersz 1, w pliku "/usr/lib/python2.7/dist-packages/picamera /camera.py", wiersz 257, w _init_ self._init_camera() Plik "/usr/lib/python2.7/dist-packages/picamera/camera.py", wiersz 288, w _init_camera prefix="Nie udało się utworzyć kamery component") Plik "/usr/lib/python2.7/dist-packages/picamera/exc.py", wiersz 112, w mmal_check podnieś PiCameraMMALError(status, prefix) picamera.exc. PiCameraMMALError: Nie udało się utworzyć komponentu kamery: Out pamięciowy)

Przejdź do konfiguracji Raspberry Pi, przejdź do kolumny wydajności i zwiększ pamięć GPU, aż błąd zniknie (musisz ponownie uruchomić).

Teraz w celu stworzenia zdjęcia, które zapisze się na pulpicie użyjemy następującego kodu:

from picamera import PiCamera #Importowany moduł utworzony z polecenia pip install pi camera od czasu import sleep #Imported sleep aby upewnić się, że nasza kamera pozostaje włączona

kamera = PiCamera() #Konfiguracja kamery

camera.start_preview() #Uruchamia podgląd snu(5)#Pozostawia podgląd włączony na 5 sekund

camera.capture('/home/pi/Desktop/image.jpg')# Od

camera.stop_preview()#Zatrzymuje podgląd

Krok 5: Tworzenie obwodu z kodem

Tworzenie obwodu z kodem!
Tworzenie obwodu z kodem!
Tworzenie obwodu z kodem!
Tworzenie obwodu z kodem!
Tworzenie obwodu z kodem!
Tworzenie obwodu z kodem!

Jak widać powyżej ze schematów obwodów, musimy ustawić przycisk, LDR i na koniec dwie diody LED RGB. Najpierw ustawimy przycisk w lewym dolnym rogu płytki prototypowej. Podczas konfiguracji przycisku użyjemy wspólnych linii kolejowych, co oznacza, że podłączymy nasze 3,3 V do dodatniego, a uziemienia do ujemnego. Po zakończeniu konfiguracji obwodu tylko dla przycisku.

Przetestujemy nasz obwód, aby zobaczyć, czy damy radę, aby po naciśnięciu przycisku włączyliśmy diodę za pomocą następującego kodu:

#Imported Modulesfrom gpiozero import Button from picamera import PiCamera od czasu import sleep

#Ustawiać

Kamera = PiCamera() Przycisk = Przycisk (22)

#Funkcja robienia zdjęć, zdecydowałem się umieścić ją w funkcji definiowania, ponieważ pomaga nam oczyścić główny kod

def fotocap():

Kamera.start_podgląd()

sleep(5) Camera.capture('/home/pi/Desktop/image.jpg') print ("Zdjęcie zostało zrobione") Camera.stop_preview()

#Kod główny:

while True: jeśli Button.is_pressed: print ("Przycisk został naciśnięty") photocap()

#Dlaczego to działa: Główny kod działa, ponieważ wszystko, co robimy, to użycie polecenia if button.is_pressed in a while true, więc jest on stale aktualizowany po naciśnięciu przycisku, aby zrobić zdjęcie

Teraz ustawimy 2 diody LED RGB aż do górnej części obwodu i rozdzielimy je na środku płytki stykowej, aby były symetryczne. Jeśli nie masz rezystorów 220 omów do tego projektu, możesz ustawić je równolegle w zależności od rezystancji rezystorów, które masz. Drugi pin 4-pinowej diody LED RGB (najdłuższy powinien być podłączony do uziemienia przez kolej. Wszystkie pozostałe piny powinny być podłączone do własnych pinów GPIO. (Pierwszy pin = czerwony, Drugi pin = uziemienie, Trzeci pin = zielony, Czwarty pin = niebieski).

Przetestujemy jedną z naszych diod LED RGB w naszym obwodzie przycisków za pomocą poniższego kodu:

#Imported Modulesfrom gpiozero import Button z picamera import PiCamera

z importu gpiozero RGBLED

od czasu importuj sen

#Ustawiać

Kamera = PiCamera() Przycisk = Przycisk (22)

TimedLED=RGBLED(czerwony=21, zielony=20, niebieski=16)

#Funkcja robienia zdjęć z diodą LED RGB, zdecydowałem się umieścić ją w funkcji definiowania, ponieważ pomaga nam to oczyścić główny kod

def photocap(): Camera.start_preview() sleep(4)

timedled.color(1, 0, 0)

sen(2)

timedled.color(0, 1, 0)

sen(1)

Camera.capture('/home/pi/Desktop/image.jpg') print ("Zdjęcie zostało zrobione") Camera.stop_preview()

#Kod główny:

podczas gdy prawda:

jeśli Button.is_pressed:

print ("Przycisk został naciśnięty") photocap()

#Dlaczego to działa: Powodem, dla którego ten kod działa, jest to, że teraz mamy RGBLED, który działa jako licznik czasu, kiedy zdjęcie ma zostać zrobione

Teraz skonfiguruj rezystor zależny od światła w prawym dolnym rogu płytki stykowej, korzystając ze schematu u góry i omówionych wcześniej wspólnych linii kolejowych. Pamiętaj, że obie długie nogi LDR i kondensator muszą być podłączone do pinu GPIO.

Po podłączeniu LDR użyjemy następującego kodu:

#Importowane moduły

z gpiozero import Button

z picamera importuj PiCamera z gpiozero importuj RGBLED

z gpiozero import LightSensor

od czasu importuj sen

#Ustawiać

Kamera = PiCamera() Przycisk = Przycisk(22) TimedLED=RGBLED(czerwony=21, zielony=20, niebieski=16)

LightSensor=LightSensor(23)

#Funkcja robienia zdjęć z diodą LED RGB, zdecydowałem się umieścić ją w funkcji definiowania, ponieważ pomaga nam to oczyścić główny kod

def photocap(): Camera.start_preview() sleep(4) timedled.color(1, 0, 0) sleep(2) timedled.color(0, 1, 0) sleep(1) Camera.capture('/home/ pi/Desktop/image.jpg') print ("Zdjęcie zostało zrobione") Camera.stop_preview()

#Kod główny:

podczas gdy prawda:

if Button.is_pressed: print ("Przycisk został naciśnięty") photocap()

jeśli Button.is_pressed i Lightsensor.when_dark:

drukuj ("Przycisk został naciśnięty")

print("Jest ciemno")

fotocap()

#Dlaczego to działa: Sposób, w jaki dodałem czujnik światła do mojego kodu, polega na użyciu innej instrukcji if, która zawiera zaimportowaną funkcję czujnika światła.

Teraz ostatnim krokiem w tym projekcie byłoby aktywowanie drugiej symetrycznej diody RGBLED względem drugiej, aby działała jako lampa błyskowa, Ostateczny kod:

z gpiozero import Button

z picamera importuj PiCamera

z importu gpiozero RGBLED

z gpiozero import LightSensor

od czasu importuj sen

#Ustawiać

Kamera = PiCamera()

Przycisk = Przycisk(22)

TimedLED=RGBLED(czerwony=21, zielony=20, niebieski=16)

FlashLED=RGBLED(czerwony=19, zielony=13, niebieski=6)

LightSensor=LightSensor(23)

#Funkcja robienia zdjęć z diodą LED RGB, zdecydowałem się umieścić ją w funkcji definiowania, ponieważ pomaga nam oczyścić główny kod def photocap(): Camera.start_preview() sleep(4) timedled.color(1, 0, 0) sleep(2) timedled.color(0, 1, 0) sleep(1) Camera.capture('/home/pi/Desktop/image.jpg') print ("Zdjęcie zostało zrobione") Camera.stop_preview() # Kod główny: while True: jeśli Button.is_pressed:

drukuj ("Przycisk został naciśnięty")

fotocap()

jeśli Button.is_pressed i Lightsensor.when_dark:

print ("Przycisk został naciśnięty") print("Jest ciemno")

FlashLED.kolor(1, 1, 1)

fotocap()

#Dlaczego to działa: Sposób, w jaki dodałem moją latarkę, polega na użyciu diody RGB do wyprowadzenia koloru białego, który wynosi 1, 1, 1 i robi to tylko wtedy, gdy stwierdzenie if jest prawdziwe.

Zalecana: