Мазмұны:

WiFi арқылы таза деректерді бақылау үшін өнердің сенсорлық тақтасын қолдану: 4 қадам (суреттермен)
WiFi арқылы таза деректерді бақылау үшін өнердің сенсорлық тақтасын қолдану: 4 қадам (суреттермен)

Бейне: WiFi арқылы таза деректерді бақылау үшін өнердің сенсорлық тақтасын қолдану: 4 қадам (суреттермен)

Бейне: WiFi арқылы таза деректерді бақылау үшін өнердің сенсорлық тақтасын қолдану: 4 қадам (суреттермен)
Бейне: 6 ШЫНАЙЫ FACEBOOK ҚОРҚЫНЫШТЫ ӘҢГІМЕЛЕР (ЖАҢБЫР ДАУЫСЫНДАҒЫ... 2024, Қараша
Anonim
WiFi арқылы таза деректерді басқару үшін күрделі өнер сенсорлық тақтасын пайдалану
WiFi арқылы таза деректерді басқару үшін күрделі өнер сенсорлық тақтасын пайдалану
WiFi арқылы таза деректерді басқару үшін күрделі өнер сенсорлық тақтасын пайдалану
WiFi арқылы таза деректерді басқару үшін күрделі өнер сенсорлық тақтасын пайдалану

Қимылмен басқаруды тәжірибе жасағыңыз келді ме? Қолдарыңызбен нәрселерді қозғауға мәжбүр етесіз бе? Музыканы білегіңізбен басқарасыз ба? Бұл нұсқаулық сізге қалай болатынын көрсетеді!

Кешенді өнер сенсорлық тақтасы (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-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 -мен бағдарламалау және таза деректерді түзету - сансыз жобаларға қолдануға болатын құрылыс блоктары, сондықтан сіз бұл жерде еңкеймеңіз. бұл түсініктер жойылды!

Жабдықтар

1. Кешенді өнер сенсорлық тақтасы

2. Arduino IDE

3. Таза деректер

1 -қадам: Кодты зерттеу:

Кодексті зерттеу
Кодексті зерттеу
Кодексті зерттеу
Кодексті зерттеу

Алдымен біз Arduino кодын қарастырамыз. (Дереккөз https://github.com/ComplexArts/SensorBoardArduino сайтында бар. Бізге кодпен бірге жүру ұсынылады.) Бізге кейбір кітапханалар қажет, олардың бірі Arduino негізгі кітапханасы емес, сондықтан сіз оны орнату қажет болуы мүмкін. Бұл жоба SparkFun_BNO080_Arduino_Library.h файлына сүйенеді, сондықтан егер ол жоқ болса, Sketch -> Кітапхананы қосу -> Кітапханаларды басқару бөліміне өту керек. «Bno080» теріңіз, сонда жоғарыда аталған кітапхана пайда болады. Орнату түймесін басыңыз.

Қалған үш кітапхана әдепкі бойынша Arduino -мен бірге келуі керек. Біріншіден, біз BNO -мен байланысу үшін SPI кітапханасын қолданамыз. ESP32 мен BNO арасында UART қолдануға болады, бірақ 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, әрине, біз тыңдайтын порт. Сондай -ақ, портыңызды көрсету үшін [netreceive] -ге «тыңдау 7401» хабарын жіберуге болады.

Деректер кіргеннен кейін оларды ашу керек. Егер біз [басып шығару] нысанын [netrecieve] -ге қосатын болсақ, онда біз бастапқыда бізге сандар ағыны ретінде келетінін көре аламыз, бірақ біз бұл сандарды талдап, әрқайсысын басқа нәрсе үшін қолданғымыз келеді. Мысалы, осциллятордың қадамын басқару үшін X осінің айналуын, ал дыбыс деңгейінің Y осін немесе басқа мүмкіндіктердің кез келген санын қолдану қажет болуы мүмкін. Мұны істеу үшін, деректер ағыны үш флоты (f f f) бар [орау] объектісі арқылы өтеді, оның аргументтері.

Енді сіз алыс, әлем - сіздің устрица! Сізде таза деректер әлемінде қалаған нәрсені басқаруға болатын сымсыз контроллер бар. Бірақ сонда тоқта! Айналу векторынан басқа акселерометрді немесе магнитометрді қолданып көріңіз. BNO -ның «екі рет түрту» немесе «шайқау» сияқты арнайы функцияларын қолданып көріңіз. Қолдану нұсқаулығын (немесе келесі нұсқаулықта) аздап қазып алу жеткілікті.

4 -қадам:

Жоғарыда біз сенсорлық тақта мен таза деректер арасындағы байланысты орнаттық. Егер сіз көбірек көңілді болғыңыз келсе, деректер шығысын кейбір осцилляторларға қосыңыз! Дыбыс деңгейін басқарумен ойнаңыз! Мүмкін, кешіктіру уақыттарын немесе реверсті бақылаңыз! әлем - сіздің устрицаңыз!

Ұсынылған: