Czujniki Halla to czujniki, które wytwarzają sygnał elektryczny na swoim wyjściu, gdy zetkną się z polem magnetycznym. Wartość analogowa sygnału elektrycznego na wyjściu czujnika jest funkcją natężenia pola magnetycznego. Czujniki Halla są obecnie wszędzie, są używane z różnych powodów i we wszelkiego rodzaju urządzeniach, od telefonów komórkowych po przełączniki, do pomiaru prędkości, położenia i odległości w samochodach i innych produktach przemysłu motoryzacyjnego. Ta wszechstronność czujnika Halla sprawia, że jest to pozycja obowiązkowa dla producentów i inżynierów elektryków, dlatego dzisiaj pokażę nam, jak używać czujnika Halla w projekcie opartym na Raspberry Pi.
W każdej chwili możesz sprawdzić nasze inne projekty oparte na czujniku Halla, w tym połączenie czujnika Halla z Arduino.
Wymagane komponenty
Do zbudowania tego projektu wymagane są następujące komponenty / części;
- Raspberry pi 2 lub 3
- Karta SD (minimum 8 GB)
- Czujnik Halla
- Przewody połączeniowe
- Płyty do krojenia chleba
- Kabel LAN
- Źródło prądu
Niektóre opcjonalne części, które mogą być używane, obejmują:
- Monitor
- Klawiatura i mysz
- kabel HDMI
- Klucz Wi-Fi
Ten samouczek będzie oparty na Raspbian stretch OS, więc aby kontynuować, zakładam, że znasz konfigurację Raspberry Pi z Raspbian stretch OS i wiesz, jak SSH do raspberry pi za pomocą oprogramowania terminalowego, takiego jak kit. Jeśli masz z tym jakiekolwiek problemy, na tej stronie jest mnóstwo poradników Raspberry Pi, które mogą pomóc.
Dla tych, którzy będą instalować Raspbian stretch OS po raz pierwszy, jednym z problemów, które odkryłem, jest dostanie się do Raspberry Pi przez ssh. Należy zauważyć, że ssh jest pierwotnie wyłączony w systemie operacyjnym i będziesz potrzebował monitora, aby go włączyć, lub w opcjach konfiguracyjnych raspberry pi lub utworzysz pusty plik o nazwie ssh na komputerze z systemem Windows lub Linux i skopiuj pusty plik do katalog główny karty SD. Będziesz musiał włożyć wózek SD do gniazda kart SDd w komputerze, aby skopiować do niego.
Użycie drugiej metody jest bardziej odpowiednie dla osób korzystających z pi w trybie bezgłowym. Mając wszystkie gotowe części, możemy przystąpić do budowy.
Schemat obwodu:
Aby używać czujnika Halla z Raspberry Pi, podłącz komponenty zgodnie z poniższym schematem.
Czujnik Halla użyty w tym samouczku może dostarczyć zarówno wartości analogowe, jak i cyfrowe na wyjściu. Ale aby uprościć samouczek, zdecydowałem się użyć wartości cyfrowej, ponieważ użycie wyjścia analogowego będzie wymagało podłączenia ADC do Raspberry Pi.
Kod Pythona i objaśnienie robocze:
Kod Pythona do tego projektu Hall Sensor jest bardzo prosta, wszystko co musisz zrobić, to czytać wyjście z czujnika Hall i włączyć lub wyłączyć odpowiednio LED. Po wykryciu magnesu dioda LED ma się zaświecić, w przeciwnym razie wyłączyć.
Włącz Raspberry Pi i SSH do niego za pomocą szpachli (jeśli jest podłączony w trybie bezgłowym, tak jak ja). Jak zwykle w przypadku większości moich projektów, tworzę katalog w katalogu domowym, w którym przechowywane jest wszystko o każdym projekcie, więc dla tego projektu utworzymy katalog o nazwie hall . Pamiętaj, że to tylko osobiste preferencje dotyczące porządku.
Utwórz katalog za pomocą;
mkdir hallsensor
Zmień katalog na nowo utworzony katalog i otwórz edytor, aby utworzyć skrypt Pythona za pomocą;
cd hallsensor
śledzony przez;
nano hallsensorcode.py
Po otwarciu edytora wpisujemy kod projektu. Zrobię krótkie rozbicie kodu, aby pokazać kluczowe pojęcia, a pełny kod Pythona zostanie udostępniony po tym.
Kod rozpoczynamy od importu biblioteki RPI.GPIO, która pozwala nam pisać skrypty Pythona do interakcji z pinami GPIO raspberry pi.
importuj RPi.GPIO jako gpio
Następnie ustawiamy konfigurację numeracji GPIO Rpi, której będziemy chcieli używać, i wyłączamy ostrzeżenia GPIO, aby umożliwić swobodne wykonywanie kodu.
gpio.setmode (gpio.BCM) gpio.setwarnings (Fałsz)
Następnie ustawiamy deklarację pinów GPIO, do których jest podłączona dioda LED oraz wyjście cyfrowe czujnika Halla zgodnie z wybraną numeracją BCM.
hallpin = 2 ledpin = 3
Następnie ustawiamy piny GPIO jako wejście lub wyjście. Pin, do którego podłączona jest dioda LED ustawiony jako wyjście, a ten, do którego podłączony jest czujnik Halla jako wejście.
gpio.setup (hallpin, gpio.IN) gpio.setup (ledpin, gpio.OUT)
Z tym zrobić, piszemy główną część kodu, która jest jednocześnie pętla że stale ocenia wyjście z czujnika Halla i włącza diody jeśli magnes jest wykrywany i wyłącza diodę LED, kiedy nie zostanie wykryty magnes.
while True: if (gpio.input (hallpin) == False): gpio.output (ledpin, True) print ("wykryto magnes") else: gpio.output (ledpin, False) print ("nie wykryto pola magnetycznego")
Kompletny kod Pythona z demo Wideo jest podana na końcu projektu.
Skopiuj i zapisz kod i wyjdź z edytora po wpisaniu go za pomocą;
CTRL + X, a następnie y .
Po zapisaniu ponownie przejrzyj swoje połączenia i uruchom skrypt Pythona za pomocą;
sudo python hallsensorcode.py
Po uruchomieniu skryptu za każdym razem, gdy magnes lub cokolwiek magnetycznego zostanie zbliżone do czujnika Halla, dioda LED zapali się, jak pokazano na poniższym obrazku.
Od kontaktronów do inteligentnego domu po prędkościomierze do roweru, istnieje kilka super fajnych rzeczy, które można zbudować za pomocą tego samouczka u podstawy. Zapraszam do udostępnienia dowolnego projektu, który planujesz zbudować w sekcji komentarzy poniżej.
Wszyscy sprawdzają nasze poprzednie projekty oparte na czujnikach halla:
- DIY Prędkościomierz za pomocą Arduino i aplikacji do przetwarzania danych na Androida
- Cyfrowy prędkościomierz i obwód drogomierza za pomocą mikrokontrolera PIC
- Wirtualna rzeczywistość z wykorzystaniem Arduino i przetwarzania
- Pomiar natężenia pola magnetycznego za pomocą Arduino