Hirdetés
- Milyen videókártyát?
- Több száz játékban kezdi meg karrierjét az FSR Redstone
- Házimozi belépő szinten
- Milyen alaplapot vegyek?
- Milyen egeret válasszak?
- Természetből eredő gyökerekhez tér vissza a Keychron
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Gaming notebook topik
- Milyen RAM-ot vegyek?
- Apple asztali gépek
-
PROHARDVER!
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
-
vargalex
félisten
válasz
Janos250
#10885
üzenetére
Én is használom több helyen. Többek között zseblámpákban is (Convoy S2+) és ESP8266-okkal is. Előbbi villogással jelzi a merülést, utóbbiak a hőmérsékletek mellett a beérkező feszültséget is post-olják, amire szerver oldalon egy riasztást írtam. (Nyilván az alkalmazott HT7333 miatt csak azt érzékelem, ha 3.3V alá esik).
Csak notebook akkukból bontott, illetve 8 db, az említett eladótól beszerzett celláim vannak. -
fpeter84
senior tag
válasz
zsolti_20
#10793
üzenetére
A klasszikus arduino-k nem annyira alkalmasak az elemről/akkuról működtetésre, valamint ha vezetéknélküli kommunikációt is szeretnél, akkor lehetnek már arra is jobb megoldások! Akár az ESP8266 wifi-vel, akár az ESP32 wifi+bluetooth-al - mindkettőből létezik pár $-ért olyan kivitel amire közvetlenül is köthetsz li-ion akkut, tölteni is tudja, üzemelhet is róla... Milyen távolságra szeretnél milyen mennyiségű adatot küldeni, illetve elemről/akkuról mit kéne csinálnia, mi lenne üzemidőben az elvárás?
-
válasz
t72killer
#10756
üzenetére
Az a baj, hogy egyszerre akarsz mindent is.

Amit most leírtál, azt valószínű legjobban tényleg raspberry-vel lehetne megoldani, de nem azért írom itt a raspberry-t, a raspberry topikban meg az arduino-t, hogy szivassalak.
Az attiny felesleges redundancia lenne a projektben, mert az esp simán tudná vezérelni a gombokat és wifi-n keresztül http parancsokat adni. Ahogy én csinálnám: egy routert beállítanék repeater módba, ami a környéken fogható free wifi-re csatlakozna, erre kapcsolódna a kamera és az esp is, így nem kéne két hálózatot kezelni. Az esp szerintem képes arra, hogy 4Mbyte-os jpeg-eket leszedjen a kameráról és továbbítson, ha tényleg http parancsokkal ezt meg lehet oldani (az esp szakértők majd kijavítanak, ha tévedek), ez esetben viszont nem világos, hogy ha már a kamera a netre van kötve, miért nem próbálod otthonról a neten keresztül letölteni a kameráról a képeket és az esetleges videó streamet?
A kamera vezérlésről http protokollon keresztül tudsz leírást adni? -
t72killer
titán
válasz
Janos250
#10734
üzenetére
Az esp8266-al kapcsolatban rögtön itt a mélyvíz
. Azaz, a távoli kamera projektemhez nem csak szimpla kikapcs-bekapcs megoldást, de komplett vezérlést és adattovábbítást (streaming vagy fájlfeltöltés) is szeretnék varázsolni.Ezt különösebb programozási tudás nélkül le lehetne rendezni pl egy izmosabb Rock64+android+kameraapp segítségével, érdekelne, hogy tisztán arduinó alapon megoldható lenne-e a darabonként 3-4megás fotók, horribile dictu fullHD live streaming feltöltése? Azaz összedobható-e egy eszköz, ami az egyik oldalról a kamera AP kliense, a másik oldalról pedig az alkalmasint elérhető ingyenwifihez, vagy a backupként üzemeltetett LTE-hez kapcsolódik és az egyiken bejövő képi anyagot teljes tömegében át tudja tolni, azaz effektíve routerként/bridge-ként funkcionál?
-
Teasüti
nagyúr
válasz
fpeter84
#10736
üzenetére
Csak hangosan gondolkodom:
Működne vajon a futás közbeni Serial inicializáció? Egyes lapoknál lehet mux-olni a gpio lábakat (esp32), ott futás közben váltogatni melyikre írjon ugyanaz az UART periféria.
Arduino lapokon nincs Mux úgy tudom, ott Software Serial-lal lehet befogni más gpio lábakat erre. Nem tudom a könyvtár tud-e kezelni több virtuális portot is.
Esetleg külső hardver jöhetne még szóba vmilyen shift regiszteres módon, ami az SPI-hez hasonlóan váltogatja az eszközöket. -
Janos250
őstag
válasz
t72killer
#10733
üzenetére
Ez kezdéshez jó választás. Ne vegyél hozzá WiFi-s lapkát! Ha WiFi-t akarsz próbálgatni/használni, akkor ESP8266 (Pl. Wemos), vagy ESP32. Az ESP8266 1000 Ft alatt van, az ESP32 meg 2000 körül.
Az ESP8266 előnye, hogy az okosotthon témába elég jól beillesztették. Számos Sonoff gyártmányú lap van hozzá viszonylag olcsón, amik célfeladatokat látnak el. Pl. WiFi-s fali villanykapcsoló, hőmérő, páratartalom mérő, miegymás. Ha az ESP8266-ot nagyjából megismered, akkor ezeket könnyedén tudod használni. Egy lelkes ember írt egy minden Sonoffra jó, paraméterezhető programot (Tasmota néven), ami egyből illeszkedik az okosotthonos dolgokhoz. Az ESP32 előnye meg az, hogy op. rendszert használ, és 2 mag van benne, tehát a párhuzamos programozáshoz jól jön. Mindenesetre kezd el a megrendeld UNO-val, aztán majd lépsz tovább! -
Janos250
őstag
válasz
t72killer
#10731
üzenetére
Így, hogy elolvastam amiket írtál, pár privát megjegyzés:
1. Hajrá, mások is így kezdik, fog az menni. Ha elakadsz, szólj, és lökdösünk!
2. Nem vagyok meggyőződve, hogy ez az icuri-picuri lapocska túl jó választás volt kezdésnek.
Hogy mi a jó, arról megoszlanak a vélemények. A neten az "arduinos Hello World" az UNO.
Arra van rengeteg program, tutorial, miegymás. Igaz persze, hogy a többi lapokon is gyakorlatilag változtatás nélkül, vagy minimális változtatással futnak ugyanazok a programok, de kezdők számára előny, amikor fénykép-szerűen ott egy UNO, és látod, melyik lábhoz mit köss.
Vannak korszerűbb lapok, amik nem, vagy alig drágábbak, és mint már írtam, általában változtatás nélkül mennek rajta a más lapra írt programok.
A korszerűbbek: ARM alapú a DUE, de rokona az elég nagy tudású és olcsó STM32 sorozat. Aztán jött az ESP8266 ami WiFi-t is tud, majd ezt korszerűsítve az ESP32. Én mostanában ez utóbbit szoktam ajánlani, bár kaptam is már érte a fejemre.
3. Az Arduino lapokat C++ nyelven programozzuk, azzal a kiegészítéssel, hogy számos osztály és objektum van előre definiálva, amit minden lapnak tudnia kell, ha illesztik ebbe a rendszerbe. Példa erre a serial
osztály, és annak egy előre definiált példánya, a Serial(). Ha most kezded, ne mássz bele az objektumos örökléses részbe mélyen, használd ökölszabályszerűen őket, pl. a Serial()-t. Majd később megérted,
hogy pontosan mi is az, és miért úgy van. A C mutatóit meg egyelőre végképp ne! A fordítók a GNU C++
fordítók valamelyik verziója, ez biztosítja a szabványosságot. Majd később, ha valami hiányzik, nézd meg, hogy van az a C++-ban, és próbáld ki! Meg fogsz lepődni: megy, akkor is, ha az arduinos irodalom nem írja. Én - mint már mondtam - az ESP32-t használom, ami a C++11 szerinti fordítót használja, és valóban tudja is. (Pl. a szálak "szabványos" kezelése, stb).
4. Mégegyszer: Hajrá! -
gardener
senior tag
Szerettem volna beletölteni egy ino file-t.
A következő hibaüzenetet kaptam:
Arduino: 1.8.5 (Windows 10), Alaplap:"FireBeetle-ESP32, 80MHz, 115200"Vázlat használ 708166 bájt (54%) -ot a program tárhelyből. A maximum 1310720 bájt.
A globális változók 37464 bájt (11%)-ot használnak a dinamikus memóriából, 290216 bájtot hagyva a helyi változóknak. A maximum 327680 bájt.
C:\Users\Attila_Dell_N7710\AppData\Local\Arduino15\packages\esp32\tools\esptool_py\2.6.0/esptool.exe --chip esp32 --port COM6 --baud 115200 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 0xe000 C:\Users\Attila_Dell_N7710\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.1/tools/partitions/boot_app0.bin 0x1000 C:\Users\Attila_Dell_N7710\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.1/tools/sdk/bin/bootloader_dio_80m.bin 0x10000 C:\Users\ATTILA~1\AppData\Local\Temp\arduino_build_15388/mah_robot.ino.bin 0x8000 C:\Users\ATTILA~1\AppData\Local\Temp\arduino_build_15388/mah_robot.ino.partitions.bin
esptool.py v2.6-beta1
Serial port COM6
Connecting........____
Chip is ESP32D0WDQ6 (revision 0)
Features: WiFi, BT, Dual Core, Coding Scheme None
MAC: 24:0a:c4:82:f4:78
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Warning: Could not auto-detect Flash size (FlashID=0xffffff, SizeID=0xff), defaulting to 4MB
Compressed 8192 bytes to 47...A fatal error occurred: Timed out waiting for packet content
A fatal error occurred: Timed out waiting for packet contentEnnek a jelentésnek több információja lehetne
a "Bővebb kimenet mutatása fordításkor"
opció engedélyezésével a Fájl -> Beállítások-ban.Haver valami olyat mondott, hogy kevés a memória és az OTA-t ki kell hagyni-kapcsolni. És akkor belefér a progi. De ezt, hol hogyan kell? Kezdő vagyok még ... szájbarágósan kéretik szépen. köszi.

-
ESP32-őn Arduino IDE alatt próbált valaki posix thread mutexeket használni? Folyton lefagy az egész, pedig linuxon működik a kód.
-
válasz
Teasüti
#10651
üzenetére
Te tényleg értesz.

"Az adó-vevő hókuszpókusz"
Ez sajnos kudarcba fulladt, mert nem bírok belőle analóg jelet kifacsarni. De maga a soros kommunikáció már egészen jól működik. Viszont távolságtól függetlenül néha egészen közelről is hibák jelentkeznek, amit képtelen vagyok visszafejteni, ehhez már vagy egy oszcilloszkóp kéne, amit linkeltél, vagy egy digitális jelanalizátor, amit Janos250 kolléga ajanlott régebben, de egyik sincs itthon sajnos. Gyanítom már nem a kommunikációban van a hiba, inkább valami esp specifikus dolog lehet, ami néha megzavarja a pontosan időzített küldést."38 Khz-es négyszögjel esetén - vagy ami átjön a bandpass filteren - húzza GND-re."
Analóg jel esetén ez úgy működne, hogy a jel mindig valahol 3.3V és 0V közt lenne, az adó távolságától és az adás teljesítményétől függően. A kettő közt félúton van egy választóvonal, ami alatt 0-nak, fölötte pedig 1-nek veszi a feszültségszintet, tehát bizonyos távolságból az adás egyszerűen csak el fog tűnni. Persze tudom, hogy van egy sáv, ahol határozatlan lesz a, mondjuk 1.8-2.5V közt, itt valószínűleg véletlenszerű adatokat fogok kapni. -
válasz
tvamos
#10635
üzenetére
Meg mernék esküdni, hogy az utóbbi két napban legalább háromszor leírtam már (én ugyan high pass filtert írtam), de legyen:
Szükségem lenne egy bandpass filterre, ami egy ir tranzisztor jelét szűri olyan módon, hogy megfelelő amplitúdójú 38kHz-es négyszögjelre alacsony jelszintet hozzon létre egy esp8266 bemenetén.
Hiába van ez a tervező, ezzel a rajzzal nem tudok mit kezdeni:

Nem a számolás részével van problémám, nincs kész kapcsolási rajzom!
Hova kössem az ir tranzisztort? Hogy fog ez nekem alacsony jelet produkálni az arduino bemenetén? -
válasz
brickm
#10632
üzenetére
Most az egész projektet nem érted, vagy azt sem, hogy kellene egy 32kHz vágási frekvenciával rendelkező high pass filtert tervezni ir tranzisztorhoz, ami egy esp8266 bemenetét vezérelné? Bemegy egy 38kHz négyszögjel, ennek az amplitúdóját szeretném megkapni analóg módon az esp bemenetére.
-
Janos250
őstag
"Emellett a küldő oldal jelerőssége alapján szeretnék hozzávetőleges távolságmérést csinálni"
De a jel erőssége nem csak a távolságtól függ, hanem pl. attól is, milyen szöget zár be a vevő és az adó.
Ha jól emlékszem, ESP-t használsz. Ott van a WiFi.RSSI(), ami a jel erősségét adja. Nem tudom, mennyire használható. Én nem használtam még semmire, csak passzióból íratom ki néha.
"árulnak arduino-hoz való ir távolságszenzort, ami egy egyszerű reflektív optokapuból + némi elektronikából áll, ahol az ir led fényét frekvenciamodulálják, hogy ne zavarja a környezeti fény."
Na, ahogy én tudom - lehet rosszul - ez azért ennél bonyolultabb. Az IR-rel a távolságmérést nem a jel erőssége, hanem a visszavert jel visszaérkezési idejéből számítják. Mivel a fény szeret elég gyorsan menni, ezért ilyen pici időt macerás mérni. Ezért találták ki azt az ötletet, hogy modulálják a kimenő fényt, majd a visszavertet is ugyanolyan erősségűre erősítik, aztán "összekeverik". A fáziskésésből adódóan a kevert jel erőssége függ a fáziskéséstől, azaz a futási időtől. -
válasz
tvamos
#10620
üzenetére
Köszönöm az észrevételeket, ezekkel már tudok mit kezdeni.

"Tehat, ha a nap besut az ablakon, es a robotod azzal szembe megy, akkor nem lesz jeled."
Igen, ez egy kompromisszum, a smart car-ommal szerzett tapasztalatok alapján direkt napfényben nem hatékony a szimpla ir tranzisztor, nem akarom a fizika törvényeit megszegni, ha kell, lehúzom a redőnyt.
De ha a tsop képes direkt napfényben is működni, akkor valamilyen megoldásnak létezni kell."hogyan tudnad a tavolsagot merni, ha nem mashogy, mint egy masik tavmero szenzorral, vagy haromszogelessel."
Két ir szenzor + háromszögelés
"A terhelesed nincs impedancia illesztve. Ha a kimeneted feszultseg, akkor az R2 legalabb 100k kene legyen"
Ha jól értem az esp bemeneti impedancia számít, ami ez esetben ha jól tudom MΩ nagyságrendű. Az R2 azért ennyi, mert erre találtam példát az egyik fórumon.
"Ha mondjuk 200mVpp az AC, es 3.3V a a tap, akkor 3.2V es 3.4V kozott lesz a kimeno feszultseg. Ez kell neked?"
Igazából 0V és 3.3V közti értékeket szeretnék kapni. Hogy ezt milyen áramkörrel lehet elérni - na azt szeretném most megtudni... Gondolom kellene bele egy(-két?) dióda, ami nem engedi a jelet a tápfeszültség fölé menni.
-
Teasüti
nagyúr
válasz
Teasüti
#10505
üzenetére
Na ez mekkora véletlen!

Most döbbentem rá, h 5V-on küldi a megszakítást az mpu6050 giro modul, esp32 meg annyira nem rajong ezért. Viszont belekukkantva az ellenállás utáni feszültségbe, kiderült éppen tökéletes magasságba fut fel a tüske és a program is csont nélkül működik az IO0 lábon és bootloop sincs.
Ennek mekkora esélye volt már??
Ez ebben az egy esetben jobb megoldás, mint újratervezni a nyák-ot.

-
válasz
robohw
#10593
üzenetére
"A másik, hogy kopasz diódákkal, tranyókkal kiépítesz egy saját rendszert."
Ezt is szeretném, mivel már kiderült, hogy egy ir receiver kimenetéről sehogy sem tudok analóg jelet levenni.
Egy erősítés (opamp) nélküli sima RC tagot kellene tenni a tranzisztor és a bemenet közé, csak nem tudom egyedül kiszámolni. Tud valaki segíteni egy kapcsolási rajzzal? Analóg áramkörökhöz nagyon láma vagyok"Amit itt kutyulsz, az véleményem szerint aligha fog eredményre vezetni."
Miért mondod ezt? Ez nekem hobbi. Máris volt eredménye a "kutyulásnak", szeretek tanulni, egy csomó mindent tanultam az esp8266-ról, amíg utána néztem a dolgoknak. Beleástam magam az ir és a serial (uart) protokollba, módosítottam egy library-t, kiegészítettem paritás ellenőrzéssel, meg frekvencia modulációval úgy, hogy működőképes maradt.
Bele fogom tenni a GCR kódolást is, mert azzal 1600baudos sebességet fogok tudni elérni, szemben pl a BI Phase Coding-gal, amivel elméleti szinten is legfeljebb csak 1000baud lehetséges (azzal a vevővel legalább is, amivel én próbálkozom).
Elnézést, ha zavarok a kérdéseimmel, sosem tanultam elektronikát, se programozást, csak autodidakta módon, és kizárólag azt kérdezem itt meg, amire hosszas kitartó guglizás és utánaolvasás után sem találok választ. -
szuszinho
őstag
Nodemcu-n easy esp és egy DHT11 (GPIO-2, D4), de nincsenek adatok (esp-01-gyel sem volt)
Arduino IDE alatt írt kóddal működik, tehát az eszközök jók.
Mi lehet a gond?

-
IR-kommunikáció témakörben előre léptem egyet. Átírtam az esp software serial lib-et, tettem bele paritás vizsgálatot és pwm modulációt, hogy 38kHz-es ir receivert tudjak használni.
A helyzet a következő: az analogWrite túl szép volt, hogy igaz legyen, valamiért használhatatlan, gondolom inkább hangfrekvenciára lett tervezve. Ezért kénytelen voltam a jó öreg "bit-bang" módszerrel (ha valaki tudja, hogy mondják ezt magyarul, megköszönöm, ha megírja
) csinálni, elég durva, de működik.
Ezután egészen váratlan dologgal szembesültem: egyrészt túl jó az adatátvitel hatótávolsága (10mA árammal 2m-ről simán tudok adatot küldeni), másrészt a távolsággal csökken az átviteli sebesség.
Sem a duty cycle, se a hordozó frekvencia durva elállítása nincs különösebb hatással a vételre, 5%-os kitöltés és 20kHz esetén sem csökken drasztikusan a hatósugár, létezik, hogy ezekben a kis vevőkben automatikus gain szabályozás van?
Viszont az átviteli sebesség csökken, zavarérzékeny lesz a kapcsolat, és nem eltűnik az adat, hanem kicserélődik garbage-ra... És sajnos 1200baud-nál gyorsabban nem igazán működik. Az eredeti terv 4800baud lett volna, de ennél a sebességnél egy másik rejtélyes dolog történik: túl érzékeny lesz a vevő!
Ha túl közel viszem az adót, megszűnik az adatforgalom és szemét jön csak helyette. -
Janos250
őstag
válasz
Breaker
#10567
üzenetére
Ha még a D1 is nagy, akkor rárakod egy "fehér panelra".
https://www.ebay.com/itm/PCB-Adapter-ESP-07-12-Board-fur-ESP8266-WIFI-Wlan-Serial-Modul-ESP-12E-E/252713824790?hash=item3ad6eaf216:g:0WQAAOSwXKtb5KtL:rk:9:pf:0
Van ESP32-höz is, bár annak a forrasztása elég macerás.
Ennél kisebbet nehéz lesz találni. -
ecaddsell
aktív tag
válasz
Gergosz2
#10562
üzenetére
Nem tudom az ESP-ből, hogy lehetne klónt használni

Persze már ma is vannak területek, ahol kínai másol kínait...
Egyébként érzésre az ESP mintha nyugati cég lenne, van rendes doksi, van rendes fórum ahol ha értelmesen kérdez az ember gyakran válaszolnak is. Szokatlan. -
szuszinho
őstag
Sziasztok,
Felteszem ESP-01-re az Easy ESP-t USB to TTL segítségével (GPIO0 GND-re rakva). Sikeresen felmegy, leveszem a tápról, majd vissza és nincs ott az AP. Mi lehet a gond?
-
tvamos
nagyúr
Ilyesmi modulja van már valakinek? [link]
Milyen ez az ESP32 PIco D4? -
brickm
őstag
válasz
Atamano
#10543
üzenetére
Szia, a kondenzátor nem véd túlfeszültségtől! Más szerepe van az áramkörben.
Ha védelmet tervezel rá tenni, azt mindenképp a kiementre tedd, (vagy oda is) ugyanis (bár az IC pontos típusát nem látni) ezeknek a dc-dc konvertereket egy feszültégosztóval állítják be, a kiementről visszacsatolva, aminek ha az egyik tagja sérül(megnyúlik, vagy szakadáshoz közelít) felviszi a kiementi feszültséget, akár táp közelig.
Az ESP-k érzékenyek erre, 3.6-4V körüli csúcsfeszültséget képesek elviselni. -
Janos250
őstag
-
válasz
tvamos
#10535
üzenetére
Lesz még jócskán annyi kihívás ebben a projekben, hogy nehezítsem a saját dolgomat.
Egyébként most, hogy így mondod, lehet, hogy tényleg érdemesebb lenne először megnéznem a softwareserial lib-et, hátha tudom úgy módosítani, hogy egy tranyóval is működjön az egész. Mert én forrasztani sem szeretek, viszont az esp-vel még nem kötöttem olyan szoros barátságot szoftveresen, mint az uno-mega lapokkal...
Ha nem lenne jóval több ram-ja az esp-nek, és nem akarnám wifi-n keresztül programozni, inkább egy nano-val csinálnám az egészet.Jó ide jönni, mindig kap az ember jó ötleteket!

-
Tankblock
aktív tag
Hello
Milyen ESP32 használsz?
Ha Devboardot akkor az nem lesz kevesebb,Ha egy sima ES32 használsz nyákra forrasztva az működhet sokkal kisebb felhasznált energiával is deepsleep mellett....
pl vannak időzítő aramkörök set / reset lábakkal amik vezérelhetnek sima lineár regulátort enabled pinjét, így [nA] tartományban is tartható az ESP32.
-
ESP32 mellé milyen 3,3 V-os regulátort ajánlotok, amelyik nem szívja le az akksit? Sajnálattal konstatáltam, hogy ami a lapon van, azzal 27 napot ment a projektem 4 db. 2000 mAh AA-ról, ami kb. 2,5 mA nyugalmi fogyasztás
Nézegettem Mouseren /csak mert jól lehet keresni/, de nem nagyon van semmi regulátor, ami low Iq, de tud 500 mA-t is /és kapható Pesten/. LiFePo4-et nem erőltetném, félek a lítiumtól, ha nem vagyok a közelben. -
tvamos
nagyúr
Ti probaltatok mar az ESP32 DAC-ot DMA-val, Arduino framework alatt? Kene egy jo referencia sw, amit tudnek hasznalni.
-
Neem
Én nagyon szívesen összerakom, csak nem tudom mennyire ütköznék kompatibilitási gondokba, hogy nem passzol pl egy motor a lego elemekhez, emiatt eléggé elcsúnyítaná az egészet. Főleg akkor, ha az a lego nem is vezérelhetőre lenne tervezve hanem csak egyszeri összerakásra, így nem férne el egy motor, egy esp32 és egyéb meghajtó áramkörök helyhiány miatt.Amit küldtél sajnos nem olcsó, emellett jóval másabb mint egy lepin wall-e, kevésbé tűnik minőséginek.
Összefoglalva azért gondolkoztam el egy már motorizált mozgó lego/lepin eszközön, mert ott már ki van alakítva a motor és meghajtás. De te azt mondod, hogy egy sima összerakásra tervezett verziót is simán át lehetne alakítani úgy hogy a helyhiány ne okozzon gondot még akkor is, ha nem asztal méretű porsce-ben gondolkozok 100 ezer Ft-ért, hanem csak egy kisebb pl. wall-e vagy hasonló méretben?

-
Valami kész lego/lepin járműre gondoltam, amit át lehetne építeni esp-t felhasználva valamivé
Mondjuk telefonról nyomkodni az irányokat, vagy automatizálni magától menjen. A vázát adná a lego/lepin, a motorok és a felfogatás is adott lenne, így könnyen átépíthetővé válna és ráépíthető lenne a vezérlő, ami ESP32. -
Na úgy néz ki mégsem kell újra feltalálnom a meleg vizet.

Addig olvastam, amíg kiderült, hogy a mintának tekintett Lego Spybotics egyszerű soros kommunikációt használt, 4800baud sebességgel, 72kHz-es infra jelre ültetve, nem a távirányítóknál használt protokollt. Tehát elméletileg 1 hardveres + 2 szoftveres serial meg is oldja a 3 infra vevő egyidejű használatának problémáját. Legalábbis a lib leírása szerint az avr software serial-lal szemben az esp változatnak nem okoz gondot két példány egyidejű működése.
Ráadásul a küldés is leegyszerűsödik (legalábbis a kód része), és nem kell használnom azt a hatalmas és komplikált irlib-et, ami nem is kimondottan erre való.
Viszont ahhoz, hogy a soros kimenetet tudjam használni, kelleni fog egy AND kapu, vagy egy hasonló működésű logika + egy 38kHz pwm-met kell valahogy előállítani. -
tvamos
nagyúr
Nem tudjatok hogyan lehet Center Aligned PWM-et csinalni az ESP32-vel? Sokat segitene, ha tudnam a frekit ketszerezni. (Asszem...)
Amugy ezt a projektet probalom utanepiteni: [link] Jopofa dolognak tunik. -
Nem a dolog egyszerűsége, hanem pont a bonyolultsága miatt gondoltam.

Van a LEGO Spybotics rendszer, jó régi, az eredeti Mindstorms-szal egy idős. Az egyik tulajdonsága, hogy ha van két ilyened, meg tudják egymást keresni infra sugárzók és vevők segítségével, és le tudják egymást lőni. Gyakorlatilag lézerharc, robotokkal.
Érzékeli a másik robot irányát és távolságát. Hátránya, hogy nekem csak egyet sikerült szereznem, csak soros porton át lehet programozni, és csak egy fény és egy ütközésérzékelőt lehet rá tenni, ami eléggé lekorlátozza a lehetőségeket.
Na ilyet szeretnék csinálni, rögtön kettőt is, csak wifi-n keresztül lehetne őket programozni és több szenzort szeretnék rá tenni, amivel a külvilágot érzékelik.
Most éppen ott akadtam el, hogy az esp ir lib csak egy ir receivert fog támogatni, szóval erre kellene még kitalálnom egy multiplexert, amivel egy pin-re 3db ir vevőt rá tudok akasztani... -
Köszönöm! Hát a D9 meg D10 az máshol van mint az uno-n.
Az elgondolás az volt, hogy a servo motor megy a servo1-es csatlakozóra, meg lesz még 1-2 sima motor. (vagy csak 2 motor, servo nélkül)
Lego alkatrészekből készült távirányítós teherautó a cél. A motorok direktbe az arduino motorvezérlőre kötve,mert nem lego motorok. 3d nyomtatóval majd lesz nekik keret nyomtatva.Plusz ledek, első körben ennyi, aztán tervben volt még okorsítani kicsit, mondjuk ütközés védelem, vagy sávkövetés. De úgy látom ehhez nincs elég használható lába.A wemos alapból tud wifit, meg bluetoothot, ezért lett volna jobb, de alig van szabad pinje. Van uno-m is bluetooth modullal meg L298N-nel, abból már építettem 2 motoros "autót".
A múltkor motorvezérlő nélkül már simán tudtam a servo motort irányítani wemos-szal wifin kersztül, de a másik két motornak csak kéne valami vezérlő... 3x3,7V lipo cellákról menne.
Lehet a L298N jobb választás ebben az esetben.
Jön még egy ESP12e+L293 shield hozzá, azok kisebb helyen is elférnek. Ez is szempont lenne. -
Janos250
őstag
válasz
Pubszon
#10406
üzenetére
Nem egy olcsó megoldás, de kényelmes. Én mostanában ezekkel játszom.
https://www.ebay.com/itm/Sonoff-T1-WiFi-RF-Panel-Touch-1-2-3Gang-Switch-Smart-APP-Remote-Timer-UK-EU-Plug/323323099082?hash=item4b478ef7ca:m:mMQyXvai39vS-ojsAMvugFQ:rk:80:pf:0ESP8266/1M van benne. Arduino alatt úgy programozható, ahogy csak akarjuk, de a "Tasmota" rendszer is nagyon kényelmes, szintén Arduino alatt viszem fel az első variációt, utána OTA (azaz WiFi-n keresztül) lehet frissíteni, változtatni. Célszerű hozzá valami legolcsóbb lapra (valamelyik pi, vagy hasonszőrűek, vagy egy olcsó TV box) felrakni egy Mosquitto ("visszhang", jel ismétlő, szétosztó) szervert, aminek ha üzenetet küldünk bárhonnan (pl. az előbbi kapcsoló, telefon, internet), az továbbítja a megfelelő eszközhöz. Például kapcsolja a kapcsolót. Aztán, ha belekóstolunk az ízébe, akkor jöhet mindenféle egyéb szenzor, Sonoffok, miegymás. Ha még jobban megtetszik, akkor továbbléphetünk, valami okosotthon vezérlő szoftver felé, és akkor már teljes az örömünk.
-
tvamos
nagyúr
válasz
Teasüti
#10380
üzenetére
"Csúnyán benéztem egy tervet: ESP32-n IO0-ra tettem egy MPU6050-es interrupt lábát, ami mint kiderült áram alá helyezve alapból pulldown módba kapcsol és ez download módba teszi a vezérlőt."
Ezert erdemes breadboarddon kiprobalni. (Persze, akkor meg orokre ugy marad...) -
Teasüti
nagyúr
Csúnyán benéztem egy tervet: ESP32-n IO0-ra tettem egy MPU6050-es interrupt lábát, ami mint kiderült áram alá helyezve alapból pulldown módba kapcsol és ez download módba teszi a vezérlőt.
(Open-drain módban csináltam a tervet, be is lehet konfigurálni a modult erre, de azt nem tudtam, hogy push-pull módban hajlandó csak inicializálni.)
Sajnos a nyákot átkötni nem tudom, egyelőre kiforrasztottam a modulból ezt a tüskét.
Kérdés: át tudnám hidalni ezt a problémát egy ellenállással? Invertáláshoz túl sok alkatrész kellene és én csak arra gondoltam légszerelve ráakasztok egy 1M-ás ellenállást a nyák és a modul közt. Ez elvileg nem engedi lehúzni az IO0-át a saját felhúzójával szemben boot-kor (ami asszem 50k körül van). Viszont működésében ez vajon mennyire zavarja be a megszakítást? Lesz egy fel- és lefutása azoknak az éleknek, vagy ettől a komparátor még nem jön zavarba?
INT nélkül is megyeget a dolog polling-gal, viszont INT-el szeretnék ébreszteni majd alvó módból. -
#define TIME_COMP_SEC_PER_HOUR 25
void go_to_sleep(const uint32_t sleep_length_in_sec)
{
uint32_t sleep_length_comp_in_sec = (3600 * sleep_length_in_sec) / (3600 - TIME_COMP_SEC_PER_HOUR);
Serial.print("Requested sleep duration: ");
Serial.println(sleep_length_in_sec);
Serial.print("Compensated sleep duration: ");
Serial.println(sleep_length_comp_in_sec);
esp_sleep_enable_timer_wakeup(sleep_length_comp_in_sec * 1000000);
esp_deep_sleep_start();
} -
-
LógaGéza
veterán
Ma érkezett egy csomag, két ESP32-vel. Az egyik egy TTGO, aminek szerintem hibás a kijelzője. Csináltam egy videót, olyan mintha csak minden második sor menne talán.
Ugyanez a kód a másikon tökéletesen lefut, és a kijelzőnek is tökéletes képe van.
Én szúrok el valamit, vagy mehetek reklamálni? -
Janos250
őstag
válasz
tvamos
#10342
üzenetére
Szó nincs arról, hogy leszólnám, aki eredetit vesz. Egy félmilliós projektbe nem illik 800 Ft-os kínai alkatrészt rakni. (Vagy ha igen, akkor legalább olyan "gyártótól" vegyük, aki átcimkézi valami nyugati brandre
)
Viszont, aki a gyereknek játszani veszi, vagy az okosotthonos lámpa kapcsolgatásra, annak jó a kínai is.
Tápkocka:
12 V-ot nem bírja? Meg a 230-at se!
Én már a régi időkben sem terveztem 12 V-os megtáplálást a 7805-nek. Minek megtáplálni egy arduinot 12 V-al?
Mellesleg számomra nem túl lényeges az ügy, mert már jó ideje csak ESP, STM kontrolleres lapokat használok. Persze kínait. -
Teasüti
nagyúr
válasz
Janos250
#10325
üzenetére
Egy ilyen zárt rendszerre jó lehet még a BLE is. Tulajdonképpen ilyen jellegű kommunikációra találták ki.
ÉsESP_PWR_LVL_P9max. teljesítményen elvileg 100 méteres hatótávolsága van ESP32-nek nyílt terepen. (Gyakorlatilag meg 30 métert ért el a fórumozó egy garázsajtón/falon keresztül.)
Persze ha ki akarja vinni a netre az ember, akkor kell a hálózatba egy AP is, ami fordít a BLE és a TCP-IP közt. -
tvamos
nagyúr
válasz
Teasüti
#10290
üzenetére
Nem tudom, hogy a "esp32 kernel panic" dologrol van-e meg szo, de nekem volt problemam azzal, hogy task-ok kozott volatile globalokkal akartam adatokat atadni.
A megoldasthoz ezt a doksit hasznaltam: [link]
Az adatokat ennek a pvParameters mautatonak a segitsegevel adtam at.
Bocs, ha mar nem errol van szo! -
válasz
Teasüti
#10285
üzenetére
Nem értek annyira hozzá, de a taskok nálam is furán működtek. Már korábban lehet írtam, de most hogy szóba került leírom megint hát ha van összefüggés vagy ötlet.
Task nélkül tökéletesen fut a program: ESPNow, I2C, Wifi(Webserver + NTP), SPI. Ezeket használom. Taskokkal megoldva már kevésbé. I2C-n olvasva nem mindig kérte jól le az adatokat az ESP. Próbáltam prioritásokat állítani, próbáltam 0 és 1 mag között ide-oda pakolászni a taskokat. Néha jól olvasta az I2C adatokat, néha nem, néha meg többször egymás után rossz adatok jöttek. Néha reset segített, néha az se. Emellett volt még a wifi-nél NTP-vel is gond, bár ott nem emlékszek, hogy kimondottan a task okozta-e, de azóta hogy nem task-al oldom meg nincs egyikkel se baj.
Tehát ahogy kezdtem nem értek hozzá, tapasztalatot írtam le, de gyanúm az lenne, hogy az ESP nem teljes értékű 2 magos eszköz mint egy számítógép processzor. 0. magon mennek a perifériák, 1. magon meg nem véletlen van a loop is. Tehát lehet próbálkozni taskokkal, de valójában 1 magos az eszköz, 0. mag a sok periféria elem miatt van, hogy ne akadjon össze. Szerintem.
Szívesen fogadok bármiféle észrevételt.

-
Sziasztok!
ESP32 SPIFFS-el foglalkozott valaki? Csak olvasgatás szinten néztem rá és felmerült kérdésként a működése. Ez ha minden igaz a 4MB flash-ből foglal le egy bizonyos méretet fájl tárolására, így kevesebb hely marad a fő program számára ha jól értem. Tovább menve az elv is kérdés számomra:
Since if SPIFFS was never formatted it will fail mounting and we need to format it, then we will pass this flag as true. In my case, I already had my file system formatted, so this flag has no effect.
Eszerint hasonló mint egy winchester partícionálás? Ha egyszer lefoglaltam az SPIFFS-nek egy bizonyos méretet (leformáztam), akkor később hiába töltök rá egy egyszer LED Blink programot, nem fogja az egészet letörölni, programot rátölteni és a fentmaradó részt üresen hagyni? Tehát ha többé nem kell a fájlrendszer akkor le kell valahogy törölni az SPIFFS partíciót?
-
Tankblock
aktív tag
válasz
Teasüti
#10277
üzenetére
Hello,
Miért az összes file végződése .ino?
Azt nem értem, hogy miért van a fps_cap paramétered a Setup függvényben kiszámolva, de a task már rég fut mire odaérne a számolásban???
A taskok közötti változók kezelésére volatile kellene ha nem lehet máshogy muszáj. Ha meg csak 1x kell
futnia inkább tedd a Task elejére mielőtt a végtelen ciklus futna.....ez inkább C kód mint C++...
Amit tanácsolok, dekomponáld a projectet kisebb részegységekre majd egyesével integráld vissza.
NE használj változókat különböző taskokban főleg ha az csak egy konstans --> arra van a #defineMinimalizáld a változóidat és funkcionlításokat rendezzd classokba...
Task elején class init majd végtelen ciklusba számolja amit kell. Taskok közötti communikációra FreeRTOS is van ajánlása xQueue vagy xEventGroup ha szignálozni kellene,A debug üzeneteket is mentsd le, mert sokat segítenek abban, hogy merre kellene nézelődni. Pluszban most egy MQTT C++ dolgozom és memory leak után nyomozok.
Itt pl a
ESP_LOGI(TAG, "[APP] Free memory: %d bytes", esp_get_free_heap_size());használom a szabad memória fellelhetőségének. -
XP NINJA
őstag
Sziasztok, ESP32-höz szeretnék oled kijelzőt rendelni. Ez működne? [link]

-
Teasüti
nagyúr
válasz
Janos250
#10253
üzenetére
Valamint tőled kérdezném még, mint ESP32 gurutól, hogy találkoztál-e már olyan hibával, hogy pánikol a CPU 1 a sok task miatt, viszont olyan 5-6 reset után végül csak képes elindulni a oprendszer?
Jelenleg 6-7 taskom van, amit szétszórtam a két mag közt (0. magon a gyors függvények, 1. magon a hosszabb programok), prioritásnak alacsony 10 alattiakat adtam meg és mindegyik task-nak eltérőt.
Ha csökkentem a taskok számát, akkor nem pánikol a proci. Van erre vmi ötleted mi lehet?
Minden task-ot szabályosan írtam meg: végtelen ciklusban futnak valamennyi delay()-jel a végükön. -
#include <ESP8266WiFi.h>
WiFiServer server(80); //a szerver a 80-as portot figyeli
int LED_PIN = 2;
void setup() {
WiFi.mode(WIFI_AP); //access point
WiFi.softAP("Hello_IoT", "12345678"); //ssid plusz jelszó
server.begin(); //192.168.4.1
//Looking under the hood
Serial.begin(115200); //Start communication between the ESP8266-12E and the monitor window
IPAddress HTTPS_ServerIP= WiFi.softAPIP(); // Obtain the IP of the Server
Serial.print("Server IP is: "); // Print the IP to the monitor window
Serial.println(HTTPS_ServerIP);
pinMode(LED_PIN, OUTPUT); //GPIO16 is an OUTPUT pin;
digitalWrite(LED_PIN, LOW); //Initial state is OFF
}
void loop() {
WiFiClient client = server.available();
if (!client) {
return;
}
//Looking under the hood
Serial.println("Somebody has connected :)");
//Read what the browser has sent into a String class and print the request to the monitor
String request = client.readString();
//Looking under the hood
Serial.println(request);
// Handle the Request
if (request.indexOf("/OFF") != -1){
digitalWrite(LED_PIN, HIGH); }
else if (request.indexOf("/ON") != -1){
digitalWrite(LED_PIN, LOW);
// THE HTML document
String S = "HTTP/1.1 200 OK\r\n";
S += "Content-Type: text/html\r\n\r\n";
S += "<!DOCTYPE HTML>\r\n<html>\r\n";
S += "<br><input type=\"button\" name=\"b1\" value=\"Turn LED ON\" onclick=\"location.href='/ON'\">";
S += "<br><br><br>";
S += "<input type=\"button\" name=\"b1\" value=\"Turn LED OFF\" onclick=\"location.href='/OFF'\">";
S += "</html>\n";
//Serve the HTML document to the browser.
client.flush(); //clear previous info in the stream
client.print(S); // Send the response to the client
delay(1);
Serial.println("Client disonnected"); //Looking under the hood
}
}Ezt a példát tettem fel a Wemos-ra. Ha simán az url mögé írom (192.168.4.1/ON vagy OFF) akkor megcsinálj. OFF esetén bedobja azt a honlapot is, ami bele lett írva a kódba. De tetű lassú, ezzel hogy lehet egy autót távirányítani? Rég nekiment volna már bárminek, mire veszi a következő utasítást.
-
Wemos D1 R2-alapon készítenék távirányítós autót. Uno+bluetooth-tal csináltam már ilyet, de esp8266-tal még nem. Egyáltalán mivel lenne jobb: wifivel vagy bluetooth-tal? A wifinek nagyobb a hatótávolsága, így akár egy sportpályán is lehetne játszani. Telefonon keresztül irányítanám.
-
-
Teasüti
nagyúr
válasz
ecaddsell
#10236
üzenetére
ESP32 floating-point performance
És a hozzá kapcsolódó Espressif fórum téma.Lényegében csúnyán kikap az ARM procitól.
-
ecaddsell
aktív tag
Lehet, hogy az esp32 lebegőpontos képességei túl gyengék lennének a feladathoz.
Nekem nem úgy tűnik vsz. jobb mint bármi más ebben a kategóriában...
http://www.robinscheibler.org/2017/12/12/esp32-fft.html -
-
Teasüti
nagyúr
válasz
ecaddsell
#10226
üzenetére
ESP32 kimenetein egyébként ha jól tudom több fokozatú meghajtás van. Vannak kisebb és gyorsabb FET-ek, és vannak erősebbek, de lassúbbak. ESD kár tipikus példája amikor a kicsi FET-ek elszállnak, de a nagyok még működnek. Az egészből annyit veszel csak észre, hogy nem hozza a specifikációkat a port nagyobb sebességen.
Épp mostanában olvastam erről, már nem tudom minek a kapcsán.
-
tvamos
nagyúr
Ezt aprojektet szeretnem lemasolni nemi valtoztatassal: [link]
Lenne a projektben meg egy ESP32 is.
Meg lehet valahogy szerezni ezt az arm_math.h-t ESP-re, vagy veszett fejsze nyele? (En nem talaltam meg. LEhet, hogy rossz kereso szavakat irtam a google-be.)
Mert ha nem lehet, akkor teszek egy-ket Teensy-t az ESP melle, csak jo lett volna elkerulni ezt. -
ecaddsell
aktív tag
válasz
Amarton
#10225
üzenetére
Pedig tényleg nagyon kicsi a valószínűsége, hogy hibás legyen, különösen nagy szériás cuccnál ahol minden automatizálva megy beleértve a tesztelést.
A chip-eket pl. a legtöbb esetben gyári szalagból kivágva kaptam.
Pl. DC-DC konverternél meg a panelizált (géppel) beültetett NYÁK-ból nem törték szét az egyes darabokat, hanem egyben küldték a min egységet amit árultak.
Persze nem mindig ez van, pl. csatlakozósoros panelt sose kapsz panelizáltan.Egyébként ilyen esetek elkerülésére (különösen, ha nem túl drága) min. duplán szoktam venni. Amellett, hogy lesz tartalék (és nem kell hónapot várni míg megjön a másik ha valami gond van), ilyenkor megnézem, hogy minden darab ugyanúgy működik és ha igen élek azzal a feltételezéssel, hogy valahol máshol van a gond.
Nem mondom, hogy sose fordulhat elő, hogy hiba van és ha valami akkor az ESD bárhol tönkre tudja vágni a cuccot.
Egyébként az ESD az egyik legalattomosabb hiba, mert ez az ami nem feltétlen teljesen teszi tönkre egyből a cuccot és ez ami nagyon rossz mert nehéz észre venni, mert pl. SPI még simán megy, de valahol már nem tudja a speckót a CMOS chip.
Pl egyszer ESP32 valamelyik pinjére véletlenül 5V jutott. Egyből tönkrement és annyira nagy áramot vett fel, hogy a stabi IC majdnem kiégett. Rögtön látszott kuka. Másik ESP32 egyik pinjénél meg azt vettem észre, hogy nem bírja a nagyobb frekvenciás jelet. Vsz. olyan ESD-t kapott amit már nem teljesen kezelt a védelem (valami minimális védelem van ezekben) és az a pin bizonytalanná vált. Legalább fél órám ment rá (de lehet jóval több), csere más pinre, csere más ESP32-re stb mire megtaláltam mi lehet a gondja.Szóval lehet a cuccod pont ott ment tönkre amikor bekötötted.
Aztán még van olyan storym is amikor a CMOS chip (ADF4351) EN pinje nem lett felhúzva, de csak 1 másképp tervezett panelnél vettem észre a hibát (bizonytalanná vált a lock), mert az elsőnél olyan volt az elrendezés, hogy annyi áram odakúszott, hogy elég volt neki (ugye CMOS bemenet több 10 MOhm tip.). Ha nem kapok egy másképp tervezett panelt, lehet sose veszem észre...
Röviden: El lehet hobbizni ezekkel az Arduino kompatibilis cuccokkal, ahol a hibák/veszteségek nem nagy ügy (pláne, ha rátolod az eladóra), de az ipari kategória nagyon más. Nem véletlen, hogy nagy-szériás gyártás ma már szinte csak Kínában fordul elő. Nem mellékesen szokás szidni a minőség-ellenőrzést. De azért nézzük meg, hogy pl. a jlcpcb-nek 20 cent/hobbi paneles árba (szállítás nélkül értendő) belefér automatizált optikai és elektromos ellenőrzés. Ezek után nem csoda, hogy ennek a szakmának se nálunk se nyugaton sem rózsásak a kilátásai. Hobbizni persze OK.
-
Teasüti
nagyúr
válasz
Janos250
#10200
üzenetére
Olyan túl sok mondanivalóm nincs a PCNT-vel kapcsolatban. Működik a példa alapján.

Inkább matematikai fejtörést okoz a frekvencia mérése. Ugye másodperc az alapegysége, viszont nekem ennél gyakoribb frissítés kellene. Mondjuk olyan 200 ms-os frissítés már elfogadható. Ez viszont azt jelenti, hogy fel kell szoroznom a mért értéket ha SI mértékegységet szeretnék látni. Ez meg precizitás csökkenéssel jár, így már csak a(z 5-ös) szorzó többszörösét kaphatom eredményül. Ráadásul így az 5 Hz a legkisebb mérhető egység, ez alatt inkonzisztens eredményt ad nulla és öt között váltakozva. Ezt így egyelőre csak szűréssel tudom áthidalni.
Nincs vmi jobb matematikai módszer a gyakoribb frissítésre? Kíváncsi lennék vajon egy hall szenzoros jeladóból hogy számol pontos értékeket gyors frissítéssel egy km óra?Hogyne használtad volna a PWM-et, vagy sose írtál még be egyetlen ledcWrite() parancsot se?
RMT-t meg én nem használtam még direktben sose, csak könyvtárból. RMT-vel hogy csinálnál mondjuk 100 Hz 50% PWM jelet?
RMT bemenetként is érdekelne, állítólag azzal periódusidőt is lehet mérni vhogy. Na ha vmi, akkor az precíz és gyors lenne!
Meg most láttam a Technical Reference doksiban, hogy vannak natív Motor Control funkciók is a PWM perifériában ESP32-ben.

Na erről nem is tudtam. Van benne egy Capture Unit is, ami meg beérkező PWM jelet tud mérni, vagy mi a szösz. Ezt megtartom harmadik lehetőségnek, ha a PCNT és az RMT nem válna be.
-
Teasüti
nagyúr
válasz
ecaddsell
#10196
üzenetére
Most néztem át ezt, de ebben nincs megszakítás kezelés.
Itt csak kiolvassa a függvény a számlálót a loop()-ban.
Természetesen már szoftveresen számolom ki a frekvenciát, vagy ezt hogy érted? Ha jól értem ezt a programot a számlálás maga nem szoftveres. Nem változóban számolja a megszakításokat, hanem regiszterben. És függetlenül attól mit csinál a cpu, legalábbis remélem. Ennyiből áll a pulse counting, nem? Vagy van rá hardveres gyorsítás, ahol a pulzusok számából frekvenciát köp ki eredményül? Meglepne...
Nem akarom túlbonyolítani a dolgot. Nekem elég annyi, hogy a program blokkolása nélkül tudjon számolni és igény szerint kiolvasni ezt az értéket.
Ezt hogy kell elképzelni? Vmi olyasmi, mint ESP32-nél a tetszőlegesen beállítható GPIO mátrix?
-
ecaddsell
aktív tag
válasz
Teasüti
#10184
üzenetére
Az első az ESP-IDF-hez íródott, miközben én Arduino IDE-ben vagyok.

Nekem még soha nem okozot gondot ESP-IDF-et használni az Arduino IDE-ből...
Többek között a második kód esetén sem.
De mindegy, te tudod mire kell és mit vállalsz be ehhez.Én elég sokat vállaltam ebben a témában (talán túl sokat is) pl. VHDL kód írása és tesztelése (működni látszik) Xilinx CPLD-re, nyáktervezés (kétfajta progit is bevetettem) stb. Nagyon sokat tanultam belőle, annak ellenére, hogy lehet ez is a befejezetlen projectek sorát fogja gyarapítani.
-
Teasüti
nagyúr
válasz
ecaddsell
#10183
üzenetére
Hát mondjuk megszakítást használni és programból számolni. Az szoftveres és sokat elvesz a cpu időből, ha nagy a frekvencia.

Értékelem a segítséget, de sajnos nem tűnik számomra használhatónak egyik sem.
Az első az ESP-IDF-hez íródott, miközben én Arduino IDE-ben vagyok.
A második meg egyáltalán micsoda? Nem fogom tudni visszafejteni azt a kódot, ahhoz túl nagy és bonyolult.
Főleg, hogy egy rakás hardver közeli függvényt hív be, amikről fingom sincsen.Vmi Instructables.com színvonalú példa nincs véletlen? Én nem találtam...
-
Janos250
őstag
válasz
gyapo11
#10172
üzenetére
Az ilyesmik miatt (is) kedvelem én az ESP32-t. Egyik szál nem csinál mást, csak figyeli a gombot, a másik szál meg..., a harmadik meg.. és így tovább, ahány kell. A szálon belül nyugodtan lehet "várakozás", mert az nem igazi várakozás, hanem a másik szálnak adódik át a vezérlés.
-
Teasüti
nagyúr
Kérhetnék egy kis segítséget a PCNT-vel ESP32-n? Nem találok egyetlen egy példát sem.

-
ecaddsell
aktív tag
válasz
Tankblock
#10148
üzenetére
Ha csak ez az egyetlen gondja lenne az ESP32 ADC-jének, akkor igen, de sajnos több sebből vérzik.
A nemlinearitás egyébként máshol jobban vesézve van:
https://github.com/espressif/esp-idf/issues/164Amit linkeltél meg van említve a zaj is, amibe már korábban is belefutottam és amit sokkal nehezebb kezelni.
Amit ajánlgatnak az vicc, 100nF-os kondit csak az tehet oda, aki valami lassú szenzort olvas. Eleve az ESP32 ADC-je nem valami gyors, szóva tipikusan a multisampling se opció.Visszatérve a zajra: A zaj forrása tipikusan a digitális kapcsolási zaj és erősen függ attól, mennyi kimenet változik szimultán módon. Na erről nem szól az ábra.
Ma (meg már 1 ideje) a komolyabb analóg és digitális részt is tartalmazó chipek több tápfeszt igényelnek. Azaz külön kellhet szűrni és stabilizálni a digitális mag tip. alacsonyabb tápfeszét (1V tól 1.8V környéke), a digit interface-t (tip. 1.8-3.3V) ill. az analóg részeket. Ez persze megdrágítja a dolgot és ott spórolnak ahol tudnak.
Kb. ennek az eredménye, hogy a spec szerint 12 bites ESP32 ADC kb. 7 vagy max. 8 bites valójában...Amivel ezzel kapcsolatban mostanában küzdök: Miután az ESP32-vel a 8 digit/s reciprok freki mérőt megcsináltam, elkezdtem áttérni a 10 digit/s-es interpoláló reciprok freki mérőre. Ennek az a lényege, hogy nemcsak azt mérjük, hogy a jel egy adott egész számú periódusára hány egész referencia jel periódus tartozik, hanem a referencia jel tört periódus idejét is mérjük.
Ez úgy történik, hogy a tört periódus ideje alatt 1 kondenzátort töltünk konstans árammal és a töltés végén megmérjuk a kondenzátor feszültségét (ennek a digitális részét CPLD adja nem az ESP32).
Mivel nálam a referencia periódusa 10ns (100MHz) max. ennyi ideig tölt a kondenzátor, ami túl nagy nem lehet, mert akkor nagyon nagy tötlő áram kellene. Szóva a kondenzátor kb. 1 nF, és 30mA körüli töltőárammal kb. 280mV feszültség emelkedést lehet elérni max (azaz normálisan 0-280mV emelkedés, ami nem nulláról indul, szóval lényegtelen, hogy kis értékeket nem tud az ESP32 mérni).
Azaz a két digithez kb. 3mV felbontással kellene mérni. Viszonylag gyorsan, mert a kis kondenzátor gyorsan veszti a töltést még nagy impedancián is.
Na itt az ahol az extra 100nF nem opció.
Oszcilloszkópon frankón látszik a jel. A filléres Aneng 8008 multiméter is konzisztensen tudja indikálni az feszültség emelkedést.
Csak az ESP32 küzd a jellel a saját maga által generálta zajban...Szóval messze nem csak a linearitás a gond. Zajos és a sebessége is megérne 1 külön github részt, hogy mi a teendő, ha normális sebességet szeretnénk (erre is elég sok fórumbejegyzés van már). Talán mégsem véletlen a sok panasz.
-
válasz
Tankblock
#10151
üzenetére
Igen, emiatt vettem külső ADC-t. Költségbe így rosszul jöttem ki.
Az ESP 3v3 regulátorából jövő feszültséget használtam és egy potit, közben multiméterrel mértem. 0-3V között 10-15 pontot vettem fel. A multiméter ami elvileg pontos, ahhoz képest tized voltokat tért el az ESP ADC-jével mérve az érték. 3-3.3V között talán 1 értéket mért az ADC, 3.1 V körül már 3.3V-ot mért, miközben multiméterrel láttam, hogy nem annyi az érték. Közel 0 V-nál is hasonló volt, bár ott pontosabb. Tehát a 0 és 3 V körül levágta az értékeket és nem pontosan mérte, a kettő között pedig tized-század V eltérések is előfordultak. Ahol esetleg a tized V eltérés belefér ott még használható lehet talán.
Sajnálom, mert az uno-n lévő atmel ADC-je elég pontos és általános mérésekre szépen használható, ami nem mondható el az ESP32-ről.

(#10153) tvamos
Én mikor keresgéltem arduinos könyvtár support-ot, akkor az ADS1115-ot találtam, így nekem az lett. -
Attix70
aktív tag
válasz
Tankblock
#10148
üzenetére
Teszteltem de nem lineáris, és nem is 0-tól indul a mérés ez a grafikonon is látható (persze attól még lineárisnak tüntetik fel). Ha használni akarom akkor kell egy tartományt keresnem amin belül lineáris (egyéb hardveres trükkökkel). Ez egy nagy hibája az ESP32-nek, remélem megjelenik valami hasonló amin az AD konverter jól működik

-
Attix70
aktív tag
válasz
rsanya87
#10134
üzenetére
A tápnak nem az áramával van gond, hanem a stepper motorokkal. Mivel induktív jellegű ezért lehet, hogy az adott alkalmazásban (12V-ról) csak pár tized ampert vesz fel. Ahol erő is kell ott minimum 24V-os táplálást használnak, csak tanácsot szerettem volna adni (szerintem ez lenne az egyszerűbb, egy próbát megér).
Más:
Korábban kérdeztelek titeket, hogy mivel oldanátok meg elektromos bicikli diagnosztikáját (HC-05+arduino vagy ESP32). ESP32-őt ajánlottatok. Próbálkozásaim alapján tapasztaltam, hogy nagyon NEM lineáris az ADC benne ami egy akkus eszköznél fontos lenne. Valami tanácsotok lenne? -
válasz
XP NINJA
#10108
üzenetére
Ezzel próbáltad? [link] Én legutóbb ezzel sikeresen felraktam.
Amúgy ha nem megy a rátöltés, akkor a gomb nyomkodásnál annyit kell, hogy a töltés közben mikor kiírja, hogy "....." ott lenyomni a boot gombot az ESP board-on, reset-et nem kell nyomkodni.
Belinkeled milyen ESP32 board-ot vettél?
-
XP NINJA
őstag
Megérkezett az ESP32 nekem is, de nem tudom összehozni a géppel..

Felraktam a könyvtárat hozzá, CP210x_Universal_Windows_Driver is meg van, de upload-nál: A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
Ha a boot gombot nyomom hosszan, közben megnyomom az EN-t akkor pedig A fatal error occurred: Invalid head of packet (0x65). Keresem, de nem találok megoldást
Valakinek ötlete esetleg? -
brickm
őstag
Sziasztok!
Atom és platformIO modullal küzdök jelenleg. A Problémám az, hogy építettem egy szoftvert egy hardverre, amit windows alól buildelve feltöltöttem éshazsnálok jelenleg is, viszont most MAC-en sajnos nem sikerül a buildelés.
Egy ESP8266 NodeMCU-0.9es devboardra menne a program. a main.ino tartalmazza a vezérlést, az index.h pedig a webes megjelenést. Viszont feltöltés után nincs weblap. Látom a mikrokontrolleren, hogy érkezik kérés, (handle kezelőm van) de nem küld vissza lapot. Az az első gyanúm, hogy mac-en nem buildeli automatikusan hozzá az index.h file-t (ez amúgy stringbe töltődik be a programban) Meg tudom valahol nézni, hogy miket buildel? Esetleg más ötlet?
Aruino IDE alól ugyan ez a jelenség, amúgy error mentesen lefut a compile.
-
válasz
tvamos
#10077
üzenetére
Vettem egy wattmérőt, ebben van egy BL6523GX chip, ami soros porton keresztül kommunikál, és ezt szeretnék elkapni. Az a célja az egésznek, hogy egy ESP8266-segítségével espurna FW-rel, webes felületen is tudjam figyelni az aktuális fogyasztást. Perpill a FW nem támogatja ezt a chipet, és látni akarom, hogy egyáltalán kinyerhető-e valami az adatfolyamból.
-
tvamos
nagyúr
Hello!
Az a kinom, hogy az egyik taskbol szeretnem triggerelni a masikat.
Csinaltam egy valtozot, ami "volatile".
Raallitottam az egyik taskot, hogy figyelje, ha a valtozo 1, csinalja meg, amit kell, es utana allitsa 0-ba.
A loop-bol sikerul is triggerelni a taskot, szepen vegrehajtja, amit kell.
Sajnos a masik taskbol nem megy ez.
Mi lehet a problema?Jut is eszembe...
ESP32
Arduino framework
xTaskCreate-tel vannak letrehozva a taskok -
Teasüti
nagyúr
válasz
kbhuinfo
#10006
üzenetére
Megpróbáltad leválasztani az összes egyéb eszközt - ha van - és csak az esp-t és a modult beüzemelni?
Az ESP 5V vagy 3V lábáról (LDO-nak bírnai kell) megtáplálni a modult. Így a feszültségek tuti jók, hisz ugyanarról megy a vezérlő is.
Amúgy úgy méred, hogy a vezérlővel össze van kötve, vagy méréshez leválasztottad az ESP-ről? Ha utóbbi, akkor a vezérlő húzza le GND-re. Akkor viszont még a szoftver is kérdőjeles.(#10007) Amarton
Az, h "jobb", az elég relatív. Milyen tulajdonságban jobb? -
ecaddsell
aktív tag
válasz
kbhuinfo
#9998
üzenetére
A kérdés pedig: mire van szükség (ellenállás, kondenzátor, stb.), hogy jól működjön az áramkör? Feltételezem, hogy valami hiányzik és a mérés az, ami ezt az űrt betölti
Jó eséllyel árnyékolás az ami hiányzik. De ha nem is ez kellene legyen az első lépés. Az ESP32 nekem pl. bezavarta a GPS vevőt amíg jó távol nem tettem a GPS vevő antennáját.
-
kbhuinfo
tag
Elnézést a korábbi szűkszavúságért. A microwave radar (RCWL-0516) lábai VIN (5V), GND, és az OUT (ezen a lábon érzékelés esetén megjelenik 3,3V a GND-hez képest). Az ESP32-re kötve csak akkor jön 3.3V az OUT kimeneten (és jelzi a mozgásérzékelést a GPIO bemenetén az esp32-nek), ha az ESP32 GND pinje és az OUT között mérem a feszültséget egy multiméterrel. A kérdés pedig: mire van szükség (ellenállás, kondenzátor, stb.), hogy jól működjön az áramkör? Feltételezem, hogy valami hiányzik és a mérés az, ami ezt az űrt betölti... Köszi!
-
tvamos
nagyúr
Probalt mar valaki Nikon fenykepezogepet vezerelni Arduinoval (pontosabban ESP32) IR-en keresztul? Van par pelda, nem tudom, hogy melyiket probaljam.
-
Janos250
őstag
válasz
Tankblock
#9981
üzenetére
"HW azért van hogy használjuk"
A kiváncsi ember meg azért. hogy mindent kipróbáljon.
Igen, vannak rá kész könyvtárak az RMT-re, de...
Kiváncsi voltam, hogy elég gyors-e az ESP32, hogy szoftveres időzítéssel kezelje ezeket az 1 mikro alatti időzítéseket. Igen, elég gyors. Akkor persze nem a millis és micros függvényeket használjuk, hanem a 240 MHz-es órajeleket számláló SFR regisztert. Igaz, hogy ez csak 32 bites, és tizen.. másodpercenként átfordul, de lehet 64-bites eredményt is kapni, ha elég sűrűn olvassuk.Az RMT-t is végigpróbálgattam. Nem a kész könyvtárakat - bár azt is megnéztem persze - hanem közvetlenül az egyes regisztereket. Így azokat is sikerült azonosítanom, ami - akkor legalábbis - dokumentálatlan volt.
link
Ha nem -
Janos250
őstag
Leírom a saját tapasztalatomat, bár az eléggé különbözik az ESP32 miatt.
Ha a jel hosszát elég jól lőttem be, akkor rövid szalaggal símán ment. Ha növeltem a ledek számát, akkor a tiédhez hasonló jelenséget tapasztaltam. Digitális analizátorral derült ki az ok:
Az ESP32 1 ms-enként megszakít, akkor adja át a vezérlést - ha szükséges - másik tasknek. Amíg a kevés led miatt a magot megkapott processz 1 ms-en belül el tudta végezni a dolgát, addig minden símán ment. Ha ezt meghaladta a ledre "feltöltési" idő, akkor ha közben megszakított egy jel közben, akkor a rövig jel helyett hosszú lett véletlenszerűen, és bolondságokat csinált. Ha éppen egy alacsony helyiértékű bit lett hibás, akkor éppen nagy gond nem volt, de ha egy magasabb helyiértékű bit szaladt túl, akkor az galibát okozott. Nem azt akarom mondani, hogy nálad is ez a gond, hanem csak azt, hogy nálam ez volt, vedd esetlegesen számításba az időzítési hibát is. Egy digitális analizátorral kéne megnézni.(Ja, még mielőtt az ESP32-t használók felkapják a fejüket, ez annál a verziónál volt, amikor nem hardverből vezéreltem a ledeket, hanem símán C++ programból. Az ESP32 ugyanis elég gyors ahhoz, hogy ezt meg lehessen csinálni. Az interruptok megfelelő tiltásával kezelhetővé vált a probléma. A hardveres vezérlésnél ilyen gond nem volt, mert ott van elég idő az egyik pufferbe töltéshez, amíg a másik puffert nyomja kifelé a hardver)
-
Janos250
őstag
Nekem gyanús ez a 3.3V ügy! Tudtommal az első led már "feldolgozva" adja tovább a következőnek, tehát az első kivételével - gyanítom - nem villoghatnának emiatt. Én egy éve körül sokat játszottam ezzel a leddel és ESP32-vel. Az volt a tapasztalatom, hogy az általad is leírt hibajelenség időzítési hiba volt. Ha túl rövid, vagy túl hosszú volt a jel, vagy a két pixel közötti idő túl nagy volt (8 us, vagy több) interrupt miatt, és elölről kezdte.
Persze lehet, hogy nálad egész más a gond.
Új hozzászólás Aktív témák
- Bomba ár! Dell Latitude E7450 - i7-5GEN I 8GB I 256SSD I 14" FHD Touch I HDMI I Cam I W10 I Gari!
- Corsair Vengeance White RGB 2x16Gb 6000 cl36 bontatlan/új eladó (XMP/Expo)
- Dell Latitude 7290- I5 7 gen - 8Gb -256Gb
- Nikon D750 + 50mm f/1.4G + 24-120mm f/4G + Lowepro Mini Trekker AW szett
- GAMER PC - TUF B450, Ryzen5 5600x, Rtx 3070 8gb, 32gb DDR4, 1 TB Nvme
- 184 - Lenovo Legion Pro 7 (16IAX10H) - Intel Core U9 275HX, RTX 5090
- ÁRGARANCIA!Épített KomPhone Ryzen 5 4500 16/32/64GB RAM RTX 3050 6GB GAMER PC termékbeszámítással
- Xbox Game Pass Ultimate előfizetések kedvező áron
- Samsung Galaxy A50 128GB, Kártyafüggetlen, 1 Év Garanciával
- Gamer PC-Számítógép! Csere-Beszámítás! R7 2700X / 16GB DDR4 / RTX 3060 / 256SSD + 1TB HDD
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: ATW Internet Kft.
Város: Budapest





Ha túl közel viszem az adót, megszűnik az adatforgalom és szemét jön csak helyette.



Én nagyon szívesen összerakom, csak nem tudom mennyire ütköznék kompatibilitási gondokba, hogy nem passzol pl egy motor a lego elemekhez, emiatt eléggé elcsúnyítaná az egészet. Főleg akkor, ha az a lego nem is vezérelhetőre lenne tervezve hanem csak egyszeri összerakásra, így nem férne el egy motor, egy esp32 és egyéb meghajtó áramkörök helyhiány miatt.




ekkold

