-
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
-
Janos250
őstag
Én most nem tudok olcsót, általában min 1500 Ft körül vannak.
A verziók gyakorlatilag megegyeznek. Az ESP32 ugyebár az alap chip. Amikor ez megjelent, akkor pár gyártó gyorsan el is kezdett vele lapot gyártani. Mivel nagyon vártam az ESP32-t, én is rendeltem gyorsan tavaly ősszel 9000 Ft-ért egy ilyen panelt, ami azóta is a fiókban hever. Akkor még nem volt megfelelő támogatás hozzá.
Igen gyorsan megjelent az ESP32S, ami egy hibrid tokozás fém tokban, tartalmazza az ESP32 chipet, flash memóriát, és még pár alkatrészt. Aztán gyakorlatilag ugyanezt elkezdte gyártani az Espressif is, ESP-WROOM-32 néven. Ma már ez gyakorlatilag egyeduralkodóvá vált, ezt érdemes venni. Amit ESP32S megjelöléssel hirdetnek, ma már azok is általában ezt tartalmazzák.
Pl.: https://www.ebay.com/itm/ESP32-ESP32S-CH340G-Development-2-4GHz-Dual-Mode-WiFi-Bluetooth-Module-Antenna/282633370924?epid=866775664&hash=item41ce42fd2c:geMAAOSwv-ZZ9YZE
Én pl. ezeket használom, mert szeptember elején ezeket lehetett 1200 Ft körüli áron megvenni. Nem volt vele gondom:
https://www.ebay.com/itm/ESP-32S-ESP-32-Development-Board-2-4GHz-Dual-Mode-WiFi-Bluetooth-Antenna-Module/302252239864?hash=item465fa32bf8:g3kAAOSwTM5Yx~38
A különböző gyártók által gyártott lapok között nem különösebben lényeges az eltérés. A lábaknak a panelra írt elnevezése különböző, de azt általában tartalmazza az Arduino IDE, ha a megfelelő panelt választjuk ki.
A hardware\espressif\esp32\boards.txt fájlban láthatjuk, mennyi féle laphoz van meg a saját támogatás, de az ESP32S-et választva se szokott gond lenni. A lábak elnevezése, stb. a hardware\espressif\esp32\variants könyvtárban található verzióként.
USB mindenképpen legyen rajta. Az USB chipek közül ki melyiket szereti, az ízlés kérdése. Megfelelő driverrel mind jól működik tapasztalatom szerint.Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Teasüti
nagyúr
Nagy overhead a ram és rom méreteket illetően, bár van hely bőven így ez nem akkora probléma.
Emiatt ugye a számítási teljesítmény egy része is elúszik. Bár így is 100x gyorsabb egy UNO-nál, szóval mindegy is.
Egyfajta virtualizációhoz lehetne hasonlítani.Mondjuk nem hiszem, hogy nálam összetettebb felhasználása volna itt még vkinek (73 KB-os forráskód +könyvtárak, amiből a BLE megeszi a rom a közel 70%-át) és jómagam sem futottam még bele se teljesítmény se tárterület problémába. Mondjuk még szeretném majd kipróbálni az OTA programfeltöltést. Arra számítok, hogy az még egy jelentősebb szeletet elvesz a tárból.
A wifi azt hiszem teljes támogatottságot élvez, a BLE már működőképes, de még "béta" állapotú és így nem fejleszt rá egyetlen 3rd party sem. Ez azt jelenti, hogy a valós alkalmazásokban sok mindent magadnak kell megoldani.
A perifériák közül eddig én egyedül csak az RMT-t használtam, így a többiről nem tudok nyilatkozni.
Az Arduino függvények úgy tudom működnek mind, illetve nem tudok példát hozni az ellenkezőjére.
Nekem az UNO-ra írt programom egy az egyben lefordult ESP32-re is (az Atmel-re írt könyvtárak nélkül természetesen), így ez teljes értékűnek tekinthető szerintem.Nálam is tervben volt az IDF megismerése és az alacsonyabb C nyelv tanulgatása, de így hogy megy amit akartam Arduino-ban is, így nekem nem is fontos.
Meg a mai világban már nem divat a nehezebb úton menni és szopatni magad a hardver specifikus utasításkészlettel és telefonkönyv módszerrel regisztereket programozni, amikor némi overhead árán, de pár absztrakciós réteggel feljebb is meg lehet oldani a problémát könnyen és gyorsan, specializált tudás nélkül.
Persze nem is lesz olyan hatékony a kód, de ki nem szarja le, érted... Ez nem a Crysis, hogy ultra grafikán kisajtoljak minden fps-t a vasból.
Senkit nem érdekel mit csinál a digitalRead(), amíg megvan az eredmény.
Példánál maradva:extern int IRAM_ATTR __digitalRead(uint8_t pin)
{
if(pin < 32) {
return (GPIO.in >> pin) & 0x1;
} else if(pin < 40) {
return (GPIO.in1.val >> (pin - 32)) & 0x1;
}
return 0;
}Na most e szerint az sem mindegy melyik lábat olvasom. Programozzon így az, akinek két anyja van!
Én inkább beírom, hogy digitalRead() és együtt élek az overhead-del.[ Szerkesztve ]
-
Janos250
őstag
Teasüti jól összefoglalta a dolog lényegét, pár dolgot tennék hozzá:
Az Arduino ugyebár egy de facto "programozási szabvány". Azt mondja ki, hogy ha portolják egy kontrollerre, akkor bizonyos függvényeket, osztályokat kötelező az adott kontroller "nyelvén" megcsinálni, ami utána az "Arduino része" lesz. Ez nagyon nagy könnyebbség. Az STM32-re is portolták az Arduinot, elég jó is.
Az ESP32 kissé más, mint a többi:
Először is adott két mag. Azonkívül az általam ismert kontrollereknél a perifériák regisztereit memória címen símán elértem. Többnyire adott volt, hogy melyik periféria melyik lábhoz tartozik. Na, ez az ESP32-nél nem ennyire egyszerű. Bevezettek egy mátrixot, ezen keresztül lehet elérni a perifériákat. Ez nagyfokú rugalmasságot biztosít, mert bármelyik periféria bármelyik lábhoz kapcsolható, de egyben bonyolultságot is, mert meg kell mondanod,hogy mi mihez kapcsolódjon. Aztán, hogy még bonyolítsuk a dolgot, a perifériák alapállapotban "alszanak", pl. órajelet se kapnak.
Így még a hozzá tartozó regisztereket se tudod se írni, se olvasni. Először kell nekik órajelet adni, és resetelni, utána írhatók, olvashatók a regiszterei. Az órajel adás és a resetelés elvileg egyszerű: elérhető regiszterekben az adott perifériához tartozó bitet kell beállítani órajelhez, illetve törölni a resethez.
Igen ám, csakhogy az ESP azt nem mondja meg, hogy melyik perifériához melyik bit tartozik. Sebaj, kinézzük az illesztő programokból, gondolja Móricka. Viszont az illesztő programok lefordított assembly programok, aminek a forráskódját az ESP nem hozta nyilvánosságra eddig. Tehát a processzor közeli programozás még egy ideig macerás lesz. Az Arduino rendszerben viszont minden elég jól ki van dolgozva.
Tehát:
Az ESP megcsinálta az alapvető kezelést biztosító assembly nyelvű rutinokat.
Erre épülve készült el rá a freeRTOS. Ezt használja az IDF is. A freeRTOS-ra épülve portolták az Arduinora.
A freeRTOS függvényeit - általában - Arduino rendszerben is lehet használni, hiszen az Arduino "szabvány" függvényei is ebben íródtak.
Összefoglava:
Arduinoban programozása kényelmes, nagyon gyors, rengeteg a periféria, a két mag más programozási technikákat is lehetővé tesz, de ha processzor közeli módon akarod használni, az azért még jelenleg szívás.Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
-
fpeter84
senior tag
Elméletben a PIR-eken lévő BIS0001 (vagy klón) 3-5V tápról is mehet, az ilyen általános kínai modulokon pedig ott szokott lenni egy SOT23-3 tokos, feltehetően LDO csipp, a kimenetre pedig a pdf-ek 3V-ot írnak. Meg kell nézni, ki kell mérni hogy az valóban egy 3.3V-os LDO e? Ha igen, akkor egyszerűen le kell kapni, át kell hidalni, és máris kész a 3.3V-os modul...
-
gyapo11
őstag
Már nagyon sok töltő van a LiIonhoz is. Ha nagyon egyszerű kell, akkor Liitokala 100, 202, 402, ezek 1, 2, 4 cellát tudnak egyszerre tölteni, de az igazi az 500-as, ami szintén 4 cellás, viszont tud tesztelni és méri a cella belső ellenállását, lcd kijelzővel, háttévilágítással, 12 V 2 A-es táppal, autós tápcsatlakozóval. Szokták akciózni kuponnal, 14-17 $ közötti áron. Ezek mind használhatók powerbankként is, a jobb oldali helyre betéve LiIon cellát 5 V 1 A-t tudnak kiadni.
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
-
Janos250
őstag
Én legolcsóbbnak ezt találtam:
link
Egy a lényeg: ESP-WROOM32 (tehát az a fém tokos hibrid valami) legyen rajta. Amire azt írják, hogy ESP32S, ma már az is ugyanaz. Nézd meg a kinagyított fényképét.
A neten ajánlják azt is, amin van oldalt egy fehér tápcsati, de itt korábban valaki azt írta, hogy a + és - fordítva van bekötve, tehát figyelni kell.Bizony a kínai vásárláshoz türelem kell
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
_q
addikt
Lehet hogy folyton resetel az mikrovezérlő? Mert amit előző hsz-ben bemásoltam azt minden esetben kiírja serial monitorban, tehát az valami alap cucc. Viszont ha sima uart kommunikációt csinálok, akkor megy a "Hello Word" az előző hsz-ben írt sorok után.
Régebben olvastam itt a topic-ban valamit hogy az eszköz resetel és volt is valami megoldás rá. Esetleg valakinek ötlete jó után gondolkodok-e? WifiScan mintapéldánál, ahol elvileg nem is kell csatlakozni se, csak nézi milyen elérhető wifi hálózatok vannak, ott is csak újraindul folyton.
Másik kérdésem még az lenne, mi ez amit kiír mindig serial monitoron?
[ Szerkesztve ]
-
Janos250
őstag
-
Tankblock
aktív tag
-
Janos250
őstag
Időzítési hibák a driverben.
microsecondsToClockCycles()
InterruptLock()
Ezek nem igazán az ESP32-höz készültek.
Ilyesmikért nem kedvelem az Adafruit drivereit, mert sok bennük a specialitás.
Nem a hardverben van a hiba. Szerintem.[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
Ezért csinálok én gyakran saját drivert.
Valamikor tavaly ilyenkor a DHT11-re csináltam egyet, de már nem emlékszem részletekre. Beletekintve - úgy látom - elég általános, mert delay()-el vannak az időzítések, tehát - elvileg - nem kontrollerfüggő. Nem tudom, DHT22-re jó-e. Ha gondolod, próbáld ki. Vagy az időzítéseket át is írhatod a DHT22-re. Tettem bele annak idején az időzítésekről egy Móricka ábrát, gondolván arra, hogy egy év múlva, már fogalmam se lesz, mit miért csináltam. Nekem most nincs kéznél DHT22, nem tudom kipróbálni.
linkAz amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Xpod
addikt
Aliexpress-ről, Kínából. Gondolom kicsit felpörgették a dolgot, hogy a nagy ünneplés előtt fel legyen adva. Bár néhány review-t olvastam a feladóról, és több helyen is kiemelték a gyorsaságát.
Ja és 2db-os csomagban volt, asszem 3500Ft.
[ Szerkesztve ]
Most kezdődjék a tánc! - mondta a papagáj és berepült a ventilátorba.
-
Janos250
őstag
Valahogy, valahol, csak ki kéne lehessen jelölni, mi a std kimenet, bemenet.
Pl. ha egy másik serialt akarok erre használni (Az ESP32-nek 3 van). Vagy ha egy fájlt akarok standard kimenetnek. A file műveletek működnek, de hogy irányítom rá az stdout-ot?Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
Ezt elsődlegesen az oprendszernek kellene tudni, mert pl:
cplusplusprogramom > eredmeny.txt
átirányítja a konzolt az eredneny.txt fájlba.
Itt a freeRTOS valószínűleg tudja valahogy, de egyelőre fogalmam sincs, hogyan.
Vagy programban az
freopen("eredmeny.txt","w",stdout);
Na, ezt még majd bogozom, de hogyan irányítok mondjuk egy Serial-re, arról gőzöm sincs, mert stream ugyan, de valahogy mégse passzol.
A windows ilyen szempontból nemigen ad információt.
Isten nem ver bottal, csak windows-zal.Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Teasüti
nagyúr
-
Janos250
őstag
Miért kell neked SoftwareSerial, miért nem jó a sima Serial?
void helloWorld() {
Serial.println(" helloWorld ");
} ;A SoftwareSerial a régi idők serialje.
"nagyon más a programozása az ARM processzor miatt?"
A C++ elvileg ugyanaz minden processzorra, csak a periféria kezelő rutinok lehetnek mások, de a Serial minden portolásnál alap.[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
A szoftveres a GPIO időzített billegetésével állítja elő, ezért a nagyon régi hardveren is megy. A hardveres meg odaadja a hardvernek, és az elintézi. Gyorsabb, biztosabb, viszont kontrollerenként külön meg kellett rá írni a drivert.
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
Milyen méretre gondolsz?
Ha centire, akkor van:
https://www.ebay.com/itm/TTGO-MINI-Wemos-D1-ESP32-32S-WIFI-Development-Board-Bluetooth-CP2104-ESP8266/282765911347?hash=item41d6296533:m:muiXj0-qSqQnCUYjkXpIW3g[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
Ha saját PCB-t akarsz gyártani, akkor számításba jöhet maga az ESP-WROMM-32 modul, mivel az tartalmaz minden lényeges dolgot a modulon belül. Árulják hozzá a "fehér panelt", ami - ha kell - segítséget nyújthat a bekötéshez, vagy hosszú tüskékkel akár a panelra illesztve.
https://www.ebay.com/itm/ESP-WROOM-32-ESP32-ESP32S-IoT-Wifi-Wlan-BLE-Module-Adapter-Board-New/192253158352?hash=item2cc32e63d0:m:m-ZePhfZj7iMjfsrkyAZUiQ
USB-soros konverter nincs rajta, de ez úgyis csak a programozáshoz kell, a normál üzemhez nem.Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
Biztos, hogy ezt a 04-et akarod használni? Úgy gondolom,elég nehéz lesz olyan embert találni, aki még ezt a régi típust használja. Ha nem akarod az ESP32 vonalat, hanem mindenképpen az ESP8266-nál akarsz maradni, akkor mi az oka, hogy nem az ESP12-t használod ugyanúgy, mint még sokan mások? Abból is van olyan verzió, ami picike, csak a chip (a fehér panelra rakható)
https://www.ebay.com/itm/Esp-12E-ESP8266-Serial-Port-WIFI-Transceiver-Wireless-Module-AP-STA-New/253142334988?epid=1279738338&hash=item3af0757e0c:ggwAAOSwgjFZqqLM
16 x 24 mm
Sokan használjuk ezt, amikor kicsi a hely.[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
Szerintem igen , de a döntés az övé, mert másként minden gondért a javasoló a hibás! Az én elvem, hogy mindig használjuk a legkorszerűbbet, ami ár/érték arányban még jó. AZ ESP32 a maga kategóriájában jelenleg mindent magasan ver ilyen szempontból. De ha ragaszkodik a 04-hez, akkor nincs mit tenni, használja. Azt se tudom, mennyi memória van a 04-ben. Belefér az Arduino, vagy AT parancsokkal kell programozni? Mert ha igen, akkor kell hozzá egy másik chip is, ami kezeli. Persze lehet, hogy felmegy rá az Arduino, nem tudom, ennek talán érdemes lenne utánanézni!
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.