Raspberry: керування сервоприводом

Единая страна

Raspberry: керування сервоприводом

Raspberry: керування сервоприводом

Raspberry: керування сервоприводом

1. Знайомство з сервоприводом

Сервопривід - це кінцевий пристрій, який здійснює поворот і подальше утримання валу в певній позиції, заданій програмним шляхом.

Існують цифрові та аналогові сервоприводи. В статті ми ознайомимось як керувати аналоговими сервоприводами.

Детальнішу інформацію по сервоприводам ви можете отримати зі статті Вікіпедії

На малюнку зображено сервопривод Tower Pro SG90

сервопривод Tower Pro SG90

2. Керування аналоговим сервоприводом (теорія)

Аналоговий сервопривод керується широтно-імпульсною модуляцією (ШІМ) з частотою 50 герц та довжиною імпульсу від 1 до 2 мілісекунд. Змінюючи довжину імпульсу (скважність), отримаємо поворот валу від нульового до кінцевого положення.

На малюнку проілюстрована схема підключення та діаграма сигналу для сервоприводу Tower Pro SG90.

Діаграма сигналу сервоприводу Tower Pro SG90

3. Керування аналоговим сервоприводом (практика)

Як відомо, мікрокомп'ютер Raspberry керується операційною системою Linux. Основна відмінність мікрокомп'ютера Raspberry, з точки зору прикладного програміста, від персонального комп'ютера - наяність периферійних входів/виходів, з допомогою яких можна керувати зовнішніми пристроями або одержувати інформацію від різноманітних датчиків.

Доступ до зовнішніх пристроїв можна здійснити двома шляхами:

  1. Завантажити в ваше середовище розробки певну бібліотеку і використовувати її виклики для виконання певних операцій
  2. Використовувати геніальну особливість UNIX-систем - доступ до обладнання через віртуальну файлову систему /dev та /sys

Перший шлях - це не для нас. Причина проста - бібліотеки існують тільки для певних мов програмування, а ми бажаємо отримати універсальний спосіб керування пристроєм.

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.

Схема підключення сервоприводу до Raspberry Pi
Головна
Програмні продукти
Freesource програмні продукти
Статті
Контакт
GPSMWL - GPS моніторинг для соціальних проектів
GPSMTA - GPS трекер / GPS моніторинг для Android
GPSM - програмно-апаратний комплекс GPS моніторингу
MapTour - GPS навігація для Туристів
MapSurfing - переглядач географічних карт
DGraf - візуализація графів
ViCer - домашня система відеоспостереження
FPS - безкоштовна система GPS моніторингу
Jeans - Фінансово-складський облік
Cerber - Фінансовий облік ігорного залу
Visimap - Візуальна карта
BIB - Картотека книг
2DO - Облік робочого часу
Виписка - склад
Обчислення зарплати
Krp - візуализатор зв'язаних структур
Xboat - проектувальник малих суден
XSQLite - visualisator DB SQLite
Текстовий редактор XEdJ
Copyright © Едуард Зозуля
Проверка PR и ТИЦ