Агуулгын хүснэгт:

Цэвэр өгөгдлийг WiFi дээр удирдахын тулд Урлагийн цогц мэдрэгч самбарыг ашиглах: 4 алхам (зурагтай)
Цэвэр өгөгдлийг WiFi дээр удирдахын тулд Урлагийн цогц мэдрэгч самбарыг ашиглах: 4 алхам (зурагтай)

Видео: Цэвэр өгөгдлийг WiFi дээр удирдахын тулд Урлагийн цогц мэдрэгч самбарыг ашиглах: 4 алхам (зурагтай)

Видео: Цэвэр өгөгдлийг WiFi дээр удирдахын тулд Урлагийн цогц мэдрэгч самбарыг ашиглах: 4 алхам (зурагтай)
Видео: POE видео бичигч ASECAM fixation of PERSONS тодорхойлолт нь ХҮН БА МАШИН!!! 2024, Арваннэгдүгээр
Anonim
Wi -Fi сүлжээгээр цэвэр өгөгдлийг хянахын тулд Урлагийн цогц мэдрэгч самбарыг ашиглана уу
Wi -Fi сүлжээгээр цэвэр өгөгдлийг хянахын тулд Урлагийн цогц мэдрэгч самбарыг ашиглана уу
Wi -Fi сүлжээгээр цэвэр өгөгдлийг хянахын тулд Урлагийн цогц мэдрэгч самбарыг ашиглана уу
Wi -Fi сүлжээгээр цэвэр өгөгдлийг хянахын тулд Урлагийн цогц мэдрэгч самбарыг ашиглана уу

Та хэзээ нэгэн цагт дохио зангаагаар туршилт хийхийг хүсч байсан уу? Аливаа зүйлийг гараараа даллаж хөдөлгөх үү? Бугуйнхаа тохойгоор хөгжим удирдах уу? Энэхүү зааварчилгаа нь танд яаж хийхийг харуулах болно!

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-UART чипийн драйвер бөгөөд эндээс олж болно: https://www.silabs.com/products/development-tools/software/usb-to -uart-bridge-vcp-драйверууд. Та OS -ээ сонгоод суулгахад 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 -той хамт ирдэг байх ёстой. Нэгдүгээрт, бид SPI номын санг ашиглан BNO -той харилцах болно. 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 packet руу бичээд дараа нь пакетыг дуусгана.

Эцэст нь бид зурагдсан координатаа цуваа дэлгэц дээр хэвлэнэ. Одоо Arduino код бэлэн боллоо! Мэдрэгч самбар дээр кодыг асааж, бүх зүйл хүлээгдэж буй шиг ажиллаж байгаа эсэхийг шалгахын тулд цуваа дэлгэцийг шалгана уу. Та quaternion -ийн утгууд болон газрын зургийн утгуудыг харах ёстой.

Алхам 3: Цэвэр өгөгдөлтэй холбогдож байна …

Цэвэр өгөгдөлтэй холбогдож байна…
Цэвэр өгөгдөлтэй холбогдож байна…

Одоо цэвэр өгөгдөлд зориулав! Цэвэр өгөгдлийг нээгээд шинэ нөхөөсийг эхлүүлнэ үү (ctrl n). Бидний бүтээх нөхөөс нь маш энгийн бөгөөд ердөө долоон объекттой. Бидний хийх хамгийн эхний зүйл бол [netreceive] объект юм. Энэ бол UDP -ийн бүх холболтыг зохицуулдаг бидний нөхөөсний талх, цөцгийн тос юм. [Netreceive] объектын гурван аргумент байгааг анхаарна уу; -u нь UDP, -b нь хоёртын файлыг зааж өгдөг бөгөөд 7401 бол мэдээж бидний сонсож байгаа порт юм. Та мөн "сонсох 7401" мессежийг [netreceive] руу илгээж портоо зааж өгч болно.

Мэдээлэл орж ирмэгц бид үүнийг задлах хэрэгтэй. Хэрэв бид [хэвлэх] объектыг [netrecieve] -д холбовол өгөгдөл нь эхлээд бидэнд тооны урсгал мэт ирдэг боловч бид эдгээр тоонуудыг задлан шинжилж, өөр зүйлд ашиглахыг хүсч байна. Жишээлбэл, осцилляторын давирхай, эзлэхүүний Y тэнхлэг эсвэл бусад бусад боломжуудыг хянахын тулд X тэнхлэгийн эргэлтийг ашиглахыг хүсч болно. Үүнийг хийхийн тулд өгөгдлийн урсгал нь гурван хөвөгч (f f f) байдаг [задлах] объектоор дамждаг бөгөөд энэ нь түүний аргумент юм.

Та одоо хол байгаа болохоор дэлхий бол таны хясаа! Танд цэвэр өгөгдлийн ертөнцөд хүссэн бүх зүйлээ удирдах боломжтой утасгүй хянагч бий. Гэхдээ тэнд зогсоо! Rotation Vector -аас гадна акселерометр эсвэл соронз хэмжигчийг туршиж үзээрэй. BNO -ийн "давхар товших" эсвэл "сэгсрэх" гэх мэт тусгай функцийг ашиглаж үзээрэй. Хэрэглэгчийн гарын авлага (эсвэл дараагийн зааварчилгаа …) -ыг бага зэрэг ухаж үзэхэд л хангалттай.

Алхам 4:

Бидний дээр хийсэн зүйл бол Мэдрэгч самбар ба Цэвэр өгөгдлийн хоорондох харилцаа холбоог бий болгох явдал юм. Хэрэв та илүү хөгжилтэй байхыг хүсч байвал өгөгдлийн гаралтаа зарим осцилляторт холбоно уу! Дууны хяналтаар тоглоорой! Зарим удаашруулах хугацааг хянаж эсвэл давтаж болно! дэлхий бол таны хясаа!

Зөвлөмж болгож буй: