Как делают роботов
![Как делают роботов](https://mtsonline.ru/wp-content/themes/mh-magazine-lite/images/qytehym.jpg)
Раньше такие профессии вполне имели место, и люди работали так годами. Пришло время прикрепить наш бортовой компьютер к шасси робота. Чтобы избежать заноса и скольжения, рулевое управление Аккермана спроектировано таким образом, что при повороте внутреннее колесо поворачивается на больший угол, чем внешнее. Для крепления электроники мы спроектировали и напечатали на 3D-принтере новую деталь для робота в виде панели или диска.
Когда вы будете уверены. Закрепляем на каркасе Arduino и драйвер двигателя, при этом используя стойки, винты и гайки. Макетную плату прикрепим на ее нижний липкий слой. Дальше сделаем заднее опорное колесо из бусины и скрепки рис.
![Как делают роботов](https://controleng.ru/wp-content/uploads/01_70_00-400x267.jpg)
Концы проволоки нужно закрепить суперклеем или термоклеем на нижней стороне основы рис. Спереди каркаса приклейте сервопривод на суперклей. Внимательно рассмотрите, как плата ультразвукового датчика крепится к сервоприводу с помощью маленького вала рис.
Внешний вид конечного результата вы можете посмотреть на рис. На мини макетную плату установим диод, зуммер и кнопку. Плата значительно упростит схему и позволит подключать больше новых устройств в будущем. Вставьте батарейку и нажмите на кнопку один раз, для запуска робота. Он начнет двигаться вперед. Для остановки же, нажмите еще раз. Останавливаемся и проверяем слева и справа лучший способ обхода! Если робот не двигается, просто измените контакты электромоторов на motorA1, или motorB1. Построить робота сможет даже ребенок дома по схеме, написанной вверху.
Также если вам интересно создавать роботов или у вас есть идеи по созданию новых, приглашаем вас на курсы по робототехнике. Программирование для МК мало чем отличается от программирования на компьютере, синтаксис языка такой же, большинство функций практически ничем не отличаются, а новые довольно легко освоить и ими удобно пользоваться.
Для начала наш робот будет уметь просто объезжать препятствия, то есть повторять нормальное поведение большинства животных в природе. Всё что нам потребуется для постройки такого робота можно будет найти в радиотехнических магазинах. Решим, как наш робот будет передвигаться. Самым удачным я считаю гусеницы, которые применяются в танках, это наиболее удобное решение, потому что гусеницы имеют большую проходимость, чем колёса машины и ими удобнее управлять для поворота достаточно вращать гусеницы в разные стороны.
Поэтому тебе понадобится любой игрушечный танк, у которого гусеницы вращаются независимо друг от друга, такой можно купить в любом магазине игрушек по разумной цене.
От этого танка тебе понадобится только платформа с гусеницами и моторы с редукторами, остальное ты можешь смело открутить и выкинуть. Так же нам потребуется микроконтроллер, мой выбор пал на ATmega16 — у него достаточно портов для подключения датчиков и периферии и вообще он довольно удобный. Ещё тебе потребуется закупить немного радиодеталей, паяльник, мультиметр. В нашем случае микроконтроллер будет выполнять функции мозга, но начнём мы не с него, а с питания мозга робота.
Правильное питание — залог здоровья, поэтому мы начнём с того, как правильно кормить нашего робота, потому что на этом обычно ошибаются начинающие роботостроители. А для того, чтобы наш робот работал нормально нужно использовать стабилизатор напряжения. Я предпочитаю микросхему L — она предназначена, чтобы на выходе выдавать стабильное напряжение 5В, которое и нужно нашему микроконтроллеру.
Но из-за того, что падение напряжения на этой микросхеме составляет порядка 2,5В к нему нужно подавать минимум 7,5В. Вместе с этим стабилизатором используются электролитические конденсаторы, чтобы сгладить пульсации напряжения и в цепь обязательно включают диод, для защиты от переполюсовки. Теперь мы можем заняться нашим микроконтроллером. Рассмотрим несколько важных узлов. Иначе твой МК может непреднамеренно сбрасываться или, проще говоря — глючить.
На схеме ты так же можешь увидеть электролит на мкФ, он спасает от провалов напряжения при работе двигателей, что тоже благоприятно скажется на работе микроконтроллера.
![Как делают роботов](https://steamspace.com.ua/wp-content/uploads/yak-zrobyty-robota-svoyimy-rukamy-krashchi-porady-scaled.jpg)
О том, как прошивать МК, я рассказывать не буду, так как об этом можно прочитать в интернете. Это довольно удобная среда и полезна новичкам, потому что имеет встроенный мастер создания кода. Не менее важным компонентом в нашем роботе является драйвер двигателей, который облегчает нам задачу в управлении им. Никогда и ни в коем случае нельзя подключать двигатели напрямую к МК!
Вообще мощными нагрузками нельзя управлять с микроконтроллера напрямую, иначе он сгорит. Пользуйтесь ключевыми транзисторами. Для нашего случая есть специальная микросхема — LD. В подобных несложных проектах всегда старайтесь использовать именно эту микросхему с индексом «D», так как она имеет встроенные диоды для защиты от перегрузок. Этой микросхемой очень легко управлять и её просто достать в радиотехнических магазинах.
Мы будем использовать в корпусе DIP из-за удобства монтажа на плате. LD имеет раздельное питание двигателей и логики. Поэтому саму микросхему мы будем питать от стабилизатора вход VSS , а двигатели напрямую от аккумуляторов вход VS.
LD выдерживает нагрузку мА на каждый канал, а этих каналов у неё два, то есть к одной микросхеме можно подключить два двигателя. Но, чтобы перестраховаться, мы объединим каналы, и тогда потребуется по одной микре на каждый двигатель. Отсюда следует, что LD сможет выдержать 1. Чтобы этого добиться нужно объединить ноги микры, как показано на схеме. Микросхема работает следующим образом: когда на IN1 и IN2 подаётся логический «0», а на IN3 и IN4 логическая единица, то двигатель вращается в одну сторону, а если инвертировать сигналы — подать логический ноль, тогда двигатель начнёт вращаться в другую сторону.
Выводы EN1 и EN2 отвечают за включение каждого канала. Их мы соединяем и подключаем к «плюсу» питания от стабилизатора.
![Как делают роботов](https://cs7.pikabu.ru/post_img/big/2019/01/29/4/1548737614185718784.jpg)
Так как микросхема греется во время работы, а установка радиаторов проблематична на этот тип корпуса, то отвод тепла обеспечивается ногами GND — их лучше распаивать на широкой контактной площадке. Вот и всё, что на первое время тебе нужно знать о драйверах двигателей. Чтобы наш робот мог ориентироваться и не врезался во всё, мы установим на него два инфракрасных датчика. Самый простейший датчик состоит из ик-диода, который излучает в инфракрасном спектре и фототранзистор, который будет принимать сигнал с ик-диода.
Принцип такой: когда перед датчиком нет преграды, то ик-лучи не попадают на фототранзистор и он не открывается.
Если перед датчиком препятствие, тогда лучи от него отражаются и попадают на транзистор — он открывается и начинает течь ток. Недостаток таких датчиков в том, что они могут по-разному реагировать на различные поверхности и не защищены от помех — от посторонних сигналов других устройств датчик, случайно, может сработать.
От помех может защитить модулирование сигнала, но пока мы этим заморачиватся не будем. Для начала, и этого хватит. Чтобы оживить робота, для него нужно написать прошивку, то есть программу, которая бы снимала показания с датчиков и управляла двигателями. Моя программа наиболее проста, она не содержит сложных конструкций и всем будет понятна. Следующие две строки подключают заголовочные файлы для нашего микроконтроллера и команды для формирования задержек:.
Следующие строки условные, потому что значения PORTC зависят от того, как ты подключил драйвер двигателей к своему микроконтроллеру:. Если на фототранзистор попадает свет от ик-диода, то на ноге микроконтроллера устанавливается лог.
Так как у нас два датчика, то мы проверяем наличие преграды два раза — справа и слева и потому можем узнать с какой стороны препятствие. Я рассмотрел большинство аспектов, которые помогут тебе собрать твоего первого робота. Но на этом робототехника не заканчивается. Если ты соберёшь этого робота, то у тебя появится куча возможностей для его расширения. Можно усовершенствовать алгоритм робота, как например, что делать, если препятствие не с какой-то стороны, а прямо перед роботом.
Так же не помешает установить энкодер — простое устройство, которое поможет точно располагать и знать расположение твоего робота в пространстве. Для наглядности возможна установка цветного или монохромного дисплея, который может показывать полезную информацию — уровень заряда аккумулятора, расстояние до препятствия, различную отладочную информацию. Не помешает и усовершенствование датчиков — установка TSOP это ик-приёмники, которые воспринимают сигнал только определённой частоты вместо обычных фототранзисторов.
Помимо инфракрасных датчиков существуют ультразвуковые, стоят подороже, и тоже не лишены недостатков, но в последнее время набирают популярность у роботостроителей. Для того, чтобы робот мог реагировать на звук, было бы неплохо установить микрофоны с усилителем.
Но по-настоящему интересным, я считаю, установка камеры и программирование на её основе машинного зрения.