- AMD K6-III, és minden ami RETRO - Oldschool tuning
- VR topik (Oculus Rift, stb.)
- Steam Deck
- Logitech Z906
- Mini-ITX
- Milyen alaplapot vegyek?
- OLED TV topic
- Google Chromecast topic
- Az olcsóbb szegmens felé fordul az Apple virtuális szemüvegével
- Intel Core i3 / i5 / i7 6xxx "Skylake" és 7xxx "Kaby Lake" (LGA1151)
Hirdetés
-
Spyra: nagynyomású, akkus, automata vízipuska
lo Type-C port, egy töltéssel 2200 lövés, több, mint 2 kg-os súly, automata víz felszívás... Start the epic! :)
-
Akciófigyelő: Ingyenes GOG-on a Shadows: Awakening (PC)
gp Ha valakinek kimaradt volna eddig a játék, az most pótolhatja a nemrég indult ajánlatnak köszönhetően.
-
Júniusban a hardverek is vakációra mennek
ph Az asztali gépek mellett monitorok, komponensek, notebook, okosprojektor és flash NAS váltott jegyet a hétvégi kirándulásra.
-
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
-
Teasüti
nagyúr
válasz Janos250 #7111 üzenetére
Elnézést ha túl sok gondot okozok, nem akarlak feltartani a saját munkáddal!
Csak nem tudom hirtelen hová forduljak segítségért, próbáltam keresgélni az adott library-vel kapcsolatban, de semmit nem találtam még a github-os repo-n kívül, meg egy fórum bejegyzésen kívül, ahol a készítő maga kérdezett vmit.Nekem úgy tűnik, hogy a demóban ez volna talán a deklaráció:
strand_t STRANDS[] = { // Avoid using any of the strapping pins on the ESP32
{.rmtChannel = 1, .gpioNum = 17, .ledType = LED_WS2812B_V3, .brightLimit = 32, .numPixels = 93,
.pixels = nullptr, ._stateVars = nullptr},
};
int STRANDCNT = sizeof(STRANDS)/sizeof(STRANDS[0]);Viszont a programozási ismereteim idáig nem terjednek, így nem tudom mi ez:
strand_t STRANDS[]
. Ez egy objektumként deklarált tömb volna? Az object array leírások nem igazán hasonlítanak erre a kódra. A kapcsos zárójelben lévő elemek is elég furák, mi az a pont minden egyes paraméter előtt? Meg hol van melyik változó milyen típus?És ha jól látom, akkor a frissítés az már a rainbow és a scanner függvényekből történik, vagyis eredendően más megközelítést használ mint én eddig. Én ram-ba írtam az eredményt és azt dolgoztam fel, mielőtt burst write-tal kiment a szalagra - és tulajdonképpen az egész library-ből csak annyit használtam, hogy tolja ki a szalagra az általam felállított byte tömböt.
Ha ennyit el tudnék érni ezzel az ESP-n, hogy írja ki a saját byte tömbömet a szalagra, annyi nekem bőven elég lenne. Nem kell semmi más funkció.Ha megnézem a Scanner osztályát (a class használata nekem kicsit magas, régen sem találtam elég bő lére eresztett leírást a szintaktikájáról, a spéci szimbólumok magyarázatáról), akkor ott látok pár parancsot, ami nekem kell ide, mint a
digitalLeds_updatePixels(pStrand);
valamint adigitalLeds_resetPixels(strands[i]);
parancsok. Viszont nem látom, hogy a pStrand az minek van deklarálva. Az egy tömb lenne?MÁS
Mi a probléma a kapcsoló üzemű táppal?
Stabilizált a táp ill. vannak bypass kondik a lap előtt?
Valószínűleg nem ide tartozik, de én PC táppal tapasztaltam hasonló problémákat, amit meg egy a közelében lévő másik fogyasztó csap le állandóan. A táp egy gőzelszívó ventilátor felett helyezkedik el és valahányszor kikapcsolják a ventilátort, a PC táp reset-el vmiért. Először azt hittem a Nano hülyül meg, televágtam bypass kondikkal, meg ESD védelemmel és még alufóliával árnyékoltam. De még így is levágta, aztán rájöttem, hogy nem a Nano reset-el (készenléti áramról kapja a tápot), hanem a táp maga kapcsol ki.[ Szerkesztve ]
-
Teasüti
nagyúr
válasz Tankblock #7113 üzenetére
Szia!
Erről volna szó:
[link]
Arduino IDE alatt. Jövő héten működésre szeretnék bírni egy projektet, így a megszokott környezetben szeretném berúgni a vasat. Az ESP-IDF-fel való ismerkedés inkább hosszabb távon realizálható.
De megvettem hozzá Kolban könyvét, szóval talán lesz egy épkézláb tananyagom hozzá. -
Janos250
őstag
válasz Teasüti #7112 üzenetére
Nem okozol gondot.
Igen, az a deklaráció. Egy vektor, aminek minden eleme egy struktúra, ami tartalmazza az adott led paramétereit.
A pStrand az egy strand_t* típusú pointer:class Scannerer {
private:
strand_t * pStrand;strand_t STRANDS[] : a STRANDS[] egy vektor, aminek minden eleme strand_t típusú.
A strand_t egy struktúra, ezért adod meg neki így a kezdőértékeket, pl.: .rmtChannel = 1typedef struct {
int rmtChannel;
int gpioNum;
int ledType;
int brightLimit;
int numPixels;
pixelColor_t * pixels;
void * _stateVars;
} strand_t;tehát tartalmazza az adott ledsor paramétereit (esp32_digital_led_lib.h).
A ledType pedig ezek közül valamelyik:
enum led_types {
LED_WS2812_V1,
LED_WS2812B_V1,
LED_WS2812B_V2,
LED_WS2812B_V3,
LED_WS2813_V1,
LED_WS2813_V2,
LED_WS2813_V3,
LED_SK6812_V1,
LED_SK6812W_V1,
};Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Tankblock
aktív tag
válasz Teasüti #7120 üzenetére
Hello,
Csak azért vannak a pointerek, mert a 8 csatornát másként teljesen általánosan kezelni nem egyszerű.
A mit miértért, meg javaslom, hogy nézd meg a esp32_technical_reference_manual_en -t. 14.2.1 RMT arcitecture elmagyarázza a HW működést a Remote Controller Peripheral nak.Release the Beast....
-
Janos250
őstag
válasz Tankblock #7119 üzenetére
Ki, de kiakadt.
A demo2 már sokkal logikusabb.
Teasüti, azt nézd!
https://github.com/MartyMacGyver/ESP32-Digital-RGB-LED-Drivers/tree/master/esp-idf
Ezt a részét tedd a setupba:
gpioSetup(16, OUTPUT, LOW);
gpioSetup(17, OUTPUT, LOW);
gpioSetup(18, OUTPUT, LOW);
gpioSetup(19, OUTPUT, LOW);
if (digitalLeds_initStrands(STRANDS, STRANDCNT)) {
ets_printf("Init FAILURE: halting\n");
while (true) {};Ezt meg a loopba:
for (int i = 0; i < STRANDCNT; i++) {
strand_t * pStrand = &STRANDS;
rainbow(pStrand, 0, 2000);
digitalLeds_resetPixels(pStrand);
}Minden egyéb mehet az elejére a setup elé.
A millis() és a delay() deklarációját kommentezd ki!
Innen:
https://github.com/MartyMacGyver/ESP32-Digital-RGB-LED-Drivers/tree/master/arduino-esp32/demo1a
esp32_digital_led_lib.h és a esp32_digital_led_lib.cpp fájlpkat másold be oda, ahol a programod van.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
Próbálom visszakövetni a forráskódot hol lehetnek a pixelek eltárolva.
Ha megnézem a
digitalLeds_updatePixels(strand_t * pStrand)
kódját a .cpp fájlban, akkor ebből apState->buf_data[0 + i * 3] = pStrand->pixels[i].g;
pState->buf_data[1 + i * 3] = pStrand->pixels[i].r;
pState->buf_data[2 + i * 3] = pStrand->pixels[i].b;
rész érdekes nekem. Az itt lévőpixels[]
az lesz, ami a STRANDS[] objektumban van definiálva.Aztán ott van egyszer a szalag definíció a programban:
strand_t STRANDS[] = { // Avoid using any of the strapping pins on the ESP32
{.rmtChannel = 1, .gpioNum = 17, .ledType = LED_WS2812B_V3, .brightLimit = 32, .numPixels = 93,
.pixels = nullptr, ._stateVars = nullptr},Csak tippelek, de a
.pixels
az az ami érdekes lehet nekem.Ez a .h fájlban így néz ki:
typedef struct {
int rmtChannel;
int gpioNum;
int ledType;
int brightLimit;
int numPixels;
pixelColor_t * pixels;
void * _stateVars;
} strand_t;Itt a
pixelColor_t * pixels;
amit keresnem kell.
Felette meg is vannak az egyes komponensei a pixeleknek:inline pixelColor_t pixelFromRGB(uint8_t r, uint8_t g, uint8_t b)
{
pixelColor_t v;
v.r = r;
v.g = g;
v.b = b;
v.w = 0;
return v;
}Már csak a pStrand maradt hátra az egyedüli elemeként a puzzle-nak, amit még nem egészen tudtam lekövetni, mi hogy mikor és hol kerül meghívásra.
Jelenleg úgy sejtem a*pStrand
az lényegében egy&STRANDS[i]
lesz. Na megyek alámerülni megint...szerk: oh ba.meg MEGVAN! Hisz ezzel indul a függvény meghívás a loop()-ban.
for (int i = 0; i < STRANDCNT; i++) {
strand_t * pStrand = &STRANDS[i];
rainbow(pStrand, 0, 2000);
scanner(pStrand, 0, 2000);
digitalLeds_resetPixels(pStrand);
}
Azt hittem ez globális lesz, mert mindenhol előfordul ez a név.
Közben meg ha jól értem, akkor a loop() deklarálja és innen kerül átadásra a függvényeknek, ahol meg újra lesz deklarálva helyi változóként minden egyes függvényben külön-külön.Akkor azt hiszem ezzel a helyére került minden eleme a puzzle-nak.
Elméletben. Jöhet a gyakorlat...[ Szerkesztve ]
-
Janos250
őstag
válasz Teasüti #7140 üzenetére
Elnézve a macerát, kezd az az érzésem támadni, hogy igaza volt annak, aki megírta "gyalog" módszerrel a WS2812 RGB led szalag programozását az ESP32-re, mert az legalább egyszerű, és működik. Mivel nagy a sebesség, és van 2 mag, nem szorít az idő, hogy hardware alapon kezeljük a szalagot, bár kétségkívül az a szebb, ezért meg kellene próbálni, valami egyszerűbb, áttekinthetőbb megoldást találni rá.
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 fpeter84 #7156 üzenetére
Tápfeszültség témához off: nemrég teszteltem, hogy lefelé meddig lehet menni. Kínai klón UNO lap +5V-ra két ceruzaelemről vidáman üzemel, sőt, két közepesen töltött ceruzaakksiról is, ami 2,8V.
On: szeretnék egy UNO és egy Wemos d1 mini lapot összekötni, i2c-n megy majd a kommunikáció. A Wemos az UNO +5V-ról kapja a tápfeszültséget, de ugye az esp 3,3V-ról üzemel, amit a wemos onboard regulátorral állít elő magának az 5V-ból. Van értelme a 3,3V-ot is közösíteni a két lap közt? -
Teasüti
nagyúr
Szeretném megköszönni ezúton is a rengeteg segítséget!
Igazán leköteleztek.
Alább látható az ESP32 vezéreltre ws2812 projektem.
Idővel szeretném interaktívvá tenni, a tacho és speed jelek kiolvasásával, meg épp készülőben van egy saját tervezésű féklámpa is 5730-as ledek felhasználásával (nagyon durvák ezek a fél wattos ledek, 5 db-ot próbáltam ki a prototípuson, de még 8%-on is bántja a szemem. 100%-on meg mintha napba néznék, instant vakufoltok.
Na ezt egy kicsit túllőttem 95 db ilyen leddel...).
Szóval egy szó mint száz, még keresem a bajt így sűrűn fogtok hallani felőlem. :][ Szerkesztve ]
-
brickm
őstag
válasz gyapo11 #7168 üzenetére
Sziasztok!
Riasztóközpontom open-collectoros kimenetét szeretném GPIO-ra kötni és kommunikáltatni a hálózaton.
Ehhez szeretnék egy ESP 8266-os modult vásárolni, de láttam, hogy elég sok fajta van.
Az lenne a kérdésem, hogy melyik verzió, melyik tipus lenne nekem a legmegfelelőbb, van egy arduino megám is, lehetőleg azzal legkompatibilisebb változatot szeretném. -
Janos250
őstag
Srácok!
Valaki használta már ESP32-n a CCOUNT-ot? (getCycleCount(), vagy hasonlók)
A guta megüt vele, összevissza adatokat ad, és nem tudom, mi a bánatos Télapó a baja.
Ez egy uint32_t regiszter, ami az órajelciklusokat számlálja, de az uint32_t 240 Mhz-nél tizenegynéhány másodpercenként átfordul, tehát így időzítésre nem igazán jó.
Lehet resetelni (XTHAL_SET_CCOUNT(0)), úgy már jó lenne, de a getCycleCount() a program futása során ugyanarra az utasítássorra egyre nagyobb értékeket ad, még a delay() is egyre lassabb lesz. Mintha egyre csak lassulna, lassulna a gép.
Próbálta már valaki?Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
Na, az UNO feeling kedvelőinek megjelent az ESP32 is "UNO-szerű" kivitelben:
https://www.ebay.com/itm/MINI-Wemos-D1-TTGO-UNO-R3-D1-R32-ESP32-CH340-WIFI-Bluetooth-Devolopment-Board-4M/263305416343?hash=item3d4e39ce97:g:ZRcAAOSwIJlaAZr4Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
szuszinho
őstag
Sziasztok,
Próbálnám használni az ESP8266 modulomat UNO-val.
Odáig már eljutottam, hogy firmware-t tudok a modulon frissíteni, de bármit csinálok, az AT parancsra nincs válasz. Igaz, nem vagyok biztos abban, hogy melyik a legfrissebb fw.
Az UNO RESET a GND-be van kötve, és rámértem a 3.3V-ra, és az is jó. (3.32V) -
Janos250
őstag
válasz Teasüti #7188 üzenetére
Mélyrehatóan nem, de valami:
Az ESP32-n a HardwareSerial.cpp fájlba kell belenyúlnod. (hardware\espressif\esp32\cores\esp32)
A Stream osztály virtuális függvényként megadja, hogy minden gyerekének (pl az egyes processzorok serialjei) kötelezően miket kell tartalmaznia,
ezzel nagyjából biztosít egy bizonyos kompatibilitást.
(class HardwareSerial: public Stream)int HardwareSerial::read(void)
{
if(available()) {
return uartRead(_uart);
}
return -1;
}}
size_t HardwareSerial::write(uint8_t c)
{
uartWrite(_uart, c);
return 1;
}Mint látható, használják az esp32-hal-uart.c fájlból az uartRead-et az meg a hardware\espressif\esp32\tools\sdk\lib\xQueueReceive.a assembly fájl tartalmát.
Érdemes még egy pillantást vetni a HardwareSerial.cpp fájl include-ok utáni első sorára: HardwareSerial Serial(0);
Itt példányosítja előre a mi beavatkozásunk nélkül "Serial" néven a 0-ás UART-hoz kapcsolva. Ezért nem kell őt nekünk példányosítani.[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
válasz Teasüti #7191 üzenetére
Ugye nem a másik topicban tárgyalt áthallásos problémát akarod szoftveresen megoldani? Mert az nem fog menni! Ez az átka a nagy energiatakarékosságnak, hogy olyan pici áramok mennek, hogy akár a Kossuth rádió is bezavar. Muszáj ellenállással mesterségesen megterhelni. Én a soros átvitelnél tapasztaltam ugyanezt: kb 20 centis vezeték a két IC között, és a csomagok 10-20 százaléka CRC hibásan érkezett.
Mit akarsz variálni?
"Az ESP32-n a HardwareSerial.cpp fájlba kell belenyúlnod. (hardware\espressif\esp32\cores\esp32)"
"int HardwareSerial::read(void)
{
if(available()) {akarmi =uartRead(_uart);
Itt megcsinálod amit akarsz
return itt meg adod neki ami jó Neked!
}
return -1;
}"Az szerintem nem lesz egy ördöngősség! Egyszerűen az uartRead(_uart); rész után csinálsz valamit, nem azonnal adod a returnnek.
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
válasz Janos250 #7192 üzenetére
Neeem, bár nem vagyok biztos melyik problémára célzol.
Amivel most küzdök, az egy BLE alkalmazás telefonra.
Mivel nem szeretnék megtanulni Android alkalmazást fejleszteni - nyilvánvaló okokból -, ezért a Play-en keresgélek vmi használható után. A Blynk egy egész ügyes kis alkalmazás lehetne, de nincs kész BLE támogatás egyetlen Espressif MCU-hoz se, hát még az ESP32-höz.
Az UART programok szépen működnek, de nem parancssorból szeretném vezérelni a cuccot.
Most vmi pfodApp nevezetűt próbálgatok.
Ennek sincs ESP32 támogatása - nem meglepő módon -, viszont az általa használt library pofon egyszerű (na jó azért kezdőként kell némi idő míg visszafejti az ember) és a meglévő BLE modulokhoz való UART porton kommunikál. Ezt a library-t akarom módosítani úgy, hogy ne a Serial stream-re tolja ki az adatokat, hanem a Kolban féle BLE UART függvényekbe. Elméletileg nem egy nagy munka átírni a library-t.
Csak mikor megláttam, hogy a Serial-t példányosítja és annak a print függvényeit használja, akkor hirtelen azt hittem elég volna copy&paste módon bedobálni a BLE notify() függvénybe mindent, ami ott megy át.
Persze aztán rájöttem ez se nem praktikus, se nem egyszerűen kivitelezhető.Amúgy okkal csináltam egy topikot ezeknek a témáknak, mert itt mindezt off-ba rakja a nép vmi oknál fogva.
[ Szerkesztve ]
-
Janos250
őstag
válasz szuszinho #7195 üzenetére
Az ESP8266 önmagában többet tud, mit az UNO.
Mióta portolták az Arduinot az ESP-re, azóta nem célszerű az AT parancsokat küldözgetni, hanem az UNO-n futó programot szőröstül/bőröstül átrakjuk az ESP-re, és azon futtatjuk. Az UNO-t meg eltesszük emlékbe.
Az AT parancsokkal a WiFit vezérelnénk, de az ESP-n a WiFi kezelésére kész osztályok vannak, amik SOKKAL kényelmesebbek.
Lehet, hogy valami régi irodalom alapján próbálod, amikor még így kellett?
Az UNO előnye az ESP8266-hoz képest, hogy több I/O portja van.
Ha kell a sok I/O port, akkor meg az ESP32 a célszerű. egy-két ezer Ft körül van ebay-en, attól függ, mikor és hol. Most 11.11-én ismét kb. 1300 Ft volt.
Az ESP8266-os lapból is van egy csomó, Neked melyik van?[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Dalee
aktív tag
Próbálok egy fűtés projektet összehozni NodeMcu ESP8266 ESP-12E alapon.
A kapcsolás elég egyszerű:
- ESP8266
- DS18B20 hőmérő (onewire kommunikáció)
- relé modul
- állapotjelző LED-ek.
- szabvány USB telefon töltő tápnak.Az alábbi szoftveres komponenseket telepítettem:
- Web szerver (a vezérlés adatok megváltoztatása, hőmérséklet figyelés) ESP Web lapos működéséhez ezt a tutort használtam.)
- E-mail küldés. A hőmérsékletet e-mail-en is küldöm meghatározott időközönként
- Time szerver elérés (log-hoz)
- SPIFFS file rendszerben mért értékek loggolása
- FTP szerver (log adatok letöltése)
- fűtőszál vezérlése relén keresztülAlapban megy is minden, de pár óra elteltével (vagy ha dolgozok az otthoni hálózaton hamarabb) a ESP leszakad a hálózatról és vagy visszakapcsolódik vagy nem, vagy magával rántja fűtés vezérlést vagy nem.
Elég sok WIFI van a környéken, ezért a laptop is gyakran leszakad, szóval elég szar a WIFI, viszont a ESP-nek elvileg újból kellene csatlakozni, illetve nem szabadna megállítani a loop folyamatokat ha jól olvastam.
Gondoltam használom a watchdog timert, de arról azt találtam, hogy a WIFI, WEB könyvtárak kezelik (resetelik), ezért az sem jó megoldás.A flash-re logoltam a loop ciklusban 4 másodpercenként a HEAP-et, hátha elfogy a RAM, de azon sem látszik semmi RAM fogyás, stabilan 20 kb szabad hely van.
Próbálkoztam a WIFI manager könytár autoconnect funkciójával, azzal is meghal a rendszer egy idő után ugyanúgy.
Most 30 percenként resetelem a ESP-t. Így ment egyfolytában 3 napot, de szombat délután egy 30 perces resetet követően, elfelejtette az eddigi router csatlakozási adatokat és szabványos 192.168.4.1-es címen lévő WIFI beállító lapot adta fel a loop-ig el sem jutott.
Nektek is ilyen bizonytalan a működése a WIFI-nek. Van ötlet, hogy mi lehet a hiba vagy, hogy találjam meg mi okozhatja?
Segítségeteket előre is köszönöm.
[ Szerkesztve ]
-
Janos250
őstag
válasz szuszinho #7199 üzenetére
Hú, akkor nem tudom :-(
Én amikor pár éve ráálltam az ESP-re, akkor már volt a 12E, ill. a NodeMCU klónjai, én azokkal kezdtem. Azokban van elég memória, hogy feltöltsük rá az Arduino rendszert. Megtanulhatod az ESP-n az AT parancsok használatát, de előbb-utóbb úgyis átállsz valami nagyobbra, és akkor már semmi hasznát nem veszed az AT parancsok ismeretének.
Én ezt
vagy ezt
Ezt még nem használtam, de nekem tetszik
Ezen meg van plusz GND, VCC, és I/O port csatlakozás, amiből mindig kevés van.Vagy ha egy kicsit több pénzt szánsz rá, akkor ez már alapvető minőségi ugrás
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
szuszinho
őstag
válasz Janos250 #7201 üzenetére
Nem akarom megtanulni az AT parancsokat, csak az AT paranccsal ellenőrizni, hogy visszakapom-e az OK-t, mert akkor minden jó.
Most odáig jutottam el, hogy felmegy a fw az ESP-re, de az AT parancsra nem kapok választ, így nem tudom, jó-e? Tovább nem haladtam a projekttel. -
Teasüti
nagyúr
Basic? Viccelsz? C++ és Java jobban megy (a nullához képest jobb ), akkor már neki állhatnék a natív Android-nak is.
Még nem tudom mi fog kisülni ebből a pfod-ból (várom a postást, hogy hozza már a második ESP32-met, mert az első már be van építve és én le nem mászok a garázsba ilyen hidegben laptoppal a hónom alatt), de tetszik ez a megközelítés, hogy mikroböngészőbe küldünk pár bájtos oldalakat. Persze BLE-n keresztül, Janos250 bevett.módszere túl könnyű lenne.[ Szerkesztve ]
-
Teasüti
nagyúr
Janos250 és aki ESP-zik:
történt már veletek, hogy a watchdog reboot-ol, mert nincs etetve a Core 0-n?
Task watchdog got triggered. The following tasks did not feed the watchdog in time...
És akkor mutatja mely folyamatok futottak éppen.
Végtelen ciklusban megy egy, ami 100%-ra hajtja valószínűleg az első magot.
Beraktam egy delay(100)-at és most működik.Hogy kellene optimalizálni ezt a folyamatot?
Én eddig azt hittem az RTOS fel is tudja függeszteni az adott folyamatot, hogy cpu időt adjon a többi folyamatnak. Így nem voltam rest bedobálni több folyamatot is ide-oda, bár igaz mindegyik másikban van egy kicsi delay(), még ha mikroszekundumokban mérhető is.
Vagy etetni kéne a watchdog-ot?Amúgy nem gáz, hogy ezeket itt tárgyaljuk ki? Engem nem zavar, de nem tudom azoknak zavaró-e, akik a vanilla Arduino-n dolgoznak.
-
Janos250
őstag
válasz Teasüti #7208 üzenetére
"történt már veletek, hogy a watchdog reboot-ol, mert nincs etetve a Core 0-n?"
Igen :-(
Én megkerültem a problémát: A loopból hívom meg a taskot újra és újra, és amikor a task elvégezte a dolgát, kilép [vTaskDelete(NULL)].
Még nem igazán sikerült tisztán látnom kutya ügyében. Mindjárt az első, hogy ők hányan vannak: minden Core-nak, vagy minden tasknak van egy-egy? Aztán, hogy hogyan lehet törölni?
"Én eddig azt hittem az RTOS fel is tudja függeszteni az adott folyamatot, hogy cpu időt adjon a többi folyamatnak."
Én is azt hittem, de ez se igazán így van. Továbbá én korábban azt hittem, hogy a core1-en nincs megszaggatás, ott mehetnek a realtime dolgok. Na, ez se így van: ott is van interrupt.
Ezt írják:
"Also make sure you disable interrupt watchdog on CPU1 when not using RTOS" "(Also disable the tick interrupt app watchdog, as Ivan said, otherwise it'll complain.)" "A OS-Environment on CPU0,
and pure "undisturbed" power on CPU1."
Na, de ezt hogyan csinálom Arduino alatt? A szokásos Arduinos módszer még - úgy tűnik - nincs implementálva :-(
A PCNT_ENTER_CRITICAL használatában is vannak homályos dolgok. És még számos egyéb is."Amúgy nem gáz, hogy ezeket itt tárgyaljuk ki? Engem nem zavar, de nem tudom azoknak zavaró-e, akik a vanilla Arduino-n dolgoznak."
Miért nem? Szerintem azért, mert előbb-utóbb mások is áttérnek korszerűbb procikra az Arduino alatt, és így látják, mire térjenek át: ESP8266, ESP32, STM, stb.
Pl. ha én nem olvastam volna ezt a topicot, nem érdekelt volna a WS2812 led szalag. Azért kezdtem el kiváncsiskodni, mert itt olvastam. Vagy pl. Te se biztos, hogy ESP32-t használnál, ha nem olvastad volna ezt a topicot. Nekünk már volt belőle hasznunk. Reméljük másnak is.
Egyébként a topicnak van egy gazdája, ha nem akarja, hogy ilyesmiről itt szó essen, majd szól, hogy húzzunk el külön el topicba. Én így gondolom.Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Janos250
őstag
-
Megérkezett az esp32-es mini vezérlőm. Ezt hogy lehet működésre bírni az arduinós programból? A led villogtató programot akarom rátölteni, de hibát ír: avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x20 Hiba történt a vázlat feltöltése közben
Alaplap infó ismeretlen alaplapot ír, portok közül felsimerte, hogy az ötösön kommunikál.
Windows 10 eszközkezelőben a portoknál Silicon labs cp210x usb to uart bridge-ként ott van.[ Szerkesztve ]
Eladó Lego: 42139 All terrain vehicle
-
válasz Victoryus #7213 üzenetére
Közben találtam egy tutorialt Azt nem gondoltam, hogy ilyen lassú lesz a letöltés, a git gui ~30 perc volt, meg az esp32-elf-win32-1.22.0-73-ge28a011-5.2.0.zip is több, mint 40 perce jön. 90 megás az egész... (100megabites nettel, szóval náluk van a szűk keresztmetszet)
Eladó Lego: 42139 All terrain vehicle
-
Elnézést, hogy 3 lett, de van köztük majdnem 24 óra... Végigmentem tegap este a tutorialon, de még mindig nem látszik az esp32-es lap. Ott van a hardware mappában hozzá minden, amit itt írnak, de nem jelenik meg a válsztjató eszközök között. Még egy újratelepítést megpróbálok.
[ Szerkesztve ]
Eladó Lego: 42139 All terrain vehicle
-
válasz Teasüti #7216 üzenetére
Köszönöm. Tegnap odáig jutottam, hogy letöröltem már mindent, a git-et, arduinót, pythont.Visszatettem telepítettem újra az Arduinót, meg amit linkeltél, illetve letöltöttem azt a zip-et amit a git szedne le. Látszik is az eszközök között az esp32, de nem képes rá feltenni a lefordított programot: exec: "C:\\Users\\viktor\\Documents\\Arduino\\hardware\\espressif\\esp32/tools/esptool.exe": file does not exist Hiba a(z) DOIT ESP32 DEVKIT V1 alaplapra fordításra. A get.exe nem csinál semmit, pedig admin joggal indítom. Már azt a zip fájlt is letöltöttem amit elvileg a get.exe töltene le, de abban nincs esptool.exe.
A lényeg akkor annyi lenne, hogy a C:/Users/[YOUR_USER_NAME]/Documents/Arduino/hardware/espressif/esp32 könyvtár megvan, itt le kéne futnia a get exe-nek, ami látszólag nem csinál semmit... Bár tegnap előtt mintha már lefutott volna egyszer 50 perc után, de akkor a program files mappa arduino könyvtárában volt az egész hóbelevanc. Az erőforrás kezelő szerint 35kb/s-mal tölt valamit, egyszer remélhetőleg kész lesz. Legalább valami tájlkoztató üzenetet kiírhatna, hogy dolgozik vagy hány %-nál tart...
A wemos d1 r2-vel is ennyi szívás lesz?[ Szerkesztve ]
Eladó Lego: 42139 All terrain vehicle
-
Sikerült!
Ezt az esp32-es kis lapot lehet egyáltalán használni a shield v5-tel?
Másik kérdésem is van: Arduino uno-t lehet egyszerre használni a shield v5-tel meg a l293d sihelddel, vagy ezt benéztem és ha a motorvezérlő van rajta akkor már nincs lehetőség ultrahang szenzort meg vonalkövető infra szenzort plusz bluetoothot használni?
Ez a terv az unoval egyáltalán kivitelezhető? meghajtó motor+kormánynak motor, ultrahang szenzor(ok), vonalkövető szenzor, világítás a járműre (4 helyzetjelző+indexek+tolató lámpa stb), bluetooth távirányítás. Tehát ha nem távvezérelt, akkor mondjuk kövesse a padlóra ragasztott vonalat, de ha van alami akadály akkor annak ne menjen neki.[ Szerkesztve ]
Eladó Lego: 42139 All terrain vehicle
-
dzz
aktív tag
Sziasztok!
Új világ nekem az ESP32 (az arduino is, bár már egy ideje játszadozom vele), kellene egy kis megerősítés (vagy épp az ellenkezője )A kérdésem, hogy ezek az eszközök mennyire használhatóak?
1
2
3Az érdekelne, hogy van ezeknek valami olyan jellegű eltérése, ami jelentősen eltérne az alap ESP-DEV programozásától.
Thx
ERROR: '--failure' is not an option. Aborting... ---goo.gl/BFtD86
-
Janos250
őstag
Mivel ESP-WROOM-32 van benne, nagy gond nem lehet. Ez az ESP32-nek a "gyári tokozott" verziója, tehát ez az alap. A display még egy kis hab a tortán, szerintem nagy gond nem lehet vele. Mondom én, aki még soha nem használtam a display-es verziót.
Eltérés abban lehet, hogy milyen lábszámok vannak a panelra szitázva, egyébként ugyanaz.Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
dzz
aktív tag
válasz Janos250 #7244 üzenetére
Ez logikus és nem kifejezetten saját megírt appra gondoltam, hanem a lényeg, hogy terepen adott lesz egy smartphone meg a „kütyü” Tegnap megrendeltem egy LiPo pigback-es, kijelző nélküli ESP32-t, a jövő héten megérkezik. Kifejezetten tetszik, hogy első körben rajta van minden ami kezdésnek kell, a kimeneteken egyenlőre szimulálom LED-el a perifériákat. A többi majd apránként...
ERROR: '--failure' is not an option. Aborting... ---goo.gl/BFtD86
-
Teasüti
nagyúr
Terepen szerintem a BLE lesz a nyerő, hacsak nem akarsz a mobilnettel b@szakodni.
Ugye vagy a telón csinálsz egy hotspot-ot amihez az ESP tud kapcsolódni (és akkor a hotspot adatait gondolom FW-be kéne rakni, aztán másik setup-pal nem lesz működőképes), vagy az ESP-n wifi AP-t (ha lehet ilyet egyáltalán, Janos250 biztos tud rá mondani vmit), amihez a teló csatlakozik és lőttek a mobilnetnek a telón. -
Teasüti
nagyúr
válasz Spuri2000 #7252 üzenetére
Nem bonyolult, csak ránéztem és elszörnyedtem. Egy igazi kódhuszár erre köp egyet és tovább lapoz.
Tényleg hasznos az a "programkód" szövegformázás, így behúzza a sorokat a struktúrának megfelelően a fórum motor. Én pl már ott ráncoltam a szemöldököm, hogy három kapcsos zárójel egymás után.
Ami azonnal átlátható megfelelő formázással, de így meg át kell nyálazni, hogy melyik hova tartozik, ki kivel van.(#7250) dzz
Hát ha a karórámból indulok ki, ami BLE-vel kapcsolódik, akkor nem sok.
Két falon keresztül már megszakad a jel (mondjuk kimegyek a fürdőbe egyazon emeleten és hisztizik az óra, hogy megszakadt a kapcsolat). Néha a saját testemmel le tudom árnyékolni, mikor pl összefonom a karjaim. De hát ugye okkal az a neve, hogy Bluetooth Low Power.
A klasszik BT ugyan erősebb, de az nincs implementálva még az ESP-IDF-ben se, nem hogy Arduino vonalon.
Én azt mondanám jó, ha megvan a 10-20 méter szabad rálátás esetén.
Viselhető eszközökhöz és kis hatósugarú mesh hálózatokhoz van kitalálva, nem arra, hogy kirakjunk egy állomást a semmi közepére. Persze ha kimész a helyszínre kiolvasni az adatokat, ahhoz amúgy megfelelő, mert viszont jó választás az akkumulátoros üzemhez. Sőt, akkus üzemhez én eleve nem is gondolkodnék másban. Állítólag megfelelő alkalmazásban a BLE kevesebbet fogyaszt, mint az elem önkisüléséből eredő merülés. A wifi-nek nem lesz hosszú üzemideje e szempontból.[ Szerkesztve ]
-
Janos250
őstag
válasz Teasüti #7249 üzenetére
az esp32-hal-gpio.h-ban találod:
//GPIO FUNCTIONS
#define INPUT 0x01
#define OUTPUT 0x02
#define PULLUP 0x04
#define INPUT_PULLUP 0x05
#define PULLDOWN 0x08
#define INPUT_PULLDOWN 0x09
#define OPEN_DRAIN 0x10
#define OUTPUT_OPEN_DRAIN 0x12
#define SPECIAL 0xF0
#define FUNCTION_1 0x00
#define FUNCTION_2 0x20
#define FUNCTION_3 0x40
#define FUNCTION_4 0x60
#define FUNCTION_5 0x80
#define FUNCTION_6 0xA0
#define ANALOG 0xC0Látszik, hogy melyik bit mit jelent.
Ezt hogy lehetett volna úgy bevinni, hogy ne csússzanak el?
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
dzz
aktív tag
Nos a héten megérkezett az ESP32. Most játszadozom vele és ismerkedünk (Hello World megvolt most épp duktape van rajta) Viszont az egyszerűbb modulokhoz képest lényegesen többet tud, ez az arduino nem az az arduino amit eddig használtam (mármint eddig ennyire komplex nem volt a kezemben). A ledek ki/be kapcsolása és ilyesmi volt eddig terítéken. Valaki botlott már olyanba, hogy egy unix szerű sh/bash-t használhassunk? Agyament ötleteim támadtak és egy ilyesmi tetszene ha lenne készen. Nem kutakodtam utána nagyon, leginkább az érdekelne, hogy valaki futott-e bele ilyenbe.
ERROR: '--failure' is not an option. Aborting... ---goo.gl/BFtD86
-
Janos250
őstag
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
dzz
aktív tag
válasz Janos250 #7301 üzenetére
Én linuxon élek már a 90-es évek közepe óta, szeretek mindent parancssorból intézni. Pl. az openwrt-nek megfelelő shell képességei vannak, valami ilyesmire gondoltam ESP32-n, tehát nem a PC oldalról hanem az eszközön magán. Mondjuk kicsi a memória minden ilyesmire, de csak feldobtam a kérdést, még nem jártam rendesen körbe az ESP képességeit csak meglepett, hogy mennyivel több a korábbi Arduino-s kütyüimnél
ERROR: '--failure' is not an option. Aborting... ---goo.gl/BFtD86
-
Teasüti
nagyúr
Üdv!
ESP32 és az RTOS task indítás érdekelne, ha van ezzel tapasztalat.
A kérdésem pedig, hogy milyen módon kezeli a kernel az éppen futó folyamatok újbóli meghívását?
xTaskCreate() függvény hívása, miközben már fut belőle egy példány.
Ilyenkor megszakítja az első példányt, el se indítja a második példányt, vagy párhuzamosan fut a kettő (vagy több)?
Egy ISR alapú meghíváson filózok, amit egy gombra kötött CHANGE állapotváltozás figyel. És itt jön a képbe a prell jelensége. (Illetve vmi vibráció, vmi zavar amivel szembesülök járó motornál a féklámpa kapcsoló felől, de eddig lusta voltam megnézni szkóppal.) És mivel delay()-ek vannak a folyamatban, ezért könnyen előfordulhat, hogy újból meghívásra kerül a folyamat annak végezte előtt.szerk: az RTOS kérdés az érdekes most, nem a jel szűrése.
Köszönöm![ Szerkesztve ]
-
Janos250
őstag
Na, akkor lássuk konkrétan, hátha mást is érdekel:
Láttam, hogy Teasüti egy kész könyvtárat használt a WS2812 led szalag vezérlésére. Innen jött az ötlet, hogy - játékból - kipróbáljam, hogy az elég bonyolult kész program helyett a "kézzel" való vezérlést használjam.
Ennek a szalagnak a vezérlése úgy történik, hogy a szalag minden egyes ledjéhez kiküldjük a saját színét, 24 biten. A kiküldés bitenként megy: pl. a 400 nanos hoszú impulzus jelenti a "0" értékű bitet, a 800 nanos az "1"-et.
Ha beállítok egy lábon magas sztintet, akkor ha ez 0 értékű bit, akkor 400 nano múlva kell levinnem alacsony szintre, ha 1 a bit értéke, akkor 800 nano múlva. Ezt kell ismételni a szalag minden egyes ledjére sorban egymás után, ahogy a szalagon vannak. Egy led színe 24 bit, tehát egy 100 ledből álló szalagra 2400 db. - az egyes led kívánt színei szerint - különböző hosszúságú impulzust kell kiküldeni.
Viszont, ha egy 400 nanos impulzus középén jön egy megszakítás, akkor mire "visszatér" a task, az már akár 800 nanos is lehet, tehát hibásan másik bitként értelmezi a led.
Na, ez talán a legtipikusabb példája az ESP32 "RTM" funkciójának. Az egyes impulzusok adatait feltöltöm egy megadott memória területre, és ráeresztem a hardvert, ami teljesen önállóan kiküldi ezeket az impulzusokat, igen nagy pontossággal, mert 15 biten írom le az impulzus hosszát. A 16. bit jelzi, hogy a megadott ideig L vagy H szinten kell lenni az adott lábnak.
Ezt nevezi az ESP32 RTM-nek. Eredetileg az infrás távvezérlők szimulálására ajánlják, mert lehet úgy programozni, hogy egy magasabb vivőfrekvenciát moduláljon az adott hosszal.
Tehát - mint írtam - nem egy élő projekt problémájáról van szó, hanem kíváncsiságról.Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
Tankblock
aktív tag
válasz Teasüti #7312 üzenetére
Hello,
Ha jól emlékszem, akkor külön task ID fog kapni és fog párhuzamosan futni n-szer is.
Amit leírtál az tervezést igényel.
SW megoldásként : a megszakításban kellene viszgálni, hogy mikor volt utoljára meghívva az interupt és ha az idő megfelelően nagy csak akkor végigfuttatni a megszakítás logikáját.
Vagy
Perlmentesíteni HW esen,
Delay miért kell? nem lehet másképpen megoldani? pl Queue v xEventGroup (ez nem tudom, h implementálva van-e ESP32 FreeRTOS ra.) Vagy Taskot suspendedbe tenni és felkelteni amikor kell....
Release the Beast....
-
_q
addikt
Sziasztok!
Van most valahol best buy ESP32?
-
_q
addikt
Kérdést kiegészítve, melyik kivitelt érdemes venni, mert ahogy néztem van egy csomó verzió, van ami usb-uart kommunikácóban és ki tudja miben tér még el. Értem a verziók alatt pl.: NodeMCU, WROOM32. ESP-32S meg a társai.
-
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.
-
Janos250
őstag
válasz Janos250 #7348 üzenetére
Még annyit, hogy itt látható, mi van ez ESP-WROOM-32 hibrid chipben:
https://github.com/boseji/ESP-Store/blob/d80a4bafb5d0d2b9f78954681f995429110383d6/Ref-Designs/ESP-WROOM-32/SCH/sch.pdf
De ha magadnak akarsz gyártani , a gerber adatok is megvannak:
https://github.com/boseji/ESP-Store/commit/d80a4bafb5d0d2b9f78954681f995429110383d6Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
_q
addikt
válasz Janos250 #7348 üzenetére
Köszi a részletes leírást. Ezek szerint minimális eltérés van, pl.: Wemos tesz rá egy külsö táp csatlakozót is mint ami a lentebb képen látható és 1 reset gombot (ami szemmel látható különbség elsőre). WROOM esetén nincs külső táp csatlakozó, de van egy plusz gomb, gondolom programozható. Szignifikáns külnbség nem nagyon van közöttük. Illeve ide jöhetnek még az OLED kijelzős verziók, ahol már kicsivel nagyobb lábkiosztás vagy egyéb eltérések is felléphetnek.
Arduino-t akartam először a programozási könnyebbség miatt, de mivel ESP32 teljesítményben illetve modulokban is jobb, olcsóbban, így gyorsan tovább is léptem az arduino-n. Köszi a linkeket, valószínűleg ezek közül választok.Tankblock
Neked is köszi az észrevétel. Ha jól értem akkor a képen jelölt külső aksi/táp csatlakozóra érted, hogy fel van cserélve a VCC-GND kivezetés? -
CHIPman
nagyúr
Üdv.
Már régóta van egy címezhető RGB led stripem, viszont 3 bemenetű, "+", "data" és "-". Értelemszerűen 5V-os. Nem találtam még olyan leírást, ami ehhez lenne írva, mindenhol a 4 bemenetűt látom.
ESP eszközeim vannak, minimálisan konyítok hozzá, de eddig még nem sikerül működésre bírnom a ledeket. (Nem címezhető stripet mosfettel már vezéreltem gond nélkül ESP-ről, csak ez nem megy.) Dolgozott már valaki ilyennel?hardverapro.hu/tag/chipman