MinimOSD dla eLeReS AutoPilot

czyli cała reszta elektroniki - jak OSD, Autopiloty, itp

Moderatorzy: moderatorzy2014, moderatorzy

Awatar użytkownika
mkrawcz1
Posty: 1772
Rejestracja: piątek 18 lut 2011, 11:38
Lokalizacja: Warszawa-Wilanów

Post autor: mkrawcz1 »

3M :-)
Doświadczenie - wiedza, którą zdobyłeś tuż po tym, kiedy była ci najbardziej potrzebna...
Awatar użytkownika
pma_
Posty: 4658
Rejestracja: sobota 08 maja 2010, 09:43
Lokalizacja: Gliwice/Katowice

Post autor: pma_ »

Jak zrobisz protokół od Remzibiego to jest zaimplementowany w wersji dla MatrixPilota :)
Podeślę ci majlem co jest obsługiwane :)
samolot max 4579/1293 analog, DJI do końca zasięgu :)
coper max 1729(na 5.8)
Awatar użytkownika
Rurek
Posty: 16419
Rejestracja: środa 10 mar 2010, 15:21
Lokalizacja: AIP ENR 5.5 - AAA 153 :-)

Post autor: Rurek »

Trzeba jeszcze Misiowi podrzucić minima :-) Chociaż pewnie w pierwszym odruchu by go ciepnął przez okno ;-)
A widzisz Mis że też nie dałem Ci sztuki jak była okazja :-/
infekcja FPV postępuje w zastraszającym tempie...
Awatar użytkownika
miś
Posty: 9242
Rejestracja: niedziela 07 lut 2010, 15:24
Lokalizacja: Bytom

Post autor: miś »

pma_ pisze:Jak zrobisz protokół od Remzibiego to jest zaimplementowany w wersji dla MatrixPilota :)
Podeślę ci majlem co jest obsługiwane :)
Będzie bida... Tak na szybko dopisałem co nieco do wysyłania w swoim formacie i z ostatniego kilobajta miejsca we flashu zostało 400 bajtów. Tak że ze strony AP nie mam możliwości poszaleć i dostosowywać się do formatu innych OSD. Pozostaje zrobienie specjalizowanego softu dla OSD.
Pzdr. -----MIŚ-----
Awatar użytkownika
pma_
Posty: 4658
Rejestracja: sobota 08 maja 2010, 09:43
Lokalizacja: Gliwice/Katowice

Post autor: pma_ »

Ten od Remzibiego jest prosty, jak się nie uda to dopiszę kolejny parser :) Tylko hmmm kiedy
samolot max 4579/1293 analog, DJI do końca zasięgu :)
coper max 1729(na 5.8)
Awatar użytkownika
miś
Posty: 9242
Rejestracja: niedziela 07 lut 2010, 15:24
Lokalizacja: Bytom

Post autor: miś »

pma_ pisze:Tylko hmmm kiedy
Jutro ? :mrgreen:
Tu masz protokół:

Kod: Zaznacz cały

void osd_send(void)
{
	USART_Transmit('$');							//Naglowek ($o) - małe o
	USART_Transmit('o');
        crc = 1;
	//odtąd kodowane w HEX (bajt to 00-FF) - przy wielobajtowych najpierw najmlodszy bajt czyli 0x3C3456FE wysyłane jako string "FE56343C"
	uart_send32(latitude);							//LAT 10e6 deg, 32bit signed
	uart_send32(longitude);							//LON 10e6 drg, 32bit signed
	uart_send16((int16_t)(wysokosc_npm-HomeAlt));	//wysokosc relatywna w metrach, 16bit signed
	uart_send16(kurs);								//kurs lotu w stopniach (0..359), 16bit unsigned
	uart_send16(GPS_distanceToHome);				//odleglosc od domu w metrach, 16bit unsigned
	uart_send16(GPS_direction);						//kurs do domu w stopniach (-180..+180), 16bit signed
	USART_HexByte(predkosc);						//predkosc w km/h, 1 bajt
	USART_HexByte(sat_no | (GPS_FIX_HOME<<7) | GPS_FIX<<6));		//ilośc satelit + bit6 oznacza że jest FIX, bit7 oznacza zapisanie bazy, 1 bajt
	USART_HexByte(hdop);							//hdop, 1 bajt w 0.1 (0.1-25.5)
	USART_HexByte(CurrentMode | (armed<<4) | (THR_BELOW_MIN<<5));			//tryb lotu - 0=Manual, 1=ACRO, 2=LEVEL, 3=ALTHOLD, 4=RTH, 5=POSHOLD, 6=RTH_DSC, 7=FAILSAFE, | 0x10=ARMED | 0x20=THROTTLE powyżej 0, - 1 bajt
	USART_HexByte(RSSI);								//RSSI (0-100), 1 bajt
	USART_HexByte(BATT_VOLT);						//Napięcie w 0.1V, 1 bajt
	uart_send16(CURRENT);							//Prąd w 0.1A, 16bit unsigned
	uart_send16(angle[PITCH]);						//Pitch w 0.1 stopnia, 16bit signed
	uart_send16(angle[ROLL]);						//Roll w 0.1 stopnia, 16bit signed
	uart_send16(pressure);                             //cisnienie w 0.01mBar - 50000 - 16bit insigned (50000 = 1000mBar)
    USART_HexByte(RC_CHANS_STATE);    			    // stan kanalow RC od 7-10 - po dwa bity na kanał, 00=Srodek, 01=Min, 10=Max, najstarsze bity=CH7, najmlodsze=CH10 - 1 bajt
    USART_HexByte(THEMP);							//Temperatura w stopniach + 90 (0 stopni = 90)
    USART_HexByte(256-crc);                         // crc, po prawidlowym odbiorze paczki musi wynosic 0
	// koniec kodowania w hex - razem 32 bajty czyli 64 znaki ASCII
	USART_Transmit(13);								//CR LF - koniec paczki
	USART_Transmit(10);
}
Aktualizacja protokołu
RSSI: najstarszy bit (czyli 0x80) sygnalizuje prędkość powyżej 255km/h. Czyli RSSI robimy & 0x7F, oraz jeśli (RSSI & 0x80)==0x80 to predkosc = 256+predkosc.
Tryb lotu: ustawienie bitu 6 ( | 0x40) oznacza że chwilowo zablokowano trzymanie wysokości z powodu wychylenia drążka PITCH - u mnie na OSD miga AH - AltHold chwilowo zawieszony.

Chyba o niczym nie zapomniałem... :-P
CRC liczone jako dodawanie każdego wysyłanego bajta danych (bez nagłówka i CRLF) do CRC (modulo 256).
Przy odbiorze dodanie do siebie wszystkich bajtów (wraz z bajtem CRC) plus początkowe 1 musi dać wynik 0.

Całość wysyłana 10x na sekundę od momentu prawidłowego zainicjowania GPS'a. UART na 38400baud oczywiście. No i będzie działać niezależnie od tego czy GPS to NMEA czy UBLOX.
Ostatnio zmieniony poniedziałek 29 gru 2014, 18:15 przez miś, łącznie zmieniany 10 razy.
Pzdr. -----MIŚ-----
Awatar użytkownika
pma_
Posty: 4658
Rejestracja: sobota 08 maja 2010, 09:43
Lokalizacja: Gliwice/Katowice

Post autor: pma_ »

Nie odbiega to za bardzo od tego co już jest ;)
samolot max 4579/1293 analog, DJI do końca zasięgu :)
coper max 1729(na 5.8)
Awatar użytkownika
miś
Posty: 9242
Rejestracja: niedziela 07 lut 2010, 15:24
Lokalizacja: Bytom

Post autor: miś »

Ok, koncepcja przetestowana. Działa. GPS olewa tą transmisję, testowałem na Glonasie MTK oraz na UBLOX'ie. Tak więc jak ktoś napisze parser danych do OSD to będzie można podpiąć takowe OSD do eleres AP. Przekazywane są praktycznie wszystkie dostępne dane włącznie z horyzontem, RSSI, napięciem baterii, prądem z czujki prądu, trybami lotu, danymi z GPS, a nawet HDOP GPS'a jakby ktoś bardzo tego potrzebował.
Pzdr. -----MIŚ-----
Awatar użytkownika
pma_
Posty: 4658
Rejestracja: sobota 08 maja 2010, 09:43
Lokalizacja: Gliwice/Katowice

Post autor: pma_ »

Lenistwo jest motorem postępu



To jest z symulatora więc nie do końca uda to realny latawiec.

Potrzebny jest odważny do sprawdzenia :) Główny potencjalny problem to strzałki i kurs.

Używa się tego genialnie prosto, pobieramy GUI (CT Tool) od minimOSD extra, wgrywamy hex'a FontUpload.hex i fonty, potem wgrywamy normalnego hexa, ustawiamy layout i tyle.

https://code.google.com/p/minimosd-extra/downloads/list
samolot max 4579/1293 analog, DJI do końca zasięgu :)
coper max 1729(na 5.8)
Awatar użytkownika
pma_
Posty: 4658
Rejestracja: sobota 08 maja 2010, 09:43
Lokalizacja: Gliwice/Katowice

Post autor: pma_ »

miś pisze:Wydzieliłem.
Wywody na temat minima do eLeReSa są tu: http://rc-fpv.pl/viewtopic.php?t=22583
No i nie przeniosłeś najważniejszej części :) czyli mojego posta
samolot max 4579/1293 analog, DJI do końca zasięgu :)
coper max 1729(na 5.8)
Awatar użytkownika
miś
Posty: 9242
Rejestracja: niedziela 07 lut 2010, 15:24
Lokalizacja: Bytom

Post autor: miś »

pma_ pisze:No i nie przeniosłeś najważniejszej części :) czyli mojego posta
Przecież tam dales linka do oryginalnego softu dla minima z MavLinkiem, więc toto nie będzie działać z AP.
Pzdr. -----MIŚ-----
Awatar użytkownika
pma_
Posty: 4658
Rejestracja: sobota 08 maja 2010, 09:43
Lokalizacja: Gliwice/Katowice

Post autor: pma_ »

miś pisze:
pma_ pisze:No i nie przeniosłeś najważniejszej części :) czyli mojego posta
Przecież tam dales linka do oryginalnego softu dla minima z MavLinkiem, więc toto nie będzie działać z AP.
Moja culpa zapomniałem link do hex'ów i fontów, o ja nie powiem co jestem :oops:


Tu ejst wszystko co trza

https://www.dropbox.com/sh/334g9caxy1cu ... AxB2a?dl=0
samolot max 4579/1293 analog, DJI do końca zasięgu :)
coper max 1729(na 5.8)
Awatar użytkownika
miś
Posty: 9242
Rejestracja: niedziela 07 lut 2010, 15:24
Lokalizacja: Bytom

Post autor: miś »

No, myślę że dobrze poprzenosiłem.
Ciekawe co z tego będzie :-)
Pzdr. -----MIŚ-----
kabanosik
Posty: 105
Rejestracja: niedziela 15 kwie 2012, 17:40
Lokalizacja: Świnoujście

Post autor: kabanosik »

Chętnie w wolnej chwili potestuję bo leży na półce złożony model właśnie na AP Eleres z podpiętym minimOSD.
Jak w tej wersji softu podpiąć fizycznie minima jak w eleresie mam wpięty MPU i GPS ?
Co prawda minim daje radę na sofcie "samodzielne OSD" ale jeśli Miś macza w czymś łapy to już mi się podoba :)
Awatar użytkownika
miś
Posty: 9242
Rejestracja: niedziela 07 lut 2010, 15:24
Lokalizacja: Bytom

Post autor: miś »

Wystarczy przepiąć linię RX od minima z pinu RX eleresa na pin TX. Dane do OSD zaczynają lecieć dopiero wtedy jak eleres zainicjuje GPS'a, czyli jak zacznie mrugać zielona dioda na eleresie.
Daj mi na PW swój email to poślę Ci soft AP do testów.
Oczywiście jakby było coś nie halo, to przepinając ten jeden przewód, i wracając z softem minima do starego wrócisz do aktualnego stanu. Softu w eleresie nie będziesz musiał cofać.
Pzdr. -----MIŚ-----
ODPOWIEDZ