Arvutiteaduse instituut
  1. Esileht
  2. Noored Koodi
EN
Logi sisse

Noored Koodi

<- Kõik kursused

  • Arduino kursus
  • 1. Sissejuhatus: millist Arduinot valida, programmeerimiskeskkond Arduino IDE
  • 2. Töötamine Arduino IDE-ga, Arduino ühendamine arvutiga ja sisseehitatud LEDi vilgutamine
  • 3. Vooluahela koostamine (LED, takistid, maketeerimislaud, juhtmed) ja värvikood
  • 4. LED-ide vilgutamine FOR tsükliga, lokaalmuutuja kasutamine
  • 5. Lüliti ühendamine ja LEDi vilgutamine vastavalt lüliti asendile: IF/ELSE tingimuse kasutamine
  • 6. RGB ledi ühendamine ja RGB võimaluste katsetamine analogWrite() abil
  • 7. Valgustundliku takisti ja ADC abil valguse mõõtmine ja kuvamine arvuti ekraanil—Serial monitor
  • 8. UART liidese abil andmete vahetamine Arvuti ja Arduino vahel, ASCII tabel
  • 9. Potentsiomeeter: töö-põhimõte, ühendamine, juhtkang (joystick)
  • 10. Servomootori juhtimine—pulsilaiusmodulatsioon ja joystick
  • 11. Ekraani ühendamine ja teksti kuvamine 1602 LCD ekraanil
  • 12. USART ja 1602 LCD: Serial monitorist ekraanile!

  • 13. IDE-s programmeerimisest kokkuvõtvalt
  • 14. LED heleduse muutmine vastavalt keskkonna valgustugevusele
  • 15. Ohmi seadus, multimeetri kasutamine

  • 16. Kordamisküsimused
  • 17. Kontrolltöö

  • 18. LED juhtimine infrapuna-saatjaga ja -vastuvõtjaga
  • 19. HC-SR04 ultrahelisensori ühendamine ja näitude kuvamine LCD ekraanil
  • 20. Joonistame ise programmi Fritzing abil korrektse vooluringi skeemi
  • 21. Sissejuhatavalt sünkroonsest ühendusest (I2C ning SPI) õhurõhu anduri BMP280 näitel
  • 22. CSV—Comma Separated Values
  • 23. Kujundite kuvamine 1602 LCD ekraanil
  • 24. Ekraani ühendamine ja teksti kuvamine 1602 LCD ekraanil
  • 25. Arduino ühendamine bluetooth seadmega
  • 26. Relee juhtimine

  • 27. Digispark: netist tarkvara leidmine, installeerimine ja esimese lihtsa programmi töölepanek
  • 28. ESP32: tarkvara ja lihtsa esimese programmi töölepanek
  • 29. ESP32: jõuame sisse-ehitatud LED vilgutamiseni

  • 30. Kordamine
  • 31. Teooria esitlus
  • 32. Projektiesitlus

28. ESP32: tarkvara ja lihtsa esimese programmi töölepanek

<- eelmine peatükk järgmine peatükk ->

28.0. Seos eelmiste teemadega

Tarkvara allalaadimise ning installeerimise osas on teema sarnane 26. peatükis vaadeldud Digispark-i allalaadimise ja installeerimisega. Seega on tegemist kordamisega, ainult et võtame ette uue seadme: ESP32. Paha ei tee ka see, kui on veel meeles, kuidas panime tööle 25. peatükis sinihamba; sedakorda katsume tööle saada oma esimese wifi-seadme.

28.1. Eesmärk ja selgitused

Eesmärgiks on õppida tundma ESP32 riistvara ja osata seda Arduino IDE abil programmiga varustada. Tark on võtta esmatutvuseks ESP32, millel on selgelt olemas nii BOOT kui ka RESET nupud (viimast võivad tähistada ka RS (reset) ja EN (enable) markeeringud). Ka on kallimatel ESP32 arendusplaatidel viigud markeeritud ning saame ühendamiseks Arduinoga kasutada micro-USB tüüpi kaablit.

Võrdleme eelnimetatud mugavustega ESP32 seadet klassikaks saanud ESP8266-ga; kummaga tundub lihtsam hakkama saada?

Klassikaks saanud ESP8266 viikude markeeringuteta ning USB-ühenduseta versioonidega töötamine eeldaks pisut suuremat arvu tunde, kui meil selle valikkursuse jaoks järele jäänud on.

Ka on ESP8266 puhul üldjuhul keerukam leida internetist vajalikku teavet—nõuandeid ei ole sugugi vähe, ent nendes vastukäivuste järkjärguline leidmine ja seejärel vältimine ei peaks esimese valikkursuse viimaseks kogemuseks saama. Lisaks on osutunud valikuteguriks ka ESP32 parem kättesaadavus autorile.

Nii ESP 8266 kui ka ESP 32 puhul on tegemist riistavara programmeerimist-ehitamist oluliselt mõjutanud kontrolleritega. Ilma esimest tutvust selle kursuse lõpuks võimaldamata ei oleks aines piisavalt täielik. Seega, kuigi tegime eelistuse ESP32 ja mugavuse kasuks ja piirdume vaid kahe järelejäänud teemapeatükiga—mõistlik on nii ESP32 kui ka ESP8266 osas hiljem võtta ette süvendatum tundmaõppimine.

Lisame veel, et igal juhul on mõistlik, et esimeseks tutvumiseks valitud seade oleks kindlasti a) mikro-USB kaabliga ühendatav, b) külge joodetud piigiribadega ning c) varustatud viikude selgete tähistustega. Kollase taustaga pildil näete „haljast“ versiooni ESP8266-st—see sobib kasutamiseks näiteks tarvikute tootmises ja muudelgi juhtudel kui vaja on hinda alla tuua ning on olemas pikem ESP-dega töötamise kogemus.

Mina kasutan esimese töö tarvis ESP32 Devkit-i. Vt musta taustaga pilte.

Selle peatüki järel õpilane oskab:

a) alustada oma arvutis tööd ESP32-ga;
b) on katsetanud esimest lihtsat programmi: Arduino IDE-st leiame Examples alt näidisprogrammi, mille abil saame teada, et mis wifi-d on ESP32 kuuldeulatuses.
c) Suure tõenäosusega oleme siiski pannud proovile õpilase kannatlikkust—ESP-de puhul on nüansse, mida nii allalaadimise kui ka programmi töötamise korral tuleb pidevalt meeles pidada, ent mis ei pruugi esimese korraga sugugi õnnestuda.
d) Võib ka nii juhtuda, et vajalikuks osutub esimene pikem uurimine, et mis üldse viltu on läinud: veateadete uurimine. Loodetavasti selle peatüki järel muutub veateadetesse süvenemine tavaliseks rutiiniks, kinnistub veateadetega töötamise positiivne kogemus.

28.2. Töövahendid:

1) arvuti;
2) luup;
3) maketeerimislaud;
4) mikro-USB ühenduskaabel—eelistame sellist, millel on märge nii data sünkroniseerimise kui ka kiirlaadimise omaduste kohta;
5) ESP32 arendusplaat (Arduino UNO-t me sellel tunnil ei vaja.)

28.3. Tegevused

28.3.1. Leiame ametliku json-faili ning jõuame etapphaaval installeerimiseni

Harjutus A

Võrreldes eespool läbi tehtud Digispark teemaga me enam nii palju ekraanipilte töökäigu kirjeldusele ei lisa. Kui hätta jääte, siis õpetaja aitab—ent alustuseks proovige ise.

Töö kirjeldus

A) Kõigepealt avame Arduino IDE-s File->Preferences -> ning sealt leiame „Additional Boards manager URLs:“, millesse peame lisama aadressi ESP32 json-faili leidmiseks.
B) Anname sedakorda kiiruse huvides json-faili internetiaadressi Teile ette: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
C) Kui ülaltoodud aadress lisatud, siis ütleme Preferences aknale OK.
Arduino IDE teab nüüd, kust leida json faili ESP32 tarvis. Vt lisatud ekraanipilt.
D) Nüüd Arduino IDE-s valime Tools menüü alt aktiivse plaadi järel kuvatava Boards Manager osa ja klikime sellel.
E)Avaneb Boards Manager aken.
F)Boards Manager aknas aktiviseerime järgmise info.

Mina kasutan otsisõnaks „ESP32“. (Vt joonisel punaste punktidega tähistatut.)

Protseduur on sarnane 26. peatükis Digisparkiga tehtule ka selles osas, et võtab üksjagu aega.

Ootame kenasti ära—ei kliki kärsitult Cancel nupu peale!

G) Järgmisena kontrollime Tools -> abil, kas näeme ja saame aktiivseks muuta ESP32 kontrolleri.

Meil on esialgu aktiivne Arduino UNO; sellest valikust aga liigume hiirega üle Board Manager-i edasi ESP32 menüüosa juurde—edasi avanevas menüüs saame klikkida aktiivseks juba täpselt määratletud plaatide lõikes õige seadme.

Mina teen aktiivseks ESP32 Wrover Module.

Kõigepealt ühendame ESP32 plaadi maketeerimislauaga—ühendame maketeerimislaua aukudesse kõik viigud.

NB!

Jõudu selleks kasutama ei pea—jõudu rakendades me rikuks viigud. Kui viigud on kenasti otse, siis on ka lihtne kinnitada! Samas erinevate maketeerimislaudade puhul võib olla vaja veidi erinevalt õiget augumustri-positsiooni tunnetada.

Kui seade maketeerimislauale ühendatud, siis ühendame ESP32 mikro-USB kaabli abil arvutiga: näeme, et plaadil hakkab helendama kaks LED-i—punane ja sinine.

NB! Mõtleme, miks me panime seadme maketeerimislaua külge enne selle arvutiga (toitega!) ühendamist mikroUSB abil.

Me oleks ju saanud ka niisama ESP32 arvutiga ära ühendatud? Me selles peatükis ju ei kavatse mingit täiendavat vooluahelat juurde lisada. Milleks siis maketeerimislauda ESP32 alla vaja?

Põhjus on lihtne—kui ühendame seadme toitega ja seadme allosas on metallist otsikutega viigud, siis need viigud võivad laual kogemata edasi-tagasi nihkudes sattuda ka näiteks millegi metallist eseme peale ja saada niiviisi lühistatud. Minul on laual veel metall-raamiga prillid… Muidugi eeldame, et laual ei vedele metallist esemeid… Ent parem on olla ettenägelik.

NB! Vaadake oma töölaud üle—mida seal näete? Milline on näiteks pastakas, mille Te tööhoos lauale olete pannud? Kas on kindlasti vaid plastikust osadega?

Kui viigud on maketeerimislauaga ühendatud, siis isegi selle nihkumise korral ei saa need puutuda esemeid, mis metallist.

Ühendame nüüd ESP32 oma arvutiga.

Arvutiga ühendamisest annab ESP32 teada märgu-LED-idega. Vt allolevat fotot.

28.3.2. Programm

Examples alt leiate näiteid, mis meenutavad kursuse alguses Arduinole sisseehitatud LED vilkumise näidet. Leidke WiFi näidetevalikust üles WiFiScan'' ja klikkige see ekraanile.

Järgmisena leidke üles, kas IDE teab, et A) töötate näiteks ESP32 Wrover versiooniga ning B) kas Teil on aktiivne see port, mida antud juhul kasutama peate.

Kui eespool toodu on korras, siis käivitage programm WiFiScan.ino.

Programm tõenäoliselt kompileerub kenasti ja IDE asub seda ESP32-le laadima. Ent peagi katkeb protsess—vaatleme veateadet: selgub, et Connecting-osa (oranžis kirjas) järel on kriipsud ja punktid: ühendust ei saavutata, ehkki seda korduvalt üritatakse.

Asi lõpeb veateatega—vaadake, kas näete sõnu „fatal error“:

Põhjuseks on see, et programmi ESP32-le laadimisel peate sellest eraldi teatama ESP32-le—surudes all-asendisse BOOT-nupu. Korrake protseduuri nii, et veendute, et olete all-asendisse surunud BOOT nupu. Kas toimis ja saite ekraanile sellise teksti?

Vihje: kui näete, et olete BOOT nupu surumisega kenasti hakkama saanud ja programm usinal moel oranži tekstiga osa täidab, siis võite nupu BOOT ka lahti lasta.

Nüüd peaksite nägema Serial monitoris infot nii Teie kui ka Teie naabruskonnast ESP32-ni levivate Wifide kohta?

Siiski, palun lugege kõigepealt oranži tekstiga osa viimast infot—„hard resetting via RTS-pin“…

Et ilmuks midagi Serial monitori ekraanile, on vaja teha nüüd ESP32-le reset.

Minu plaadil tähendab see vajutust EN (enable) markeeringuga nupule. Kui ma vajutan EN nupule, siis kustub nupule vajutamise ajaks sinine sisseehitatud LED ja jääb särama vaid punane. Seega reset toimis.

Järgmisena saan lugeda ekraanilt infot, millest näen, et ESP leidis muu hulgas ka minu wifi…

Toon allpool ära ka oma ekraanipildi. Seekord aga teen seda väikse erandiga—nimelt seest valge musta raamiga ruut varjab tegelikke aadresse—ei ole hea toon oma naabrus-wifisid siinkohal eksponeerida.

Pöörake tähelepanu, et baudid oleks õigesti antud: vaadake, mida kasutasite näidisprogrammis—seadke Serial monitorilt loetav vastavusse selle sidekiirusega.

NB!

Tasub teada, et ESP-d toimetavad kiiremas tempos kui Arduinod. Seega vaadake, mis on viimasest töötamisest Arduino ja Serial monitoriga aktiivseks klikitud sidekiiruseks. Mida näete Serial monitori akna alaservas? Alla 115200 baudi ESP-dega töötamine ei õnnestu!

Millest selles peatükis veel tuleb rääkida, on raskused ESP32 käimasaamisel.

Veateateid võib olla veelgi erinevaid. Tasub neid uurides kopeerida veateade IDE aknast ning siis sellega viia läbi otsing internetis. Suure tõenäosusega leiate kaaskannatajaid ning neile juba nõu andnud inimeste öeldut. Vahel see aitab leida vigu. Vahel ei pruugi sellest ka kasu olla. Näiteks on minu kogemustest kõige huvitavam juhtum, mil asi hakkas tööle peale korraks USB-kaabli arvuti küljest lahtiühendamist… mõistan seda nii, et RESET nupp ei olnud töökorras või ei suutnud ma seda piisava täpsusega õigesse asendisse suruda.

Järgmises peatükis aga jõuame taas klassikani—LED vilgutamiseni. Sedakorda ESP32 abil.



<- eelmine peatükk järgmine peatükk ->

  • Arvutiteaduse instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.
Õppematerjalide varalised autoriõigused kuuluvad Tartu Ülikoolile. Õppematerjalide kasutamine on lubatud autoriõiguse seaduses ettenähtud teose vaba kasutamise eesmärkidel ja tingimustel. Õppematerjalide kasutamisel on kasutaja kohustatud viitama õppematerjalide autorile.
Õppematerjalide kasutamine muudel eesmärkidel on lubatud ainult Tartu Ülikooli eelneval kirjalikul nõusolekul.
Tartu Ülikooli arvutiteaduse instituudi kursuste läbiviimist toetavad järgmised programmid:
euroopa sotsiaalfondi logo