Выкройка робота для ардуино

Самобалансирующийся робот на Arduino Uno

Нам кажется что многие из вас находятся под сильным впечатлением от быстро развивающихся технологий современного мира, одними из впечатляющих технологий современности являются двигатели от RYNO и самобалансирующиеся скутеры от Segway. Мы думаем, что многих из вас посещала мысль создать что либо подобное. Поэтому в данной статье мы рассмотрим создание DIY (самодельного, своими руками) самобалансирующегося робота на основе платы Arduino. Во многом принципы работы данного робота будут основаны на алгоритмах PID (PID — proportional, integral, derivative — пропорционально-интегрально-дифференцирующий (ПИД) регулятор), используемых для построения самобалансирующихся скутеров.

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

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. Приводной двигатель постоянного тока желтого цвета (Geared DC motor (Yellow coloured) ) – 2 шт.
  3. Модуль драйвера мотора L298N (L298N Motor Driver Module) (купить на AliExpress).
  4. Гироскоп MPU6050 (купить на AliExpress).
  5. Два колеса.
  6. 7.4V Li-ion Battery (литий-ионная батарея или литий-полимерная батарея) (купить на AliExpress).
  7. Соединительные провода.
  8. Напечатанный на 3D принтере скелет (остов) робота.
Читайте также:  Крестильное платье с кружевом

Микроконтроллер: в качестве управляющего микроконтроллера в данном проекте мы выбрали плату Arduino UNO потому что с ней просто работать. Вы можете также использовать платы Arduino Nano или Arduino mini, но мы все таки рекомендовали использовать бы Arduino UNO потому что ее можно программировать без использования внешнего аппаратного обеспечения.

Двигатели: конечно, лучшим выбором для построения самобалансирующегося робота были бы шаговые двигатели, но в целях упрощения проекта мы использовали приводные двигатели (gear motor) постоянного тока желтого цвета – они значительно проще и дешевле чем шаговые.

Драйвер мотора (Motor Driver): если вы, как и мы, выбрали приводные двигатели постоянного тока, то вы можете использовать модуль драйвера мотора L298N или даже L293D (с ним проект будет также работать отлично). Более подробно об управлении электродвигателем постоянного тока с помощью платы Arduino и драйвера мотора L293D можно прочитать в этой статье.

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

Акселерометр и гироскоп: наилучшим выбором в качестве акселерометра и гироскопа для нашего проекта будет модуль MPU6050 – на нашем сайте вы можете прочитать статью о его подключении к плате Arduino. Ни в коем случае не пытайтесь создать подобного робота с использованием обычного акселерометра, например, ADXL345 или подобного ему – это не будет работать. Более подробно объяснение этого фактора будет приведено в конце статьи.

Батарея: для проекта необходима батарея, которая по возможности будет максимально легкой и ее напряжение должно быть больше 5V чтобы мы могли запитать от нее плату Arduino непосредственно, без использования повышающего напряжения модуля. Идеальным выбором в данном случае будет 7.4V Li-polymer (литий-полимерная) батарея. Но в нашем распоряжении была только 7.4V литий-ионная батарея, поэтому мы ее и использовали при создании робота. Но помните о том, что литий-полимерная батарея в данном случае будет все таки лучше чем литий-ионная.

Шасси робота: еще один элемент робота, при создании которого неуместны компромиссы. Для изготовления шасси робота вы можете использовать листы картона, дерево, пластик и т.п. Но помните о том, что шасси должно быть достаточно прочным и не изгибаться когда робот пытается балансировать. Мы для изготовления шасси робота использовали 3D принтер, ссылки на необходимые файлы для него будут приведены далее в статье.

3D печать и сборка шасси робота

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

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

Вам необходимо напечатать скелет робота и 4 компонента для крепления двигателей. Для сборки робота можно использовать 3 мм болты (шурупы). После сборки у вас должна получиться конструкция примерно следующего вида:

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

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

Работа схемы

Схема самобалансирующегося робота на основе платы Arduino UNO представлена на следующем рисунке.

Как видите, схема достаточно проста и в ней вам всего лишь необходимо подключить гироскоп MPU6050 и драйвер мотора к плате Arduino, а также соединить двигатели с драйвером мотора. Схема запитывается от литий-ионной батареи на 7.4V.

Плата Arduino и модуль драйвер мотора L298N непосредственно запитываются через контакты Vin и 12V соответственно. Встроенный в плату Arduino регулятор напряжения преобразует входное напряжение 7.4V в напряжение 5V, с помощью которого и запитывается микроконтроллер ATmega на плате и гироскоп MPU6050. Электродвигатели постоянного тока могут запитываться от напряжения от 5V до 12V, в нашем случае они будут работать от напряжения 7.4V.

Распиновка подключения контактов гироскопа MPU6050 представлена в следующей таблице.

MPU6050 контакт Arduino
Vcc +5V
Ground Gnd
SCL A5
SDA A4
INT D2

Распиновка подключения контактов драйвера мотора L298N представлена в следующей таблице.

L298N контакт Arduino
IN1 D6
IN2 D9
IN3 D10
IN4 D11

Гироскоп MPU6050 взаимодействует с платой Arduino через интерфейс I2C, поэтому для его подключения мы использовали SPI контакты A4 и A5 платы Arduino. Двигатели постоянного тока управляются с помощью ШИМ (широтно-импульсная модуляция) контактов D6, D9, D10 и D11. ШИМ сигнал в данном случае необходим для управления скоростью вращения двигателей.

Программирование самобалансирующегося робота

Как мы уже видели, схема нашего проекта достаточно проста, но вся «магия» нашего проекта будет как раз заключаться в его программе для платы Arduino UNO. В программе мы с помощью гироскопа MPU6050 будем проверять наклоняется ли робот вперед или назад. Если робот будет наклоняться вперед, то нам необходимо вращать колеса в прямом направлении (прямо) для удержания баланса, а если он будет наклоняться назад, то нам необходимо будет вращать колеса в обратном направлении.

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

Для определения текущего положения робота в нашем проекте мы используем модуль MPU6050, который является 6-осевым акселерометром и гироскопом одновременно. Для того чтобы получить надежное значение позиции робота нам необходимо получать значения одновременно и от акселерометра, и от гироскопа поскольку значения от акселерометра обычно зашумлены, а значения от гироскопа имеют тенденцию смещаться (дрифтовать) с течением времени. То есть в программе мы будем комбинировать значения с контактов yaw, pitch и roll гироскопа, а использовать будем только значение с выхода yaw.

На первый взгляд задача создания подобного робота в домашних условиях звучит как невозможная, неправда ли? Но благодаря сообществу Arduino у нас в распоряжении уже есть готовая библиотека, способная выполнять вычисления по алгоритму PID, а также библиотека для работы с гироскопом MPU6050. Эти библиотеки разработаны авторами br3ttb и jrowberg соответственно. Перед началом написания программы вам необходимо их скачать по ниже приведенным ссылкам и добавить в папку с библиотеками Arduino на вашем компьютере.

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

Первым делом в программе мы должны подключить используемые библиотеки — I2C library, PID Library и MPU6050 Library (последние две мы как раз скачали).

Робот на Ардуино и машинка на Bluetooth своими руками

Робот – машинка на Ардуино становятся одним из самым популярных инженерных проектов в школьной робототехнике. Именно с таких устройств, автономных или управляемых со смартфона и bluetooth, начинается путь в робототехнику “после Lego”. К счастью, сегодня можно без труда купить все необходимые компоненты и достаточно быстро создать своего первого робота для езды по линии или объезда препятствий. В этой статье вы найдете подробную видео инструкцию как сделать продвинутый автомобиль Arduino Car своими руками, с питанием, датчиками линии, расстояния и управлении через bluetooth.

Робот на ардуино своими руками

В отличие от других проектов, создание робота – автомобиля (Arduino Car) требует понимания и навыков работы сразу с несколькими важными компонентами, поэтому не стоит приступать к созданию машинок без получения базовых навыков работы с платформой Arduino. В любом случае, вам нужно будет но только подключить готовые модули, но и собрать конструкцию, шасси с двигателями, обеспечить правильное питание и управление. Все это потребует определенного терпения.

Робот машина на Ардуино

Вот список ключевых компонентов, которые обязательно встретятся в проекте.

Контроллер Ардуино

Куда уж без него, если мы говорим о проектах на этой платформе. Как правило, роботы машины делают на базе плат Arduino Uno и Nano. Mega будут слишком большие, Pro Mini сложнее подключать к компьютеру и соединять с остальными компонентами, а Leonardo требуют дополнительных навыков в программировании, они дороже и их основное преимущество (тесная интеграция с компьютером в качестве периферийного устройства) в данном случае не слишком востребована.

Есть еще вариант использования плат ESP8266 или ESP32, тогда в проекте появляется возможность управления машиной через WiFi. Но и сами платы и их программирование требует определенных навыков, в этой статье мы будем говорить преимущественно об Uno или Nano.

Конструкция, шасси и двигатели робота на Ардуино

Для того, чтобы что-то поехало или стало перемещаться, надо снабдить “это” колесами, гусеницами или манипуляторами-ногами. Вот тут выбор совершенно не ограничен, можно использовать совершенно любые комбинации и сочетания платформ. Как правило, в качестве начального варианта берутся уже готовые наборы платформ с Алиэкспресс.

Двигатель, шасси и колеса машинки на ардуино

Если работать со стандартными наборами вам не интересно, можно создать платформу своими руками. Например, разобрать игрушечные радиоуправляемые машинки или любые двигатели на 5-12 вольт, с редукторами или без. Колеса можно создать и самим, что тоже является интересной задачей.

Драйвер двигателей

Ардуино – достаточно ранимое устройство, не терпящее больших нагрузок по току. Соединяя его с “брутальными” мощными двигателями, не избежать беды. Поэтому для нормальной совместной работы нам нужно будет включить в схему робота компонент, отвечающий за управление двигателями – подающий и отключающий ток на их обмотки. Речь идет о микросхеме или готовом модуле, которые называют драйвером двигателя. На нашем сайте есть статьи, посвященные драйверам, построенным на схеме H-моста. Если вы покупаете готовые шасси, то обязательно предусмотрите возможность размещения на них подходящего драйвера.

Красивый корпус

Как правило, вся конструкция автомобиля строится вокруг его шасси. Если посмотреть примеры готовых проектов, то они часто выглядят как “провода на колесиках” – внешний вид их изобилует пучками соединительных проводов, ведущих от восседающего на троне контроллера Ардуино к драйверам, моторам и датчикам. Между тем, красивый и функциональный корпус не только вызывает правильные эстетические чувства и помогает выделить вашу модель от остальных. Хороший корпус может превратить игрушку в реальное устройство, помогает привить навыки конструирования и промышленного дизайна, что важно для инженеров любого возраста.

Питание робота

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

Питание робота на Ардуино

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

  • Обычные батарейки AA. Тут нужно понимать, что платы Arduino Uno, Nano и большинство двигателей, используемых в Ардуино-робототехнике, требуют напряжения в диапазоне 6-9 вольт. Поэтому придется собрать вместе последовательно не менее 4 батареек на 1,5 В, причем сами батарейки должны быть хорошего качества и обеспечивать работу с достаточно большим током. Например, большинство солевых батареек этим критериям не удовлетворяют. Батарейки AAA при создании ардуино-машинок практически не используются из-за своей пониженной емкости (хотя могут использоваться в миниатюрных моделях, где размер имеет первостепенное значение).
  • Аккумулятор AA. Здесь возникает еще большее ограничение по напряжению и току. Большинство аккумуляторов выдают напряжение 1,2 вольт, поэтому их требуется больше для “собирания” нужных нам 6-9 вольт. Несомненным плюсом является возможность перезарядки.
  • Литиевые аккумуляторы 18650. Это уже “серьезная артиллерия”, позволяющая получить большое время автономной работы, возможность подзарядки и приемлемые характеристики по току и напряжению. Рабочее напряжение для таких элементов питания – 3,7 В, что позволяет собирать готовую схему питания всего из двух элементов.
  • Другие источники питания. Сюда можно включить как более мощные и габаритные никель-металлгидридные, кадмиевые аккумуляторы, так и многочисленные литий-ионные “плоские” варианты, используемые в дронах, смартфонах или другой портативной цифровой технике.

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

Где купить платформу и запчасти

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

Оцените статью