Как своими руками сделать паукообразного робота на arduino

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

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

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

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

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

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

Как своими руками сделать паукообразного робота на arduino Как своими руками сделать паукообразного робота на arduino Как своими руками сделать паукообразного робота на 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)

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

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

Как своими руками сделать паукообразного робота на arduino Как своими руками сделать паукообразного робота на arduino Как своими руками сделать паукообразного робота на arduino

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

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

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

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

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

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

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

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

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

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

Как своими руками сделать паукообразного робота на arduino Как своими руками сделать паукообразного робота на arduino Как своими руками сделать паукообразного робота на arduino Как своими руками сделать паукообразного робота на 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 вообще будут отличным вариантом.

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

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

  2. #include
  3. int led = 13;
  4. Servo myservo1;
  5. Servo myservo2;
  6. Servo myservo3;
  7. Servo myservo4;
  8. Servo myservo5;
  9. int potpin = 0; // аналоговый пин для подключения потенциометра
  10. int potpin1 =1;
  11. int potpin2 =2;
  12. int potpin3 =3;
  13. int potpin4 =4;
  14. int val; // переменная для считывания данных с аналогового пина
  15. void setup()
  16. {
  17. myservo1.attach(3);
  18. myservo2.attach(5);
  19. myservo3.attach(9);
  20. myservo4.attach(10);
  21. myservo5.attach(11);
  22. pinMode(led, OUTPUT);
  23. }
  24. void loop()
  25. { //servo 1 analog pin 0
  26. val = analogRead(potpin); // считывает значение потенциометра (значение между 0 и 1023)
  27. val = map(val, 0, 1023, 0, 179); // масштабирует полученное значение для использования с сервами (получаем значение в диапазоне от 0 до 180)
  28. myservo1.write(val); // выводит серву в позицию в соответствии с рассчитанным значением
  29. delay(15); // ждет, пока серводвигатель выйдет в заданное положение
  30. val = analogRead(potpin1); // серва 2 на аналоговом пине 1
  31. val = map(val, 0, 1023, 0, 179);
  32. myservo2.write(val);
  33. delay(15);
  34. val = analogRead(potpin2); // серва 3 на аналоговом пине 2
  35. val = map(val, 0, 1023, 0, 179);
  36. myservo3.write(val);
  37. delay(15);
  38. val = analogRead(potpin3); // серва 4 на аналоговом пине 3
  39. val = map(val, 0, 1023, 0, 179);
  40. myservo4.write(val);
  41. delay(15);
  42. val = analogRead(potpin4); //серва 5 на аналоговом пине 4
  43. val = map(val, 0, 1023, 0, 179);
  44. myservo5.write(val);
  45. delay(15);
  46. }

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

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

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

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

  • #define trigPin 7
  • #define echoPin 6
  • #define led 13
  • #include

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

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

  1. Servo myservo1;
  2. Servo myservo2;
  3. Servo myservo3;
  4. Servo myservo4;
  5. 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 к каким пинам подключены светодиоды, серводвигатели и датчик расстояния. Изменять здесь ничего не стоит.

Идем дальше:

  1. void position1(){
  2. digitalWrite(led, HIGH);
  3. myservo2.writeMicroseconds(1300);
  4. myservo3.writeMicroseconds(1300);
  5. myservo4.writeMicroseconds(800);
  6. myservo5.writeMicroseconds(1000);
  7. }

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

После этого:

  • void position2(){
  • digitalWrite(led,LOW);
  • myservo2.writeMicroseconds(1200);
  • myservo3.writeMicroseconds(1300);
  • myservo4.writeMicroseconds(1400);
  • myservo5.writeMicroseconds(2200);
  • }

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

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

  1. void loop() {
  2. long duration, distance;
  3. digitalWrite(trigPin, LOW);
  4. delayMicroseconds(2);
  5. digitalWrite(trigPin, HIGH);
  6. delayMicroseconds(10);
  7. digitalWrite(trigPin, LOW);
  8. duration = pulseIn(echoPin, HIGH);
  9. distance = (duration/2) / 29.1;

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

После этого:

  • if (distance

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

Как своими руками сделать паукообразного робота на Arduino

Dmitrij 7-12-2015, 05:23 9 009 Arduino / Роботы

Читайте также:  Лесная волокуша своими руками

Как своими руками сделать паукообразного робота на arduinoДля тех, кто решил проверить свои силы в области роботостроения и заодно желает изучить возможности платформы Ardunio, есть отличный способ это сделать, собрав робота-паука, который будет описан в этой статье. В качестве основных силовых элементов, благодаря которым робот будет передвигаться, являются сервоприводы. Что касается мозга, то здесь в качестве него выступает Arduino, а также Fischertechnik. По словам автора, робот получился довольно интересным и перспективным.

Материалы и инструменты для изготовления:

— набор лезвий;- термоклей;- дремель (нужны очень тонкие сверла);- винтоверт;- дрель со сверлом 7/32;- крестообразная отвертка;- лезвие;- отсек для батареек;- макетная плата.Как своими руками сделать паукообразного робота на arduinoИз электроники понадобится:— восемь микросервоприводов с кронштейнами;- 6 батареек типа АА и прищепка;- много перемычек и контактных разъемов.В качестве программной части будет нужна Arduino с блоком питания.И запчастей необходим набор Fischertechnik.

Процесс изготовления робота. :

Шаг первый. Создаем каркас робота

Чтобы изготовить каркас понадобится набор Fischertechnik. Как он должен выглядеть, можно увидеть на фото. Для создания каркаса нужны три высоких «кирпичика», между ними должно иметься четыре отверстия. Конкретно в этой самоделке будет использоваться элемент с 11-ю вырезами. Важно убедится в том, чтобы все сервоприводы были рабочими.

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

Что

Что-бы соединить два сервопривода используется горячий клей.

Шаг четвертый. Подсоединяем ноги

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

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

На каждом сервоприводе есть три контакта, один отвечает за заземление, через один подается питание, а еще один нужен для контроля двигателя. Контакты сервопривода Vcc и GND нужно соединить с контактами макета Vcc и GND. Также к каналам макета GND и Vcc подключается источник питания мощностью 7.5В. Провода для управления сервоприводом окрашены в оранжевый и желтый цвет.

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

Как должен выглядеть код, можно увидеть на фото. Благодаря этому коду происходит выравнивание ног робота.Чтобы паук мог подняться, нужно создать еще один проект под названием Up и Down. Благодаря этому коду ноги паука смогут двигаться вверх и вниз. Чтобы робот мог двигаться вперед и назад нужно также создать еще один проект. Как он будет выглядеть, можно увидеть на фото.

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

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

Прошивка: proshivka-2.rar [406 b] (скачиваний: 168)

Источник

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

8

Идея

6

Описание

6

Исполнение

Итоговая оценка: 6.67

Источник: https://USamodelkina.ru/6753-kak-svoimi-rukami-sdelat-paukoobraznogo-robota-na-arduino.html

Робот Паук

Как своими руками сделать паукообразного робота на arduino

Очередной паучок ждет своего хозяина. Он имеет 4 ноги с двумя суставами на каждой. С одной стороны это дает широкие возможности в движении, с другой — Вы не разоритесь на покупке сервоприводов. Именно они являются движущей силой данного робота. Использование платы Arduino (или аналога) сделает программирование быстрым приятным, особенно, если Вы будете использовать нашу графическую среду RobotON Studio! !

Данный робот не имеет в базовой комплектации никаких датчиков и сенсоров. Но Вы всегда их можете добавить самостоятельно. Главное — научится программировать Квадропода совершать красивые движения и даже танцевать!

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

Как своими руками сделать паукообразного робота на arduino

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

Как своими руками сделать паукообразного робота на arduino

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

Как своими руками сделать паукообразного робота на arduino

Теперь пора установить электронику. Можно использовать плату, показанную на картинке. На неё установить батарейки. Но можно использовать обычную Arduino Nano со специальным шилдом приспособленным под сервы. В этом случае вам понадобится отдельно подключить батарейный отсек или аккумулятор. Устанавливаем все это на корпус.

Как своими руками сделать паукообразного робота на arduino

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

Как своими руками сделать паукообразного робота на arduino

Устанавливаем сделанные нами суставы на сервоприводы под углом 45 градусов. Закрепляем их в этом положении пропеллерами, идущими в комплекте с двигателями. Напоминаем, что предварительно необходимо настроить все сервоприводы на угол 90 градусов.

Как своими руками сделать паукообразного робота на arduino

Аналогичным образом подсоединяем когти и закрепляем их.

Как своими руками сделать паукообразного робота на arduino

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

Как своими руками сделать паукообразного робота на arduino

Особенности:

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

Для того, чтобы ноги паука могли свободно двигаться в любую сторону, необходимо заранее выставить положение вала серв в среднее положение, а именно на 90 градусов. Можно использовать моторы с металлическим редуктором (версия MG) или с пластиковым (SG).

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

  • 8 cервомоторов SG90 или MG90
  • Arduino Nano/Uno или TinyPlan V4 Controller Board
  • 6 батареек или аккумулятор на 12 В

Характеристики:

  • Простое программирование ввиду наличия одного типа
  • Возможность использования различных датчиков и сенсоров
  • Отличная игрушка для развлечений и демонстраций
  • Интересная инженерная работа
  • Необходимость использования 3D принтера

Видео:

Источник: https://robot-on.ru/3dmodels/robot-quadropod

Управляемая рука робота с помощью смартфона на Ардуино

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

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

Как своими руками сделать паукообразного робота на arduino

Шаг 1. Детали, которые понадобятся

  1. Серводвигатели — 4 штуки (в уроке использованы микросерверы SG90, но любая модель или размер вполне подойдут). Вы можете использовать до 5 серво для этого робота, у нас всего 4.
  2. Нарезанный кусок картона — сделать «тело».
  3. USB OTG (на фото ниже, выбрать любой).

    Как своими руками сделать паукообразного робота на arduino

  4. И, конечно, плата Arduino (любая).
  5. Несколько перемычек, чтобы сделать соединения.
  6. Для питания серводвигателей используется 9-вольтная батарея.

USB On-the-Go или просто OTG – это адаптер, который позволяет подключать к вашему смартфону переферийные устройства, такие как клавиатура, мышь, контроллеры, жесткие диски и прочее. Этот переходник фактически превращает ваше устройство в компьютер.

Шаг 2. Создание основы руки робота

Как своими руками сделать паукообразного робота на arduino
Как своими руками сделать паукообразного робота на arduino

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

Процесс подробнее лучше передан в видео:

Шаг 3. Создание щупальцев (пальцев)

Как своими руками сделать паукообразного робота на arduino

Щупальца или пальцы робота Ардуино для захвата предметов сделали используя соломку или трубку для напитков. И добавил простую нитку, леску или веревку, таким образом что когда её потянуть, захват будет закрыт.

Шаг 4. Собираем руку

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

Шаг 5. Цепь

Как своими руками сделать паукообразного робота на arduino

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

Шаг 6. Загружаем Андроид приложение

Источник: https://ArduinoPlus.ru/arduino-ruka-robota/

Опыт создания первого робота на Ардуино (робот-«охотник»)

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

Ссылка на итоговый код (скорее всего, не самый идеальный) дана в конце статьи. Как своими руками сделать паукообразного робота на arduino По мере возможности я привлекал к участию своего сына (8 лет). Что именно с ним получалось, а что нет — на это я выделил часть статьи, возможно, кому-то пригодится.

Общее описание робота

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

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

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

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

Хотя в итоге робот и не получился достаточно резвым, но он честно взаимодействует с окружающими его людьми. Особенно это нравится детям (иногда, правда, кажется, что они вот-вот растопчут его, аж сердце ёкает…). Думаю, для популяризации технического конструирования это хорошее решение.

Структура робота

Итак, мы определились с идеей, перейдем к компоновке. Список элементов формируется из того, что должен уметь робот. Тут всё вполне очевидно, поэтому сразу посмотрим на нумерацию: Как своими руками сделать паукообразного робота на arduino «Мозги» робота — плата arduino uno (1); была в заказанном из Китая наборе. Для наших целей ее вполне хватает (ориентируемся на количество используемых пинов). Из этого же набора мы взяли готовое шасси (2), на которое крепятся два ведущих колеса (3) и одно заднее (свободно вращающееся) (4). Также в наборе был готовый батарейный отсек (5). Спереди у робота стоит ультразвуковой датчик (HC-SR04) (6), сзади — драйвер двигателей (L298N) (7), по центру — светодиод-мигалка (8), и чуть в стороне — пищалка (9). На этапе компоновки мы смотрим: — чтобы все влезло — чтобы было сбалансировано — чтобы было рационально размещено Частично это уже сделали за нас китайские коллеги. Так, тяжелый батарейный отсек поставлен в центр, и примерно под ним стоят ведущие колеса. Все остальные платы легкие, их можно размещать по периферии. Нюансы:

  1. В шасси из набора есть много заводских отверстий, но какая в них логика — я так и не разобрался. Двигатели и аккумуляторный блок закрепились без проблем, дальше началась «подгонка» со сверлением новых отверстий, чтобы закрепить ту или иную плату.
  2. Весьма выручили латунные стойки и прочий крепеж из запасников (иногда приходилось выкручиваться).
  3. Шины от каждой платы пропускал через зажимы (опять же нашел в запасниках). Весьма удобно, все провода лежат красиво и не болтаются.

Отдельные блоки

Теперь пройдусь по блокам и расскажу персонально про каждый.

Батарейный отсек

Понятно, что робот должен иметь хороший источник энергии. Варианты могут быть разные, я выбрал вариант с 4 аккумуляторами АА. В сумме они дают примерно 5 В, и такое напряжение можно прямо подать на пин 5V платы arduino (минуя стабилизатор). Некоторая настороженность, конечно, у меня была, но это решение вполне работоспособно. Так как питание нужно везде, то для удобства я сделал по центру робота два разъема: один «раздает» землю (справа), а второй — 5 В (слева). Как своими руками сделать паукообразного робота на arduino

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

Сначала про крепление двигателей. Крепление заводское, но сделано с большими допусками. Другими словами, двигатели могут «вихлять» на пару миллиметров влево-вправо. Для нашей задачи это не критично, а вот где-то может и влиять (робота начнет уводить в сторону). На всякий случай я выставил двигатели строго параллельно и зафиксировал клеем. Как своими руками сделать паукообразного робота на arduino Для управления двигателями, как я писал выше, используется драйвер L298N. По документации у него три пина на каждый двигатель: один для изменения скорости и пара пинов для направления вращения. Тут есть один важный момент. Оказывается, если напряжение питания 5 В, то регулировка скорости просто не работает! То есть либо совсем не крутит, либо крутит по максимуму. Вот такая особенность, из-за которой я «убил» пару вечеров. В конце концов, нашел упоминание где-то на одном из форумов. Вообще говоря, низкая скорость вращения мне требовалась при развороте робота — чтобы он имел запас времени просканировать пространство. Но, так как с такой задумкой ничего не вышло, пришлось делать по другому: небольшой поворот — остановка — поворот — остановка и т. д. Опять же, не столь изящно, но работоспособно. Еще здесь добавлю, что после каждого преследования робот выбирает случайное направление нового поворота (по или против часовой стрелки).

Ультразвуковой датчик

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

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

Физика здесь простая: у нас есть сигналы, отраженные от нужных объектов (дающие требуемое расстояние) и отраженные от более далеких, например, стен.

Вторые представляют собой случайные выбросы в измерениях вида 45, 46, 230, 46, 46, 45, 45, 310, 46… Именно их медианный фильтр и отсекает.

После всей обработки у нас получается расстояние до ближайшего объекта. Если оно меньше некоторой пороговой величины — тогда мы включаем сигнализацию и едем прямо на «нарушителя».

Мигалка и сирена

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

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

Расписывать детально код я смысла не вижу, кому нужно — ссылка в конце статьи, там всё достаточно читабельно. А вот общую структуру было бы неплохо объяснить.

Первое, что пришлось осмыслить: робот — это устройство реального времени. Точнее, вспомнить, потому что и раньше, и сейчас все равно занимаюсь электроникой.

Значит, сразу забываем про вызов delay(), который очень любят использовать в скетчах-примерах, и который просто «замораживает» программу на указанный промежуток времени. Вместо этого, как советуют опытные люди, вводим таймеры на каждый блок.

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

Таймеры могут быть взаимосвязаны. Так, например, пищалка работает синхронно с мигалкой. Это чуть упрощает программу. Естественно, всё разбиваем на отдельные функции (мигалка, звук, поворот, движение вперед и так далее). Если так не делать, то потом уже не разобраться, что откуда и куда.

Нюансы педагогики

Все, что было описано выше, я делал в свободное время по вечерам. В неспешном режиме я потратил на робота где-то недели три. На этом можно было бы и завершиться, но я еще обещал вам рассказать о работе с ребенком. Что выполнимо в таком возрасте?

  • Работа по инструкции
  • Порядок работы («от частного к общему»)
  • Монтаж
  • Работа на компьютере

Каждую деталь мы сначала проверяли отдельно — светодиоды, пищалка, моторы, датчики и т. д. Есть большое количество готовых примеров — какие-то прямо в среде разработки, другие можно найти в интернете. Это, несомненно, радует. Берем код, подключаем деталь, убеждаемся, что работает, далее уже начинаем изменять под свою задачу. Подключения по схеме и под некоторым моим контролем ребенок делает сам. Это хорошо. Работать четко по инструкции тоже надо уметь. Вот это сложный пункт. Нужно приучать, что большой проект («сделать робота») состоит из мелких задач («подключить датчик», «подключить моторы»…), а те, в свою очередь, из еще более мелких шагов («найти программу», «подключить плату», «загрузить прошивку»…). Выполняя более-менее понятные задачи нижнего уровня, мы «закрываем» задачи среднего уровня, а из них уже складывается общий результат. Объяснял, но, думаю, осознание придет еще не скоро. Где-то, наверное, к подростковому возрасту. Сверление, резьбы, винты, гайки, пайка и запах канифоли — куда же без этого. Ребенок получил базовый скилл «Работа с паяльником» — удалось спаять несколько соединений (я чуть-чуть помогал, не скрою). Не забывайте про объяснение техники безопасности. Программу для робота писал я, но каких-то попутных результатов все-таки удалось достичь. Первое: английский. В школе его только-только начали, поэтому мы «со скрипом» разбирали, что такое pishalka, migalka, yarkost и прочий транслит. Поняли хотя бы это. Я осознанно не стал использовать родные английские слова, так как до этого уровня мы еще не дошли. Второе: эффективная работа. Учили горячие комбинации клавиш, как быстро выполнять типовые операции. Периодически, когда писали программу, мы менялись с сыном местами, и я говорил, что нужно сделать (замену, поиск и т.д.). Приходилось повторять снова и снова: «выдели двойным кликом», «зажми Shift», «зажми Ctrl» и так далее. Процесс обучения здесь не быстрый, но, я думаю, навыки постепенно отложатся «в подкорку». Скрытый текст

Источник: https://habr.com/post/436118/

DIY: Clearwalker — самодельный робот-паук из акрила

02.06.2017

Julian Horsey собрал этого симпатичного робота-паука на базе Arduino (контроллер Arduino Mega).

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

Управление — со смартфона через Bluetooth. Паук движется сходно с танком или роботом, маневрами которого можно управлять за счет разной скорости вращения двух его колес.

Оцените видеоролик, демонстрирующий новинку и поясняющей ее конструкцию. Автор светодиодного украшения дизайна конструкции — Jeremy Cook.    

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

Шаг 1. Запаситесь материалами 

  • (2) двигателя с планетарным редуктором Planetary Gear Motors: Servocity
  • (2) коммутаторы H-Bridge PWM Switches: Servocity
  • (2) батареи 8.4 В, 1400 мАч NiCad Battery Packs: Servocity
  • (2) коннекторы Tamiya Connectors: Servocity
  • контроллер управления скоростью PWM Speed Controller: Servocity or Monster Guts
  • (1) разъемы Pkg Crimp Terminals: Servocity
  • конвертор напряжения питания Buck Voltage Converter: Amazon
  • контроллер Arduino Mega: Amazon
  • модуль BT: HC-06 Bluetooth Module: eBay
  • различные провода Various Wires
  • смартфон Smartphone

Как своими руками сделать паукообразного робота на arduino 

Как своими руками сделать паукообразного робота на arduino

Как показано на схеме, основная идея — это подключение модуля HC-06 к вашей плате Arduino, как беспроводного серийного порта.

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

Благодаря использованию ШИМ, можно управлять скоростью движения ног. Батареи также подключены к конвертору напряжения, который обеспечивает необходимые для Arduino 5В. 

Шаг 3. Программа для контроллера

Arduino следует настроить так, чтобы он принимал команды по Bluetooth. В программе, которую можно скачать по ссылке, подразумевается, что TX и RX — это соответственно пин 10 и 11. Двигатели управляются как ШИМ-сервомоторы, подсоединенные к пин 2 и пин 3. 

Скачать ClearWalker Control.ino 

Шаг 4. Настройка смартфона

Управлять по Bluetooth очень просто. Чтобы посылать команды роботу, Julian Horsey пользовался программой Bluetooth Terminal Programm. Затем перешел на использование  Arduino Bluetooth Controller.

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

Если вам требуется большая гибкость управления, можете попробовать MIT App Inventor system, но автор робота этого делать не пробовал. 

Шаг 5. Все готово 

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

Если кто-то из читателей решит повторить эту разработку и добъется успеха, присылайте нам в RoboTrends.ru фото или ссылку на Youtube с записью — что у вас получилось.  Ну а если самостоятельная сборка робота пока что кажется вам слишком сложным делом, загляните на страничку «Конструкторы для сборки роботов», возможно присмотрите что-то, что вам приглянется и покажется посильным делом. 

+ +

Источник: http://robotrends.ru/pub/1722/diy-clearwalker—samodelnyy-robot-pauk-iz-akrila

Робот-паук на сервоприводах

  • Проект по созданию простейшего четвероногого робота-паука на сервоприводах. У робота будут два режима:
  •  автономный — робот движется вперед, при обнаружении препятствия (используется ультразвуковой датчик) поворачивается и движется дальше;
  •  внешнее управление с помощью ИК-пульта (вперед, назад, поворот влево, поворот вправо, остановка, засыпание).
  • Для проекта понадобятся 4 сервопривода.

Для сервоприводов требуется отдельное питание. В качестве источника питания взята литий-полимерная батарея Turnigy 2S 1600 mAh. Напряжение, выдаваемое батареей: 7,4–8,4 В.

Поскольку для питания сервоприводов необходимо напряжение 4,8–6,0 В, применим стабилизатор напряжения 5 В, собранный на микросхеме L7805. Как выяснилось, одна микросхема постоянно перегревалась, проблема была решена установкой параллельно двух микросхем L7805.

Для обнаружения препятствий использован ультразвуковой датчик HC-SR04 , который позволяет определять расстояние до объекта в диапазоне от 2 до 500 см с точностью 0,3 см.

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

Если расстояние до препятствия меньше 10 см, робот делает поворот и движется дальше вперед.

В качестве пульта управления применен пульт ИК приемник ИК-сигналов — TSOP31238.

 Как своими руками сделать паукообразного робота на arduino
 Схема паука-робота

 

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

Нам необходимо реализовать настройку сервоприводов для движения робота-паука вперед, назад, поворота по часовой стрелке и поворота против часовой стрелки, функции остановки робота, а также — для экономии электроэнергии — предусмотрим режим засыпания (когда сервоприводы находятся в режиме detach) и пробуждения (перевод сервоприводов в режим attach). Поэтому каждое движение робота состоит из нескольких шагов.

  1. Например, движение вперед состоит из следующих шагов:
  2.  левая передняя нога вперед;
  3.  правая передняя нога вперед;
  4.  левая задняя нога вперед;
  5.  правая задняя нога вперед;
  6.  четыре ноги вместе назад (что приведет к перетаскиванию тела робота-паука).
  7. Данные для угла поворота каждого сервопривода на каждом шаге для каждого движения робота-паука хранятся в трехмерном массиве arr_pos .
  8. int arr_pos[4][6][4]={
  9. { // forward
  10. {90,90,90,90},{45,90,90,90},{45,135,90,90},
  11. {45,135,45,90},{45,135,45,135},{135,45,135,45}
  12. },
  13. { // back
  14. {90,90,90,90},{90,90,90,45},{90,90,135,45},
  15. {90,45,135,45},{135,45,135,45},{45,135,45,135}
  16. },
  17. { // circle_left
  18. {90,90,90,90},{0,90,90,90},{0,0,90,90},
  19. {0,0,0,90},{0,0,0,0},{180,180,180,180}
  20. },
  21. { // circle_right
  22. {90,90,90,90},{180,90,90,90},{180,180,90,90},
  23. {180,180,180,90},{180,180,180,180},{0,0,0,0}
  24. }
  25. };
  26. int pos_stop[1][4]={{90,90,90,90}};
  27. Процедура course(int variant) реализует перемещение сервоприводов для каждого шага следующих движений робота-паука: вперед, назад, поворота по часовой стрелке и поворота против часовой стрелки.
  28. void course(int variant)
  29. {int i=0;; for(i=1;i

Источник: http://www.progdron.com/ru/proekty-s-arduino/spisok-materialov/352-robot-pauk-na-servoprivodakh

Как сделать робота на ардуино

Теперь нам нужно запрограммировать нашу Arduino UNO, чтобы сбалансировать робота. Здесь происходит вся магия; концепция, стоящая за ней, проста.

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

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

Чтобы узнать текущее положение бота, мы используем MPU6050, который представляет собой 6-осевой акселерометр и датчик гироскопа.

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

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

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

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

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

Сначала мы включаем библиотеки, которые необходимы для работы этой программы. Они включают встроенную библиотеку I2C, библиотеку PID и библиотеку MPU6050, которые мы только что загрузили.

Затем мы объявляем переменные, которые необходимы для получения данных от датчика MPU6050. Мы читаем как значения гравитационного вектора, так и значения кватерниона, а затем вычисляем значение угла и угла поворота бота. Конечный результат будет иметь массив float ypr [3].

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

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

Никакие два одинаковых бота не будут иметь одинаковых значений Kp, Kd и Ki, поэтому от него не уйти.

В следующей строке мы инициализируем алгоритм PID, передавая входные переменные input, output, set point, Kp, Ki и Kd. Из них мы уже установили значения заданного значения Kp, Ki и Kd в приведенном выше фрагменте кода.

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

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

Внутри функции void setup мы инициализируем MPU6050, настроив DMP (Digital Motion Processor). Это поможет нам объединить данные акселерометра с данными гироскопа и обеспечить надежное значение Yaw, Pitch and Roll. Мы не будем углубляться в это, так как это будет далеко за пределами темы.

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

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

Мы также должны инициализировать контакты PWM Digital, которые мы используем для подключения наших двигателей. В нашем случае это D6, D9, D10 и D11. Таким образом, мы инициализируем эти контакты, поскольку выходные выводы делают их LOW по умолчанию.

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

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

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

Если эти незначительные корректировки работают, и все еще, если бот падает, мы увеличиваем скорость двигателя. Значение того, как быстро вращаются колеса, будет определяться алгоритмом PI.

Заметим, что для функции Reverse мы умножили значение вывода с -1, чтобы мы могли преобразовать отрицательное значение в положительное.

Источник: https://geekhouse.tech/how-to-make-arduino-robot/

Ссылка на основную публикацию
Adblock
detector