Fórum témák
» Több friss téma |
Fórum » Nextion érintőképernyős HMI, UART kommunikációval
Témaindító: Lamprologus, idő: Máj 5, 2016
Témakörök:
Mindegyik betűtípus ilyen lesz. A betűgenerátor fix szélességű betűket készít, így pl. az i-nek nagy, az U-nak éppen elég. Nincs mit tenni, ez ilyen.
Küldd el szövegként a számot, az a legegyszerűbb.
Értem.
Látom te képekből raktad össze, hogy jó legyen. Nekem sajnos most nincs ennyi időm rá így akkor ez ilyen lesz, a számokat meg maximum ketté veszem az egész és a tizedes jegyekre és egymás mellé tolom őket. Egyébként azokat a képeket mivel készítetted, hogy egyforma legyen? A hozzászólás módosítva: Jan 15, 2019
Mi értelme szétválasztani? Egyben is el lehet küldeni.
t0.txt="3.14" Két lépcsős küldésnél a tizedesjelet is külön kell elküldeni.
Azért, hogy két külön textbox legyen és össze tudjam tolni, a pontot meg fixen kiíratom.
A hozzászólás módosítva: Jan 15, 2019
Sziasztok!
Tavaly december végén én is szert tettem egy kijelzőre. Belevetettem magam a témába, többek között végig olvastam ezt a topikot az elejétől a végéig. Sok-sok hasznos hozzászólással és több gondolat ébresztővel találkoztam. Engedelmetekkel én is adok egy tippet: A fejlesztgetést a Nextion editor szimulátorával virtuális soros porton Proteus-szal végzem. A Proteusban közvetlenül az MPLAB-X-ből lehet debuggolni. Így, se a HMI-re, se a mikrovezérlőbe nem kell töltögetni semmit. Üdv!
Hackerkedtem egy kicsit és kiderült, ez a font generátor nagyon el van baltázva.
Úgy értem trutype fontokból pixeleset gyártani egy megadott magasság alapján, hát ami kisül belőle az no comment. Magassága fele a megadottnak, stb. Viszont aki nem képeket akar beilleszteni és van ideje játszani a fontokkal annak ajánlom Sergio font editorját.
Én elöször a GUI-t rakom össze, debug a Nextion Editor-ban aztán jöhet a kontroller programja.
Sziasztok,
nekem két kérdésem lenne a PIC Nextion kommunikációval kapcsolatban. 1. a próbaprogramom működik, a kijelzőn van három gomb ami kapcsolgatja a PIC 3 kimenetét, amire ledeket kötöttem. Minden működik de van amikor a kijelzőn lévő gombot kétszer kell megnyomni, hogy a hozzá tartozó led bekapcsoljon. Okozhatja az, hogy az UART kommunikáció nem megszakításban van lekezelve? Igazából egy rövidke program amit csak tesztelés képen dobtam össze. Hozzá tartozik csak alapszinten programozgatok. 2. a kijelzőn létrehoztam egy csúszkát (slider) aminek az értékét szeretném szintén a PIC-ben feldolgozni de csak 0-t látok az RX bufferben. Tudja valaki ezt mi okozhatja? A slider értékét a Touch move event alatt egy printfs slider.val paranccsal küldöm ki. Terminalon látom a slider értékét. Előre is köszönöm.
1: Az UART vételi puffert a fogadás után a lehető leggyorsabban ki kell olvasni, különben az azt követő bájtok biztos hogy elvesznek. Célszerű megszakítást használni, némi FIFO tárral. Utóbbira négy-öt bájt elég lehet, feladattól függően.
2: Lásd első pont.
Tessék
Az 1.3-at próbáltam, az 1.41 bétát még nem teszteltem. Nyiss meg benne egy legeneráltat és látod mi sül ki a font generátorból. A hozzászólás módosítva: Jan 15, 2019
Ám arra nem válszoltál a képeket mivel csináltad ami a számjegyeket mutatja. Arra mi a leggyorsabb módszer?
Képszerkesztővel elkészítem a teljes GUI-t majd kivágom azokat az elemeket, amelyek változhatnak, minden más megy a háttérre. Ha számkijelzőn minden számjegy előfordulhat de más nem, akkor 11 kép kell. 0-9 és a szóköz. Vagy. Ha adott pozícióban a hét napjai kellenek, akkor az hét kép. Igaz, ezzel a módszerrel is szigorúan csak fix szélességű karaktereket lehet létrehozni de legalább szépek a karakterek.
Adott kép méretét az előforduló legnagyobb karakter/szöveg/ábra határozza meg. Kicsit szöszölős a dolog, a vezérlési oldalról is. Pl. nem használhatom a t0.txt= formátumot. Ha pl. számokról ban szó, akkor azok mindig szigorúan egymás alatt vannak, így a sorszámaik is egymás után vannak. Ha a 0 a 18. pozícióban van, akkor a 9 a 27.-ben. A vezérlésben a kiírni kívánt számhoz hozzáadok 18-at és már meg is van a kép sorszáma. Ha szükséges, egy feltételvizsgálat nulla kioltásához, pl. az idő megjelenítésénél: 08:41 helyett 8:41.
Köszi. Hát elég szöszölős. Mindenestre ezzel a font editorral a 10 számjegyet gyorsan átrajzolgattam, betűkkel meg majd lesz valami.
Jó kezdeményezés de alapvetően egy funkciót hiányolok. Nem lehet törölni a felesleges karaktereket. Igaz, ha elég a kijelző memóriája, nem is érdekes a dolog. Úgy tűnik, ez a formátum (.zi) nem támogat, csak egy bites színmegjelenítést így az élsímítás reménytelen.
Köszönöm az ötletet, amint hazaértem ki is próbálom.
Csak még egy kérdés? Ezt a FIFO tárat úgy képzeljem el mint egy több elemű bájtos tömböt amibe a 8bites hardveres puffer tartalma betöltődik majd onnan veszem az adatokat? Csak abból kiindulva, hogy a slidernek pl. már az egy bájt nem is elég, két bájton küldi át az értékét. Utólag belegondolva lehet, hogy ezért sem láttam én a pufferben mást csak nullákat?
Valamilyen jelző bájt sem árt, hogy innen kezdődik az adat, esetleg eddig tart. Ha lehet, ezt a kérdést inkább valamelyik kontrolleres témában folytasd, itt már nem a kijelzőről van szó.
Koszi Taki, és Mindenkinek koszi.
Valójában az a probléma, hogy a kijelzőt szeretném tesztelni a PC-rol küldött parancsnokkal. A kijelzorol küldött adatokat látom a terminál proogramban, csak fordítva, mikor küldöm a kijelzővel a “page 2” parancsot, arra nem csinál semmit a kijelzo. Ezért kertem más terminál programot olyat, akinek már működik...
BR@Y++ -t használom, ha kell küldök tmf file-t, abban lévő parancsok biztos hogy mentek.
Szerintem bármelyik program működik ha hexaban küldöd a parancsokat.
Olyat még nem taláétam ahol ASCII-ban is el tudtam küldeni mert a 0xFF nincs benne az ASCII táblában ezért ezt így nem tudják kezelni a terminál programok, de hátha valaki ismer vamait ami ASCII-val is megy.
Simán el lehet küldeni ASCII kódban is, az ISO/IEC 8859-1 kódtáblában a 0xFF karakter ÿ amit a kiküldendő parancs végére háromszor beilleszted és már működik is!
Szia!
Idő hiányában nem fejeztem be, de azért én használtam Nextionnal.
Üdv!
Új kérdés. Hogy tudok átvinni egy értéket egyik lapról a másikra? pl: page1 t0.txt -> page0-ra t5.txt-be? A hozzászólás módosítva: Jan 21, 2019
Itt: Bővebben: Link.
A másikat elfelejtettem globállá tenni.
Köszi.
Üdv!
A bkcmd parancsot próbáltátok már UARTon keresztül? Nekem nem fogadja el valamiért. Ha a kijelzőbe programozom be akkor működik, de ha UARTon küldöm akkor valamiért nem akar. A hozzászólás módosítva: Jan 26, 2019
Sziasztok!
Szeretnék egy decimális egész számot megjeleníteni a HMI-n, ami 0 és 4700 között bármilyen értéket felvehet. 1 másodpercenként érkezik friss adat. Ez nem gond, de van egy kivételes eset amikor számok helyett négy vonalat (----) kellene kíírni. Ebben az esetben 65535-öt küldök a HMI-nek, ebből tudja, hogy nem az értéket, hanem a vonalakat kell kiírni. Csak úgy sikerült megoldanom, hogy egy 50 ms-os timer figyeli az értéket, és ha kell átírja azt a vonalakra. Annyi a gondom, hogy felvillan a 65535 egy pillanatra, utána felülírja, de nem túl elegáns így. Van erre ötletetek? |
Bejelentkezés
Hirdetés |