LCD88 - elastyczny koder ppm do aparatury

Autorskie projekty naszych użytkowników

Moderatorzy: marbalon, moderatorzy2014, moderatorzy

majek
Posty: 267
Rejestracja: czwartek 20 wrz 2012, 22:38
Lokalizacja: Wrocław
Kontakt:

LCD88 - elastyczny koder ppm do aparatury

Post autor: majek »

Dawno temu jeszcze na forum Alexa powstała idea zrobienia nadajnika z podstawowych 'bloczków' typu dodawanie, mnożenie itp. Czyli definiujemy sobie dowolnie co się dzieje pomiędzy drązkami a tym co koder wygeneruje na wyjściu ppm.

Tak sobie powoli dłubię ten projekt od 2009, mniej więcej od roku jest już używalny (ale raczej jako wersja alfa).
Wersja alfa = działa stabilnie, ale pewne zmiany nie są dostępne jeszcze z menu, a tylko przy pomocy kompilatora :-)
Nadszedł czas się nim pochwalić:-)

Tak wygląda przerobiony nadajnik (jako moduł nadawczy jest FrSky DHT):
Obrazek

Tak działa (uwaga: nudne :-) ):


Strona projektu (w budowie, chwilowo tylko po angielsku): https://majek.sh/lcd88
Tu trochę po polsku jak to działa: https://majek.sh/pl/rc-diy-transmitter/

Kod żródłowy (GPL): https://github.com/majekw/lcd88

Ponieważ na dniach będę przerabiał kolejny nadajnik, to pewnie uda mi się tu powrzucać jak to zrobić ktok po kroku. Mam nadzieję, że nikt mi czerwonego krawata nie będzie tu kręcił za ewentualny post pod postem :-)

Koszt kodera jest śmiesznie niski, bo powinien się zmieścić w $10 kupując gołe moduły u Chińczyków. Procesor i wyświetlacz też zostały wybrane, żeby były tanie i bezproblemowo dostępne. Stąd Arduino Pro Mini ($3), wyświetlacz graficzny 1.8" ($5) i ewentualnie konwerter napięć ($2). Niestety klawiaturę trzeba sobie już samemu sklecić, bo nie jest standardowa (6 mikroprzełączników, 6 diod 1n4148, 3 oporniki 2.2k).

I może z dyskusji uda się jakiś faq sklecić (o ile będą zainteresowani) :-)
Ostatnio zmieniony wtorek 22 maja 2018, 16:09 przez majek, łącznie zmieniany 4 razy.
Awatar użytkownika
Verid
Posty: 13004
Rejestracja: poniedziałek 01 lut 2010, 11:29
Lokalizacja: Mikoszewo

Post autor: Verid »

No, no - zawsze chciałem upchnąć bebechy aparatury do obudowy po game padzie żeby to małe i kompaktowe było. Wygląda na to że doczekałem się bebechów właściwych gabarytów.
:mrgreen: :mrgreen:
Ten wredny...
majek
Posty: 267
Rejestracja: czwartek 20 wrz 2012, 22:38
Lokalizacja: Wrocław
Kontakt:

Post autor: majek »

Jeżeli zmieścisz tam ten wyświetlacz i sam sobie jakoś wydziergasz płytkę pod klawiaturę, żeby się zmieściło, to powinno się udać. Chociaż sam wyświetlacz może być trochę za duży na pada.
Awatar użytkownika
rycerz100
Posty: 992
Rejestracja: piątek 23 gru 2011, 13:08
Lokalizacja: Warszawa

Post autor: rycerz100 »

A ja trochę w druga stronę zapytam ;-)
Da się jakiś sporo większy wyświetlacz zaadoptować ?
Może bym w końcu do walizy wetknął i RC :-P
Mirek
majek
Posty: 267
Rejestracja: czwartek 20 wrz 2012, 22:38
Lokalizacja: Wrocław
Kontakt:

Post autor: majek »

Z tym większym może być problem. Na poczcie czeka na mnie już 2.2" (tylko driver trzeba będzie napisać), ale podejrzewam, że wolałbyś jeszcze większy :-P

Problemy z dużym wyświetlaczem są 2:
- duże wyświetlacze nie istnieją z interfejsem SPI. Interfejs równoległy = inny (droższy) procek mający więcej nóżek = poza celem projektu
- im większa rozdzielczość, tym wolniejsze jest przerysowanie całego wyświetlacza. Obecnie jest to widoczne przy 160x128, przy trochę większym 320x200 przerysowanie będzie trwało 4 razy dłużej i może być wkurzające :-?
Awatar użytkownika
rycerz100
Posty: 992
Rejestracja: piątek 23 gru 2011, 13:08
Lokalizacja: Warszawa

Post autor: rycerz100 »

majek pisze:Z tym większym może być problem. Na poczcie czeka na mnie już 2.2" (tylko driver trzeba będzie napisać), ale podejrzewam, że wolałbyś jeszcze większy :-P
Dobrze myślisz :-)
Był moment kilka miesięcy temu że już chciałem wybebeszyć moją Aurorę ale mnie koledzy powstrzymali :lol:
Problemy z dużym wyświetlaczem są 2:
- duże wyświetlacze nie istnieją z interfejsem SPI. Interfejs równoległy = inny (droższy) procek mający więcej nóżek = poza celem projektu
- im większa rozdzielczość, tym wolniejsze jest przerysowanie całego wyświetlacza. Obecnie jest to widoczne przy 160x128, przy trochę większym 320x200 przerysowanie będzie trwało 4 razy dłużej i może być wkurzające :-?
Mniej więcej rozumiem ;-)
Chyba jednak pozostaje mi kupić jakąś używaną Aurorę i pozbawić ją obudowy.
Dzięki
Mirek
Awatar użytkownika
miś
Posty: 9242
Rejestracja: niedziela 07 lut 2010, 15:24
Lokalizacja: Bytom

Post autor: miś »

majek pisze:przerysowanie będzie trwało 4 razy dłużej i może być wkurzające :-?
Tak żeś się napocił pisząc to w ASM, więc z przerysowywaniem nie powinno być problemu, jeśli tylko będziesz przerysowywał to co się aktualnie zmieniło a nie cały obszar LCD. A że przejście z jednego do innego ekranu w menu będzie trwało 100ms... kogo to... to nie problem.
Pzdr. -----MIŚ-----
Awatar użytkownika
pma_
Posty: 4659
Rejestracja: sobota 08 maja 2010, 09:43
Lokalizacja: Gliwice/Katowice

Post autor: pma_ »

Zadam może i głupie pytanie na co więcej to będzie pozwalać niż er9x?
samolot max 4579/1293 analog, DJI do końca zasięgu :)
coper max 1729(na 5.8)
majek
Posty: 267
Rejestracja: czwartek 20 wrz 2012, 22:38
Lokalizacja: Wrocław
Kontakt:

Post autor: majek »

miś, dokładnie tak robię - czyszczę całość lub przerysowuję tylko jak to niezbędne. Podział ekranu na pasek statusu i resztę też ogranicza trochę obszar przy całkowitym odświeżeniu którejś części.

Ale pamiętaj, że oprócz wyczyszczenia ekranu trzeba później coś na nim narysować, więc czas robi się x2. O ile przy 160x128 nie jest to wielki problem, to te 0.5s dla 320x240 będzie już odczuwalne. Jeżeli byłyby większe rozdzielczości, to już byłoby bardzo wolno.

'Na szczęście' największe fizycznie wyświetlacze z spi jakie są dostępne tanio i bez problemów, to tylko 2.2". Do niedawna w tym rozmiarze były tylko 320x240, ale to się zmieniło i pojawiły się całkiem miłe 176x220, które sa tylko 2x większe pikselowo i na dodatek mają konwerter stanów/napięć na płytce.

Czy tak czy siak, to obydwa 2.2" mam i będę dopisywał ich obsługę :-)
Jak się ma te wyświetlacze na biurku, to korci, żeby to zrobić teraz, ale na razie są ważniejsze rzeczy do dopisania. A obsługa drastycznie innej rozdzielczości wymaga jednak przejrzenia większości kodu, żeby wynieść cały layout 'na zewnątrz'. O ile tekst nie jest problemem, bo się inny font wrzuci i rozdzielczość zostanie zachowana, to rysunki już trzeba będzie miejscami przepisać. To co jest w najbliższej perspektywnie do zrobienia można zobaczyć tu: https://github.com/majekw/lcd88/issues

Co do 'pocenia' się w asm, to na atmele zawsze tak pisałem :-) Poza tym była to pewnego rodzaju chęć pokazania, że da sie zrobić takie coś i na dodatek zmieścić się w 8KB :mrgreen:
Ostatnio robiłem podejścia, żeby zrobić z tego mix asm+C, ale to grubsza robota. Chciaż na obecnym etapie mogłaby byc pomocna, za to za chwilę przestałbym się mieścić nawet w tych 32KB :-P

Przy okazji dzięki Twojej uwadze zajrzałem w fukncję wysyłająca po spi i lekko ją 'podrasowałem'/naprawiłem :-)

pma_ pisze:Zadam może i głupie pytanie na co więcej to będzie pozwalać niż er9x?
Na wszystko :-)
Nie jesteś ograniczony mikserami i ilością stopni ich zagnieżdżenia - można napisać dowolną funkcję definiującą co ma być i jak przeliczone. Zobacz opis 'bloczków' tutaj: https://majek.sh/pl/rc-diy-transmitter/
Nie żeby to był ideał :-) Swoje ograniczenia też będzie miał (liczba bloczków, modeli, wykorzystanie WSZYSTKICH pinów procka bez zapasu na coś nowego itp.)

Jeszcze jedna różnica do er9x - cena i dostępność hardware. Jeżeli nie masz fizycznie 9x, to sens dziergania płytki na starej Atmega64 i wyświetlaczu mono jest kosztowo wątpliwy w porównaniu do lcd88 i na dodatek trudny dla kogoś, kto nie robił wcześniej płytek. Przy lcd88 jedyną rzeczą jaką sam musisz zrobić, to klawiatura. Precyzji to nie wymaga, a jak się uprzeć, to i na pająka można to zrobić. Cała reszta jest dostępna jako gotowe moduły.

No i jeszcze jedna różnica: er9x działa dla przeciętnego zjadacza chleba, lcd88 jeszcze nie doszedł do takiego etapu, więc tu jest minus po mojej stronie.

Czyli jak już masz 9x, to wgraj er9x. Jeżeli i tak wywalasz wszystkie bebechy, to można zastanowić się nad lcd88.
Ostatnio zmieniony wtorek 22 maja 2018, 16:09 przez majek, łącznie zmieniany 1 raz.
Awatar użytkownika
pma_
Posty: 4659
Rejestracja: sobota 08 maja 2010, 09:43
Lokalizacja: Gliwice/Katowice

Post autor: pma_ »

Wiesz, jakiś czas temu powstał Zbigowy modulator, do dziś mam z nim radio (to było bardzo klasyczne podejście), pakowało się to do starego radia z dołożonym modułem.
Z powodu cen miało to sens.
Dziś to chyba ma to sens tylko i wyłącznie jako hobby i to też jest ok :)
samolot max 4579/1293 analog, DJI do końca zasięgu :)
coper max 1729(na 5.8)
majek
Posty: 267
Rejestracja: czwartek 20 wrz 2012, 22:38
Lokalizacja: Wrocław
Kontakt:

Post autor: majek »

pma_, tak, to jest hobby :-)

Ostatni 'skok' w funkcjonalności zrobiłem 1.5 roku temu, dopisałem to co mi było potrzebne do używania i zacząłem używać.
Teraz muszę zrobić kolejny nadajnik i pewne rzeczy też muszę tam dodać. A jak już odkopuję projekt to można się nim przy okazji pochwalić :-P . To też daje 'kopa', żeby dorobić dokumentację, poznać punkt widzenia i ewentualne wymagania innych co do takiego projektu.

No i np. jedna uwaga Misia skłoniła mnie do zajrzenia do 5 letniego fragmentu kodu, który można było jescze łatwo przyspieszyć/poprawić (w sumie byłem na 100% pewny, że to poprawiłem dawno temu).

Generalnie dla mnie same plusy (motywacja, wyłapanie błędów), a może przy okazji jeszcze ktoś skorzysta.
Awatar użytkownika
remick
Posty: 303
Rejestracja: czwartek 18 kwie 2013, 14:34
Lokalizacja: daleka północ

Post autor: remick »

Kurde majek, wiedziałem, że ty to z tych co lubią dłubać w kodzie (jeszcze z czasów rex'a) no ale tutaj to pełen "rispekt" !!!
Że też znajdujesz czas na takie coś!
majek
Posty: 267
Rejestracja: czwartek 20 wrz 2012, 22:38
Lokalizacja: Wrocław
Kontakt:

Post autor: majek »

remick, jak popatrzysz na częstotliwośc commitów, to najczęsciej nie znajduję :-P

A żeby nie bić tylko piany, tak wygląda gotowa klawiatura którą trzeba sobie niestety zrobić samemu:
Obrazek
Obrazek
Ostatnio zmieniony wtorek 22 maja 2018, 16:11 przez majek, łącznie zmieniany 1 raz.
Awatar użytkownika
pma_
Posty: 4659
Rejestracja: sobota 08 maja 2010, 09:43
Lokalizacja: Gliwice/Katowice

Post autor: pma_ »

Trzeba było użyć gotowej z kamerek :)
samolot max 4579/1293 analog, DJI do końca zasięgu :)
coper max 1729(na 5.8)
majek
Posty: 267
Rejestracja: czwartek 20 wrz 2012, 22:38
Lokalizacja: Wrocław
Kontakt:

Post autor: majek »

Wszystkie gotowe potrzebują 5-6 pinów procka do obsługi 6 klawiszy. Moja działa na trzech :-)
A nie chciałem kombinować z klawiaturą na 3-4 przyciski, bo to jest później rzeżba w interfejsie użytkownika. tu mam 4 kierunki, enter, esc - bardziej intuicyjnie sie nie da.

Tu też niestety wychodzi dobranie procesora 'na styk' - nie ma więcej wolnych portów, żeby obsłużyć 'normalną' klawiaturę. Ale takie wyzwania lubię :-P
ODPOWIEDZ