Spisu treści:
- Krok 1: Zbierz zapasy
- Krok 2: Okablowanie
- Krok 3: Przetestuj wyświetlacz
- Krok 4: Kod magnetometru
- Krok 5: Przyszła praca
Wideo: Magnetometr Arduino: 5 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
Co budujemy?
Ludzie nie potrafią wykryć pól magnetycznych, ale używamy urządzeń, które cały czas opierają się na magnesach. Na przykład silniki, kompasy, czujniki obrotu i turbiny wiatrowe wymagają do działania magnesów. Ten samouczek opisuje, jak zbudować magnetometr oparty na Arduino, który wykrywa pole magnetyczne za pomocą trzech czujników Halla. Wektor pola magnetycznego w danej lokalizacji jest wyświetlany na małym ekranie za pomocą rzutu izometrycznego.
Co to jest Arduino?
Arduino to mały, przyjazny dla użytkownika mikrokontroler typu open source. Posiada cyfrowe piny wejściowe i wyjściowe. Posiada również piny wejścia analogowego, które są przydatne do odczytu danych z czujników. Dostępne są różne modele Arduino. Ten samouczek opisuje, jak używać Arduino Uno lub Arduino MKR1010. Można jednak stosować również inne modele.
Przed rozpoczęciem tego samouczka pobierz środowisko programistyczne Arduino, a także wszelkie biblioteki potrzebne do konkretnego modelu. Środowisko programistyczne jest dostępne pod adresem https://www.arduino.cc/en/main/software, a instrukcje instalacji są dostępne pod adresem
Co to jest pole magnetyczne?
Magnesy trwałe wywierają siły na inne magnesy trwałe. Przewody przewodzące prąd wywierają siły na inne przewody przewodzące prąd. Magnesy trwałe i przewody przewodzące prąd również wywierają na siebie siły. Ta siła na jednostkę prądu testowego jest polem magnetycznym.
Jeśli zmierzymy objętość obiektu, otrzymamy pojedynczą liczbę skalarną. Jednak magnetyzm jest opisany przez pole wektorowe, bardziej skomplikowaną wielkość. Po pierwsze, zmienia się w zależności od położenia w całej przestrzeni. Na przykład pole magnetyczne w odległości jednego centymetra od magnesu trwałego jest prawdopodobnie większe niż pole magnetyczne oddalone o dziesięć centymetrów.
Następnie pole magnetyczne w każdym punkcie przestrzeni jest reprezentowane przez wektor. Wielkość wektora reprezentuje siłę pola magnetycznego. Kierunek jest prostopadły zarówno do kierunku siły, jak i kierunku prądu testowego.
Możemy zobrazować pole magnetyczne w jednym miejscu jako strzałkę. Możemy zobrazować pole magnetyczne w przestrzeni za pomocą szeregu strzałek w różnych miejscach, prawdopodobnie o różnych rozmiarach i skierowanych w różnych kierunkach. Ładna wizualizacja dostępna jest na https://www.falstad.com/vector3dm/. Budowany przez nas magnetometr wyświetla pole magnetyczne w miejscu położenia czujników w postaci strzałki na wyświetlaczu.
Co to jest czujnik Halla i jak działa?
Czujnik Halla to małe, niedrogie urządzenie, które mierzy siłę pola magnetycznego w określonym kierunku. Wykonany jest z kawałka półprzewodnika domieszkowanego nadmiarem ładunków. Wyjściem niektórych czujników Halla jest napięcie analogowe. Inne czujniki Halla mają zintegrowany komparator i wytwarzają wyjście cyfrowe. Inne czujniki Halla są zintegrowane z większymi przyrządami, które mierzą natężenie przepływu, prędkość obrotową lub inne wielkości.
Fizykę kryjącą się za efektem Halla podsumowuje równanie siły Lorentza. To równanie opisuje siłę działającą na poruszający się ładunek wywołaną zewnętrznym polem elektrycznym i magnetycznym.
Poniższy rysunek ilustruje efekt Halla. Załóżmy, że chcemy zmierzyć siłę pola magnetycznego w kierunku niebieskiej strzałki. Jak pokazano w lewej części rysunku, przykładamy prąd przez kawałek półprzewodnika prostopadle do kierunku mierzonego pola. Prąd to przepływ ładunków, więc ładunek w półprzewodniku porusza się z pewną prędkością. Ładunek ten odczuje siłę z powodu pola zewnętrznego, jak pokazano w środkowej części rysunku. Ładunki poruszają się pod wpływem siły i gromadzą się na krawędziach półprzewodnika. Ładunki gromadzą się, aż siła wywołana nagromadzonymi ładunkami zrównoważy siłę wywołaną zewnętrznym polem magnetycznym. Możemy zmierzyć napięcie na półprzewodniku, jak pokazano w prawej części rysunku. Mierzone napięcie jest proporcjonalne do natężenia pola magnetycznego i przebiega w kierunku prostopadłym do prądu i kierunku pola magnetycznego.
Co to jest rzut izometryczny?
W każdym punkcie przestrzeni pole magnetyczne jest opisane przez trójwymiarowy wektor. Jednak nasz ekran wyświetlacza jest dwuwymiarowy. Możemy rzutować trójwymiarowy wektor na dwuwymiarową płaszczyznę, aby móc go narysować na ekranie. Można to osiągnąć na wiele sposobów, takich jak rzut izometryczny, rzut prostokątny lub rzut ukośny.
W rzucie izometrycznym osie x, y i z są oddalone od siebie o 120 stopni i są one jednakowo skrócone. Dodatkowe informacje o rzucie izometrycznym, a także potrzebne wzory, można znaleźć na stronie Wikipedii na ten temat.
Krok 1: Zbierz zapasy
Arduino i kabel
Arduino to mózg magnetometru. Te instrukcje opisują, jak używać Arduino Uno lub Arduino MKR1010. W obu przypadkach do podłączenia go do komputera potrzebny jest kabel.
Opcja 1: Arduino Uno i kabel USB AB
www.digikey.com/product-detail/en/arduino/A000066/1050-1024-ND/2784006
www.digikey.com/product-detail/en/stewart-connector/SC-2ABE003F/380-1424-ND/8544570
Opcja 2: Arduino MKR1010 i kabel microUSB
www.digikey.com/product-detail/en/arduino/ABX00023/1050-1162-ND/9486713
www.digikey.com/product-detail/en/stewart-connector/SC-2AMK003F/380-1431-ND/8544577
Wyświetlacz TFT
TFT oznacza tranzystor cienkowarstwowy. Ten wyświetlacz o przekątnej 1,44 cala zawiera 128 na 128 pikseli. Jest mały, jasny i kolorowy. Jest przymocowany do płytki zaciskowej. Jednak styki nagłówka są dostarczane osobno, więc trzeba je przylutować. (Lut i lutownica są potrzebne.)
www.digikey.com/product-detail/en/adafruit-industries-llc/2088/1528-1345-ND/5356830
- Analogowe czujniki Halla
Wymagane są trzy czujniki Halla. Poniższy link dotyczy numeru części Allegro A1324LUA-T. W przypadku tego czujnika pin 1 to napięcie zasilania, pin 2 to masa, a pin 3 to wyjście. Inne czujniki Halla również powinny działać, ale upewnij się, że są analogowe, a nie cyfrowe. Jeśli używasz innego czujnika, sprawdź pinout i w razie potrzeby wyreguluj okablowanie. (Właściwie do testów użyłem innego czujnika tej samej firmy. Jednak ten, którego użyłem, jest przestarzały, a ten czujnik jest jego zamiennikiem.)
www.digikey.com/product-detail/en/allegro-microsystems-llc/A1324LUA-T/620-1432-ND/2728144
Mała deska do krojenia chleba i drut
www.digikey.com/product-detail/en/adafruit-industries-llc/239/1528-2143-ND/7244929
Magnesy trwałe do testowania
Magnesy na lodówkę będą działać dobrze.
Krok 2: Okablowanie
Przylutuj nagłówki na wyświetlaczu.
Umieść czujniki na jednym końcu płytki stykowej, a wyświetlacz i Arduino na drugim końcu. Prąd w przewodach Arduino i wyświetlacza generuje pola magnetyczne, których nie chcemy, aby czujniki odczytały. Dodatkowo możemy chcieć umieścić czujniki w pobliżu magnesów trwałych, co może niekorzystnie wpłynąć na prąd w przewodach wyświetlacza i czujnika. Z tych powodów chcemy, aby czujniki były oddalone od wyświetlacza i Arduino. Również z tych powodów magnetometr ten powinien być trzymany z dala od bardzo silnych pól magnetycznych.
Umieść czujniki prostopadle do siebie, ale jak najbliżej siebie. Delikatnie wygnij czujniki, aby ustawić je prostopadle. Każdy pin każdego czujnika musi znajdować się w osobnym rzędzie płytki stykowej, aby można go było podłączyć osobno.
Okablowanie jest nieco inne między MKR1010 a Uno z dwóch powodów. Po pierwsze, Arduino i wyświetlacz komunikują się przez SPI. Różne modele Arduino mają różne dedykowane piny dla niektórych linii SPI. Po drugie, wejścia analogowe Uno mogą przyjmować do 5 V, podczas gdy wejścia analogowe MKR1010 tylko do 3,3 V. Zalecane napięcie zasilania czujników Halla to 5 V. Wyjścia czujników są podłączone do wejść analogowych Arduino, a te mogą być tak duże jak napięcia zasilania. W przypadku Uno należy użyć zalecanego zasilania czujników 5 V. W przypadku MKR1010 użyj 3,3 V, aby wejście analogowe Arduino nigdy nie widziało napięcia większego niż jest w stanie obsłużyć.
Postępuj zgodnie z poniższymi schematami i instrukcjami dla Arduino, którego używasz.
Okablowanie z Arduino Uno
Wyświetlacz posiada 11 pinów. Podłącz je do Arduino Uno w następujący sposób. (NC oznacza brak połączenia.)
- Vin →5V
- 3.3 →NC
- Masa →GND
- SCK →13
- SO → NC
- SI →11
- TCS →10
- RST →9
- D/C →8
- CCS → NC
- Lite → NC
Podłącz Vin czujników do 5V Arduino. Podłącz masę czujnika do masy Arduino. Podłącz wyjścia czujników do wejść analogowych A1, A2 i A3 Arduino.
Okablowanie z Arduino MKR1010
Wyświetlacz posiada 11 pinów. Podłącz je do Arduino w następujący sposób. (NC oznacza brak połączenia.)
- Vin →5V
- 3.3 →NC
- Masa →GND
- SCK → SCK 9
- SO → NC
- SI →MOSI 8
- TCS →5
- RST →4
- D/C →3
- CCS → NC
- Lite → NC
Podłącz Vin czujników do Vcc Arduino. Ten pin ma napięcie 3,3 V, a nie 5 V. Podłącz masę czujnika do masy Arduino. Podłącz wyjścia czujników do wejść analogowych A1, A2 i A3 Arduino.
Krok 3: Przetestuj wyświetlacz
Uruchommy wyświetlacz TFT. Na szczęście Adafruit ma kilka przyjaznych dla użytkownika bibliotek i doskonały samouczek, z którym można się z nimi zapoznać. Te instrukcje są ściśle zgodne z samouczkiem, Otwórz środowisko programistyczne Arduino. Przejdź do Narzędzia → Zarządzaj bibliotekami. Zainstaluj biblioteki Adafruit_GFX, Adafruit_ZeroDMA i Adafruit_ST7735. Uruchom ponownie środowisko programistyczne Androida.
Przykładowy test graficzny jest dołączony do bibliotek. Otwórz to. Plik → Przykłady → Biblioteka Adafruit ST7735 i ST7789 → test graficzny. Aby wybrać wyświetlacz o przekątnej 1,44 cala, należy skomentować linię 95 i odkomentować linię 98.
Orginalna wersja:
94 // Użyj tego inicjatora, jeśli używasz ekranu TFT 1,8 cala:
95 tft.initR(INITR_BLACKTAB); //Układ Init ST7735S, czarna zakładka 96 97 //LUB użyj tego inicjatora (odkomentuj), jeśli używasz TFT 1,44 cala: 98 //tft.initR(INITR_144GREENTAB); // Układ Init ST7735R, zielona zakładka
Prawidłowa wersja dla wyświetlacza 1,44 cala:
94 // Użyj tego inicjatora, jeśli używasz ekranu TFT 1,8 cala:
95 //tft.initR(INIT_BLACKTAB); //Układ Init ST7735S, czarna zakładka 96 97 //LUB użyj tego inicjatora (odkomentuj), jeśli używasz TFT 1,44 cala: 98 tft.initR(INITR_144GREENTAB); //Układ Init SST35R, zielona zakładka
Wyświetlacz komunikuje się za pomocą SPI, a różne modele Arduino używają różnych dedykowanych pinów dla niektórych linii komunikacyjnych. Przykładowy test grafiki jest skonfigurowany do pracy z pinami Uno. Jeśli używasz MKR1010, dodaj następujące wiersze między wierszami 80 i 81.
Poprawki dla MKR1010:
80
#define TFT_CS 5 #define TFT_RST 4 #define TFT_DC 3 #define TFT_MOSI 8 #define TFT_SCLK 9 Adafruit_ST7735 tft=Adafruit_ST7735(TFT_CS, TFT_DC, TFT_MOSI, TFT_SCLK, TFT_RST); 81 pływak p=3,1415926;
Zapisz zmodyfikowany przykład testu graficznego. Podłącz Arduino do komputera, jeśli jeszcze tego nie zrobiłeś. Przejdź do Narzędzia → Płytka i narzędzia → Port, aby sprawdzić, czy komputer może znaleźć Arduino. Przejdź do Szkic → Prześlij. Jeśli przykład działa, wyświetlacz pokaże linie, prostokąty, tekst i pełną wersję demonstracyjną. Samouczek Adafruit zawiera więcej szczegółów, jeśli potrzebne jest rozwiązywanie problemów.
Krok 4: Kod magnetometru
Pobierz załączony kod i otwórz go w środowisku programistycznym Arduino.
Ten program wykorzystuje sześć funkcji:
Setup() inicjuje wyświetlacz
Loop() zawiera główną pętlę programu. Zaciemnia ekran, rysuje osie, odczytuje dane wejściowe i rysuje strzałkę reprezentującą wektor pola magnetycznego. Ma częstotliwość odświeżania wynoszącą jedną sekundę, którą można zmienić, modyfikując linię 127
DrawAxes3d() rysuje i oznacza osie x, y i z
DrawArrow3d() przyjmuje dane wejściowe x, y i z z zakresu od 0 do 1023. Na podstawie tych wartości oblicza punkty końcowe strzałki w przestrzeni. Następnie używa funkcji isometricxx() i isometricyy() do obliczania punktów końcowych na ekranie. Na koniec rysuje strzałkę i drukuje napięcia na dole ekranu
Isometricxx() znajduje współrzędną x rzutu izometrycznego. Pobiera współrzędne x, y i z punktu i zwraca odpowiednią lokalizację w pikselach x na ekranie
Isometricyy() znajduje współrzędną y rzutu izometrycznego. Pobiera współrzędne x, y i z punktu i zwraca odpowiednią lokalizację w pikselach y na ekranie
Przed uruchomieniem kodu musimy określić, których pinów użyć do komunikacji SPI z wyświetlaczem oraz określić napięcie źródła dla czujników. Jeśli używasz MKR1010, zakomentuj wiersze 92-96 oraz wiersz 110. Następnie odkomentuj wiersze 85-89 oraz wiersz 108. Jeśli używasz Uno, zakomentuj wiersze 85-89 oraz wiersz 108 Następnie odkomentuj wiersze 92-96 oraz wiersz 110.
Prześlij kod, Szkic → Prześlij.
Powinieneś zobaczyć osie x, y i z na czerwono. Zielona strzałka z niebieskim kółkiem dla końcówki reprezentuje wektor pola magnetycznego na czujnikach. Odczyty napięcia są wyświetlane w lewym dolnym rogu. W miarę zbliżania magnesu do czujników odczyty napięcia powinny się zmieniać, a rozmiar strzałki powinien rosnąć.
Krok 5: Przyszła praca
Następnym krokiem będzie kalibracja urządzenia. Karta danych czujnika zawiera informacje o tym, jak przekonwertować surowe wartości napięcia czujnika na natężenie pola magnetycznego. Kalibrację można zweryfikować, porównując z dokładniejszym magnetometrem.
Magnesy trwałe oddziałują z przewodami przewodzącymi prąd. Przewody w pobliżu wyświetlacza oraz w Arduino generują pola magnetyczne, które mogą wpływać na odczyty czujników. Dodatkowo, jeśli to urządzenie jest używane do pomiaru w pobliżu silnego magnesu trwałego, pole magnetyczne z testowanego urządzenia będzie oddziaływać, wprowadzać zakłócenia i prawdopodobnie uszkadzać Arduino i wyświetlacz. Ekranowanie może sprawić, że ten magnetometr będzie bardziej wytrzymały. Arduino może wytrzymać większe pola magnetyczne, jeśli jest ekranowany w metalowym pudełku, a mniej szumów zostanie wprowadzonych, jeśli ekranowane kable połączą czujniki zamiast gołych przewodów.
Pole magnetyczne jest funkcją położenia, więc jest inne w każdym punkcie przestrzeni. To urządzenie wykorzystuje trzy czujniki, jeden do pomiaru składowej x, y i z pola magnetycznego w punkcie. Czujniki są blisko siebie, ale nie w jednym punkcie, co ogranicza rozdzielczość magnetometru. Fajnie byłoby zapisać odczyty pola magnetycznego w różnych punktach, a następnie wyświetlić je jako szereg strzałek w odpowiednich miejscach. To jednak projekt na inny dzień.
Bibliografia
Informacje o bibliotekach graficznych Adafruit Arduino Graphics
https://learn.adafruit.com/adafruit-1-44-color-tft-with-micro-sd-socket/przegląd
Wizualizacja pola magnetycznego
https://www.falstad.com/vector3dm/
Informacje o czujnikach efektu Halla i Halla
- https://sensing.honeywell.com/index.php?ci_id=47847
- https://www.allegromicro.com/~/media/Files/Datasheets/A1324-5-6-Datasheet.ashx
Informacje o rzucie izometrycznym
- https://en.wikipedia.org/wiki/3D_projection
- https://en.wikipedia.org/wiki/Isometric_projection
Zalecana:
Licznik kroków - Micro:Bit: 12 kroków (ze zdjęciami)
Licznik kroków - Micro:Bit: Ten projekt będzie licznikiem kroków. Do pomiaru kroków użyjemy czujnika przyspieszenia wbudowanego w Micro:Bit. Za każdym razem, gdy Micro:Bit się trzęsie, dodamy 2 do licznika i wyświetlimy go na ekranie
Przenośny magnetometr: 7 kroków (ze zdjęciami)
Przenośny magnetometr: Magnetometr, czasami nazywany również Gaussmeter, mierzy siłę pola magnetycznego. Jest to niezbędne narzędzie do testowania wytrzymałości magnesów trwałych i elektromagnesów oraz do zrozumienia kształtu pola nietrywialnych konfiguracji magnesów
Bolt - DIY Wireless Charging Night Clock (6 kroków): 6 kroków (ze zdjęciami)
Bolt - DIY Wireless Charging Night Clock (6 kroków): Ładowanie indukcyjne (znane również jako ładowanie bezprzewodowe lub ładowanie bezprzewodowe) to rodzaj bezprzewodowego przesyłania energii. Wykorzystuje indukcję elektromagnetyczną do dostarczania energii elektrycznej do urządzeń przenośnych. Najpopularniejszym zastosowaniem jest stacja ładowania bezprzewodowego Qi
Kompas cyfrowy wykorzystujący Arduino i magnetometr HMC5883L: 6 kroków
Cyfrowy kompas wykorzystujący Arduino i magnetometr HMC5883L: Cześć, ten czujnik może wskazywać geograficzną północ, południe, wschód i zachód, my, ludzie, możemy go również używać w razie potrzeby. Więc. W tym artykule spróbujmy zrozumieć, jak działa czujnik magnetometru i jak połączyć go z mikrokontrolerem
Najtańsze Arduino -- Najmniejsze Arduino -- Arduino Pro Mini -- Programowanie -- Arduino Neno: 6 kroków (ze zdjęciami)
Najtańsze Arduino || Najmniejsze Arduino || Arduino Pro Mini || Programowanie || Arduino Neno:……………… SUBSKRYBUJ Mój kanał YouTube, aby uzyskać więcej filmów ……. .Ten projekt dotyczy połączenia najmniejszego i najtańszego arduino w historii. Najmniejszym i najtańszym arduino jest arduino pro mini. Jest podobny do arduino