
Как собрать простого BEAM-робота, который следует за светом

Если у вас есть базовое представление об электронных схемах (например, вы прошли курс по схемотехнике для начинающих), вы можете закрепить знания на практике, собрав простейшего мобильного робота. Он не потребует знаний в программировании и будет двигаться за источником света.
Вы сможете управлять таким роботом с помощью фонарика и даже объезжать препятствия: если луч света справа — робот повернет в этом направлении. Робототехники часто используют в качестве преград банки из-под газировки и соревнуются, кто быстрее и точнее объедет роботом такую полосу препятствий. В статье Руслан Тихонов, педагог дополнительного образования и автор материалов по цифровой электронике для школьников, рассказывает, как смастерить этого робота в домашних условиях.
В этом DIY-уроке мы будем конструировать робота, которого обычно относят к категории BEAM-роботов (аббревиатура от английских слов biology, electronics, aesthetics, mechanics). В них — простые аналоговые электронные схемы вместо микроконтроллеров.

Наш робот будет мобильным: у него будут шасси с электроприводом и колеса. Для ориентации в пространстве будем использовать единственный вид датчиков — фотосенсоры, то есть датчики, реагирующие на свет. BEAM-робототехники называют таких простых роботов фототропами. Слово происходит от термина «фототропизм» (с древнегреческого: «фото» — свет, «тропизм» — поворот) — это способность изменять направление роста растений или положение тела животных в зависимости от расположения падающего света. Изгиб стебля растения в сторону солнца — пример положительного фототропизма, но бывает и отрицательный — от источника света.
Робот будет двигаться на свет, то есть станет положительным фототропом, или фотофилом, — иногда его называют «охотник за светом». Но, если внести изменения в схему робота, он сможет прятаться в темноте (быть фотофобом), двигаться за рукой или следовать по линии.
Для постройки такого робота нам понадобятся:
- платформа для крепления всех компонентов,
- два электромотора постоянного тока с редукторами и рабочим напряжением 6 вольт,
- два ведущих колеса,
- дополнительное опорное поворотное колесо,
- 4 батарейки формата АА,
- батарейный отсек 4хАА (держатель для батарей),
- микросхема L293D для управления электромоторами,
- контактная макетная плата Breadboard Half (400 групп контактов) для соединения электронных компонентов без пайки,
- фотодатчики (фототранзисторы),
- постоянные резисторы сопротивлением 220 Ом, 560 Ом, 1 кОм, 2,2 кОм, 4,7 кОм, 10 кОм (каждого номинала по 2 шт.),
- соединительные провода-перемычки,
- винты и гайки,
- инструменты: отвертка, бокорезы, пинцет.

Более подробно о выборе того или иного компонента для создания робота я расскажу далее, на соответствующих этапах постройки.
Шаг 1. Сборка шасси для робота
Тип привода, который будет использовать наш робот, — это дифференциальный привод с двумя ведущими колесами и пассивной опорой. Это самый распространенный тип привода в любительской робототехнике, также такой привод используют в разработке домашних роботов-пылесосов.
Самый простой способ — купить готовое шасси для робота на маркетплейсе или в магазине для робототехников. Мы пошли по этому пути и приобрели набор для сборки робоплатформы под названием «Шасси для конструирования 2WD-робота».

В состав комплекта входят:
- пластина из прозрачного акрила с технологическими отверстиями для установки моторов,
- два мотор-редуктора (любители робототехники их еще называют ТТ-моторами, или просто «желтые моторы с редукторами»),
- ведущие колеса,
- опорное колесо-ролик,
- держатель четырех батарей типа AA,
- провода,
- винты и гайки.
Другой вариант — сделать самодельную платформу. Вырезать пластину размером примерно 100×200 мм из акрила или фанеры, докупить колеса, TT-моторы с редуктором 1:48, держатель батарей. Но в этом случае нужно будет самостоятельно продумать крепление мотор-редукторов к пластине с помощью уголков, стяжек, клея и подобных материалов либо приобрести готовый комплект металлического крепления для ТТ-моторов.
Также можно пустить в дело моторы, колеса и шасси от старых игрушек — например, использовать гусеничное шасси. Главное, чтобы у игрушки было два мотора на противоположных сторонах корпуса, которые можно включать независимо друг от друга. Также убедитесь, что моторы игрушки поддерживают напряжение питания 6 вольт, которое мы используем в проекте.

Если вы решили самостоятельно припаять провода к моторам робота без опыта и наставника, для начала изучите материалы об основах пайки. Рекомендую комикс «Паять просто», который даст вам понимание азов пайки.
Частая ошибка новичков — недостаточное внимание к паяльному флюсу, а ведь это важный компонент в процессе припаивания проводов к моторам. Флюс нужен для удаления оксидной пленки с поверхности металла и лучшего растекания расплавленного припоя.
Для наших целей достаточно использовать недорогой жидкий флюс ЛТИ-120. Необходимо обязательно нанести его на контакты моторов, а затем залудить. Лужение — это процесс нанесения тонкого слоя расплавленного припоя на поверхность металла. Также нелишним будет еще до нанесения флюса аккуратно зачистить контакты мотора — ножом, наждачной бумагой (шкуркой) или надфилем — до блеска. Залуженными, то есть покрытыми тонким слоем припоя до начала пайки, у вас должны быть и зачищенные концы проводов. Так вы сможете легко и быстро припаять их к контактам моторов.

Еще несколько советов по пайке:
- При пайке легко повредить поверхность рабочего стола, поэтому положите на него специальный термостойкий коврик для пайки.
- Занимайтесь пайкой в хорошо проветриваемом помещении, не дышите парами флюса.
- Не забывайте о технике безопасности: наденьте защитные очки, не касайтесь нагретых частей паяльника, используйте подставку для паяльника и никогда не ловите падающий паяльник.
- Обязательно хорошо мойте руки после пайки. Свинец, который входит в состав припоя, — это яд. Держите припой подальше от маленьких детей и домашних питомцев.
- В случае ожога нужно подержать пострадавшую часть тела (обычно это пальцы рук) в течение 10 минут под струей проточной холодной воды. Важно сделать это как можно быстрее и не использовать лёд.
- Вам нужен припой ПОС-61 или аналоги с маркировкой Alloy 60/40, жидкий флюс ЛТИ-120 лучше выбрать в упаковке с кисточкой.
- Используйте паяльную станцию, с которой на сам рабочий инструмент подается безопасное напряжение, или паяльник с низким напряжением питания — до 36 вольт, мощностью 30−60 Вт.
Полезные ссылки
Ссылки на нужные компоненты, если вы решите собирать платформу самостоятельно:
Шаг 2. Управляем электромоторами
Для управления движением робота его моторы нужно включать и выключать. Делать это можно разными способами:
- Вручную, с помощью переключателей, но тогда мы получим игрушку с дистанционным управлением, а не автономного робота.
- С помощью электронных или электромеханических компонентов, которые, в свою очередь, будут управляться сигналами от датчиков, в нашем случае — от фотодатчиков.
Чаще всего для управления моторами простых роботов используют транзисторы или специальные микросхемы, так называемые драйверы моторов. Для нашего робота мы будем использовать самую популярную микросхему-драйвер — L293D. Она может управлять сразу двумя электромоторами небольшой мощности — то, что нужно. Отечественный аналог L293D — микросхема К1128КТ4АР.
Микросхема L293D включает в себя четыре токовых переключателя для управления двигателями постоянного тока. Их еще называют полумостовыми драйверами. Чтобы понять, почему «полумостовой», нужно разобраться со схемой для управления мотором под названием H-мост. На данном этапе нам схема H-моста не понадобится, мы вернемся к ней позднее, когда будем использовать микроконтроллер для управления роботом. Для тех, кто хочет знать больше уже сейчас, — ссылка с описанием схемы H-моста.
Каждый токовый переключатель имеет вход для управляющих сигналов (INPUT) и выход для подключения электромоторов (OUTPUT). Переключатели объединены попарно, и у каждой пары есть свой вход включения — ENABLE. Эти входы включения обычно используются для управления скоростью вращения электромоторов с помощью ШИМ (широтно-импульсная модуляция) от микроконтроллера.
Наша цель — собрать простейшего робота, и мы не будем ограничивать его скорость, пусть мчится вперед с максимально возможной. Поэтому соединим входы включения ENABLE напрямую с плюсом источника питания.
Также не будем менять направление вращения моторов: робот всегда будет двигаться вперед и только вперед. Так что для управления моторами нам будет достаточно двух полумостовых драйверов из четырех доступных: используем только два входа INPUT и два выхода OUTPUT.
L293D обеспечивает раздельное питание для логической части микросхемы и для моторов. Это значит, что при необходимости можно подключить электродвигатели с большим напряжением питания (но не более 36 вольт), чем питание микросхемы. Мы же будем использовать единое питание микросхемы и моторов.
Оставшиеся четыре средних вывода микросхемы соединяются с минусом питания, а также используются для отвода тепла.
Рекомендация: перепроверяйте авторов статей и обращайтесь к первоисточнику — технической документации (с англ. — datasheet) по используемым электронным компонентам.
Конечно, для простого робота, скорость и направление вращения моторов которого мы не будем менять, можно было бы обойтись и без микросхемы-драйвера — просто поставить пару транзисторов. Но так как в планах — дальнейший апгрейд робота, лучше установим электронные компоненты с заделом на будущее.
Полезные ссылки
- самый простой драйвер управления двигателями — микросхема L293D,
- техническая документация по микросхеме L293D (на английском),
- российская микросхема К1128КТ4АР.
Шаг 3. Подготовка макетной платы и перемычек
Для установки и подключения микросхемы-драйвера моторов потребуется беспаечная макетная плата формата Breadboard Half на 400 контактов. Плату нужно закрепить на платформе робота. Основание макетки сделано из самоклеящегося материала — удалите защитную пленку и приклейте плату на акриловую пластину. Макетную плату лучше разместить в передней части робота, так как, кроме микросхемы, мы разместим на ней еще и фотодатчики. Если вы не разобрались, где у робота передняя часть, то ориентируйтесь по поворотному опорному колесу — на нашей платформе оно сзади.

Для удобства использования макетки нужно соединить между собой верхние и нижние линии (шины) питания с помощью проводов-перемычек. Провода можно использовать любого цвета, главное — не ошибиться и соединить плюс питания (красная линия) с плюсом, а минус (синяя линия) — с минусом.

Где взять эти самые провода-перемычки?
Можно купить готовые — нарезанные и зачищенные — провода либо перемычки с наконечниками. А можно изготовить их самостоятельно:
- из интернет-кабеля (это так называемая витая пара, достаточно самого дешевого неэкранированного кабеля U/UTP),
- кабеля для охранной сигнализации КСПВ-0.5,
- или монтажного провода НВ-1 сечением 0,35 мм2.
Именно из провода НВ-1 изготовлены перемычки на фото робота. Для самостоятельного изготовления перемычек понадобятся обычные бокорезы или специальный инструмент — клещи для снятия изоляции, или зачистки.
Зачистка — это процесс оголения, то есть снятия изоляции, с концов проводов. Самый простой способ зачистки, требующий небольшого навыка, — с помощью бокорезов. Изоляция глубоко надрезается острыми кромками неплотно сжатых бокорезов, после чего резким движением сдергивается с провода. Главное в этом процессе — правильно подобрать усилие сжатия, чтобы надрезать изоляцию, но не перекусить провод.
Есть специальные клещи для зачистки, или стриппер, с отверстиями разного диаметра. Провод помещают в подходящее отверстие, зажимают, надрезая при этом изоляцию, и затем резко сдергивают отрезанную изоляцию. Со стриппером нет риска перекусить провод целиком.
Полезные ссылки
- про устройство беспаечной макетной платы,
- о проводе и монтаже на макетке,
- макетная плата Breadboard Half,
- набор жестких перемычек для макетной платы — 140 шт.,
- набор проводов одинаковой длины с наконечниками — 20 шт.,
- набор проводов с наконечниками различной длины — 40 шт.,
- клещи-стриппер для зачистки проводов диаметром 0,2−0,8 мм,
- кабель КCПB 0,5 мм.
Шаг 4. Сборка схемы управления моторами на макетной плате и ее тестирование
Теперь нужно установить микросхему на макетную плату так, чтобы она разместилась в средней части платы над центральной бороздой (канавкой).

При установке микросхемы важно разобраться с нумерацией ее выводов. На корпусе микросхемы есть полукруглая выемка или углубление в виде точки — это ключ, обозначающий первый вывод. Если расположить микросхему маркировкой к себе и ключом вверх, то нумерация выводов будет продолжаться от первого вывода против часовой стрелки:

Выполним соединения проводами-перемычками на макетной плате по электрической схеме ниже для тестирования моторов:

Разберемся с обозначениями на этой схеме:
- М1 и М2 — это моторы.
- VCC обозначает соединение с плюсом питания.
- GND, или рисунок утолщенной черточки, обозначает соединение с минусом питания.
- EN -— сокращенное обозначение входов включения (ENABLE), о которых мы писали выше.
К выводам 2 и 15 микросхемы (это входы для управляющих сигналов — INPUT) будут присоединены временные перемычки, устанавливаемые только на время тестирования моторов.
А вот так выглядят эти соединения на макетной плате:

Еще раз проверьте все соединения, и можно подавать питание на плату — тестировать моторы. Сначала установите робоплатформу на устойчивую подставку высотой примерно 6−10 см. Колеса должны свободно вращаться, не касаясь поверхности, чтобы робот никуда не уехал в процессе испытаний. Для подачи питания соедините красный провод от держателя батарей с плюсом питания (красная линия на макетной плате), а черный — с минусом (синяя линия).
Тестируем первый мотор. Временной перемычкой соединим вывод 2 (вход INPUT) микросхемы с плюсом питания (красная линия на макетной плате):

Колесо робота должно вращаться вперед (напомним, что сзади у робота находится третье, поворотное колесо). Если колесо вращается назад, нужно поменять полярность включения мотора. То есть поменять местами провода, которые идут от мотора к выводу 3 микросхемы и к минусу питания. Тот провод, который был подключен к выводу 3, переставить в синюю линию питания макетной платы, а провод из синей линии — переставить в тот ряд макетной платы, куда подключен вывод 3. После успешного тестирования временную перемычку между выводом 2 микросхемы и плюсом питания нужно удалить:

Затем тестируем второй мотор. Временно перемычкой соединим вывод 15 микросхемы с плюсом питания (красная линия на макетке).
Если колесо вращается назад, нужно поменять местами провода, которые идут от мотора к выводу 14 микросхемы и к минусу питания. После успешного тестирования временную перемычку между выводом 15 микросхемы и плюсом питания тоже нужно удалить.
Шаг 5. Подключаем фотодатчики
В качестве фотодатчиков нашего робота применяются фототранзисторы n-p-n-структуры. У них прозрачный корпус, чтобы проникающий свет воздействовал на полупроводник: чем больше света падает на полупроводник, тем больший ток протекает через фототранзистор.
На принципиальной электрической схеме фототранзистор изображается так:
Фототранзистор, который мы используем, внешне похож на обычный светодиод с прозрачным корпусом. Отличить его от светодиода можно с помощью мультиметра — включите его в режим измерения сопротивления. Красный провод мультиметра нужно присоединить к короткому выводу фототранзистора, а черный — к длинному. Если теперь осветить фототранзистор, например, фонариком, его сопротивление резко уменьшится — до единиц кОм или даже сотен Ом.
Фототранзисторы нужно подключить ко входам INPUT микросхемы — к выводам 2 и 15. Короткий вывод каждого фототранзистора подключается к плюсу питания, а длинный — к микросхеме. При тестировании моторов мы эти входы временно соединяли перемычками с плюсом питания. Теперь вместо перемычек у нас — фототранзисторы.

При попадании луча света на фототранзисторы их сопротивление уменьшается, а на входах INPUT появляется положительный потенциал — логическая единица. Результат аналогичен тому, что мы наблюдали при замыкании перемычками этих входов с плюсом питания: начинают вращаться моторы, робот двигается. Как только освещенность датчиков уменьшится, сопротивление фототранзисторов увеличится. И в определенный момент логическая единица на входах INPUT исчезнет, моторы перестанут вращаться — робот остановится.
Выводы микросхемы 2 и 15 (входы INPUT) также подключены к минусу питания через подтягивающие резисторы — от их сопротивления зависит чувствительность робота к свету. Чем меньше сопротивление резисторов, тем ниже будет чувствительность робота (потребуется более яркий источник света). И наоборот: чем оно будет больше, тем выше будет чувствительность.
Попробуйте для начала установить резисторы сопротивлением 1 кОм, затем при необходимости вы можете их заменить на резисторы с другим сопротивлением (об этом будет написано ниже).

Чтобы реализовать поисковый алгоритм робота по отношению к источнику света, фототранзисторы нужно подключить крест-накрест по отношению к моторам. То есть левый фотодатчик будет управлять правым мотором, а правый датчик — левым мотором:

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

Если схема собрана без ошибок, компоненты исправны, а моторы робота вращаются сразу при подаче питания на схему, значит, происходит засветка датчиков сторонним светом. Чтобы исправить ситуацию, можно сделать следующее:
- выключить искусственное освещение (лампы),
- зашторить окна,
- уменьшить чувствительность датчиков, уменьшив сопротивление резисторов (вместо 1 кОм установить резисторы 560 Ом или 220 Ом),
- надеть на фототранзисторы подходящий по диаметру отрезок черной непрозрачной трубки длиной примерно 1 см, исключив боковую засветку сенсоров.
Важно учесть, что в солнечный день управлять таким роботом с помощью фонарика на улице невозможно — будет мешать яркое солнце. Нужно найти тень или экспериментировать с роботом в помещении.

Если робот двигается только при очень близко расположенном источнике света (фонарике), буквально в паре сантиметров от датчика, можно увеличить сопротивление подтягивающих резисторов. Тогда чувствительность датчиков станет выше, и они будут реагировать на более слабое излучение света.
Полезные ссылки
- устройство, принцип работы и характеристики фототранзистора,
- фототранзистор n-p-n-структуры.
Что дальше
Итак, вы создали робота. Что еще можно интересного с ним сделать:
- попробуйте поменять полярность подключения моторов и понаблюдайте за поведением робота,
- подключите фотодатчики не крест-накрест, а так, чтобы они управляли моторами каждый со своей стороны. Тогда робот должен начать прятаться от источника света.
В статье я упоминал, что робота можно модифицировать и улучшать. Вот несколько идей:
- попробуйте научить робота двигаться на отраженный свет, например за кусочком бумаги в руке, или устроить гонку по черной линии,
- превратите его в «робокопа», добавив сине-красную полицейскую мигалку,
- сделайте дистанционное управление роботом с помощью ИК-пульта от старого телевизора,
- в конце концов, полностью замените ему «мозги», передав управление им плате Arduino.