Sisukord:
- Tarvikud
- Samm: kontrollige koodi:
- Samm: ülejäänud kood…
- Samm: puhaste andmetega ühenduse loomine …
- 4. samm:
Video: Kompleksse kunsti anduriplaadi kasutamine puhaste andmete juhtimiseks WiFi kaudu: 4 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
Kas olete kunagi tahtnud katsetada žestikontrolli? Paned asjad käeliigutusega liikuma? Muusikat juhtida randme keerutamisega? See juhend annab teile teada, kuidas!
Complex Arts Sensor Board (complexarts.net) on mitmekülgne mikrokontroller, mis põhineb ESP32 WROOM -il. Sellel on kõik ESP32 platvormi funktsioonid, sealhulgas sisseehitatud WiFi ja Bluetooth ning 23 konfigureeritavat GPIO-nööpi. Anduritahvlil on ka BNO_085 IMU - 9 DOF liikumisprotsessor, mis teostab pardal olevaid andurite liitmise ja kvaterniooni võrrandeid, pakkudes ülitäpset orientatsiooni, gravitatsioonivektorit ja lineaarse kiirenduse andmeid. Anduriplaati saab programmeerida Arduino, MicroPython või ESP-IDF abil, kuid selle õppetunni jaoks programmeerime tahvlit Arduino IDE abil. Oluline on märkida, et ESP32 moodulid pole Arduino IDE -st algupäraselt programmeeritavad, kuid selle võimaldamine on väga lihtne; siin on suurepärane õpetus: https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/, mille täitmine peaks võtma umbes 2 minutit. Viimane seadistus, mida vajame, on anduriplaadi USB-UART-kiibi draiver, mille leiate siit: https://www.silabs.com/products/development-tools/software/usb-to -uart-bridge-vcp-draiverid. Valige lihtsalt oma operatsioonisüsteem ja installige, mis peaks võtma veel umbes 2 minutit. Kui see on tehtud, on meil hea minna!
[See õppetund ei eelda Arduino ega Pure Data tundmist, kuid see ei hõlma nende installimist. Arduino leiate aadressilt aduino.cc. Puhtad andmed leiate aadressilt puredata.info. Mõlemal saidil on hõlpsasti järgitavad paigaldus- ja seadistusjuhised.]
Samuti … selles õpetuses käsitletud kontseptsioonid, nagu UDP -ühenduste seadistamine, ESP32 programmeerimine Arduinoga ja põhiline Pure Data plaastri loomine - on ehitusplokid, mida saab rakendada lugematu hulga projektide jaoks, nii et ärge siin vajuge, kui olete said need mõisted alla!
Tarvikud
1. Kompleksne kunstianduriplaat
2. Arduino IDE
3. Puhtad andmed
Samm: kontrollige koodi:
Esiteks vaatame Arduino koodi. (Allikas on saadaval aadressil https://github.com/ComplexArts/SensorBoardArduino. Soovitame teil järgida koodi.) võib olla vaja seda installida. See projekt tugineb failile SparkFun_BNO080_Arduino_Library.h, nii et kui teil seda pole, peate minema visandile -> Kaasa raamatukogu -> Halda raamatukogusid. Sisestage “bno080” ja kuvatakse ülalmainitud raamatukogu. Vajutage installi.
Ülejäänud kolm kasutatavat raamatukogu peaksid vaikimisi olema Arduinoga kaasas. Esiteks kasutame BNO -ga suhtlemiseks SPI raamatukogu. Samuti on võimalik kasutada UART -i ESP32 ja BNO vahel, kuid kuna SparkFunil on juba raamatukogu, mis kasutab SPI -d, jääme selle juurde. (Aitäh, SparkFun!) Faili SPI.h kaasamine võimaldab meil valida, milliseid tihvte ja pordi soovime SPI -side jaoks kasutada.
WiFi raamatukogu sisaldab funktsioone, mis võimaldavad meil traadita võrku pääseda. WiFiUDP sisaldab funktsioone, mis võimaldavad meil selle võrgu kaudu andmeid saata ja vastu võtta. Järgmised kaks rida suunavad meid võrku - sisestage oma võrgu nimi ja parool. Kaks rida pärast seda määravad võrguaadressi ja pordi, kuhu me oma andmed saadame. Sel juhul edastame lihtsalt, mis tähendab, et saadame selle kõigile meie võrgus olevatele kuulajatele. Pordi number määrab, kes kuulab, nagu me näeme mõne aja pärast.
Need kaks järgmist rida loovad vastavate klasside liikmeid, et saaksime nende funktsioonidele hiljem hõlpsasti juurde pääseda.
Seejärel määrame ESN -i õiged tihvtid nende vastavatele BNO -tihvtidele.
Nüüd seadistasime SPI klassi liikme, määrates ka SPI pordi kiiruse.
Lõpuks jõuame seadistusfunktsiooni juurde. Siin käivitame jadaporti, et saaksime soovi korral oma väljundit sel viisil jälgida. Seejärel alustame WiFi -ga. Pange tähele, et programm ootab enne jätkamist WiFi -ühendust. Kui WiFi on ühendatud, alustame UDP -ühendust, seejärel prindime jaemonitorile oma võrgu nime ja IP -aadressi. Pärast seda käivitame SPI -pordi ja kontrollime ESP ja BNO vahelist ühendust. Lõpuks nimetame funktsiooni „enableRotationVector (50)”; kuna selle õppetunni jaoks kasutame ainult pöörlemisvektorit.
Samm: ülejäänud kood…
Enne põhiahelasse () minemist on meil funktsioon nimega „mapFloat”.
See on kohandatud funktsioon, mille oleme lisanud väärtuste kaardistamiseks või skaleerimiseks teistele väärtustele. Arduino sisseehitatud kaardifunktsioon võimaldab ainult täisarvude kaardistamist, kuid kõik meie esialgsed väärtused BNO -st jäävad vahemikku -1 kuni 1, seega peame need käsitsi skaleerima väärtustele, mida me tõesti tahame. Kuid ärge muretsege - siin on lihtne funktsioon just selle tegemiseks:
Nüüd jõuame põhisilmuseni (). Esimene asi, mida märkate, on veel üks blokeerimisfunktsioon, näiteks see, mis paneb programmi ootama võrguühendust. See peatub, kuni BNO -lt on andmeid. Kui hakkame neid andmeid vastu võtma, määrame saabuva kvaterniumi väärtused ujukoma muutujatele ja prindime need andmed jadamonitorile.
Nüüd peame need väärtused kaardistama.
[Paar sõna UDP-side kohta: andmeid edastatakse UDP kaudu 8-bitistes pakettides või väärtustes 0–255. Kõik üle 255 lükatakse järgmisele paketile, lisades selle väärtust. Seetõttu peame veenduma, et väärtusi pole üle 255.]
Nagu varem mainitud, on meil sissetulevad väärtused vahemikus -1 -1. See ei anna meile palju tööd, sest kõik, mis on alla 0, katkestatakse (või kuvatakse kui 0) ja me ei saa seda teha tonni väärtustega vahemikus 0 -1. Esmalt peame deklareerima uue muutuja oma kaardistatud väärtuse hoidmiseks, seejärel võtame selle esialgse muutuja ja kaardistame selle vahemikus -1 -1 kuni 0 -255, määrates tulemuse meie uuele muutujale nimega Nx.
Nüüd, kui meil on kaardistatud andmed, saame oma paketi kokku panna. Selleks peame pakettandmete jaoks deklareerima puhvri, andes sellele suuruse [50], et veenduda kõigi andmete sobivuses. Seejärel alustame paketti ülaltoodud aadressi ja pordiga, kirjutame puhver ja 3 väärtust pakendile to, seejärel lõpetame paketi.
Lõpuks prindime kaardistatud koordinaadid jadamonitorile. Nüüd on Arduino kood tehtud! Väljendage kood anduriplaadile ja kontrollige jadamonitori, et veenduda, kas kõik töötab ootuspäraselt. Te peaksite nägema nii kvaternioni väärtusi kui ka kaardistatud väärtusi.
Samm: puhaste andmetega ühenduse loomine …
Nüüd puhtad andmed! Avage Pure Data ja käivitage uus plaaster (ctrl n). Plaaster, mille loome, on väga lihtne, sellel on ainult seitse objekti. Esimene, mille me loome, on [netrecept] objekt. See on meie plaastri leib ja või, mis haldab kogu UDP -sidet. Pange tähele, et objekti [netrecept] jaoks on kolm argumenti; -u määrab UDP, -b määrab binaarse ja 7401 on muidugi port, mida me kuulame. Samuti saate oma porti täpsustamiseks saata sõnumi „kuulata 7401” aadressile [netrecept].
Kui oleme andmed kätte saanud, peame need lahti pakkima. Kui ühendame [print] objekti võrguga [netrecieve], näeme, et andmed tulevad meile esialgu numbrite voona, kuid me tahame neid numbreid sõeluda ja kasutada igaüks millegi erineva jaoks. Näiteks võite ostsillaatori kõrguse juhtimiseks kasutada X-telje pöörlemist ja helitugevuse Y-telge või mõnda muud võimalust. Selleks läbib andmevoog objekti [lahtipakkimine], millel on kolm ujukit (f f f).
Nüüd, kui olete nii kaugel, on maailm teie auster! Teil on traadita kontroller, mille abil saate Pure Data universumis kõike manipuleerida. Aga peatu seal! Lisaks pöörlemisvektorile proovige kiirendusmõõturit või magnetomeetrit. Proovige kasutada BNO erifunktsioone, nagu „topeltpuudutus” või „raputamine”. Kõik, mida vajate, on kasutusjuhendites (või järgmises juhendis …) pisut süvenemist.
4. samm:
See, mida me eespool tegime, on andmesildi ja Pure Data vahelise suhtluse seadistamine. Kui soovite lõbutseda, ühendage oma andmeväljundid ostsillaatoritega! Mängi helitugevuse reguleerimisega! Võib -olla kontrollige mõnda viivitust või kaja! maailm on teie auster!
Soovitan:
Klaasist kivist LED -toru (WiFi kaudu juhitav nutitelefonirakenduse kaudu): 6 sammu (koos piltidega)
Klaasist kivist LED-toru (WiFi kaudu juhitav nutitelefonirakenduse kaudu): Tere kaastegijad! Selles juhendatavas näitan teile, kuidas ehitada WiFi-juhitav LED-toru, mis on klaasikividega täidetud, et saada kena difusiooniefekt. Valgusdioodid on individuaalselt adresseeritavad ja seetõttu on mõned head efektid võimalikud
[2020] Kahe (x2) mikro: bitti kasutamine RC -auto juhtimiseks: 6 sammu (koos piltidega)
[2020] Kahe (x2) mikro: bitti kasutamine RC auto juhtimiseks: kui teil on kaks (x2) mikro: bitti, kas olete mõelnud neid kasutada RC auto kaugjuhtimiseks? Saate juhtida RC -autot, kasutades saatjana üht mikro: bitti ja vastuvõtjana teist. Kui kasutate MakeCode redaktorit mikro: b
Puhaste traatühenduste jootmine: 3 sammu (piltidega)
Puhaste traatühenduste jootmine: Siin on kiire näpunäide kaablite nõuetekohase ühendamise kohta. See on mugav päikesepaneeli pistiku vahetamiseks või lihtsalt kahejuhtmelise kaabli pikemaks muutmiseks. See võib tunduda baasoskusena, kuid ma tean, et selleks ajaks, kui ma selle tehnika õppisin, tahaksin
MicroPython kompleksse kunsti anduriplaadil: 3 sammu
MicroPython kompleksse kunsti anduriplaadil: ESP32 mikrokontrolleri üks hämmastavamaid aspekte on selle võime käitada MicroPythoni. Seda saab teha kahel viisil: käivitada täis Pythoni programmid või interaktiivselt konsoolirakenduse kaudu. Selles juhendis näidatakse, kuidas kasutada
Andmete edastamine valguse kaudu !!!: 4 sammu (piltidega)
ANDMETE EDASTAMINE VALGUSE kaudu !!!: Tere poisid, pärast pikka aega olen jälle tagasi, et jagada uut ja lihtsat projekti. Selles projektis näitan teile, kuidas saate valguse kaudu andmesignaale ühest kohast teise edastada. Andmete saatmine valguse kaudu pole uus mõiste, kuid hiljuti on see