Mundarija:
- Ta'minotlar
- 1 -qadam: Kodni o'rganish:
- 2 -qadam: Kodning qolgan qismi …
- 3 -qadam: Toza ma'lumotlar bilan ulanish…
- 4 -qadam:
Video: Wi -Fi orqali toza ma'lumotlarni boshqarish uchun murakkab san'at sensorlar panelidan foydalanish: 4 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
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:
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 …
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…
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:
[2020] RC avtomobilini boshqarish uchun ikkita (x2) mikro: bitdan foydalanish: 6 qadam (rasmlar bilan)
[2020] RC avtomobilini boshqarish uchun ikkita (x2) Micro: bitdan foydalanish: Agar sizda ikkita (x2) micro: bit bo'lsa, ularni RC avtomashinasini masofadan boshqarish uchun ishlatishni o'ylab ko'rganmisiz? Siz RC avtomashinasini bitta mikro: bitni uzatuvchi sifatida, ikkinchisini qabul qilgich yordamida boshqarishingiz mumkin. Micro: b kodlash uchun MakeCode muharriridan foydalansangiz
MicroPython murakkab badiiy sensorlar panelida: 3 qadam
MicroPython murakkab badiiy sensorlar panelida: ESP32 mikrokontrollerining eng ajoyib jihatlaridan biri bu MicroPython -ni ishga tushirish qobiliyatidir. Buni ikki usulda bajarish mumkin: Python -ning to'liq dasturlarini ishga tushirish yoki interaktiv tarzda konsolli dastur orqali. Bu ko'rsatma qanday foydalanishni ko'rsatib beradi
IPad uchun devorga o'rnatish uyni avtomatlashtirishni boshqarish paneli sifatida, ekranni faollashtirish uchun servo boshqariladigan magnitdan foydalanish: 4 qadam (rasmlar bilan)
IPad uchun devorga o'rnatish uyni avtomatlashtirishni boshqarish paneli sifatida, ekranni faollashtirish uchun servo boshqariladigan magnitdan foydalanadi: So'nggi paytlarda men uyim va atrofimdagi narsalarni avtomatlashtirishga ancha vaqt sarfladim. Men Domoticz -ni uy avtomatlashtirish ilovasi sifatida ishlataman, batafsil ma'lumot uchun www.domoticz.com saytiga qarang. Men Domoticz haqidagi barcha ma'lumotlarni ko'rsatadigan asboblar paneli dasturini qidirishda
MotoStudent elektr poygasi uchun ma'lumotlarni yig'ish va ma'lumotlarni vizualizatsiya tizimi: 23 qadam
MotoStudent elektr poygasi uchun ma'lumotlarni yig'ish va ma'lumotlarni vizualizatsiya qilish tizimi: Ma'lumot yig'ish tizimi - bu tashqi sensorlardan ma'lumotlarni yig'ish, keyinchalik saqlash va qayta ishlash uchun birgalikda ishlaydigan apparat va dasturiy ta'minot yig'indisi, uni grafik ko'rinishida va tahlil qilish uchun, muhandislarga ruxsat berish
LEDni Blynk orqali Wi -Fi orqali boshqarish uchun ESP32 -dan qanday foydalanish kerak: 7 qadam (rasmlar bilan)
LEDni Blynk orqali Wi -Fi orqali boshqarish uchun ESP32 -dan qanday foydalanish kerak: Ushbu qo'llanmada LED orqali WiFi orqali Blynk -ni boshqarish uchun ESP32 ishlab chiqish paneli ishlatiladi. Blynk - bu Internetda Arduino, Raspberry Pi va boshqalarni boshqarish uchun iOS va Android ilovalari o'rnatilgan platforma. Bu raqamli asboblar paneli, bu erda siz