-
GAMEPOD.hu
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
nagyúr
Nem tudod bedugni mondjuk egy power bank-be, ahol az adatlábak nem élnek?
Nézd meg alaposan a forrasztásokat, nem folyt-e meg valahol az ón, vagy nincs-e összenőve valahol két vezetősáv valamelyik kondenzátor közelében. Simán lehet gyári hibás, egyszer én is kaptam egy selejtet pont egy ilyen attiny8-ból, de arra feltölteni se lehetett. -
nagyúr
Beleültetted a bogarat a fülembe, addig olvastam, míg rá nem jöttem, hogy az enyémen gyárilag tényleg nem volt bootloader, úgyhogy elővettem a digispark klónomat (még jó, hogy nem hajítottam ki). Nekem szerencsére volt itthon uno, szóval összeütöttem gyorsan egy isp-t belőle, feltöltöttem rá a micronucleus bootloadert, és...
És semmi.
Viszont arduino IDE-ben a ledvillogtató programot fel tudtam rá tölteni az arduino-isp-n keresztül, szóval végülis féleredmény.
Usb-re dugva viszont unknown device, és rögtön bedugáskor elindul a ledvillogtató program, tehát valamilyen okból egyszerűen átugorja a bootloadert, és rögtön indul a sketch, így sajnos semmilyen usb hid projektben nem fogom tudni használni. Hiába gugliztam, nem találtam semmit. Újraflasheltem vagy 50x, különböző bootloaderekkel, de egyik sem hatotta meg. -
-
nagyúr
-
nagyúr
válasz hermit #11476 üzenetére
A teljes kijelző törlése sem Isten ellen való bűn, de ha mindenképp mást akarsz, van több megoldás. Egyrészt ha ugyanazt kiírod rá még 1x, amit előzőleg, de háttérszínnel, akkor eltűnik, de a legelegánsabb megoldás talán az, ha rajzoltatsz a szöveg helyére egy teli téglalapot, háttérszínnel. Az csak azt fogja törölni, amit szükséges.
-
nagyúr
Lehet, hogy a lemerüléskor sérült a SPIFFS fájlrendszer. Próbáld újraflashelni. Amúgy sem vmi megbízható az esp32 SPIFFS, én sqlite adatbázist próbálok rajta írni-olvasni, és mindig átmegy egy idő után read only-ba, az okát nem tudtam kideríteni, talán bugos a lib, de az is lehet, hogy a két jelenség valahogy összefügg.
-
nagyúr
Megvan a megfejtése a Digispark anomáliának. Leírom, hátha később valaki hasonló problémával fog küzdeni.
Írták pár helyen, hogy elég válogatós az usb portokra, ha nem működik, dugjuk át másik portba, alaplapira stb. Mivel laptopom van, belső usb hub-bal, és így is kevés a külső port, ezért az egér, billentyűzet egy külső usb hub-ra van dugva. Addig dugdostam a Digispark-ot mindenhová, hogy végül kipróbáltam a hub-ba is, és voilá! Elkezdte telepíteni a drivert. Aztán...Ott se ismerte fel többet.
Ekkor elővettem a szekrényből egy másik usb hub-ot, és abba dugva már települt a driver és fel is tudtam programozni a micronucleus isp-vel.
Ezután elindult végre a keyboard sketch is. Ezután átdugtam a laptop saját usb portjába, és...
Megint semmi.
Ekkor kihúztam az összes usb eszközt a laptopból, és csak a Digispark-ot dugtam be, és... Siker!Tehát a megfejtés: mivel az usb kommunikáció 16.5MHz órajelet igényel, ami eltér a saját belső órajelétől, az usb portról veszi az órajelet, bedugáskor szinkronizálja magát. Ha ez nem sikerül, akkor nem tud bootolni, és a windows se ismeri fel, nem tud hozzá drivert telepíteni stb. Úgy tűnik, hogy nálam ezt valamelyik eszköz megakadályozta.
Ennek folyománya, hogy ha Digispark (Default - 16.5mhz) board van kiválasztva fordításkor, és utána nem élő usb hub-ba van dugva (hanem usb töltőfejbe, vagy power bank-ba), akkor a kód sosem fog elindulni! (Ez csak most tudatosult bennem, mert ezt így még sehol nem láttam leírva, pedig egy hete bújom a fórumokat... ) Így csak a kimondott usb-s feladatokra lesz alkalmas (keyboard, mouse, joystick emuláció). Ha vki micronucleus isp-vel szeretne kódot feltölteni, aztán power bankról, vagy külső akksiról üzemelteni, akkor a Digispark (16mhz - No USB) board-ot kell hozzá kiválasztani.
-
nagyúr
válasz zsolti_20 #11507 üzenetére
Jó-jó, értem.
Csak te kérdezted, hogy "Van ennél jobb megoldás is?". Ha arduinoval létrehozott txt fájl pc-n való visszaolvasása a cél, akkor nem értem, hogy minek a kettő közé egy rakás áramkör meg usb chip, ha néhány vezetékkel is megoldható, natív SPI kommunikációval. Utána kártya ki, kártyaolvasóba be és kész.
Persze ha direkt pendrive kezelés a feladat, nem szóltam.[ Szerkesztve ]
-
nagyúr
-
nagyúr
válasz zsolti_20 #11509 üzenetére
Mondok még jobbat. Csináld az egészet wemos d1 mini-vel, és akkor a hölgynek hozzá sem kell nyúlnia a pendrive-hoz, se fájlokat nem kell megnyitnia, hanem a wemos rákapcsolódik az otthoni routerére, és neki csak egy könyvjelzőzhető linkre kell kattintania, ahol kap egy színes-szagos weboldalt a kívánt statisztikákkal.
De legjobb lenne, ha megírnád, mire jó ez az egész és hová lesz telepítve, mert most már egyre jobban érdekel. -
nagyúr
válasz zsolti_20 #11516 üzenetére
Értem! Jó kis feladat.
Az rfid tag uid-je úgy tudom, hogy nem módosítható, viszont van benne 1kbyte-nyi írható adatmező, ahová azt írsz, amit csak akarsz. Viszont ennek az a veszélye, hogy más is tudja írni-olvasni, illetve le tudja másolni, ami visszaélésre ad lehetőséget. Úgyhogy ha ezt használod azonosításra, úgy emlékszem van lehetőség jelszóval védeni az adatmezőt. Ennél biztonságosabb a kártya uid-jét használni, de ahhoz valóban előzetesen fel kell tölteni a neveket az eszközbe. -
nagyúr
Bocs, de leírom, hátha hasznát veszed.
Ha nekem kéne ezt megcsinálom, biztosan esp-t használnék (8266-ot vagy esp32-t). Egyrészt mert beépített flash van rajta, amit lehet pendrive helyett használni, másrészt mert van hozzá sqlite3 adatbázis lib, ami képes az SPIFFS-en létrehozott adatbázist írni-olvasni! (igazság szerint SD kártyára létrehozott adatbázist is támogat natívan, SPI kommunikációval) Plusz lehet hálózaton keresztül adminisztrálni, ami azt jelenti, hogy ha új szavazót kell új rfid kártyával regisztrálni, azt böngészőből meg lehet tenni, webes felületen. Ugyanígy az eredményeket is le lehet kérdezni. Lehet jelszóval védeni az egészet, míg egy pendrive bárki számára hozzáférhető (feltéve, hogy titkos/érzékeny adat a szavazás eredménye).
A txt fájl egyik hátulütője, hogy nehéz visszaolvasni belőle, hogy ki szavazott már és ki nem, míg adatbázissal ezt nagyon egyszerűen meg lehet oldani. -
nagyúr
válasz zsolti_20 #11520 üzenetére
Igen, az Esp32 jelenleg az arduino szent grálja. Az Esp8266 hasonló az Esp32-höz, csak (szerintem) egyszerűbb, kiforrottabb, és jobb az arduino kompatibilitása. Legalábbis amikor én Esp32-re írtam sqlite3 adatbázis kezelő programot, azt tapasztaltam, hogy az SPIFFS kezelő része még igencsak béta állapotú. Neked pedig pont ennek a stabil működése (is) a lényeg. Amire neked kell, az Esp8266 (pl. Wemos D1 mini) is tökéletesen megfelel.
-
nagyúr
válasz zsolti_20 #11522 üzenetére
Dehogyis nincs. Jlcpcb, Pcbway, de van még talán jobb/olcsóbb.
Amit én kerestem, az magyar gyártó, és az volt a lényeg, hogy számlaképesek legyenek. Aztán megtaláltam őket, csak nem ebben a topikban, hanem a hobbielektronikában linkelte valaki. Akkor kapjanak ők is egy reklámot, unipcb.hu. Azt nem tudom milyen árban/minőségben dolgoznak, de legalább magyar cég.[ Szerkesztve ]
-
nagyúr
válasz zsolti_20 #11524 üzenetére
ESP32 az ESP8266 továbbfejlesztett változata. Van benne BLE, több I/O port, kétmagos CPU, ami valódi többszálas futtatást is lehetővé tesz, és RTOS fut rajta. Cserébe az ESP8266 olcsóbb (amúgy mindkettő filléres tétel a tudásához képest), a lábai 5V toleránsak, tehát szintillesztés nélkül lehet rá 5V szenzorokat miegyebet kötni, több és kiforrottabb library-t találsz hozzá
-
nagyúr
válasz zsolti_20 #11526 üzenetére
Hát persze, ezt írtam is tegnap. A belső 4MByte flash ketté osztható, pl. 1M programkód +3M SPIFFS fájlrendszer. Ezen a belső SPIFFS fájlrendszeren tudod létrehozni az sqlite3 adatbázist. A pc/mobil eszköz csak mint kliens kapcsolódik fel wifi-n keresztül, az ESP teljesen autonóm módon működik, még AP módban is tud működni, ha mondjuk nincs router, amire kapcsolódjon, akkor létrehoz egy saját wifi hálózatot, amire mondjuk telefonnal rá tudsz kapcsolódni.
Én a helyedben nem Esp32-vel csinálnám, hanem Esp8266-tal, mert az Esp32 SPIFFS kezelő része szerintem még béta állapotú, nálam legalábbis gyakori adatvesztést produkál, ami egy játéknál elmegy, de komolyabb feladatnál már okozhat kényelmetlenséget. -
nagyúr
válasz zsolti_20 #11530 üzenetére
Elé kell kötni a ceruzát, aztán a lerakott vonalat már egyszerű követni.
Ha én csinálnám, léptetőmotorokkal hajtanám a kerekeit, és vagy egy optikai egérrel, vagy egy 9axis gyro szenzorral (pl. én ebből csináltam airmouse-t: [link] ) ellenőrizném az eltérést, mert bármiből is csinálod a kerekeket, sosem fognak egyformán tapadni, mindig korrigálni kell."egyszerusiteni kell ahogy csak lehetseges."
Akkor miért bonyolítod? Az sqlite3 lib SPIFFS és SPI-n keresztül SD kártyát tud kezelni. Illetve ha a pendrive kezelő breakout board, amit linkeltél, szintén SPI-n keresztül kommunikál, akkor talán azt is. De ha lehúzod a pendrive-ot, azon egy adatbázis fájl lesz, azzal mit kezd a hölgy? Vagy mellette létrehozod a txt fájlokat is az eredeti tervnek megfelelően? -
nagyúr
válasz zsolti_20 #11535 üzenetére
+4 interrupt vezeték? Ha jól emlékszem az is van rajtuk (de lehet, hogy rosszul emlékszem).
A nyomógombos megoldás szerintem elegánsabb és kevesebb a hibalehetőség, mert mi van, ha a kártyát kicsit alacsonyabban mozgatja a szavazó, és a szomszédos olvasó előbb olvassa be, mint az, amire eredetileg tenni akarta? Vagy kiejti a kezéből, és ráesik valamelyik olvasóra? Egy fizikai gomb haptikus visszajelzése szerintem ilyen feladatnál kimondottan szükséges. Ezen okból kifolyólag érintőgombot sem tennék oda.
-
nagyúr
válasz zsolti_20 #11538 üzenetére
"És az a megoldás esetleg, hogy RFID-val azonosítják magukat, majd gombot nyomnak?"
Ez volt az eredeti ötlet, szerintem ez így jó, én biztos így csinálnám. A konfirm szerintem felesleges macera. Van pár ötletem: esetleg a biztonság kedvéért lehetne egy bizonyos (rövid) időn belül egy javítási lehetőség, olyan módon, hogy kártyát mégegyszer lehúz, és újra szavaz. Mondjuk egy percen belül. Vagy gomb nyomva tartása közben húzza le a kártyát (ez tuti kizárja a véletlent, de kissé erőltetett). Vagy újabb kártyalehúzással nyugtázza a szavazást, de ez újabb hiba lehetőséget rejt, tudniillik a második lehúzást el fogják felejteni.
Esetleg hosszabb gombnyomásra reagálni, mondjuk fél mp-ig nyomva kell tartani a gombot... -
nagyúr
válasz zsolti_20 #11542 üzenetére
Túlbonyolítjátok. Állapotgép az mindenképp kell (nem nagy dolog, csak a neve ijesztő ), de ha esp lesz a hardver, ott a delay() nem hogy kerülendő, hanem egyenesen kívánatos, ugyanis nem akasztja meg a futást, hanem ilyenkor végzi el az eszköz pl. a wifi hálózat kezelésével kapcsolatos feladatokat.
Interrupt nem feltétlenül kell, mert a programnak igazából ez az egyetlen feladata van, a gombok figyelése. A gombok pergésmentesítéről viszont ne feledkezz el! Jó példakódokat lehet hozzá találni, akár itt a topikban is. -
nagyúr
válasz zsolti_20 #11550 üzenetére
Na várj csak, az ellenállást pontosan hová is kötöd? Mert ha a felhúzó ellenállásra gondolsz, amit a beépített ellenállással lehet helyettesíteni (INPUT_PULLUP), az nem a pergésmentesítés miatt van, hanem azért, mert anélkül "lebeg" a bemenet, mivel a vezeték antennaként viselkedik és összeszed minden jelet a levegőből. A pergés ettől teljesen független dolog.
-
nagyúr
válasz zsolti_20 #11564 üzenetére
Ha meg majd adatbázist használsz, a setup részben töltsd fel a tömböt egy ciklusban, így a program újraflashelése nélkül tudsz új kártyákat hozzáadni. Illetve SQL parancsokkal megoldható a közvetlen lekérdezés is tömb nélkül, a kérdés, hogy a sebessége mennyire lesz elfogadható.
-
-
nagyúr
válasz Janos250 #11577 üzenetére
Azt hittem azért írtad, mert azt írtam a kollégának, hogy túlzás nano helyett esp32, de én is tudom, hogy az esp32 jelenleg az arduino szent grálja. Csak azért írtam, mert úgy gondolom, hogy aki arduino-zik, sosem árt megtanulni kódot optimalizálni, meg kihozni a maximumot adott hardverből, mert az erős hardver, a végtelen erőforrás nagyon ellustítja a kódolókat, lásd: mobil appok féktelenül növekvő memóriaigénye.
-
nagyúr
válasz tonermagus #11606 üzenetére
"3-4 kg-os hajótestet kellene elvinnie"
Attól függ minden, hogy milyen sebességet szeretnél elérni."kérdés az, hogy ezt egy ILYENNEL tudom-e helyettesíteni?"
A linkelt driver kizárólag DC (szénkefés) motorokhoz jó, abból is a nagyobb teljesítményűekhez, magas (min.12V tápfesz) mellett, mivel nagy rajta a feszültségesés. Szénkefe nélküli motorokhoz BLDC vezérlő kell. Ha mondjuk 2S li-po akksiról tervezed a táplálást, kisebb motorokkal, sokkal praktikusabb egy L9110s vagy egy TB6612FNG alapú motorvezérlőt (H-bridge), mert sokkal jobb a hatékonysága. Ha egy-két átlagos 6V-12V DC motor lesz a hajtómű, inkább ezeket használnám, pl.: [link]. Egy ilyennel meg még a pwm meghajtást is meg tudod spórolni, i2c-n keresztül tudod vezérelni.[ Szerkesztve ]
-
nagyúr
válasz tonermagus #11608 üzenetére
Kissé elavult már - nem akarok hülyeséget írni, de - ha jól emlékszem ez tranzisztor alapú, és 1,5V körüli feszültségeséssel kell vele számolni, amiket javasoltam pedig fet-et használnak, 0,2-0,6V körüli veszteség van rajtuk.
Annyi hátránya van, hogy magasabb tápfeszültséget kell használnod (min.7V, ekkor kb 5,5V jut a motoroknak). Amiket javasoltam, 2,5V tápfeszültség mellett már használhatóak, így akkus tápláláshoz jobban használhatóak. Az L298N 6V tápfesz alatt nem nyit ki rendesen, csak melegszik, főleg PWM vezérléssel (tapasztalat). Cserébe 2-3A-el tudod terhelni és jó a hűtése. A nagyobb tápfesz nagyobb akkupakkot igényel, ami plusz súly. A vezérlő maga sem kicsi, se nem könnyű azzal a nagy vasdarabbal a hátán, ami a hűtő. -
nagyúr
válasz tonermagus #11610 üzenetére
Hát ha csak ki-be kapcsolod, akkor működhet a dolog, de a PWM vezérlés szerintem nem nagyon fog vele működni, csak sípolni fog meg melegedni.
Esetleg ha tolatni nem akarsz vele, hanem elég az előre irány, akkor próbáld meg, hogy nem hídba kapcsolod, hanem az egyik félhíd és a föld közé kötöd a motort. Így csak 0,6V körüli veszteséged lesz. Hajó egyébként sem szokott hátra menni. Viszont 4 motort is rá tudsz így kötni. -
nagyúr
válasz balintarduin #11612 üzenetére
Real Time modullal lehet visszaszámolni? Vagy hogy próbáltad eddig, ahogy nem sikerült?
Hozzáadsz 4 perc 55 másodpercet az aktuális időhöz, és beállítod alertnek. -
nagyúr
válasz tonermagus #11622 üzenetére
Tranzisztor azért kell, mert közvetlenül nem kötheted a motort a uC kimenetére, mert tönkremegy. Nem tud annyi áramot leadni, amennyi a motornak kell, egy kimenet max 40mA-el terhelhető (az Uno-n).
Nekem hiányzik a bázis ellenállás a rajzról. -
nagyúr
Akkor most én is kérdezek: mi a különbség az SPIFFS és az NVS között? Arduino ide-ben lehet használni az NVS-t? Azt is elő kell készíteni, mint az SPIFFS-et, partícionálással/ a memóriakiosztás beállításával? Vmi jó leírást tudtok ajánlani? Mert gugliztam, de nem sok mindent találtam róla.
Új hozzászólás Aktív témák
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Ozeki Kft.
Város: Debrecen