
Оглавление:
- Шаг 1. Приобретите необходимые детали и материалы
- Шаг 2: настройка камеры и счетчика Гейгера-Мюллера
- Шаг 3. Подключитесь к Roomba и создайте код датчика освещенности
- Шаг 4. Создайте код заставки
- Шаг 5: Создайте код для чтения экрана счетчика, его интерпретации и отступления от источника
- Шаг 6: Создайте код датчика обрыва
- Шаг 7: Заключение
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:05

Проект Джексона Брейкелла, Тайлера МакКуббинса и Якоба Талера для EF 230
На Марсе космонавты будут подвергаться множеству опасностей, от экстремальных температур до пыльных бурь. Однако один фактор, о котором часто забывают, - это опасность, которую представляют мощные радиоизотопы, находящиеся на поверхности планеты. Робот RADbot помогает исследовать астронавтов на поверхности Марса, выявляя образцы горных пород с высокой активностью во время путешествия, а также имеет запрограммированные функции безопасности, которые используют датчики обрыва, датчики света, датчики бампера и камеру, предотвращая повреждение робота. на неумолимой марсианской местности. Помимо предупреждения астронавтов о возможных радиоактивных опасностях на поверхности, функция определения местоположения радиоактивных проб робота может быть реализована в качестве инструмента для определения областей, которые могут содержать большие залежи урана и других актинидов. Астронавты могли добывать эти элементы, в достаточной степени обогащать их и использовать в ядерных реакторах и термоэлектрических генераторах, которые могли бы помочь обеспечить постоянную самоподдерживающуюся колонию на планете.
В отличие от типичного марсохода, наша конструкция включает стандартные компоненты и разумную цену. Если у вас есть средства и желание, вы даже можете построить его самостоятельно, следуя этому руководству. Прочтите, чтобы узнать, как создать своего собственного RADbot.
Шаг 1. Приобретите необходимые детали и материалы



Что вам понадобится для начала (изображения размещены в порядке их перечисления)
1. One Roomba (любая более новая модель)
2. Один счетчик Гейгера-Мюллера.
3. Один Raspberry Pi
4. Одна бортовая камера с USB-выходом.
5. Один кабель с микро-USB на USB.
6. Один кабель USB-USB.
7. Один радиоактивный образец достаточной активности (~ 5 мкЗв или выше)
8. Один компьютер с установленным Matlab.
9. Клей (желательно изолента для легкого удаления)
Шаг 2: настройка камеры и счетчика Гейгера-Мюллера

Теперь, когда у вас есть все необходимые материалы для создания RADbot, мы начнем с простого размещения камеры так, чтобы она могла считывать активность на счетчике. Поместите счетчик Гейгера-Мюллера как можно ближе к концу Roomba и убедитесь, что его датчик не заблокирован. Надежно закрепите стойку с помощью выбранного вами клея и приступайте к установке камеры лицом к ней. Поместите камеру как можно ближе к дисплею счетчика, чтобы внешние сигналы не влияли на программу, и закрепите ее на месте, как только почувствуете себя комфортно. Тем не менее, мы рекомендуем вам сохранить защиту камеры напоследок, потому что, когда ваш код будет завершен, вы можете отобразить изображение с камеры на свой компьютер, что позволит вам позиционировать камеру в зависимости от ее поля зрения. После того, как камера и счетчик будут надежно закреплены на месте, подключите камеру к одному из USB-входов Raspberry Pi с помощью кабеля USB-USB и подключите Raspberry Pi к Roomba с помощью кабеля micro USB-USB.
Шаг 3. Подключитесь к Roomba и создайте код датчика освещенности

Сначала загрузите набор инструментов Roomba с веб-сайта EF 230 и обязательно поместите его в указанные папки. Чтобы подключиться к Roomba, просто укажите наклейку, прикрепленную к Raspberry Pi, и введите «r = roomba (x)» в командное окно без кавычек, где x означает номер Roomba. Roomba должен воспроизвести мелодию, а вокруг кнопки очистки должно появиться зеленое кольцо. Начните свой код с оператора «while» и обращайтесь к датчикам освещенности в том виде, в каком они появляются в списке датчиков. Откройте список датчиков, набрав «r.testSensors» в командном окне.
В зависимости от цвета нашего объекта, который определяет, сколько света отражается, установите требования для оператора while, который будет выполняться как функция>. В нашем случае мы настроили передний датчик освещенности для запуска кода в инструкции while, если показания левого или правого центрального датчика освещенности были> 25. Для исполняемого оператора установите скорость Roomba на замедление, набрав «r.setDriveVelocity (x, y)», где x и y - скорости левого и правого колес соответственно. Вставьте оператор «else», чтобы Roomba не замедлялся при неопределенных значениях, и снова введите команду установки скорости движения, за исключением другой скорости. Завершите оператор while "концом". Этот сегмент кода заставит Roomba приблизиться к объекту и замедлится, когда достигнет определенного диапазона, чтобы минимизировать воздействие.
Прилагается скриншот нашего кода, но не стесняйтесь редактировать его, чтобы он наилучшим образом соответствовал параметрам вашей миссии.
Шаг 4. Создайте код заставки

По мере того, как Roomba замедляется, это сводит к минимуму воздействие, которое он оказывает на объект, хотя и не настолько, чтобы не срабатывать физический бампер. Для этого сегмента кода снова начните с цикла «while» и установите для его выражения значение true. Для оператора установите переменную T равной выходному сигналу бампера, 0 или 1, для false и true. Вы можете использовать для этого "T = r.getBumpers". T будет выводиться как структура. Введите оператор «if» и установите его выражение для подструктуры T.front равным 1, и установите оператор, чтобы либо установить скорость привода на 0, используя «r.setDriveVelocity (x, y)» или «r.stop». ". Введите «перерыв», чтобы Roomba мог двигаться после выполнения условия, указанного в следующем коде. Добавьте «else» и задайте его инструкцию для установки скорости движения равной нормальной крейсерской скорости Roomba.
Прилагается скриншот нашего кода, но не стесняйтесь редактировать его, чтобы он наилучшим образом соответствовал параметрам вашей миссии.
Шаг 5: Создайте код для чтения экрана счетчика, его интерпретации и отступления от источника

В основе нашего проекта лежит счетчик Гейгера-Мюллера, и следующий сегмент кода используется для определения значения данных на экране с помощью камеры. Поскольку экран нашего счетчика меняет цвет в зависимости от активности источника, мы настроим камеру на интерпретацию цвета экрана. Начните свой код, установив переменную, равную команде «r.getImage». Переменная будет содержать трехмерный массив значений цвета изображения, сделанного в красном, зеленом и синем цветах. Установите переменные равными средним значениям этих соответствующих цветовых матриц с помощью команды "mean (mean (img1 (:,:, x)))", где x - целое число от 1 до 3. 1, 2 и 3 представляют красный, зеленый и синий соответственно. Как и в случае со всеми упомянутыми командами, не заключайте кавычки.
Сделайте паузу в программе на 20 секунд, используя «pause (20)», чтобы счетчик мог получить точное показание образца, а затем начните выражение «if». Робот Roomba несколько раз подал звуковой сигнал с помощью команды «r.beep» перед тем, как отобразить меню с текстом «Обнаружен радиоизотоп! Осторожно!» это можно сделать с помощью команды «waitfor (helpdlg ({'texthere'})». После нажатия кнопки «ОК» Roomba продолжит выполнение остальной части кода в операторе «if». Попросите Roomba обойти образец, используя комбинация команд "r.moveDistance" и "r.turnAngle". Обязательно завершайте оператор if "end".
Прилагается скриншот нашего кода, но не стесняйтесь редактировать его, чтобы он наилучшим образом соответствовал параметрам вашей миссии.
Шаг 6: Создайте код датчика обрыва

Чтобы создать код для использования встроенных датчиков высоты Roomba, начните с цикла «while» и задайте для его выражения значение true. Задайте для переменной значение «r.getCliffSensors», и это приведет к созданию структуры. Запустите оператор «if» и установите переменные «X.leftFront» и «X.rightFront» из структуры так, чтобы они были больше некоторого предопределенного значения, где «X» - это переменная, которую вы выбрали для команды «r.getCliffSensors». быть равным. В нашем случае мы использовали 1000, так как кусок белой бумаги использовался для представления обрыва, а по мере приближения датчиков к бумаге значения выросли до более чем 1000, гарантируя, что код будет выполняться только при обнаружении обрыва.. Добавьте команду «break» после, а затем вставьте оператор «else». Для оператора «else», который будет выполняться, если обрыв не обнаружен, установите скорость движения равной нормальной крейсерской скорости для каждого колеса. Если Roomba обнаруживает обрыв, выполняется «разрыв», а затем выполняется код вне цикла while. После размещения «конца» цикла «if» и «while» настройте Roomba на движение назад с помощью команды «расстояние перемещения». Чтобы предупредить астронавтов о том, что поблизости находится обрыв, установите скорости движения каждого колеса, x и y в команде скорости движения, равными a и -a, где a - действительное число. Это заставит Roomba вращаться, предупреждая космонавта о скале.
Прилагается скриншот нашего кода, но не стесняйтесь редактировать его, чтобы он наилучшим образом соответствовал параметрам вашей миссии.
Шаг 7: Заключение

Конечная цель RADbot на Марсе - помочь астронавтам в исследовании и колонизации красной планеты. Обнаруживая радиоактивные образцы на поверхности, мы надеемся, что робот или вездеход, в данном случае, действительно сможет обезопасить космонавтов и помочь определить источники энергии для их баз. После выполнения всех этих шагов и, возможно, с помощью некоторых проб и ошибок ваш RADbot должен быть готов к работе. Поместите радиоактивный образец где-нибудь в пределах вашей зоны тестирования, выполните свой код и наблюдайте, как марсоход делает то, для чего он был разработан. Наслаждайтесь своим RADbot!
-Команда EF230 RADbot
Рекомендуемые:
Дизайн игры в Flick за 5 шагов: 5 шагов

Дизайн игры в Flick за 5 шагов: Flick - это действительно простой способ создания игры, особенно чего-то вроде головоломки, визуального романа или приключенческой игры
Счетчик шагов - Micro: Bit: 12 шагов (с изображениями)

Счетчик шагов - Микро: Бит: Этот проект будет счетчиком шагов. Мы будем использовать датчик акселерометра, встроенный в Micro: Bit, для измерения наших шагов. Каждый раз, когда Micro: Bit трясется, мы добавляем 2 к счетчику и отображаем его на экране
Играйте в Doom на своем IPod за 5 простых шагов !: 5 шагов

Играйте в Doom на своем IPod за 5 простых шагов!: Пошаговое руководство по двойной загрузке Rockbox на iPod, чтобы играть в Doom и десятки других игр. Это действительно легко сделать, но многие люди до сих пор удивляются, когда видят, как я играю дум на своем iPod, и путаются с инструкциями
Кормушка для рыбы Arduino Uno за 6 простых и простых шагов !: 6 шагов

Arduino Uno Fish Feeder за 6 простых и дешевых шагов !: Итак, для этого проекта может потребоваться немного предыстории. Людям с домашними рыбками, вероятно, приходилось сталкиваться с той же проблемой, что и мне: отпуск и забывчивость. Я постоянно забывала покормить рыбу и всегда старалась это сделать, пока она не упала
Акустическая левитация с Arduino Uno, шаг за шагом (8 шагов): 8 шагов

Акустическая левитация с Arduino Uno Пошаговая инструкция (8 шагов): ультразвуковые преобразователи звука L298N Женский адаптер питания постоянного тока с штыревым контактом постоянного тока Arduino UNOBreadboard Как это работает: сначала вы загружаете код в Arduino Uno (это микроконтроллер, оснащенный цифровым и аналоговые порты для преобразования кода (C ++)