![]() |
![]() |
Raspberry: керування сервоприводом |
![]() |
![]() |
Головна | Програмні продукти | Freesource програмні продукти | Статті по Tcl/Tk | Статті | Контакт | Карта сайту | |||
Raspberry: керування сервоприводом1. Знайомство з сервоприводомСервопривід - це кінцевий пристрій, який здійснює поворот і подальше утримання валу в певній позиції, заданій програмним шляхом. Існують цифрові та аналогові сервоприводи. В статті ми ознайомимось як керувати аналоговими сервоприводами. Детальнішу інформацію по сервоприводам ви можете отримати зі статті Вікіпедії На малюнку зображено сервопривод Tower Pro SG90 ![]() 2. Керування аналоговим сервоприводом (теорія)Аналоговий сервопривод керується широтно-імпульсною модуляцією (ШІМ) з частотою 50 герц та довжиною імпульсу від 1 до 2 мілісекунд. Змінюючи довжину імпульсу (скважність), отримаємо поворот валу від нульового до кінцевого положення. На малюнку проілюстрована схема підключення та діаграма сигналу для сервоприводу Tower Pro SG90. ![]() 3. Керування аналоговим сервоприводом (практика)Як відомо, мікрокомп'ютер Raspberry керується операційною системою Linux. Основна відмінність мікрокомп'ютера Raspberry, з точки зору прикладного програміста, від персонального комп'ютера - наяність периферійних входів/виходів, з допомогою яких можна керувати зовнішніми пристроями або одержувати інформацію від різноманітних датчиків. Доступ до зовнішніх пристроїв можна здійснити двома шляхами:
Перший шлях - це не для нас. Причина проста - бібліотеки існують тільки для певних мов програмування, а ми бажаємо отримати універсальний спосіб керування пристроєм. Unix-way - широке питання, це більше ніж питання, це ціла філософія не тільки програмівання а й стилю життя. Один з аспектів цієї філософії - все що нас оточує проектується в операційну систему як набір віртуальних файлів: вінчестер - це файл (/dev/sda), монітор(термінал) - це файл (/dev/tty), порядність чиновника - це файл (/dev/zero), кишеня чиновника - це чорна діра (/dev/null) Очевидно, якщо всі зовнішні пристрої предсталені в системі як набір спеціальних файлів то, виконуючи елементарні операції читання/запису файлів ми отримаємо безпосередній доступ до пристрою. Будь-яка мова програмування, в своєму наборі функцій, має процедури роботи з файлами - це наш шлях, простота та універсальність. Встановлюємо на Raspberry програму PI-blaster яка генерує ШІМ, керувати якою можна через спеціальний файл /dev/pi-blaster. Кроки по інсталяції та запуску програми широко висвітлені на сторінці програми. Насолоджуємось роботою сервоприводу, керуючи ним з використанням будь-якої мови програмування, хоча б з shell: # активуємо пін GPIO18 для роботи в ШІМ режимі
echo "18=1" > /dev/pi-blaster # генеруємо ШІМ сигнал з двадцяти відсотковою наповненістю
echo "18=0.2" > /dev/pi-blaster Або на Tcl:
# активуємо пін GPIO18 для роботи в ШІМ режимі
set fd [open /dev/pi-blaster w] puts $fd "18=1" close $fd # генеруємо ШІМ сигнал з двадцяти відсотковою наповненістю
set fd [open /dev/pi-blaster w] puts $fd "18=0.2" close $fd Стосовно нашого конкретного сервоприводу Tower Pro SG90, мінімальне і максимальне значення, яке необхідно передавати для генерації ШІМ сигналу це 0,05 і 0,25 відповідно. Схема підключення сервоприводу до Raspberry Pi.
|
||
Copyright © Едуард Зозуля | ||
![]() |