Mám takovej šílenej nápad, vymalovat MP80-ku s napěťovou a logaritmickou stupnicí na 2,8" TFT displeji 240 x 320 s ILI9341.
Včera jsem usmolil měření napětí 0-5V a podle něj hýbat v rozsahu 120° jen jednoduchou rafikou alá analogovej měřák. Bez popisů, stupnic. Maká to, ale před každým přestavením rafiky když mažu displej, tak je to s Arduino Pro Mini dost pomalý. Zatím nevím, jestli je na vykreslení tak pomalej TFT nebo komunikace po SPI nebo jestli má vůbec smysl to dělat s osmibitovou 328P a nepoužít rovnou nějaký "dělo" jako třeba ESP32.
Odpoledne zkusím, jak rychle by makalo před změnou polohy rafiky tu původní nejdřív smazat vymalováním na barvu podkladu a pak vymalovat novou polohu. Ale zatím vůbec netuším, jak bych to dělal na dílcích stupnice přes který by rafika ukazovala.
Zkoušel jste někdo něco takovýho? Na netu pár příkladů je ale zatím jsem nad tím nebádal.
Analog měřák na TFT displeji
Moderátor: Moderátoři
Analog měřák na TFT displeji
Jirka
Proč mi nemůže všechno chodit hned ?!!
Proč mi nemůže všechno chodit hned ?!!
S tou stupnicí jsem se kdysi vyblbnul na Zilogu, skončilo to tak, že stupnice byla uložená jako bitmapa a, jak přes ni sáhla ručička a měla se "hnout jinam", blokovým přenosem přepsala příslušnou část paměti displeje pro zobrazení, obnovilo se zobrazení stupnice a ručka v nové poloze se kreslila až pak.
K šílenému nápadu: která MP80 měla víc, než 80° výchylku?
K šílenému nápadu: která MP80 měla víc, než 80° výchylku?
Ked mas pomale vykreslovanie, musis minimalizovat zmeny - idealne len na tie pixely, ktore je nutne zmenit. Idealne by bolo mat kopiu celej stupnice v RAM - pri mazani rucicky by si odtial skopiroval pixely na displej. Lenze na to nemas dost RAM. Takze pri kresleni rucicky precitat z displeja vsetky pixely, ktore bude "zakryvat" a ulozit do RAM. Pri mazani skopirovat naspat.
Skoro ano, ale kopírovat nebo načítat do ram z flash (nějaký malý blok kolem aktuální polohy ručičky) jen tu část se stupnicí, jednobarevný zbytek kreslit natvrdo z kódu. Tyhle optimalizace na pomalém procesoru s malou ram a pomalým přenosem do displeje jsou opravdu radost.
Krátce před tím, než se to rozbilo, tak to ještě fungovalo...
Tu MP80 jsem dal jen jako příklad, čumím tady na ní na BM534. Celej systém je schovanej za čelním panelem a ve výřezu je jen průhledná zobrazovací část, matná před deprézem je schovaná. TFT-čko je skoro přesně velký jako výřez v panelu na BM534.Hill píše:K šílenému nápadu: která MP80 měla víc, než 80° výchylku?
Ten displej umožní zobrazit výchylku 120° tak proč ji nepoužít na přesnější a přehlednější čtení polohy? Ona ta rozlišovačka 320 x 240 není zase tak závratná a větší úhel ji trochu zkompenzuje.
K tomu přemazávání stupnice ručkou. O tý metodě nakopírování podkladu stupnice na displej v Setup vím ale nevím, jestli to půjde na doplňování ručkou přemázlý stupnice použít. Nedíval jsem se zatím na knihovnu ILI9341 jestli umí zpětný čtení pixelů aby se třeba dal načíst do zálohy bloček pixelů přes který se pak namaluje ručka.
Zato mě překvapila dost podivná věc. Když pošlu na TFT displej čáru jako ručku s bodem otáčení v polovině spodní hrany displeje (pozice 160x240), tak můžu klidně zadat koncovej bod zcela mimo rozsah displeje, například -100,0 je ručka cca 60° doleva a 340,0 je cca 60° doprava.
Ale ta stupnice bude stejně o geometrii kolem sin a cos.
Jirka
Proč mi nemůže všechno chodit hned ?!!
Proč mi nemůže všechno chodit hned ?!!
To je klidně možný, ničemu se nebráním. Možná to skončí z nouze i na deprézu ale kdo se má malovat s těma stupnicema? A navíc sehnat slušnej s rozsahem 100uA a dlouhou úzkou ručkou taky není až tak úplně jednoduchý.
Ale zatím netřeba házeti flintu do žita. Když jde tohle:https://content.instructables.com/FU1/P ... NI5D6E.mp4 tak snad samostatnej analog nahoře půjde taky. Ale jak vidíte, přepisu stupnice ručkou se radši vyhnul.
Ale zatím netřeba házeti flintu do žita. Když jde tohle:https://content.instructables.com/FU1/P ... NI5D6E.mp4 tak snad samostatnej analog nahoře půjde taky. Ale jak vidíte, přepisu stupnice ručkou se radši vyhnul.
Jirka
Proč mi nemůže všechno chodit hned ?!!
Proč mi nemůže všechno chodit hned ?!!