Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Sziasztok! Megvan a megoldás az ST7735 lcd villogásának megszüntetésére. Talán hasznát veszi valaki. A változó karakterek miatt nem kell törölni a képernyőt, csak a betűszín megadásakor a háttérszínt is meg kell adni. Így amikor frissíti a karaktereket, azok háttere is frissül. Mivel nem az egész képernyőre vonatkozik, így nincs villogás, vibrálás.
Jelen esetben fehér a háttér, tehát fehér színt adok meg a betű hátterének. Az 5. sor a lényeges.
A hozzászólás módosítva: Jún 13, 2025
Én megpróbálnám más libbel is. Némelyik használhatatlan. A chatgpt sokat tud segíteni az ilyen hibák felderítésében.
Szerintem ez így jól használható, egyszerű. Azt elfelejtettem írni, hogy az Adafruit libjét használom.
Hello! "Adafruit libjét használom" Na itt van a kutya elásva, mert a másik lib-nél akkor is villog, ha a betűháttér színét megadod.
Monitor programot keresekMonitor programot keresek. Tudom, hogy az Arduino rendelkezik monitor kapcsolattal, de olyat keresek, amelyik kiírja az állandó szöveget, és utána folyamatosan írható a változó érték, vagy szöveg. Az állandó soremelés, és minden újra írás felesleges figyelem és megállítást igényel...Pl. Motor áram: 210mA, Távolság: 110mm. stb... A Processing kicsit bonyolult ehhez a feladathoz. Köszönöm a segítséget.
Ehhez terminál-emuláció kell, ami annyit jelent, hogy a "monitorprogram" képes kell legyen vezérlőkaraktereket, ún. ESC-szekvenciákat feldolgozni. Ezek nem jelennek meg, de pl. visszateszik a kurzort egy sorral feljebb minden kiírás után, vagy akár szép színeket is beállíthatsz vele. Persze neked ezeket a vezérlőkaraktereket is ki kell íratni a firmware-edből.
Tehát a kiírásaid a programodból olyanok lesznek, hogy a szöveg elé-közé ilyen parancsokat kell betenned: az ESC kódja (ami a 0x1b) megfelelő formában, aztán néhány más karakter. Pl.: a sor elejére való visszaugrás kódja: "\x1b[2K\r" \x1b = ESC (0x1B hexában), [2K = teljes sor törlése, \r = kurzor a sor elejére. Ezzel a módszerrel már ki lehet írni valamit ugyanabba a sorba, de nem csak teljes sortörléssel lehet célt érni, ez csak példa volt. A kódok táblázata pl. itt megtalálható (görgetni kell egy kicsit): https://en.wikipedia.org/wiki/ANSI_escape_code Programból sokféle akad, ami ismeri ezt, Windows-hoz hirtelen csak a Tera Term és a Putty jut eszembe. Mindkettő aktív állapotú, fejlesztik és karbantartják, és nyílt forrású. A Tera Term nagyon jó, a Putty egy elterjedt és igen jól beállítható eszköz, de abban a soros vonal használata csak másodlagos, TCP/IP-hez készült, így nem a legkényelmesebb. A hozzászólás módosítva: Aug 28, 2025
Én is rákerestem: állítólag az MS alkalmazásboltjából letölthető, a Win 11-ben pedig eleve telepített Windows Terminal is fejlesztve lett, az is boldogul az ESC-szekvenciák megjelenítésével. Én most ki nem próbálom, bocsánat, amúgy sincsenek jó emlékeim a régi beépített terminálról, azt csak elkerülni volt érdemes. : -)
Köszönöm a hozzászólást.
Azt még nem próbáltam ki, hogy az arduino program miként fordítja le a kódot. Bár amint látom, elég nehéz lenne ezt a formulát alkalmazni. Nagy vonalakban ilyenre gondolnék. Van kb10 sor, soronként 10-20 karakter lehetőség a szöveghez, és utána a mért eredmény. A szöveget nem kellene mindig kiírnom, csak a mérést. Gondolok valamilyen kódra, amivel megadom a hasznos monitor méretét, aztán a karakterek helye ebben a méretben lenne. A szín már csak hab a tortán. Hasonlóan a Processinhez. Tudom, hogy régen valaki megadott egy file nevet, ilyen programhoz, de az már eltűnt a gépemről, miután a HDD megadta magát ![]() A puttyit már próbáltam, de csak felbosszantott, nem jutottam előre. Vagy csak ügyetlenkedtem.
Szívesen. Szóval van egy soros adatfolyamod, vagyis ha kiküldesz egy karaktert a soros vonalon, azt a monitor a következő pozícióban jeleníti meg, és ha a sor végére ér, akkor folytatja a következő sorban. Ezt kell megtörni, és ezt csak speciális karaktersorozatokkal lehet.
Ilyen szempontból a "kocsi vissza" és "új sor" is speciális karakterek, a \r és \n is vezérlőkód, amiket bizonyára magad is használsz. Vagy a println függvény eltakarja, azért nem tudsz róla, de az maga is pont ezeket a karaktereket adja hozzá a kiírandó szöveghez (vagy csak a másodikat, ez most nem számít)... Tehát az ESC kódokban igazából semmi extra sincs. Elsőre minden bonyolultnak tűnik, de tényleg nem olyan nagy ügy. Az ESC szekvenciában, amit mutattam, egyedül a \ ("visszaper") karakterrel keződő ASCII karakterkód megadása jelenthet gondot, vagyis furcsa első ránézésre. Egy C vagy C++ programban a printf formázásában ezt pont így kell leírni, és persze hexa számról van szó (\x1b == 0x1b == 27 == az ESC karakter kódja). Tehát egyszerűen ki kell íratnod a következő stringet a monitorra, és az ezt követő kiírásod, szöveged ugyanabba sorba fog kerülni, vagyis kötött pozícióba. Aztán ezt a módszert lehet finomítani soron belüli pozíciókra is. Hogy van-e valami library, ami megteszi ezeket helyetted és eltakarja a kódokat, és pl. eleve koordinátákat lehet megadni neki, hogy hova tegye a következő kiírást, azt nem tudom - elképzelhető, hogy csak keresni kell. Arduino-ban: Serial.print("Egy szöveg"); Serial.print("\x1b[2K\r"); Serial.print("az érték"); C könyvtári függvénnyel (a referencia kedvéért): printf("\x1b[2K\r"); Persze finomítani kell, hogy legyen pl. kettőspont és szóköz az ESC szekvencia végén, csak elbonyolítja a példát, de itt van az is: int a_változó = 10; Serial.print("Egy szöveg\x1b[2K\r: %d", a_változó); a_változó = 6; Serial.print("Egy szöveg\x1b[2K\r: %d", a_változó); Nem próbáltam ki, úgyhogy lehetnek tévedések. Ilyesmit az AI-ok gyorsan megírnak neked ("a szekvencia állítsa a kurzort a 13, 15-ös pozícióba"), már a vezérlőkódokat sem kell keresgélned a wikiben. Ez is így készült: Serial.print("\x1b[13;15H"); Serial.print("Hello!"); Serial.print("\x1b[13;15H"); Serial.print("Hello!"); Serial.print("\x1b[13;15H"); Serial.print("Hello!"); Itt törlés nincs, de a "Hello!" mindig ugyanoda lesz kiírva, így csak egyszer fog csak látszani. Persze csak a Tera Term-ben és társaiban. A hozzászólás módosítva: Aug 28, 2025
Na, ezt csak elbénáztam:
Arduino-ban: Serial.print("Egy szöveg"); Serial.print("\x1b[2K\r"); Serial.print("az érték"); helyette ez a jó: Serial.print("Egy szöveg"); Serial.print("az érték"); Serial.print("\x1b[2K\r"); És ezt ismételgetve ugyanabba a sorba kerül a "szöveg" és az "érték" újra és újra - az egyszerűség jegyében szóköz meg értékek nélkül. Ezt bontottam ki jobban az ezt követő példákkal. A hozzászólás módosítva: Aug 28, 2025
Köszönöm a részletes leírást. Hazaérek a munkából, kipróbálom...
![]()
Próba meg volt. A szöveget egymás után írta. A "[2K" parancsot is írta, ez nem tetszett neki.
Végül is mit telepítettél a monitorozáshoz?
Csak Arduino fut a háttérben. Nem foglalkozik a parancsokkal, de nem áll hibára sem.
Attól volt szó, hogy az Arduino saját monitorprogramja nem képes a vezérlőkarakterek feldolgozására (és egyben elrejtésére), ezért jelennek meg rajta.
Visszaolvastam, látom, nem hangsúlyoztam külön, hogy _csak_ úgy fog működni, egy külső programmal, pl. a Tera Term-mel, de te azzal nyitodtad ezt a threadet, hogy "monitorprogramot keresek", ezért vettem természetesnek, hogy másikat fogsz használni, nem az Arduino sajátját. : -) Amúgy ha leírást adsz, mindig írj pontosabb alanyt is a mondatokba, ill. hogy mi, mivel, hogyan történik, mert így nehéz kitalálni, bár ez most egyelőre egyszerűnek tűnik. : -)
Hmm. Igaz, másik programot kell használnom, hiszen nincs leírása az Arduinonak, hogy felismer más parancsot. Megkeresem a TeraTerm programot, és próba lesz. Köszönöm. Remélem, tényleg egyszerű lesz.
![]()
Lehet inkabb a lapdobas ESC szekvenciat hasznald
![]() Igen vmikor en is belefutottam ebbe zavart a println fuggvenyek terminalban futo orult scrollozasa mikor en egy allando fix "tablazatot" szerettem volna latni. Kb 8 10 sor es 2 3 oszlopot irtam be print es println sorolbol reszben ugyesen "zonazva" a kirando 3 4 karaktert foglalo ertekekre is ugyelve ... kicsit tobb szokozt dobtam be ... ( persze van kurzor pozicionalo escape is ![]() A lenyeg az eredmenyek kiiratasat vegzo sorok utani utolsonak kiadott egyetlen lapdobas szekvencia ![]() Ekkor magatol" cls " (clearscreen) lesz es balfelso sarokban kezd a kurzor irni mindet az utolso sor jobb also sarkaig majd "ures lapot dob" es kezdi bal fent az irast. Ardu "buta" terminaljaban is mukodik" Aszem #escape szekvencia decimalis erteke kell a write() fuggvenynek. Bocs kicsit keveredik a C es Ardu szintaktika bennem !
Form feed ascii 12 lapdobas ...
"Pörgős" kódrészlet mintának lapdobasra
Talan ez segit ... Ardusorosmonitorban van 1 2 pipa auto CR meg LF re ezremlik. Masik minta :
Remelem segit a lapdobas. Teheted az elejere is ha ugy kevesbe villog a sorosterminal. Segithet A hozzászólás módosítva: Szept 1, 2025
Moderátor által szerkesztve
Én egy Hterm nevű programot használok - elég jó. Ez tud sorozatos küldéseket is, de lehet egyedi a küldés. Elég sok féle kódolással. Modbus tesztekhez is elég jó volt.
Hűha, ez is jól hangzik... Ki fogom próbálni... Volt más ötlet is, amik eredményét és a leírását is továbbítom majd, amit kaptam. Ez hétvégi program lesz, ahogy elnézem... Köszönöm a segítséget.
Nem legjobbnak, de kipróbálásra ajánlom a putty nevű programot. Nekem ez vált be. Tud többféle módon kapcsolódni, el lehet menteni a profilt. Szép színes terminál mondjuk ssh-hoz, de a serial módokat is tudja.
Arduino program kiolvasás - segítség kerestetikSziasztok!Olyan valaki segítségét keresem, aki tapasztalt Arduino UNO (ATmega328P) programozásban és tud chip kiolvasást végezni. Van egy működő Arduino-m, amiről szeretném visszafejteni/kiolvasni a rajta lévő programkódot. Ha valaki tud ebben segíteni vagy ismer valakit, aki specializálódott erre, nagyon megköszönném! Természetesen díjazom a munkát. Üzenetek privátban vagy itt a topicban várhatók! Előre is köszönöm! A hozzászólás módosítva: Szept 11, 2025
Szia!
Fontos tudni, hogy az Arduino UNO (ATmega328P) mikrokontrollerből a feltöltött program közvetlen kiolvasása nem egyszerűen „mentés”, hanem ún. reverse engineering. Ha a chipen a fuses/lock bitek be vannak állítva (ami gyakori), akkor a program kiolvasása nem lehetséges szabványos eszközökkel. Ha nincsenek zárolva, akkor ISP programozóval kiolvasható a flash tartalom, de az így kapott hex fájl már nem tartalmazza az eredeti, olvasható Arduino forráskódot (ino, kommentek, változónevek elvesznek).
Fontos tudni, hogy még ha a mikrokontroller nincs is zárolva (lock bitek nincsenek beállítva), akkor is csak a lefordított gépi kód (HEX fájl) olvasható ki ISP programozóval. Ez a fájl nem tartalmaz sem változóneveket, sem kommenteket, sem az eredeti forráskód logikáját Arduino-szinten (INO fájl). Visszafejteni belőle az értelmezhető programot nagyon nehéz, időigényes, és sok esetben nem is ad pontos eredményt. Gyakorlatilag ez már reverse engineering, nem egyszerű másolás.
Ha a cél a program megértése vagy módosítása, sokkal egyszerűbb újraírni, mint a HEX-ből visszafejteni.
Sziszifuszi munka. Nagyon drágán megoldható, mint ahogy a sérült, megégett wincseszter (HDD, háttértároló) adatvisszaállítása a Kürt cégnél.
Hasonló munka, mint például egy bitfolyamból, ahol bájtok ezreit látod (decimális) 0 és 255 (hexadecimális 0 és 0xFF) közötti számként, visszahámozni a zenét (CD-ről, MP3-ból, stb) vagy fényképet (jpg, bmp, stb), stb. A hozzászólás módosítva: Szept 15, 2025
TM1638 7 szegmenses kijelző + LCD kijelző kinlódásSziasztok Kollégák! Hetek óta tanulgatom az Arduino Nano-t. Van pár projekt ami elindult, például a soros és párhuzamos 2x16 karakteres LCD vezérlés, relé panel stb. Sajnos elakadtam a TM1638 as panellel és az OLED kijelzővel. Előbbi semmit is nem reagál a másikon már a világ minden adatbázisát feltöltötem, de csak fekete fehér pőttyős kijelzőt tudtam elérni. Minden Modul HE store-os. Tudna valaki segíteni egy egy példaprogrammal. Funkció mindegy, csak tesztelni akarom. Köszönöm!A hozzászólás módosítva: Szept 15, 2025
Nekem maga a HEX fájl elegendő lenne.
Lenne esetleg valaki aki tudna segíteni kiolvasni, személyesen elmennék kiolvasnánk és mást nem is kérnék.
Nos a TM1638 elindult és jól működik. Ma próbálkozom az OLED el.
TM1638-hoz a 2023. március 7-i foglalkozásunk előadásvázlatát és mintaprogramjait tudom ajánlani
Az OLED kijelzővel kapcsolatban pedig tisztázni kellene, hogy milyen típusú (pl. SSD1306, vagy SH1106), milyen kommunikációt használ (SPI, vagy IIC) és ha IIC, akkor milyen címre hallgat.
No, akkor most volt időm ránézni. Az Ardu nagyon buta. Nem foglalkozott a kóddal. A sor elejére kitett 1 vastag felfelé nyilat.
A többi program biztosan jó lenne. A sok funkció, lehetőség most nem kellene. Csak egy üres képernyő, mint az Arduban. Talán a Baud állítási lehetőség és kész. Ha valakinek odaadom a programot tesztelni, akkor ne kelljen neki mondani semmit a monitorról, használatról... "itt a program, mondj véleményt" A monitorra írok pár instrukciót, ezzel mehet tovább. Van hozzá egy LCD4x20 soros. Ott is elég a szöveg. A megoldás még várat magára. Köszönöm az eddigi segítséget. |
Bejelentkezés
Hirdetés |