Spisu treści:

Kompas LED i wysokościomierz: 7 kroków (ze zdjęciami)
Kompas LED i wysokościomierz: 7 kroków (ze zdjęciami)

Wideo: Kompas LED i wysokościomierz: 7 kroków (ze zdjęciami)

Wideo: Kompas LED i wysokościomierz: 7 kroków (ze zdjęciami)
Wideo: Ups. 2024, Listopad
Anonim
Image
Image
Schemat obwodu i PCB
Schemat obwodu i PCB

Obiekty z diodami LED zawsze mnie fascynują. Dlatego ten projekt łączy popularny cyfrowy czujnik kompasu HMC5883L z 48 diodami LED. Umieszczając diody LED w okręgu, dioda, która świeci, jest kierunkiem, w którym zmierzasz. Co 7,5 stopnia zapala się nowa dioda LED, która daje szczegółowe wyniki.

Płyta GY-86 zawiera również czujnik ciśnienia barometrycznego MS5611. Za pomocą tego czujnika można obliczyć wysokość. Ze względu na wysoką rozdzielczość doskonale sprawdza się na wysokościomierzach.

Czujnik MPU6050 na płycie GY-86 ma zarówno 3-osiowy akcelerometr, jak i 3-osiowy żyroskop. Żyroskop może mierzyć prędkość pozycji kątowej w czasie. Akcelerometr może mierzyć przyspieszenie grawitacyjne, a za pomocą matematyki trygonometrii można obliczyć kąt, pod którym znajduje się czujnik. Łącząc dane z akcelerometru i żyroskopu można uzyskać informacje o orientacji czujnika. Można to wykorzystać do kompensacji przechyłu kompasu HMC5883L (do zrobienia).

Krótkie filmy instruktażowe w tej instrukcji szczegółowo wyjaśniają, jak to działa. Procedury kalibracji są zautomatyzowane, więc sukces gwarantowany. Temperatura jest dostępna w stopniach Celsjusza (domyślnie) lub Fahrenheita.

Baw się dobrze !!

Krok 1: Wysokościomierz

Image
Image

Wysokościomierz wykorzystuje czujnik ciśnienia barometrycznego MS5611. Wysokość można określić na podstawie pomiaru ciśnienia atmosferycznego. Im większa wysokość, tym niższe ciśnienie. Podczas uruchamiania wysokościomierz używa domyślnego ciśnienia na poziomie morza 1013,25 mbar. Po naciśnięciu przycisku na styku 21 ciśnienie w Twojej lokalizacji zostanie użyte jako odniesienie. W ten sposób można w przybliżeniu zmierzyć, jaką wysokość ma coś (np. podczas jazdy pod górę samochodem).

W projekcie wykorzystano tak zwaną „wzór hipsometryczny”. Ten wzór wykorzystuje temperaturę do kompensacji pomiaru.

float alt=((powf(źródło / ((float) P / 100,0), 0,19022256) - 1,0) * ((float) TEMP / 100 + 273.15)) / 0,0065;

Więcej na temat wzoru hipsometrycznego znajdziesz tutaj:

Wzór hipsometryczny

Dane kalibracji fabrycznej i temperatura czujnika są odczytywane z czujnika MS5611 i stosowane do kodu w celu uzyskania najdokładniejszych pomiarów. Podczas testu stwierdziłem, że czujnik MS5611 jest czuły na przepływy powietrza i różnice w natężeniu światła. Musi być możliwe uzyskanie lepszych wyników niż w tym filmie instruktażowym.

Krok 2: Części

1 x mikrokontroler Microchip 18f26k22 28-PIN PDIP

3 x MCP23017 16-bitowy ekspander we/wy 28-stykowy SPDIP

48 x diody LED 3mm

1 x moduł GY-86 z czujnikami MS5611, HMC5883L i MPU6050

1 x SH1106 OLED 128x64 I2C

1 x kondensator ceramiczny 100nF

Rezystor 1x100 Ohm

Krok 3: Schemat obwodu i płytka drukowana

Schemat obwodu i PCB
Schemat obwodu i PCB

Wszystko mieści się na jednostronnej płytce drukowanej. Znajdź tutaj pliki Eagle i Gerber, aby zrobić to samemu lub zapytać producenta PCB.

W samochodzie używam Kompasu LED i Wysokościomierza, a jako źródła zasilania używam interfejsu OBD2. Mikrokontroler idealnie pasuje do złącza.

Krok 4: Jak idealnie wyrównać diody LED w okręgu w kilka sekund za pomocą oprogramowania do projektowania PCB Eagle?

Musisz zobaczyć tę naprawdę fajną funkcję w oprogramowaniu do projektowania PCB Eagle, która oszczędza godziny pracy. Dzięki tej funkcji Eagle możesz idealnie ustawić diody LED w kole w ciągu kilku sekund.

Wystarczy kliknąć zakładkę „Plik”, a następnie „Uruchom ULP”. Stąd kliknij „cmd-draw.ulp”. Wybierz „Przenieś”, „krok stopni” i „Okrąg”. Wpisz nazwę pierwszej diody w polu "nazwa". Ustaw współrzędne środka okręgu na siatce w polach „X center coord” i „Y center coord”. W tym projekcie jest 48 diod, więc 360 podzielone przez 48 daje 7,5 dla pola „Krok kątowy”. Promień tego okręgu wynosi 1,4 cala. Wciśnij enter i masz idealny krąg diod LED.

Krok 5: Proces kalibracji kompasu

Image
Image

HMC5883L zawiera 12-bitowy przetwornik ADC, który zapewnia dokładność kierunku w zakresie od 1 do 2 stopni Celsjusza. Ale zanim da użyteczne dane, musi zostać skalibrowany. Aby ten projekt działał płynnie, istnieje metoda kalibracji, która zapewnia przesunięcie x i y. Nie jest to najbardziej wyrafinowana metoda, ale w tym projekcie wystarcza. Ta procedura kosztuje tylko kilka minut i daje dobre rezultaty.

Po załadowaniu i uruchomieniu tego oprogramowania zostaniesz poprowadzony w tym procesie kalibracji. Wyświetlacz OLED poinformuje Cię, kiedy proces się rozpocznie i kiedy się zakończy. Ten proces kalibracji poprosi Cię o obrócenie czujnika o 360 stopni, trzymając go całkowicie płasko (poziomo do podłoża). Zamontuj go na statywie lub czymś w tym rodzaju. Robienie tego przez trzymanie go w dłoni nie działa. Na koniec offsety zostaną zaprezentowane na OLED. Jeśli uruchomisz tę procedurę kilka razy, zobaczysz prawie takie same wyniki.

Opcjonalnie zebrane dane są również dostępne przez RS232 przez pin 27 (9600 bodów). Po prostu użyj programu terminalowego, takiego jak Putty, i zbierz wszystkie dane w pliku dziennika. Te dane można łatwo zaimportować do Excela. Stąd możesz łatwiej zobaczyć, jak wygląda przesunięcie twojego HMC5883L.

Przesunięcia są umieszczane w pamięci EEPROM mikrokontrolera. Zostaną one załadowane przy uruchomieniu oprogramowania kompasu i wysokościomierza, które znajdziesz w kroku 7.

Krok 6: Skompensuj deklinację magnetyczną swojej lokalizacji

Image
Image
Konkurs czujników
Konkurs czujników

Istnieje północ magnetyczna i północ geograficzna (biegun północny). Twój kompas będzie podążał za liniami pola magnetycznego Ziemi, więc wskaż magnetyczną północ. Różnica między północą magnetyczną a geograficzną nazywa się deklinacją magnetyczną. W mojej lokalizacji deklinacja wynosi tylko 1 stopień i 22 minuty, więc nie warto tego rekompensować. W innych lokalizacjach ta deklinacja może sięgać nawet 30 stopni.

Znajdź deklinację magnetyczną w swojej lokalizacji

Jeśli chcesz to skompensować (jest to opcjonalne), możesz dodać deklinację (stopnie i minuty) w pamięci EEPROM mikrokontrolera. W lokalizacji 0x20 możesz dodać stopnie w postaci szesnastkowej ze znakiem. Jest podpisany, ponieważ może to być również deklinacja ujemna. W lokalizacji 0x21 możesz dodać minuty również w postaci szesnastkowej.

Krok 7: Skompiluj kod

Image
Image

Skompiluj ten kod źródłowy i zaprogramuj swój mikrokontroler. Ten kod kompiluje się poprawnie z kompilatorem MPLABX IDE v5.20 i XC8 v2.05 w trybie C99 (włącz katalogi C99). Dostępny jest również plik szesnastkowy, więc możesz pominąć procedurę kompilacji. Upewnij się, że odznaczyłeś pole wyboru "Dane EEPROM włączone", aby zapobiec nadpisaniu danych kalibracji (patrz krok 5). Ustaw programator na 3,3 V!

Podłączając pin 27 do masy, uzyskujesz temperaturę w stopniach Fahrenheita.

Podziękowania dla Achima Döblera za jego bibliotekę graficzną µGUI

Konkurs czujników
Konkurs czujników

Drugie miejsce w konkursie czujników

Zalecana: