Serwisy partnerskie:
Close icon
Serwisy partnerskie

Monitor prędkości na bazie GPS. Koniec z mandatami za przekroczenie prędkości

Article Image
Elmax
W Internecie można znaleźć wiele przykładów pokazujących zastosowanie modułu GPS w projektach z mikrokontrolerami. Ale co można zrobić ze współrzędnymi GPS, poza naniesieniem ich na mapę? Chciałem zrobić coś bardziej przydatnego i wymyśliłem ten monitor prędkości wykorzystujący GPS. Urządzenia tego można używać w dowolnym pojeździe, takim jak samochód lub łódź. Pozwala ono na jazdę bez patrzenia na prędkościomierz i bez niemiłych finansowych „niespodzianek” w poczcie.

Prezentowane urządzenie nie jest ogranicznikiem prędkości, który wymagałby dokonania modyfikacji w pojeździe, ale alarmem sygnalizującym osiągnięcie (i przekroczenie) zadanej prędkości. Aby nie absorbować wzroku, urządzenie ma brzęczyk, który wyda dwa długie sygnały dźwiękowe w przypadku przekroczenia wybranej prędkości, natomiast dwa krótkie sygnały dźwiękowe zasygnalizują, że pojazd zwolnił do akceptowalnej prędkości.

Cztery ustawienia wstępne

Monitor prędkości ma cztery programowalne ustawienia ograniczeń prędkości, które powinny wystarczyć w przypadku większości, napotkanych w podróży, przypadków. Co więcej, ekran praktycznie nie pozwala na wyświetlenie więcej niż czterech limitów. Podczas jazdy kierowca powinien mieć możliwość szybkiego wyboru ustawienia wstępnego, w miarę możliwości bez patrzenia na urządzenie. Nie chciałem używać ekranu dotykowego – kierowca powinien fizycznie poczuć naciśnięcie przycisku. Ze względów ergonomicznych przyciski umieszczono nad czterema ograniczeniami prędkości wyświetlanymi na ekranie.

Dobry pretekst, aby spróbować wersji 32-bitowej

Moje pierwsze programy wykorzystujące 8-bitowy mikrokontroler ATmega328 skojarzony z modułem GPS szybko pokazały, że jego 32 kB pamięci flash nie wystarczą do bardziej zaawansowanych aplikacji, szczególnie jeśli dane mają być wyświetlane graficznie na ekranie TFT. Dlatego też, pomimo wielu zalet mikrokontrolera ATmega328, zdecydowałem się przejść na wyższy poziom i wypróbować 32-bitowy mikrokontroler STM32. Najbardziej odpowiednią formą dla majsterkowiczów, takich jak ja, jest płytka BluePill z jej mikrokontrolerem STM32F103C8. Ta niewielka płytka znacznie ułatwia obsługę tego mikrokontrolera. Można ją łatwo zaprogramować poprzez port USB za pomocą Arduino IDE (pod warunkiem, że płytka zostanie wcześniej zaprogramowana za pomocą odpowiedniego bootloadera), jest kompaktowa i niedroga (cena to tylko kilka euro).

Rozmiary pamięci flash

Projekt ten jest pierwszą próbą zastosowania STM32F103C8. Należy zauważyć, że oficjalnie C8 jest wyposażony w 64 kB pamięci flash, podczas gdy wersja CB ma 128 kB, jednak czasami C8 ma aż 128 kB (podrabiane części?). Dzięki temu chętni będą mogli kontynuować naukę poprzez dodanie kolejnych urządzeń peryferyjnych, takich jak karta SD, moduł SIM, transmisja danych drogą radiową itp.

Moduł GPS

Moduł GPS zastosowany w tym projekcie to moduł NEO-6 firmy u-blox. Korzystanie z niego jest łatwe, ponieważ biblioteka TinyGPS+ [2] wykonuje całą pracę polegającą na dekodowaniu strumienia danych w formacie NMEA 0183 wysyłanego przez moduł GPS. Główne dane jakie w ten sposób uzyskujemy to:

  • data i godzina UTC;
  • długość i szerokość geograficzna w stopniach dziesiętnych;
  • prędkość;
  • kierunek;
  • wysokość;
  • liczba widocznych satelitów;
  • wartość HDOP.

Poziome rozmycie precyzji, czyli HDOP [2] zależy od pozycji satelitów widzianych przez odbiornik GPS. Im niższa jest ta wartość (blisko 1), tym lepsza jest precyzja współrzędnych. Wartość HDOP równa 10 wskazuje, że współrzędne nie są zbyt dokładne lub nawet nieprawidłowe. Monitor prędkości nie używa tego parametru.

Wyświetlacz TFT

Jako wyświetlacza użyłem zwykłego modułu TFT 2,2″ z układem sterownika ILI 9341 i interfejsem SPI. Ma rozdzielczość 320×240 pikseli, co w zupełności wystarczy na dane, które chcemy wyświetlić (cztery wartości ograniczenia prędkości z krótkim komunikatem informującym o ewentualnym osiągnięciu (lub przekroczeniu) ograniczenia prędkości prędkości).

Monitor prędkości ma dwa główne tryby prezentacji wyników podczas normalnego użytkowania. Bieżący tryb wyświetlania jest zapisywany w pamięci EEPROM i przywoływany po ponownym włączeniu systemu. Wstępnie ustawione ograniczenia prędkości są również przechowywane w pamięci EEPROM. Używanych jest tylko sześć bajtów tej pamięci EEPROM: cztery bajty na ograniczenia prędkości, jeden bajt na ostatni wybrany ekran i jeden bajt na ostatnio wybrane ograniczenie prędkości.

Aby przeczytać ten artykuł kup e-wydanie
Kup teraz
Firma:
Tematyka materiału: Monitor prędkości z czterema programowalnymi ustawieniami ograniczeń, możliwość rozbudowy o nagrywania na kartę, ekran dotykowy, zmianę jednostek itp.
AUTOR
Źródło
Elektronika dla Wszystkich marzec 2024
Udostępnij
Zobacz wszystkie quizy
Quiz weekendowy
Edukacja
1/10 Jak działa rezystor LDR?
UK Logo
Elektronika dla Wszystkich
Zapisując się na nasz newsletter możesz otrzymać GRATIS
najnowsze e-wydanie magazynu "Elektronika dla Wszystkich"