Собираем робота-художника на Arduino

Работа робота движущегося по линии

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

Собираем робота-художника на Arduino

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

Собираем робота-художника на Arduino

Если левый датчик попадает на черную линию, то робот поворачивает влево.

Собираем робота-художника на Arduino

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

Собираем робота-художника на Arduino

Если оба датчика попадают на черную линию, робот останавливается.

Собираем робота-художника на Arduino

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

  1. Приводной двигатель постоянного тока желтого цвета (Geared DC motor (Yellow coloured) ) – 2 шт.
  2. Два колеса.
  3. Соединительные провода.
  4. Напечатанный на 3D принтере скелет (остов) робота.

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

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

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

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

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

Программируем робота-художника DAGU

Робот программируется с использованием Arduino IDE.

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

Собираем робота-художника на Arduino

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

  • Go(x) — двигаться заданное число шагов;
  • Turn(angle) — повернуть на заданный угол;
  • Up() — поднять маркер вверх;
  • Down() — опустить маркер вниз.

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

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

Собираем робота-художника на Arduino

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

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

Замок, который открывается на секретный стук

Слож­ность: 3/5.

Вре­мя: 2/5.

Собираем робота-художника на Arduino

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

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

Возможности робота-художника DAGU

Конструктор Doodle Bot kit фирмой-производителем DAGU Electronics заявлен как недорогой образовательный робот для начинающих. В его основе плата — аналог Arduino Mini. Эта трехколесная машинка, к которой прикрепили маркер, способна рисовать и писать. В составе набора есть примеры программ, с помощью которых даже новичок может научить робота рисовать и писать произвольные тексты. Размер букв заданного пользователем текста можно менять. На фото робот в собранном виде.

Собираем робота-художника на Arduino

Робот DAGU Doodle Bot kit в собранном виде

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

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

Шаг 6: Сцена «Сопровождение».

Собираем робота-художника на Arduino

Следующая сцена – «Сопровождение». Эта сцена использует заданные пользователем объекты Vuforia, поэтому Вы можете создать отслеживаемый объект во время использования, если у него есть достаточное количество точек. В настройках робота следуйте за менеджером, не забудьте указать IP-адрес вашего Node MCU в сценарии отправки сообщения.

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

Требуемые компоненты

Ардуино

В нашем проекте мы использовали микроконтроллер для управления всем процессом системы ARDUINO. Arduino — это аппаратное обеспечение с открытым исходным кодом, очень полезное для разработки проектов. В продаже доступно множество типов плат Arduino, таких как Arduino UNO, arduino mega, arduino pro mini, Lilypad и т.д. В этом мини-проекте мы использовали Arduino UNO.

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

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

ИК-датчик

Собираем робота-художника на ArduinoИК-датчик представляет собой схему датчика, состоящую из пары ИК-светодиод/фотодиод, потенциометра, LM358, резисторов и светодиода. ИК-датчик передает инфракрасный свет, а фотодиод принимает инфракрасный свет.

Источник питания

Мы добавили регулятор напряжения, чтобы получить 5 вольт для питания платы Arduino, компаратора и драйвера двигателя. А для питания схемы используется 9-вольтовая батарея.

Шаг 2: Сборка робота.

Я построил своего робота используя дополнительные части распечатанные на  3D-принтере, которые у меня были, но Вы можете использовать запчасти от DVD или любой другой маленький плоский кусок пластика. Я использовал шасси с Aliexpress, Вы можете использовать другое шасси для своего проекта, но код Arduino будет немного отличаться. У меня все моторы, стояли в направлении передней части. В предварительно собранном шасси расположение направления двигателей расположено друг к другу, поэтому просто имейте это в виду.

Популярные статьи  Лайфхак: Как сделать очки незапотевающими за 1 минуту

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

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

У меня есть вторая батарея под моим роботом. Я приклеил горячим клеем usb power bank на нижнею сторону в дополнение к 9-вольтовой батарее для того, чтобы подключить MCU Node отдельно для более продолжительного времени автономной работы во время разработки, но вы можете просто использовать 9-вольтовую батарею, если хотите.

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

Руководство по покупке комплектов роботов Arduino

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

 1. Стоимость

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

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

 2.  Умная навигация

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

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

 3.  Сборка

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

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

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

4. Список деталей

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

Движение по линии

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

Собираем робота-художника на Arduino

Собираем робота-художника на Arduino

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

Программирование продолжается

Собираем робота-художника на Arduino

Алгоритм работы нашего манипулятора достаточно простой. Давайте немного разберемся в этом вопросе.

Сначала мы конвертируем изображение, которое хотим нарисовать в формат png и сохраняем его в папке с Matlab. После этого наш алгоритм преобразовывает рисунок в формат ч/б пикселей, как это показано на рисунке выше. Самая интересная часть — это прорисовка полученных пикселей.

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

Результат всех приведенных выше пунктов приведен на видео ниже:

Программирование мобильного робота арудино

Для начала напишем простую программу для робота движения вперед. На следующем уроке мы разберем как управлять роботом  программировать повороты направо, налево  мобильного  Arduino робота 
В самом начале программы мы должны  определить пины  через которые мы будем управлять скоростью и направлением вращения моторов#define SPEED_1      6 //Пин для управления  скоростью  первого мотора
#define DIR_1        7 //Пин для управления направлением первого мотора
#define SPEED_2      5 // Пин для управления  скоростью  второго мотора
#define DIR_2        4 // Пин для управления направлением второго мотора
В блоке setup  необходимо установить пины отвечающие за управлением моторами в режим OUTPUT Подробнее об управлением через пины ардуиноvoid setup() {
Serial.begin(9600); 
 pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
}
В основной программе loop  запрограммируем движение вперед мобильного робота ардуино.Для этого необходимо  перевести пины отвечающие за направление в режим HIGH (в зависимости от подключения моторов  у Вас за движение мотора вперед  может быть режим LOW) Это цифорвые пины , поэтому используется команда digitalWrite(номерпина, HIGH)digitalWrite(DIR_1,HIGH);
digitalWrite(DIR_2, HIGH);
Установим скорости  моторов  с помощью записи в пины отвечающие за скорость  уровня скорости вращения. Это аналоговые пины, поэтому используем команду analogWrite(номерпина, скорость). Скорость может изменяться в диапазоне от 1 до 255analogWrite(SPEED_1, 100);
analogWrite(SPEED_2,100);
И в конце установим время, сколько будет робот двигаться в таком режиме с помощью команды
delay(время в миллисекундах);
После  движения необходимо остановить моторы, для этого скорость устанавливается в  нольdigitalWrite(DIR_1,HIGH);
digitalWrite(DIR_2, HIGH);
analogWrite(SPEED_1, 0);
analogWrite(SPEED_2,0);
delay(время остановки в миллисекундах);Полная версия программы для движения мобильного робота ардуино вперед#define SPEED_1      6 // скорость первого мотора
#define DIR_1        7 // направление первого мотора
#define DIR_2        4 // направление второго мотора
#define SPEED_2      5 // скорость второго мотора
void setup() {
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
}
void loop() {
  analogWrite(SPEED_1, 100);
 digitalWrite(DIR_1,HIGH);
 analogWrite(SPEED_2,100);
 digitalWrite(DIR_2, HIGH);
 delay(1000);
 analogWrite(SPEED_1,0);
 digitalWrite(DIR_1,HIGH);
 analogWrite(SPEED_2,0);
 digitalWrite(DIR_2, HIGH);
 delay(10000);
}

Вернуться к содержанию курса Следующая тема Повороты мобильного робота ардуино

Полезно почитать по теме мобильные роботы arduinoМобильный робот arduino с драйвером l289Правильное питание мобильного робота arduinoРобот сумо arduino

Шаг 1: Используемые компоненты, инструменты и программное обеспечение

1. Механические компоненты

  • Набор Mechanix kit
  • Гайка и винты
  • Держатель ручки (прищепка)
  • 2X колесика

2. Электронные компоненты

  • Модуль Arduino uno
  • Печатная плата или макетная плата
  • Источник питания (адаптер напряжением 5В и током 2А)
  • USB кабель

3. Сервомоторы

Сервомоторы

4. Инструменты

  • Паяльник
  • Проволочный припой
  • Отвертка
  • Дрель

5. Программное обеспечение

  • Среда разработки Arduino IDE
  • Matlab (совместно с Arduino IO)

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

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

SCARA Robot 3D Model

To begin with, let’s take a look at the 3D model.

I designed this SCARA robot using 3DEXPERIENCE SOLIDWORKS which are also the sponsor of this video.

3 3DEXPERIENCE SOLIDWORKS is basically SOLIDWORKS with cloud capabilities which we get through the 3DEXPERIENCE platform. Everything works through the cloud, so you or anyone from your team can have accesses to the data or the models at any time, from anywhere in the world. The 3DEXPERIECE platform also includes many useful productivity and management apps.

Популярные статьи  Лабораторный частотометр на микросхемах 555 серии, с намёком на стимпанк.

For example, the Project Planer is a great way to organize your tasks, set deadlines and keep track of your progress. With the 3D Markup app, you can view, explore and take notes of the models from any device, like a notebook, tablet or even a smartphone.

There is also a separate, cloud-based 3D modeler called SOLIDWORKS xDesign, that runs inside your browser. It can be used in conjunction with Solidworks or on its own and it’s great for modeling, anywhere, anytime and on any device.

So, big thanks to Solidworks for sponsoring educational content like this. If you would like to know whether SOLIDWORKS and the 3DEXPERIENCE platform can work for you, check the following links below.

Try 3DEXPERIENCE for free with my special link: www.solidworks.com/HTMTryNow

Learn more about 3DEXPERIENCE SOLIDWORKS: www.solidworks.com/HTMLearnMore

Ok, so let’s get back to the model and explain how I came up with this design. My goal for the robot was most of the parts to be 3D printed. So, everything you see here can be 3D printed even on a 3D printer with smaller printing bed. The GT2 pulleys are also 3D printable. I used parametric design to make them, so if needed we can easily change their sizes. We just have to change the number of teeth, and all dimensions will automatically update to make the pulley the proper size.

For the first joint, we have 20:1 reduction ratio, achieved in two stages with these custom designed pulleys. The two GT2 belts I use here are closed loop with 200mm and 300mm length. The robot joints are composed of two thrust bearings and one radial bearing.

For the second joint, we have 16:1 reduction ratio, achieved in the same way, and the third joint has 4:1 reduction ratio with just a single stage reduction. The joints are hollow, so we can use that to passthrough the wires from the motors and the micro switches. For each of the belts, there are slots on which we can attach idler pulleys for tensioning them.

The robot gripper is driven by an MG996R servo motor and we can easily change the gripper ends to achieve different grip sizes. The Z axis of the robot is driven by an 8mm lead screw, while the whole arm assembly slides on four 10mm smooth rods and linear ball bearings. The height of the robot simply depends on the length of the smooth rods, which in this case are 40cm. The lead screw needs to be 2cm shorter in order to fit in this configuration, or if not, the Z motor can be raised by 2 cm using spacer nuts.

You can find and download this 3D model, as well as explore it in your browser on Thangs:

Download the assembly 3D model at Thangs.

STL files for 3D Printing:

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

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

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

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

  1. Серводвигатели — 4 штуки
  2. Нарезанный кусок картона — сделать �тело�.
  3. USB OTG (на фото ниже, выбрать любой).
  4. И, конечно, плата Arduino (любая).
  5. Несколько перемычек, чтобы сделать соединения.
  6. Для питания серводвигателей используется 9-вольтная батарея.

В уроке использованы микросерверы SG90, но любая модель или размер вполне подойдут. Вы можете использовать до 5 сервоприводов для этого робота, у нас всего 4.

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

How the SCARA robot works

There are two methods for controlling robots in terms of positioning and orientation, and that’s using forward or inverse kinematics.

Forward kinematics is used when we need to find the position and orientation of the end-effector from the given joint angles.

On the other hand, inverse kinematics is used when we need to find the joint angles for a given position of the end-effector. This method makes more sense in robotics as most of the time we want the robot to position its tool to a particular location or particular X, Y and Z coordinates.

With inverse kinematics we can calculate the joint angles according to given coordinates.

The equations that I will use for both the forward and the inverse kinematics come from trigonometry rules and formulas.

Wrap up

So finally, once we upload the code to the Arduino, we can run the processing program, connect the power and the scara robot will start moving to its home position.

From there on, we can do whatever we want the it. We can play around manually or set it to work automatically. Of course, we can attach any kind of end-effector and make cool stuff with it. For example, we can even attach a 3D printer hot end to the robot and so make the robot a 3D printer, or attach a laser head and make it a laser cutter. I do plan try these two ideas, so make sure you subscribe to my channel so you don’t miss them in some of my future videos.

Before this video ends, I would like to give you few more notes about this project. I found the robot to be not as rigid as I expected.

I guess the problem is that almost the entire SCARA robot, the Z-axis and the arms are supported only by the first joint. The whole weight and the inertial forces generated when moving, can make quite a stress to base where the first joint is located, and as it’s just a plastic it tends to bend a little bit. Also, these belts are not backlash free so we reduce the robot rigidity with that too. However, I think the overall project is good enough so you to learn how SCARA robots work, and gives you the courage to build one for yourself.

Feel free to ask any question in the comments section below and check my Arduino Projects Collection.

Что за Arduino

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

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

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

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

Популярные статьи  Трехэтажная полочка

Первый код

Для начала установим Arduino IDE с сайта arduino.cc (статья об установке IDE)— это кросс-платформенная бесплатная среда разработки. Теперь, если мы подключим наш Arduino, то сможем попробовать написать первый код на самом простом примере: программе мигания светодиодом. На большинстве Arduino-контроллеров он есть и подключен к пину 13. Кстати, в мире Arduino программы принято называть скетчами. Вот текст скетча с комментариями:

Arduino

// Дадим этому пину имя LED:
const int LED = 13;
void setup() {
// Инициализация цифрового пина
// для вывода:
pinMode(LED, OUTPUT);
}
void loop() {
// Подать уровень логической единицы
// на пин 13 (зажечь светодиод):
digitalWrite(LED, HIGH);
// Приостановить выполнение скетча
// на секунду:
delay(1000);
// Подать уровень логического нуля
// на пин 13 (потушить светодиод):
digitalWrite(LED, LOW);
// Снова приостановить выполнение
// скетча на секунду:
delay(1000);
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

// Дадим этому пину имя LED:

constintLED=13;

voidsetup(){

// Инициализация цифрового пина

// для вывода:

pinMode(LED,OUTPUT);

}

voidloop(){

// Подать уровень логической единицы

// на пин 13 (зажечь светодиод):

digitalWrite(LED,HIGH);

// Приостановить выполнение скетча

// на секунду:

delay(1000);

// Подать уровень логического нуля

// на пин 13 (потушить светодиод):

digitalWrite(LED,LOW);

// Снова приостановить выполнение

// скетча на секунду:

delay(1000);

}

Обрати внимание на функции setup и loop. Они должны присутствовать в любом Arduino-скетче

Setup вызывается единожды при включении или после перезапуска контроллера. Если хочешь, чтобы код выполнялся только один раз, его следует размещать именно здесь. Чаще всего это всевозможные процедуры инициализации чего-либо. Наш скетч не исключение: цифровые пины Arduino могут работать и как входы, и как выходы. В функции setup мы говорим, что пин 13 будет работать как цифровой выход контроллера.

После того как функция setup завершит свою работу, автоматически запускается замкнутый цикл, внутри которого будет вызываться функция loop. От нас требуется написать, что мы хотим там выполнять. А мы хотим подать на пин 13 уровень логической единицы (5 В), то есть зажечь светодиод, затем подождать одну секунду (1000 в миллисекундах), потом подать уровень логического нуля (0 В) и опять подождать одну секунду. Следующий вызов loop все повторит.

Теперь «заливаем» наш скетч в контроллер. Нет, нам не понадобится программатор. Контроллеры Arduino, кроме наших скетчей, содержат специальную программу — bootloader, которая, в частности, управляет загрузкой кода из компьютера. Так что для заливки скетча нам понадобится только USB-кабель и пункт меню File -> Upload (Ctrl + U) в Arduino IDE.

Код нашего Helloworld.

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

Собираем робота-художника на ArduinoСобираем робота-художника на ArduinoСобираем робота-художника на Arduino

  1. Просверлите два отверстия в качалках от привода. При этом необходимо выдержать расстояние, приведенное на рисунке.
  2. Следующая наша задача — сделать крепеж для основания с приводом. Просверлите 4 отверстия на расстоянии, равном расстоянию между винтами привода и установите его на основание. Мы используем этот привод в качестве неподвижного основания для нашей механической руки.
  3. Прикрепите алюминиевые звенья из конструктора к качалкам приводов. Желательно, чтобы расстояние между двумя качалками примерно было равно 20 сантиметрам.
  4. Прикрепите качалку к неподвижному сервоприводу основания, вторую качалку — ко второму приводу. Перед фиксацией качалок, откалибруйте сервопривода. Установите их таким образом, чтобы положение вала соответствовало 90 градусам, серводвигатель у основания был установлен параллельно звеньям, а серводвигатель на свободном конце — перпендикулярно.
  1. После этого возьмите еще звенья из конструктора и прикрепите их параллельно к свободному концу и серве.
  2. Прикрепите колеса к нижней части механической руки для балансировки и обеспечения поддержки нашей конструкции
  3. Последний серводвигатель должен быть подключен к концу второго звена из 5 пункта.

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

При разработке механической части важно выдерживать указанные расстояния — 20, 15 сантиметров и правильно проводить калибровку двигателей. Естественно, доработка конструкции возможна и зависит того, какие именно узлы у вас еще есть в наличии

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

Finishing the assembly

The SCARA robot is now completed, and what we need to do now is to secure the base to something. For that purpose, I will use 20mm tick piece of wood. At the bottom side of the robot base we have 12 holes available for securing it. So, I printed a drawing of the robot base, and used it to make the holes in the wood.

At the bottom side I countersunk them as I will use flat head bolts so they are flash with the wood surface. I inserted M4 nuts in the base slots and then secured the wood base to the robot base.

Now ideally, in order to fix the robot in place, we could bolt it to the table or I will simply use clamps for that purpose.

So that’s it, our SCARA robot is now completely done. What’s left in this video though, is to take a look how the robot works.

See also: DIY Arduino Robot Arm with Smartphone Control

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

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

Платформа Ардуино 4WD с двигателями, колесами и рамой без электронных компонентов

4WD платформа для Ардуино с необычным видом крепления элементов

Конструктор машинки Ардуино на платформе 4WD с пультом управления Bluetooth и PS2

Типовой набор 4WD машинки с Ардуино, шилдами и основными датчиками

Работа схемы

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

Собираем робота-художника на Arduino

Как видите, схема достаточно проста и в ней вам всего лишь необходимо подключить гироскоп 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. ШИМ сигнал в данном случае необходим для управления скоростью вращения двигателей.

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

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

Оцените статью
( Пока оценок нет )
Добавить комментарий