-
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
-
gyapo11
őstag
válasz zsolti_20 #11509 üzenetére
Pendrive formájú sd kártya olvasó használata is hasonló bonyolultságú, mint egy pendrive. Kártya arduinoból kihúz, olvasóba bedug, innentől pendrive.
menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet
-
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
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. -
_q
addikt
válasz zsolti_20 #11545 üzenetére
Arduino Implementation fejezetben van egy példa: [link]
Röviden: switch case struktúrát hozol létre. Az egyes esetek megadják, hogy épp mi történik. 1. állapot mondjuk vár a nyomógombra. 2. ha lenyomta a nyomógombot az 1. állapotban akkor a 2. állapotban figyeli, hogy az adott 10 másodpercen belül van-e a várakozás és így tovább. Mindig az egyes állapotok viszik tovább a folyamatot a következő állapotra.A prellmentesítés amikor lenyomod a gombot, az ki-be fog kapcsolni a nem tökéletes kontakt miatt. Tehát lenyomod az egyszer érintkezik, majd nem. Ennek kiküszöbölésére kell vagy hardveresen vagy szoftveresen megoldani, hogy az ne prellegjen. Hardveresen kondenzátort kötnek párhuzamosan a gombbal, szoftveresen pl: [link]
Ezek nem épp túl szakszerű megfogalmazások, de talán érthető.
-
_q
addikt
válasz zsolti_20 #11547 üzenetére
Szoftveresen elég az ellenállás, de az nem emiatt kell, hanem a nyomógomb működése miatt, ha lenyomod, ne legyen direktbe kötve a GND felé. Bár ezt valaki erősítse meg azért. Kondenzátor fizikai tulajdonságából adódóan kell a prellmentesítéshez, mivel lassan töltődik fel, így kiküszöbölhető a gomb prellegése.
-
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.
-
_q
addikt
válasz zsolti_20 #11550 üzenetére
Nem ellenállást adsz hozzá szoftveresen.
Ellenállás mindig kell, a kondenzátor segít a prellmentesítésben.
(#11552) zsolti_20
Te lehúzó ellenállást használsz. Ha felhúzót használsz, azaz alapból logikai 1-en van a gomb bemenet, akkor fordított logikát kell használni, tehát lenyomod az 0. Ennek annyi előnye lehet, hogy ha szakadás vagy gond van, akkor a gombon alapból is 0 lesz ami gyanús lehet.[ Szerkesztve ]
-
_q
addikt
-
Janos250
őstag
válasz zsolti_20 #11557 üzenetére
Ha C#-et már használtál, akkor rossz a fogalmazás:
"De mikor belekezdtem az ESP ismerkedésébe kicsit kevésnek éreztem magam hozzá"
C# mellé ez lenne a helyes fogalmazás:
"Azért nem nanora építettem, hanem ESP-re, mert a nanohoz kicsit kevésnek éreztem magam"
Ugyanis az ESP32 compilere a C++(11) GNU compilere, ami eléggé korszerű, és ha a C#- ból kiveszed a Microsoft dolgokat, máris azt kaptad! Az már csak hab a tortán, hogy a többi arduinoval való kompatibilitás érdekében meg van írva egy csomó osztály amit használhatsz a "szabványosak" mellett, definiálva van egy csomó konstans, objektum, és a freeRTOS használatához van egy halom API.Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
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ó.
-
robohw
aktív tag
válasz zsolti_20 #11594 üzenetére
Semennyire.
Az egy elég szivatós modul. Nem véletlenül olyan olcsó.
Annak a tápfeszét sem emelgetheted.
A legolcsóbbét viszont igen. Bár az még 18 volton sem fog 250 m-nél tovább elsugározni.Ja, bocs.. én az nrf-8-ra gondoltam. A másikat nem ismerem, de az is Nordic gyártmány.
[ Szerkesztve ]
My own programming language: http://www.robomax.online
-
robohw
aktív tag
válasz zsolti_20 #11594 üzenetére
De sztem neked az olcsó tökéletesen megfelel.
Adsz egy burst jelet, utána már nyomhatod is a paracs kódot.
5 bittel már 32 féle dolgot tehetsz. A kommunikáció gondolom szimplex, tehát 3-szor kiküldöd az 5 bites kódot és a fogadó oldal megnézi, hogy ebből legalább kettő azonos-e, ha igen, akkor cselekszik a kódnak megfelelően. A zavarszűrés meg is van oldva.Ehhez még példakódot is találsz.
--
Néztem, az is gagyi, mind a kettőben ugyanaz az IC hegedül. A drágább csak az illesztett antenna okán tud nagyobb távot. Ráadásul SPI buszos.[ Szerkesztve ]
My own programming language: http://www.robomax.online
-
robohw
aktív tag
válasz zsolti_20 #11597 üzenetére
Mi a viszonylag nagy hatótáv?
Azt tudni kell, hogy ezek a free frekik nem véletlenül vannak korlátozva, az adók kimenő teljesítményét illetően. Mind azonos frekvencián dolgozik (433, 866 Mhz, 2.4 Ghz). Ki örülne neki, hogy valaki más miatt nem tud forgalmazni, mert az ráült a sávra? Ezért kell a hatótávot lekorlátozni, hogy ha X hajtha a modelljét kecskeméten, akkor ne lehessen már fogni a jelet még New Yorkban is.
Van profi RC adó-vevő, amit csak használatba kell venned, elég komoly hatótávú is akad, de az drága.
Ez a kicsi meg csak 1 USD egy pár, ráadásul ennek tudod emelni a kimenő teljesítményét.[ Szerkesztve ]
My own programming language: http://www.robomax.online
-
-
robohw
aktív tag
válasz zsolti_20 #11601 üzenetére
Magából az eszközből tudsz repeatert csinálni, ezekből akár egy chain-t is létre lehet hozni, de ha folyamatos adatátvitelre akarnád használni, arról lebeszélnélek, mert büntetés jár érte.
Ennél jobb és legális is, ha WiFi-vel oldod meg. Irányított antennákkal már lehet olyan pont-pont összeköttetést kiépíteni, amely km-eket is áthidal. Persze ehhez rálátás szükséges a két antenna között.
Én csináltam már 8 km-es linket, de tudok 80 km-esről is.
Hát, az enyémnél is elég kemény volt az antennákat ütköztetni, a 80 km-nél nem tudom, hogy sikerült ez nekikMy own programming language: http://www.robomax.online
-
ecaddsell
aktív tag
válasz zsolti_20 #11599 üzenetére
Hatótáv mondjuk 400-500m jelerősség pedig olyan legyen hogy egy fal ne legyen probléma neki.
Ott vanank pl a walkie talkie. Ezeket használnak a security-k a kommunikációhoz. Van köztük kb 1km, teljesen fém az egész épület és mégis tudnak egymással kommunikálni, pedig jelerősítő sincs köztük.Eléggé kevered as dolgokat. Ha normál walkie-talkie-ról (446 MHz-es PMR) beszélünk az már alapból 500mW (és nem max. 100mW mint ezek a távirányítós cuccok) egy viszonylag jó nyereségű antennával (az USA-ban ezt másképp hívják ott FRS=Family Radio Service a neve és ott a szabvány limit is 2W (persze ott kevésbé begyöpösödött emberek szabványosítanak mint az EU-ban).
Amit a biztonságiak használnak az meg mindezeken is jó eséllyel túlmegy simán kb. 5W környéke (USA megfelelője GMRS, megint gyakorlatiasabb hozzáállással szétválasztva a hobbi meg az ipari kategóriát).
Ennek ellenére ha sok a zavaró tereptárgy inkább néhány száz méter az a km.
Nyílt terepen persze simán megvan az 5-10km is...Bár nem fogom minek egy távirányítós hajónak több száz méter (ahova már eléggé nehezen látsz el), de ha ez kell akkor az antennára érdemes fókuszálni. Szóval jó ha a vevő IPEX vagy SMA csatlakozós és e-miatt le lehet árnyékolni és ki lehet venni mint zajforrás az antenna meg lehet irányított (ez az adónak sem árt)...
Egyébként bár nem érint a modellezés téma azt hinném a hajó a legegyszerűbb mert nyílt terep és jól irányítható antenna. -
tonermagus
aktív tag
válasz zsolti_20 #11614 üzenetére
Nem még, nagyon szépen köszönöm!
Sokat tanultam belőle, és még laikus számára is érthető a nagy része.
Viszont 2 dolgot nem vágok alapvető elektrotechnikai ismeretek hiányában:- Mi célt szolgál az áramkörben a motor elő bekötött Tranzisztor és Kondenzátor?
Csak tippelek, hogy az egyik védi az arduino-t a kisüléstől?
-
Gergosz2
veterán
válasz zsolti_20 #11647 üzenetére
Persze, miért ne. Valami olyasmit csinálnék, hogyha "A" akar adatot küldeni "B"-nek, akkor először megpróbálja direktbe, ha nem megy neki akkor meg a repeater-en keresztül. Ha meg az se éri el akkor meg vagy "A" még messzebb van vagy vmi más baja van.
Szóval lehet, csak le kell programoznod.
Nokia 6030 Hardcore User // I Panic Restaurant by Taito
-
DigitXT
félisten
válasz zsolti_20 #11659 üzenetére
Bizonyára. A trükk az, hogy amit leírtál, az két paraméter megadása,
logikus, hogy nem működik, ha az adott függvény egy paramétert vár.
Össze kéne fűzni egyetlen változóba a dolgot, s azt átadni neki. -
DigitXT
félisten
válasz zsolti_20 #11661 üzenetére
Mint írtam, az a vessző a paramétereket választja el, tehát ahogy a hibaüzenet írja:
az a hívás nem érvényes, hogy átadnál neki egy const char [5] és egy char [13]-at.
Ott egyetlen paramétert vár, tehát előtte össze kellene fűzni, pl. valami ilyesmiképp SD.exists(concat("asd/",filename))Csak most nincs előttem, hogy ez a concat megvan* natív C-ben, vagy az Arduino
féle Strings objektum kreálmánya, amit amúgy nagyon fikáznak ebben a cikkben...*: ha nincs, akkor persze meg lehet írni, de ez nem Arduino-specifikus dolog.
[ Szerkesztve ]
-
DigitXT
félisten
válasz zsolti_20 #11668 üzenetére
Ilyenkor célszerű felütni valami referencia dokumentációt, pl. mondjuk ezt: [link]
bool SdFat::exists ( const char * name )
Test for the existence of a file.
Parameters:
[in] name Name of the file to be tested for.Returns:
true if the file exists else false.Vastagítás tőlem: ennek nem lesz jó a String objektum, ha amúgy azt használsz:
szerencsére erre is van megoldás, konkrétan átkonvertálja karaktertömbbé.[ Szerkesztve ]
-
DigitXT
félisten
válasz zsolti_20 #11672 üzenetére
Az csak elírás, hogy egyszer kis string, másszor meg nagy String? Csak mert
nem ugyanazt jelentik. A String az egy objektum, annak van "+" művelete. Míg
a string az nem objektum: talán így le sem fordul a kód, ha kisbetűvel írtad...A "filename" amúgy micsoda? Azt hol definiáltad, és hogyan kap értéket?
Na igen a 8.3 is befigyel, de így nehéz debugolni, hogy csak a fél kód van meg. -
Janos250
őstag
válasz zsolti_20 #11675 üzenetére
Vagy innen:
http://www.cplusplus.com/reference/cstdio/sprintf/Hogy ismételjem önmagam:
"amikor írunk egy programot, nem úgy kell gondolkodni, hogy hogyan írjuk ezt "Arduinóban", hanem, hogy hogyan írjuk ezt C++-ban"
https://prohardver.hu/tema/arduino/hsz_11576-11576.htmlRá-rácsodálkoznak arduinosok egy-egy C++ osztályra, függvényre, hogy ezeket nem, vagy ritkán írják az Arduino tutorialokban, pedig tudja.
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
DigitXT
félisten
válasz zsolti_20 #11679 üzenetére
Nézd, programozni nem lehet csak ennyire elmesélős szinten. Nem tudjuk,
pontosan mit csináltál azzal a sprintf-fel, mibe akartál vele írni mit... Azt se,
hogy debug esetén mit látsz: az alap C programozást célszerű megismerni.
Kifagy az egész? Már mi? Az arduino? Végtelen ciklusba kerül a kód? Nincs
lefoglalva előre a memória? Nem nullára végződik a karakter sorozat?
Új hozzászólás Aktív témák
- Keresek - Macbook Air M3 16GB / 24 GB - 512 GB SSD - Magyarországi beszerzés, tehát kb. 3 év garit
- Tyű-ha Lenovo Thinkpad T14 G2 Üzleti "Golyóálló" Laptop 14" -50% i7-1185G7 4Mag 16GB /512GB FHD IPS
- Ej-ha Lenovo Thinkpad T14 G2 Üzleti "Golyóálló" Laptop 14" -50% i7-1185G7 4Mag 32GB /512GB FHD IPS
- Eladó Nitro Venture TLS Snowboard Bakancs 46-os
- Eladó Nitro Team 2022 162W Snowboard Deszka
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen