Агуулгын хүснэгт:
- Алхам 1: Материал
- Алхам 2: Холболт
- Алхам 3: Мэдрэгчийг ашиглахын тулд логикоор MATLAB кодыг бий болгох
- Алхам 4: Код ба роботыг турших
- Алхам 5: Алдааг хүлээн зөвшөөрөх
- Алхам 6: Дүгнэлт
Видео: Roomba зогсоолын Pal: 6 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:03
Энэ төсөл нь iRobot Create програмчлагдах Roomba, MATLAB r2018a, MATLAB гар утсыг ашигладаг. Эдгээр гурван хэрэгсэл, кодчиллын талаархи мэдлэгээ ашиглахдаа бид iRobot Create програмыг програмчилж, өнгийг тайлбарлаж, самбар дээрх мэдрэгч ашиглан даалгавруудыг гүйцэтгэдэг. Энэхүү төслүүд нь эдгээр ажлуудыг гүйцэтгэхийн тулд Raspberry Pi болон MATLAB харилцаа холбооноос хамаарна.
Алхам 1: Материал
1. iRobot робот бүтээх
2. MATLAB r2018a
3. Raspberry Pi
4. Камерын модуль
5. 3-D хэвлэсэн камер тогтворжуулагчийн тавиур
6. MATLAB гар утас суурилуулсан ухаалаг гар утас
7. MATLAB суулгасан зөөврийн компьютер/компьютер
Алхам 2: Холболт
Энэ алхам нь Raspberry Pi -ийг роботтой холбох, хоёрдугаарт роботыг таны компьютерт холбох, ухаалаг гар утсыг компьютерт холбох тухай юм.
Raspberry Pi -ийг роботын дээд хэсэгт суурилуулсан тул энэ процессын хамгийн хялбар хэсэг бол Raspberry Pi -ийг таны роботтой холбох явдал юм. Роботын утас нь Raspberry Pi -ийн хажуу талд залгахад л хангалттай.
Дараагийн алхам бол роботыг компьютерт холбох бөгөөд ингэснээр та роботыг гүйцэтгэх командыг ажиллуулж болно. Таны хийх ёстой хамгийн эхний зүйл бол компьютераа өрөөнийхөө үүсгэж буй утасгүй сүлжээнд холбох явдал юм. Одоо та замыг тохируулахын тулд MATLAB дахь Set Path дүрсийг ашиглахыг зөвлөж байна, ингэснээр та MATLAB -аас Roomba toolbox дахь функцийг ашиглах боломжтой болно. Та роботыг ашиглаж эхлэх, дуусах тоолондоо роботыг "Хоёр хуруутай мэндчилэх" хатуу тохиргоог хийх ёстой бөгөөд энэ нь гэрэл унтарч байгааг илтгэх хүртэл зогсож, цэг товчлуурыг арван секундын турш барина гэсэн үг юм. Хэрэв та робот богино хэмжээний масштабаар тоглож байгааг сонсвол энэ тохиргоог амжилттай хийлээ. Дараа нь та "r = roomba (x)" гэх мэт кодын мөрийг ашиглан roomba -тай холбогдох ёстой бөгөөд энд 'x' нь таны байгаа роботод зориулагдсан дугаар юм.
Эцэст нь та MATLAB гар утсыг энэ төсөлд ашиглах ямар ч хөдөлгөөнт төхөөрөмж дээр татаж авах хэрэгтэй бөгөөд энэ програмыг Android болон Apple -ийн аль алинд нь ашиглах боломжтой. Програмыг суулгасны дараа та итгэмжлэлээ ашиглан нэвтрэх шаардлагатай болно. Дараа нь та энэ төхөөрөмжийг "Дэлгэрэнгүй" гэсэн товчлуурыг ашиглан компьютер дээрээ холбох ёстой -> дараа нь "тохиргоо" -> дарж "Компьютер нэмэх" дээр дарахад дээрх зургуудад үзүүлсэн дэлгэц гарч ирэх ёстой. Үүнийг харсны дараа Таны хийх ёстой дараагийн алхам бол хүссэн мэдээллийг залгах, залгах явдал юм. Амжилттай холбогдсоны дараа та роботоо удирдахын тулд утсан дээрээ компьютер дээрээ тодорхойлсон функцуудаа дуудах боломжтой болно.
Алхам 3: Мэдрэгчийг ашиглахын тулд логикоор MATLAB кодыг бий болгох
Кодыг ихэнх хэсэг нь эргэлтэнд байгаа үед үүсгэхэд хамгийн хялбар байх болно, ингэснээр Roomba нь үзэж буй хүчин төгөлдөр утгуудаа байнга шинэчилж байх болно. Хэрэв алдаа гарсан бол MATLAB нь алдааг харуулах бөгөөд энэ нь код дээр хаана гарч ирэх нь алдааг олж засварлах ажлыг харьцангуй хялбар болгодог.
R2018a MATLAB -д бүтээгдсэн энэхүү код нь стандарт хэрэгслийн хайрцаг, iRobot Create toolbox болон MATLAB гар утасны хэрэгслийн хайрцгийг ашигладаг. Энэ жишээн дээр ашигласан roomba нь 26 гэж тодорхойлогдсон бөгөөд r = roomba (26) -ийг Roomba -тай бүрэн харилцахын тулд зөвхөн нэг удаа ажиллуулах шаардлагатай.
Код:
паркассист функц (x) хэрэв x == 1 бол
r = roomba (26) % нь roomba руу холбогддог
үнэн байхад
r.setDriveVelocity (.05,.05) % нь roomba -ийг жолооны хурдыг бууруулдаг.
bump = r.getBampers % нь овойлт мэдрэгчээс өгөгдлийг авдаг
cliff = r.getCliffSensors % нь хадны мэдрэгчээс өгөгдлийг авдаг
light = r.getLightBampers % нь гэрлийн цохилтын мэдрэгчээс өгөгдлийг авдаг
img = r.getImage;% нь роботыг камераас унтраадаг
red_mean = дундаж (дундаж (img (:,,, 1))) % нь улаан пикселийн дундаж хэмжээг уншдаг
green_mean = дундаж (дундаж (img (:,,, 2))) % нь ногоон пикселийн дундаж хэмжээг уншдаг
blue_mean = дундаж (дундаж (img (:,,, 3)))) % нь цэнхэр пикселийн дундаж хэмжээг уншдаг
хэрэв bump.front == 1 %нь урд талын овойлт мэдрэгчийг уншдаг
r.stop %нь roomba -г зогсооно
msgbox ('Path Obscured!', 'Parking Assistant Message') % нь зам харанхуй байна гэсэн мессежийг харуулна % завсарлага дуусна.
elseif green_mean> 150
r.stop %нь roomba -г зогсооно
cont = questdlg ('Үргэлжлүүлэх үү?', 'Зам дууссан') %нь үргэлжлүүлэхийг хүссэн асуултын хайрцгийг харуулна
хэрэв cont == 'Тийм'
parkassist (1) %кодыг дахин эхлүүлнэ
өөр
Төгсгөл
break % нь давталтыг дуусгадаг
elseif red_mean> 140
r.turnAngle (45) %нь өрөөг 45 градус эргүүлнэ
r.timeStart %нь цагийн тоолуурыг эхлүүлнэ
үнэн байхад
r.setDriveVelocity (.05,.05) %нь өрөөний хурдыг тохируулдаг
time = r.timeGet %нь хувьсагчид цаг хуваарилдаг
bump = r.getBampers % нь овойлт мэдрэгчээс өгөгдлийг авдаг
cliff = r.getCliffSensors % нь хадны мэдрэгчээс өгөгдлийг авдаг
light = r.getLightBampers % нь гэрлийн цохилтын мэдрэгчээс өгөгдлийг авдаг
img = r.getImage;% нь роботыг камераас унтраадаг
red_mean = дундаж (дундаж (img (:,,, 1))) % нь улаан пикселийн дундаж хэмжээг уншдаг
green_mean = дундаж (дундаж (img (:,,, 2))) % нь ногоон пикселийн дундаж хэмжээг уншдаг
blue_mean = дундаж (дундаж (img (:,,, 3)))) % нь цэнхэр пикселийн дундаж хэмжээг уншдаг
хэрэв blue_mean> 120
r.
msgbox ('Ус олдсон!', 'Машины зогсоолын туслах зурвас') % нь ус олдсон гэсэн мессежийг харуулна r.turnAngle (-80) % нь өрөөний эргэлтийг 80 градусаар
break % нь одоогийн давталтыг дуусгадаг
elseif гэрэл.баруунFront> 25 || light.leftFront> 25 %нь гэрлийн цохилтын мэдрэгчийг уншдаг
r.moveDistance (-0.01) % нь өрөөний багийг тогтоосон зайд буцаана
r.turnAngle (-35) % нь өрөөг 35 градус эргүүлнэ
break %нь одоогийн давталтыг дуусгадаг
elseif cliff.rightFront <2500 && cliff.leftFront <2500 %нь хадны мэдрэгчийг хоёуланг нь уншдаг
r.moveDistance (-0.1) % нь roomba-г тогтоосон зайд буцаана
r.turnAngle (-80) %нь өрөөг 80 градус эргүүлнэ
break % нь одоогийн давталтыг дуусгадаг
өөр цаг> = 3
r.stop %нь roomba -г зогсооно
contin = questdlg ('Буудалгүй, Үргэлжлүүлэх үү?', 'Машины зогсоолын туслахын мессеж') %нь үргэлжлүүлбэл roomba үргэлжлэх эсэхийг асууна == "Тийм"
r.turnAngle (-90) % нь өрөөг 90 градус эргүүлнэ
parkassist (1) %нь функцийг дахин эхлүүлнэ
өөр
r.stop % нь roomba -г зогсооно
Төгсгөл
өөр
Төгсгөл
Төгсгөл
elseif cliff.rightFront <2500 && cliff.leftFront <2500 %нь хадны мэдрэгчийг хоёуланг нь уншдаг
r.moveDistance (-0.1) %нь roomba-г тогтоосон зайд буцаана
r.turnAngle (-90) %нь өрөөг 90 градус эргүүлнэ
elseif cliff.rightFront <2500 %нь зөв хадан мэдрэгчийг уншдаг
r.turnAngle (-5) %нь тасалгааны мэдрэгчийн эсрэг чиглэлд бага зэрэг эргүүлнэ
elseif cliff.leftFront <2500 %нь зүүн талын хадыг мэдрэгчийг уншдаг
r.turnAngle (5) %нь ховил мэдрэгчийн эсрэг чиглэлд өрөөний хэсгийг бага зэрэг эргүүлнэ
өөр
Төгсгөл
Төгсгөл
Төгсгөл
Алхам 4: Код ба роботыг турших
Кодыг боловсруулсны дараа дараагийн алхам бол код болон роботыг турших явдал байв. Роботын эргэх өнцөг, хөдөлж буй хурд, өнгө бүрийн босго гэх мэт кодонд маш олон янзын тохируулга хийх боломжтой байдаг тул эдгээр утгыг таны роботыг тодорхойлох хамгийн сайн арга бол турших явдал юм. Тэд явж байхдаа өөрчлөгдөж байдаг. Бидний хийсэн ажлын өдөр бүрийн хувьд бид эдгээр утгыг байнга өөрчилж байдаг, учир нь тэдний зарим нь таны робот ажиллаж буй орчинд найддаг. Бидний олж мэдсэн хамгийн сайн арга бол roomba -г өөрийн хүссэн зам дээр байрлуулах явдал юм. хангалттай өндөр хаалттай тул камер нь таны хүсээгүй өнгийг илрүүлж чадахгүй. Дараагийн алхам бол үүнийг ажиллуулж, хүссэн өнгөө харуулах бөгөөд энэ ажлыг дуусгахыг хүсч байна. Явах явцдаа хэрэв та ямар нэг асуудал олж харвал урд бамперыг дарж зогсоож, асуудалтай байсан параметрээ өөрчлөх нь хамгийн зөв арга юм.
Алхам 5: Алдааг хүлээн зөвшөөрөх
Төсөл дууссаны дараа алдааны эх үүсвэр үргэлж байдаг. Бидний хувьд робот эргэх өнцөг нь яг нарийн биш гэдэг энгийн алдаатай тулгарсан тул хэрэв та 45 градус эргүүл гэж хэлбэл энэ нь тийм ч зөв биш байх болно. Бидний алдааны бас нэг эх сурвалж нь заримдаа роботын доголдол гардаг бөгөөд та дахин ажиллахаасаа өмнө үүнийг дахин тохируулдаг. Бидний хувьд алдааны гол эх үүсвэр нь ижил код нь өөр өөр роботуудад ижил нөлөө үзүүлэхгүй тул та тэвчээртэй байж, үүний дагуу тохируулах хэрэгтэй болж магадгүй юм.
Алхам 6: Дүгнэлт
Одоо та өрөөнийхөө өрөөнд тоглох бүх хэрэгслүүд байгаа бөгөөд энэ нь хүссэн зорилгодоо хүрэхийн тулд хүссэн үедээ кодоо өөрчилж болно гэсэн үг юм. Энэ бол таны өдрийн хамгийн сайхан хэсэг байх ёстой, тиймээс хөгжилтэй байж, аюулгүй жолоодоорой!
Зөвлөмж болгож буй:
Arduino машины урвуу зогсоолын дохиоллын систем - Алхам алхамаар: 4 алхам
Arduino машины урвуу зогсоолын дохиоллын систем | Алхам алхамаар: Энэ төсөлд би Arduino UNO болон HC-SR04 хэт авианы мэдрэгч ашиглан Arduino автомашины урвуу зогсоолын мэдрэгчийн энгийн хэлхээг зохион бүтээнэ. Энэхүү Arduino дээр суурилсан Автомашины Урвуу дохиоллын системийг бие даасан навигаци, роботын хүрээ болон бусад хүрээний зориулалтаар ашиглаж болно
Arduino зогсоолын туслах - Машинаа зөв байрлуулах болгондоо: 5 алхам (зурагтай)
Arduino зогсоолын туслах ажилтан - Машинаа зөв цэг дээр байрлуулах: Энэ төсөлд би Arudino ашиглан машины зогсоолын туслахаа хэрхэн яаж хийхийг танд үзүүлэх болно. Энэхүү зогсоолын туслах нь таны машин хүртэлх зайг хэмжиж, LCD дэлгэцийн уншилт, LED ашиглан зөв газарт байрлуулахад тань туслах болно
Машины зогсоолын туслах хялбар засвар / оношлогоо: 4 алхам
Машины зогсоолын туслах хялбар засвар / оношлогоо: За эхэлцгээе, би 2010 оны Chevrolet Avalanche -тэй бөгөөд арын бамперт 4 зогсоолын туслах мэдрэгчтэй. Энэхүү нарийн төвөгтэй төхөөрөмжийг машин дээр болон миний мэдэлд хамгийн сайн ашиглах боломжтой. Тиймээс би дуртай зүйл рүүгээ явлаа
Arduino зогсоолын мэдрэгч: 8 алхам
Arduino зогсоолын мэдрэгч: Бүрэлдэхүүн хэсгүүд 1x Arduino UNO1x Circle электрон NOOB серийн зогсоолын мэдрэгч1x HC-SR04 хэт авианы мэдрэгч8x эрэгтэй, эмэгтэй холбогч програм хангамж Arduino IDE
Нарны эрчим хүчээр ажилладаг LED зогсоолын мэдрэгч: 8 алхам (зурагтай)
Нарны эрчим хүчээр ажилладаг LED машины зогсоолын мэдрэгч: Манай гараж тийм ч их гүнтэй байдаггүй бөгөөд төгсгөлд нь кабинетууд байдаг бөгөөд энэ нь гүнийг улам бүр багасгадаг. Эхнэрийн маань машин ердөө л богино хэмжээтэй боловч ойрхон байна. Би энэ мэдрэгчийг машины зогсоолын үйл явцыг хялбарчлах, машин дүүрсэн эсэхийг шалгах зорилгоор хийсэн