Mundarija:

Wi -Fi orqali toza ma'lumotlarni boshqarish uchun murakkab san'at sensorlar panelidan foydalanish: 4 qadam (rasmlar bilan)
Wi -Fi orqali toza ma'lumotlarni boshqarish uchun murakkab san'at sensorlar panelidan foydalanish: 4 qadam (rasmlar bilan)

Video: Wi -Fi orqali toza ma'lumotlarni boshqarish uchun murakkab san'at sensorlar panelidan foydalanish: 4 qadam (rasmlar bilan)

Video: Wi -Fi orqali toza ma'lumotlarni boshqarish uchun murakkab san'at sensorlar panelidan foydalanish: 4 qadam (rasmlar bilan)
Video: #ZAPAL#12-YOSHLI QIZ USHLANDI 2024, Noyabr
Anonim
Wi -Fi orqali toza ma'lumotlarni boshqarish uchun murakkab san'at sensorlar panelidan foydalanish
Wi -Fi orqali toza ma'lumotlarni boshqarish uchun murakkab san'at sensorlar panelidan foydalanish
Wi -Fi orqali toza ma'lumotlarni boshqarish uchun murakkab san'at sensorlar panelidan foydalanish
Wi -Fi orqali toza ma'lumotlarni boshqarish uchun murakkab san'at sensorlar panelidan foydalanish

Siz hech qachon imo -ishora bilan tajriba o'tkazishni xohlaganmisiz? Qo'lingiz bilan ishlarni harakatga keltirasizmi? Musiqani bilagingiz bilan boshqarasizmi? Bu ko'rsatma sizga qanday qilib ko'rsatib beradi!

Kompleks san'at sensorlar taxtasi (complexarts.net) - ESP32 WROOM -ga asoslangan ko'p qirrali mikrokontroller. U ESP32 platformasining barcha xususiyatlariga ega, shu jumladan o'rnatilgan WiFi va Bluetooth va 23 konfiguratsiya qilinadigan GPIO pinlari. Sensor taxtasida, shuningdek, BNO_085 IMU - 9 ta DOF harakat protsessori mavjud bo'lib, u bort sensori termoyadroviy va to'rtlik tenglamalarini bajaradi, bu juda aniq yo'nalish, tortishish vektori va chiziqli tezlanish ma'lumotlarini beradi. Sensorli taxtani Arduino, MicroPython yoki ESP-IDF yordamida dasturlash mumkin, lekin bu dars uchun biz Arduino IDE yordamida taxtani dasturlashtiramiz. Shuni ta'kidlash kerakki, ESP32 modullari Arduino IDE -dan dasturlashtirilmaydi, lekin buni amalga oshirish juda oson; bu erda ajoyib darslik bor: https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/, uni bajarish uchun taxminan 2 daqiqa vaqt ketadi. Bizga kerak bo'lgan oxirgi sozlash-bu sensorlar panelidagi USB-to-UART chipining drayveri, uni bu erda topish mumkin: https://www.silabs.com/products/development-tools/software/usb-to -uart-ko'prigi-vcp-haydovchilari. Faqat OS ni tanlang va o'rnating, bu taxminan 2 daqiqa davom etadi. Bu amalga oshgandan so'ng, biz borishga tayyormiz!

[Bu dars na Arduino, na Pure Data bilan tanishlikni nazarda tutadi, lekin u ularni o'rnatishni qamrab olmaydi. Arduino -ni aduino.cc saytida topish mumkin. Sof ma'lumotlarni puredata.info saytida topish mumkin. Ikkala saytda ham o'rnatish va sozlash bo'yicha amal qilish oson bo'lgan ko'rsatmalar mavjud.]

Shuningdek … UDP ulanishlarini sozlash, ESP32 -ni Arduino -da dasturlash va Pure Data patch -ning asosiy tuzilishi kabi bu qo'llanmada keltirilgan tushunchalar son -sanoqsiz loyihalar uchun qo'llanilishi mumkin bo'lgan qurilish bloklari, shuning uchun siz bu erga egilmang. bu tushunchalarni tushundi!

Ta'minotlar

1. Murakkab san'at sensorlar paneli

2. Arduino IDE

3. Sof ma'lumotlar

1 -qadam: Kodni o'rganish:

Kodni o'rganish
Kodni o'rganish
Kodni o'rganish
Kodni o'rganish

Birinchidan, biz Arduino kodini ko'rib chiqamiz. (Manba https://github.com/ComplexArts/SensorBoardArduino saytida mavjud. Biz ketayotganimizda kodni kuzatib borish tavsiya etiladi.) Bizga kutubxonalar kerak, ulardan biri Arduino -ning asosiy kutubxonasi emas, shuning uchun siz uni o'rnatish kerak bo'lishi mumkin. Bu loyiha SparkFun_BNO080_Arduino_Library.h fayliga asoslangan, shuning uchun sizda yo'q bo'lsa, Sketch -> Kutubxonani qo'shish -> Kutubxonalarni boshqarish -ga o'ting. "Bno080" ni kiriting va yuqorida aytib o'tilgan kutubxona paydo bo'ladi. O'rnatishni bosing.

Qolgan uchta kutubxona sukut bo'yicha Arduino bilan birga bo'lishi kerak. Birinchidan, biz BNO bilan muloqot qilish uchun SPI kutubxonasidan foydalanamiz. ESP32 va BNO o'rtasida UART -dan foydalanish mumkin, lekin SparkFun -da SPI -dan foydalanadigan kutubxona mavjud bo'lgani uchun biz bunga tayanamiz. (Rahmat, SparkFun!) SPI.h faylini o'z ichiga olgan holda biz SPI aloqasi uchun qaysi pin va portlardan foydalanishni tanlashimiz mumkin.

WiFi kutubxonasi simsiz tarmoqqa kirishga imkon beradigan funktsiyalarni o'z ichiga oladi. WiFiUDP bu tarmoq orqali ma'lumotlarni yuborish va qabul qilish imkonini beradigan funktsiyalarni o'z ichiga oladi. Keyingi ikkita qator bizni tarmoqqa olib chiqadi - tarmoq nomi va parolingizni kiriting. Ikki satrda biz ma'lumot yuboradigan tarmoq manzili va port ko'rsatilgan. Bunday holda, biz shunchaki efirga uzatamiz, ya'ni uni tinglayotganlar tarmog'imizdagi har kimga yuboradi. Port raqami kimni tinglayotganini aniqlaydi, buni birozdan keyin ko'ramiz.

Bu keyingi ikkita satr o'z sinflari uchun a'zolar yaratadi, shuning uchun biz keyinchalik ularning vazifalariga bemalol kira olamiz.

Keyinchalik, biz ESP -ning tegishli pinlarini BNO -dagi tegishli pinlariga tayinlaymiz.

Endi biz SPI sinf a'zosini o'rnatdik, shuningdek SPI port tezligini o'rnatdik.

Nihoyat, sozlash funktsiyasiga o'tamiz. Bu erda biz ketma -ket portni ishga tushiramiz, shuning uchun agar xohlasak, chiqishni shu tarzda kuzata olamiz. Keyin biz WiFi -ni ishga tushiramiz. E'tibor bering, dastur davom etishdan oldin Wi -Fi ulanishini kutadi. WiFi ulangandan so'ng, biz UDP ulanishini boshlaymiz, keyin tarmoq nomini va IP -manzilimizni ketma -ket monitorga chop etamiz. Shundan so'ng biz SPI portini ishga tushiramiz va ESP va BNO o'rtasidagi aloqani tekshiramiz. Va nihoyat, biz funktsiyani "enableRotationVector (50);" deb ataymiz. chunki biz bu dars uchun faqat aylanish vektoridan foydalanamiz.

2 -qadam: Kodning qolgan qismi …

Kodning qolgan qismi …
Kodning qolgan qismi …

Asosiy loopga () o'tishdan oldin bizda "mapFloat" deb nomlangan funksiya mavjud.

Bu biz qiymatlarni boshqa qiymatlarga moslashtirish yoki o'lchash uchun qo'shgan maxsus funktsiya. Arduino -dagi o'rnatilgan xarita funktsiyasi faqat butun sonlarni xaritalashga imkon beradi, lekin BNO -dan olingan barcha boshlang'ich qiymatlarimiz -1 va 1 orasida bo'ladi, shuning uchun biz ularni qo'lda biz xohlagan qiymatlarga moslashtirishimiz kerak bo'ladi. Xavotir olmang - buning uchun oddiy vazifa:

Endi biz asosiy loopga () kelamiz. Siz sezgan birinchi narsa - bu boshqa blokirovka funktsiyasi, masalan, dastur tarmoq ulanishini kutishga majbur qiladi. Bu BNO ma'lumotlari bo'lmaguncha to'xtaydi. Biz bu ma'lumotlarni olishni boshlaganimizda, biz kelayotgan kvaternion qiymatlarini suzuvchi nuqta o'zgaruvchilariga tayinlaymiz va bu ma'lumotlarni ketma -ket monitorga chop etamiz.

Endi biz bu qiymatlarni xaritaga solishimiz kerak.

[UDP aloqasi haqida bir so'z: ma'lumotlar UDP orqali 8 bitli paketlarda yoki 0-255 gacha bo'lgan qiymatlarda uzatiladi. 255 dan oshgan har bir narsa keyingi paketga o'tkaziladi va uning qiymatiga qo'shiladi. Shuning uchun biz 255 dan yuqori qiymatlar yo'qligiga ishonch hosil qilishimiz kerak.]

Yuqorida aytib o'tganimizdek, bizda -1 -1 oralig'ida kiruvchi qiymatlar bor. Bu biz bilan ishlashga ko'p narsa bermaydi, chunki 0 dan past bo'lgan har qanday narsa kesiladi (yoki 0 bo'lib ko'rinadi) va biz qila olmaymiz. tonna qiymatlari 0 dan 1 gacha. Biz xaritadagi qiymatimizni ushlab turish uchun avval yangi o'zgaruvchini e'lon qilishimiz kerak, keyin biz bu o'zgaruvchini olamiz va uni -1 -1 dan 0 -255 gacha xaritaga joylashtiramiz va natijani yangi o'zgaruvchiga belgilaymiz. Nx.

Endi bizda xaritali ma'lumotlar bor, biz o'z paketimizni birlashtira olamiz. Buni amalga oshirish uchun, biz barcha ma'lumotlarga mos kelishiga ishonch hosil qilish uchun [50] hajmli paketli ma'lumotlar uchun buferni e'lon qilishimiz kerak. Keyin biz paketni yuqorida ko'rsatilgan manzil va portdan boshlaymiz, bufer va 3 qiymatini to to paketiga yozamiz, so'ng paketni tugatamiz.

Nihoyat, biz xaritali koordinatalarni ketma -ket monitorga chop etamiz. Endi Arduino kodi tayyor! Sensorli kartaga kodni o'chiring va hamma narsa kutilganidek ishlayotganini tekshirish uchun ketma -ket monitorni tekshiring. Siz quaternion qiymatlarini, shuningdek, xaritalangan qiymatlarni ko'rishingiz kerak.

3 -qadam: Toza ma'lumotlar bilan ulanish…

Toza ma'lumotlar bilan ulanmoqda…
Toza ma'lumotlar bilan ulanmoqda…

Endi aniq ma'lumotlar uchun! Sof ma'lumotlarni oching va yangi tuzatishni boshlang (ctrl n). Biz yaratadigan yamoq juda oddiy, atigi etti ob'ektdan iborat. Biz yaratmoqchi bo'lgan birinchi narsa - [netreceive] ob'ekti. Bu bizning yamog'imizdagi non va sariyog ', UDP bilan barcha aloqalarni boshqaradi. E'tibor bering, [netreceive] obyekti uchun uchta dalil bor; -u UDP ni, -b ikkilikni ko'rsatadi va 7401, albatta, biz tinglayotgan port. Shuningdek, portingizni ko'rsatish uchun "net 7401" xabarini [netreceive] yuborishingiz mumkin.

Ma'lumotlar kirgandan so'ng, biz ularni ochishimiz kerak. Agar biz [chop etish] ob'ektini [netrecieve] ga ulasak, biz ma'lumotlarning bizga dastlab raqamlar oqimi sifatida kelganini ko'rishimiz mumkin, lekin biz bu raqamlarni tahlil qilib, har birini boshqacha ishlatmoqchimiz. Masalan, siz osilatorning balandligini boshqarish uchun X o'qi aylanishini, ovoz balandligi uchun Y o'qini yoki boshqa imkoniyatlarni ishlatishingiz mumkin. Buni amalga oshirish uchun, ma'lumotlar oqimi uchta ochiladigan (f f f) ob'ektga o'tadi, uning argumentlari.

Endi siz uzoqdasiz, dunyo sizning istiridyangiz! Sizda sof ma'lumotlar koinotida xohlagan narsani boshqarish uchun simsiz boshqaruvchi mavjud. Lekin shu erda to'xtang! Rotation vektoridan tashqari, akselerometr yoki magnitometrni ishlating. BNO ning "ikki marta bosish" yoki "silkitish" kabi maxsus funktsiyalaridan foydalanishga harakat qiling. Buning uchun faqat foydalanuvchi qo'llanmalarini (yoki keyingi ko'rsatmalarni …) biroz qazish kifoya.

4 -qadam:

Biz nima qildik - bu Sensor Board va Pure Data o'rtasidagi aloqani o'rnatish. Agar siz ko'proq dam olishni boshlamoqchi bo'lsangiz, ma'lumotlaringizni ba'zi osilatorlarga ulang! Ovozni boshqarish bilan o'ynang! Balki, kechikish vaqtini yoki reverbni boshqaring! dunyo sizning istiridyangiz!

Tavsiya: