Кому не хотелось бы иметь универсального помощника, готового выполнить любое поручение: помыть посуду, закупить продуктов, поменять колесо в автомобиле, да и отвезти детей в сад, а родителей на работу? Идея создания механизированных ассистентов занимает инженерные умы ещё с древних времён. А Карел Чапек даже придумал слово, обозначающее механического слугу – робота, выполняющего обязанности вместо человека.
К счастью, в нынешнем цифровом веке, такие помощники наверняка вскоре станут реальностью. На самом деле, интеллектуальные механизмы уже помогают человеку в выполнении домашних дел: робот-пылесос уберётся, пока хозяева на работе, мультиварка поможет приготовить еду, не хуже скатерти-самобранки, а игривый щенок Айбо радостно принесёт тапочки или мяч. Сложные роботы используются на производстве, в медицине и космосе. Они позволяют частично, а то и полностью, заменить труд человека в сложных или опасных условиях. Андроиды при этом пытаются внешне походить на людей, тогда как промышленные роботы обычно создаются из экономических и технологических соображений и внешний декор у них отнюдь не в приоритете.
Но, оказывается, можно попытаться сделать робота с помощью подручных средств. Так, можно сконструировать оригинальный механизм из телефонной трубки, компьютерной мышки, зубной щётки, старого фотоаппарата или вездесущей пластиковой бутылки. Разместив на платформе несколько датчиков, можно запрограммировать такого робота на выполнение простых операций: регулировку освещённости, подачу сигналов, движение по комнате. Конечно, это далеко не многофункциональный помощник из фантастических фильмов, зато такое занятие развивает изобретательность и творческое инженерное мышление, и безоговорочно вызывает восхищение у тех, кто считает роботостроение абсолютно не кустарным делом.
Одно из самых простых решений на пути к тому, чтобы сделать робота – приобрести готовый набор для робототехники с пошаговым руководством. Этот вариант подойдёт также тем, кто собирается серьёзно заниматься техническим творчеством, ведь в одном пакете находятся все необходимые детали для механики: от электронных плат и специализированных датчиков, до запаса болтиков и наклеек. Вместе с инструкциями, позволяющими создать довольно сложный механизм. Благодаря множеству аксессуаров такой робот может послужить отличной базой для творчества.
Основных школьных знаний по физике и навыков с уроков труда вполне достаточно для сборки первого робота. Разнообразные сенсоры и моторы подчиняются пультам управления, а специальные среды программирования позволяют создать настоящих киборгов, умеющих выполнять команды.
Например, датчик механического робота может фиксировать наличие или отсутствие поверхности перед прибором, а программный код указывать, в какую сторону следует поворачивать колёсную базу. Такой робот ни за что не упадёт со стола! Кстати, по схожему принципу работают настоящие роботы-пылесосы. Помимо проведения уборки по заданному расписанию и умения вовремя возвращаться на базу для подзарядки, этот интеллектуальный помощник может самостоятельно строить траектории уборки помещения. Поскольку на полу могут располагаться разнообразные препятствия, такие как стулья и провода, роботу приходится постоянно сканировать предлежащий путь и огибать такие помехи.
Для того чтобы собственноручно созданный робот умел выполнять различные команды, производители предусматривают возможность его программирования. Составив алгоритм поведения робота в различных условиях, следует создать код взаимодействия датчиков с окружающим миром. Это осуществимо благодаря наличию микрокомпьютера, являющегося мозговым центром такого механического робота.
Даже без специализированных, и обычно дорогостоящих, наборов, вполне возможно сделать механический манипулятор подручными средствами. Итак, загоревшись замыслом создания робота, следует внимательно проанализировать запасы домашних закромов на предмет наличия невостребованных запчастей, которые могут быть использованы в этой творческой затее. В ход пойдут:
Совет: «Нелишним навыком при создании робота будет умение обращаться с паяльником, ведь он поможет надёжно скрепить механизм, в особенности электрические компоненты».
С помощью этих общедоступных составляющих можно сотворить настоящее техническое чудо.
Итак, для того чтобы сделать собственного робота из доступных в домашних условиях материалов, следует:
Совет: «Бусинки глаз для робота, декоративные рожки-усики из проволоки, ножки-пружинки, диодные лампочки помогут одушевить даже самый скучный механизм. Эти элементы можно крепить при помощи клея или скотча».
Сделать механизм такого робота можно за несколько часов, после чего остаётся придумать роботу имя и представить восхищенным зрителям. Наверняка некоторые из них подхватят новаторскую задумку и смогут смастерить собственных механических персонажей.
Милый робот Валл-И располагает к себе зрителя одноимённого фильма, заставляя сопереживать его драматическим приключениям, тогда как Терминатор демонстрирует мощь бездушной непобедимой машины. Персонажи Звёздных войн – верные дроиды R2D2 и C3PO, сопровождают в путешествиях по далёкой-далёкой Галактике, а романтический Вертер даже жертвует собой в схватке с космическими пиратами.
За пределами кинематографа также существуют механические роботы. Так, мир восхищается умениями робота-гуманоида Асимо, который умеет ходить по лестнице, играть в футбол, подавать напитки и вежливо здороваться. Марсоходы Спирит и Кьюриосити оборудованы автономными химическими лабораториями, позволившими сделать анализ образцов марсианских почв. Беспилотные автомобили-роботы могут передвигаться без участия человека, даже по сложным городским улицам с высокими рисками непредвиденных событий.
Возможно, именно из домашних проб создания первых интеллектуальных механизмов, вырастут изобретения, которые изменят техническую панораму будущего и жизнь человечества.
Раз уж вы попали на эту странцу, значит вы уже не равнодушны к теме робототехники и роботостроения. Конструирование робота своими руками, это очень увлекательное занятие, которое научит вас многому. У вас появятся навыки в области электроники, механики, программирования, управления процессами. Для меня роботостроение, это увлекательное хобби. Как и все мы, я тоже мечтал создать что-нибудь с колесами, моторчиками, проводами, и с кучей электронных деталей.
Так однажды пришла в голову идея собрать робота своими руками в домашних условиях. Но не только создать простое устройство которое бы двигалось в разные стороны, а создать многофункционального робота, который бы выполнял команды центра связи и был бы полезен в хозяйстве.
Идея сделать робота своими руками под названием RoboTech , которого смог бы собрать любой, начинающий робототехник или радио-любитель.
Учитывая требования, для управления роботом решено использовать два микро-компьютера (MC-1 и MC-2 ).
Первый компьютер (основной MC-1 ) — используется в качестве основного бортового компьютера «мозга», в задачи которого входит:
Для выполнения поставленных задач, решено использовать одноплатный компьютер Raspberry PI или, в крайнем случае, роутер с возможностью прошивки OpenWRT .
Второй компьютер (дополнительный MC-2 ) используется для управления двигателем, сбором информации с различных датчиков или сенсоров и отправки готовых данных на основной компьютер MC-1.
В качестве контроллера управления механизмами шасси и сенсорами робота, решено использовать готовый . Из всех рассматриваемых мною контроллеров, я выбрал самый распространенный и доступный . Так же можно использовать более компактный Arduino Nano . Оба устройства работают на avr микроконтроллере ATMega328p.
Наверняка, насмотревшись фильмов про роботов, тебе не раз хотелось построить своего боевого товарища, но ты не знал с чего начать. Конечно, у тебя не получится построить двуногого терминатора, но мы и не стремимся к этому. Собрать простого робота может любой, кто умеет правильно держать паяльник в руках и для этого не нужно глубоких знаний, хотя они и не помешают. Любительское роботостроение мало чем отличается от схемотехники, только гораздо интереснее, потому что тут так же затронуты такие области, как механика и программирование. Все компоненты легкодоступны и стоят не так уж и дорого. Так что прогресс не стоит на месте, и мы будем его использовать в свою пользу.
В нашем случае микроконтроллер будет выполнять функции мозга, но начнём мы не с него, а с питания мозга робота. Правильное питание – залог здоровья, поэтому мы начнём с того, как правильно кормить нашего робота, потому что на этом обычно ошибаются начинающие роботостроители. А для того, чтобы наш робот работал нормально нужно использовать стабилизатор напряжения. Я предпочитаю микросхему L7805 – она предназначена, чтобы на выходе выдавать стабильное напряжение 5В, которое и нужно нашему микроконтроллеру. Но из-за того, что падение напряжения на этой микросхеме составляет порядка 2,5В к нему нужно подавать минимум 7,5В. Вместе с этим стабилизатором используются электролитические конденсаторы, чтобы сгладить пульсации напряжения и в цепь обязательно включают диод, для защиты от переполюсовки.
Теперь мы можем заняться нашим микроконтроллером. Корпус у МК - DIP (так удобнее паять) и имеет сорок выводов. На борту имеется АЦП, ШИМ, USART и много другого, что мы пока использовать не будем. Рассмотрим несколько важных узлов. Вывод RESET (9-ая нога МК) подтянут резистором R1 к «плюсу» источника питания – это нужно делать обязательно! Иначе твой МК может непреднамеренно сбрасываться или, проще говоря – глючить. Так же желательной мерой, но не обязательной является подключение RESET’а через керамический конденсатор C1 к «земле». На схеме ты так же можешь увидеть электролит на 1000 мкФ, он спасает от провалов напряжения при работе двигателей, что тоже благоприятно скажется на работе микроконтроллера. Кварцевый резонатор X1 и конденсаторы C2, C3 нужно располагать как можно ближе к выводам XTAL1 и XTAL2.
О том, как прошивать МК, я рассказывать не буду, так как об этом можно прочитать в интернете. Писать программу мы будем на Cи, в качестве среды программирования я выбрал CodeVisionAVR. Это довольно удобная среда и полезна новичкам, потому что имеет встроенный мастер создания кода.
Плата моего робота
Первый вариант датчиков моего робота
#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)» указывает на то, что пройдёт одна секунда, прежде чем начнёт выполняться следующая команда.
Тип МК: 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);
}
};
}
По пожеланиям выкладываю видео:
UPD. Перезалил фотографии и сделал небольшие поправки в тексте.
Сегодня мы расскажем, как сделать робота из подручных средств. Получившийся «высокотехнологичный андроид» хоть и будет небольшого размера и навряд ли сможет помочь вам по хозяйству, но пренепременно развеселит как детей, так и взрослых.
На самый конец дестабилизатора капните пару капель клея, или прикрепите какой-нибудь декоративный элемент — это добавит нашему творению индивидуальности и увеличит амплитуду его движений.
Сейчас появилось великое множество возможностей, которые позволяют начать создавать роботов не имея каких-то супер-пупер особенных таких знаний. И это великолепно! Потому что запускает лавину познания.
Причём начинать нужно не со знаний. Не знания должны быть паровозом. Знания это багаж, который едет в этом поезде. А что же тогда паровоз? А паровоз - это как раз незнание того, как бы так сделать, чтобы нечто делалось само собой. Строительство робота - это как раз обретение такого знания.
Чтобы не погрязнуть в примерах давайте возьмём один только пример. Самый тривиальный пример. Пусть робот перемещается по комнате не впечатываясь в стены. Что нужно знать:
1. Какой будет механика перемещений. (У большинства роботов есть механика, но бывают и бестелесные роботы, например, биржевые.) Если у вас нет знаний в этой области, то сразу начинайте их приобретать. Какие есть механизмы для перемещения, по ровной поверхности, по неровной, шагающие, на колёсах… Если на можете сделать такой механизм, найдите готовый. Разберите и соберите его заново, если это возможно.
2. Как робот будет взаимодействовать с внешним миром. Тут хорошо бы иметь знания в радиоэлектронике и/или информационных технологиях, чтобы понимать как считывать звуковые, оптические, механические сигналы, как получать информацию из сети (последнее особенно важно для бестелесных роботов). Минимальные знания уже подойдут, недостающие нужно немедленно начать восполнять. Благо вы можете использовать огромное количество модульных элементов и датчиков, сопрягаемых с уже готовыми контроллерами, которые превращают сигналы этих датчиков просто в числа. (если интересно, можно в комментариях обсудить/обменяться ссылками/адресами, где всё это приобретается)
3. (самое важное) Как робот будет думать. Надо определиться в чём заключается его «мыслительная» деятельность. Для выбранного примера это всего лишь умение в нужные моменты времени включать и выключать N электродвигателей в зависимости от измеренного расстояния до стены впереди (как минимум). Для мыслительной деятельности роботу нужен программируемый блок с микропроцессором. Есть множество готовых платформ для конструирования роботов (Arduino, Матрёшка, Strawberry Pi, Iskra, Troyka и др. Опять приглашаю в комментарии: делитесь ссылками, спрашивайте)
Сразу возникает вопрос: значит надо знать программирование? Строго говоря да. Но среди перечисленных платформ есть такие, в которых программирование осуществляется в визуальной среде без использования какого-либо конкретного языка программирования. (Т.е. внимание! Не обязательно знать программирование чтобы начать. Но естественно обязательно знать, чтобы продолжить)
Вот три основных косточки, на которых надо иметь сухожилия начальных знаний и навыков, доступных даже ребёнку, и на которых потом наращивать мясо высших инженерных знаний:
Ну, и напоследок, для вдохновения посмотрите (и это не реклама, я к этому производителю не имею отношения (поделитесь другими примерами)) какие есть детские инструменты для создания роботов