- Wymagane materiały
- Co to jest magnetometr i jak działa?
- Jak działa moduł czujnika HMC5883L
- Schemat obwodu
- Wykonanie obwodów drukowanych do cyfrowego kompasu
- Montaż PCB
- Programowanie Arduino
Ludzki mózg zbudowany jest ze złożonych warstw struktur, które pomagają nam być dominującym gatunkiem na Ziemi. Na przykład kora śródwęchowa w twoim mózgu może dać ci poczucie kierunku, pomagając ci łatwo poruszać się po miejscach, których nie znasz. Ale w przeciwieństwie do nas, roboty i bezzałogowe pojazdy Ariel potrzebują czegoś, aby uzyskać takie wyczucie kierunku, aby mogły samodzielnie manewrować w nowych terenach i krajobrazach. Różne roboty wykorzystują do tego różne typy czujników, ale powszechnie stosowanym jest magnetometr, który może informować robota, w jakim kierunku geograficznym jest obecnie zwrócony. Pomoże to robotowi nie tylko wyczuwać kierunek, ale także wykonywać skręty we wcześniej określonym kierunku i aniołach.
Ponieważ czujnik może wskazywać geograficzną północ, południe, wschód i zachód, my, ludzie, możemy również używać go w razie potrzeby. W tym artykule spróbujmy więc zrozumieć, jak działa czujnik magnetometru i jak połączyć go z mikrokontrolerem takim jak Arduino. Tutaj zbudujemy fajny cyfrowy kompas, który pomoże nam znaleźć kierunki, świecąc diodą LED wskazującą kierunek północny. Ten cyfrowy kompas jest starannie wykonany na PCB od PCBGOGO, więc mogę go nosić następnym razem, gdy wyjdę na dziko i chciałbym się zgubić, aby użyć go do znalezienia drogi do domu. Zacznijmy.
Wymagane materiały
- Arduino Pro mini
- HMC5883L Czujnik magnetometru
- Światła LED - 8 szt
- Rezystor 470Ohm - 8Nos
- Barrel Jack
- Niezawodny producent PCB, taki jak PCBgogo
- Programator FTDI dla mini
- PC / laptop
Co to jest magnetometr i jak działa?
Zanim zagłębimy się w obwód, zrozummy trochę o magnetometrze i jego działaniu. Jak sama nazwa wskazuje, termin Magneto nie odnosi się do tego szalonego mutanta w cudownym świecie, który mógłby kontrolować metale, po prostu grając na pianinie w powietrzu. Ohh! Ale lubię tego faceta, on jest fajny.
Magnetometr jest w rzeczywistości elementem wyposażenia, które może wykrywać bieguny magnetyczne ziemi i wskazywać odpowiedni kierunek. Wszyscy wiemy, że Ziemia jest ogromnym kawałkiem sferycznego magnesu z biegunem północnym i biegunem południowym. I z tego powodu powstaje pole magnetyczne. Magnetometr wykrywa to pole magnetyczne i na podstawie kierunku pola magnetycznego może wykryć kierunek, w którym stoimy.
Jak działa moduł czujnika HMC5883L
HMC5883L bycia czujnik magnetometr robi to samo. Ma na sobie układ scalony HMC5883L firmy Honeywell. Ten układ scalony ma 3 materiały magneto-rezystancyjne wewnątrz, które są rozmieszczone w osiach x, y i z. Ilość prądu przepływającego przez te materiały jest wrażliwa na pole magnetyczne Ziemi. Zatem mierząc zmianę prądu przepływającego przez te materiały, możemy wykryć zmianę pola magnetycznego Ziemi. Gdy zmiana zostanie wchłonięta przez pole magnetyczne, wartości mogą być następnie przesłane do dowolnego wbudowanego kontrolera, takiego jak mikrokontroler lub procesor, za pośrednictwem protokołu I2C.
Ponieważ czujnik działa poprzez wykrywanie pola magnetycznego, położenie metalu w pobliżu będzie miało duży wpływ na wartości wyjściowe. To zachowanie można wykorzystać do wykorzystania tych czujników również jako wykrywaczy metali. Należy uważać, aby nie zbliżać magnesów do tego czujnika, ponieważ silne pole magnetyczne magnesu może wywołać fałszywe wartości czujnika.
Różnica między HMC5883L i QMC5883L
Dla wielu początkujących istnieje powszechne zamieszanie wokół tych czujników. Dzieje się tak, ponieważ niektórzy sprzedawcy (a właściwie większość) sprzedają czujniki QMC5883L zamiast oryginalnego HMC5883L firmy Honeywell. Dzieje się tak głównie dlatego, że QMC5883L jest znacznie tańszy niż moduł HMC5883L. Smutne jest to, że działanie tych dwóch czujników jest nieco inne i nie można użyć tego samego kodu do obu. Dzieje się tak, ponieważ adresy I2C obu czujników nie są takie same. Kod podany w tym samouczku będzie działał tylko dla QMC5883L, powszechnie dostępnego modułu czujnika.
Aby wiedzieć, który model czujnika posiadasz, wystarczy przyjrzeć się uważnie samemu układowi scalonemu i przeczytać, co jest na nim napisane. Jeśli jest napisane coś w rodzaju L883, to jest to HMC58836L, a jeśli jest napisane coś w rodzaju DA5883, to jest to układ QMC5883L. Oba moduły są pokazane na poniższym obrazku dla łatwego zrozumienia.
Schemat obwodu
Obwód tego cyfrowego kompasu opartego na Arduino jest dość prosty, po prostu musimy połączyć czujnik HMC5883L z Arduino i podłączyć 8 diod LED do pinów GPIO Arduino Pro mini. Pełny schemat obwodu pokazano poniżej
Moduł czujnika ma 5 szpilki z którego Drdy (Data Ready) nie jest stosowana w naszym projekcie ponieważ działają czujnik w trybie ciągłym. Vcc i pin uziemienia służą do zasilania modułu napięciem 5 V z płyty Arduino. SCL i SDA to linie magistrali komunikacyjnej I2C, które są podłączone odpowiednio do pinów A4 i A5 I2C Arduino Pro mini. Ponieważ sam moduł ma wysoki rezystor ciągnący na liniach, nie ma potrzeby dodawania ich zewnętrznie.
Aby wskazać kierunek, użyliśmy 8 diod LED, z których wszystkie są podłączone do pinów GPIO Arduino za pomocą rezystora ograniczającego prąd o wartości 470 omów. Kompletny obwód jest zasilany baterią 9 V przez lufę Jack. To 9 V jest dostarczane bezpośrednio do pinu Vin Arduino, gdzie jest regulowane do 5 V za pomocą wbudowanego regulatora w Arduino. To 5 V jest następnie używane do zasilania czujnika i Arduino.
Wykonanie obwodów drukowanych do cyfrowego kompasu
Ideą obwodu jest umieszczenie 8 diod LED w sposób kołowy, tak aby każda dioda LED wskazywała wszystkie 8 kierunków, a mianowicie odpowiednio północ, północny wschód, wschód, południowy wschód, południe, południowy zachód, zachód i północny zachód. Nie jest więc łatwo ułożyć je starannie na płytce prototypowej lub nawet na płycie perf. Opracowanie PCB dla tego obwodu sprawi, że będzie on wyglądał bardziej schludnie i będzie łatwiejszy w użyciu. Otworzyłem więc oprogramowanie do projektowania PCB i umieściłem diody LED i rezystor w zgrabnym okrągłym wzorze i połączyłem ścieżki, aby utworzyć połączenia. Po ukończeniu mój projekt wyglądał mniej więcej tak poniżej. Możesz również pobrać plik Gerber z linku podanego poniżej.
- Pobierz plik Gerber dla Digital Compass PCB
Zaprojektowałem to jako płytkę dwustronną, ponieważ chcę, aby Arduino znajdowało się w dolnej części mojej płytki PCB, aby nie zepsuło wyglądu górnej części mojej płytki. Jeśli martwisz się, że musisz zapłacić dużo za dwustronną płytkę drukowaną, poczekaj, mam dobry nowy nadchodzący.
Teraz, gdy nasz projekt jest gotowy, nadszedł czas, aby je wyprodukować. Wykonanie PCB jest dość łatwe, po prostu wykonaj poniższe czynności
Krok 1: Wejdź na www.pcbgogo.com, zarejestruj się, jeśli to Twój pierwszy raz. Następnie w zakładce PCB Prototyp wprowadź wymiary swojej płytki PCB, liczbę warstw i liczbę potrzebnych PCB. Moja płytka ma wymiary 80 cm × 80 cm, więc zakładka wygląda tak poniżej
Krok 2: Kontynuuj, klikając przycisk Cytuj teraz . Zostaniesz przeniesiony na stronę, na której możesz ustawić kilka dodatkowych parametrów, jeśli to konieczne, takich jak zastosowany materiał, rozstaw ścieżek itp. Ale głównie wartości domyślne będą działać dobrze. Jedyne, co musimy tutaj wziąć pod uwagę, to cena i czas. Jak widać, czas budowy wynosi tylko 2-3 dni i kosztuje tylko 5 USD dla naszego PSB. Następnie możesz wybrać preferowaną metodę wysyłki w oparciu o swoje wymagania.
Krok 3: Ostatnim krokiem jest załadowanie pliku Gerber i kontynuacja płatności. Aby upewnić się, że proces przebiega bezproblemowo, PCBGOGO sprawdza, czy Twój plik Gerber jest ważny przed przystąpieniem do płatności. W ten sposób możesz mieć pewność, że Twoja płytka drukowana jest przyjazna dla produkcji i dotrze do Ciebie zgodnie z zaangażowaniem.
Montaż PCB
Po zamówieniu płytki dotarła do mnie po kilku dniach, choć kurier w ładnie oznaczonym, dobrze zapakowanym pudełku i jak zawsze jakość PCB była niesamowita. Udostępniam kilka zdjęć poniższych tablic do oceny.
Włączyłem lutownicę i przystąpiłem do montażu płytki. Ponieważ Footprinty, podkładki, przelotki i sitodruk są idealnie dopasowane do kształtu i rozmiaru, nie miałem problemu z montażem płytki. Deska była gotowa już po 10 minutach od rozpakowania pudełka.
Kilka zdjęć płytki po wlutowaniu pokazano poniżej.
Programowanie Arduino
Teraz, gdy nasz sprzęt jest gotowy, przyjrzyjmy się programowi, który należy załadować na naszą płytkę Arduino. Zadaniem kodu jest odczytanie danych z czujnika magnetometru QMC5883L i zamiana ich na stopnie (od 0 do 360). Gdy już znamy stopień, włączamy diodę LED wskazującą określony kierunek. Kierunek, którego użyłem w tym programie, to północ. Więc niezależnie od tego, gdzie się znajdujesz, na twojej płycie będzie świecić tylko jedna dioda LED, a kierunek diody będzie wskazywał kierunek PÓŁNOCNY. Kiedyś można było później obliczyć, że drugi kierunek jest znany.
Pełny kod tego projektu cyfrowego kompasu można znaleźć na końcu tej strony. Możesz przesłać go bezpośrednio na swoją tablicę po dołączeniu biblioteki i jesteś gotowy do pracy. Ale jeśli chcesz wiedzieć