Оглавление:
- Шаг 1. Ресурсы
- Шаг 2. Понимание того, как работает инфракрасное обнаружение (необязательно)
- Шаг 3: Сборка ИК-светодиодов
- Шаг 4: Тестирование инфракрасных пар - схема
- Шаг 5: Тестирование инфракрасных пар - базовый код
- Шаг 6: Тестирование инфракрасных пар - оборудование + программное обеспечение
- Шаг 7: Устранение неполадок (для проблем с последним шагом)
- Шаг 8: Вторая ИК-пара
- Шаг 9: Обнаружение инфракрасных помех (необязательно)
- Шаг 10: добавление дополнительных ИК-пар
- Шаг 11: Пять ИК-пар - Схема
- Шаг 12: Пять IR-пар - Код
Видео: Boe-Bot с инфракрасными детекторами: 12 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
Это руководство продемонстрирует, как создать и запрограммировать Boe-Bot, который может перемещаться по лабиринту с помощью инфракрасных детекторов, чтобы избегать препятствий. Это простое руководство, позволяющее легко вносить изменения в соответствии с вашими потребностями. Для этого требуется базовое понимание схемотехники и программирования. Для этого проекта вам понадобится программа BASIC Stamp IDE. Бесплатно скачать здесь. А также робот Boe-Bot
Шаг 1. Ресурсы
Электронные компоненты
Boe-Bot с соединительным кабелем Parallax Store - BoeBot Kit
Магазин Parallax Store с 5 инфракрасными светодиодами - комплект для сборки ИК-передатчика
5 узлов инфракрасного экрана
5 инфракрасных детекторов Parallax Store - ИК-приемник BoeBot
Резисторы
- (2) 4,7 кОм ABRA Electronics - 4,7 кОм
- (5) 220 Ом ABRA Electronics - 220 Ом
- (2) 1 кОм ABRA Electronics - 1 кОм
- (5) 2 кОм ABRA Electronics - 2 кОм
Ассорти из проводов ABRA Electronics - Провода калибра 22
3 светодиода ABRA Electronics - красный светодиод 5 мм
Служба поддержки
Компьютер
BASIC Stamp Editor - (Бесплатное ПО)
Инструменты
Кусачки для проволоки ABRA Electronics - Кусачки (опционально)
Инструмент для зачистки проводов ABRA Electronics - Инструмент для зачистки проводов
Разное
Стены (чтобы построить лабиринт)
Шаг 2. Понимание того, как работает инфракрасное обнаружение (необязательно)
Инфракрасные фары
Инфракрасная система обнаружения объектов, которую мы построим на Boe-Bot, во многих отношениях похожа на фары автомобиля. Когда свет фар автомобиля отражается от препятствий, ваши глаза обнаруживают препятствия, а ваш мозг обрабатывает их и заставляет ваше тело соответствующим образом направлять машину. Boe-Bot будет использовать инфракрасные светодиоды для фар. Они излучают инфракрасное излучение, а в некоторых случаях инфракрасное излучение отражается от объектов и отражается обратно в направлении Boe-Bot. Глаза Boe-Bot - это инфракрасные детекторы. Инфракрасные детекторы посылают сигналы, указывающие, обнаруживают ли они инфракрасное излучение, отраженное от объекта. Мозг Boe-Bot, BASIC Stamp, принимает решения и управляет серводвигателями на основе этого сигнала датчика. Рисунок 7-1 Обнаружение объектов с помощью инфракрасных фар. Инфракрасные детекторы имеют встроенные оптические фильтры, пропускающие очень мало света, за исключением инфракрасного излучения 980 нм, которое мы хотим обнаруживать с помощью внутреннего фотодиодного датчика. Инфракрасный детектор также имеет электронный фильтр, который пропускает только сигналы около 38,5 кГц. Другими словами, детектор ищет только инфракрасный порт, который мигает 38 500 раз в секунду. Это предотвращает ИК-помехи от обычных источников, таких как солнечный свет и внутреннее освещение. Солнечный свет является помехой постоянного тока (0 Гц), а внутреннее освещение имеет тенденцию мигать с частотой 100 или 120 Гц, в зависимости от основного источника питания в регионе. Поскольку 120 Гц находится за пределами полосы пропускания электронного фильтра 38,5 кГц, ИК-детекторы полностью игнорируют его.
-Руководство для студентов Паралакса
Шаг 3: Сборка ИК-светодиодов
Вставьте ИК-светодиод в большую часть корпуса.
Закройте прозрачную часть светодиода меньшей частью корпуса.
Шаг 4: Тестирование инфракрасных пар - схема
Прежде чем мы углубимся во что-либо, мы проверим, что пара ИК-сигналов работает (один инфракрасный светодиод и один инфракрасный датчик).
Начните с сборки вышеуказанной схемы на макете, установленном на верхней части вашего Boe-Bot.
Шаг 5: Тестирование инфракрасных пар - базовый код
Конечно, нам нужно будет написать код, чтобы наши IR-пары работали.
Для этого воспользуемся командой FREQOUT. Эта команда была разработана для звуковых сигналов, однако ее можно использовать для создания частот в инфракрасном диапазоне. Для этого теста мы будем использовать команду:
FREQOUT 8, 1, 38500
это отправит частоту 38,5 кГц, которая длится 1 мс до P8. Инфракрасная светодиодная цепь, подключенная к P8, будет транслировать эту частоту. Если инфракрасный свет отражается обратно на Boe-Bot объектом, находящимся на его пути, инфракрасный детектор отправит BASIC Stamp сигнал, чтобы он знал, что отраженный инфракрасный свет был обнаружен.
Ключом к тому, чтобы пара ИК-сигналов работала, является отправка 1 мс частоты 38,5 кГц FREQOUT и немедленное сохранение выходного сигнала ИК-детектора в переменной.
В этом примере показано сохранение значения ИК-детектора в битовой переменной irDectectLeft.
FREQOUT 8, 1, 38500
irDetectLeft = IN9
Состояние выхода ИК-детектора, когда он не видит ИК-сигнала, является высоким. Когда ИК-детектор видит гармонику 38500 Гц, отраженную от объекта, его выходной сигнал низкий. Выходной сигнал ИК-детектора остается низким только в течение доли миллисекунды после того, как команда FREQOUT отправила гармонику, поэтому важно сохранить выходной сигнал ИК-детектора в переменной сразу после отправки команды FREQOUT. Значение, хранящееся в переменной, может затем отображаться в терминале отладки или использоваться Boe-Bot для принятия решений по навигации.
Шаг 6: Тестирование инфракрасных пар - оборудование + программное обеспечение
Теперь, когда вы знаете основы, мы можем собрать вместе оборудование и программное обеспечение, чтобы протестировать пару вместе и получить обратную связь в режиме реального времени о том, что обнаруживает ИК-пара.
Вы можете попробовать сделать код самостоятельно или использовать приведенный ниже код.
'{$ STAMP BS2}
'{$ PBASIC 2.5} irDetectLeft VAR Bit DO FREQOUT 8, 1, 38500 irDetectLeft = IN9 DEBUG HOME, "irDetectLeft =", BIN1 irDetectLeft PAUSE 100 LOOP
- Оставьте Boe-Bot подключенным к последовательному кабелю, потому что вы будете использовать терминал DEBUG для проверки своей ИК-пары.
- Поместите какой-либо предмет, например руку или лист бумаги, на расстоянии около дюйма от левой ИК-пары.
- Убедитесь, что, когда вы помещаете объект перед ИК-парой, терминал отладки отображает 0, а когда вы удаляете объект перед ИК-парой, он отображает 1.
- Если терминал отладки не отображает ожидаемые значения, попробуйте выполнить действия, описанные на этапе устранения неполадок.
Шаг 7: Устранение неполадок (для проблем с последним шагом)
Терминал DEBUG, отображающий неожиданные значения
Проверьте цепь на наличие коротких замыканий, неправильно установленных или отсутствующих разъемов, поврежденных компонентов, неправильных резисторов или любых других видимых проблем.
Проверить программу на наличие логических или синтаксических ошибок - если вы использовали свой собственный код на последнем шаге, рассмотрите возможность использования предоставленного кода.
Всегда получает 0, даже если перед Boe-Bot нет никаких объектов.
Проверьте, нет ли поблизости объектов, отражающих инфракрасный сигнал. Стол перед Бо-ботом мог быть причиной. Переместите Boe-Bot в открытое пространство, чтобы ИК-светодиод и детектор не отражались от ближайшего объекта.
Чтение составляет 1 большую часть времени, когда перед Boe-Bot нет объекта, но иногда мерцает до 0
Могут быть помехи от ближайшего люминесцентного света; Выключите все расположенные поблизости люминесцентные лампы и повторите тесты. Если проблема не исчезнет, шаг 9 может выявить проблему.
Шаг 8: Вторая ИК-пара
Теперь, когда у вас есть программа для левого ИК-порта, ваша очередь сделать схему и запрограммировать правую ИК-пару.
- Измените оператор DEBUG, заголовок и комментарии, чтобы они ссылались на правильную пару IR.
- Измените имя переменной с irDetectLeft на irDetectRight. Вам нужно будет сделать это в четырех местах программы.
- Измените аргумент Pin команды FREQOUT с 8 на 2.
- Измените входной регистр, контролируемый переменной irDetectRight, с IN9 на IN0.
- Повторите шаги тестирования в этом упражнении для правильной пары IR; со схемой ИК-светодиода, подключенной к P2, и детектором, подключенным к P0.
Шаг 9: Обнаружение инфракрасных помех (необязательно)
Если у вас возникли проблемы с обнаружением сигналов, которые не следует обнаруживать, или вы планируете продемонстрировать свое ИК-обнаружение в другом месте, вы можете проверить наличие помех.
Концепция этой тестовой программы довольно проста: вы обнаруживаете инфракрасные сигналы, не отправляя их.
Вы можете использовать ту же схему, но вам придется изменить код. вы можете написать свой собственный код, но вы можете использовать приведенный ниже код:
'{$ STAMP BS2}
'{$ PBASIC 2.5} irDetectLeft VAR Bit DO irDetectLeft = IN9 irDetectRight = IN0 IF IN9 = 0 OR IN0 = 0 THEN DEBUG «Обнаружены помехи» PAUSE 100 LOOP
Если вы все же испытываете помехи, определите вероятный источник и выключите / удалите его или переместите туда, где вы используете свой Boe-Bot.
Шаг 10: добавление дополнительных ИК-пар
Если вы хотите большей точности движения вашего Boe-Bot, вы можете добавить больше IR-пар. 3 Значительно улучшает производительность по сравнению с двумя; вы можете использовать центральную пару для поиска прямого препятствия и использовать два боковых IR, чтобы определить, на сколько нужно повернуть. Однако недостатком дизайна с 3 парами ИК-сигналов является то, что вы можете знать, скользя по стене, потому что центральная пара ИК-сигналов используется для обнаружения препятствий. Чтобы решить эту проблему, вы можете добавить инфракрасную пару с каждой стороны с высоким значением сопротивления, поэтому инфракрасный сигнал будет обнаружен только в том случае, если Boe-Bot находится близко к стороне или стене под пологим углом.
Шаг 11: Пять ИК-пар - Схема
Будьте осторожны, направляя два ИК-светодиода сбоку, поскольку их скручивание может привести к соприкосновению проводов и вызвать короткое замыкание.
Шаг 12: Пять IR-пар - Код
Вы можете попробовать запрограммировать свой Boe-Bot перед использованием этого кода:
'{$ STAMP BS2}' {$ PBASIC 2.5} 'Код обнаружения пяти ИК-пар' Matthew Shaw '8 мая 2019 г. (версия 7)' Обнаружение объектов и базовая логическая обработка для решения лабиринтов
irDetectLeft VAR Bit 'Переменная для левого
irDetectCentre VAR Bit 'Переменная для центрального irDetectRight VAR Bit' Переменная для правого irDetectLSide VAR Bit 'Переменная для левой стороны irDetectRSide VAR Bit' Переменная для правой стороны irDetectLSideFar VAR Bit 'Переменная для левой стороны с низким сопротивлением
Слово VAR mLoop
Lmotor PIN 15 'Левый мотор подключен к контакту 14, здесь проходят импульсы
ПИН 14 'правый = 15 ротора
'скорости -> 650-750-850
LFast CON 850 'Константа для левого двигателя на полной скорости RFast CON 650' Константа для правого двигателя на полной скорости
LStop CON 750 'Conastant для левого мотора на полной скорости
RStop CON 650 'Conastant для правого мотора на полной скорости
LMid CON 830 'Константа для левого мотора на средней скорости
RMid CON 700 'Conastant для правого мотора на средней скорости
LSlow CON 770 'Константа для левого мотора на минимальной скорости
RSlow CON 730 'Константа для правого мотора на минимальной скорости
LRev CON 650 'Константа для левого двигателя на полной скорости назад
RRev CON 850 'Константа для левого мотора на полной скорости назад
FREQOUT 7, 1, 38500 'левая сторона
irDetectLeft = IN8
FREQOUT 6, 1, 38500 'центр
irDetectCentre = IN5
FREQOUT 3, 1, 38500 'правая сторона
irDetectRight = IN2
FREQOUT 10, 1, 38500 'Влево Закрыть
irDetectLSide = IN11
FREQOUT 1, 1, 38500 'вправо Закрыть
irDetectRSide = IN0
ЧАСТОТА 9, 1, 38500
irDetectLSideFar = IN11
FREQOUT 4, 1, 38500 'правая сторона
irDetectRSideFar = IN0
ЕСЛИ irDetectLSide = 0 И irDetectRSide = 0 ТОГДА главная 'ЗАПУСКНАЯ КОМАНДА машет руками мимо двух боковых детекторов, чтобы запустить программу.
Главный:
ПАУЗА 1000 ДО
PULSOUT Lmotor, L Быстрый левый двигатель работает на полной скорости
PULSOUT Rmotor, RFast 'Правый двигатель работает на полной скорости
FREQOUT 6, 1, 38500 'центр
irDetectCentre = IN5
FREQOUT 10, 1, 38500 'Влево Закрыть
irDetectLSide = IN11
FREQOUT 1, 1, 38500 'правая сторона
irDetectRSide = IN0
ЕСЛИ irDetectLSide = 0 И irDetectRSide = 1, ТО
DO PULSOUT Lmotor, LFast
FREQOUT 6, 1, 38500 'центр
irDetectCentre = IN5 ЕСЛИ irDetectCentre = 0 ТОГДА цент
FREQOUT 10, 1, 38500 'Влево Закрыть
irDetectLSide = IN11
FREQOUT 3, 1, 38500 'правая сторона
irDetectRight = IN2
Цикл ДО irDetectLSide = 1 ИЛИ irDetectRSide = 0
ELSEIF irDetectLSide = 1 И irDetectRSide = 0 ТОГДА
DO PULSOUT Rmotor, RFast
FREQOUT 6, 1, 38500 'центр
irDetectCentre = IN5 ЕСЛИ irDetectCentre = 0 ТОГДА цент
FREQOUT 10, 1, 38500 'Влево Закрыть
irDetectLSide = IN11
FREQOUT 3, 1, 38500 'правая сторона
irDetectRight = IN2
ЗАПИСЬ ДО irDetectLSide = 0 ИЛИ irDetectRSide = 1
ENDIF
ЕСЛИ irDetectCentre = 0, ТО 'НАЧАТЬ
FREQOUT 7, 1, 38500 'левая сторона irDetectLeft = IN8
FREQOUT 6, 1, 38500 'центр
irDetectCentre = IN5
ЧАСТОТА 3, 1, 38500
irDetectRight = IN2
PAUSE 1000 'пауза для отображения обнаруженного сигнала
IF (irDetectLeft = 1 AND irDetectRight = 0) THEN 'оценить продолжительность
GOSUB поворот влево
ELSEIF (irDetectLeft = 0 И irDetectRight = 1) ТО
GOSUB поворот вправо
ELSEIF (irDetectLeft = 1 AND irDetectRight = 1) ТОГДА
GOSUB очередьDecide
ЕЩЕ
GOSUB поворот Обратный
ENDIF
ENDIF 'КОНЕЦ
ПЕТЛЯ
КОНЕЦ
Поверните налево:
DO PULSOUT Lmotor, LRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 LOOP UNTIL IN0 = 1 RETURN
Поверните направо:
DO PULSOUT Rmotor, RRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 LOOP UNTIL IN9 = 1
ВОЗВРАЩЕНИЕ
TurnReverse:
FOR mLoop = от 0 до 50 PULSOUT Rmotor, RRev PULSOUT Lmotor, LRev PAUSE 20 PULSOUT Lmotor, LRev PAUSE 20 NEXT DO PULSOUT Rmotor, RRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT irD = IN9, 1, 38500, 38500 irDetectRight = ЦИКЛ IN0 ДО IN9 = 1
ВОЗВРАЩЕНИЕ
turnDecide: 'использует более низкое сопротивление, чтобы видеть дальше
ЧАСТОТА 9, 1, 38500
irDetectLSideFar = IN11
FREQOUT 4, 1, 38500 'правая сторона
irDetectRSideFar = IN0
IF (irDetectLSideFar = 1 AND irDetectRSideFar = 0) THEN 'оценить продолжительность
GOSUB поворот влево
ELSEIF (irDetectLSideFar = 0 И irDetectRSideFar = 1) ТО
GOSUB поворот вправо
ELSEIF (irDetectLSideFar = 1 AND irDetectRSideFar = 1) ТОГДА
GOSUB поворот влево
ЕЩЕ
GOSUB поворот Обратный
ENDIF
ВОЗВРАЩЕНИЕ
Рекомендуемые:
Бот Boe перемещается по лабиринту: 4 шага
Boe Bot перемещается по лабиринту: это руководство поможет вам создать бамперы для boe-бота и предоставит вам код, который будет перемещать boe-бот через лабиринт
Как: установка Raspberry PI 4 Headless (VNC) с Rpi-imager и изображениями: 7 шагов (с изображениями)
Как: установка Raspberry PI 4 Headless (VNC) с Rpi-imager и изображениями: я планирую использовать этот Rapsberry PI в кучу забавных проектов еще в моем блоге. Не стесняйтесь проверить это. Я хотел вернуться к использованию своего Raspberry PI, но у меня не было клавиатуры или мыши в моем новом месте. Прошло много времени с тех пор, как я установил Raspberry
Счетчик шагов - Micro: Bit: 12 шагов (с изображениями)
Счетчик шагов - Микро: Бит: Этот проект будет счетчиком шагов. Мы будем использовать датчик акселерометра, встроенный в Micro: Bit, для измерения наших шагов. Каждый раз, когда Micro: Bit трясется, мы добавляем 2 к счетчику и отображаем его на экране
Bolt - Ночные часы с беспроводной зарядкой своими руками (6 шагов): 6 шагов (с изображениями)
Bolt - Ночные часы с беспроводной зарядкой своими руками (6 шагов): Индуктивная зарядка (также известная как беспроводная зарядка или беспроводная зарядка) - это тип беспроводной передачи энергии. Он использует электромагнитную индукцию для обеспечения электропитания портативных устройств. Самым распространенным применением является беспроводная зарядка Qi st
Как разобрать компьютер с помощью простых шагов и изображений: 13 шагов (с изображениями)
Как разобрать компьютер с помощью простых шагов и изображений: это инструкция о том, как разобрать компьютер. Большинство основных компонентов имеют модульную конструкцию и легко снимаются. Однако важно, чтобы вы были организованы по этому поводу. Это поможет уберечь вас от потери деталей, а также при повторной сборке