Skocz do zawartości

Arduino GPS speedometer RC do pomiaru prędkości maksymalnej.


maxiiii
 Udostępnij

Rekomendowane odpowiedzi

kiedyś próbowałem swoich sił w programowaniu w środowisku arduino ale trwało to ok 2 tyg. A potem już mi się odechciało:)

Ostatnio czekając na części od naszych przyjaciół z daleka z ciekawości postanowiłem zmontować sobie małe urządzenie jakim jest speedometer czyli po Polskiemu  prędkościomierz. Sam pomiar prędkości nie jest mi potrzebny ale miło by było zobaczyć z jaką prędkością maksymalną lata mój model czy jaką będzie miała predkość moja łódka.  

 

Tak się zawziąłem, :) że po kilkunastu godzinach powstał nowy projekt. Oczywiście większość kodu ściągnięta została z internetu. Ale i tak jestem z siebie dumny, że zrobiłem aż tyle :)

 

Miernik mierzy tylko i wyłącznie maksymalną prędkość jaką uzyskuje model. Przedstawiona jest na wyświetlaczu oled.

Zastosowałem gps ublox 7n i przestawiłem częstotliwość odświeżania na 10 hz.

 

Czyli prędkość mierzona jest 10 razy na sekundę. W tej wersji zastosowałem zewnętrzne zasilanie 5-12V. W kolejnej będzie już wewnętrzne.

Pomiar może być dokonywany dopiero po uzyskaniu danych z min 7 satelit. Prędkość mierzona w km/h. 

Dodatkowo na wyświetlaczu dodałem dokładność pomiaru ale jest w tej chwili w liczbach całkowitych bo nie potrafię sobie dać radę z zmiennymi float. :(

Pomiar prędkości został sztucznie ograniczony do wartości pomiędzy 10-180 km/h. Tyle chyba wystarczy.

 

Fakt że jeszcze nie sprawdzałem działania w modelu Rc ale po teście w samochodzie jestem z niego zadowolony i najprawdopodobniej spełni swoje zadanie.

Być może zastąpi nawet radary :)

 

Filmik z działania na stole:

 

 
 
 

post-7189-0-88234100-1520103231_thumb.jpg

post-7189-0-41326000-1520104527_thumb.jpg

post-7189-0-51244600-1520104539_thumb.jpg

post-7189-0-78459100-1520104556_thumb.jpg

post-7189-0-37706600-1520104583_thumb.jpg

post-7189-0-41781300-1520104603_thumb.jpg

  • Lubię to 2
Odnośnik do komentarza
Udostępnij na innych stronach

Postaw mi kawę na buycoffee.to

Czy jest filtr Kalmana? Mam nadzieję że nie jest brana prędkość z GPS tak po prostu, bo wtedy by się okazało że SkyEye lata 200 km/h. Skoro i tak używasz kontrolerów, to czy nie lepiej wziąć z nich te dane? Są tam elegancko przefiltrowane, a patrząc na wykresy prędkości i pozycję na mapie można sobie przypomnieć skąd wiał wiatr :)

Odnośnik do komentarza
Udostępnij na innych stronach

Noo, Panie Marku  :) ...

Gratuluję inicjatywy, chęci i efektu. Malutki jest, fajny. To nic, że z pierwszego strzału niedoskonały, jakby tego oczekiwali niektórzy obserwatorzy... Ale o czym by wtedy napisali ? A tak, podpowiedzą, naprowadzą, ułatwią i może da się jeszcze ulepszyć. Normalny proces, ważne, że się chciało zacząć i skończyć z jakimś użytecznym efektem  :)

Zawsze popierałem i będę popierał takie inicjatywy  ;).

Szacun !

Odnośnik do komentarza
Udostępnij na innych stronach

Czy jest filtr Kalmana? ..............................................................to czy nie lepiej wziąć z nich te dane? .......

W tym projekcie nie mam filtru kalmana za to zastosowałem podwójny filtr marka. 

 

Co do zastosowania FC to nie we wszystkich modelach takie coś jest wskazane.

 

 

Malutki jest, fajny. To nic, że z pierwszego strzału niedoskonały, 

 

Ten prędkościomierz jest już dopracowany. Kilkanaście godzin spędzonych przy nim zrobiło swoje. Problem mam jeszcze tylko z wyświetlaniem parametru dokładności ze względu na typ zastosowanych zmiennych. Nie mogę przedstawić wartości po przecinku i tak przy dużej ilości satelit wyświetla dokładność "0". Co nie jest prawdą algorytm jeszcze nie pozwala na pokazanie wartości np "0,5" i pokazuje ją jako "0". Samo wyświetlanie nie ma znaczenia i nie ma wpływu na rzeczywistą dokładność. Jest to tylko wartość informacyjna.

Maksymalna możliwa dokładność obliczenia prędkości w ublox 7n zgodnie z dataszetem wynosi 0,1. Proste radary mają dokładność rzędu 1. Zobaczymy czy skórka warta jest wyprawki:)

 

Dodatkowo w standardzie gps na kości 7n sprzedawany jest z odświeżaniem jeden raz na sekundę w zastosowanym algorytmie zmieniam na dziesięć razy na sekundę co powoduje zwiększenie dokładności wskazań. 

Na koniec zostanie jeszcze porównanie jego wskazań do wskazań z innych urządzeń.

Odnośnik do komentarza
Udostępnij na innych stronach

Projekt chyba już ukończony. Poprzednia wersja została rozszerzona o pomiar maksymalnej wysokości npm, więc może być także zastosowana w samolotach.

Można by było rozszerzyć pomiar o pomiar napięcia i prądu ale zbyt by to skomplikowało urządzenia z samej idei ma być bardzo proste.

Zastosowałem tylko arduino pro mini 16mhz na 3,3v, tani gps ublox 7n i prosty wyświetlacz  sdd1306 oled.

Poniżej rozpiska ze znaczeniem poszczególnych wyświetlanych informacji na ekranie oled.

 

Ekran 1.

1 Informacja o uzyskaniu odpowiedniego Fix-a. NO – brak, 3D – 3 współrzędne, 2 x położenie xy plus wysokość.

 

2 dokładność położenia horyzontalnego w metrach (parametr hAcc).

3 Informacja o potrzebie odczekania na odpowiednią ilość odczytanych satelit. ( w tym przypadku 8, parametr numSV). Bez uzyskania odczytu z 8 satelit przejście do ekranu pomiarów jest niemożliwe.

4 Ilość poprawnie odczytanych satelit.

Ekran 2.

Po uzyskaniu odczytu z 8 satelit następuje zmiana ekranu na ekran pomiarowy 2. Ponowna zmiana odczytywanych satelit poniżej 8 nie powoduje powrotu do ekranu 1 (parametr Block)

5 Uzyskana prędkość maksymalna. Zliczanie zaczyna się od uzyskania prędkości 20km/h. Powyżej prędkości 180km/h rejestracja jest wstrzymana. Aby rozpocząć ponowne rejestrowanie prędkości należy przycisnąć przycisk reset na arduino.

6 Dokładność prędkości w km/h (parametr sAcc). Maksymalna dokładność pomiaru w ublox 7n wynosi 0,1m/s czyli 0,36km/h.

7 Maksymalna uzyskana wartość wysokości nad poziomem morza. (parametr hAcc).

8 Dokładność pomiaru wysokości w metrach. (parametr vAcc).

9 Dokładnośc pomiaru położenia horyzontalnego. (parametr hAcc). Na tym ekranie tylko w celach informacyjnych.

10. Ilość dostępnych satelit z których pobierane są dane. Tylko w celach informacyjnych.

 

 

FSR_speedometeralt.zip

 

 

post-7189-0-05306400-1520453057_thumb.jpg

  • Lubię to 2
Odnośnik do komentarza
Udostępnij na innych stronach

Dla zainteresowanych stworzyłem w programie fritzing schemat połączeń. A tak przy okazji to ten program okazał się całkiem ciekawy:). Schemat narysowałem już po 5 minutach po pierwszym uruchomieniu.

W szkicu zmieniłem także sprawdzenie prędkości i przesunąłem do pętli warunkowej. To taka drobnostka.

 

FSR_speedometeralt_14.zip

post-7189-0-52850800-1520598763_thumb.jpg

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...

Dorwałem dwa analogowe czujniki temperatury TMP36 i już są zaimplementowane w kodzie arduino.

Pod A1 i A2 dodałem obsługę maksymalnej uzyskanej temperatury.

Czujniki mogą służyć do pomiaru temperatury maksymalnej silnika, pakietu czy też regulatora.

Taki dodatkowy gaget. :)

Nowa wersja oprogramowania.

speedometer_alt_temp16.zip

 

 

 

post-7189-0-67150600-1521829987_thumb.jpg

post-7189-0-95505100-1521830036_thumb.jpg

  • Lubię to 2
Odnośnik do komentarza
Udostępnij na innych stronach

Fajnie :D. Sam w sumie nie wiem po co, ale zawsze mam chęć poznania maksymalnej prędkości modelu czy wysokości na jakiej latam, a stary telefon nieco za duży i średnio mi się sprawdził ostatnio w modelu airboat'a, bo niestety pokazywał 0... 

Chciałem kiedyś sobie zrobić wysokościomierz opisany tu na forum, ale jakoś nigdy do tego nie doszło. Ale to chyba sobie zrobię :), może dodam też coś w rodzaju logów na kartę pamięci, można by było nawet pokusić się o robienie mapy po współrzędnych, bo gdzieś w pamięci mam takie coś...

Opcja z temperaturami też super :).

Odnośnik do komentarza
Udostępnij na innych stronach

Projekt chyba już ukończony. Poprzednia wersja została rozszerzona o pomiar maksymalnej wysokości npm, więc może być także zastosowana w samolotach.

Można by było rozszerzyć pomiar o pomiar napięcia i prądu ale zbyt by to skomplikowało urządzenia z samej idei ma być bardzo proste.

Zastosowałem tylko arduino pro mini 16mhz na 3,3v, tani gps ublox 7n i prosty wyświetlacz  sdd1306 oled.

Poniżej rozpiska ze znaczeniem poszczególnych wyświetlanych informacji na ekranie oled.

 

Ekran 1.

1 Informacja o uzyskaniu odpowiedniego Fix-a. NO – brak, 3D – 3 współrzędne, 2 x położenie xy plus wysokość.

 

2 dokładność położenia horyzontalnego w metrach (parametr hAcc).

3 Informacja o potrzebie odczekania na odpowiednią ilość odczytanych satelit. ( w tym przypadku 8, parametr numSV). Bez uzyskania odczytu z 8 satelit przejście do ekranu pomiarów jest niemożliwe.

4 Ilość poprawnie odczytanych satelit.

Ekran 2.

Po uzyskaniu odczytu z 8 satelit następuje zmiana ekranu na ekran pomiarowy 2. Ponowna zmiana odczytywanych satelit poniżej 8 nie powoduje powrotu do ekranu 1 (parametr Block)

5 Uzyskana prędkość maksymalna. Zliczanie zaczyna się od uzyskania prędkości 20km/h. Powyżej prędkości 180km/h rejestracja jest wstrzymana. Aby rozpocząć ponowne rejestrowanie prędkości należy przycisnąć przycisk reset na arduino.

6 Dokładność prędkości w km/h (parametr sAcc). Maksymalna dokładność pomiaru w ublox 7n wynosi 0,1m/s czyli 0,36km/h.

7 Maksymalna uzyskana wartość wysokości nad poziomem morza. (parametr hAcc).

8 Dokładność pomiaru wysokości w metrach. (parametr vAcc).

9 Dokładnośc pomiaru położenia horyzontalnego. (parametr hAcc). Na tym ekranie tylko w celach informacyjnych.

10. Ilość dostępnych satelit z których pobierane są dane. Tylko w celach informacyjnych.

 

 

attachicon.gifFSR_speedometeralt.zip

Jestem milosnikiem czytania postow z ktorych NIC nie rozumiem  :D .

Nie , nie !!!      To nie Twoja wina Marek ; to ja jestem DEBILEM elektroniczno- komputerowym .......

Odnośnik do komentarza
Udostępnij na innych stronach

Jarek ty się chociaż do tego przyznajesz :)

 

Dzisiaj była odpowiednia pogoda do testów w terenie. Stary wysłużony spitfire znowu poleciał do nieba :)

 

Jeden czujnik temperatury trafił do regulatora a drugi na baterię. 

Wszystko widać na filmie. Wyniki ze speedometru porównałem do logów i okazuje się, że predkość maksymalna i wysokość zgadzają się.

Cel został osiągnięty.

Brawo ja :)

 

Sorry za jakość ale samemu operować aparaturą wyrzucać model i jescze w tym czasie nagrywać nie jest proste :)

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

Jak widać Marku wszystko widać wyśmienicie :)   Cóż, poskładać, poskładam klocki, ale wgranie programu :o ta za dużo na moja głowę. Jeżeli byłaby opcja kupna gotowego produktu, to pewnie tak.  Z taką opcja pewnie byłoby więcej chętnych.

Najważniejsze, czy ty masz czas i chęci...

Odnośnik do komentarza
Udostępnij na innych stronach

Niestety ale nie jest to projekt komercyjny i nie podlega "sprzedawaniu". Dlatego cały kod umieściłem na forum. 

To dopiero początek z moją zabawą w arduino. Kolejnym projektem którym się zajmę będzie półautomatyczna hamownia (taka jak w abcrc:) lub symulator dzwięku do modelu. Jeszcze nie wiem co będzie pierwsze:)

Odnośnik do komentarza
Udostępnij na innych stronach

Ale przecież, żeby wgrać soft, wystarczy wybrać w programie arduino, po wklejenia kodu i wybraniu rodzaju płytki - wgraj program. Do arduino z projektu trzeba tylko kupić adapter fddi. Nie ma żadnej filozofii.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 8 miesięcy temu...

Troszkę drożej ale pewnie - z autopilotem , rurką pitota , modułem gps i mamy wariometr , prędkość modelu , prędkość wiatru, wysokość , napięcie pakietu a to wszystko online , a nawet (przy użyciu odpowiedniej aparatury) głosem (nawet swoim).

Odnośnik do komentarza
Udostępnij na innych stronach

Możesz trochę to rozwinąć?

aparatura turnigy 9xr pro odbiornik frsky dowolny z telemetrią , moduł wariometru , analogowy czujnik napięcia , czujnik temperatury - w tej części na wyświetlaczu aparatury mamy wyświetlane :wysokość , szybkość opadania lub wznoszenia , temperatura w miejscu zainstalowania czujnika , stan pakietu zasilającego , siła sygnału aparatury , czas rzeczywisty , 2 timery , stan wszystkich kanałów oraz każdy z tych parametrów głosowo , A po dołożeniu  apm 2.8 gps , rurka pitota ewentualnie jakieś osd , transmiter i monitor do fpv reszta danych na monitorze . Korzystam z takiego wyposażenia i muszę przyznać że korzystam tylko z niewielu parametrów głównie stan pakietu i wariometr na resztę w sumie niema czasu i potrzeby ale to są moje subiektywne odczucia.

No i zasięg telemetrii taki jak aparatury - nie zdarzyła mi się utrata zasięgu . Komunikaty w 9xr pro można sobie nagrać samemu . A jeżeli chodzi o apm2.8 to uruchamiałem go dzięki Twojej nieocenionej pomocy maxiiii

Odnośnik do komentarza
Udostępnij na innych stronach

 Udostępnij

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.