Как сделать настоящего робота в домашних условиях. Как сделать робота в домашних условиях для ребенка? ресурсов для начинающего робототехника
Наверняка, насмотревшись фильмов про роботов, тебе не раз хотелось построить своего боевого товарища, но ты не знал с чего начать. Конечно, у тебя не получится построить двуногого терминатора, но мы и не стремимся к этому. Собрать простого робота может любой, кто умеет правильно держать паяльник в руках и для этого не нужно глубоких знаний, хотя они и не помешают. Любительское роботостроение мало чем отличается от схемотехники, только гораздо интереснее, потому что тут так же затронуты такие области, как механика и программирование. Все компоненты легкодоступны и стоят не так уж и дорого. Так что прогресс не стоит на месте, и мы будем его использовать в свою пользу.
Введение
Итак. Что же такое робот? В большинстве случаев это автоматическое устройство, которое реагирует на какие-либо действия окружающей среды. Роботы могут управляться человеком или выполнять заранее запрограммированные действия. Обычно на роботе располагают разнообразные датчики (расстояния, угла поворота, ускорения), видеокамеры, манипуляторы. Электронная часть робота состоит из микроконтроллера (МК) – микросхема, в которую заключён процессор, тактовый генератор, различная периферия, оперативная и постоянная память. В мире существует огромное количество разнообразных микроконтроллеров для разных областей применения и на их основе можно собирать мощных роботов. Для любительских построек широкое применение нашли микроконтроллеры AVR. Они, на сегодняшний день, самые доступные и в интернете можно найти много примеров на основе этих МК. Чтобы работать с микроконтроллерами тебе нужно уметь программировать на ассемблере или на Cи и иметь начальные знания в цифровой и аналоговой электронике. В нашем проекте мы будем использовать Cи. Программирование для МК мало чем отличается от программирования на компьютере, синтаксис языка такой же, большинство функций практически ничем не отличаются, а новые довольно легко освоить и ими удобно пользоваться.Что нам нужно
Для начала наш робот будет уметь просто объезжать препятствия, то есть повторять нормальное поведение большинства животных в природе. Всё что нам потребуется для постройки такого робота можно будет найти в радиотехнических магазинах. Решим, как наш робот будет передвигаться. Самым удачным я считаю гусеницы, которые применяются в танках, это наиболее удобное решение, потому что гусеницы имеют большую проходимость, чем колёса машины и ими удобнее управлять (для поворота достаточно вращать гусеницы в разные стороны). Поэтому тебе понадобится любой игрушечный танк, у которого гусеницы вращаются независимо друг от друга, такой можно купить в любом магазине игрушек по разумной цене. От этого танка тебе понадобится только платформа с гусеницами и моторы с редукторами, остальное ты можешь смело открутить и выкинуть. Так же нам потребуется микроконтроллер, мой выбор пал на ATmega16 – у него достаточно портов для подключения датчиков и периферии и вообще он довольно удобный. Ещё тебе потребуется закупить немного радиодеталей, паяльник, мультиметр.Делаем плату с МК
Схема робота
В нашем случае микроконтроллер будет выполнять функции мозга, но начнём мы не с него, а с питания мозга робота. Правильное питание – залог здоровья, поэтому мы начнём с того, как правильно кормить нашего робота, потому что на этом обычно ошибаются начинающие роботостроители. А для того, чтобы наш робот работал нормально нужно использовать стабилизатор напряжения. Я предпочитаю микросхему L7805 – она предназначена, чтобы на выходе выдавать стабильное напряжение 5В, которое и нужно нашему микроконтроллеру. Но из-за того, что падение напряжения на этой микросхеме составляет порядка 2,5В к нему нужно подавать минимум 7,5В. Вместе с этим стабилизатором используются электролитические конденсаторы, чтобы сгладить пульсации напряжения и в цепь обязательно включают диод, для защиты от переполюсовки.
Теперь мы можем заняться нашим микроконтроллером. Корпус у МК - DIP (так удобнее паять) и имеет сорок выводов. На борту имеется АЦП, ШИМ, USART и много другого, что мы пока использовать не будем. Рассмотрим несколько важных узлов. Вывод RESET (9-ая нога МК) подтянут резистором R1 к «плюсу» источника питания – это нужно делать обязательно! Иначе твой МК может непреднамеренно сбрасываться или, проще говоря – глючить. Так же желательной мерой, но не обязательной является подключение RESET’а через керамический конденсатор C1 к «земле». На схеме ты так же можешь увидеть электролит на 1000 мкФ, он спасает от провалов напряжения при работе двигателей, что тоже благоприятно скажется на работе микроконтроллера. Кварцевый резонатор X1 и конденсаторы C2, C3 нужно располагать как можно ближе к выводам XTAL1 и XTAL2.
О том, как прошивать МК, я рассказывать не буду, так как об этом можно прочитать в интернете. Писать программу мы будем на Cи, в качестве среды программирования я выбрал CodeVisionAVR. Это довольно удобная среда и полезна новичкам, потому что имеет встроенный мастер создания кода.
Плата моего робота
Управление двигателями
Не менее важным компонентом в нашем роботе является драйвер двигателей, который облегчает нам задачу в управлении им. Никогда и ни в коем случае нельзя подключать двигатели напрямую к МК! Вообще мощными нагрузками нельзя управлять с микроконтроллера напрямую, иначе он сгорит. Пользуйтесь ключевыми транзисторами. Для нашего случая есть специальная микросхема – L293D. В подобных несложных проектах всегда старайтесь использовать именно эту микросхему с индексом «D», так как она имеет встроенные диоды для защиты от перегрузок. Этой микросхемой очень легко управлять и её просто достать в радиотехнических магазинах. Она выпускается в двух корпусах DIP и SOIC. Мы будем использовать в корпусе DIP из-за удобства монтажа на плате. L293D имеет раздельное питание двигателей и логики. Поэтому саму микросхему мы будем питать от стабилизатора (вход VSS), а двигатели напрямую от аккумуляторов (вход VS). L293D выдерживает нагрузку 600 мА на каждый канал, а этих каналов у неё два, то есть к одной микросхеме можно подключить два двигателя. Но, чтобы перестраховаться, мы объединим каналы, и тогда потребуется по одной микре на каждый двигатель. Отсюда следует, что L293D сможет выдержать 1.2 А. Чтобы этого добиться нужно объединить ноги микры, как показано на схеме. Микросхема работает следующим образом: когда на IN1 и IN2 подаётся логический «0», а на IN3 и IN4 логическая единица, то двигатель вращается в одну сторону, а если инвертировать сигналы – подать логический ноль, тогда двигатель начнёт вращаться в другую сторону. Выводы EN1 и EN2 отвечают за включение каждого канала. Их мы соединяем и подключаем к «плюсу» питания от стабилизатора. Так как микросхема греется во время работы, а установка радиаторов проблематична на этот тип корпуса, то отвод тепла обеспечивается ногами GND - их лучше распаивать на широкой контактной площадке. Вот и всё, что на первое время тебе нужно знать о драйверах двигателей.Датчики препятствий
Чтобы наш робот мог ориентироваться и не врезался во всё, мы установим на него два инфракрасных датчика. Самый простейший датчик состоит из ик-диода, который излучает в инфракрасном спектре и фототранзистор, который будет принимать сигнал с ик-диода. Принцип такой: когда перед датчиком нет преграды, то ик-лучи не попадают на фототранзистор и он не открывается. Если перед датчиком препятствие, тогда лучи от него отражаются и попадают на транзистор – он открывается и начинает течь ток. Недостаток таких датчиков в том, что они могут по-разному реагировать на различные поверхности и не защищены от помех - от посторонних сигналов других устройств датчик, случайно, может сработать. От помех может защитить модулирование сигнала, но пока мы этим заморачиватся не будем. Для начала, и этого хватит.
Первый вариант датчиков моего робота
Прошивка робота
Чтобы оживить робота, для него нужно написать прошивку, то есть программу, которая бы снимала показания с датчиков и управляла двигателями. Моя программа наиболее проста, она не содержит сложных конструкций и всем будет понятна. Следующие две строки подключают заголовочные файлы для нашего микроконтроллера и команды для формирования задержек:
#include
#include
Следующие строки условные, потому что значения PORTC зависят от того, как ты подключил драйвер двигателей к своему микроконтроллеру:
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 1;
PORTC.3 = 0;
Значение 0xFF означает, что на выходе будет лог. «1», а 0x00 – лог. «0».
Следующей конструкцией мы проверяем, есть ли перед роботом препятствие и с какой оно стороны:
If (!(PINB & (1<
...
}
Если на фототранзистор попадает свет от ик-диода, то на ноге микроконтроллера устанавливается лог. «0» и робот начинает движение назад, чтобы отъехать от препятствия, потом разворачивается, чтобы снова не столкнуться с преградой и затем опять едет вперёд. Так как у нас два датчика, то мы проверяем наличие преграды два раза – справа и слева и потому можем узнать с какой стороны препятствие. Команда «delay_ms(1000)» указывает на то, что пройдёт одна секунда, прежде чем начнёт выполняться следующая команда.
Заключение
Я рассмотрел большинство аспектов, которые помогут тебе собрать твоего первого робота. Но на этом робототехника не заканчивается. Если ты соберёшь этого робота, то у тебя появится куча возможностей для его расширения. Можно усовершенствовать алгоритм робота, как например, что делать, если препятствие не с какой-то стороны, а прямо перед роботом. Так же не помешает установить энкодер – простое устройство, которое поможет точно располагать и знать расположение твоего робота в пространстве. Для наглядности возможна установка цветного или монохромного дисплея, который может показывать полезную информацию – уровень заряда аккумулятора, расстояние до препятствия, различную отладочную информацию. Не помешает и усовершенствование датчиков – установка TSOP (это ик-приёмники, которые воспринимают сигнал только определённой частоты) вместо обычных фототранзисторов. Помимо инфракрасных датчиков существуют ультразвуковые, стоят подороже, и тоже не лишены недостатков, но в последнее время набирают популярность у роботостроителей. Для того, чтобы робот мог реагировать на звук, было бы неплохо установить микрофоны с усилителем. Но по-настоящему интересным, я считаю, установка камеры и программирование на её основе машинного зрения. Есть набор специальных библиотек OpenCV, с помощью которых можно запрограммировать распознавание лиц, движения по цветным маякам и много всего интересного. Всё зависит только от твоей фантазии и умений.Список компонентов:
- ATmega16 в корпусе DIP-40>
- L7805 в корпусе TO-220
- L293D в корпусе DIP-16 х2 шт.
- резисторы мощностью 0,25 Вт номиналами: 10 кОм х1 шт., 220 Ом х4 шт.
- конденсаторы керамические: 0.1 мкФ, 1 мкФ, 22 пФ
- конденсаторы электролитические: 1000 мкФ х 16 В, 220 мкФ х 16В х2 шт.
- диод 1N4001 или 1N4004
- кварцевый резонатор на 16 МГц
- ИК-диоды: подойдут любые в количестве двух штук.
- фототранзисторы, тоже любые, но реагирующие только на длину волны ик-лучей
Код прошивки:
/*****************************************************Прошивка для робота
Тип МК: ATmega16
Тактовая частота: 16,000000 MHz
Если у тебя частота кварца другая, то это нужно указать в настройках среды:
Project -> Configure -> Закладка "C Compiler"
*****************************************************/
#include
#include
Void main(void)
{
//Настраиваем порты на вход
//Через эти порты мы получаем сигналы от датчиков
DDRB=0x00;
//Включаем подтягивающие резисторы
PORTB=0xFF;
//Настраиваем порты на выход
//Через эти порты мы управляем двигателями
DDRC=0xFF;
//Главный цикл программы. Здесь мы считываем значения с датчиков
//и управляем двигателями
while (1)
{
//Едем вперёд
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 1;
PORTC.3 = 0;
if (!(PINB & (1<
//Едем назад 1 секунду
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 0;
PORTC.3 = 1;
delay_ms(1000);
//Заворачиваем
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 0;
PORTC.3 = 1;
delay_ms(1000);
}
if (!(PINB & (1<
//Едем назад 1 секунду
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 0;
PORTC.3 = 1;
delay_ms(1000);
//Заворачиваем
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 1;
PORTC.3 = 0;
delay_ms(1000);
}
};
}
О моём роботе
В данный момент мой робот практически завершён.На нём установлена беспроводная камера, датчик расстояния (и камера и этот датчик установлены на поворотной башне), датчик препятствия, энкодер, приёмник сигналов с пульта и интерфейс RS-232 для соединения с компьютером. Работает в двух режимах: автономном и ручном (принимает сигналы управления с пульта ДУ), камера также может включаться/выключаться дистанционно или самим роботом для экономии заряда батарей. Пишу прошивку для охраны квартиры (передача изображения на компьютер, обнаружение движений, объезд помещения).
По пожеланиям выкладываю видео:
UPD. Перезалил фотографии и сделал небольшие поправки в тексте.
На полках современных магазинов для детей можно найти большое количество разнообразных игрушек. И каждый ребенок просит родителей купить ему ту или иную игрушечную "обновку". А если в планирование семейного бюджета не входит это? В целях экономии можно попробовать сделать новую игрушку самостоятельно. К примеру, как сделать робота в домашних условиях, возможно ли это? Да вполне возможно, достаточно подготовить необходимые материалы.
Можно ли собрать робота самостоятельно?
Сейчас сложно кого-то удивить игрушкой-роботом. Современная технологическая и компьютерная индустрия шагнула далеко вперед. Но все же вас может удивить информация о том, как сделать простого робота в домашних условиях.
Бесспорно, сложно понять принцип работы различных микросхем, электроники, программ и конструкций. Сложно обойтись в данном случае без базовых знаний в области физики, программирования и электроники. Даже несмотря на это, каждому человеку по силам собрать робота самостоятельно.
Роботом называется автоматизированная машина, которая способна выполнять различные действия. В случае с самодельным роботом достаточно и того, что машина просто передвигается.
Облегчить сборку помогут подручные средства: телефонная трубка, пластиковая бутылка или тарелка, зубная щетка, старый фотоаппарат или компьютерная мышь.
Вибрирующий жучок
Как сделать маленького робота? В домашних условиях можно изготовить наипростейший вариант вибрирующего жучка. Необходимо запастись следующими материалами:
- мотором от старой детской машинки;
- литиевой батарейкой серии CR-2032, похожей на таблетку;
- держателем для этой самой таблетки;
- скрепками;
- изолентой;
- паяльником;
- светодиодом.
Сначала необходимо обмотать светодиод изолентой, оставив при этом свободные кончики. Паяльником спаиваем один светодиодный конец с задней стенкой держателя для батарейки. Оставшийся кончик спаиваем с контактом моторчика от машинки. Скрепки будут служить лапками для вибрирующего жучка. Проводки от держателя для батарейки соединяются с проводами моторчика. Жучок будет вибрировать и двигаться после контакта держателя с самой батарейкой.
Щеткабот - детская забава
Итак, как сделать мини-робота в домашних условиях? Забавную машину можно собрать из подручных материалов, таких как зубная щетка (головка), двусторонний скотч и вибромоторчик от старого мобильника. Достаточно приклеить моторчик к головке щетки, и все - робот готов.
Электропитание появится благодаря плоской батарейке. Для дистанционного управления придется что-нибудь придумать.
Картонный робот
Как сделать робота в домашних условиях, если его требует ребенок? Можно придумать интересную игрушку из простого картона.
Необходимо запастись:
- двумя картонными коробками;
- 20 крышками от пластиковых бутылок;
- проволокой;
- скотчем.
Бывает, что папа хочет смастерить этакую диковину для малыша, но в голову не приходит ничего толкового. Поэтому можно подумать, как сделать настоящего робота в домашних условиях.
Для начала необходимо использовать коробку в качестве туловища для робота и вырезать у нее дно. Затем нужно сделать 5 отверстий: под голову, для рук и ног. В коробке, предназначенной для головы, нужно сделать одно отверстие, которое поможет соединить ее с туловищем. Для скрепления частей робота используется проволока.
После присоединения головы нужно подумать, как сделать руку робота в домашних условиях. Для этого в боковые отверстия просовывается проволока, на которую надеваются пластиковые крышки. Получаем подвижные руки. Так же поступаем и с ногами. Сделать отверстия в крышках можно шилом.
Для устойчивости картонного робота необходимо пристальное внимание уделить срезам. Именно они придают игрушке хороший внешний вид. Сложно соединить все части при неправильной линии среза.
Если вы решили склеить между собой коробки, то не переусердствуйте с количеством клея. Лучше пользоваться прочным картоном или бумагой.
Простейший робот
Как сделать легкого робота в домашних условиях? Сложно создать полноценную автоматизированную машину, а вот минимальную конструкцию собрать все-таки можно. Рассмотрим простейший механизм, который, к примеру, сможет совершать определенные действия в одной зоне. Понадобятся следующие материалы:
Пластиковая тарелка.
Пара щеток среднего размера для чистки обуви.
Компьютерные вентиляторы в количестве двух штук.
Разъем для батарейки 9-в и сама батарея.
Хомут и стяжка с функцией защелкивания.
Просверливаем в тарелке для щеток два отверстия с одинаковым расстоянием. Крепим их. Щетки должны располагаться на одинаковом расстоянии от друг друга и середины тарелки. С помощью гаек прикрепляем к щеткам регулировочное крепление. В среднее расположение устанавливаем ползунки от креплений. Для движений робота необходимо использовать компьютерные вентиляторы. Они подключаются к батарейке и параллельно размещаются, чтобы обеспечить вращение машины. Это будет некий вибрационный моторчик. В завершение необходимо накинуть клеммы.
В данном случае не потребуется больших финансовых затрат или какого-либо технического или компьютерного опыта, ведь здесь подробно описано, как сделать робота в домашних условиях. Достать необходимые детали нетрудно. Для улучшения двигательных функций конструкции можно использовать микроконтроллеры или дополнительные моторчики.
Робот, как в рекламе
Наверно, многим знаком рекламный ролик браузера, в котором главным героем является небольшой робот, крутящийся и рисующий фломастерами фигуры на бумаге. Как сделать робота в домашних условиях из этой рекламы? Да очень просто. Для создания такой автоматизированной милой игрушки необходимо запастись:
- тремя фломастерами;
- плотным картоном или пластиком;
- моторчиком;
- круглой батарейкой;
- фольгой или изолентой;
- клеем.
Итак, создаем форму для робота из пластика или картона (точнее, вырезаем). Необходимо сделать треугольную форму с закругленными углами. В каждом уголке проделываем небольшое отверстие, в которое сможет пролезть фломастер. Одно отверстие делаем вблизи центра треугольника для моторчика. Получаем 4 отверстия по всему периметру треугольной формы.
Затем вставляем по очереди фломастеры в проделанные отверстия. К моторчику необходимо прикрепить батарейку. Сделать это можно с помощью клея и фольги или изоленты. Для того чтобы моторчик крепко держался на роботе, необходимо зафиксировать его небольшим количеством клея.
Робот будет двигаться лишь после присоединения второго проводка к закрепленной батарейке.
Робот из "Лего"
"Лего" - серия игрушек для детей, которая состоит в основном из деталей конструктора, соединяющихся в один элемент. Детали можно комбинировать, при этом создавая все новые и новые предметы для игр.
Собирать подобный конструктор любят практически все дети от 3 до 10 лет. В особенности детский интерес увеличивается, если из деталей можно собрать робота. Итак, чтобы собрать двигающиегося робота из "Лего", необходимо приготовить детали, а также миниатюрный мотор и блок управления.
К тому же сейчас продаются готовые наборы с деталями, позволяющие собрать самостоятельно любого робота. Главное - освоить приложенную инструкцию. К примеру:
- готовим детали, как указано в инструкции;
- прикручиваем колеса, если они есть;
- собираем крепления, которые будут служить поддержкой для моторчика;
- вставляем в специальный блок батарейку или даже несколько;
- устанавливаем двигатель;
- подключаем его к мотору;
- загружаем в память конструкции специальную программу, которая позволяет управлять игрушкой.
Казалось бы, робота собрать довольно сложно, а уж человеку без определенных знаний это вообще не удастся. Но это не так. Конечно трудно соорудить полноценную автоматизированную машину, но простейший вариант сделать может каждый. Достаточно прочитать нашу статью о том, как сделать робота в домашних условиях.
Сделать робота очень просто Давайте разберемся, что же потребуется чтобы создать робота в домашних условиях, для того чтобы понять основы робототехники .
Наверняка, насмотревшись фильмов про роботов, тебе не раз хотелось построить своего боевого товарища, но ты не знал с чего начать. Конечно, у тебя не получится построить двуногого терминатора, но мы и не стремимся к этому. Собрать простого робота может любой, кто умеет правильно держать паяльник в руках и для этого не нужно глубоких знаний, хотя они и не помешают. Любительское роботостроение мало чем отличается от схемотехники, только гораздо интереснее, потому что тут так же затронуты такие области, как механика и программирование. Все компоненты легкодоступны и стоят не так уж и дорого. Так что прогресс не стоит на месте, и мы будем его использовать в свою пользу.
Введение
Итак. Что же такое робот? В большинстве случаев это автоматическое устройство, которое реагирует на какие-либо действия окружающей среды. Роботы могут управляться человеком или выполнять заранее запрограммированные действия. Обычно на роботе располагают разнообразные датчики (расстояния, угла поворота, ускорения), видеокамеры, манипуляторы. Электронная часть робота состоит из микроконтроллера (МК) - микросхема, в которую заключён процессор, тактовый генератор, различная периферия, оперативная и постоянная память. В мире существует огромное количество разнообразных микроконтроллеров для разных областей применения и на их основе можно собирать мощных роботов. Для любительских построек широкое применение нашли микроконтроллеры AVR. Они, на сегодняшний день, самые доступные и в интернете можно найти много примеров на основе этих МК. Чтобы работать с микроконтроллерами тебе нужно уметь программировать на ассемблере или на Cи и иметь начальные знания в цифровой и аналоговой электронике. В нашем проекте мы будем использовать Cи. Программирование для МК мало чем отличается от программирования на компьютере, синтаксис языка такой же, большинство функций практически ничем не отличаются, а новые довольно легко освоить и ими удобно пользоваться.
Что нам нужно
Для начала наш робот будет уметь просто объезжать препятствия, то есть повторять нормальное поведение большинства животных в природе. Всё что нам потребуется для постройки такого робота можно будет найти в радиотехнических магазинах. Решим, как наш робот будет передвигаться. Самым удачным я считаю гусеницы, которые применяются в танках, это наиболее удобное решение, потому что гусеницы имеют большую проходимость, чем колёса машины и ими удобнее управлять (для поворота достаточно вращать гусеницы в разные стороны). Поэтому тебе понадобится любой игрушечный танк, у которого гусеницы вращаются независимо друг от друга, такой можно купить в любом магазине игрушек по разумной цене. От этого танка тебе понадобится только платформа с гусеницами и моторы с редукторами, остальное ты можешь смело открутить и выкинуть. Так же нам потребуется микроконтроллер, мой выбор пал на ATmega16 - у него достаточно портов для подключения датчиков и периферии и вообще он довольно удобный. Ещё тебе потребуется закупить немного радиодеталей, паяльник, мультиметр.
Делаем плату с МК
В нашем случае микроконтроллер будет выполнять функции мозга, но начнём мы не с него, а с питания мозга робота. Правильное питание - залог здоровья, поэтому мы начнём с того, как правильно кормить нашего робота, потому что на этом обычно ошибаются начинающие роботостроители. А для того, чтобы наш робот работал нормально нужно использовать стабилизатор напряжения. Я предпочитаю микросхему L7805 - она предназначена, чтобы на выходе выдавать стабильное напряжение 5В, которое и нужно нашему микроконтроллеру. Но из-за того, что падение напряжения на этой микросхеме составляет порядка 2,5В к нему нужно подавать минимум 7,5В. Вместе с этим стабилизатором используются электролитические конденсаторы, чтобы сгладить пульсации напряжения и в цепь обязательно включают диод, для защиты от переполюсовки.
Теперь мы можем заняться нашим микроконтроллером. Корпус у МК — DIP (так удобнее паять) и имеет сорок выводов. На борту имеется АЦП, ШИМ, USART и много другого, что мы пока использовать не будем. Рассмотрим несколько важных узлов. Вывод RESET (9-ая нога МК) подтянут резистором R1 к «плюсу» источника питания - это нужно делать обязательно! Иначе твой МК может непреднамеренно сбрасываться или, проще говоря - глючить. Так же желательной мерой, но не обязательной является подключение RESET’а через керамический конденсатор C1 к «земле». На схеме ты так же можешь увидеть электролит на 1000 мкФ, он спасает от провалов напряжения при работе двигателей, что тоже благоприятно скажется на работе микроконтроллера. Кварцевый резонатор X1 и конденсаторы C2, C3 нужно располагать как можно ближе к выводам XTAL1 и XTAL2.
О том, как прошивать МК, я рассказывать не буду, так как об этом можно прочитать в интернете. Писать программу мы будем на Cи, в качестве среды программирования я выбрал CodeVisionAVR. Это довольно удобная среда и полезна новичкам, потому что имеет встроенный мастер создания кода.
Управление двигателями
Не менее важным компонентом в нашем роботе является драйвер двигателей, который облегчает нам задачу в управлении им. Никогда и ни в коем случае нельзя подключать двигатели напрямую к МК! Вообще мощными нагрузками нельзя управлять с микроконтроллера напрямую, иначе он сгорит. Пользуйтесь ключевыми транзисторами. Для нашего случая есть специальная микросхема - L293D. В подобных несложных проектах всегда старайтесь использовать именно эту микросхему с индексом «D», так как она имеет встроенные диоды для защиты от перегрузок. Этой микросхемой очень легко управлять и её просто достать в радиотехнических магазинах. Она выпускается в двух корпусах DIP и SOIC. Мы будем использовать в корпусе DIP из-за удобства монтажа на плате. L293D имеет раздельное питание двигателей и логики. Поэтому саму микросхему мы будем питать от стабилизатора (вход VSS), а двигатели напрямую от аккумуляторов (вход VS). L293D выдерживает нагрузку 600 мА на каждый канал, а этих каналов у неё два, то есть к одной микросхеме можно подключить два двигателя. Но, чтобы перестраховаться, мы объединим каналы, и тогда потребуется по одной микре на каждый двигатель. Отсюда следует, что L293D сможет выдержать 1.2 А. Чтобы этого добиться нужно объединить ноги микры, как показано на схеме. Микросхема работает следующим образом: когда на IN1 и IN2 подаётся логический «0», а на IN3 и IN4 логическая единица, то двигатель вращается в одну сторону, а если инвертировать сигналы - подать логический ноль, тогда двигатель начнёт вращаться в другую сторону. Выводы EN1 и EN2 отвечают за включение каждого канала. Их мы соединяем и подключаем к «плюсу» питания от стабилизатора. Так как микросхема греется во время работы, а установка радиаторов проблематична на этот тип корпуса, то отвод тепла обеспечивается ногами GND — их лучше распаивать на широкой контактной площадке. Вот и всё, что на первое время тебе нужно знать о драйверах двигателей.
Датчики препятствий
Чтобы наш робот мог ориентироваться и не врезался во всё, мы установим на него два инфракрасных датчика. Самый простейший датчик состоит из ик-диода, который излучает в инфракрасном спектре и фототранзистор, который будет принимать сигнал с ик-диода. Принцип такой: когда перед датчиком нет преграды, то ик-лучи не попадают на фототранзистор и он не открывается. Если перед датчиком препятствие, тогда лучи от него отражаются и попадают на транзистор - он открывается и начинает течь ток. Недостаток таких датчиков в том, что они могут по-разному реагировать на различные поверхности и не защищены от помех — от посторонних сигналов других устройств датчик, случайно, может сработать. От помех может защитить модулирование сигнала, но пока мы этим заморачиватся не будем. Для начала, и этого хватит.
Прошивка робота
Чтобы оживить робота, для него нужно написать прошивку, то есть программу, которая бы снимала показания с датчиков и управляла двигателями. Моя программа наиболее проста, она не содержит сложных конструкций и всем будет понятна. Следующие две строки подключают заголовочные файлы для нашего микроконтроллера и команды для формирования задержек:
#include
#include
Следующие строки условные, потому что значения PORTC зависят от того, как ты подключил драйвер двигателей к своему микроконтроллеру:
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 1;
PORTC.3 = 0;
Значение 0xFF означает, что на выходе будет лог. «1», а 0x00 - лог. «0».
Следующей конструкцией мы проверяем, есть ли перед роботом препятствие и с какой оно стороны:
if (!(PINB & (1< Если на фототранзистор попадает свет от ик-диода, то на ноге микроконтроллера устанавливается лог. «0» и робот начинает движение назад, чтобы отъехать от препятствия, потом разворачивается, чтобы снова не столкнуться с преградой и затем опять едет вперёд. Так как у нас два датчика, то мы проверяем наличие преграды два раза - справа и слева и потому можем узнать с какой стороны препятствие. Команда «delay_ms(1000)» указывает на то, что пройдёт одна секунда, прежде чем начнёт выполняться следующая команда. Я рассмотрел большинство аспектов, которые помогут тебе собрать твоего первого робота. Но на этом робототехника не заканчивается. Если ты соберёшь этого робота, то у тебя появится куча возможностей для его расширения. Можно усовершенствовать алгоритм робота, как например, что делать, если препятствие не с какой-то стороны, а прямо перед роботом. Так же не помешает установить энкодер - простое устройство, которое поможет точно располагать и знать расположение твоего робота в пространстве. Для наглядности возможна установка цветного или монохромного дисплея, который может показывать полезную информацию - уровень заряда аккумулятора, расстояние до препятствия, различную отладочную информацию. Не помешает и усовершенствование датчиков - установка TSOP (это ик-приёмники, которые воспринимают сигнал только определённой частоты) вместо обычных фототранзисторов. Помимо инфракрасных датчиков существуют ультразвуковые, стоят подороже, и тоже не лишены недостатков, но в последнее время набирают популярность у роботостроителей. Для того, чтобы робот мог реагировать на звук, было бы неплохо установить микрофоны с усилителем. Но по-настоящему интересным, я считаю, установка камеры и программирование на её основе машинного зрения. Есть набор специальных библиотек OpenCV, с помощью которых можно запрограммировать распознавание лиц, движения по цветным маякам и много всего интересного. Всё зависит только от твоей фантазии и умений. Список компонентов: ATmega16 в корпусе DIP-40> L7805 в корпусе TO-220 L293D в корпусе DIP-16 х2 шт. резисторы мощностью 0,25 Вт номиналами: 10 кОм х1 шт., 220 Ом х4 шт. конденсаторы керамические: 0.1 мкФ, 1 мкФ, 22 пФ конденсаторы электролитические: 1000 мкФ х 16 В, 220 мкФ х 16В х2 шт. диод 1N4001 или 1N4004 кварцевый резонатор на 16 МГц ИК-диоды: подойдут любые в количестве двух штук. фототранзисторы, тоже любые, но реагирующие только на длину волны ик-лучей Код прошивки: В данный момент мой робот практически завершён. На нём установлена беспроводная камера, датчик расстояния (и камера и этот датчик установлены на поворотной башне), датчик препятствия, энкодер, приёмник сигналов с пульта и интерфейс RS-232 для соединения с компьютером. Работает в двух режимах: автономном и ручном (принимает сигналы управления с пульта ДУ), камера также может включаться/выключаться дистанционно или самим роботом для экономии заряда батарей. Пишу прошивку для охраны квартиры (передача изображения на компьютер, обнаружение движений, объезд помещения). Ведущий канала “Учебник Мастерства” показал наглядно, как сделать шагающего мини робота. В первую очередь сделаем лапы. Две палочки от мороженого скрепляет вместе, отмеряем 6 сантиметров и сразу ставим две метки, где будут отверстия. Скальпелем удаляем всё лишнее, а место среза обрабатываем наждачкой. Бормашинкой по меткам сверлим два отверстия. Нам еще понадобится пластиковый шарик из под игрушки. В нижней части шара с помощью ножовки делаем два углубления для деревянной шпажки. Закручиваем верхнюю участие маркером отмечаем где будет начала разреза. По резьбе раскручиваем и ещё раз отмечаем. Аккуратно между метками ножовкой делаем надрезы. Выбираем всё. Когда будем откручивать или закручивать шарик, отверстие всегда будет открытым. Берем малооборотистый моторчик редуктор. Присоединяем к нему готовый контакт. Можно обойтись обыкновенными проводками. От чупа-чупса отрезаем кусочек ножки. Один конец хорошо нагреваем и сплющиваем. Второй конец тоже греем и одеваем на вал редуктора. В нижней части пластикового шарика отмеряем и клеем кусок палочки из под мороженого. Это будет подставка под мотор редуктор. Даем суперклея чуть-чуть затвердеть и сверху обильно наносим горячий клей. Ставим мотор и корпуса заливаем горячим клеем. Он не должен попадать на редуктор. Оставляем шар с мотором в стороне. Делаем 2 сантиметровые заготовки с отверстием посередине. Чтобы не было заусенцев, край обрабатываем наждачной бумагой. Берем линейку и делаем две отметки на расстоянии 1 см. По меткам сверлим два отверстия, скальпелем срезаем полукругом. Края обрабатываем. Для изготовления простейшего нам понадобится моторчик, два куска провода, прищепка, зарядное устройство от телефона. Сначала нужно присоединить проволоку к двигателю. После этого, как клей затвердел, возьмём плоскогубцы согнем ножки. Теперь можно раздвинуть их, чтобы робот стоял более уверенно. Теперь припаяем контакты на зарядное устройство к плюсу и минусу. На канале Alphadroid рассказали, как сделать в домашних обстоятельствах мини робота. Смотрите видео канала Alpha Mods. Корпус робота деревянный, из МДФ. В комплекте 5 пластин с деталями для корпуса, обработанные лазерным гравером. Робот оснащен ультразвуковым датчиком, это поможет ему ориентироваться в пространстве. На первых страницах инструкции нарисованы панели корпуса в масштабе 1:1. Необходимо взять реальные пластины и пронумеровать так, как это сделано на рисунке. Первым делом необходимо взять деталь D1 и D4, а также пару винтов М3*10. Аккуратно вынимаем детали из пластины и прикручиваем друг к другу. Берем D5 и сервоприводы. Прикручиваем к D5 с помощью саморезов, которые идут в комплекте. Берем первую и вторую заготовки, соединяем с помощью D3. В деревянных деталях есть пазы, и они друг в друга вставляются. Берем гайки и располагаем в отведенные для них места. Это были ноги и ступни робота. Переходим к D2 и рукава для сервоприводов. Рукав фиксируем на планке. Планка надевается. Проводим калибровку: проворачиваем привод в сторону, вытаскиваем планку, вставляем заново и проворачиваем снова, пока планка не упрется. Еще раз снимаем планки и надеваем в конечное положение: так чтобы D2 касалось D3, либо была максимально близка к ней. Возвращаем привода на исходное положение. На этапе калибровка завершена. Берем опору D10 и устанавливаем ее на D1 и D2. D1 зажимается с помощью контргайки не до упора. То, что сейчас установили является гнездом для сервоприводов, оставшиеся два помещаем на соответствующие гнезда. Есть планка фиксации – D11. Калибровка: одеваем плечики и проворачиваем до упора, плечи снимаем и устанавливаем в вертикальном положении, задаем угол в 90 градусов, наконец снимаем. Ноги готовы. Для сборки головы: D7, D14 и 4 болта м3*12 мм. Робот – самостоятельное и, часто, автономное устройство, работающее по внутренней программе. Почти живое существо, только с электронными мозгами. Роботы могут многое, но, все-таки не более того, что в них заложено их создателем. Насмотревшись видео про роботов, решил сам попробовать сделать робота из простой игрушки. Что для этого нужно? Для начала сама игрушка. (отберите у вашего ребенка, пока не сломал). От самой игрушки зависит то, как будет выглядеть робот и что он сможет делать. Я взял простой трактор с дистанционным управлением King Force 300 ( при изготовлении робота ни один ребенок не пострадал) Конечно, это будет не человеко-подобный робот, но трактор все-таки должен самостоятельно ездить и еще радостно пищать по поводу и без повода. Видео в конце. Рожденный ездить – летать не может. Т.е. наш робот будет перемещаться вперед-назад, вправо-влево. И еще дрыгать ковшом в качестве бонуса. Изначально у King Force 300 есть еще и плуг, но он управляется тем же мотором, что и ковш и к тому же занимает ценное пространство сзади, куда я планировал поставить инфракрасный бампер, поэтому плуг пришлось зверски ампутировать. Но шурупы пошли на прикручивание выключателя, что тоже хорошо. Т.е в машинке всег три мотора и и нам нужно управлять двумя двигателями на движение, каждый из которых должен вращаться вперед и назад и одним двигателем на подъем ковша, который должен вращаться только в одну сторону. Вместо покупки инфракрасного датчика рублей эдак за 500 можно спаять на простейшей макетной плате пару транзисторов и светодиодов и получить тоже самое только в десять раз дешевле, особенно, если датчиков хотите сделать несколько. В итоге я купил этот драйвер двигателей и этот ультразвуковой дальномер HC-SR04, а материнскую плату робота и инфракрасный бампер спаял на простой макетной плате просто проводками без использования травления хлорным железом и т.п. радостей. Единственное, что паяльник должен быть с тонким жалом, чтобы паять колодки микросхемы. Сначала хотел использовать беспаечную макетную плату, но все-таки решил запаять, чтобы меньше отваливались провода. Остался главный вопрос – насчет мозгов робота. Всеми этими моторчиками нужно как-то управлять. Компьютер великоват, да и не влезет он в трактор. Поэтому берем максимально простой вариант. Один из клонов Ардуино. Их много разных по цене и размеру. Это хотя это и не лучший контроллер, не самый быстрый и в нем не слишком много возможностей, но программируется легко, много примеров как что сделать, есть готовые библиотеки работы с дальномером и инфракрасным приемником, поэтому для нашей задачи Ардуино вполне достаточен. Питание. Ардуино питается от +5 вольт. У нас двигатели воспринимают что-то около 6 вольт, если быть абсолютно точными, то в пульте у нас четыре батарейки AA, они по 1.5 вольта, никаких дополнительных схем не увидел, следовательно на двигатели подается прямиком 6 вольт – это радует, поскольку не нужно уменьшать-увеличивать напряжение с батареек. Я планирую питать схему от четырех аккумуляторов. Они 1.2 вольта, следовательно в итоге на схему пойдет 4.8 – достаточно для нормального питания Ардуино без дополнительных стабилизаторов и ограничителей, для двигателей тоже пойдет. Для простого управления подключил приемник инфракрасного излучения фактически теперь у трактора есть инфракрасный пульт дистанционного управления и куча кнопок. Всякие гребенки, батарейные отсеки, конденсаторы-резисторы покупал в чип-дипе Если заказывать через Интернет, то цена в общем нормальная, но в розницу там совершенно безумные цены. Но можно купить практически все детали в одном месте. А вот здесь купил макетную плату. После распайки основная проблема была в том, что Ардуина очень чувствительна к помехам. Поскольку двигатели явно щеточные, то создают сильные помехи при работе, пришлось дополнительно паять большое количество конденсаторов 0.1 мкф везде, где только можно. При этом двигатель ковша сильно влиял на дальномер, пришлось даже ставить дополнительную катушку-фильтр на двигатель ковша (выпаял из сгоревшей энергосберегающей лампы), а на дальномер кроме конденсаторов поставить ферритовый фильтр на питающий провод. У меня изначально была идея использовать дальномер как датчик поднятия и опускания ковша. Поскольку ковш заслоняет дальномер в нижнем состоянии и открывает в поднятом, то можно останавливать подъем когда дальномер резко изменил показатели. Поэтому пришлось бороться с помехами. Дальномер уж слишком близко стоит рядом с двигателем, да и разводка проводами способствует наводкам проводов друг на друга. Двигатели колес сильно влияли вообще на все. При старте вперед Ардуина зависала. Кстати, назад ехала нормально. Что очень похоже на помеху по питанию в одну сторону двигатели мало влияли, а в другую все зависало. Пришлось в итоге от двигателей к драйверу двигателей провода заменить на экранированные, экран присоединить к минусу питания. Питание и землю сделать звездой и дополнительно на питание инфракрасного датчика поставить резистор 100 ом, который тоже немного экранирует помехи, конечно, не так как катушка, но все-таки. По хорошему каждый вывод двигателя нужно через конденсатор выводить на землю, чтобы сбрасывать помехи, но у меня просто места небыло для дополнительных конденсаторов, просто стоят параллельно. Но экранированный провод значительно уменьшил влияние двигателей на схему. Ниже схема того что получилось. Как это все работает можно посмотреть на видео.Заключение
Берем еще две палочки, закрепляем скотчем, отмеряем 6 сантиметров и отрезаем ножовкой.Край закруглить не надо. На эту заготовку делаем отверстие только с одной стороны. Эти заготовки будем клеить прямо посередине полки с закругленными краями. Обратите внимание, они должны быть перпендикулярными. Заранее готовим четыре кусочка деревянные шпажки по 3 сантиметра. Вставляем в нижнее отверстие. При помощи суперклея к шпажке приклеиваем две заготовки по 8 см. Используйте линейку, чтобы соблюдать угол 90 градусов. Посмотрите, что должно получиться. Точно таким же образом делаем вторую лапу. Как видите, все понятно и в домашней обстановке несложно все это делать.
Продолжение на видео с пятой минуты. Здесь детально показано, как в домашних условиях сделать интересного мини робота.Простейший робот в домашних условиях
Далее видео канала “Без Чувств”, где показано, как создать эту игрушку робота.
Теперь можно тестировать этого простейшего мини робота. Чтобы он зашевелился, нацепим прищепку на ротор. Вот и всё! Робот бегает.Мини робот из набора в домашних условиях
Для сборки ходячего необходимо большое количество компонентов. Была использована платформа для самостоятельной сборки «Дройдик». Помимо деталей, которые можно приобрести на радио-рынке, в наборе есть дополнительные необходимые элементы.
Комплектация набора: панели с деталями для сборки корпуса, батарейный отсек, 4 полноценных набора сервоприводов, 30 гаек, винты и гайки М 3, 2 самореза, ультразвуковой датчик расстояния, шлейф, намагниченная отвертка, инструкция по сборке.
При выборе игрушки для роботизации важно уточнить сколько у нее двигателей на колесах. У некоторых дешевых моделей обе гусеницы управляются одним мотором, что не позволит трактору маневрировать, а езда вперед-назад – не интересна. Китайцы как всегда сделали одноразовую вещь, поэтому для нормальной работы игрушку пришлось пришлось немного после чего не страшно уже ее роботизировать. Есть уверенность, что она не отбросит колеса прямо сразу, а немного поездит на радость мне и детям.
Если нужно включить-выключить двигатель – это реализуется просто на мощном транзисторе, но если нужно менять его полярность, то здесь без специальной схемы не обойтись. Либо реализовывать самому так называемый H-bridge, либо купить готовый драйвер двигателей.
Магазины деталей для роботов изобилуют разными готовыми платами (шилдами), который можно купить и быстро собрать в единое устройство, но здесь нужно соблюдать баланс между ценой и трудоемкостью изготовления такой платы.
Кстати, отлично для разводки такой платы подходят провода от витой пары. Медные, в меру жесткие и хороши для пайки. Думаю, у каждого найдется метр-другой остатков витой пары для такого рода развлечений. Материнскую плату готовую не брал, чтобы сэкономить место внутри трактора. Туда много не поместится, поэтому максимально неаккуратно распаял сам. Душераздирающее зрелище перепутанных проводов можно посмотреть на видео. В последствие оказалось, что провода еще и помехи друг другу дают, особенно те, которые идут к двигателям.
Чтобы можно было собирать-разбирать устройство пришлось сделать все датчики на разъемах.
Arduino Nano очень даже компактный вариант, чтобы поставить внутрь трактора. У меня был клон Carduino Nano V.7 поэтому использовал его, кстати, у этой платки есть особенность – выход SPK, куда можно подключить наш ковш прямо без всяких драйверов двигателей и дополнительных транзисторов. При этом он завязан внутри через транзистор на 11 цифровой порт. Так что посмотрите по схеме транзистор нарисован снаружи, а на самом деле двигатель подключен к выходу SPK и использует внутренний транзистор.
И еще несколько деталек.