18 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Делаем робота-змею DIY: Sneel на основе Arduino

Собираем змейку на Arduino

Змей­ка — очень бла­го­дат­ная тема для про­грам­ми­стов, и вот поче­му:

  • понят­ные и про­стые пра­ви­ла,
  • мини­мум логи­ки, кото­рую нуж­но запро­грам­ми­ро­вать,
  • при­ми­тив­ная гра­фи­ка,
  • про­стое управ­ле­ние,
  • море кай­фа.

У нас уже был раз­бор того, как в неё игра­ет искус­ствен­ный интел­лект, и ста­тья о том, как за 10 минут сде­лать змей­ку для бра­у­зе­ра. Теперь шаг­нём даль­ше и не толь­ко напи­шем код, но и собе­рём желе­зо. Резуль­тат — ваша соб­ствен­ная змей­ка на мик­ро­про­цес­сор­ной пла­те, с экра­ном.

Что понадобится

Arduino Nano

Есть мно­го вари­ан­тов плат­фор­мы Adruino, но нам нуж­на одна из самых про­стых — мик­ро­схе­ма на пла­те с нож­ка­ми для мон­та­жа в спе­ци­аль­ную пла­ту. Обра­ти­те вни­ма­ние: при покуп­ке вам нуж­но ука­зать, что хоти­те пла­ту с уже при­па­ян­ны­ми нога­ми (soldered headers / soldered pins). Ина­че при­дёт­ся паять ноги на пла­ту, а смысл был в том, что­бы не паять.

Пласт­мас­со­вая пла­та для мон­та­жа (breadboard)

Све­то­ди­од­ная мат­ри­ца 8 × 8

По ней и будет бегать наша змей­ка. Мож­но, конеч­но, исполь­зо­вать ЖК-матрицы, что­бы кар­тин­ка была получ­ше, но они сто­ят доро­же и про­грам­ми­ро­вать их слож­нее.

Пере­мен­ный рези­стор (потен­цио­метр)

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

Джой­стик

Рабо­та­ет так же, как на обыч­ной при­став­ке. Им мы будем управ­лять змей­кой.

Про­во­да

Самый кайф это­го про­ек­та в том, что нам не при­дёт­ся паять, что­бы собрать все моду­ли вме­сте. Вме­сто это­го исполь­зу­ем про­во­да с раз­ны­ми разъ­ёма­ми, поэто­му луч­ше сра­зу зака­зать пол­ный ком­плект.

Загружаем код игры

Мы сей­час не будем раз­би­рать осо­бен­но­сти про­грам­ми­ро­ва­ния под Arduino, а вме­сто это­го сра­зу дадим гото­вый скетч. Скетч — это про­грам­ма для Arduino, кото­рая напи­са­на на C++ и кото­рую сохра­ни­ли как файл с рас­ши­ре­ни­ем .ino.

Делаем робота-змею DIY: Sneel на основе Arduino

Материалы и инструменты для изготовления:
— нейлоновый трос;
— 5x скобок формы С Lynxmotion;
— 5x скобок для сервоприводов Lynxmotion;
— 5x специальных литых петель;
— шланг размером 5/16″;
— свернутый шланг;
— кусок трубы 5/16″;
— вакуумные редукторы от 2.5 до 1.25″ (нужно два);
— уплотнитель уретановый;
— смазка (специальная морская);
— эпоксидный уплотнитель (морской);
— уплотнительные кольца;
— три куска углеродных волокна размерами 1/32 «, 1» x12 «;
— кусочек резины размерами 1/8 » и толщиной 2″ x10 «;
— зеленый локтит.

Читать еще:  Делаем декоративный меч мачете



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

Ну и естественно для работы нужно иметь хороший запас инструментов.

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

Затем нужно снять верхнюю часть сервопривода и также хорошенько все смазать вокруг зубчатого вала.





Шаг пятый. Установка сервоприводов на скобки
В комплекте к сервоприводу идут резиновые прямоугольные резинки. Такие резинки должны быть на всех четырех отверстиях кронштейна сервопривода. Плоская сторона резинки должна быть развернута наружу.

На пяти сервоприводах нужно установить литые петли. Далее сервопривод ставится на скобку, они крепятся с помощью болтами с гайками размером 4×40.











Шаг десятый. Способ управления роботом
Для управления роботом можно сделать либо пульт дистанционного управления, либо же управлять им с помощью схемы xbee+компьютер.


Чтобы загерметизировать крышки, их нужно хорошенько замазать при помощи смазки.

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



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

Как сделать робота на Ардуино своими руками: самодельный robot Arduino в домашних условиях

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

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

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

Шаг 1: Необходимые материалы

  • Arduino UNO
  • Мини макетная плата
  • Драйвер двигателя L298N
  • Два электромотора с колесами
  • Ультразвуковой датчик измерения расстояния HC — SR04
  • Микросервопривод
  • Кнопка
  • Красный диод
  • Резистор 220 Ом
  • Отсек для элемента питания 9В (с/без коннектора)
  • 8 стоек для макетных плат с наружной и внутренней резьбой, 8 винтов и 8 гаек

Также вам понадобится одна большая металлическая скрепка и бусина (для заднего опорного колеса).

Для изготовления каркаса робота использован кусок плексигласа (оргстекла) 12х9,5 см. Можно сделать каркас из дерева или металла, или даже из компакт-дисков.

  • Дрель
  • Суперклей
  • Отвертка
  • Клеевой пистолет (опционально)

Для питания робота используется батарейка 9В (крона), она достаточно компактная и дешевая, но разрядится уже примерно через час. Возможно, вы захотите сделать питание от аккумулятора на 6 В (минимум) или 7 В (максимум). Аккумулятор мощнее батарейки, но и дороже и больше по габаритам.

Шаг 2: Делаем каркас робота

Положите всю электронику на плексиглас и маркером отметьте места, где нужно будет просверлить монтажные отверстия (фото 1).

На нижней стороне пластины плексигласа приклейте на суперклей электромоторы. Они должны быть параллельны друг другу, с помощью линейки-угольника проверьте их положение прежде чем клеить (фото 2). Затем приклейте на суперклей отсек для батарейки.

Читать еще:  Ловушка для мышей из пластиковой бутылки

Можно также просверлить отверстия под провода электромоторов и питания.

Шаг 3: Монтируем электронику

Закрепите на каркасе плату контроллера и драйвер двигателей, используя стойки для печатных плат, винты и гайки. Миниатюрная макетная плата клеится на липкий слой (уже есть на нижней стороне) (фото 1).

Теперь делаем заднее опорное колесо из скрепки и бусины (фото 2). Концы проволоки закрепите на нижней стороне каркаса суперклеем или термоклеем.

Шаг 4: Устанавливаем «глаза» робота

На передней части каркаса приклейте на суперклей миниатюрный сервопривод. Рассмотрите на первом фото, как крепится плата ультразвукового датчика к сервоприводу с помощью маленького вала.
На втором фото показано, как выглядит завершенное соединение датчика и сервопривода.

Шаг 5: Схема подключений

Теперь приступаем к подключению электронных компонентов. Подключение компонентов происходит согласно схеме на рисунке 1.

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

Шаг 6: Код

Код, который приведен ниже, сделан с помощью Codebender.

Codebender – это браузерный IDE, это самый простой способ программировать вашего робота из браузера. Нужно кликнуть на кнопку «Run on Arduino» и все, проще некуда.

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

Нажав кнопку «Edit», вы можете редактировать скетч для своих нужд.

Например, изменив значение «10» измеряемого расстояния до препятствия в см, вы уменьшите или увеличите дистанцию, которую будет сканировать robot Arduino в поисках препятствия.

Если робот не двигается, может изменить контакты электромоторов (motorA1 и motorA2 или motorB1 и motorB2).

Шаг 7: Завершенный робот

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

Рассказываю как сделать какую-либо вещь с пошаговыми фото и видео инструкциями.

Делаем самобалансирующего робота на Ардуино

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

Как работает балансировка?

Сигвей от англ. Segway – двухколесное средство передвижения стоя, оснащенное электроприводом. Еще их называют гироскутерами или электрическими самокатами.

Вы когда-нибудь задумывались, как работает Сигвей? В этом уроке мы постараемся показать вам, как сделать робота Ардуино, который уравновешивает себя точно так же, как Segway.

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

Элемент обратной связи — гироскоп-акселерометр MPU6050, который обеспечивает как ускорение, так и вращение во всех трех осях (основы MP26050 I2C). Ардуино использует это, чтобы знать текущую ориентацию робота. Корректирующим элементом является комбинация двигателя и колеса.

В итоге должен получиться примерно такой друг:

Схема робота

Сначала подключите MPU6050 к Ардуино и проверьте соединение, используя коды в этом учебном руководстве по интерфейсу IMU. Если данные теперь отображаются на последовательном мониторе, вы молодец!

Продолжайте подключать остальные компоненты, как показано выше. Модуль L298N может обеспечить +5В, необходимый для Ардуино, если его входное напряжение составляет +7В или выше. Тем не менее, мы выбрали отдельные источники питания для двигателя и схемы.

Создание робота

Корпус робота изготовлен в основном из акрилового пластика с двумя редукторными двигателями постоянного тока:

Читать еще:  Деревянный стол с полками

Основная печатная плата, состоящая из Arduino Nano и MPU6050:

Модуль драйвера двигателя L298N:

Мотор редуктора постоянного тока с колесом:

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

Завершенный вариант самостоятельно балансирующего робота можно посмотреть на рисунке выше. В верхней части находятся шесть Ni-Cd-батарей для питания печатной платы. В промежутках между моторами используется 9-вольтовая батарея для драйвера двигателя.

Теория

В теории управления, удерживая некоторую переменную (в данном случае позицию робота), требуется специальный контроллер, называемый ПИД (пропорциональная интегральная производная). Каждый из этих параметров имеет «прирост», обычно называемый Kp, Ki и Kd. PID обеспечивает коррекцию между желаемым значением (или входом) и фактическим значением (или выходом). Разница между входом и выходом называется «ошибкой».

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

PID требует, чтобы значения Kp, Ki и Kd были настроены на оптимальные значения. Инженеры используют программное обеспечение, такое как MATLAB, для автоматического вычисления этих значений. К сожалению, мы не можем использовать MATLAB в нашем случае, потому что это еще больше усложнит проект. Вместо этого мы будем настраивать значения PID. Вот как это сделать:

  1. Сделайте Kp, Ki и Kd равными нулю.
  2. Отрегулируйте Kp. Слишком маленький Kp заставит робота упасть, потому что исправления недостаточно. Слишком много Kp заставляет робота идти дико вперед и назад. Хороший Kp сделает так, что робот будет совсем немного отклоняться назад и вперед (или немного осциллирует).
  3. Как только Kp установлен, отрегулируйте Kd. Хорошее значение Kd уменьшит колебания, пока робот не станет почти устойчивым. Кроме того, правильное Kd будет удерживать робота, даже если его толькать.
  4. Наконец, установите Ki. При включении робот будет колебаться, даже если Kp и Kd установлены, но будет стабилизироваться во времени. Правильное значение Ki сократит время, необходимое для стабилизации робота.

Поведение робота можно посмотреть ниже на видео:

Код Ардуино самобалансирующего робота

Нам понадобилось четыре внешних библиотеки, для создания нашего робота. Библиотека PID упрощает вычисление значений P, I и D. Библиотека LMotorController используется для управления двумя двигателями с модулем L298N. Библиотека I2Cdev и библиотека MPU6050_6_Axis_MotionApps20 предназначены для чтения данных с MPU6050. Вы можете загрузить код, включая библиотеки в этом репозитории.

Значения Kp, Ki, Kd могут работать или не работать. Если они этого не делают, выполните шаги, описанные выше. Обратите внимание, что наклона в коде установлен на 173 градуса.

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

Ссылка на основную публикацию
Статьи c упоминанием слов:

Adblock
detector