Kazalo:
- Zaloge
- 1. korak: Preučite kodo:
- 2. korak: Preostali del kode…
- 3. korak: Povezovanje s čistimi podatki…
- 4. korak:
Video: Uporaba kompleksne senzorske plošče za nadzor čistih podatkov prek WiFi: 4 koraki (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
Ste kdaj želeli eksperimentirati s kretnjami? Ali premikate stvari z zamahom roke? Upravljate glasbo z zasukom zapestja? Ta navodila vam bodo pokazala, kako!
Senzorska plošča Complex Arts (complexarts.net) je vsestranski mikrokrmilnik, ki temelji na ESP32 WROOM. Ima vse funkcije platforme ESP32, vključno z vgrajenimi WiFi in Bluetooth ter 23 nastavljivimi zatiči GPIO. Senzorska plošča vsebuje tudi BNO_085 IMU - procesor gibanja 9 DOF, ki izvaja fuzijo senzorja na krovu in enačbe kvateriona, ki zagotavlja super natančno orientacijo, gravitacijski vektor in podatke o linearnem pospešku. Senzorsko ploščo je mogoče programirati z uporabo Arduino, MicroPython ali ESP-IDF, vendar bomo za to lekcijo programirali ploščo z Arduino IDE. Pomembno je omeniti, da moduli ESP32 niso izvorno programirani iz Arduino IDE, vendar je to zelo preprosto; tukaj je odlična vadnica: https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/, ki bi morala trajati približno 2 minuti. Zadnji del nastavitve, ki ga potrebujemo, je gonilnik za čip USB-to-UART na plošči senzorjev, ki ga najdete tukaj: https://www.silabs.com/products/development-tools/software/usb-to -uart-bridge-vcp-gonilniki. Samo izberite svoj OS in ga namestite, kar bi moralo trajati še približno 2 minuti. Ko je to končano, smo pripravljeni!
[Ta lekcija ne predvideva nobenega poznavanja niti Arduina niti čistih podatkov, vendar ne zajema njihove namestitve. Arduino najdete na aduino.cc. Čiste podatke najdete na spletnem mestu puredata.info. Obe strani imata enostavna navodila za namestitev in nastavitev.]
Tudi… koncepti, zajeti v tej vadnici, na primer nastavitev povezav UDP, programiranje ESP32 z Arduinom in osnovna gradnja popravkov Pure Data - so gradniki, ki jih je mogoče uporabiti za nešteto projektov, zato se ne spustite tukaj, ko spustil te koncepte!
Zaloge
1. Kompleksna senzorska plošča umetnosti
2. Arduino IDE
3. Čisti podatki
1. korak: Preučite kodo:
Najprej si bomo ogledali kodo Arduino. (Vir je na voljo na naslovu https://github.com/ComplexArts/SensorBoardArduino. Priporočamo, da sledite kodi, ko gremo.) Potrebujemo nekaj knjižnic, od katerih ena ni osrednja knjižnica Arduino, zato bo morda treba namestiti. Ta projekt temelji na datoteki SparkFun_BNO080_Arduino_Library.h, zato, če tega nimate, pojdite na Sketch -> Include Library -> Manage Libraries. Vnesite »bno080« in prikazala se bo omenjena knjižnica. Pritisnite namesti.
Druge tri knjižnice, ki se uporabljajo, bi morale biti privzeto opremljene z Arduinom. Najprej bomo za komunikacijo z BNO uporabili knjižnico SPI. Možno je tudi uporabljati UART med ESP32 in BNO, a ker SparkFun že ima knjižnico, ki uporablja SPI, se bomo tega držali. (Hvala, SparkFun!) Vključitev datoteke SPI.h nam bo omogočila, da izberemo, katere nožice in vrata želimo uporabiti za komunikacijo SPI.
Knjižnica WiFi vsebuje funkcije, ki nam omogočajo dostop do brezžičnega omrežja. WiFiUDP vsebuje funkcije, ki nam omogočajo pošiljanje in sprejemanje podatkov po tem omrežju. Naslednji dve vrstici nas pripeljeta v omrežje - vnesite ime omrežja in geslo. Dve vrstici za tem določata omrežni naslov in vrata, kamor pošiljamo naše podatke. V tem primeru bomo samo oddajali, kar pomeni, da ga pošljemo vsem, ki poslušajo v našem omrežju. Številka vrat določa, kdo posluša, kot bomo videli čez nekaj časa.
Naslednji dve vrstici ustvarjata člane za svoje razrede, tako da lahko pozneje preprosto dostopamo do njihovih funkcij.
Nato ustrezne zatiče ESP dodelimo ustreznim zatičem na BNO.
Zdaj smo nastavili člana razreda SPI in tudi hitrost vrat SPI.
Končno pridemo do nastavitvene funkcije. Tukaj bomo zagnali serijska vrata, da bomo lahko tako spremljali naš izhod, če želimo. Nato zaženemo WiFi. Upoštevajte, da program pred nadaljevanjem čaka na povezavo WiFi. Ko je WiFi povezan, vzpostavimo povezavo UDP, nato natisnemo ime svojega omrežja in naš naslov IP na serijski monitor. Nato zaženemo vrata SPI in preverimo komunikacijo med ESP in BNO. Nazadnje pokličemo funkcijo »enableRotationVector (50);« saj bomo za to lekcijo uporabili le rotacijski vektor.
2. korak: Preostali del kode…
Preden gremo na glavno zanko (), imamo funkcijo, imenovano "mapFloat".
To je funkcija po meri, ki smo jo dodali za preslikavo ali merjenje vrednosti na druge vrednosti. Vgrajena funkcija zemljevida v Arduinu omogoča samo celoštevilčno preslikavo, vendar bodo vse naše začetne vrednosti iz BNO med -1 in 1, zato jih bomo morali ročno prilagoditi na vrednosti, ki jih resnično želimo. Brez skrbi - tukaj je preprosta funkcija:
Zdaj smo prišli do glavne zanke (). Prva stvar, ki jo boste opazili, je še ena funkcija blokiranja, na primer tista, zaradi katere program počaka na omrežno povezavo. Ta se ustavi, dokler ni podatkov iz BNO. Ko začnemo prejemati te podatke, dohodne vrednosti kvaterniona dodelimo spremenljivkam s plavajočo vejico in te podatke natisnemo na serijski monitor.
Zdaj moramo te vrednosti preslikati.
[Beseda o komunikaciji UDP: podatki se prenašajo prek UDP v 8-bitnih paketih ali vrednosti od 0-255. Vse, kar presega 255, bo potisnjeno v naslednji paket, kar bo povečalo njegovo vrednost. Zato se moramo prepričati, da ni vrednosti nad 255.]
Kot smo že omenili, imamo vhodne vrednosti v razponu od -1 do 1. To nam ne daje veliko dela, saj bo vse pod 0 odrezano (ali prikazano kot 0) in tega ne moremo storiti tono z vrednostmi med 0 -1. Najprej moramo razglasiti novo spremenljivko, da zadrži našo preslikano vrednost, nato vzamemo to začetno spremenljivko in jo preslikamo od -1 -1 do 0 -255, pri čemer rezultat dodelimo naši novi spremenljivki, imenovani Nx.
Zdaj, ko imamo preslikane podatke, lahko paket sestavimo skupaj. Če želite to narediti, moramo razglasiti vmesni pomnilnik za paketne podatke in mu dati velikost [50], da zagotovimo, da se vsi podatki prilegajo. Nato začnemo paket z naslovom in vrati, ki smo jih navedli zgoraj, svoj vmesni pomnilnik in 3 vrednosti zapišemo v paket, nato paket končamo.
Nazadnje natisnjene karte preslikamo na serijski monitor. Zdaj je koda Arduino končana! Kodo prenesite na ploščo senzorja in preverite serijski monitor, da se prepričate, ali vse deluje po pričakovanjih. Videti bi morali vrednosti kvaterniona in preslikane vrednosti.
3. korak: Povezovanje s čistimi podatki…
Zdaj za čiste podatke! Odprite Pure Data in zaženite nov popravek (ctrl n). Obliž, ki ga bomo ustvarili, je zelo preprost in ima le sedem predmetov. Prvi, ki ga bomo ustvarili, je predmet [netreceive]. To je kruh in maslo našega obliža, ki upravlja vso komunikacijo UDP. Upoštevajte, da obstajajo trije argumenti za predmet [netreceive]; -u podaja UDP, -b določa binarno datoteko, 7401 pa so seveda vrata, na katerih poslušamo. Sporočilo »poslušaj 7401« lahko pošljete tudi na [netreceive], da določite svoja vrata.
Ko pridejo podatki, jih moramo razpakirati. Če objekt [print] povežemo z [netrecieve], lahko vidimo, da podatki na začetku prihajajo kot tok števil, vendar želimo te številke razčleniti in vsako uporabiti za nekaj drugega. Na primer, morda želite uporabiti vrtenje osi X za nadzor višine toka oscilatorja in osi Y za glasnost ali poljubno število drugih možnosti. Če želite to narediti, gre podatkovni tok skozi [razpakiran] objekt, ki ima tri floate (f f f) so njegovi argumenti.
Zdaj, ko ste tako daleč, je svet vaša ostriga! Imate brezžični krmilnik, s katerim lahko upravljate vse, kar želite v vesolju Pure Data. Ampak ustavite se tam! Poleg vektorja vrtenja poskusite merilnik pospeška ali magnetometer. Poskusite uporabiti posebne funkcije BNO, na primer »dvojni dotik« ali »stresanje«. Potrebno je le malo pobrskati po priročnikih za uporabo (ali naslednjih navodilih …).
4. korak:
Zgoraj smo vzpostavili komunikacijo med senzorsko ploščo in čistimi podatki. Če se želite začeti bolj zabavati, svoje izhode podatkov priključite na nekaj oscilatorjev! Igrajte se z nastavitvijo glasnosti! Morda nadzirajte nekaj zamikov ali odmev! svet je tvoja ostriga!
Priporočena:
Spajkanje čistih žičnih spojev: 3 koraki (s slikami)
Spajkanje čistih žičnih spojev: Tukaj je hiter namig o pravilnem spajanju kablov. To je priročno za menjavo priključka na sončni plošči ali preprosto podaljšanje katerega koli dvožičnega kabla. Morda se to zdi osnovna veščina, vendar vem, da ko sem se naučil te tehnike, bom
MicroPython na plošči senzorjev za kompleksne umetnosti: 3 koraki
MicroPython na plošči senzorjev za kompleksne umetnosti: Eden najbolj neverjetnih vidikov mikrokrmilnika ESP32 je njegova sposobnost delovanja MicroPythona. To lahko storite na dva načina: z izvajanjem polnih programov Python ali interaktivno prek konzole. Ta navodila vam bodo pokazala, kako uporabljati
Krmilnik vzorčne blazinice z uporabo čistih podatkov: 4 koraki
Primer vzorčnega krmilnika z uporabo čistih podatkov: V tem navodilu bom ustvaril krmilnik, ki bo nekaterim starim Rolandovim elektronskim kompletom bobnov sprožil zvoke brez originalnega modula bobna, ki je bil priložen kompletu. Uporabil bom Pure Data za izdelavo popravka za nalaganje nekaj datotek wav in nato p
Nadzor podatkov zobne ščetke na osnovi Arduina: 4 koraki (s slikami)
Nadzor podatkov zobne ščetke na osnovi Arduina: Ta zobna ščetka na osnovi Arduina vam omogoča spremljanje vzorcev z uporabo podatkov o 3-osnem pospeševanju
EAM-Industri4.0-RFID zbirka podatkov do baze podatkov: 10 korakov (s slikami)
EAM-Industri4.0-RFID podatkovno razvrščanje podatkovnih zbirk v zbirko podatkov: Dette projekt omhandler opsamling af v æ gtdata, register up identiteter vha. RFID, zaostajanje podatkov v bazi podatkov MySQL vha. node-RED, samostojno obnašanje in ravnanje z opsamlede podatki v programu et C#, ki se oblikujejo v aplikaciji Windows Form.