- Потрібні компоненти
- Побудова роботизованої руки
- Принципова схема та робоче пояснення:
- Як керувати робототехнічною рукою:
У цьому підручнику ми збираємося розробляти робототехнічну руку на основі Arduino Uno з деяких картонів та сервомоторів. Весь процес будівництва детально пояснено нижче. У цьому проекті Arduino Uno запрограмований на управління серводвигунами, які виконують функцію шарнірів роботизованого важеля. Ця установка також виглядає як роботизований кран, або ми можемо перетворити його в кран, виконавши кілька простих налаштувань. Цей проект буде корисним для початківців, які хочуть навчитися розробляти простого робота за низьку вартість або просто хочуть навчитися працювати з Arduino та сервомоторами.
Цим Arduino Robotic Arm можна керувати за допомогою чотирьох потенціометрів, приєднаних до нього, кожен потенціометр використовується для управління кожним сервоприводом. Ви можете переміщати ці сервоприводи, обертаючи горщики, щоб вибрати якийсь предмет, з деякою практикою ви можете легко вибрати і перемістити об'єкт з одного місця в інше. Тут ми використовували сервоприводи з низьким крутним моментом, але ви можете використовувати більш потужні сервоприводи для вибору важких предметів. Весь процес був добре продемонстрований у Відео наприкінці. Тут також перегляньте інші наші проекти робототехніки.
Потрібні компоненти
- Arduino Uno
- Конденсатор 1000 мкФ (4 штуки)
- Конденсатор 100 нФ (4 штуки)
- Сервомотор (SG 90 - чотири штуки)
- 10K горщик - змінний резистор (4 штуки)
- Блок живлення (5 В - бажано два)
Серводвигун
Спочатку ми трохи поговоримо про сервомотори. Сервомотори в основному використовуються, коли існує потреба в точному русі або положенні вала. Вони не пропонуються для високошвидкісних програм. Сервомотори пропонуються для низьких швидкостей, середнього крутного моменту та точного застосування положення. Тож ці двигуни найкраще підходять для проектування роботизованої руки.
Сервомотори доступні різних форм і розмірів. Ми збираємось використовувати невеликі сервомотори, тут ми використовуємо чотири сервопривода SG90. Сервомотор буде мати в основному там дроти, один для позитивної напруги, інший для заземлення і останній для встановлення положення. ЧЕРВОНИЙ провід підключений до живлення, Чорний провід підключений до землі, а ЖОВТИЙ провід - до сигналу. Пройдіть цей посібник з управління сервомотором за допомогою Arduino, щоб дізнатись більше про нього. В Arduino у нас є заздалегідь визначені бібліотеки для управління сервоприводом, тому керувати сервоприводом дуже просто, про що ви дізнаєтесь разом із цим посібником.
Побудова роботизованої руки
Візьміть рівну і стійку поверхню, як стіл або тверда картонна дошка. Потім помістіть сервомотор посередині і приклейте його на місце. Переконайтеся, що ступінь обертання знаходиться в області, представленій на малюнку. Цей сервопривід діє як основа важеля.
Покладіть невеликий шматок картону поверх першого сервоприводу, а потім покладіть другий сервопривід на цей шматок дошки і приклейте його на місце. Поворот сервоприводу повинен відповідати схемі.
Візьміть кілька картонів і розріжте їх на шматки 3 см х 11 см. Переконайтесь, що шматок не розм'якшений. Виріжте прямокутний отвір на одному кінці (залиште 0,8 см знизу) лише настільки, щоб помістити інший сервопривід, а на іншому кінці щільно прикрутіть сервопривід гвинтами або клеєм. Потім помістіть третій сервопривід в перший отвір.
Тепер виріжте ще один шматок картону довжинами, показаним на малюнку нижче, і приклейте ще одне зубчасте колесо внизу цього шматка.
Тепер приклейте четвертий і останній сервопривід на краю другого шматка, як показано на малюнку.
З цим виглядають дві штуки разом.
Коли ми підключаємо цю установку до основи, вона повинна виглядати так:
Це майже зроблено. Нам просто потрібно зробити гачок, щоб схопити і підібрати предмет, як робота-рука. Для гачка виріжте ще два шматки картонної дошки довжиною 1cmx7cm & 4cmx5cm. Приклейте їх між собою, як показано на малюнку, і приклейте кінцеву передачу до самого краю.
Закріпіть цей шматок зверху, і цим ми закінчили будувати свою Робототехнічну Руку.
На цьому наша основна конструкція роботизованої руки була завершена, і ось як ми створили свою недорогу робототехнічну руку. Тепер підключіть схему до макету відповідно до схеми.
Принципова схема та робоче пояснення:
Схема підключення робочої руки Arduino Uno показана нижче.
Напруга на змінних резисторах не є повністю лінійною; це буде шумно. Отже, щоб відфільтрувати цей шум, конденсатори розміщують по кожному резистору, як показано на малюнку.
Тепер ми будемо подавати напругу, що забезпечується цим змінним резистором (напруга, яка представляє контроль положення) в канали АЦП Arduino. Для цього ми використовуватимемо чотири канали АЦП UNO від A0 до A3. Після ініціалізації АЦП ми отримаємо цифрове значення горщиків, що представляють позицію, необхідну користувачеві. Ми візьмемо це значення та порівняємо його з положенням сервоприводу.
Arduino має шість каналів ADC. Ми використали чотири для нашої роботизованої руки. АЦП UNO має 10-бітну роздільну здатність, тому цілі значення знаходяться в діапазоні від 0-1023 (2 ^ 10 = 1024 значення). Це означає, що він буде відображати вхідні напруги від 0 до 5 вольт у цілі значення від 0 до 1023. Отже, для кожного (5/1024 = 4,9 мВ) на одиницю. Дізнайтеся більше про картографування рівнів напруги за допомогою каналів АЦП в Arduino тут.
Тепер, щоб UNO перетворив аналоговий сигнал в цифровий, нам потрібно використовувати ADC-канал Arduino Uno за допомогою наведених нижче функцій:
1. analogRead (pin); 2. analogReference (); 3. analogReadResolution (біти);
Arduino каналів АЦП мають опорне значення по замовчуванням 5В. Це означає, що ми можемо дати максимальну вхідну напругу 5В для перетворення АЦП на будь-якому вхідному каналі. Оскільки деякі датчики забезпечують напругу від 0-2,5 В, тому при еталонному напрузі 5 В ми отримуємо меншу точність, тому ми маємо інструкцію, яка дозволяє нам змінювати це контрольне значення. Отже, для зміни опорного значення ми маємо “analogReference ();”
За замовчуванням ми отримуємо максимальну роздільну здатність АЦП на платі, яка становить 10 біт, цю роздільну здатність можна змінити за допомогою інструкції (“analogReadResolution (біти);”).
У нашій робочій схемі роботи ми залишили цю опорну напругу за замовчуванням, тому ми можемо зчитувати значення з каналу АЦП, безпосередньо викликаючи функцію “analogRead (pin);”, тут “pin” являє собою контакт, куди ми підключили аналоговий сигнал, скажімо ми хочемо прочитати “A0”. Значення з АЦП можна зберегти у цілому числі у вигляді int SENSORVALUE0 = analogRead (A0); .
Тепер давайте поговоримо про SERVO, Arduino Uno має функцію, яка дозволяє нам контролювати положення сервопривода, просто вказуючи значення градуса. Скажімо, якщо ми хочемо, щоб сервопривід був на рівні 30, ми можемо безпосередньо представляти значення в програмі. Файл заголовка SERVO ( Servo.h ) виконує внутрішні обчислення всіх коефіцієнтів мита.
#включати
Тут перший вираз представляє заголовочний файл для управління SERVO MOTOR. Друге твердження - іменування сервоприводу; ми залишаємо його як servo0, оскільки будемо використовувати чотири. Третє твердження вказує, де підключений сервосигнальний штифт; це повинен бути ШІМ-штифт. Тут ми використовуємо PIN3 для першого сервоприводу. Четверте твердження дає команди для позиціонування сервомотора в градусах. Якщо йому дано 30, сервомотор обертається на 30 градусів.
Тепер ми маємо позицію сервоприводу SG90 від 0 до 180, а значення АЦП - від 0-1023. Ми будемо використовувати спеціальну функцію, яка автоматично відповідає обом значенням.
sensorvalue0 = карта (sensorvalue0, 0, 1023, 0, 180);
Цей оператор автоматично відображає обидва значення і зберігає результат у цілому числу 'servovalue0' .
Ось як ми контролювали сервоприводи в нашому проекті Robotic Arm за допомогою Arduino. Перевірте повний код нижче.
Як керувати робототехнічною рукою:
Користувачеві надається чотири горщики. Обертаючи ці чотири горщики, ми забезпечуємо змінну напругу на каналах АЦП UNO. Отже, цифрові значення Arduino знаходяться під контролем користувача. Ці цифрові значення відображаються для регулювання положення серводвигуна, отже, положення сервоприводу контролює користувач, і , обертаючи ці горщики, користувач може переміщати суглоби роботизованої руки і може взяти або схопити будь-який предмет.