Wykrywanie ruchu z Raspberry Pi 1

Wykrywanie ruchu z Raspberry Pi

Po zakupie Raspberry Pi Zero W i skonstruowaniu pierwszego drobnego projektu złożonego z gotowych elementów postanowiłem zainteresować się nieco elektroniką i budową własnych układów.

Długo zastanawiałem się nad tym co chciałbym zbudować. Projekt powinien składać się z różnych elementów współgrających ze sobą. Dodatkowo wszystko powinno być połączone logiką napisaną w Pythonie. Na koniec ważne jest, żeby nie kosztował mnie majątku.

W końcu wpadłem na pomysł zbudowania elektronicznej skarbonki. Projekt jest jeszcze w fazie planowania, jednak jednej rzeczy byłem pewien od samego początku: muszę w jakiś sposób wykryć ruch monety aby cała reszta zaczęła działać.

Wykrywanie ruchu na niewielkiej odległości

Istnieje wiele możliwości na wykrycie ruchu. Koniec końców wybór padł na niedrogi czujnik przerwania wiązki z diodą 3mm. Zasada jego działania jest bardzo prosta: nadajnik wysyła wiązkę podczerwieni w kierunku odbiornika, który za pomocą trzeciego kabla (białego) podaje wysoki lub niski stan w zależności od tego czy wiązka została przerwana czy nie.

Zdjęcie czujnika przerwania wiązki z diodą 3mm składającego się z dwu-kablowego nadajnika i trzy-kablowego odbiornika
Czujnik przerwania wiązki z diodą 3mm. Źródło

Czujnik może być zasilany napięciem 3.3V lub 5V, więc nadaje się idealnie do projektów opartych o Raspberry Pi. Podłączając czujnik do wyższego napięcia można wykrywać przerwanie wiązki na dalszej odległości.

Podłączenie czujnika do Raspberry Pi

Nie mając zbyt dużego pojęcia o elektronice nieco obawiałem się pierwszego podejścia do własnoręcznego podpinania podzespołów. Dodatkowo w internecie nie mogłem znaleźć żadnego przykładu podłączenia do Raspberry Pi. Ostatecznie całość połączyłem w oparciu o poradnik do Arduino odpowiednio go dostosowując. Ku mojemu zaskoczeniu, wszystko zadziałało za pierwszym razem.

Schemat przykładowego podłączenia czujnika przerwania wiązki do Raspberry Pi
Czujnik przerwania wiązki – schemat podłączenia
Zdjęcia przykładowego połączenia czujnika przerwania wiązki do Raspberry Pi
Czujnik przerwania wiązki – podłączenie

Przykładowy kod

#!/usr/bin/python

'''
Autor:  Krzysztof Grabania
Źródło: https://grabania.pl/
Data:   2019-08-10

Przykładowy kod podłączenia czujnika przerwania wiązki do Raspberry Pi.
Biały kabel odbiornika należy podłączyć do pinu 12 w Raspberry Pi.

Zmienna STATE wskazuje na aktualny stan wiązki:
- True: wiązka jest połączona
- False: wiązka została przerwana
'''

import RPi.GPIO as GPIO

# Pin w Raspberry Pi służacy do odczytu danych
RECEIVER_PIN = 12
# Domyślny stan połączenia wiązki
STATE = True

GPIO.setmode(GPIO.BOARD)

# Ustaw pin odbiornika w trybie odczytu danych
GPIO.setup(RECEIVER_PIN, GPIO.IN)

while True:
    # Odczytaj stan pinu odbiornika
    NEW_STATE = GPIO.input(RECEIVER_PIN)
    
    # Jeśli nowy stan różni się od poprzedniego
    if (STATE != NEW_STATE):
        # Zapisz nowy stan
        STATE = NEW_STATE
        
        # Wyświetl informacje o aktualnym stanie wiązki
        if (STATE == False):
            print('Przewanie wiazki')
        else:
            print('Polaczenie wiazki')

Prezentacja działania

Już wkrótce.


Autorem obrazka wyróżniającego jest Gerardo Barreto z serwisu Unsplash.

Autor

Krzysztof Grabania

Programista z zawodu oraz z zamiłowania. Na co dzień pracuje z Laravelem, WordPressem i Vue.js. Nie boi się poznawać nowych technologii i narzędzi. W wolnych chwilach tłumaczy WordPressa i jego wtyczki na język polski. Amator elektroniki oraz Raspberry Pi.