Malé jednodeskové počítače jako úžasní pomocníci v elektroprojektech
Str.: 1, ... 7, 8, 9 Psát příspěvky můžete po přihlášení
Poslední příspěvek z předchozí strany:
Adam
ESP-32 - Poznámky (1) ...aneb v čem je tahle namakaná mašina trochu i peklo Před dvěma lety jsem vám tu psal o "vyšším levelu Arduina" - desky s procesorem ESP-32....
Adam 06.07.2022 02:47 Bydliště: Praha
6313
581
6084
ESP-32 - Poznámky (2)
Smělé pokračování. Další zamotaniny a zádrhele...
Už jsme si postěžovali, že "desek" ESP-32 DevKit (mikroprocesor ESP-32 a plus periferie na komfortní desce) jsou různé druhy. Pojďme k tomu jen něco stručně zmínit:
Samotných typů a verzí mikroprocesoru ESP-32 od značky Espressiv jsou desítky druhů.
Na komfortní desky DevKit se jich však používá řádově snad jen několik druhů, a tyto desky si pak objednáváme na těch AliEx a na podobných jiných čertovinách.
Tam je při výběru a objednávání asi nejzásadnější, kolik vývodů taková deska má také to, zda je v názvu WROVER, WROOM, nebo totéž třeba s nějakou koncovkou WROOM-xx.
Co bych tak nějak doporučil za sebe, nemáte-li nějaké hodně specifické nároky,
pořizujte si 38-pinovou DevKit desku, kterou můžete nalézt třeba pod názvy:
ESP-32 WROOM (bez nějaké koncovky WROOM-xx)
ESP-WROOM-32 DevKit
ESP32 DevKit V4
Vývody na desce většinou souhlasí třeba také pro případ, že si takovou desku pořídíte s jinou třídou mikroprocesoru - ESP32-WROVER-B.
Jiné desky, často s jiným počtem vývodů a s jinou organizací vývodů, jsou například:
Desky LOLIN, LilyGo
ESP32-WROOM-DA
ESP32-WROOM-32E / -32UE / -32D / -32U
ESP32-SOLO-1
ESP32-WROVER-E / -IE
Pozor, můžete narazit na některé takové "jiné" desky, které dokonce nemají
pracovní napěťovou úroveň ani 3,3V, ale ještě nižší.
Hrozí, že strávíte hodiny, dny nebo týdny, nedejbože i déle, mlácením hlavou do zdi kvůli tomu,
že naprosto jasné a jednoduché a správné naprogramování absurdně nefunguje,
mikroprocesor je záhadně "v panice" atp. Totiž...
U ESP-32 existuje několik "flash módů" pro práci s pamětí, kde je řídicí program uložen.
A některé tyto mikroprocesory umí jen některé. Například ty "mé" ESP32-WROOM desky
akceptují typ flash módu "DIO" a v Arudinu IDE to musíte v nastavení přepnout - viz obrázek níže.
Někdy to nevadí, ale snadno na to narazíte a pak to tvoří nepochopitelné a absurdní nefunkčnosti programu, které nechápete.
Máte-li desku připojenou k PC, zapnete si nějaký "Sériový monitor" a na desce stisknete tlačítko EN / RST (reset), vypíše vám to v sériovém monitoru sadu informací a mezi nimi pravděpodobně naleznete i "dio",
což je předzvěst k tomu, že to v Arduinu IDE musíte na "DIO" přepnout,
aby záhadné absurdní problémy zmizely.
Ještě taková legrácka na dobrou noc. Třeba na té mé 38-pinové desce ESP-32 DevKit V4
(ESP32-WROOM) existuje jeden pin, který je pojmenován jako GND, ale ona to žádná zem není;
je to prostě pin NC - bez jakéhokoli připojení. Což tedy rozhodně není GND...
Ale toho si (včas) všimne jen ten, kdo se labužnicky topí v "pinout" vývodovém přehledu...
Na desce je opravdu natištěno "GND".
ESP-32 v Arduino IDE - Přepnutí Flash mode (Dostupné jen pro přihlášené uživatele)
Obrázky není povoleno jakkoli šířit bez souhlasu jejich autora, a to ani v jakékoli upravené formě
0
0
Adam 09.09.2022 19:55 Bydliště: Praha
6313
581
6084
ESP-32 - Zamrznutí
Hlásím svou čerstvou dnešní zkušenost, že jedno mé ESP-32 se dnes zaseklo a vyžadovalo reset.
Konkrétně po 106 dnech nepřetržitého provozu.
Poznámky:
- Jednalo se o ESP-WROOM-32 DevKit
- ESP bylo po celou dobu zatíženo nepřetržitou komunikací se sítí Wi-Fi
Zatímco třeba jeden klon Arduina Nano mi nepřetržitě běží zhruba 2 roky.
Ale ten toho taky moc nedělá. Jen bliká LEDkou a snáší moje
pochybovačné pohledy, jestli už se konečně taky zasekne a nebo nikoli.
0
2
ourel 22.02.2023 00:07 Bydliště: Praha
717
80
1179
Vše o elektronice a programování. Studna informací o mikrokontrolerech.
Barbucha 20.04.2023 19:20 Bydliště: Pod mostem v Praze
539
30
385
Adame, dotaz, máš nějaké zkušenosti s programováním STM32F103C8T6 přes Ardujino IDE?
0
0
Adam 20.04.2023 23:14 Bydliště: Praha
6313
581
6084
Barbucha napsal(a):Adame, dotaz, máš nějaké zkušenosti s programováním STM32F103C8T6 přes Ardujino IDE?
Nene, nemám. Jít by to mělo. V Arduinu IDE je v nastavení něco jako "Datový soubor dalších desek" nebo něco takového a tam se vyplní URL adresa pro desky STM, myslím. Já tam mám URL pro ESP-32, díky čemuž mohu programovat tyto výkonější mašiny.
Googlením půjde najít návod, jak STM přes Ard. IDE.
Je nějaký důvod sáhnout po STM raději než po arduinu či ESP-32?
0
0
Barbucha 20.04.2023 23:45 Bydliště: Pod mostem v Praze
539
30
385
STMku nainstalovanou mám, to není problém. A proč STMku? Zdá se mi poněkud jednodušší než ESP, která má priferie, které určitě nevyužiji, a krom toho ji mám v šuplíku. Klasické Adruino je pro aplikaci co potřebuji pomalé. Takže jsem raději sáhnul pro STMce, pro kterou jsou informace snáze dostupnější než pro ESP. Buhužel na tom s angličtinou nejsem dobře, takže raději dávám přednosti informacím dostupných v češtině. Ale díky za odpověď.
0
0
Adam 21.04.2023 00:24 Bydliště: Praha
6313
581
6084
Barbucha napsal(a):STMku nainstalovanou mám, to není problém. ...
Já ale tedy nerozumím, na co ses původně chtěl ohledně STM a Arduina IDE zeptat...
Kód programu budeš psát stejně, jako kdyby to bylo Arduino. Ono se o to pak
Arduino IDE uvnitř při kompilaci postará, aby to bylo správně nahráno
do STM. Jen musí být zvoleno v tom Arduino IDE typ desky, kterou programuješ.
To ale asi víš?
0
0
Barbucha 22.04.2023 15:14 Bydliště: Pod mostem v Praze
539
30
385
Adam napsal(a):Já ale tedy nerozumím, na co ses původně chtěl ohledně STM a Arduina IDE zeptat...
Zcela prozaicky, při programování nových čipů téměř vždy vyvstanou nějaké problémy díky neznalosti prostředí, tak jsem myslel, pokud by jsi měl zkušenosti s STMkem, tak bych Tě požádal o radu, protože neznám nikoho kdo by dělal s STMkem. Ale díky.
0
0
Adam 22.04.2023 19:34 Bydliště: Praha
6313
581
6084
Barbucha napsal(a):Zcela prozaicky, při programování nových čipů téměř vždy vyvstanou nějaké problémy díky neznalosti prostředí, tak jsem myslel, pokud by jsi měl zkušenosti s STMkem, tak bych Tě požádal o radu, protože neznám nikoho kdo...
V Arudino IDE to bude asi úplně v klidu.
Stačí snad jen:
- nastavit v něm správnou STM desku
- všimnout si rozdílů v očíslování vývodů třeba oproti arduinu
No a víc mě nenapadá. Ať se daří.
0
0
Adam 30.08.2024 20:59 Bydliště: Praha
6313
581
6084
ESP-32 - Poznámky (3) ...aneb další záludnosti
... ale když o těch záludnostech předem víte, koncipujete pak zařízení s ESP-32 jako v pohádce!
V příspěvcích nazpět už jsme nějaké záludnosti zmínili a teď se podíváme na další.
Ale poskytnu vám současně i obrázek, na kterém je spousta záludností hezky graficky naznačených.
Budeme se opět zabývat DevKit plošňákem s čipem ESP-WROOM-32 - verze s 38 piny.
Pojďme hned ze začátku na jednu super záludnou věc.
V pinout vývodových přehledech (a někdy i písmenkama přímo na desce!) je pin č. 32 označen
jako GND, avšak to vůbec žádná zem není!
Je to jen volný - nepřipojený - pin (NC), což je krutý rozdíl od "GND"!
Nyní další vrtochy čipu ESP-32. Ale více či méně se text dá přeskočit
a můžete totéž navnímat i z obrázku níže v příloze:
Banku analogových vstupů ADC2 není možné používat společně s WiFi GPIO2 - případná pevná hodnota HIGH by blokovala začátek nahrávání aplikace přes sériový port GPIO12 - raději se mu celkově vyhnout, souvisí s funkčností interní flash paměti GPIO34-39 - jsou jen vstupní a žádný z nich nemá zabudovaný pull-up Pozor na nedostatečné napětí v napájení desky. Něco pak občas záhadně nešlape
Při bootu všechny tyto piny posílají HIGH nebo PWM:
- GPIO 1
- GPIO 3
- GPIO 5
- GPIO 6-11
- GPIO 14,15
A samozřejmě platí obecná poučka, na kterou se občas pekelně snadno zapomene:
Při výběru pinů pro určitou činnost si omylem nezablokovat jiné funkce.
A jako "bonus", věděli jste, že... I2C kanál je možné nastavit na libovolných GPIO pinech?
Sám jsem si ve zmiňovaných zádrhelech různě v minulosti nabil hubu,
tak doufám, že tyto zmínky vás neodradí, ale naopak pomohou!
Pinout vývodový přehled ESP-32 WROOM-32 DevKit 38-pin (Dostupné jen pro přihlášené uživatele)
Obrázky není povoleno jakkoli šířit bez souhlasu jejich autora, a to ani v jakékoli upravené formě
0
2
Adam 04.09.2024 15:52 Bydliště: Praha
6313
581
6084
Měření napětí s ESP-32
Nepotřeboval jsem přesnost na mV a chtěl jsem si zaběhnout nějaký hardwarově
co nejjednodušší způsob, jak v rámci ESP-32 měřit napětí, a to s přesností zhruba tak na 0,1V.
Způsob zmíněný v tomto příspěvku poskytuje v určitém rozsahu přesnost asi
o něco lepší (0,05V), ale budu raději uvádět 0,1V.
Defaultní (a zároveň maximální) rozlišení AD převodníku je u ESP-WROOM-32 12-bitové.
Pokud horní mez napětí nějak nepřenastavíte, pak je tedy základních cca 3,3V rozsekáno na 4095 dílků.
To by tedy znamenalo vlastní přesnost ADC něco kolem 0,001V, ale s ohledem na další technické
a praktické faktory to nedoporučuji brát úplně vážně.
Je nutno mít však na zřeteli, že napětí není měřeno zcela lineárně na okrajích. Blízko nuly a blízko maxima.
A nyní salva úvah a závěrů:
Ale já potřebuji měřit napětí až do 30V, nikoli jen do 3,3V.
Takže nějaký úpravný obvod.
Ale co nejprimitivnější! (Nechci řešit OZ)
Takže rezistorový dělič.
Ale ten mi může do měření přinést taky trochu nějakého toho zkreslení.
Jenže to absolutně nevadí, protože s ohledem na drobnou nelinearitu
ADC budu stejně aplikovat nějakou korekční rovnici (křivku)!
A tu korekci mohu určit rovnou už i pro celý měřicí systém, tedy vč. rezistorového děliče.
Podle toho, jestli potřebuji nějakou lepší přesnost na jak velkém měřicím rozsahu,
se mohu rozhodnout, zda moje korekční křivka bude složitější (vyšší polynomická
funkce), nebo zda bude jednodušší (kvadratická nebo dokonce jen lineární funkce).
Rozhodl jsem se, že mi tu bude stačit jen obyčejná lineární, tedy f(x) = a . x + b
Takže jsem udělal měření rovnou s aplikováním rez. děliče, vynesl jsem si hodnoty
naměřené pomocí AD převodníku ESP-32 a porovnal jsem si to se skutečným napětím,
které jsem měřil multimetrem. Následně jsem si našel konstanty a, b té korekční rovnice
a nyní tedy mohu počítat s tím, že pokud ...
... použiji dělič s rezistory 100R : 1K,
hodnotu napětí získám tak, že celočíselný údaj z ADC načtený
pomocí příkazu analogRead() zpracuji rovnicí: U = 0,00855 . analogRead + 1,18
...čímž získám poměrně hezky zkorigovanou (zpřesněnou) hodnotu napětí,
která se snaží vyřešit nelinearitu ADC a také nelinearitu rezistorového děliče.
Kdo chce a komu se to někdy bude hodit, zde je tedy instantní návod, jak můžete nejjednodušším
způsobem měřit napětí pomocí ESP-32 (třeba hlídat napětí na baterii, která ESP-32 napájí atd.)
Samozřejmě pokud vám nevadí trochu nízká vstupní impedance pro měření daná děličem.
- Nastavení ADC nechte u ESP-32 defaultní
- Měřené napětí posílejte přes dělič 100R : 1K
- Načtenou hodnotu z analogRead podrobte korekční funkci U = 0,00855 . analogRead + 1,18
- Hotovo
Nebo si po tomto vzoru můžete udělat vlastní korekci, i přesnější (nebo přesnější
pro větší úsek měřeného rozsahu). Pochopitelně, čím složitější korekční funkce,
tím složitější postupy budete muset provést pro získání číselných konstant.
Ale ty nalezené konstanty vám pak mohou sloužit napořád.
Korekční křivka daná rovnicí...
... lineární ... matematika posledních ročníků ZŠ ... f(x) = a . x + b
... kvadratická ... matematika nejčastěji úrovně SŠ ... f(x) = a . x2 + b . x + c
... kubická ... matematika SŠ/VŠ ... f(x) = a . x3 + b . x2 + c . x + d
... kvartická, kvintická a další vyšší polynomické ... matematika VŠ (znalost matic atd.)
Ale ony by ty složitější polynomické v tomto ani neměly smysl. Já zvolil jen lineární
a pro vyšší přesnost, pokud bych to musel hrotit, bych uvažoval asi maximálně o kubické.
Měření napětí pomocí ESP-32, rezistorový dělič, korekční funkce (Dostupné jen pro přihlášené uživatele)
Obrázky není povoleno jakkoli šířit bez souhlasu jejich autora, a to ani v jakékoli upravené formě
0
0
Adam 11.09.2024 11:28 Bydliště: Praha
6313
581
6084
ESP-32 - Poznámky (4)
Tohle bude jen takové unavené a velmi stručné sdělení... A o některé z těchto pinů ESP32
jsme tu již v našem psaní zavadili dříve... Ale zkrátka... Nejsem si jist, jestli jsem někde nedělal
nějakou chybu, ...
... Radši se ale zkrátka při koncipování s ESP-WROOM-32 (DevKit) vyhněte všem pinům GPIO 6-11
Ony jak souvisí s flash pamětí, tak evidentně je nejlepší na ně ani nepomyslet.
S výjimkou některých velmi specifických případů.
Pozn.: Na deskách mohou být (místo "G6", ...) pojmenovány jako CLK, SD0, SD1, SD2, SD3 a CMD
0
0
Zdenek.ttz 03.10.2024 21:21 Bydliště: Sezemice
1
0
0
Dotaz.
Chtěl bych vyzkoušet obousměrnou komunikaci Arduina s PCF85744. Poradí mi někdo se čtením z 8574.
Předem Děkuji Zdenek.
0
0
Barbucha 03.10.2024 21:37 Bydliště: Pod mostem v Praze
539
30
385
Zdenek.ttz napsal(a):........Arduina s PCF85744 ? . ......