Բովանդակություն:

Օգտագործելով Complex Arts Sensor Board- ը ՝ մաքուր տվյալները WiFi- ով վերահսկելու համար. 4 քայլ (նկարներով)
Օգտագործելով Complex Arts Sensor Board- ը ՝ մաքուր տվյալները WiFi- ով վերահսկելու համար. 4 քայլ (նկարներով)

Video: Օգտագործելով Complex Arts Sensor Board- ը ՝ մաքուր տվյալները WiFi- ով վերահսկելու համար. 4 քայլ (նկարներով)

Video: Օգտագործելով Complex Arts Sensor Board- ը ՝ մաքուր տվյալները WiFi- ով վերահսկելու համար. 4 քայլ (նկարներով)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Հուլիսի
Anonim
Օգտագործելով Complex Arts Sensor Board- ը ՝ մաքուր տվյալները WiFi- ով վերահսկելու համար
Օգտագործելով Complex Arts Sensor Board- ը ՝ մաքուր տվյալները WiFi- ով վերահսկելու համար
Օգտագործելով Complex Arts Sensor Board- ը ՝ մաքուր տվյալները WiFi- ով վերահսկելու համար
Օգտագործելով Complex Arts Sensor Board- ը ՝ մաքուր տվյալները WiFi- ով վերահսկելու համար

Երբևէ ցանկացե՞լ եք փորձարկել ժեստերի վերահսկումը: Ձեռքի շարժումով ստիպո՞ւմ եք իրերին շարժվել: Վերահսկե՞լ երաժշտությունը ձեր դաստակի ոլորումով: Այս Instructable- ը ցույց կտա ձեզ, թե ինչպես:

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 րոպե: Կարգավորման վերջին կտորը մեզ անհրաժեշտ է Sensor Board- ի USB-to-UART չիպի համար, որը կարելի է գտնել այստեղ ՝ https://www.silabs.com/products/development-tools/software/usb-to -uart-bridge-vcp-drivers. Պարզապես ընտրեք ձեր OS- ն և տեղադրեք, որը պետք է տևի ևս 2 րոպե: Երբ դա արվի, մենք լավ ենք գնալու:

[Այս դասը չի ենթադրում որևէ ծանոթություն Arduino- ի կամ Pure Data- ի հետ, սակայն այն չի լուսաբանի դրանց տեղադրումը: Arduino- ն կարելի է գտնել aduino.cc կայքում: Մաքուր տվյալները կարելի է գտնել puredata.info կայքում: Երկու կայքերն էլ հեշտությամբ հետևում են տեղադրման և տեղադրման հրահանգներին:]

Նաև… այս ձեռնարկում ներառված հասկացությունները, ինչպիսիք են UDP կապերի ստեղծումը, ESP32- ի ծրագրավորումը Arduino- ով և հիմնական Pure Data patch շենքը, կառուցվածքային բլոկներ են, որոնք կարող են կիրառվել անհամար նախագծերի համար, այնպես որ մի կանգնեք այստեղ հանեց այս հասկացությունները:

Պարագաներ

1. Complex Arts Sensor Board

2. Arduino IDE

3. Մաքուր տվյալներ

Քայլ 1: Կոդի ուսումնասիրություն

Կոդի ուսումնասիրություն
Կոդի ուսումնասիրություն
Կոդի ուսումնասիրություն
Կոդի ուսումնասիրություն

Նախ, մենք կանդրադառնանք Arduino կոդին: (Աղբյուրը հասանելի է https://github.com/ComplexArts/SensorBoardArduino- ում: Խորհուրդ է տրվում, որ մենք գնանք ծածկագրին զուգահեռ): Մեզ անհրաժեշտ են որոշ գրադարաններ, որոնցից մեկը հիմնական Arduino գրադարանը չէ, այնպես որ դուք կարող է անհրաժեշտ լինել տեղադրել այն: Այս նախագիծը հիմնված է SparkFun_BNO080_Arduino_Library.h ֆայլի վրա, այնպես որ, եթե դա չունեք, ապա պետք է գնաք ուրվագիծ -> ներառել գրադարան -> կառավարել գրադարանները: Մուտքագրեք «bno080»-ը և կհայտնվի վերը նշված գրադարանը: Կտտացրեք տեղադրել:

Մյուս երեք գրադարանները, որոնք օգտագործվում են, պետք է լռելյայն ունենան Arduino- ն: Նախ, մենք կօգտագործենք SPI գրադարանը `BNO- ի հետ հաղորդակցվելու համար: Հնարավոր է նաև օգտագործել 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» կոչվող գործառույթ:

Սա սովորական գործառույթ է, որը մենք ավելացրել ենք այլ արժեքներին արժեքներ քարտեզագրելու կամ մասշտաբելու համար: Ներկառուցված քարտեզի գործառույթը Arduino- ում թույլ է տալիս միայն ամբողջ թվերի քարտեզագրում, սակայն 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 փաթեթին, այնուհետև ավարտում ենք փաթեթը:

Վերջապես, մենք տպագրում ենք մեր քարտեզագրված կոորդինատները սերիական մոնիտորի վրա: Այժմ Arduino կոդը ավարտված է: Միացրեք կոդը Սենսորների տախտակին և ստուգեք սերիական մոնիտորը `համոզվելու համար, որ ամեն ինչ աշխատում է, ինչպես և սպասվում էր: Դուք պետք է տեսնեք չորրորդական արժեքները, ինչպես նաև քարտեզագրված արժեքները:

Քայլ 3: Մաքուր տվյալների հետ միացում…

Մաքուր տվյալների հետ կապ…
Մաքուր տվյալների հետ կապ…

Հիմա մաքուր տվյալների համար: Բացեք Մաքուր տվյալները և սկսեք նոր կարկատել (ctrl n): Կարկատը, որը մենք կստեղծենք, շատ պարզ է ՝ ունենալով ընդամենը յոթ օբյեկտ: Առաջինը, որ մենք պատրաստվում ենք ստեղծել, [netreceive] օբյեկտն է: Սա մեր կարկատանի հացն ու կարագն է, որը կարգավորում է UDP- ի բոլոր հաղորդակցությունները: Ուշադրություն դարձրեք, որ [netreceive] օբյեկտի երեք փաստարկ կա. -u- ն սահմանում է UDP, -b- ը `երկուական, և 7401 -ը, իհարկե, այն նավահանգիստն է, որը մենք լսում ենք: Կարող եք նաև ուղարկել «լսել 7401» հաղորդագրությունը [netreceive] հասցեին ՝ ձեր նավահանգիստը նշելու համար:

Երբ մենք մուտքագրենք տվյալներ, մենք պետք է բացենք դրանք: Եթե մենք միացնում ենք [տպման] օբյեկտը [netrecieve] - ին, ապա մենք կարող ենք տեսնել, որ տվյալները սկզբում մեզ են հասնում որպես թվերի հոսք, բայց մենք ցանկանում ենք վերլուծել այդ թվերը և օգտագործել դրանցից յուրաքանչյուրը ինչ -որ այլ բանի համար: Օրինակ, գուցե ցանկանաք օգտագործել X առանցքի պտույտը ՝ տատանումների տեմպը վերահսկելու համար, իսկ Y առանցքը ՝ ծավալի կամ ցանկացած այլ հնարավորությունների համար: Դա անելու համար տվյալների հոսքն անցնում է [չբացահայտել] օբյեկտի միջով, որն ունի երեք բոց (f f f) նրա փաստարկներն են:

Հիմա, երբ դու այսքան հեռու ես, աշխարհը քո ոստրեն է: Դուք ունեք անլար վերահսկիչ, որը կարող եք օգտագործել ՝ մաքրելու այն ամենը, ինչ ցանկանում եք Մաքուր տվյալների տիեզերքում: Բայց կանգ առեք այնտեղ: Բացի Պտտման վեկտորից, փորձեք արագացուցիչը կամ մագնիսաչափը: Փորձեք օգտագործել BNO- ի հատուկ գործառույթներ, ինչպիսիք են «կրկնակի թակել» կամ «թափահարում»: Ընդամենը պետք է մի փոքր փորփրել օգտվողի ձեռնարկները (կամ հաջորդ հրահանգը …):

Քայլ 4:

Այն, ինչ մենք արել ենք վերևում, ստեղծում է հաղորդակցություն սենսորային տախտակի և մաքուր տվյալների միջև: Եթե ցանկանում եք սկսել ավելի շատ զվարճանալ, միացրեք ձեր տվյալների արդյունքները որոշ տատանումների հետ: Խաղացեք ձայնի վերահսկման հետ: Գուցե վերահսկեք որոշ հետաձգման ժամանակներ կամ արձագանքեք: աշխարհը քո ոստրե է:

Խորհուրդ ենք տալիս: