Мазмуну:
- Жабдуулар
- 1 -кадам: Кодексти изилдөө:
- 2 -кадам: Коддун калган бөлүгү …
- 3 -кадам: Таза маалыматтар менен туташуу…
- 4 -кадам:
Video: WiFi аркылуу таза маалыматтарды көзөмөлдөө үчүн комплекстүү көркөм сенсордук тактаны колдонуу: 4 кадам (сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Сиз качандыр бир убакта жаңсоолук менен эксперимент кылгыңыз келди беле? Колуңуздун толкуну менен нерселерди кыймылга келтиресизби? Билегиңиз менен музыканы башкарасызбы? Бул көрсөтмө сизге кантип көрсөтөт!
Complex Arts Sensor Board (complexarts.net) - бул ESP32 WROOMго негизделген ар тараптуу микроконтроллер. Бул ESP32 платформасынын бардык мүмкүнчүлүктөрүнө ээ, анын ичинде орнотулган WiFi жана Bluetooth жана 23 конфигурацияланган GPIO казыктары. Сенсордук тактада BNO_085 IMU - 9 DOF кыймыл процессору бар, ал борттогу сенсордун синтезин жана төртүнчүлүк теңдемелерин аткарат, супер так багытты, тартылуу векторун жана сызыктуу ылдамдатуу маалыматын камсыз кылат. Сенсордук тактаны Arduino, MicroPython же ESP-IDF аркылуу программаласа болот, бирок бул сабак үчүн биз Arduino IDE менен тактаны программалайбыз. Белгилей кетүүчү нерсе, ESP32 модулдары Arduino IDEден жергиликтүү түрдө программалана албайт, бирок муну мүмкүн кылуу өтө жөнөкөй; бул жерде чоң окуу куралы бар: https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/, аны бүтүрүү үчүн 2 мүнөт кетиши керек. Бизге керек болгон акыркы орнотуу бул жерде жайгашкан сенсор тактасындагы USB-to-UART чипинин драйвери, бул жерден табууга болот: https://www.silabs.com/products/development-tools/software/usb-to -uart-bridge-vcp-драйверлери. Жөн гана ОС тандап, орнотуңуз, бул дагы 2 мүнөткө созулушу керек. Бул аяктагандан кийин, биз барууга даярбыз!
[Бул сабак Arduino же Pure Data менен тааныштыкты талап кылбайт, бирок бул алардын орнотулушун камтыбайт. Arduino табууга болот aduino.cc. Таза маалыматтарды puredata.info сайтынан тапса болот. Эки сайтта тең орнотуу жана жөндөө боюнча аткарууга оңой инструкциялар бар.]
Ошондой эле … бул үйрөткүчтө камтылган түшүнүктөр, мисалы UDP байланыштарын орнотуу, ESP32ди Arduino менен программалоо жана таза Patch маалыматтар имараты - бул сансыз долбоорлорго колдонууга боло турган курулуш материалы, андыктан бул жерден чөкпөңүз. бул түшүнүктөрдү түшүрдү!
Жабдуулар
1. Комплекстүү искусство сенсордук тактасы
2. Arduino IDE
3. Таза маалыматтар
1 -кадам: Кодексти изилдөө:
Биринчиден, биз Arduino кодун карайбыз. (Булак https://github.com/ComplexArts/SensorBoardArduino дарегинде жеткиликтүү. Биз бара жатканда код менен бирге жүрүү сунушталат.) Бизге кээ бир китепканалар керек, алардын бири негизги Arduino китепканасы эмес, андыктан сиз аны орнотуу керек болушу мүмкүн. Бул долбоор SparkFun_BNO080_Arduino_Library.h файлына таянат, андыктан сизде жок болсо, Sketch -> Китепкананы кошуу -> Китепканаларды башкаруу бөлүмүнө өтүңүз. "Bno080" териңиз жана жогоруда айтылган китепкана пайда болот. Орнотууну басыңыз.
Колдонулган башка үч китепкана демейки боюнча Arduino менен келиши керек. Биринчиден, биз BNO менен байланышуу үчүн SPI китепканасын колдонобуз. UARTти ESP32 менен BNOнун ортосунда колдонсо болот, бирок SparkFun SPIди колдонгон китепканага ээ болгондуктан, биз ошону карманабыз. (Рахмат, SparkFun!) SPI.h файлын кошуу бизге SPI байланышы үчүн колдонууну каалаган казыктарды жана портторду тандоого мүмкүндүк берет.
WiFi китепканасы зымсыз тармакка кирүүгө мүмкүндүк берген функцияларды камтыйт. WiFiUDP бизге ошол тармак боюнча маалыматтарды жөнөтүүгө жана алууга мүмкүнчүлүк берген функцияларды камтыйт. Кийинки эки сап бизди тармакка алып чыгат - тармагыңыздын атын жана сырсөзүңүздү киргизиңиз. Андан кийинки эки сапта биз маалыматыбызды жөнөтүп жаткан тармактын дареги жана порту көрсөтүлөт. Бул учурда, биз жөн эле эфирге чыгабыз, бул аны биздин тармактагы угуп жаткандардын баарына жөнөтүүнү билдирет. Порт номери кимдин угуп жатканын аныктайт, биз бир аздан кийин көрөбүз.
Бул кийинки эки сап өз класстарынын мүчөлөрүн түзөт, андыктан биз алардын функцияларына кийинчерээк оңой жете алабыз.
Андан кийин, биз ESPтин тиешелүү төөнөгүчтөрүн BNOдогу тиешелүү казыктарына дайындайбыз.
Азыр биз SPI класстын мүчөсүн орноттук, ошондой эле SPI порт ылдамдыгын орноттук.
Акыр -аягы, биз орнотуу функциясына киребиз. Бул жерде, биз кааласак, өндүрүмүбүздү ушинтип көзөмөлдөй алышыбыз үчүн, сериялык портту баштайбыз. Андан кийин биз WiFi баштайбыз. Байкаңыз, программа улантуудан мурун WiFi туташуусун күтөт. WiFi туташкандан кийин, UDP туташуусун баштайбыз, андан кийин биздин тармактын аталышын жана IP дарегибизди сериялык мониторго басып чыгарабыз. Андан кийин биз SPI портун баштайбыз жана ESP менен BNO ортосундагы байланышты текшеребиз. Акырында, биз функцияны "enableRotationVector (50);" деп атайбыз. анткени биз бул сабак үчүн айлануу векторун гана колдонобуз.
2 -кадам: Коддун калган бөлүгү …
Негизги циклге () барардан мурун, бизде "mapFloat" деген функция бар.
Бул биз баалуулуктарды башка баалуулуктарга картага салуу же масштабдоо үчүн кошкон колдонуучунун функциясы. Ардуинодогу камтылган карта функциясы бүтүн сандык картаны түзүүгө гана мүмкүндүк берет, бирок биздин BNO баштапкы баалуулуктарыбыз 1ден 1ге чейин болот, андыктан биз аларды чындап каалаган баалуулуктарга кол менен масштабдашыбыз керек болот. Эч кабатыр болбоңуз - муну аткаруунун жөнөкөй функциясы:
Эми биз негизги циклге () келебиз. Сиз байкай турган биринчи нерсе - бул программаны тармак туташуусун күтүп турган башка бөгөө функциясы. Бул BNO маалыматы келгенге чейин токтойт. Биз бул маалыматты ала баштаганда, келүүчү кватериондук маанилерди өзгөрмөлүү чекит өзгөрмөлөрүнө дайындайбыз жана ал маалыматтарды сериялык мониторго басып чыгарабыз.
Эми биз ошол баалуулуктарды картага түшүрүүбүз керек.
[UDP байланышы жөнүндө сөз: маалыматтар UDP аркылуу 8 биттик пакеттерде же 0-255ке чейинки баалуулуктарда өткөрүлөт. 255тен ашкан нерсе кийинки пакетке жылдырылып, анын баасына кошулат. Ошондуктан, биз 255тен жогору баалуулуктар жок экенине ынануубуз керек.]
Мурда да айтылгандай, бизде -1 -1 диапазонунда кирүүчү баалуулуктар бар. Бул бизге иштөө үчүн көп нерсе бербейт, анткени 0дөн төмөн болгон нерсе кесилет (же 0 катары көрүнөт) жана биз кыла албайбыз 0 -1 ортосундагы мааниге ээ болгон тонна. Биз адегенде картага алынган маанибизди кармап туруу үчүн жаңы өзгөрмөнү жарыялашыбыз керек, андан кийин ошол баштапкы өзгөрмөнү алып, аны -1 -1ден 0 -255ке чейин салыштырып, натыйжаны биздин жаңы өзгөрмөгө ыйгарабыз. Nx.
Эми бизде карта маалыматтар бар, биз пакетибизди бириктире алабыз. Муну аткаруу үчүн, биз бардык маалымат туура келерине ынануу үчүн [50] өлчөмүн берип, пакет маалыматтары үчүн буфер жарыялашыбыз керек. Андан кийин биз пакетти жогоруда көрсөтүлгөн даректен жана порттон баштайбыз, буферибизди жана 3 маанилерибизди to to packetке жазабыз, андан кийин пакетти бүтүрөбүз.
Акырында, биз картага түшүрүлгөн координаттарыбызды сериялык мониторго басып чыгарабыз. Эми Arduino коду бүттү! Кодду сенсордук тактага жаркылдатып, баары күтүлгөндөй иштеп жатканына ынануу үчүн сериялык мониторду текшериңиз. Сиз quaternion баалуулуктарын жана картага алынган баалуулуктарды көрүшүңүз керек.
3 -кадам: Таза маалыматтар менен туташуу…
Эми таза маалыматтар үчүн! Таза маалыматтарды ачып, жаңы жамаачы баштаңыз (ctrl n). Биз түзө турган жамаачы өтө жөнөкөй, болгону жети объект. Биз түзө турган биринчи нерсе [netreceive] объектиси. Бул UDP байланышын башкарган биздин жамандын наны жана майы. [Netreceive] объектиси үчүн үч аргумент бар экенин байкаңыз; -u UDP, -b экиликти көрсөтөт жана 7401, албетте, биз угуп жаткан порт. Сиз ошондой эле портуңузду көрсөтүү үчүн [netreceive] "7401 угуу" билдирүүсүн жөнөтө аласыз.
Бизге маалымат келип түшкөндөн кийин, биз аны ачышыбыз керек. Эгер [басып чыгаруу] объектисин [netrecieve] менен байланыштырсак, анда маалыматтар бизге алгач сандар агымы катары келгенин көрө алабыз, бирок биз бул сандарды талдап, ар бирин башка нерсе үчүн колдонууну каалайбыз. Мисалы, осциллятордун кадамын көзөмөлдөө үчүн X огунун айлануусун, ал эми Y огунун көлөмүн же башка мүмкүнчүлүктөрдүн санын колдонууну кааласаңыз болот. Муну аткаруу үчүн, маалымат агымы үч флоту бар [ачуу] объектиси аркылуу өтөт (f f f) анын аргументтери.
Эми сен ушунчалык алыссың, дүйнө сенин устрицаң! Сизде зымсыз контролер бар, аны сиз Таза маалыматтар ааламында каалаган нерсеңизди башкара аласыз. Бирок ошол жерде токто! Rotation Vectorдон башка акселерометрди же магнитометрди колдонуп көрүңүз. BNOнун "кош таптоо" же "чайкоо" сыяктуу атайын функцияларын колдонуп көрүңүз. Колдонуучунун көрсөтмөлөрүн бир аз казуу жетиштүү (же кийинки Нускамалык…)
4 -кадам:
Биз жогоруда эмне кылдык - бул сенсордук такта менен таза маалыматтын ортосундагы байланышты орнотуу. Эгерде сиз көбүрөөк көңүл ачууну кааласаңыз, маалыматыңыздын чыгышын кээ бир осцилляторлорго туташтырыңыз! Үндү көзөмөлдөө менен ойноңуз! Балким, кээ бир кечигүү убактысын көзөмөлдөп же реверб! дүйнө - бул сенин устрицаң!
Сунушталууда:
MicroPython комплекстүү көркөм сенсордук тактасында: 3 кадам
Комплекстүү искусство сенсордук тактасындагы MicroPython: ESP32 микроконтроллеринин эң таң калыштуу аспектилеринин бири анын MicroPythonду иштетүү жөндөмдүүлүгү. Бул эки жол менен жасалышы мүмкүн: Python программаларын толук иштетүү же консолдук тиркеме аркылуу интерактивдүү. Бул Инструкция кантип колдонууну көрсөтөт
Таза маалыматтарды колдонуу менен үлгү Pad Controller: 4 кадам
Таза маалыматтарды колдонуу менен үлгүдөгү Pad Controller: Бул Нускоодо мен кээ бир эски Roland электрондук барабан комплект жаздыкчалары комплект менен келген түп барабан модулу жок үндөрдү чыгарууга уруксат берүү үчүн контролер түзөм. кээ бир wav файлдары, анан p
MotoStudent Electric Racing Bike үчүн маалыматтарды алуу жана маалыматтарды визуалдаштыруу системасы: 23 кадам
MotoStudent Electric Racing Bike үчүн маалыматтарды алуу жана маалыматтарды визуалдаштыруу системасы: Маалыматты алуу системасы - бул тышкы сенсорлордон маалыматтарды чогултуу, сактоо жана иштетүү үчүн чогуу иштеген аппараттык жана программалык камсыздоолордун жыйындысы, аны графикалык түрдө визуалдаштыруу жана анализдөө үчүн, инженерлерге уруксат берүү
Ардуино менен 2.4Ghz NRF24L01 модулун колдонуу менен зымсыз алыстан башкаруу - Nrf24l01 4 каналы / 6 каналды берүүчү Quadcopter үчүн алуучу - Rc Helicopter - Rc учагы Arduino колдонуу: 5 кадам (сүрөттөр менен)
Ардуино менен 2.4Ghz NRF24L01 модулун колдонуу менен зымсыз алыстан башкаруу | Nrf24l01 4 каналы / 6 каналды берүүчү Quadcopter үчүн алуучу | Rc Helicopter | Arduino менен Rc учагы: Rc машинасын иштетүү | Quadcopter | Дрон | RC учагы | RC кайыгы, бизге дайыма рецептор жана өткөргүч керек, RC QUADCOPTER үчүн бизге 6 каналдуу өткөргүч жана кабыл алгыч керек деп ойлойбуз жана TX менен RXтин бул түрү өтө кымбат, ошондуктан биз аны өзүбүздө жасайбыз
Blynkти колдонуу менен Arduino WeMos D1 WiFi UNO ESP8266 IOT IDEге шайкеш келген тактаны кантип колдонуу керек: 10 кадам
Blynkти колдонуу менен Arduino WeMos D1 WiFi UNO ESP8266 IOT IDEге шайкеш келген тактаны кантип колдонсо болот: Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE Compatible Board Description: Description: WiFi ESP8266 Development Board WEMOS D1. WEMOS D1 - ESP8266 12Eге негизделген WIFI өнүктүрүү тактасы. Иштөө тутуму NODEMCUга окшош, бирок аппараттык жабдуулар бузулган