Мазмұны:

RADbot: 7 қадам
RADbot: 7 қадам

Бейне: RADbot: 7 қадам

Бейне: RADbot: 7 қадам
Бейне: BIT.TRIP RUNNER 2-7 Radbot 2024, Қазан
Anonim
RADbot
RADbot

Джексон Брейкелл, Тайлер Маккуббинс және Якоб Талердің EF 230 жобасы

Марста ғарышкерлер өте жоғары температурадан шаңды дауылға дейін әр түрлі қауіпке ұшырайды. Көбінесе назардан тыс қалатын факторлардың бірі - планетаның бетінде орналасқан қуатты радиоизотоптардың қауіптілігі. RADbot ғарышкерлерге Марстың бетінде зерттеуге көмек көрсетеді, ол саяхат кезінде жоғары белсенділікке ие тау жыныстарының үлгілерін анықтайды, сонымен қатар роботтың зақымдануын болдырмайтын жарта сенсорларын, жарық сенсорларын, бампер сенсорларын және камераны қолданатын бағдарламаланған қауіпсіздік мүмкіндіктері бар. кешірілмейтін Марс жерінде. Ғарышкерлерге жер бетіндегі ықтимал радиоактивті қауіптер туралы ескертуден басқа, роботтың радиоактивті үлгіні орналастыру мүмкіндігі уран мен басқа актинидтердің ірі кен орындарын сақтай алатын аймақтарды анықтау құралы ретінде қолданылуы мүмкін. Ғарышкерлер бұл элементтерді қазып алып, оларды жеткілікті түрде байыта алады және оларды ядролық реакторларда және термоэлектрлік генераторларда қолдана алады, бұл планетада тұрақты, өзін-өзі қамтамасыз ететін колонияға қуат береді.

Кәдімгі Марс-роверден айырмашылығы, біздің дизайнда дайын компоненттер мен қолайлы баға белгісі бар. Егер сізде қаражат пен тілек болса, сіз осы нұсқаулыққа сүйене отырып, оны өзіңіз жасай аласыз. Өзіңіздің RADbot жасауды үйрену үшін оқыңыз.

1 -қадам: қажетті бөлшектер мен материалдарды алыңыз

Қажетті бөлшектер мен материалдарды алыңыз
Қажетті бөлшектер мен материалдарды алыңыз
Қажетті бөлшектер мен материалдарды алыңыз
Қажетті бөлшектер мен материалдарды алыңыз
Қажетті бөлшектер мен материалдарды алыңыз
Қажетті бөлшектер мен материалдарды алыңыз

Нені бастау керек (суреттер тізім бойынша орналастырылған)

1. One Roomba (кез келген жаңа үлгі)

2. Бір Гейгер-Мюллер есептегіші

3. Бір таңқурай Pi

4. USB розеткасы бар бір тақталы камера

5. Бір USB -USB кабелі

6. Бір USB - USB кабелі

7. Жеткілікті белсенділіктің бір радиоактивті үлгісі (~ 5μSv немесе одан жоғары)

8. Matlab орнатылған бір компьютер

9. Жабысқақ (оңай алынуы үшін жабысқақ таспа)

2-қадам: камера мен Гейгер-Мюллер есептегішін конфигурациялау

Камера мен Гейгер-Мюллер есептегішін конфигурациялау
Камера мен Гейгер-Мюллер есептегішін конфигурациялау

Енді сізде RADbot жасауға қажетті барлық материалдар бар, біз камераны әрекетті есептегіште оқи алатын етіп орналастырудан бастаймыз. Гейгер-Мюллер есептегішін Румба соңына мүмкіндігінше жақын орналастырыңыз және оның сенсоры бітелмегеніне көз жеткізіңіз. Есептегішті өзіңіз таңдаған желіммен мықтап бекітіңіз және камераны оған қаратып орнатуды жалғастырыңыз. Сыртқы кірістер бағдарламаға әсер етпеуі үшін камераны санауыштың дисплейіне мүмкіндігінше жақын орналастырыңыз және өзіңізді жайлы сезінгеннен кейін оны бекітіңіз. Біз сізге камераның қауіпсіздігін соңғы сақтауға кеңес береміз, себебі сіздің кодыңыз аяқталғаннан кейін сіз камерадан суретті компьютерге көрсете аласыз, бұл камераны оның көру аймағына қарай орналастыруға мүмкіндік береді. Камера да, есептегіш те мықтап орнатылғаннан кейін, камераны 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 анықталмаған мәндер үшін баяуламауы үшін «else» операторын енгізіңіз және басқа жылдамдықты қоспағанда, берілген жылдамдық пәрменін қайтадан енгізіңіз. 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» операторын бастаңыз. Бізде «r.beep» көмегімен бірнеше рет Roomba дыбыстық сигналын бердік, ол мәзірді «Радиоизотоп табылды! Сақ болыңыз!» мұны «күту (helpdlg ({'texthere'})») пәрменімен орындауға болады. OK түймесін басқаннан кейін, Roomba «if» операторындағы кодтың қалған бөлігін орындауды жалғастырады. Roomba көмегімен үлгіні айналдырыңыз. «r.moveDistance» және «r.turnAngle» пәрмендерінің комбинациясы. if операторын «соңы» арқылы аяқтауды ұмытпаңыз.

Біздің кодтың скриншоты қоса берілген, бірақ оны сіздің миссия параметрлеріңізге сәйкес етіп өңдеуге болады.

6 -қадам: Cliff сенсорлық кодын жасаңыз

Клифф сенсорының кодын жасаңыз
Клифф сенсорының кодын жасаңыз

Roomba кіріктірілген жарта сенсорларын пайдалану үшін код жасау үшін «while» циклінен бастаңыз және оның өрнегін ақиқат етіп орнатыңыз. Айнымалы мәнді «r.getCliffSensors» мәніне тең етіп орнатыңыз, бұл құрылымға әкеледі. «If» операторын бастаңыз және құрылымнан «X.leftFront» және «X.rightFront» айнымалы мәндерін алдын ала белгіленген мәннен үлкен етіп орнатыңыз, мұнда «X» - «r.getCliffSensors» пәрменін таңдаған айнымалы мән. -ге тең болу. Біздің жағдайда біз 1000 -ды қолдандық, ақ жартасты жартасты бейнелеу үшін пайдаландық, ал сенсорлар қағазға жақындаған сайын құндылықтар 1000 -нан асып кетті, бұл код тек жартасты анықтағанда орындалады.. «Break» пәрменін қосыңыз, содан кейін «else» операторын енгізіңіз. Егер қиғаштық анықталмаса орындалатын «else» мәлімдемесі үшін жетектің жылдамдығын әр дөңгелектің қалыпты жүру жылдамдығына орнатыңыз. Егер Roomba жартасты анықтаса, «үзіліс» орындалады, содан кейін while циклінен тыс код орындалады. «If» және «while» циклына «соңын» қойғаннан кейін, Roomba -ны жылжу қашықтығы пәрмені арқылы артқа жылжытатын етіп орнатыңыз. Ғарышкерлерге жартастың жақын орналасқанын ескерту үшін, қозғалыс жылдамдығының пәрменіндегі әрбір дөңгелектің х және у жылдамдықтарын а және -a деп белгілеңіз, мұндағы а -нақты сан. Бұл ғарышкерді жартасты ескерте отырып, Румбаның айналуына әкеледі.

Біздің кодтың скриншоты қоса берілген, бірақ оны сіздің миссия параметрлеріңізге сәйкес етіп өңдеуге болады.

7 -қадам: Қорытынды

Қорытынды
Қорытынды

RADbot -тың Марстағы түпкі мақсаты - ғарышкерлерге қызыл планетаны зерттеуге және отарлауға көмектесу. Жер бетіндегі радиоактивті үлгілерді анықтау арқылы біздің үмітіміз - робот немесе ровер бұл жағдайда ғарышкерлердің қауіпсіздігін сақтай алады және олардың негіздері үшін қуат көздерін анықтауға көмектеседі. Осы қадамдардың барлығын орындағаннан кейін, мүмкін кейбір сынақтар мен қателіктерден кейін сіздің RADbot іске қосылуы керек. Радиоактивті үлгіні тестілеу аймағының бір жеріне қойыңыз, кодты орындаңыз және ровер ойластырылған нәрсені жасайтынын көріңіз. RADbot -тен рахат алыңыз!

-EF230 RADbot тобы

Ұсынылған: