Простеший робот DIY: SPROT на основе Arduino

Содержание

Четвероногий робот на базе Arduino

Простеший робот DIY: SPROT на основе Arduino

Перевёл alexlevchenko для mozgochiny.ru 

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

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

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

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

Шаг 1: Как это работает?

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

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

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

Скелет изготавливается из оргстекла толщиной 2 мм.

Электронная часть самоделки будет состоять из:

  • 12 сервоприводов;
  • arduino nano (можно заменить любой другой платой arduino);
  • Шилда для управления сервоприводами;
  • блока питания (в проекте использовался БП 5В 4А);
  • ультразвукового датчика;
  • hc 05 bluetooth модуля;

Для того, чтобы изготовить шилд понадобится:

  • монтажная плата (предпочтительно с общими линиями (шинами) питания и земли);
  • межплатные штыревые соединители — 30 шт;
  • гнезда на плату – 36 шт;

Инструменты:

  • Лазерный резак (или умелые руки);
  • Суперклей;
  • Термоклей.

Шаг 3: Скелет

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

После этого в любой доступный способ вырезаем 30 деталей будущего робота.

Шаг 4: Сборка

После резки снимаем защитное бумажное покрытие с оргстекла.

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

Затем нужно доработать сервоприводы (приклеить по винту напротив валов сервоприводов).

Этой доработкой мы сделаем робота более устойчивым. Доработку нужно выполнить только для 8 сервоприводов, остальные 4 будут крепиться непосредственно на тело.

Прикрепляем ноги к связующему элементу (изогнутая деталь), а его в свою очередь к сервоприводу на теле.

Шаг 5: Изготавливаем шилд

Изготовление платы довольно простое, если следовать представленным в шаге фотографиям.

Шаг 6: Электроника

Закрепим выводы сервоприводов на плате arduino. Выводы следует соединять в правильной последовательности, иначе ничего не будет работать!

Шаг 7: Программирование

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

ВАЖНО: Вам необходимо добавить дополнительную библиотеку в программную среду arduino IDE. Ссылка на библиотеку представлена ниже:

flexitimer2-master

Робот должен сделать 5 шагов вперед, 5 шагов назад, повернутся влево на 90 градусов, повернутся вправо на 90 градусов. Если Франкенштейн делает всё правильно, мы двигаемся в верном направлении.

P.S: установите робота на чашку, как на стенд, чтобы каждый раз не выставлять его на первоначальную точку. Как только тесты показали нормальную работу робота, можем продолжать испытания, поставив его на землю/пол.

Шаг 8: Инверсная кинематика

Инверсная (обратная) кинематика – именно она в действительности и управляет роботом (если вам не интересна математическая сторона этого проекта и вы торопитесь закончить проект можете пропустить данный шаг, но знание того, что движет роботом всегда будут полезны).

Простыми словами инверсная кинематика или сокращенно ик – «часть» тригонометрических уравнений, что определяют положение острого конца ноги, угла каждого сервоприводи и т.д., что в итоге определяют пару предварительных установочных параметров.

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

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

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

Код прикрепленный ниже – всего лишь недоработанные формулы, с которыми вы можете «повозится», подтвердить и попробовать найти лучшее методы/алгоритмы исполнения.

Шаг 9:

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

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

  • для движения вперед — step_forward();
  • для движения назад — step_back();
  • для поворота налево — turn_left();
  • для поворота направо — turn_right();
  • стоять — stand();
  • сидеть — sit();

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

Шаг 10: QUATTRO готов!

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

(A-z Source)

Источник: http://mozgochiny.ru/electronics-2/chetveronogiy-robot-na-baze-arduino/

Робот-манипулятор на Arduino

Простеший робот DIY: SPROT на основе Arduino

Создаем робот-манипулятор с использованием дальномера, реализуем подсветку.

Резать основание будем из акрила. В качестве двигателей используем сервопривода.

Общее описание проекта робота-манипулятора

В проекте использовано 6 серводвигателей. Для механической части использован акрил толщиной 2 миллиметра. В качестве штатива пригодилось основание от диско-шара (один из двигателей вмонтирован внутрь). Также использован ультразвуковой датчик расстояния и светодиод диаметром 10 мм.

Для управления роботом используется Arduino плата питания. Сам источник питания – блок питания компьютера.

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

Давайте начнем разработку. Вам понадобятся:

  • 6 серводвигателей (я использовал 2 модели mg946, 2 mg995, 2 futuba s3003 (mg995/mg946 по характеристикам лучше, чем futuba s3003, но последние намного дешевле);
  • акрил толщиной 2 миллиметра (и небольшой кусок толщиной 4 мм);
  • ультразвуковой датчик расстояния hc-sr04;
  • светодиды 10 мм (цвет – на ваше усмотрение);
  • штатив (используется в качестве основания);
  • схват аллюминиевый (стоит около 10-15 долларов).

Для управления:

  • Плата Arduino Uno (в проекте использована самодельная плата, которая полностью аналогична Arduino);
  • плата питания (вам придется ее сделать самим, к этому вопросу мы вернемся позже, он требует отдельного внимания);
  • блок питания (в данном случае используется блок питания компьютера);
  • компьютер для программирования вашего манипулятора (если вы используете для программирования Arduino, значит, среда Arduino IDE)

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

Сборка механической части

Перед началом разработки механической части манипулятора, стоит отметить, что чертежей у меня нет. Все узлы делались “на коленке”. Но принцип очень простой.

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

Практически все устанавливается с помощью винтов.

Длина первой части около 19 см; второй – около 17.5; длина переднего звена около 5.5 см. Остальные габариты подбирайте в соответсвии с размерами вашего проекта. В принципе, размеры остальных узлов не так важны.

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

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

Можно обойтись и без него.

Для установки ультразвукового датчика, используется акрил толщиной 2 мм. Тут же снизу можно установить светодиод.

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

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

После сборки механической части, мы можем перейти к “мозгам” нашего манипулятора.

Схват манипулятора

Для установки схвата вам понадобится серводвигатель и несколько винтов.

Итак, что именно необходимо сделать.

Берете качалку от сервы и укорачиваете, пока она не подойдет к вашему схвату. После этого закручиваете два маленьких винта.

После установки сервы, проворачиваете ее в крайнее левое положение и сжимаете губки схвата.

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

Можно подключить сервопривод к плате Arduino и проверить работоспособность схвата.

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

Добавление подсветки на манипулятор

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

Места для установки светодиодов зависят от вашего креатива и фантазии.

Электросхема

Можно использовать вместо резистора R1 потенциометр на 100 кОм для регулировки яркости вручную. В качестве сопротивлени R2 использовались резисторы на 118 Ом.

Перечень основных узлов, которые использовались:

  • R1 – резистор на 100 кОм
  • R2 – резистор на 118 Ом
  • Транзистор bc547
  • Фоторезистор
  • 7 светодиодов
  • Переключатель
  • Подключение к плате Arduino

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

Подключив мультиметр к красному и черному кабелям, вы увидите 5 вольт (которые используются для серводвигателей и ультразвукового датчика расстояния). Желтый и черный дадут вам 12 вольт (для Arduino).

Делаем 5 коннекторов для сервомоторов, параллельно подключаем позитивные к 5 В, а негативные – к земле. Аналогично с датчиком расстояния.

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

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

10 миллиметровый светодиод на роботе тоже подключен к Arduino. Резистор на 100 Ом идет от 13 пина к к позитивной ноге светодиода. Негативный – к земле. В программе его можно отключить.

Для 6 серводвигателей использовано 6 коннекторов, так как 2 серводвигателя снизу используют одинаковый сигнал управления. Соответствующие проводники соединяются и подключаются к одному пину.

Повторюсь, что в качестве питания используется блок питания от персонального компьютера. Либо, конечно, вы можете приобрести отдельный источник питания. Но с учетом, того, что у нас 6 приводов, каждый из которых может потреблять около 2 А, подобный мощный блок питания обойдется недешево.

Обратите внимание, что коннекторы от серв подключаются к ШИМ-выходам Arduino. Возле каждого такого пина на плате есть условное обозначение ~. Ультразвуковой датчик расттояния можно подключить к пинам 6, 7. Светодиод – к 13 пину и земле. Это все пины, которые нам понадобятся.

Теперь мы можем перейти к программированию Arduino.

Перед тем как подключить плату через usb к компьютеру, убедитесь, что вы отключили питание. Когда будете тестировать программу, также отключайте питание вашей робо-руки. Если питание не выключить, Arduino получит 5 вольт от usb и 12 вольт от блока питания. Соответственно, мощность от usb перекинется к источнику питания и он немного “просядет”.

На схеме подключения видно, что были добавлены потенциометры для управления сервами. Потенциометры не являются обязательным звеном, но приведенный код не будет работать без них. Потенциометры можно подключить к пинам 0,1,2,3 и 4.

Программирование и первый запуск

Для управления использовано 5 потенциометров (вполне можно заменить это на 1 потенциометр и два джойстика). Схема подключения с потенциометрами приведена в предыдущей части. Скетч для Arduino находится здесь.

Снизу представлены несколько видео робота-манипулятора в работе. Надеюсь, вам понравится.

На видео сверху представлены последние модификации арма. Пришлось немного изменить конструкцию и заменить несколько деталей. Оказалось, что сервы futuba s3003 слабоваты. Их получилось использовать только для схвата или поворота руки. Так что виесто них были установлены mg995. Ну а mg946 вообще будут отличным вариантом.

Программа управления и пояснения к ней

// управляются привода с помощью переменных резисторов – потенциометров.

#include

int led = 13;

Servo myservo1;

Servo myservo2;

Servo myservo3;

Servo myservo4;

Servo myservo5;

int potpin = 0; // аналоговый пин для подключения потенциометра

int potpin1 =1;

int potpin2 =2;

int potpin3 =3;

int potpin4 =4;

int val; // переменная для считывания данных с аналогового пина

void setup()

{

myservo1.attach(3);

myservo2.attach(5);

myservo3.attach(9);

myservo4.attach(10);

myservo5.attach(11);

pinMode(led, OUTPUT);

}

void loop()

{ //servo 1 analog pin 0

val = analogRead(potpin); // считывает значение потенциометра (значение между 0 и 1023)

val = map(val, 0, 1023, 0, 179); // масштабирует полученное значение для использования с сервами (получаем значение в диапазоне от 0 до 180)

myservo1.write(val); // выводит серву в позицию в соответствии с рассчитанным значением

delay(15); // ждет, пока серводвигатель выйдет в заданное положение

val = analogRead(potpin1); // серва 2 на аналоговом пине 1

val = map(val, 0, 1023, 0, 179);

myservo2.write(val);

delay(15);

val = analogRead(potpin2); // серва 3 на аналоговом пине 2

val = map(val, 0, 1023, 0, 179);

myservo3.write(val);

delay(15);

val = analogRead(potpin3); // серва 4 на аналоговом пине 3

val = map(val, 0, 1023, 0, 179);

myservo4.write(val);

delay(15);

val = analogRead(potpin4); //серва 5 на аналоговом пине 4

val = map(val, 0, 1023, 0, 179);

myservo5.write(val);

delay(15);

}

Скачать исходник кода

Скетч с использованием ультразвукового датчика расстояния

Это, наверное, одна из самых эффектных частей проекта. На манипулятор устанавливается датчик расстояния, который реагирует на препятствия вокруг.

Основные пояснения к коду представлены ниже

#define trigPin 7

#define echoPin 6

#define led 13

#include

Мы добавили в наш код серводвигатели, светодиод и датчик расстояния. Здесь изменять ничего не надо.

Следующий кусок кода:

Servo myservo1;

Servo myservo2;

Servo myservo3;

Servo myservo4;

Servo myservo5;

Мы присвоили всем 5-ти сигналам (для 6 приводов) названия (могут быть любыми)

Следующее:

void setup() {

Serial.begin (9600);

pinMode(trigPin, OUTPUT);

pinMode(echoPin, INPUT);

pinMode(led, OUTPUT);

myservo1.attach(3);

myservo2.attach(5);

myservo3.attach(9);

myservo4.attach(10);

myservo5.attach(11);

}

Мы сообщаем плате Arduino к каким пинам подключены светодиоды, серводвигатели и датчик расстояния. Изменять здесь ничего не стоит.

Идем дальше:

void position1(){

digitalWrite(led, HIGH);

myservo2.writeMicroseconds(1300);

myservo3.writeMicroseconds(1300);

myservo4.writeMicroseconds(800);

myservo5.writeMicroseconds(1000);

}

Здесь кое-что можно менять. Я задал позицию и назвал ее position1. Она будет использована в дальнейшей программе. Если вы хотите обеспечить другое движение, измените значения в скобках в диапазоне от 0 до 3000.

После этого:

void position2(){

digitalWrite(led,LOW);

myservo2.writeMicroseconds(1200);

myservo3.writeMicroseconds(1300);

myservo4.writeMicroseconds(1400);

myservo5.writeMicroseconds(2200);

}

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

Дальше будет следующая запись:

void loop() {

long duration, distance;

digitalWrite(trigPin, LOW);

delayMicroseconds(2);

digitalWrite(trigPin, HIGH);

delayMicroseconds(10);

digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH);

distance = (duration/2) / 29.1;

Теперь начинает отрабатывать основной код программы. Не стоит его изменять. Основная задача приведенных выше строк – настройка датчика расстояния.

После этого:

if (distance

Источник: http://arduino-diy.com/arduino-robot-manipulyator

Наборы Ардуино для начинающих

Простеший робот DIY: SPROT на основе Arduino

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

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

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

Недорогие наборы Ардуино в зарубежных интернет-магазинах

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

Стартовые наборы Ардуино

Набор Arduino Starter Kit обычно содержат только самые основные элементы, включая контроллер Arduino.

Расширенные наборы Arduino

Наборы и конструкторы, включающие дополнительные датчики, моторы, дисплеи. В некоторых наборах вместе с Arduino Uno предлагается еще и вариант контроллера Mega.

Большой набор Ардуино с большим количеством датчиков, шаговым двигателем, экраном, пультом и многим другим. Качественная упаковка, в комплекте инструкция на английском. Самый лучший способ начать работу с Ардуино!Набор Arduino Mega2560 с большим набором датчиков и электронных компонентов в пластиковой коробке. Мелкие детали заботливо упакованы в маленькие коробки, качественные компоненты. В комплекте диск с примерами и инструкция на английском
Популярный набор RFID Ultimate Starter Kit, включающий различны датчики, плату Arduino UNO R3 в пластиковой коробкеОдин из самых недорогих вариантов набора RFID Arduino Kit в неплохой упаковке и традиционным набором содержимого
Отличный большой набор с Arduino Mega 2560, огромным количеством датчиков и модулей. Совсем не “китайское” качество упаковки и компонентовНабор Keyestudio для юных исследователей природы с отличным набором датчиков, включая такие необычные, как датчик пыли

Наборы ардуино роботов – автомобилей

Экономный вариант для тех, у кого уже есть ардуино – просто шасси с набором двигателей, колес, держателя для батареек и проводовБольшой автомобильный комплект Arduino с возможностью управлением по Bluetooth, с датчиками, платой Arduino Uno, драйвером двигателя, шасси, 4 моторами, колесами, сервоприводом, крепежом и проводами.
Отличный качественный набор ардуино автомобиля с контроллером, с шасси, двигателями, датчиками, Bluetooth, а также LCD дисплеем!Очень популярный и недорогой набор с контроллером ардуино, шасси, драйвером двигателя и всеми остальными необходимыми деталями

Российские наборы Ардуино

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

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

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

Набор Матрешка

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

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

Главным компонентом комплекта является платформа Arduino Uno, а также различные модули, провода, макетные платы. Кроме того в состав включена красочная обучающая брошюра.

Набор «Матрешка X» содержит комплект из элементов, позволяющий создать 8 электронных моделей, предлагаемых в брошюре, и не включает таких устройств, как фоторезистор, термистор, конденсаторы и т.д., которыми комплектуются наборы Y или Z.

«Матрешка Y» позволяет собрать уже 17 электронных устройств, и значительно расширена наличием дополнительных элементов. В комплекте имеются различные типы светодиодов, конденсаторы разной емкости, штырьковые соединители и пьезо-пищалка.

Версия Z обеспечивает возможность сборки всех видов устройств из брошюры, и дополнена по сравнению с базовым и средним наборами мотором FA-130, микросервоприводом, светодиодной шкалой и тестовым экраном.

Конструктор Йодо

Набор состоит из совместимого с Ардуино контролера (Iskra JS), который обеспечивает возможность программирования на языке Java Script.

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

Технологичная плата Troyka Shield обеспечивает простое подключение модулей к плате при помощи шлейфов.

Выбрать и купить наборы и конструкторы Амперки можно на официальном сайте: http://amperka.ru/

Наборы и конструкторы Эвольвектор

В зависимости от сложности и входящих в комплект компонентов наборы делятся по предназначению на три уровня:

Для новичков оптимальным выбором станут комплекты стартового уровня, которые помогают изучить основы электроники при помощи брошюр и простых электронных компонентов.  Серия представлена такими наборами: Стартовый набор – Уровень 1 (Основы электроники), Переходный набор -Уровень 1 (набор-дополнение, как переход от стартового уровня к основному), Основной набор – Уровень 1.2.

В наборы второго уровня входят программируемые микроконтроллеры (Ардуино), и освещаются особенности работы с ними.

  Серия представлена наборами: Стартовый набор- Уровень 2 (контроллеры Ардуино), Переходный набор-Уровень 2 (есть три варианта: от старта к основному, от основного к расширенному, от расширенного к расширенному Робот+), Основной набор- Уровень 2 (контроллеры Ардуино), Расширенный набор- Уровень 2 (контроллеры Ардуино).

Комплекты третьего уровня помогают изучить миниатюрные одноплатные компьютеры Raspberry Pi и его аналоги. Серия включает: Стартовый набор. Уровень 3 (Изучение Raspberry pi).

Выбрать и купить наборы Эвольвектор можно на официальном сайте: http://www.evolvector.ru/

ЛАРТ Сармат Армага

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

ЛАРТ Печенег Батана

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

Выбрать и купить наборы ЛАРТ можно на официальном сайте: lartmaster.ru/

Конструктор Смарт Робо

Готовый конструктор для создания электронного робота на основе Ардуино, в комплект входит необходимое количество элементов, и руководство к сборке. Базовый элемент набора – плата от Keyestudio (100% аналог Ардуино).

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

Доработать и усовершенствовать полученную конструкцию можно добавив на плату дополнительные элементы, совместимые с контроллером Ардуино.

Конструктор Смарт

Серия наборов, которые отличаются по комплектации. Основной компонент – плата Smart Uno – аналог контроллера  Ардуино Уно, не уступающий ему по качественным характеристикам.

В зависимости от комплектации (Смарт 10, Смарт 20 и Смарт 30) набор содержит элементы, как для начального уровня проектирования, так и для разработки более сложных проектов.

При необходимости возможно подключение других электронных компонентов, совместимых с микроконтроллером.

Смарт Genuino

Серия наборов – Смарт 10 Genuino, Смарт 20 Genuino, Смарт 30 Genuino, которые отличны по количеству деталей в комплекте. Главный базовый компонент – плата Genuino Uno, кроме которой в составе имеются электронные детали, беспаечная макетная плата, провода и руководство по проектированию.  Набор будет интересен как новичкам, так и профессиональным пользователям.

Выбрать и купить конструктор SmartElements можно на официальном сайте: http://smartelements.ru/

Робоплатформа Robbo (ScratchDuino)

Конструктор предназначен для обучения детей и взрослых основам робототехники и электроники. Управление роботизированным механизмом может осуществляться из различных сред программирования (Scratch, Lazarus, Кумир) или же пульта управления. Базовый компонент – картридж Ардуино. В зависимости от типа комплектации варьируется количество составных элементов.

Выбрать и купить конструктор Robbo можно на официальном сайте: http://robboclub.ru/

Мастер Ардуино

Образовательный электронный конструктор, который разделен на серии, в зависимости от количества базовых компонентов (Старт, Light, XXL). Главный элемент – микроконтроллер Arduino UNO R3,  помимо которого в набор входят и другие электронные детали, необходимые для обучения робототехнике и конструированию. Наборы помогут освоить правила и особенности программирования на С/C++.

Выбрать и купить конструктор серии Мастер можно на официальном сайте: http://mbitech.ru/

Подведение итогов

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

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

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

Источник: https://ArduinoMaster.ru/arduino-kit/rus-konstruktory-arduino-dlya-detej/

Управление двигателями робота на основе микроконтроллера Arduino

Простеший робот DIY: SPROT на основе Arduino

26 ноября в 19:48 / Уроки / Моторы, Робототехника

Arduino – отличная платформа для робототехники. Микроконтроллер предлагает множество входов, выходов и легко разработать код для работы с ними.

Этот урок является первым из серии «Роботы Arduino» и мы начнем с движения робота – путем управления двумя двигателями постоянного тока. Спасибо за данный урок нашим друзьям из проекта darkbluebit.com.

Шаг 1: Список комплектующих

Нам понадобятся для создания первого робота некоторые комплектующие.

– Комплект-шасси для создания робота (на фото выше) – можно купить отдельными деталями или в наборе- Драйвер-мост двигателя H-Bridge TB6612FNG- 4x – Диод 1N4001- 4x – 1,5 В AA батарея- 1x – 9 В батарея

– Макет и провода

Шаг 2: Шасси

Есть много шасси для роботов, мы купили на Amazon.com комплект шасси для автомобиля Smart Robot от Ardokit, потому что это очень простой и довольно дешевый вариант. Он поставляется с двумя колесами, управляемыми двумя двигателями постоянного тока (3 – 6 В).

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

Arduino может обеспечить только очень ограниченный ток непосредственно от выходных контактов – около 20 – 40 мА. Этого достаточно для светодиода, но нам нужен еще один способ питания двигателей.

Контроллер H-Bridge (H-мост) – это схема, используемая для управления скоростью и направлением двигателя. В этом случае нам нужен двойной H-мост (H-Bridge) для управления двумя из них.

В цепи используется внешнее питание для обеспечения тока для двигателей.

Батарейный блок 4x AA (держатель, входящий в комплект корпуса) предназначен только для этой цели – таким образом, источник питания Arduino (батарея 9 В) можно разделить для защиты нашей платы.

Мы выбрали MOSFET на основе TB6612FNG от Pololu, вы также можете купить почти то же самое от SparkFun (с другим цветом и распиновкой). Эти H-мосты способны управлять двигателями в диапазоне от 4,5 В до 13,5 В и обеспечивать непрерывный ток 1 А (с пиками 3 А).

Распиновка Pololu TB6612FNG и SparkFun TB6612FNG

Справка: H-мост — это электронная схема, которая даёт возможность приложить напряжение к нагрузке в разных направлениях. Эта схема очень часто используется в робототехнике и игрушечных машинах, чтобы изменять направление вращения мотора. H-мосты представлены в виде интегральных схем, а также могут быть построены из отдельных радиодеталей.

Структура H-моста (красным)

Шаг 4: Обратное подавление EMF

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

Мы можем подавить это поведение, подключив диод как на схеме ниже:

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

Шаг 5: Цепь

Наше финальное подключение можно посмотреть на схеме ниже:

Шаг 6: Код

Номера выводов в приведенном ниже коде соответствуют схеме с SparkFun H-Bridge (см.выше), номера контактов в видео на последнем шаге отличаются друг от друга, поскольку там использовался Pololu H-Bridge.

// Left motorconst int pinAIN1 = 5; //Directionconst int pinAIN2 = 4; //Directionconst int pinPWMA = 3; //Speed // Right motorconst int pinBIN1 = 7; //Directionconst int pinBIN2 = 8; //Directionconst int pinPWMB = 9; //Speed //H-Bridge Standbyconst int pinSTBY = 6; boolean leftMotor = 1;boolean rightMotor = 0; void setup() { pinMode(pinPWMA, OUTPUT); pinMode(pinAIN1, OUTPUT); pinMode(pinAIN2, OUTPUT); pinMode(pinPWMB, OUTPUT); pinMode(pinBIN1, OUTPUT); pinMode(pinBIN2, OUTPUT); pinMode(pinSTBY, OUTPUT);} void loop() { // acceleration for (int i = 0; i = 0; i -= 5) { motorDrive(leftMotor, 1, i); motorDrive(rightMotor, 1, i); delay(55); } // stop motorStop(leftMotor); motorStop(rightMotor); delay(10000);} /* Drive a motor: – motorNumber: 0 left motor, 1 right motor – moveForward: motor direction (0 reverse, 1 forward) – motorSpeed: 0 to 255 —> 0 = stop / 255 = max speed*/void motorDrive(boolean motorNumber, boolean moveForward, int motorSpeed) { boolean pinIn1; //Relates to AIN1 or BIN1 (depending on the motor number specified) // direction to turn the motor // clockwise: IN1 = HIGH and IN2 = LOW // counter-clockwise: IN1 = LOW and IN2 = HIGH if (moveForward) pinIn1 = LOW; else pinIn1 = HIGH; // select the motor to turn, set the direction and the speed if (motorNumber == leftMotor) { digitalWrite(pinAIN1, pinIn1); digitalWrite(pinAIN2, !pinIn1); analogWrite(pinPWMA, motorSpeed); } else { digitalWrite(pinBIN1, pinIn1); digitalWrite(pinBIN2, !pinIn1); analogWrite(pinPWMB, motorSpeed); } // STBY must be high to enable motors digitalWrite(pinSTBY, HIGH);} // Stop the specified motorvoid motorStop(boolean motorNumber) { if (motorNumber == leftMotor) { digitalWrite(pinAIN1, LOW); digitalWrite(pinAIN2, LOW); } else { digitalWrite(pinBIN1, LOW); digitalWrite(pinBIN2, LOW); }}

Шаг 7: Итоговый результат

На видео ниже процесс по созданию данного урока и итоговый результат.

Спасибо, что прошли этот урок с нами до конца! Желаем вам отличных проектов и до встречи в ближайших уроках.

Источник: https://ArduinoPlus.ru/arduino-robot-upravlenie-dvigatelem/

CARduino – самодельный робот на Arduino

Простеший робот DIY: SPROT на основе Arduino

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

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

Что такое библиотека?
Библиотека облегчает управление CARduino. Этот проект рассчитан на людей с небольшим опытом в программировании, которые хотят делать простых роботов. Вам даже не нужно знать, как управлять мотором.

Библиотека сводит программу до простых команд  “Повернуть направо и проехать 1 секунду” или “Ехать вперед 3 секунды, а затем ускориться”. Библиотека также содержит примеры программ, которые помогут вам.

Более подробная информация о библиотеке содержится в конце статьи.

Если у меня нет таких же материалов, я могу использовать другие?
Конечно, вы можете собирать робота как вам угодно. Библиотека будет работать практически независимо от сборки. Например, вы можете использовать другой материал для шасси. Я использовал дерево, потому что смог найти только его.

Что может сделать робот?
Он может делать все что угодно. Даже без дополнительных устройств его возможности практически не ограничены. При помощи библиотеки CARduino, писать программу для Arduino очень легко.  Дополнительная макетная плата позволяет добавлять разнообразные датчики.

Какая стоимость робота?
Если собирать его с нуля, то около 100$. У меня были почти все части, поэтому он обошелся мне примерно в 30$. Все компоненты достаточно распространены и должны у вас быть.

Детали

1х Arduino Uno.1х Макетная плата.

1х Разъёмы для Arduino и макетной платы.

1х Дальномер Sharp.2х Микро мотора.Пара колес 49×19мм.Пара кронштейнов для двигателя.Пара шариковых колёс .Драйвер моторов для Arduino.1х Кусок дерева 15×10.75 см.12х Шурупов.

1х 9В батарея

Подготовка шасси робота

Перед началом сборки необходимо вырезать кусок дерева необходимых размеров, прикрепить шариковые колёса как описано ниже, прикрепить основные колёса, установит макетную плату и Arduino на основу.

Установка шариковых колёс

Установите оба колеса сзади, с обеих сторон. Отметить места, на которые попадают их крепёжные отверстия и просверлите их. Используйте шурупы для крепления.

Установка моторчиков

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

Установка Arduino и макетной платы

Вы должны начать с центрирования Arduino и макетной платы на шасси. Отметьте отверстия держателя и просверлите их.  Потом прикрепите основу с макетной платой и Arduino шурупами.

Установка датчика

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

Убедитесь, что при установке JST выводы находится вверху. Вставьте JST провода в датчик.
Красный провод присоедините к + макетной платы, черный к GND, а желтый в любую другую точку.

После этого подключите драйвер моторов к Arduino.

Подключение двигателей колес к драйверу

Подключите положительный контакт правого двигателя к отрицательному контакту А драйвера.
Подключите отрицательный контакт правого двигателя к отрицательному контакту А драйвера.

Подключите положительный контакт левого двигателя к отрицательному контакту В драйвера.
Подключите отрицательный контакт левого двигателя к отрицательному контакту В драйвера.

Подключение питания и датчика

Подключите 5В к + макетной платы, а GND к GND макетной платы. Желтый провод датчика подключите ко второму контакту АЦП.

Установка батареи

Просто приклейте её супер клеем на задней панели CARduino. Затем присоедините + и GND  к + и GND Carduino.

Вы закончили сборку робота!  На нем без изменений будет работать библиотека и тестовые программы. Подробнее о этом написано ниже.

Библиотека

Для установки библиотеки скачайте Carduino.zip ниже. Найдите / arduino-1.0/libraries. Извлеките содержимое архива в эту папку.. Чтобы использовать её, откройте Arduino IDE и последуйте по пути -> import library -> Carduino.

Значение функций:
void mycarduino.begin ()
Инициализация CARduino. Напишите эту команду в начале программы.

void mycarduino.goforward (время в секундах, скорость)
Эта функция перемещает CARduino вперед в течении указанного времени с указанной скоростью. Скорость может быть любым числом от 1 до 1023, 1023 – максимальная скорость.

void mycarduino.goback (время в секундах, скорость)
То же самое, только назад.

void mycarduino.turnright (время)
Поворот направо в течении указанного в времени(в миллисекундах).

void mycarduino.turnleft (время)
Тоже самое налево.

Int mycarduino.proximity ()
Возвращает значение с датчика в сантиметрах

Примеры:
Перейдите по адресу File -> Examples -> Carduino -> [имя на ваш вкус]

Blink –  CARduino секунду двигается вперед, на секунду останавливается, секунду движется вперёд, и т.д.

Object Avoid  – CARduino  постоянно движется вперед, пока объект находится на расстоянии более 25 сантиметров. Затем он случайным образом выбирает сторону и поворачивает в неё на 800 или 2300 миллисекунд.

Cautious Driving – работает как предыдущая программа, но замечая объект на расстоянии 40 см замедляет скорость.

Вы полностью закончили проект!

Ниже видео робота в действии (из-за проблем с дальномером он отключен, но робот работал)

Оригинал статьи

Прикрепленные файлы:

Источник: http://cxem.net/uprav/uprav23.php

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.