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

UCL Embedded - B0B Linefollower: 9 алхам
UCL Embedded - B0B Linefollower: 9 алхам

Видео: UCL Embedded - B0B Linefollower: 9 алхам

Видео: UCL Embedded - B0B Linefollower: 9 алхам
Видео: The Empire Of Mali - In Our Time (BBC) 2024, Долдугаар сарын
Anonim
UCL суулгагдсан - B0B шугам дагагч
UCL суулгагдсан - B0B шугам дагагч

Энэ бол B0B*.

B0B бол радио хяналттай ерөнхий машин бөгөөд шугамаар ажилладаг роботын үндсэн үүргийг гүйцэтгэдэг.

Түүний өмнө ажиллаж байсан олон тооны роботуудын нэгэн адил шал, ялгаатай материалын хооронд шилжсэнээс үүссэн шугам дээр үлдэхийн тулд чадах бүхнээ хийх болно.

Шугам дагаж ажилладаг бусад олон роботоос ялгаатай нь B0B нь өгөгдөл цуглуулж WiFi-ээр дамжуулдаг.

Хобби төслийн хувьд хэт их ачаалал өгөх нь танд сонирхолтой санагдах хэд хэдэн сэдвийг хамардаг. Энэхүү гарын авлагад түүний төрөлт, чиг үүрэг, хэрхэн түүнтэй адилхан болгох талаар тайлбарласан болно.

Үүнд янз бүрийн электроникийн төхөөрөмжүүд бидний хүссэнээр ажиллахгүй байгаадаа уурлах, эдгээр бэрхшээлийг даван туулахын тулд хийсэн алхамууд орно (би чамайг харж байна ESP 8266-01).

Төслийг ажиллуулахын тулд 2 код байдаг. Эхний код нь Arduino -ийг програмист болгон ашигладаг ESP8266 модульд зориулагдсан бөгөөд хоёр дахь код нь Arduino дээр ажиллах болно.

Алхам 1: бүрэлдэхүүн хэсгүүд

Энэ төслийн хувьд танд хэрэгтэй болно:

Техник хангамж:

• 1х радио хянагч машин, (ESC болон жолооны servo байх ёстой).

Бид ихэнхдээ Traxxas 1/16 E-Revo VXL-ийг ашигладаг байсан бөгөөд ихэнхдээ энэ нь бидэнд байсан бөгөөд үүнийг Arduino-той удирдах боломжтой гэдэгт итгэлтэй байсан. Түүнчлэн, энэ нь бага хэмжээний нэмэлт тоног төхөөрөмж авчрах тул энэ нь 1/16 E-Revo-ийн хувьд асуудал биш гэдэгт бид итгэлтэй байсан.

Гэсэн хэдий ч ихэнх радио удирдлагатай машинуудыг (амархан салгаж авах боломжтой) оронд нь ашиглаж болох бөгөөд энэ үйл явц нь маш төстэй байх болно.

• Нэг тонн наалдамхай тууз.

Өнгө нь шалыг аль болох тод харагдуулах ёстой. Туршилтын орчинд бид харанхуй шалан дээр цагаан соронзон хальс ашигласан.

• 1х Arduino Mega 2560.

Жижиг Ардуино ч бас сайн байгаа байх, гэхдээ та тээглүүр дарах болно.

• 1х том талхны тавцан.

Нэг нь хангалттай, гэхдээ бид хэрэглэгчийн алдааны эрсдлийг бууруулахын тулд бусад хүчдэлийн цахилгаан шугамыг салгах жижиг шугамтай байсан.

• 1x TCRT5000 IR аналог мэдрэгч (мөргөлдөөнөөс сэргийлэх зорилгоор ашигладаг).

Яг брэнд/загвар нь Arduino -тэй нийцтэй бөгөөд зайг хэмждэг эсэх нь хамаагүй. "Зай", "саад бэрхшээл" мэдрэгч гэх мэт түлхүүр үг хайх. Техникийн хувьд дижитал мэдрэгч нь кодын өчүүхэн өөрчлөлтөөр ажиллах боломжтой боловч бид аналогийг ашиглаж байна.

• 1x эсвэл 2x Gravity: аналог саарал өнгийн мэдрэгч v2

Нэг нь мөр дагагчийн хувьд зайлшгүй шаардлагатай зүйл юм. Яг тусгасан гэрлийн эрч хүчийг харж, аналог дохиог гаргадаг бол яг загвар нь хамаагүй. "Өрөө" илрүүлэх хоёр дахь хувилбар нь хүлээгдэж буй хэмжээнд сайн ажиллаагүй тул үүнийг орхиж болно, эсвэл илүү сайн нөлөө үзүүлэхийн тулд RGB өнгө мэдрэгч гэх мэт өөр хувилбарыг олж болно. Үүнийг бид хараахан туршиж үзээгүй байна.

• 1 x ESP 8266-01.

ESP 8266 -ийн маш олон хувилбарууд байдаг. Бид зөвхөн 8266-01-тэй ажиллах туршлагатай бөгөөд ESP код нь өөр хувилбартай ажиллах болно гэсэн баталгаа өгч чадахгүй.

• 1 x ESP8266-01 Wi-Fi бамбай.

Техникийн хувьд заавал биш, гэхдээ хэрэв та үүнийг ашиглахгүй бол Wi-Fi модультай холбоотой бүх зүйл илүү төвөгтэй болно. Гэсэн хэдий ч гарын авлага нь танд үүнийг байгаа гэж үзэх болно (хэрэв үгүй бол ESP-01-ийг Arduino руу зөв залгах гарын авлагыг онлайнаар олоорой), хэрэв үүнийг буруу хийвэл модулийг гэмтээж магадгүй юм.

• Тээврийн хэрэгслийн батерей болон нэмэлт цахилгаан хэрэгслийг ажиллуулах батерей.

Бид бүх зүйлийг тэжээхтэй зэрэгцэн AH 2.2 багтаамжтай 7.4V Lipo батерейг ашигласан. Та өөрийн сонгосон машинтайгаа ихэвчлэн ашигладаг ямар ч батерейг ашиглах боломжтой байх ёстой. Хэрэв та 5 В -оос дээш боловч 20 В -оос доош бол хүчин чадал нь нэрлэсэн хүчдэлээс илүү чухал юм.

• Маш олон холбогч кабель.

Би эдгээрийн яг тоог тоолохоо больсон. Хэрэв танд хангалттай зүйл байгаа гэж бодож байвал тэгэхгүй байх.

• Эцэст нь бүх зүйлийг хавсаргахын тулд та Arduino, мэдрэгч, талхны самбар, Wi-Fi модулийг өөрийн хүссэн машиндаа холбох хэрэгтэй болно. Суурь болгон ашиглаж байгаа материал, бэлэн байгаа материалаас хамааран таны үр дүн өөр өөр байх болно.

Бид ашигласан:

• Зип зангиа.

• Зарим супер цавуу.

• Бидэнд тохирох диаметртэй жижигхэн хаягдал цаас/давирхай хоолой.

• Хэмжээ хүртэл хайчилж авсан зургийн жаазнаас хуучин масонит арын хавтан.

• Бага зэрэг илүү наалдамхай тууз.

• Таны сонгосон радио удирдлагатай машин дээр ажиллахад шаардлагатай бүх багаж хэрэгсэл.

Бид ихэвчлэн олон бит бүхий жижиг шураг хөтлөгч ашигладаг байсан ч хааяа машинтай хамт ирдэг багаж хэрэгслийг гаргаж авах шаардлагатай болдог.

Програм хангамж:

• Улаан зангилаа

Мэдээлэл цуглуулах чухал хэсэг.

• MQTT сервер.

Манай машин болон Node-red хоёрын хоорондох дунд хүн. Эхэндээ тест хийхдээ test.mosquitto.org ашигладаг байсан

Хожим нь бид дараахь зүйлийг ашигласан.

• CloudMQTT.com

Энэ нь арай илүү найдвартай байсан бөгөөд үүнийг суулгахад арай илүү төвөгтэй байсан юм.

• WampServer.

Мэдээлэл цуглуулах сүүлийн хэсэг. Тодруулбал, бид цуглуулсан өгөгдлөө хадгалахын тулд SQL мэдээллийн санг ашиглах болно.

Алхам 2: Цахилгааны диаграм

Цахилгааны диаграм
Цахилгааны диаграм

Алхам 3: Физик барилга

Физик барилга
Физик барилга
Физик барилга
Физик барилга
Физик барилга
Физик барилга

Бидний шийдэл бол физик угсралт хийх шууд чиглэл юм.

Анхны хүлээн авагч болон түүний ус нэвтэрдэггүй бүрхүүлийг RC машинаас хассан тул шаардлагагүй болсон.

Урд дугуйны хоорондох шугам мэдрэгчийн тохирох нэг байршил байгааг бид олж мэдсэн тул урд талын гулсалтын хавтан дээрх дээгүүр гогцоо хийж байрлуулав.

Бидний мөргөлдөхөөс хамгаалахад ашигладаг мэдрэгч нь урд бамбайны ард байрладаг. Энэ нь нөлөөллөөс хамгаалагдсан хэвээр байгаа бөгөөд үрэлт нь тохиромжтой. Хэзээ нэгэн цагт маш бага дээшээ дээш харах өнцгийг урагш харах болно. Энэ бол төгс төгөлдөр юм.

Масонит хавтан (хуучин зургийн жаазны арын хавтан), дээр нь жижиг хэмжээтэй цаас/давирхай хоолойг хайчилж, ёроолд нь наасан байна. Эдгээр нь биений бэхэлгээний бэхэлгээтэй таарч, бүх зүйлийг найдвартай барьж, дээр нь суудаг. Хоолойг хавтан дээр наасан цавуу хадгалагдаж, хэт хазайдаггүй гэж үзвэл энэ нь хэвээр байх болно. Энэ хавтан нь дугуй ба бамперны хамгаалалтын хүрээ дотор байгааг тэмдэглэх нь зүйтэй. Arduino Mega болон хоёр талхны хавтанг хоёр талт соронзон хальс эсвэл наалдсан наалдамхай туузаар хавтан дээр наасан байна.

WiFi модулийг аюулгүй болгохын тулд тусгай арга хэмжээ аваагүй байна. Энэ нь биднийх биш, тиймээс наалдуулах, эсвэл наах шаардлагагүй, учир нь энэ нь тийм ч хөнгөн биш, тийм ч их хөдөлдөггүй, утаснууд нь түүнийг байрлуулахад хангалттай юм.

Эцэст нь хэлэхэд, бид "өрөөнүүдийг" илрүүлэх мэдрэгчтэй бөгөөд үүнийг арын дугуйны аль нэгээр нь түдгэлзүүлсэн эд ангиудад байрлуулсан болно. Ашиглалтын явцад энэ нь тээврийн хэрэгслийн жолоодоход ашигладаг тэмдэглэгээний шугамаас хол байх шаардлагатай.

Алхам 4: ESP8266 модуль

ESP8266 модуль
ESP8266 модуль
ESP8266 модуль
ESP8266 модуль

WiFi модуль, ESP8266 нь хоёр өөр зүү тохируулахыг шаарддаг. Модулийг шинэ програмаар асааж, Arduino Mega 2560 -ийг програмист болгон ашиглахдаа нэг тохиргоог ашиглах ёстой. Нөгөө тохиргоо нь модулийг ашиглах үед MQTT брокер руу мэдээлэл илгээдэг.

ESP8266 модульд код оруулахын тулд Arduino IDE -ийг ашигласнаар та самбар менежер болон нэмэлт самбар менежер суулгах шаардлагатай болно.

Удирдах зөвлөлийн доор esp8266 самбарын менежерийг суулгана уу. Үүнийг "esp" хайлтаар хялбархан олох болно. 2.5.0 хувилбарыг суулгах нь маш чухал бөгөөд хуучин биш, шинэ биш юм.

Нэмэлт самбарын менежерийн URL -ийн тохиргооны доор энэ мөрөнд хуулна уу:

arduino.esp8266.com/stable/package_esp8266c…

ESP8266 модульд юу ч оруулах боломжтой байхын тулд та модулийг анивчуулахын тулд тусгай зүү тохиргоог ашиглах шаардлагатай болно. Модуль дээр ажиллаж байгаа одоогийн кодод өөрчлөлт оруулахыг хүсэх болгондоо үүнийг хийх хэрэгтэй. Модулийг асаахаасаа өмнө самбарын менежерээс зөв ESP8266 модулийг сонгохоо бүү мартаарай. Энэ төсөлд бид ерөнхий ESP8266 хавтанг сонгосон. Модулийг анивчих зүү тохируулгыг энэ хэсгийн эхний зураг дээрээс олж болно.

ESP8266 модулийг анивчсаны дараа та зүүний тохиргоог өөрчлөх хэрэгтэй. Тохируулгыг хөнгөвчлөхийн тулд та адаптер ашиглаж болно. Энэ төсөлд бид модулийг ажиллуулах бүрт адаптертай байхыг сонгосон. Адаптер бүхий зүү тохируулгыг энэ хэсгийн хоёр дахь зураг дээрээс олж болно.

ESP8266 модуль дээр цацагдах код нь WiFi болон MQTT брокертой холболтыг тохируулдаг бөгөөд энэ тохиолдолд хэрэглэгчийн нэр, нууц үгийг ашигладаг боловч хэрэв та кодын тайлбар дээр тайлбарласан шаардлагатай өөрчлөлтийг хийхгүй бол үүнийг хийх боломжтой болно. Энэ төслийн хувьд манай Брокер ажиллахын тулд хэрэглэгчийн нэр, нууц үг шаарддаг. Модуль нь холбогдсон цуваа портоос ирж буй мессежийг уншдаг. Энэ нь Arduino кодоор үүсгэсэн шинэ мөр бүрийг уншиж, зурвасыг тайлж, зурвасыг дахин үүсгэх болно. Үүний дараа кодод заасан MQTT брокер руу мессеж илгээдэг. ESP8266 модулийн код:

Алхам 5: Arduino

WiFi модулийг тохируулсны дараа бид RC машин дээрх мотор ба servo -ийг удирдах програмыг авч үзье. Энэхүү төсөлд "Шугам илрүүлэгч" гэж нэрлэгддэг төв мэдрэгчийн саарал масштабтай мэдээллийн дагуу машин хариу үйлдэл үзүүлэх гэж байна. Мэдээжийн хэрэг, энэ нь гэрэл, харанхуй эсвэл энэ төслийн цагаан, хар хоёрын хоорондох өөрчлөлтөд бүртгэгдсэн мэдээлэлтэй тэнцэх шугамын детекторын мэдээллийг урьдчилан тогтоосон утгын ойролцоо байлгах зорилготой юм. Тиймээс хэрэв утга нь хэтэрхий ялгаатай байвал servo -ийн харгалзах гаралт нь машиныг шугамын урьдчилан тогтоосон утгын ойролцоо удирдах болно.

Хөтөлбөр нь RC машиныг эхлүүлэх, зогсоох товчлууртай хоёр товчлууртай. Техникийн хувьд "зогсоох" товчлуур нь "зэвсэглэх" товчлуур бөгөөд энэ нь хөдөлгүүрт илгээсэн ХОУХ -ны утгатай тэнцүү бөгөөд энэ нь RC машиныг зогсооход хүргэдэг. Эхлүүлэх товчлуур нь ХБХ -ийн утгыг илгээдэг бөгөөд энэ нь RC машинтай бараг урагшаа хөдөлдөггүй, учир нь хэрэв тэр хэт их эрч хүч авбал хэт хурдан жолооддог.

RC машины урд хэсэгт мөргөлдөхөөс зайлсхийх детекторыг нэмж, урд талын зам нь тодорхой эсвэл хаагдсан эсэхийг илрүүлдэг. Хэрэв үүнийг хаасан бол RC машин нь саадыг арилгах/арилгах хүртэл зогсох болно. Илрүүлэгчийн аналог дохиог ямар нэгэн зүйл саад болж байгаа эсэхийг тодорхойлоход ашигладаг бөгөөд зогсохдоо урагшлах чадвартай байх шалгуурыг тавьдаг.

Хоёрдахь саарал масштабтай мэдрэгч "Өрөөний детектор" нь RC машин аль өрөөнд орж ирснийг илрүүлэхэд ашиглагддаг. Энэ нь шугам илрүүлэгчтэй ижил зарчмаар ажилладаг боловч гэрэл ба харанхуйн хоорондох өөрчлөлтийг хайхгүй, харин Өрөөний Илрүүлэгчээс харсан утгаас хамааран өөр өөр өрөөнд харгалзах тодорхой хязгаарт байгаа утгыг хайж олох болно.

Эцэст нь програм нь WiFi модулийн мэдрэгчээс мэдээллийн мөрийг уншиж, дараа нь MQTT брокер руу илгээх болно. Мэдээллийн мөрийг мөр хэлбэрээр үүсгэж, WiFi модулийг холбосон холбогдох цувралд бичнэ. Цуврал руу бичих нь зөвхөн WiFi модуль ирж буй мессежийг уншиж чаддаг байх нь чухал боловч энэ кодын саатлыг бүү ашиглаарай, энэ нь RC машины шугамыг дагаж мөрдөхөд саад болно. Үүний оронд "millis" -ийг ашиглаарай, энэ нь програмыг хойшлуулалгүйгээр ажиллуулах боломжийг олгодог боловч Arduino -ийг асааснаас хойш тодорхой хэмжээний миллис өнгөрсний дараа хоцролттой адил кодыг блоклохгүйгээр мессеж бичих болно.

Arduino Mega 2560 код:

Алхам 6: MySQL мэдээллийн сан

WampServer бол PHP болон MySQL мэдээллийн баазтай програм үүсгэх боломжийг олгодог Windows -ийн вэб хөгжүүлэлтийн орчин юм. PhpMyAdmin нь мэдээллийн баазаа хялбархан удирдах боломжийг бидэнд олгодог.

Эхлэхийн тулд https://www.wampserver.com/en/ хаягаар орно уу.

Энэ төсөлд бид Windows -д зориулсан 3.17 x64 бит хувилбарыг ашигладаг. Суулгасны дараа бүх үйлчилгээ ажиллаж байгаа эсэхийг шалгаарай, энэ нь жижиг дүрс улаан эсвэл улбар шар биш харин ногоон болж хувирна гэсэн үг юм. Хэрэв дүрс нь ногоон байвал та MySQL мэдээллийн баазаа удирдахын тулд PhpMyAdmin -д хандаж болно.

PhpMyAdmin ашиглан MySQL -д нэвтэрч, шинэ мэдээллийн сан үүсгээрэй. Үүнийг санаж чадахуйц зүйлийг нэрлээрэй, энэ төсөлд үүнийг "line_follow_log" гэж нэрлэжээ. Өгөгдлийн санг үүсгэсний дараа та мэдээллийн санд хүснэгт үүсгэх ёстой. Баганын тоо таарч байгаа эсэхийг шалгаарай. Төсөлд бид 4 багана ашигладаг. Нэг багана нь цаг хугацааны тэмдэглэгээнд зориулагдсан бөгөөд сүүлийн гурвыг тээврийн хэрэгслийн өгөгдлийг хадгалахад ашигладаг. Багана бүрт тохирох өгөгдлийн төрлийг ашиглана уу. Бид цагийн тэмдгийн баганад "урт текст", үлдсэн хэсэгт "дунд текст" ашигласан.

Энэ бол PhpMyAdmin болон MySQL дээр хийх ёстой зүйл юм. Мэдээллийн сан болон Node-Red-ийн талаархи хүснэгтийг санаарай.

Алхам 7: Улаан зангилаа

Мэдээлэл цуглуулах ажлыг зохицуулахын тулд бид Node-red хэл дээр нэлээд энгийн урсгалыг ашиглах болно. Энэ нь манай MQTT сервертэй холбогддог бөгөөд MYSQL мэдээллийн санд бичдэг.

Үүнийг хийхийн тулд янз бүрийн функцийг ажиллуулахын тулд бидэнд хэдэн палитр хэрэгтэй бөгөөд үүнийг ажиллуулахын тулд бидэнд тодорхой код хэрэгтэй болно.

Эхлээд бүх зүйл. Бидэнд дараах тавиур хэрэгтэй болно.

Node-red-салым-mqtt-брокер: Энэ бол манай MQTT брокертой холбогдох холболт юм.

Зангилаан улаан самбар: Бидний хянах самбар нь цуглуулсан өгөгдлийг нүдээр харуулах шаардлагатай.

Node-red-node-mysql: SQL мэдээллийн сантай бидний холболт.

Энэ нь зангилаа-улаан руу чиглэсэн бүрэн хэмжээний гарын авлага байх гэсэн үг биш боловч би зангилааны улаан урсгал юу хийдэг талаар тайлбарлах болно.

Эхэндээ бид MQTT сервертэйгээ санамсаргүй байдлаар үхэх/салгахтай холбоотой асуудлуудтай тулгарч байсан бөгөөд энэ нь өөрчлөлтийг үр дүнтэй байсан эсэх нь тодорхойгүй байсан ч үр дүнг нь олж харахгүй байсан ч гэсэн урам хугарах оролдлогыг хийсэн юм. Тиймээс 'Сервер үхсэн үү?' Дараахь блок үүнийг манай MQTT сервер рүү оруулна. Хэрэв энэ нь үхээгүй бол дибаг хийх цонхонд 'Үгүй' гарч ирнэ. Энэ нь зөвхөн тест хийхийн тулд бус харин Node-red-ийг MQTT сервертэй дахин холбогдохыг оролдохын тулд хийдэг.

'Туршилтын мөр' нь костюм мөрийг MQTT брокер руу илгээдэг. Бид энэ мөрийг Arduino -аас авах зүйлтэй төстэй байдлаар форматлав. Энэ нь төслийг ажиллуулах, өгөгдөл цуглуулах шаардлагагүй, мессежийг тайлдаг сүлжээг тохируулахад илүү хялбар байх болно.

Ажлын талбар дахь хамгийн сүүлийн урсгалыг хоёр сегментэд хувааж болно. Доод салбар нь ирж буй мессежүүдийг уншаад дибаг хийх цонхонд оруулаад SQL серверт хадгална.

Хэрэв жинхэнэ "ид шид" тохиолдвол функцын зангилааны дараа холбогдсон том унтраалгын сүлжээ.

Үргэлжлүүлэх функц нь ирж буй мөрийг уншиж, хагас цэг болгон хувааж, гаралт тус бүрийн хэсгүүдийг дамжуулдаг. Дараах шилжүүлэгчид ирж буй хоёр өөр мэдээллийн нэгийг хайж олох болно. Нэг тодорхой мэдээллийг үргэлж нэг гаралтаас дамжуулдаг, нөгөө сонголт нь хоёр дахь гаралтаас гардаг. Үүний дараа шилжүүлэгч блокуудын хоёр дахь бүлэг байна. Тэд зөвхөн нэг тодорхой оролтоор идэвхжиж, өөр зүйл гаргах болно.

Жишээлбэл, "саад бэрхшээл" нь бусад бүх зүйл шиг хоёртын сонголт бөгөөд машин жолоодох нь ойлгомжтой эсвэл тийм биш юм. Тиймээс энэ нь 0 эсвэл 1 -ийг хүлээн авах болно. А 0 -ийг 'цэвэр' салбар руу, 1 -ийг 'Саадтай' салбар руу илгээнэ. "Цэвэрлэх", "Саад болох" унтраалга нь идэвхжсэн тохиолдолд тодорхой, тодорхой эсвэл саад болох зүйлийг гаргана. Ногоон үргэлжлүүлэх блокуудыг дибаг хийх цонхонд байрлуулах бөгөөд цэнхэр нь манай самбарт бичнэ.

'Статус' ба 'байршил' салбарууд яг ижилхэн ажилладаг.

Алхам 8: MQTT брокер

Брокер бол үйлчлүүлэгчдээс ирсэн мессежийг зохих үйлчлүүлэгч рүү чиглүүлдэг сервер юм. MQTT брокер бол үйлчлүүлэгчид MQTT номын санг ашиглан брокертой сүлжээгээр холбогдох явдал юм.

Энэхүү төслийн хувьд бид CloudMQTT үйлчилгээг ашиглан "Хөөрхөн муур" хувилбарын үнэгүй захиалгаар MQTT брокер үүсгэсэн. Энэ нь хязгаартай боловч бид энэ төсөлд хамрагдсан хэмжээнээс хэтрэхгүй. WiFi модуль нь брокер болон зуучлагчтай холбогдож, дараа нь хүссэн харилцагч руу мессеж илгээдэг. Энэ тохиолдолд үйлчлүүлэгч бол бидний зангилаа-улаан юм. CloudMQTT үйлчилгээ нь серверийнхээ хэрэглэгчийн нэр, нууц үгийг тохируулдаг тул илүү өндөр аюулгүй байдлыг хангах болно. Үндсэндээ зөвхөн хэрэглэгчийн нэр, нууц үгтэй хүмүүс энэхүү CloudMQTT үйлчилгээнд хандах боломжтой гэсэн үг юм. Хэрэглэгчийн нэр, нууц үг нь ESP8266 кодын холболтыг Node-Red шиг тохируулахад чухал үүрэгтэй.

Брокер хүлээн авсан мессежийн статистик нь тааламжтай шинж чанар бөгөөд үүнийг захиалгын төлөвлөгөө тань дамжуулж буй мэдээллийг хэр сайн зохицуулж байгааг харах боломжтой юм.

Сайхан онцлог бол брокероос WiFi модуль руу мессеж илгээх боломжтой боловч бид энэ төсөлд ашиглаагүй болно.

Алхам 9: Хобби Электроникс

Өмнө нь хийж байсан төслөөс бид удирдлагын жолоодлогыг Arduino -оос PWM дохиогоор удирддаг, ижил утастай, мөн ижил радио хүлээн авагч дээр өөр өөр суваг руу залгаж болохыг мэдэж байсан бөгөөд бид электрон хурдны хяналтыг (ESC моторыг хянадаг төхөөрөмжийг Arduino -аас PWM -ээр хянах боломжтой.

Энэхүү онолыг туршихын тулд бид жижиг Arduino ноорог зурдаг. Ноорог нь потенциометрийн аналог оролтыг уншиж, 0, 1024 -аас 0, 255 хүртэлх утгыг дахин нэгтгэж, үр дүнг PWM зүү дээр гаргахдаа analogWrite () ашиглан жижиг хайрцагт R/C машинтай байсан бөгөөд дугуйг арилгасан.

Савны тоолуур дээрх хүрээг цэвэрлэсний дараа ESC нь "сэрсэн" юм шиг санагдаж, бид үүнийг дээш, доош нь тохируулж болно, мөн Arduino -ийг цуваа холболтын утгыг хэвлэх боломжтой болгосон тул бид тэдгээрийг хянах боломжтой байв.

ESC нь тодорхой босго хэмжээнээс доогуур утгуудад дургүй байсан бололтой, энэ тохиолдолд 128. Энэ нь 191 дохиог төвийг сахисан тохируулагч гэж харсан бөгөөд 255 нь хамгийн их тохируулагч байв.

Тээврийн хэрэгслийн хурдыг өөрчлөх шаардлагагүй байсан бөгөөд түүнийг хамгийн удаан хурдаар хөдөлгөж, хөдөлгөж чадна. 192 нь моторыг эргүүлэх хамгийн бага утга байсан боловч бид бүх зүйлийг угсарч амжаагүй байгаа бөгөөд энэхүү гаралт нь эцсийн угсралтын дараа машиныг хөдөлгөхөд хангалттай эсэх нь эргэлзээтэй байгаа боловч арай том утгыг оруулах нь тийм ч чухал биш юм.

Потенциометрийг тойрч, тогтмол утга оруулах нь үр дүнгээ өгсөнгүй. Хувьцааны ESC нь зүгээр л анивчсан бөгөөд хөдөлгүүрийг эргүүлэхгүй, гарын авлагын дагуу "тохируулагч обуд" тохируулна уу.

Уур хилэн буудах, янз бүрийн утгыг шидэх, өөр утас ашиглах, тэр ч байтугай Arduino -ийн ашигладаг ХОУХШ -ийн давтамжийг өөрчлөх туршилт хийх нь илүү хачин байдалд хүргэв.

Энэ нь үе үе гардаг асуудал байсан юм шиг санагдаж байсан, заримдаа гүйдэг, бусад үед юу ч хийхээс татгалздаг байсан. Энэ нь зүгээр л нүдээ анивчсаар байв. Анхны хянагч ба хүлээн авагчтай хийсэн туршилт нь ESC нь яг төлөвлөсний дагуу ажиллаж байгааг баталсан нь асуудлыг бүр ч хачирхалтай болгосон юм. Илүү өндөр утгыг үл тоомсорлож, нүдээ анивчуулж, ESC -ийн доод утга аз жаргалтай ногоон болж гэрэлтсэн боловч эргэж хараагүй хэвээр байна.

Потенциометр эсвэл хувьцаа дамжуулагч, хүлээн авагч, тогтоосон утгыг өгсөн хувилбараас юугаараа ялгаатай байсан бэ?

Заримдаа төлөвлөсний дагуу ажиллаж, хүлээгдэж байсны дагуу ажиллах нь Венн диаграм дээр бараг давхцдаггүй. Энэ тохиолдолд тоглоомын хувьд загварыг асаахад загвар өмсөгч хуруугаа тайлж, хугалж, дугуйнд эсвэл жолооны галт тэргэнд үсээ тэврүүлэх ямар ч боломж байх ёсгүй. төвийг сахисан байдлаас өөр байр суурь.

'Хий тохируулагчийг тохируулна уу' гэдэг нь яг ийм утгатай юм. ESC нь асаалттай байхдаа юу ч хийхгүй байхаасаа өмнө төвийг сахисан дохио хүлээж байна. ESC асаалттай үед дамжуулагч нь үргэлж төвийг сахисан хэвээр байх бөгөөд тэндээс машин жолоодох болно. Хэрэв тийм биш бол загварыг газар дээр нь бат бөх байлгаж, оператор уралдаанд оролцоход бэлэн болоход дор хаяж нэг удаа төвийг сахисан байдал руу буцаж магадгүй юм.

Потенциометрийг ашиглаж байхдаа бид мужуудыг "шүүрдэж" байсан бөгөөд дараа нь ажиллаж эхлэв. Потенциометр нь төвийг сахисан байрлалыг дайрч өнгөрөхөд зүгээр л зэвсэглэсэн бөгөөд дараа нь ажиллав.

Доод хүрээ нь ESC -ийг дургүйцүүлсэн хэвээр байна. Энэ нь ХОУХ -ны үүргийн мөчлөгийн бүтээгдэхүүн юм.

Загвар эсвэл техникийн шалтгаанаар хийгдсэн, жолооны servo болон ESC хоёулаа үүргийн 50% -иас доош дохиог үл тоомсорлодог. Энэ нь хүлээн авагч/дамжуулагч ажиллахаа больсон эсвэл цахилгаан тасарсан тохиолдолд загвар нь төвийг сахисан байдал руу буцаж, бүрэн урвуу тохируулагчтай холын зайнд хөөрөхгүй байж магадгүй юм. Үүнтэй адилаар servo нь зөвхөн 180 градус эргэдэг бөгөөд энэ нь бүрэн хүрээг шаарддаггүй.

Энэхүү шинэ мэдлэгийг гартаа авснаар Arduino -ийн шинэ тоймыг гаргажээ. Анхны хувилбар нь Serial monitor -д оруулсан мөрүүдийг хүлээн авч, бүхэл тоо болгон хөрвүүлж, servo номын санг ашиглан PWM зүү рүү зөөж, ()*бичнэ. Хэрэв цуваа монитор дээр шинэ утга оруулсан бол write () утга шинэчлэгдэнэ.

Туршилтын явцад Traxxas ESC -ийн хувьцааг Mtroniks G2 Micro -ээр сольсон боловч тэдгээр нь яг адилхан ажиллах ёстой, гэхдээ яг утга нь арай өөр байж магадгүй.

Энэ номын сан нь ESC -ийг servo гэж үздэг бөгөөд энэ нь зүгээр юм шиг байна. Servo.h номын сангийн бичих () функц нь 0 -ээс 180 хооронд хэлбэлздэг бөгөөд хүлээгдэж буй зэвсэглэх дохио дундуур байх төлөвтэй байна.

G2 Micro зэвсэг нь 90 (ойролцоо) утгын утга бүхий бичих () цэг дээр байгаа боловч зэвсэглэсэн гэдгээ "санаж" байгаа юм шиг санахад хэцүү байв.

Traxxas VXL-s3 нь 91 (бичих) утгатай байх төлөвтэй байна.

Зэвсэглэсэн дохионы дараа ESC нь Arduino функцүүдээс үл хамааран PWM дохиог баяртайгаар хүлээн авч, хөдөлгүүрийг зохих ёсоор удирддаг.

Функцийн талаар ярих; стандарт analogWrite (), мөн бичих () ба бичихMicroseconds () -ийг Servo.h номын сангийн аль алиныг нь сольж ашиглаж болох бөгөөд юу хийж байгааг санаарай, эцэст нь үүргийн мөчлөгөөс өөр юу ч хамаагүй. Илүү нарийн ширхэгтэй байх шаардлагатай бол WriteMicroseconds () ашиглаж болно, энд байгаа хүрээ нь 1000-2000 хооронд, зэвсэглэх эсвэл "төвийг сахисан" байх үед 1500 байх ёстой гэдгийг санаарай. Стандарт analogWrite () -ийн хувьд ашиглах боломжтой хүрээ нь 128 -аас 255 хүртэл байх ба 191 орчим нь төвийг сахисан байна.

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