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

RADbot: 7 алхам
RADbot: 7 алхам

Видео: RADbot: 7 алхам

Видео: RADbot: 7 алхам
Видео: BIT.TRIP RUNNER 2-7 Radbot 2024, Аравдугаар сар
Anonim
RADbot
RADbot

Жексон Брейкелл, Тайлер Маккуббинс, Жакоб Талер нарын EF 230 төсөл.

Ангараг гариг дээр сансрын нисгэгчид хэт халуун, шороон шуурга хүртэл янз бүрийн аюулд өртөх болно. Гэсэн хэдий ч ихэнхдээ үл тоомсорлодог нэг хүчин зүйл бол манай гаригийн гадаргуу дээр байрладаг хүчирхэг радиоизотопуудын аюул юм. RADbot нь Ангараг гаригийн гадаргуу дээрх сансрын нисгэгчдийг судлахад тусалдаг бөгөөд чулуулгийн дээжийг аялж явахдаа өндөр идэвхжилтэйгээр нь таньж, мөн хадан цохионы мэдрэгч, гэрэл мэдрэгч, бамбай мэдрэгч, камер зэргийг ашиглан програмчлагдсан аюулгүй байдлын онцлогтой бөгөөд роботыг гэмтэхээс хамгаалдаг. Ангараг гаригийн өршөөлгүй газар нутаг дээр. Сансрын нисгэгчдийг гадаргуу дээр цацраг идэвхт аюул учруулж болзошгүйг анхааруулахаас гадна роботын цацраг идэвхт дээжийг байршуулах функцийг уран болон бусад актинидын томоохон ордуудыг хадгалах боломжтой газрыг тодорхойлох хэрэгсэл болгон ашиглаж болно. Сансрын нисгэгчид эдгээр элементүүдийг олборлож, хангалттай баяжуулж, цөмийн реактор, дулааны цахилгаан үүсгүүрт ашиглаж болох бөгөөд энэ нь дэлхий дээрх байнгын, өөрийгөө тэжээдэг колонийг хүчирхэгжүүлэхэд тусална.

Ердийн Ангараг гарагнаас ялгаатай нь манай дизайн нь бэлэн бус эд анги, боломжийн үнийн шошготой. Хөрөнгө мөнгө, хүсэл эрмэлзэлтэй бол энэхүү гарын авлагыг дагаж өөрийн гараар бүтээх боломжтой. RADbot -ийг өөрийн гараар хэрхэн хийхийг сурахын тулд үргэлжлүүлэн уншина уу.

Алхам 1: Шаардлагатай эд анги, материалыг олж авах

Шаардлагатай эд анги, материалыг олж авах
Шаардлагатай эд анги, материалыг олж авах
Шаардлагатай эд анги, материалыг олж авах
Шаардлагатай эд анги, материалыг олж авах
Шаардлагатай эд анги, материалыг олж авах
Шаардлагатай эд анги, материалыг олж авах

Эхлэхийн тулд танд хэрэгтэй зүйл (Зургийг жагсаасан дарааллаар байрлуулсан болно)

1. Нэг Roomba (ямар ч шинэ загвар)

2. Нэг Гейгер-Мюллер тоолуур

3. Нэг Raspberry Pi

4. USB залгууртай нэг самбар бүхий камер

5. Нэг микро USB -ээс USB кабель

6. Нэг USB -ээс USB кабель

7. Цацраг идэвхит хангалттай дээжийн нэг дээж (~ 5μSv ба түүнээс дээш)

8. Matlab суулгасан нэг компьютер

9. Наалдамхай (амархан салгаж авахын тулд наалдамхай тууз)

Алхам 2: Камер ба Гейгер-Мюллерийн тоолуурыг тохируулах

Камер ба Гейгер-Мюллерийн тоолуурыг тохируулах
Камер ба Гейгер-Мюллерийн тоолуурыг тохируулах

RADbot үүсгэхэд шаардлагатай бүх материал танд байгаа тул бид камерыг лангуун дээрх үйлдлийг уншихын тулд зүгээр л байрлуулна. Гейгер-Мюллер тоолуурыг Roomba-ийн төгсгөлд аль болох ойрхон байрлуулж, мэдрэгч нь хаагдаагүй байгаа эсэхийг шалгаарай. Тоолуурыг сонгосон цавуугаар нь сайтар бэхлээд камерыг нүүр рүү нь холбоно уу. Гадны оролт нь програмд нөлөөлөхгүйн тулд камерыг лангууны дэлгэц рүү аль болох ойр байрлуулж, тав тухтай санагдсаны дараа байрлуулна уу. Камерын хамгаалалтыг хамгийн сүүлд хадгалахыг танд зөвлөж байна, гэхдээ таны код дууссаны дараа та камераас авсан зургийг компьютер дээрээ харуулах боломжтой бөгөөд ингэснээр камерыг харах өнцгөөс нь хамааран байрлуулах боломжтой болно. Камер болон тоолуур хоёуланг нь байрлуулсны дараа камерыг Raspberry Pi -ийн USB оролтын аль нэгэнд USB -USB кабелиар холбож, Raspberry Pi -ийг микро USB -USB кабелиар Roomba руу залгаарай.

Алхам 3: Roomba -тай холбогдож гэрэл мэдрэгчийн код үүсгээрэй

Roomba -тай холбогдож гэрэл мэдрэгчийн код үүсгээрэй
Roomba -тай холбогдож гэрэл мэдрэгчийн код үүсгээрэй

Нэгдүгээрт, EF 230 вэбсайтын Roomba хэрэгслийн хайрцгийг татаж аваад заасан фолдерт байрлуулна уу. Roomba -тай холбогдохын тулд Raspberry Pi -д хавсаргасан наалт руу ороод "r = roomba (x)" командын цонхонд хашилтгүй, x нь Roomba дугаарыг илэрхийлнэ. Roomba нь ая тоглох ёстой бөгөөд цэвэр товчлуур нь эргэн тойрондоо ногоон цагираг харуулах ёстой. Кодоо "while" мэдэгдлээс эхлүүлж, мэдрэгчийн жагсаалтад харагдах гэрлийн мэдрэгчийг анхаарч үзээрэй. Командын цонхонд "r.testSensors" гэж бичээд мэдрэгчийн жагсаалтыг нээнэ үү.

Гэрлийн тусгал хэр их байгааг тодорхойлдог манай объектын өнгийг үндэслэн while функцийг> функц болгон гүйцэтгэх шаардлагыг тавь. Манай тохиолдолд урд гэрэл мэдрэгчийг зүүн эсвэл баруун төвийн гэрлийн мэдрэгчийн уншилт нь> 25 байсан бол кодыг ажиллуулах тохиргоог хийдэг. Гүйцэтгэх мэдэгдлийн хувьд Roomba -ийн хурдыг "r.setDriveVelocity (x, y)" гэж бичээд удаашруулахаар тохируулаарай, энд x ба y нь зүүн ба баруун дугуйнуудын хурд юм. Roomba нь тодорхойлогдоогүй утгыг удаашруулахгүйн тулд "өөр" мэдэгдлийг оруулаад өөр хурднаас бусад тохиолдолд тогтоосон хөтчийн хурдны командыг дахин оруулна уу. While мэдэгдлийг "төгсгөл" гэж төгсгөөрэй. Энэхүү кодын сегмент нь Roomba -г объект руу ойртуулж, нөлөөллийг багасгахын тулд тодорхой хязгаарт хүрэхэд удаашруулна.

Манай кодын дэлгэцийн агшинг хавсаргасан болно, гэхдээ үүнийг эрхэм зорилгынхоо параметрт хамгийн сайн нийцүүлэн засах боломжтой.

Алхам 4: Бампер код үүсгэх

Бампер код үүсгэх
Бампер код үүсгэх

Roomba удааширч байгаа тул энэ нь объектод үзүүлэх нөлөөллийг багасгах болно, гэхдээ энэ нь физик бамперыг өдөөхгүй юм. Кодын энэ сегментийн хувьд "while" давталтаас дахин эхэлж, түүний илэрхийлэлийг үнэн гэж тохируулаарай. Мэдэгдлийн хувьд, T хувьсагчийг бамперын гаралттай тэнцүү, 0 эсвэл 1 -ийг худал, үнэн гэж тохируулна уу. Үүний тулд та "T = r.getBumpers" -ийг ашиглаж болно. T нь бүтцийн хэлбэрээр гарна. "If" мэдэгдлийг оруулаад T.front дэд бүтцийн илэрхийлэлийг 1 -тэй тэнцүүлж, "r.setDriveVelocity (x, y)" эсвэл "r.stop" ашиглан хөтчийн хурдыг 0 болгож тохируулаарай. ". Дараагийн код дээрх нөхцөл хангагдсаны дараа Roomba шилжихийн тулд "завсарлага" оруулна уу. "Өөр" гэж нэмж, жолоочийн хурдыг Roomba -ийн ердийн аялалын хурдаар тохируулахын тулд түүний мэдэгдлийг тохируулна уу.

Манай кодын дэлгэцийн агшинг хавсаргасан болно, гэхдээ үүнийг эрхэм зорилгынхоо параметрт хамгийн сайн нийцүүлэн засах боломжтой.

Алхам 5: Тоолуурын дэлгэцийг уншиж, тайлбарлаж, эх сурвалжаас ухрах код үүсгээрэй

Тоолуурын дэлгэцийг уншиж, тайлбарлаж, эх сурвалжаас ухрах код үүсгээрэй
Тоолуурын дэлгэцийг уншиж, тайлбарлаж, эх сурвалжаас ухрах код үүсгээрэй

Манай төслийн гол цөм нь Geiger-Muller тоолуур бөгөөд камер ашиглан дэлгэц дээрх өгөгдөл ямар утгатай болохыг тодорхойлохын тулд дараах кодын хэсгийг ашигладаг. Манай лангууны дэлгэц эх сурвалжийн үйл ажиллагаанаас хамаарч өнгө нь өөрчлөгддөг тул бид камерыг дэлгэцийн өнгийг тайлбарлахаар тохируулах болно. "R.getImage" командтай тэнцүү хувьсагчийг тохируулснаар кодоо эхлүүлээрэй. Хувьсагч нь улаан, ногоон, цэнхэр өнгөөр авсан зургийн 3d өнгөний утгыг агуулсан болно. Эдгээр харгалзах өнгөний матрицуудын дундажтай тэнцүү хувьсагчдыг тохируулахдаа "дундаж (дундаж (img1 (:,,, x)))" командыг ашиглана уу, энд x нь 1 -ээс 3 хүртэлх бүхэл тоо юм. 1, 2, 3 нь улаан, ногоон, цэнхэр тус тус. Лавласан бүх командуудын нэгэн адил ишлэл оруулахгүй.

Хөтөлбөрийг "pause (20)" ашиглан 20 секундын турш түр зогсоогоод тоолуур нь дээжийг үнэн зөв уншиж, дараа нь "if" гэсэн мэдэгдлийг эхлүүлнэ. Бид Roomba -г хэд хэдэн удаа "r.beep" ашиглан "Радиоизотоп олдсон! Анхаар!" Гэсэн текст бүхий цэсийг харуулахаасаа өмнө дуугарсан. Үүнийг "waitfor (helpdlg ({'texthere'}))" командын тусламжтайгаар гүйцэтгэж болно. ОК дарсны дараа Roomba "if" мэдэгдэлд байгаа кодын үлдсэн хэсгийг үргэлжлүүлэн дагаж мөрдөх болно. "r.moveDistance" ба "r.turnAngle" командын хослол. if -ийн төгсгөлийг "төгсгөл" -ээр дуусгахаа мартуузай.

Манай кодын дэлгэцийн агшинг хавсаргасан болно, гэхдээ үүнийг эрхэм зорилгынхоо параметрт хамгийн сайн нийцүүлэн засах боломжтой.

Алхам 6: Клифф мэдрэгчийн кодыг үүсгэнэ үү

Клифф мэдрэгчийн код үүсгэх
Клифф мэдрэгчийн код үүсгэх

Roomba-ийн суулгасан хадан мэдрэгчийг ашиглах кодыг бий болгохын тулд "while" гогцооноос эхэлж, түүний илэрхийлэлийг үнэн гэж тохируулаарай. Хувьсагчийг "r.getCliffSensors" -тэй тэнцүү болговол бүтэц үүснэ. "If" хэллэгийг эхлүүлээд бүтцээс "X.leftFront" ба "X.rightFront" хувьсагчдыг урьдчилан тодорхойлсон утгаас их байхаар тохируулаарай. Энд "X" бол "r.getCliffSensors" командыг сонгосон хувьсагч юм. -тай тэнцүү байх. Манай тохиолдолд бид цагаан цаасыг хадан цохиог дүрслэхэд ашигладаг байсан тул 1000 -ийг ашигласан бөгөөд мэдрэгч ойртох тусам цаас 1000 -аас дээш болж, энэ нь зөвхөн хадан цохио илэрсэн үед л кодыг гүйцэтгэх болно.. "Break" командыг нэмээд дараа нь "else" мэдэгдлийг оруулна уу. Хэрэв хадан цохио илрээгүй бол гүйцэтгэгдэх "өөр" мэдэгдлийн хувьд хөтчийн хурдыг дугуй тус бүрийн хурдны ердийн хурдаар тохируулна уу. Хэрэв Roomba нь хадан цохио илрүүлсэн бол "завсарлага" -ыг гүйцэтгэх бөгөөд дараа нь while давталтын гаднах кодыг гүйцэтгэх болно. "If" ба "while" хүрдний "төгсгөл" -ийг байрлуулсны дараа Roomba -г зайд шилжих командыг ашиглан ухрах чиглэлд тохируулна. Сансрын нисгэгчдэд ойролцоох хадан цохио байгааг анхааруулахын тулд хөтөчийн хурдны командын дугуй ба дугуй бүрийн хөтчийн хурдыг x ба y -ийг a ба -a гэж тохируулж, a нь жинхэнэ тоо юм. Энэ нь сансрын нисгэгчийг хадан цохио руу анхааруулж, Roomba эргэх шалтгаан болно.

Манай кодын дэлгэцийн агшинг хавсаргасан болно, гэхдээ үүнийг эрхэм зорилгынхоо параметрт хамгийн сайн нийцүүлэн засах боломжтой.

Алхам 7: Дүгнэлт

Дүгнэлт
Дүгнэлт

Ангараг гариг дээрх RADbot -ийн эцсийн зорилго бол сансрын нисгэгчдэд улаан гаригийг судлах, колоничлоход нь туслах явдал юм. Гадаргуу дээрх цацраг идэвхт дээжийг олж илрүүлснээр робот буюу ровер энэ тохиолдолд сансрын нисгэгчдийг үнэхээр аюулгүй байлгаж, суурийнхаа тэжээлийн эх үүсвэрийг тодорхойлоход тусална гэж найдаж байна. Эдгээр бүх алхамуудыг хийсний дараа, магадгүй зарим туршилт, алдааны дараа таны RADbot ажиллаж байх ёстой. Цацраг идэвхит дээжийг туршилтын талбайнхаа аль нэг хэсэгт байрлуулж, кодоо ажиллуулж, роверыг төлөвлөсөн зүйлээ хийхийг хараарай. RADbot -оо сайхан өнгөрүүлээрэй!

-EF230 RADbot баг

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