Оглавление:

Изготовление бамперов для роботов (с кодом): 4 шага
Изготовление бамперов для роботов (с кодом): 4 шага

Видео: Изготовление бамперов для роботов (с кодом): 4 шага

Видео: Изготовление бамперов для роботов (с кодом): 4 шага
Видео: Как создать РОБОТА 2024, Ноябрь
Anonim
Сделайте бамперы для роботов (с кодом)
Сделайте бамперы для роботов (с кодом)

В этом руководстве читатели узнают, как создавать и кодировать бамперы на Бо-боте, который сможет перемещаться по лабиринту, обнаруживая препятствия. Кодирование для проекта было выполнено с использованием программного обеспечения BASIC Stamp и робота Boe-Bot, и для создания этих бамперов требуется базовое понимание схемотехники и программирования.

Запасы

Для создания этих бамперов вам понадобятся:

- Робот Boe-Bot

- Программное обеспечение BASIC Stamp для программирования

- Эскимо

- губка

- Алюминиевая фольга

- Скрепки

- 8 прилично длинных проводов (минимум 6 дюймов)

- 2 светодиода

- 2 коричнево-черно-желтых резистора

- 2 красно-красно-коричневых резистора

- Лента и горячий клей (или аналогичный клей)

- Аккумуляторы для вашего Boe-Bot

Шаг 1: Шаг 1: Создание схемы

Шаг 1: Создание схемы
Шаг 1: Создание схемы
Шаг 1: Создание схемы
Шаг 1: Создание схемы

Следуйте приведенной выше макетной схеме, чтобы создать схему, которая будет ориентировать макетную плату и работать с ней. В конце концов, ваша макетная плата должна выглядеть так, как на изображении слева.

То, что нужно запомнить:

- Убедитесь, что светодиод находится в правильном положении. Это означает, что плоская ножка светодиода должна быть на отрицательной стороне, а другая - на положительной.

- Vss служит заземлением на этой макетной плате, что означает, что он имеет нулевое значение, а Vdd - 1.

- Работающая цепь имеет значение 0. Выключенная цепь имеет значение 1.

Шаг 2: Шаг 2: Программирование для Boe-бота

Следующий код программирует робота на поворот влево и вправо на 90 градусов в зависимости от того, какой из бамперов нажат (более подробная информация о создании бампера приведена на следующем шаге). Этот код гарантирует, что робот повернет налево при нажатии на правые провода бампера и повернет направо при нажатии на левые провода бампера.

Некоторые основные языковые переводы:

- GOSUB = подпрограмма (должно сопровождаться требованием в коде)

- If.. Else = указывает группу кода, которая должна быть выполнена, если условия истинны, и выполняет инструкции, если условия ложны

Код:

'{$ STAMP BS2}

'{$ PBASIC 2.5}' ****************************************** ******************************* «Сброс кода перезапуска». Используйте кнопку сброса, чтобы остановить и запустить робота »** ************************************************ *********************** temp VAR Byte 'временное хранилище RunStatus DATA $ 00 переменная, хранящаяся в ROM READ RunStatus, temp' Прочитать переменную из ROM temp = ~ temp 'инвертировать значение 0 в 1 или 1 в 0 WRITE RunStatus, temp' Записать переменную обратно в ПЗУ IF (temp> 0) THEN END 'Проверить, равно ли значение 1', если да, ЗАКОНЧИТЬ программу PAUSE 3000 'Пауза, чтобы разрешить вы должны двигать рукой при нажатии кнопки сброса ************************************** *********************************** ************* ************************************************ *********** «Выводы и константы» Используется для упрощения программирования. **************************** ******************************************* LMOTOR PIN 15 RMOTOR PIN 14 RFast CON 650 LFast CON 850 RSlow CON 700 LSlow CON 780 MStop CON 750 RFastRev CON 8 50 LFastRev CON 650 RSlowRev CON 800 LSlowRev CON 700 TurnLeft90 CON 90 TurnRight90 CON 90 '******************************** *************************************** ********* ************************************************ ************** 'Переменные' Используется для упрощения программирования '*************************** ******************************************* MLoopC VAR Word 'For.. Следующая переменная до 65000 знаков sideCount VAR Byte turnAngle VAR Word '*********************************** ************************************* '----------- -------------------------------------------------- ------------- «Основной код» --------------------------------- ----------------------------------------- DO IF IN10 = 0 THEN 'Если провод на контакте 10 включен, затем поверните налево GOSUB LeftTurn90 GOSUB LFastRev GOSUB RFastRev ELSEIF IN11 = 0 THEN 'Если провод на контакте 11 включен, поверните вправо GOSUB RightTurn90 GOSUB LFastRev GOSUB RFastRev ENDIF GOSUB ForwardFast' Перемещение вперед на один импульс LOOP '- --------------------------------- ------------------------------------- '** КОНЕЦ ГЛАВНОГО КОДА ****** *********************************************** - -------------------------------------------------- --------------------- '**************************** ******************************************* ** Подпрограммы / Подпроцедура / Методы ******************************* *********** ************************************************* *********** '************************************** ********************************* *************** ************************************************ ******* RightTurn90: «Дополнительная процедура для поворота на 90 градусов вправо» ********************************* ************************************ ВЫСОКИЙ 1 НИЗКИЙ 0 ДЛЯ MLoopC = от 1 до 22 ДВИГАТЕЛЬ ПУЛЬСАВНЫЙ, Lfast 'переместить вперед на один импульс PULSOUT RMOTOR, RfastRev' с использованием штифтов и констант PAUSE 20 '20 мс позволяет роботу двигаться СЛЕДУЮЩИЙ' до СЛЕДУЮЩЕГО импульса RETURN '******************** ************************************************ * LeftTurn90: «Подпроцедура поворота вправо на 90 градусов» ** ************************************************ ******************* HIGH 0 LOW 1 ДЛЯ MLoopC = от 1 до 22 PULSOUT LMOTOR, LfastRev 'продвинуть вперед на один импульс PULSOUT RMOTOR, Rfast' с использованием контактов и констант PAUSE 20 ' 20 мс позволяет роботу двигаться СЛЕДУЮЩИЙ 'до СЛЕДУЮЩЕГО импульса ВОЗВРАЩЕНИЯ' ************************************* ******************************** ForwardFast: «Подпроцедура для быстрого перемещения робота на один квадрат вперед» **** ************************************************ ***************** ДЛЯ MLoopC = от 1 до 55 PULSOUT LMOTOR, LFast PULSOUT RMOTOR, RFast PAUSE 20 NEXT RETURN '************** ************************************************ ****** ReverseTurnLeft: 'Подпроцедура для обратного поворота и поворота робота влево при ударе правого бампера' ************************** ****************************************** ДЛЯ MLoopC = от 1 до 55 PULSOUT LMOTOR, LSlowRev PULSOUT RMOTOR, RFastRev PAUSE 20 NEXT RETURN '************************************* ******************************** ReverseTurnRight: 'Subproce Обязательно сделайте задний ход и поверните робота вправо при ударе левого бампера '********************************** ********************************** ДЛЯ MLoopC = от 1 до 55 PULSOUT LMOTOR, LFastRev PULSOUT RMOTOR, RSlowRev PAUSE 20 СЛЕДУЮЩИЙ ВОЗВРАТ '********************************************* ************************ «КОНЕЦ ПОДПРОГРАММ» ******************** ************************************************ *

Шаг 3: Шаг 3: Использование алюминиевой фольги и палочек для мороженого для проволочных бамперов

Шаг 3. Использование алюминиевой фольги и палочек для мороженого для проволочных бамперов
Шаг 3. Использование алюминиевой фольги и палочек для мороженого для проволочных бамперов
Шаг 3. Использование алюминиевой фольги и палочек для мороженого для проволочных бамперов
Шаг 3. Использование алюминиевой фольги и палочек для мороженого для проволочных бамперов
Шаг 3. Использование алюминиевой фольги и палочек для мороженого для проволочных бамперов
Шаг 3. Использование алюминиевой фольги и палочек для мороженого для проволочных бамперов
Шаг 3. Использование алюминиевой фольги и палочек для мороженого для проволочных бамперов
Шаг 3. Использование алюминиевой фольги и палочек для мороженого для проволочных бамперов

Перед тем, как начать этот шаг, убедитесь, что 4 провода от макета (см. Шаг 1) разделены на пары, каждая пара управляет правым или левым бампером. В этой ситуации светодиоды работают, чтобы проверить, действует ли код на правом и левом бамперах. На палочках для мороженого один провод от каждой пары разделяет один конец палочки для мороженого (это означает, что провода одной пары НЕ МОГУТ быть на одном бампере).

Вырежьте 4 небольших прямоугольника из фольги и одним из них оберните проволокой каждый конец двух палочек для мороженого. Это увеличивает площадь поверхности проводимости палочек для мороженого, а также обеспечивает большую площадь поверхности для прикосновения палочек.

Чтобы фольга и проволока прилипали к палочкам для мороженого, используйте 1-2 скрепки, чтобы скрепить материалы вместе. Скрепки также обеспечивают большую доступность палочек для мороженого без особого внешнего вмешательства. Наденьте скрепку на палочку для мороженого, как будто вы делаете это с обычной стопкой бумаг. Повторите это для всех четырех кусков фольги и каждого конца двух палочек для мороженого.

Шаг 4: Шаг 4: Сборка остальных бамперов

Шаг 4: Сборка остальных бамперов
Шаг 4: Сборка остальных бамперов
Шаг 4: Сборка остальных бамперов
Шаг 4: Сборка остальных бамперов
Шаг 4: Сборка остальных бамперов
Шаг 4: Сборка остальных бамперов
Шаг 4: Сборка остальных бамперов
Шаг 4: Сборка остальных бамперов

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

Необязательно: разрежьте лишнюю палочку пополам и приклейте ее под углом к кончику внешнего бампера палочки для мороженого. Это усиливает удар бампера о стену и поворот.

Помните, как согните провода так, чтобы бамперы изгибались прямо перед ботом.

Рекомендуемые: