Агуулгын хүснэгт:
- Алхам 1: Тээврийн хэрэгслийг угсрах
- Алхам 2: Мотор суурилуулах
- Алхам 3: Vivado блок дизайныг бий болгох
- Алхам 4: LiDAR -тай харилцах
- Алхам 5: Саад бэрхшээлтэй сүлжээг хүн амаар дүүргэх
- Алхам 6: Мотортой харилцах
- Алхам 7: Зам төлөвлөлт
Видео: Автономит тээврийн хэрэгсэл: 7 алхам (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:05
Энэхүү төсөл нь бие даан жолоодож буй робот бөгөөд зорилгодоо хүрэхийн тулд саад бэрхшээлээс зайлсхийх зорилготой юм. Энэхүү робот нь LiDAR мэдрэгчээр тоноглогдсон бөгөөд түүнийг хүрээлэн буй орчны объектуудыг илрүүлэхэд ашиглах болно. Объектуудыг илрүүлж, робот эргэн тойрон хөдөлж байх үед бодит цагийн газрын зургийг шинэчлэх болно. Тодорхойлсон саад бэрхшээлүүдийн байршлыг аврахын тулд газрын зургийг ашиглах болно. Ингэснээр робот зорилтот байрлал руу амжилтгүй болсон замыг дахин оролдохгүй. Энэ нь саад тотгоргүй эсвэл саад тотгорыг хараахан шалгаагүй замыг оролдох болно.
Робот нь тогтмол гүйдлийн хөдөлгүүртэй хоёр дугуй, хоёр дугуйгаар хөдөлнө. Моторууд нь дугуй тавцангийн ёроолд бэхлэгдэх болно. Хөдөлгүүрийг хоёр мотор жолооч удирдана. Мотор драйверууд Zynq процессороос ХОУХШ -ийн командыг хүлээн авах болно. Мотор тус бүрийн кодчилогчийг тээврийн хэрэгслийн байршил, чиглэлийг хянахад ашигладаг. Бүх системийг LiPo батерейгаар тэжээх болно.
Алхам 1: Тээврийн хэрэгслийг угсрах
Робот нь хажуугийн дугуйнд бэхлэгдсэн хоёр мотороор тэжээгддэг бөгөөд урд болон хойд хэсэгт хоёр дугуйгаар бэхлэгддэг. Платформ ба моторын бэхэлгээг хөнгөн цагаан хөнгөн цагаан материалаар хийсэн. Дугуйг хөдөлгүүрт холбохын тулд моторын төв худалдаж авсан. Гэсэн хэдий ч зангилааны нүхний загвар нь дугуйны нүхний загвараас өөр байсан тул захиалгат завсрын холбогч хийх шаардлагатай байв.
Сонгосон мотор нь 12V DC Port Escap кодтой, тогтмол мотор юм. Энэ моторыг ebay дээрээс маш боломжийн үнээр худалдаж авах боломжтой (Билл материалыг үзнэ үү). Моторыг олохын тулд ebay дээрээс "12V Escap 16 Coreless Geared DC Motor Encoders" гэсэн түлхүүр үгийг хайна уу. Ихэвчлэн сонгоход хангалттай хэмжээний худалдагч байдаг. Хөдөлгүүрийн техникийн үзүүлэлтүүд ба холболтыг доорх диаграммд харуулав.
Роботыг угсрах нь явах эд ангиудын CAD горимоор эхэлжээ. Доорх загвар нь явах эд ангиудад зориулагдсан 2D хэлбэрийн профайлын дээд талын зургийг харуулав.
Явах эд ангиудыг хялбархан үйлдвэрлэхийн тулд 2Dprofile хэлбэрээр зохион бүтээхийг санал болгож байна. Бид 12 "X12" хэмжээтэй хөнгөн цагаан хуудсыг усан тийрэлтэт таслагч ашиглан явах эд анги хэлбэртэй болгон хайчилж авав. Явах эд ангийн тавцанг туузан хөрөө ашиглан огтлох боломжтой.
Алхам 2: Мотор суурилуулах
Дараагийн алхам бол моторыг бэхлэх явдал юм. Моторын бэхэлгээг 90 градусын металл хөнгөн цагаанаар хийсэн байхыг зөвлөж байна. Энэ хэсгийг ашигласнаар моторыг металлын нэг нүүрэн талд консолоор бэхлэх боломжтой
Мотор болон бусад нүүрний М2 нүхийг тавцан дээр боолтоор бэхлэх боломжтой. Хөдөлгүүрийн бэхэлгээнд нүх өрөмдөх ёстой бөгөөд ингэснээр боолтыг ашиглан хөдөлгүүрийг хөдөлгүүрийн бэхэлгээ, моторын тавцан дээр бэхлэх боломжтой болно. Хөдөлгүүрийн бэхэлгээг дээрх зураг дээрээс харж болно.
Дараа нь Pololu Motor Hub (Материалын хүснэгтийг үзнэ үү) хөдөлгүүрийн гол дээр байрлуулж, тогтоосон шураг болон Аллен түлхүүрээр чангална. Pololu хөдөлгүүрийн зангилааны нүхний загвар нь VEX дугуйны нүхний загвартай тохирохгүй байгаа тул завсрын холбогчийг тусгайлан хийх ёстой. Явах эд ангиудын тавцан хийхэд ашигладаг хөнгөн цагаан төмрийн хаягдлыг холбогч хийхэд ашиглахыг зөвлөж байна. Энэ хосуудын нүхний хэв маяг, хэмжээсийг доорх зурагт үзүүлэв. Гаалийн хөнгөн цагаан холбогчийн гаднах диаметр ба хэлбэр (тойрог байх шаардлагагүй) нь бүх нүхнүүд хэсэг дээр таарч байвал хамаагүй юм.
Алхам 3: Vivado блок дизайныг бий болгох
- Шинэ Vivado төсөл үүсгэж эхлээд Zybo Zynq 7000 Z010 -ийг зорилтот төхөөрөмж болгон сонгоорой.
- Дараа нь шинэ блокны дизайн үүсгэх дээр дарж Zynq IP -ийг нэмнэ үү. Zynq IP дээр давхар товшоод Zynq -д өгсөн XPS тохиргоог импортлоорой. Дараа нь MIO тохиргоо табын дор UART0 -ийг MIO 10..11 -ээр идэвхжүүлээд Timer 0 болон Watchdog таймер идэвхжсэн эсэхийг шалгаарай.
- Блокны загварт хоёр AXI GPIOS нэмнэ. GPIO 0 -ийн хувьд хоёр сувгийг идэвхжүүлж, хоёуланг нь бүх гаралтанд тохируулна уу. GPIO -ийн өргөнийг 1 -ээс 4 бит, сувгийн 2 -оос 12 битийн хувьд тохируулахын тулд эдгээр сувгийг хөдөлгүүрийн чиглэлийг тохируулах, кодлогчын хэмжүүрийн хачигны хэмжээг процессор руу илгээхэд ашиглана. GPIO 1 -ийн хувьд 4 битийн сувгийн өргөн бүхий бүх оролтод зөвхөн нэг суваг тохируулна. Үүнийг кодлогчдоос өгөгдөл хүлээн авахад ашиглах болно. Бүх GPIO портуудыг гадаад болгох.
- Дараа нь хоёр AXI таймер нэмнэ үү. Хоёр таймер дээрх pwm0 портуудыг гадаад болгох. Эдгээр нь хөдөлгүүрийн эргэх хурдыг хянадаг pwms байх болно.
- Эцэст нь блок автоматжуулалт, холболтын автоматжуулалтыг ажиллуулна уу. Танд байгаа блокны загвар нь өгсөн загвартай нийцэж байгаа эсэхийг шалгаарай.
Алхам 4: LiDAR -тай харилцах
Энэхүү LiDAR нь UART -ээр харилцахдаа SCIP 2.0 протоколыг ашигладаг бөгөөд хавсаргасан файл нь протоколыг бүхэлд нь тайлбарласан болно.
LiDAR -тай холбогдохын тулд бид UART0 -ийг ашиглах болно. LiDAR нь тухайн өнцөгт байгаа объект хүртэлх зайг харуулсан 682 өгөгдлийн цэгийг буцаана. LiDAR нь цагийн зүүний эсрэг -30 хэмээс 210 градус хүртэл 0.351 градусын алхамаар сканнерддаг.
- LiDAR -тай бүх харилцаа холбоо ASCI тэмдэгтээр хийгддэг бөгөөд ашигласан форматыг SCIP протоколоос үзнэ үү. Бид LiDAR -ийг асаахын тулд QT командыг илгээж эхэлдэг. Дараа нь бид GS тушаалыг UARTS 64 байтын FIFO -д ft -ээр оруулахын тулд 18 өгөгдлийн цэгийг хүссэн хэд хэдэн удаа илгээдэг. LiDAR -аас буцаасан өгөгдлийг дараа нь SCANdata глобал массивт задлан шинжилж хадгална.
- Хадгалагдсан өгөгдлийн цэг бүр нь 2 байт кодлогдсон өгөгдөл юм. Энэ өгөгдлийг декодер руу дамжуулснаар зайг миллиметрээр буцаана.
Main_av.c файлд та LiDAR -тай холбогдох дараах функцуудыг олох болно
sendLIDARcmd (тушаал)
- Энэ нь оролтын мөрийг UART0 -ээр дамжуулан LiDAR руу илгээх болно
recvLIDARdata ()
- LiDAR руу командыг илгээж өгөгдлийг RECBuffer -д хадгалсны дараа энэ нь өгөгдлийг хүлээн авах болно
requestDistanceData ()
- Энэ функц нь бүх 682 өгөгдлийн цэгийг авах хэд хэдэн тушаалыг илгээнэ. 18 өгөгдлийн цэг бүрийг хүлээн авсны дараа өгөгдлийг задлан шинжилж өгөгдлийн цэгүүдийг үе шаттайгаар хадгалахын тулд parseLIDARinput () дууддаг.
Алхам 5: Саад бэрхшээлтэй сүлжээг хүн амаар дүүргэх
Хадгалагдсан GRID бол 2D массив бөгөөд индексийн утга бүр нь байршлыг илэрхийлдэг. Индекс бүрт хадгалагдсан өгөгдөл нь 0 эсвэл 1 байна, ямар ч саад бэрхшээл, саад байхгүй. Индекс бүрийг илэрхийлдэг миллиметр квадрат зайг transport.h файл дахь GRID_SCALE тодорхойлолтоор өөрчилж болно. 2D массивын хэмжээг мөн өөрчилж, GRID_SIZE тодорхойлолтыг өөрчилснөөр тээврийн хэрэгслийг том талбайг сканнердах боломжтой болно.
Зайн өгөгдлийн шинэ багцыг LiDAR -аас скан хийсний дараа updateGrid () гэж нэрлэдэг. Энэ нь SCANdata массивт хадгалагдсан өгөгдлийн цэг бүрийг давтаж, сүлжээнд байгаа ямар индексүүд саад болж байгааг тодорхойлох болно. Тээврийн хэрэгслийн одоогийн чиглэлийг ашиглан мэдээллийн цэг бүрт харгалзах өнцгийг тодорхойлж болно. Саад бэрхшээл хаана байгааг тодорхойлохын тулд харгалзах зайг өнцгийн cos/sin -ээр үржүүлэхэд л хангалттай. Эдгээр хоёр утгыг тээврийн хэрэгслийн одоогийн x ба y байрлалд нэмснээр индексийг саадны сүлжээнд буцаана. Энэ үйлдлээр буцааж өгсөн зайг GRID_SCALE -д хуваах нь индекс бүрийн квадрат зай хэр том болохыг өөрчлөх боломжийг бидэнд олгоно.
Дээрх зургууд нь тээврийн хэрэгслийн одоогийн орчин, үүнээс үүдэлтэй сүлжээг харуулж байна.
Алхам 6: Мотортой харилцах
Хөдөлгүүрийг удирдахын тулд GPIO -ийг эхлүүлэх замаар эхлүүлсэн мотортой холбоо тогтоохын тулд хөдөлгүүрийн эргэх чиглэлийг зааж өгсөн болно. Дараа нь AXI таймер дахь ХОУХШ -ийн үндсэн хаягаар шууд бичих нь цаг хугацаа, үүргийн мөчлөг гэх мэт зүйлийг тохируулах боломжийг олгодог. мотор эргэх хурд.
Алхам 7: Зам төлөвлөлт
Ойрын хугацаанд хэрэгжих болно.
Өмнө тайлбарласан сүлжээ болон моторын функцийг ашиглан A*гэх мэт алгоритмыг хэрэгжүүлэхэд маш хялбар байдаг. Тээврийн хэрэгсэл хөдөлж байхдаа эргэн тойрныхоо газрыг үргэлжлүүлэн судалж, явж буй зам нь хүчинтэй эсэхийг тодорхойлох болно
Зөвлөмж болгож буй:
Тээврийн хэрэгслийн цохилт бүртгэгч: 18 алхам (зурагтай)
Тээврийн хэрэгслийн цохилт бүртгэгч: Жолоо барих эсвэл зогсох үед тээврийн хэрэгсэлд үзүүлэх нөлөөллийг бүртгэх зориулалттай. Нөлөөллийг мэдээллийн баазад уншилт, видео/зураг хэлбэрээр хадгалдаг бөгөөд нөлөөллийн алсын хэрэглэгчийг бодит цаг хугацаанд шалгаж, алсын зайнаас
TripComputer - GPS -ийн аяллын компьютер ба таны тээврийн хэрэгслийн цаг агаарын модуль: 11 алхам (зурагтай)
TripComputer - Таны тээврийн хэрэгсэлд зориулсан GPS аялалын компьютер ба цаг агаарын модуль: GPS -ийн таслах модуль, 2 жижиг Digole дэлгэцийг ашиглан зураас дээрээ навигацийн компьютер байрлуулах гайхалтай бөөрөлзгөнө pi төсөл
Төмөр замын өндөр төмөр замын тээврийн хэрэгслийг зам дээр хэрхэн яаж байрлуулах вэ: 10 алхам (зурагтай)
Төмөр замын өндөр төмөр замын тээврийн хэрэгслийг зам дээр хэрхэн яаж байрлуулах вэ: Аюулгүй байдлын урьдчилан сэргийлэх арга хэмжээ: Өндөр төмөр замын ачааны машиныг төмөр зам дээр тавьж буй хүн, туслах хүн нь харагдахын тулд өндөр үзэгдэх хувцас (хантааз, цамц, цамц) өмсөх ёстой. ирж болзошгүй замын хөдөлгөөнөөр. Хатуу малгай, бээлий ч өмсөх ёстой
Тээврийн хэрэгслийн арын хараа: 9 алхам (зурагтай)
Тээврийн хэрэгслийн арын хараа: Бид яагаад тээврийн хэрэгслийн арын харааг бүтээдэг вэ? Нөөцлөлтийн мөргөлдөөн нь томоохон асуудал байсныг АНУ-ын Өвчний хяналтын төв мэдээлсэн бөгөөд 2003 оноос хойш 15-аас доош насны 7475 хүүхэд (жилд 2,492) байжээ. автомашины нянгийн эмчилгээ хийлгэсэн
KEVIN бүрэн бие даасан тээврийн хэрэгсэл: 17 алхам (зурагтай)
KEVIN бүрэн бие даасан тээврийн хэрэгсэл: Энэ бол Кевин. Энэ бол бүрэн бие даасан жолоодох чадвартай радио удирдлагатай машин юм. Миний анхны зорилго бол бие даасан тээврийн хэрэгслийг Arduino удирддаг болгох явдал байв. Тиймээс би хямд хятад явах эд анги худалдаж авсан. Гэхдээ би ямар ч c хавсаргаж чадаагүй болохоор аймшигтай байсан