Как сделать собственного робота

Сделать робота очень просто Давайте разберемся, что же потребуется чтобы создать робота в домашних условиях, для того чтобы понять основы робототехники.

Наверняка, насмотревшись фильмов про роботов, тебе не раз хотелось построить своего боевого товарища, но ты не знал с чего начать. Конечно, у тебя не получится построить двуногого терминатора, но мы и не стремимся к этому. Собрать простого робота может любой, кто умеет правильно держать паяльник в руках и для этого не нужно глубоких знаний, хотя они и не помешают. Любительское роботостроение мало чем отличается от схемотехники, только гораздо интереснее, потому что тут так же затронуты такие области, как механика и программирование. Все компоненты легкодоступны и стоят не так уж и дорого. Так что прогресс не стоит на месте, и мы будем его использовать в свою пользу.

Введение

Итак. Что же такое робот? В большинстве случаев это автоматическое устройство, которое реагирует на какие-либо действия окружающей среды. Роботы могут управляться человеком или выполнять заранее запрограммированные действия. Обычно на роботе располагают разнообразные датчики (расстояния, угла поворота, ускорения), видеокамеры, манипуляторы. Электронная часть робота состоит из микроконтроллера (МК) – микросхема, в которую заключён процессор, тактовый генератор, различная периферия, оперативная и постоянная память. В мире существует огромное количество разнообразных микроконтроллеров для разных областей применения и на их основе можно собирать мощных роботов. Для любительских построек широкое применение нашли микроконтроллеры 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 — их лучше распаивать на широкой контактной площадке. Вот и всё, что на первое время тебе нужно знать о драйверах двигателей.

Читайте также:  Как установить спутниковую антенну мтс самостоятельно видео

Датчики препятствий

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

Прошивка робота

Чтобы оживить робота, для него нужно написать прошивку, то есть программу, которая бы снимала показания с датчиков и управляла двигателями. Моя программа наиболее проста, она не содержит сложных конструкций и всем будет понятна. Следующие две строки подключают заголовочные файлы для нашего микроконтроллера и команды для формирования задержек:

Следующие строки условные, потому что значения PORTC зависят от того, как ты подключил драйвер двигателей к своему микроконтроллеру:

Если на фототранзистор попадает свет от ик-диода, то на ноге микроконтроллера устанавливается лог. «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 для соединения с компьютером. Работает в двух режимах: автономном и ручном (принимает сигналы управления с пульта ДУ), камера также может включаться/выключаться дистанционно или самим роботом для экономии заряда батарей. Пишу прошивку для охраны квартиры (передача изображения на компьютер, обнаружение движений, объезд помещения).

Компания Promobot — это молодая компания из Перми, это стартап с продуктом, признанным во всем мире. Сейчас это крупнейший производитель автономных сервисных роботов на территории Северной и Восточной Европы. В посте краткая история разработки и достижения успеха. Под катом много уникальных фото с производства. Производство компании занимает две тысячи квадратных метров в г.Перми, на базе технопарка «Морион». Производственный цикл включает в себя производство электроники, пластиковых и металлических деталей. На базе предприятия осуществляется разработка программного обеспечения, сборочные операции, тестирование основных систем, пусконаладочные работы и техническая поддержка.

На вопросы отвечает Игорь Еремеев, технический директор Промобот.

Читайте также:  Как сделать колоды для дверей

Ваша компания уникальна для России. Вы не останавливаетесь на достигнутом и постоянно развиваетесь. Можете ли сейчас вспомнить как все начиналось?

Компания Промобот была основана в 2015 году Алексеем Южаковым, мной, Олегом Кивокурцевым и Максимом Утевым. Мы представляли робота-снегоуборщика на конкурсе инновационных проектов «Большая разведка» в 2014 году. Там Алексей Южаков выступал в качестве спикера.

После выступления, Олег познакомился с Алексеем, рассказал о том, что мы занимаемся различными проектами в области робототехники и предложил внедрить результаты в проекты Алексея. Южакову идея понравилась и он предложил встретиться для обсуждения перспектив.

Далее, именно Южаков предложил сделать робота-промоутера. Он предложил нам помещение и финансирование. Мы же должны были построить первый прототип.

Построили. Повезли тестировать в один из торговых центров, и там он привлек очень много внимания. И так решили продолжать.

Что Вас мотивировало?

Все начиналось как хобби. Точнее, все началось с учебы, потом перешло в хобби, и потом появилась финансовая составляющая.

Оглядываясь назад, все ли Вы сделали правильно? Какие грабли собрали по дороге?

В случае с Промобот мы сделали все правильно. До этого мы делали робота-снегоуборщика, и он был не востребован. Несколько мы продали и получили не самую хорошую обратную связь. Он был недостаточно удобен, недостаточно технологичен. Поэтому она не ушла в массы. Мы вовремя переключились на Промобот.

Тогда как раз мы познакомились с Алексеем Южаковым. Он стал идейным вдохновителем. До этого были технари — я и Максим Утев, был Олег Кивокурцев, который умел продавать.

И еще одна деталь, я всегда работал с друзьями или с родственниками. Это были мои грабли. Но когда я связался с Олегом и Максимом, я начал работать с абсолютно незнакомыми мне людьми. У нас не было к друг другу претензий, обстоятельств, обязательств. Мы просто начали делать то, что было нужно.

С какими сложностями вы столкнулись и как их преодолели?

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

Упорство. Промобот отличается от других команд, где я работал, именно этим качеством. Здесь непозволительно откладывать на завтра то, что можно сделать сегодня. Нужно брать и делать. Мы сидим здесь постоянно и работаем на результат. Любыми путями. Чем раньше результат, тем лучше. Любой результат.

Сейчас Вы больше стартап или технологическая компания?

Здесь очень тонкая грань. Мне кажется, что внутри офиса мы все еще остаемся стартапом — в плане управления, структуры, людей, мобильности. Вне офиса, наверное, мы уже комания. Однако никому не нужно стремиться переставать быть стартапом.

Игорь, делаете ли Вы что-то руками? Приходиться ли моделировать, кодить или браться за дрель?

Мне очень много чего приходится делать своими руками. Час назад я мог быть системным администратором и разбираться с серверами, через полчаса я программист и пробую новый код для общих нужд, а еще через два я уже строю стол в переговорку и занимаюсь обустройством офиса. Поэтому да.

Как работает Ваш робот? Какие аппаратные компоненты Вы используете?

Большинство аппаратных компонентов разработаны нами собственноручно, за исключением вычислительных модулей. Вычислительные модули — это обычный компьютер, уменьшенный в разы. А все платы управления, сервоприводы и так далее — все это сделано нашими специалистами в Перми.

Если смотреть в процентном соотношении, то у нас сейчас 70 отечественных и собственных комплектующих на 30 импортных. Из этих 70 — половина наших комплектующих. Металл изготавливается подрядчиками в Перми, по нашим чертежам. Детали корпуса — сам пластик закупаем, но формуем у нас на производстве. Вся аппаратная составляющая разрабатывается и собирается тоже нами. Практически все делаем сами.

Используете ли Вы ROS? Какие-то другие технологии в софте?

Мы использовали его с самого начала. Когда мы начинали, у нас не было программистов и я делал все сам. Я случайно выбрал ROS, по нему было много видео-пособий. А в последствии оказалось, что это было правильным решением.

Кстати, говоря о граблях, то не стоит изобретать велосипед и пытаться придумать все с нуля. Нужно пользоваться тем, что уже есть и адаптировать.

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

Раньше использовали OpenCV — библиотека для распознавания образов и изображений. Она до сих пор у нас используется, но очень мало. Распознавание лиц сейчас у нас реализуется через решение от партнеров. Это не наша разработка, однако мы давно работаем с ними и поставляем массивную BigData. То есть слепки изображений со всех роботов, которых уже больше четырех сотен. На их основе программа все лучше и лучше распознает.

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

Распознавание речи пробовали от Google и Яндекс. В итоге, сейчас работаем над своим. Потому что параметры распознавания у телефона, который лежит рядом, и у робота на выставке — разные. Мы вручную обрабатывали запросы с роботов из шумных мест, с разными особенностями речи, и на основе этих данных научили систему распознавать хорошо в тех условиях, в которых находится робот.

Читайте также:  Картины из гаечных ключей

Поддерживаете ли Вы какие-то opensource проекты? Публикуете ли в открытый доступ часть своих наработок?

Вы сделали классный сервис для создания движений роботов. Как работает Motion studio? Какие технологии используете? Как происходит рендеринг?

Это веб-сервис. В основе лежит 3D модель робота, на ней есть интерактивные узлы, которые можно крутить, вертеть, строить из них движения. Из этого можно создать сценарий, добавить музыку, поменять цвета подсветки и так далее. Сценарий сохраняется и переносится на робота в виде файла.

Какие у вас планы и перспективы, связанные с Промобот?

В скором времени мы запускаем свой техноблог. Вести его буду я и мои коллеги, мы планируем рассказывать о том, как делается наш робот, создавать обзоры на новинки, технику, тренды в мире робототехники.

Если говорить о глобальных планах компании, то сейчас мы работаем над расширением географии поставок, отработке новых кейсов применения, например, робот-консьерж, робот-консультант, робот-экскурсовод. Это некая совокупность функций, разработанная для работы в специфичной отрасли. В компании мы называем это кейсами применения. И непрерывное улучшение, конечно же.

P.S.: От себя хочу добавить, что безумно приятно, что у нас в России есть такие компании. Это показатель того, что для успеха не обязательно уезжать из РФ, не обязательно даже переезжать в Москву. Все барьеры находятся внутри нас. Promobot, спасибо!

Найдены возможные дубликаты

«Не имеющий аналогов в мире», Нет аналогов оно же «отечественное ноу-хау» или просто анало-говнет — знаменитый и любимый советский, а теперь и российский мем гос. пропаганды, превозносящей очередное достижение ВПК, из серии «наши поезда самые поездатые поезда в мире». Применяется в форме. При этом имеющиеся таки аналоги либо замалчиваются, либо словесно «опускаются», то есть занижаются ТТХ. То «преимущества» придумываются такие заковыристые, по которым и аналоги глупо искать. Призван скрыть или иным образом нивелировать убожество финансирования и традиционное распиздяйство в той или иной важной области производства, в том числе как сейчас принято и в «инновационных» областях, а также, применительно к армии, отсутствие современного вооружения в боевых частях этой страны. Исходя из вышесказанного, при прочтении фразы «не имеющий аналогов в мире» у любого вменяемого анонимуса в голове должна загораться красная табличка с надписью «Внимание! Нас опять наебывают!».

А про какую западную компанию Вы читали? Boston dynamics, Tesla, SpaceX, The Boring comp?

Роботизация и автоматизация становятся всё востребованнее, и многим хотелось бы научиться создавать подобные системы и устройства. Но с чего начать, как освоить азы? Мы сделали для вас небольшую подборку русскоязычных и англоязычных YouTube-каналов с учебными материалами и методическими пособиями по робототехнике.

Канал ведет инженер, который рассказывает о своем опыте в конструировании из подручных материалов разных устройств, как правило автоматизированных. Речь идет об электронике, робототехнике, инструментах и прикладных экспериментах. Довольно интересный и доступно изложенный материал, из которого можно почерпнуть для себя что-то новое.

Канал довольно популярного магазина «Амперка». Посвящен электронике и робототехнике. Здесь рассказывается о платформах Arduino, Raspberry Pi и Iskra JS, с помощью которых можно создавать роботов и автоматизированные системы (типа «умный дом») даже с минимальным набором знаний.

Интересный канал, позволяющий получить множество знаний в разных областях от ведущих вузов. В том числе содержит вводные материалы лекций по робототехнике, к которым можно получить доступ в рамках проекта «Универсариум».

На канале представлены доступные уроки по робототехнике, программированию, а также интересные материалы и освещение событий, связанных с роботами. Автор — кандидат физико-математических наук и тренер сборной России по робототехнике.

Содержит учебные материалы по робототехнике для начинающих. Создание робота своими руками с нуля. От простейших экземпляров до вычислительных машин на процессорах и микроконтроллерах. Каждый материал содержит описание робота, инструкция по его созданию и список необходимых элементов.

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

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

Ряд довольно интересных обучающих и обозревательных материалов по робототехнике от сотрудника Оренбургского президентского кадетского колледжа. Здесь вы можете получить начальные знания, которые пригодятся любому человеку, интересующемуся робототехникой.

Уроки по робототехнике для начинающих, и не только для детей. Пошаговые доступные инструкции по сборке роботов из LEGO, на основе Arduino и т.д. Содержит также много других интересных материалов по теме.

Обучающие материалы по робототехнике, а также видео и новинки из этой области. Автор имеет несколько наград и патентов в этой сфере. Преподает свой собственный курс «Как стать инженером робототехники» для студентов и аспирантов.

Очень интересный курс лекций по робототехнике — не для новичков. Охватывает многие интересные аспекты и содержит множество материалов в виде лекций из этой и смежных областей.

Серия обучающих уроков по платформе Arduino. Довольно интересное и несложное изложение материала. Уроки подходят для новичков.

Серия обучающих материалов по Arduino и базовому программированию для новичков. Поможет делающим первые шаги познакомиться с платформой и обучиться азам.

Обучающие уроки по электронике, робототехнике на основе Arduino и многое другое. Содержащие интересные материалы из категории «сделай сам».

Сборник лекций с говорящим названием от Стэндфордского университета. Не для начинающих.

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

Комментарии запрещены.

Присоединяйся