Tracker APRS do samochodu - Wersja do druku +- HomeMade (http://sp-hm.pl) +-- Dział: Urządzenia UKF (/forum-59.html) +--- Dział: APRS (/forum-90.html) +--- Wątek: Tracker APRS do samochodu (/thread-2082.html) Strony: 1 2 |
Tracker APRS do samochodu - SQ2PPJ - 17-07-2014 11:42 Witam, Jakiś czas temu zainteresowałem się APRS-em. Z racji tego, że pracuje głównie w pasmach VHF/UHF i bardzo często w samochodzie postanowiłem zrobić sobie Tracker APRS-u właśnie do samochodu. Oczywiście zaczęło się od APRSdroida zainstalowanego na smartfonie, a później tablecie podłączonym do radiotelefonu TYT TH-UVF9D. Działało ale 5W nawet z zewnętrzną anteną miało "dziury" w śledzeniu pojazdu na aprs.fi. Postanowiłem zmienić TYT-a - na Motorolę MaxTrac300 25W na wyjściu. Wstępny projekt polegał na zrobieniu układu sterującego ptt w momencie pojawienia się sygnału w APRSdroidzie, ponieważ nie ma on takiej funkcjonalności. Doszedłem jednak do wniosku, że jak już mam coś "lutować" to może zrezygnować z telefonu i zrobić to od początku do końca. Może kogoś zainteresują moje dotychczasowe prace: Z racji tego, że nie jestem jakimś wytrawnym elektronikiem mój wybór na czas przygotowywania prototypu padł na ARDUINO. Docelowo projekt ma zostać przeniesiony na płytkę własnego projektu z ATMEGą 328 taką jak w ARDUINO. Lista sprzętu: ARDUINO UNO - mózg systemu Moduł GPS FGPMMOPA6C - pozycjonowanie GPS LCD 2x16 I2C - wyświetlacz LCD wysterwany po I2C Dodatkowo ogromnym ułatwieniem była biblioteka QAPRS stworzona przez kolegę SQ5RWU wysyłająca dane APRS już w enkapsulacji ax.25. Najprostszy układ do wysyłania danych w formacie APRS przedstawia schemat poniżej. Oczywiście zamiast głośnika podłączamy wejście audio radiotelefonu, a zamiast diody LED - tranzystor sterujący PTT. Który w połączeniu z przykładowym kodem z biblioteki: Kod: /* Daje możliwość wysłania ramki APRS. Na chwilę obecną podłączyłem moje ARDUINO z GPS-em i modułem LCD. Efekt widoczny na zdjęciu poniżej: Moduł GPS podłączony "na szybko", bez baterii podtrzymania, na zrobionej "na szybko" płytce i okrutnie "obsmarkane" lutownicą transformatorową (wiem, że nie ma się czym chwalić, ale docelowo postaram się, żeby wyglądało lepiej): W tej chwili moduł GPS jest przenoszony na docelową płytkę: Moduł GPS jest realizowany na zewnętrznej płytce, aby można było go umieścić w miejscu, gdzie bez problemu będzie się "fix-ował". Przede mną jeszcze kawałek drogi, ale myślę, że powinno się udać. W miarę postępu prac postaram się uzupełniać wątek. RE: Tracker APRS do samochodu - SQ9MDD - 20-07-2014 22:05 Super sprawa będę kibicował twojemu projektowi. Myślisz o jakiejś komunikacji z PC? Wiesz jakaś konfiguracja trakera z dedykowanej aplikacji? Tak by "enduser" nie musiał się w kodzie grzebać. Bardzo chętnie w tym pomogę RE: Tracker APRS do samochodu - SQ2PPJ - 21-07-2014 10:55 Prace nad projektem trwają - z racji bardzo ograniczonego czasu progres będzie powolny: GPS został już przeniesiony na nową płytkę i trochę mniej "obsmarkany" "Pinologia": GND TX RX LED VCC Zastanawiam się jeszcze nad zmianą gold pinów na kątowe, aby przy połączeniu bez przewodów płytkę można wpiąć bezpośrednio w płytkę główną. Cytat:Super sprawa będę kibicował twojemu projektowi. Myślisz o jakiejś komunikacji z PC? Wiesz jakaś konfiguracja trakera z dedykowanej aplikacji? Tak by "enduser" nie musiał się w kodzie grzebać. Bardzo chętnie w tym pomogę Wink Witaj, Dzięki za kibicowanie i oferowaną pomoc - przyda się bo czasu do pracy nad projektem BARDZO mało - może mnie to trochę zmotywuje Jeśli chodzi o software do komunikacji to na razie skończyło się na myśleniu. Nie za bardzo wiem - jak można z programu ustawić zmienną tak, aby po odcięciu i ponownym podaniu zasilania dane nie uległy "zapomnieniu". Wydaje mi się, że sensownym rozwiązaniem była by - karta SD. Wkładamy do PC - wpisujemy odpowiednie parametry, przekładamy do APRS-u i jest OK. Drugi wariant jaki rozpatrywałem to komunikacja po BT. Mam moduł BT do arduino dokładni taki: I zastanawiałem się nad stworzeniem aplikacji na ANDROIDA za pomocą MIT APP INVENTOR 2 tak, aby z telefonu lub tabletu można było po BT "zaprogramować" konfigurację na karcie SD. Pozwoliło by to na wygodną pracę w warunkach moblinych, a dla osób, które nie używają urządzeń "ANDROIDOWYCH" pozostawał by sposób z komputerem i przekładaniem karty SD. Niemniej, te rozważania się na razie drugoplanowe - na chwilę obecną chciałbym przenieść projekt z płytki prototypowej na laminat i uruchomić w wersji "nieprogrmowalnej". RE: Tracker APRS do samochodu - SQ9MDD - 21-07-2014 18:22 Komunikacja po BT i zmiana ustawień super sprawa Co do samego zapisu ustawień w pamięci to masz do dyspozycji 1024bajty pamięci EEPROM a to jak na potrzeby trakera masa miejsca. W wątku o programowaniu procesorów wsadziłem pliki APRS Platform, tam wszystkie ustawienia trzymam w eepromie. Podejrzyj sobie jak to jest robione... RE: Tracker APRS do samochodu - SQ2PPJ - 22-07-2014 8:55 No dobra, przyznam że mnie zmotywowałeś i programowanie po BT będę implementował na obecnym etapie prototypowym. Na razie powstanie aplikacja na ANDROIDA (bo to mam już na 90% opracowane na potrzeby innego projektu) - później pomyślę też nad aplikacją na PC. Po zagłębieniu się w dokumentację modułu BT HC-05 dokopałem się, że pin 32 (LED2) to pin wysterowujący diodę w przypadku sparowania urządzenia. Więc planuje wykorzystać stan wysoki pinu 32 aby za pomocą funkcji attachInterrupt() wymusić na urządzeniu przejście w "tryb programowania" i zapisanie danych do EEPROM-u. Na wyjściu z trybu programowania planuje resetować ARDUINO, żeby w void SETUP zaczytywał nowe dane z EEPROM-u. RE: Tracker APRS do samochodu - SQ9MDD - 22-07-2014 12:32 Możesz tak ale nie musisz. Ten procek ma 16MHz zegar więc i tak większość czasu to się nudzi czekając na zajęcie. Spokojnie możesz napisać procedury zmieniające dane w eeprom podczas jego normalnej pracy. Jest to o tyle wygodne że możesz też sterować trakerem w locie prosto z portu rs/bluetooth, podglądać sobie na tym porcie co robi traker itd... RE: Tracker APRS do samochodu - SQ2PPJ - 29-07-2014 9:24 Mam pewien problem z odczytem danych z GPS-u. Jeśli dane z GPS-u odczytam bezpośrednio na Serial to dostaje czytelny przekaz NMEA: Kod ARDUINO: Kod: #include <SoftwareSerial.h> W odpowiedzi na serial monitorze dostaje dane w postaci: Cytat:$GPGSA,A,3,24,26,28,12,15,18,22,,,,,.22,N,0.41,K,A*34 Jeśli natomiast próbuje odczytać te dane do zmiennej, tak aby je potem obrobić, to niestety dane są mocno "pocięte". Kod: #include <SoftwareSerial.h> I wyglądają mniej więcej tak: Cytat: GPGGA,072234.000,5428.5814,N,01822.3484,E,1,8,0.91,159.7,M,34.0,M,,*50 Czy jest jakiś sposób na zsynchronizowanie odczytu danych z portu szeregowego ? RE: Tracker APRS do samochodu - SP9MRN - 29-07-2014 17:50 1. Ja czytam do tablicy a nie do stringa - tyle, że moje dane są krótsze 2. Czy twoja biblioteka software serial to jest ten "newsoftserial" ? Ja tak czytam serial - catread() jest wywoływany przez: "if (Serial.available() > 0){ catread(); }" które jest w main loop a samo czytanie wygląda tak: void catread(){ incoming = Serial.read(); delay(3); if (incoming == 254) { incoming=Serial.read(); delay(3); if (incoming == 254){ //display.print(incoming); display.display(); delay(3); buffget[0] = 0; CTi=0; do{ incoming=Serial.read(); delay(3); buffget[CTi]=incoming; //display.print (buffget[CTi]); display.print(" "); CTi++; } while(incoming!=253); //dopóki nie przyjdzie FD delay (5); } } //**********o co chodzi loggerowi?*************** switch (CTi){ case 4: CATpoll_in(); break; case 5: //CATselsctVFO A/B(); break; case 6: CATsetmode(); break; case 9: CATsetfreq(); break; } //Serial.print("cti-="); //Serial.println(CTi,HEX); } //Koniec CAT Może to cię naprowadzi na coś co pomoże MAc mrn PS. CTi jest do sprawdzenia długości rozkazu, sprawdzanie jego zawartości jest dalej PS2 czemu używasz softseriala a nie hardwarowo? RE: Tracker APRS do samochodu - SQ2PPJ - 30-07-2014 10:43 Po małych przeróbkach kod wygląda tak: Kod: #include <SoftwareSerial.h> A dane wyjściowe -tak: Cytat:$GPGGA,081849.000,5428.5809,N,01822.3485,E,1,8,0.95,165.6,M,34.0,M,, Odczyt z GPS-u uznaje tymczasowo za zamknięty, choć nie jestem z niego w 100% zadowolony - zdecydowałem się korzystać z łańcucha GPGGA, ponieważ z GPRMC nadal mam problemy. Pętla while zastosowana w programie "wrzuca" do string-a tylko taki fragment danych: Cytat:$GPGGA,083936.000,5428.5816,N,01822.3504,E,1,7,1.04,164.7,M,34.0,M,,*50Mimo, że pełne dane wyglądają tak: Cytat:$GPGGA,070017.000,5428.5821,N,01822.3515,E,1,7,0.99,162.6,M,34.0,M,,*50 Niemniej dane z łańcucha GPGGA są dla mnie, na tę chwilę, wystarczające dla osiągnięcia zamierzonego celu, więc dalsze testy spycham na razie na dalszy plan. Dodałem obróbkę danych i w tej chwili wygląda to tak: Kod: #include <SoftwareSerial.h> I na serial monitor wysyłane są dane w postaci: Cytat:Time: 9:51:48 RE: Tracker APRS do samochodu - SP9MRN - 30-07-2014 12:00 ładnie zrobione ;-) MAc mrn |