Агуулгын хүснэгт:
- Хангамж
- Алхам 1: Кодыг судлах:
- Алхам 2: Кодын үлдсэн хэсэг
- Алхам 3: Цэвэр өгөгдөлтэй холбогдож байна …
- Алхам 4:
Видео: Цэвэр өгөгдлийг WiFi дээр удирдахын тулд Урлагийн цогц мэдрэгч самбарыг ашиглах: 4 алхам (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:02
Та хэзээ нэгэн цагт дохио зангаагаар туршилт хийхийг хүсч байсан уу? Аливаа зүйлийг гараараа даллаж хөдөлгөх үү? Бугуйнхаа тохойгоор хөгжим удирдах уу? Энэхүү зааварчилгаа нь танд яаж хийхийг харуулах болно!
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:
Бидний дээр хийсэн зүйл бол Мэдрэгч самбар ба Цэвэр өгөгдлийн хоорондох харилцаа холбоог бий болгох явдал юм. Хэрэв та илүү хөгжилтэй байхыг хүсч байвал өгөгдлийн гаралтаа зарим осцилляторт холбоно уу! Дууны хяналтаар тоглоорой! Зарим удаашруулах хугацааг хянаж эсвэл давтаж болно! дэлхий бол таны хясаа!
Зөвлөмж болгож буй:
[2020] RC машиныг удирдахын тулд iPhone эсвэл IPad болон Micro: bit Game Pad програмыг ашиглах: 23 алхам
[2020] RC машиныг удирдахын тулд IPhone эсвэл IPad болон Micro: bit Game Pad програмыг ашиглах: Та өөрийн микро эсвэл битийг удирдахын тулд iPhone эсвэл iPad -аа ашиглах талаар бодож байсан уу? Micro: bit Educational Foundation нь iOS програмыг iOS програмаар хангадаг гэдгийг та мэдэх үү? Апп дэлгүүр үү? &Quot; микро: бит " App store -д байгаа бөгөөд та програмыг үнэгүй татаж авах боломжтой
Урлагийн цогц мэдрэгч самбар дээрх MicroPython: 3 алхам
Урлагийн цогц мэдрэгч самбар дээрх MicroPython: ESP32 микроконтроллерийн хамгийн гайхалтай талуудын нэг бол MicroPython -ийг ажиллуулах чадвар юм. Үүнийг хоёр аргаар хийж болно: Python програмыг бүрэн ажиллуулах эсвэл консол програм ашиглан интерактив байдлаар ажиллуулах. Энэхүү зааварчилгаа нь хэрхэн ашиглахыг харуулах болно
Stepper моторыг хянахын тулд хуучин зөөврийн компьютерын мэдрэгч самбарыг дахин ашиглаарай: 11 алхам (зурагтай)
Stepper моторыг хянахын тулд хуучин зөөврийн компьютерын мэдрэгч самбарыг дахин ашигла: Би энэ төслийг хэдэн сарын өмнө хийсэн. Хэдхэн хоногийн өмнө би төслийн видео бичлэгийг r/Arduino дээр Reddit дээр тавьжээ. Төслийг сонирхож буй хүмүүсийг хараад би энэ зааврыг хийхээр шийдсэн бөгөөд энд би Arduino кодод зарим өөрчлөлт оруулсан болно
Visuino LED гэх мэт зүйлсийг удирдахын тулд товчлуурыг хэрхэн ашиглах вэ: 6 алхам
Visuino товчлуурыг LED гэх мэт зүйлсийг хянахын тулд оролт болгон хэрхэн ашиглах талаар: Энэхүү гарын авлагад бид энгийн товчлуур болон Visuino ашиглан LED -ийг асаах, унтраах талаар сурах болно
Компьютерээ удирдахын тулд Bluetooth -ийг идэвхжүүлсэн Sony Ericsson утсыг ашиглах: 6 алхам
Таны компьютерийг удирдахын тулд Bluetooth -ийг идэвхжүүлсэн Sony Ericsson утсаа ашиглах нь: Би хэсэг хугацаанд зааварчилгаа уншиж байсан бөгөөд хүмүүсийн бичсэн зарим зүйлийг хийхийг үргэлж хүсдэг байсан, гэхдээ би эдгээр зүйлийг харж байгаад өөрийгөө олж харсан. хийхэд үнэхээр хэцүү байдаг, учир нь үүнийг хийхэд үнэхээр хэцүү байдаг