Лабораторна робота 5 ОР

You might also like

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 8

Лабораторна робота № 5

Тема: Управління роботою сервопривода


Мета: Навчитись управляти роботою сервопривода, програмувати різні
режими його роботи.
1. Теоретичні відомості

Сервопривод (стежачий привід) - привід з управлінням через негативний


зворотний зв'язок, що дозволяє точно керувати параметрами руху.
Сервоприводом є певний тип механічного приводу (пристрою, робочого
органу), що має в складі датчик (положення, швидкості, зусилля і т. П.) І блок
управління приводом (електронну схему або механічну систему тяг),
автоматично підтримує необхідні параметри на датчику (і , відповідно, на
пристрої) відповідно до заданого з зовні значення (положенню ручки
управління або чисельному значенню від інших систем).
Простіше кажучи, сервопривід є «автоматичним точним виконавцем»
- отримуючи на вхід значення керуючого параметра (в режимі реального часу),
він «своїми силами» (грунтуючись на показаннях датчика) прагне створити і
підтримувати це значення на виході виконавчого елемента.

Мал.1
Ілюстрація
внутрішнього
устрою
сервоприводу

Для підключення до контролера від сервоприводу тягнеться 3 дроти


обтиснутих найчастіше стандартним 3 піновим роз'ємом з кроком 2.54мм (1).
Кольори проводів можуть варіюватися. Коричневий або чорний - земля (мінус),
червоний - плюс джерела живлення, помаранчевий або білий - керуючий
сигнал.
Отже, сигнал приходить на плату яка і буде даний сигнал перетворювати
в імпульси які посилаються безпосередньо на двигун (2), потенціометр(3), який
зчитує і задає кут повороту сервоприводу.

Мал.2 Ілюстрація внутрішнього устрою потенціометра

Принцип роботи потенціометра простий. Потенціометр має 3 виводи. На


крайні виводи подається плюс і мінус живлення (полярність не має значення),
між виводами є резистивна речовина, по якій і рухається повзунок з'єднаний із
середнім виводом. Обертаючи повзунок з лівого крайнього положення в крайнє
праве положення збільшується опір, а разом з тим і зменшується напругу від
вхідного до умовно мінімального, яку будемо знімати з середнього виводу.
Значення мінімальної напруги буде залежати від величини максимального
опору у конкретно взятого потенціометра. У розглянутих нами сервоприводах
найчастіше встановлюють потенціометри на 5 кОм.
Ручка потенціометра зєднана з вихідним валом сервоприводу, отже при
повороті вихідного вала міняється значення на потенціометрі. При крайньому
лівому положенні потенціометр погасить всю напругу і мінімальне напруження
буде рівним нулю, а в середній точці тоді буде два з половиною вольта. З даних
умов у нас виходить що при куті в 180 ° на виході потенціометра 5 вольт, при
90 ° 2,5 вольта, а при 0 ° 0 вольт.
Сервопривод знаходиться в положенні 0 °. На вхід плати управління
подаємо керуючий сигнал який несе в собі інформацію про поворот
сервоприводу на 90 °. Електронна начинка плати зчитує показання
потенціометра, на потенціометрі бачить 0 вольт, а в програмі забито що має
бути 2,5. Ось і весь сенс. Плата аналізує різницю, потім вибирає напрямок
обертання мотора і буде обертати його до тих пір поки напруга на виході
потенціометра не стане рівним двом з половиною вольтам.
Мікромоторчик (4) не в змозі розвинути потужне зусилля на валу
(момент), однак має високу швидкість обертання. Для перетворення високої
кутової швидкості з малим моментом в низьку з високим, яка нам якраз і
потрібна, слід використовувати редуктор. Редуктор представлений шестернями
які з'єднують вал моторчика і вихідний вал (5). Шестерня з меншою кількістю
зубців веде шестерню з великим, від цього знижується швидкість але
підвищується момент.
Основні характеристики сервоприводів:
• Зусилля на валу
Зусилля на валу, він же момент це один з найважливіших показників
сервоприводу і вимірюється в кг / см. У характеристиках зазвичай вказується
для двох варіантів напруги живлення, найчастіше для 4.8В і 6.0В.
Момент в 15 кг / см означає що сервопривід здатний утримати нерухомо
в горизонтальному положенні важеля з плечем в 1 см і підвішеним до неї
вантажем масою 15 кг або ж утримати вантаж в 1 кг на важелі з плечем в 15 см.
  Довжина плеча важеля обернено пропорційна масі утримуваного
вантажу. Для даного приводу при довжині в 2 см ми отримаємо 7.5 кг, а
зменшивши довжину важеля до 0,5 см отримаємо вже цілих 30 кг
• Швидкість повороту
Швидкість повороту також є однією з найважливіших характеристик. Її
прийнято вказувати у часовому еквіваленті необхідному для зміни положення
вивідного валу сервоприводу на 60 °. Дану характеристику також найчастіше
вказують для 4.8В і 6.0В.
Наприклад характеристика 0.13сек / 60 ° означає що поворот даного
сервоприводу на 60 ° може бути здійснений мінімум за 0.13 секунди.
• Тип сервоприводів
Цифрові або аналогові
• Напруга живлення
 Для більшості сервоприводів коливається в діапазоні від 4.8 до 7.2В
• Кут повороту
Це максимальний кут на який може повернути вихідний вал.
Сервоприводи по кутах повороту в основному бувають на 180 ° і 360 °.
• Сервопривід постійного обертання
Випускаються сервоприводи і постійного обертання. Якщо немає
можливості придбати такий, але дуже потрібно, то можна переробити
звичайний сервопривід.
• Тип редуктора
Редуктори сервоприводу виконують з металу, карбону, пластика або
компонують з металевих і пластикових шестерень.

Відмінність цифрового сервоприводу від аналогового


З кожним днем сервоприводи стають все менші за габаритами, а їх
швидкодія і обертаючий момент помітно зростають. Створення цифрового
сервоприводу це ще один великий крок вперед. Цифрові сервоприводи мають
значні експлуатаційні переваги в порівнянні зі стандартними сервоприводами,
але мають і деякі недоліки. Разглянемо плюси і мінуси цифрових
сервоприводів, а також розберемось з деякими міфами про їх відмінності на
прикладі двох сервоприводів Futaba: цифровий S9450 і аналоговий S9402.
Зовнішніх відмінностей між цифровими і аналоговими сервоприводами
немає. Навіть більше, в них використовуються ті ж двигуни, ті ж шестерні, ті ж
потенціометри, все одинакове крім електронної начинки.
1. Аналоговий сервопривід має в своєму складі чипсет і компоненти що
задають часові відрізки.
2. На цифровому ж сервоприводі встановлений мікропроцессор з
кварцевим генератором.
Переваги цифрового сервоприводу
На деяких видах цифрових сервоприводів доступна прошивка
управляючого процесора. Цим можна добитися зміни в швидкодії
сервоприводу, його продуктивності.
Процесор посилає імпульси до двигуна з значно більшою частотою, це
означає, що замість 50 імпульсів /сек які посилає аналоговий серводвигун, буде
отримувати 300. Тим самим напруга на мотор поступає майже завжди. Через це
двигун може швидше реагувати на команди, швидше набирати оберти, і
тормозитись, більш точно позиціонуватися і утримувати більший момент.
Більше наглядна інформація доступна на наступних діаграмах:

Мал.3 Діаграми роботи аналогового і цифрового сервоприводів

Диаг.1 - Находиться в режимі очікування.


Диаг.2 - Подача коротких імпульсів, т.е. напруга на двигуні поступає з
більшими інтервалами. Двигун працює з невеликою швидкістю. .
Диаг.3 - Збільшення ширини імпульсів, т.е. за один цикл навантаження на
двигун поступає довше за часом, а значить мотор крутиться швидше і
збільшується момент.
 Недостатки цифрового сервопривода
Так, як імпульси надходять частіше, то і споживання живлення у таких
сервоприводах вище. Варто відзначити, що і акумулятори також
удосконалюються і їх ємність постійно зростає при незмінних габаритах. Так
що при використанні цифрових сервоприводів рекомендується
використовувати аккумулятори великої ємності.

Мал.4 Графік мертвих зон цифрового і аналогового сервоприводів

На діаграмі наведено порівняльний аналіз потужностей, які отримаємо


при використанні аналогового і цифрового сервоприводів. На ній ми наглядно
бачимо переваги використання цифрового сервоприводу.
Цифровий сервопривід більш підходить для використання, якщо вам
необхідно:
 • Більше високого дозволу - менша мертва зона, більш точне
позиціонування
 • Більш швидка реакція управління - збільшення прискорення на
короткий проміжок часу
 • Постійний крутящий момент на всьому шляху руху важіля
сервопривода
• Підвищення моменту утримання, коли важіль позиціонується в
нерухомому положенні
Для решти випадків відмінно підходить і аналогові сервомашини.

Програмування сервоприводів
Обмеження за кількістю сервопріводів що підключаються
На більшості плат Arduino бібліотека Servo підтрімує управління НЕ
більше 12 сервоприводів, на Arduino Mega це число віростає до значення 48.
При цьому є Невеликий побічній ефект використання цієї бібліотеки: якщо ви
працюєте не з Arduino Mega, то стає неможливо використовувати функцію
analogWrite () на 9 и 10 контактах незалежно від того, підключені
сервоприводи до цих контактів чи ні. На Arduino Mega можна підключити до 12
сервопріводів без порушення функціонування ШІМ / PWM, при використанні
більшої кількості сервоприводів неможна використовувати analogWrite () на 11
и 12 контактах.
Бібліотека - це набір додаткових команд, який дозволяє вводити
програму в спрощеному форматі. Використаємо бібліотеку для роботи з
сервоприводами Servo.h.

Функціонал бібліотеки Servo


Бібліотека Servo дозволяє здійснювати програмне керування
сервоприводами. Для цього заводиться змінна типу Servo. Управління
здійснюється наступними функціями:
• attach () - приєднує змінну до конкретного піну. Можливі два варіанти
синтаксису для цієї функції: servo.attach (pin) і servo.attach (pin, min, max).
При цьому pin - номер піна, до якого приєднують сервопривід, min і max -
довжини імпульсів в мікросекундах, що відповідають за кути повороту 0 ° і 180
°. За замовчуванням виставляються рівними 544 мкс і 2400 мкс відповідно.
• write () - повертає команду сервоприводу прийняти деяке значення
параметра. Синтаксис наступний: servo.write (angle), де angle - кут, на який
повинен повернутися сервопривід.
• writeMicroseconds () - повертає команду послати на сервопрівод імульс
певної довжини, є низькорівневим аналогом попередньої команди. Синтаксис
наступний: servo.writeMicroseconds (uS), де uS - довжина імпульсу в
мікросекундах.
• read () - читає поточне значення кута, в якому знаходиться сервопривід.
Синтаксис наступний: servo.read (), повертається ціле значення від 0 до 180.
• attached () - перевірка, чи була приєднана змінна до конкретного піну.
Синтаксис наступний: servo.attached (), повертається логічна істина, якщо
змінна була приєднана до якого-небудь піну, або брехня в іншому випадку.
• detach () - виробляє дію, зворотну дії attach (), тобто від'єднує змінну
від піна, до якого вона була приписана. Синтаксис наступний: servo.detach ().

2 Порядок виконання роботи


2.1 підключення сервоприводу
1 Складаємо схему (Мал.5)
Мал.5 Схема підключення сервоприводу до Ардуіно

Для цього запускаємо VBB, створюємо новий проект, переміщаємо в


робочу область плату Ардуіно, сервопривід, макетницю, змінний потенціометр
2 На макетниці розміщуємо потенціометр і сервопривід, виходи яких
з’єднуємо згідно схеми.
3 Під’єднуємо живлення +5 в і GND до двох ліній макетниці bredboard, до
яких підключаємо крайні виводи потенціометра і виводи живлення
сервопривода.
4 Пишемо скетч для управління сервоприводом.

servo_example.ino - підключаємо бібліотеку для роботи з сервоприводами


#include <Servo.h> - створюємо об'єкт для управління сервоприводом
Servo myservo;

В void setup () підключаємо сервопривід до 9 піну


myservo.attach (9);

В void loop ()
myservo.write (90); - встановлюємо сервопривід в середнє положення
delay (500); - встановлюємо затримку
myservo.write (0); - встановлюємо сервопривід в крайнє ліве положення
delay (500); - встановлюємо затримку
myservo.write (180); - встановлюємо сервопривід в крайнє праве
положення
delay (500); встановлюємо затримку
}

2.2 Керування позицією сервоприводу за допомогою потенціометра

import muvium.compatibility.arduino.Arduino;
import muvium.compatibility.arduino.Servo;
class Knob extends Arduino{
Servo myservo = new Servo(this); // створюємо сервооб'єкт для керування
сервоприводом

int potpin = 0; // // аналоговий пін, що використовується для підключення


потенціометра
int val; // змінна для читання значення з аналогового піна

public void setup()


{

myservo.attach(9); // приєднуємо сервопривід до 9 піна


}

public void loop()


{
val = analogRead(potpin); // зчитує значення потенціометра
(значення між 0 і 1023)
val = map(val, 0, 1023, 0, 179); // масштабування для використання
з сервоприводом (значення між 0 і 180)

myservo.write(val); // встановлює позицію сервоприводу


відповідно до масштабованого значення

delay(25); // затримка для відпрацювання механіки сервоприводу


}

2.3 За аналогією підключимо 2 сервоприводи


2servo_example.ino
// підключаємо бібліотеку для роботи з сервоприводами
#include <Servo.h>
// створюємо об'єкти для управління сервоприводами
Servo myservo1;
Servo myservo2;

void setup ()
{
// підключаємо сервоприводи до 11 і 12 піну
myservo1.attach (11);
myservo2.attach (12);
}

void loop ()
{
// встановлюємо сервопривід в серединне положення
myservo1.write (90);
myservo2.write (90);
delay (500);
// встановлюємо сервопривід в крайнє ліве положення
myservo1.write (0);
myservo2.write (0);
delay (500);
// встановлюємо сервопривід в крайнє праве положення
myservo1.write (180);
myservo2.write (180);
delay (500);
}

Висновки:

Контрольні питання:
1. Перелічіть існуючі виконавчі механізми робототехніки.
2. На якому явищі заснована робота сервопривода?
3. Характеристики сервоприводів.
4. Введіть поняття циклу.
5. Які бувають сервоприводи?
6. Поясніть синтаксис циклу for і while.
7. Що таке ШИМ?
8. Перерахуйте особливості даних скетчів.

You might also like