- ШІМ (модуляція ширини імпульсу):
- Серводвигун та ШІМ:
- Необхідні компоненти:
- Кругова діаграма:
- Пояснення до роботи та програмування:
Raspberry Pi - це плата на основі процесора ARM, розроблена для інженерів-електронників та любителів. PI - одна з найбільш надійних платформ для розробки проектів, що існують зараз. Завдяки вищій швидкості процесора та 1 ГБ оперативної пам'яті, PI можна використовувати для багатьох важливих проектів, таких як обробка зображень та Інтернет речей.
Для виконання будь-якого з важливих проектів потрібно розуміти основні функції PI. У цих підручниках ми розглянемо всі основні функціональні можливості Raspberry Pi. У кожному підручнику ми обговоримо одну з функцій PI. До кінця цієї серії підручників Raspberry Pi ви зможете самостійно виконувати гучні проекти. Пройдіть нижче підручники:
- Початок роботи з Raspberry Pi
- Конфігурація Raspberry Pi
- Світлодіод блимає
- Інтерфейс кнопки Raspberry Pi
- Покоління ШІМ Raspberry Pi
- Керування двигуном постійного струму за допомогою Raspberry Pi
- Управління кроковим двигуном з Raspberry Pi
- Реєстр зсуву зв’язку з Raspberry Pi
- Підручник з ADC Raspberry Pi
У цьому підручнику ми будемо керувати сервомотором за допомогою Raspberry Pi. Перш ніж переходити до сервоприводу, давайте поговоримо про ШІМ, оскільки саме від нього походить концепція управління сервомотором
ШІМ (модуляція ширини імпульсу):
Раніше ми вже неодноразово говорили про ШІМ в: Модуляція ширини імпульсу з ATmega32, ШІМ з Arduino Uno, ШІМ з 555 таймером IC та ШІМ з Arduino Due. ШІМ розшифровується як «Модуляція ширини імпульсу». ШІМ - це метод, який використовується для отримання змінної напруги від стабільного джерела живлення. Для кращого розуміння ШІМ розглянемо схему нижче,
На малюнку вище, якщо перемикач постійно закривається протягом певного періоду, світлодіод протягом цього часу буде безперервно увімкнено. Якщо перемикач закритий на половину секунди і відкритий на наступну половину секунди, тоді світлодіод буде ввімкнено лише в першій половині секунди. Тепер пропорція, при якій світлодіод горить протягом усього часу, називається робочим циклом, і її можна обчислити наступним чином:
Цикл роботи = час включення / (час включення + час вимкнення)
Робочий цикл = (0,5 / (0,5 + 0,5)) = 50%
Отже, середня вихідна напруга складе 50% від напруги акумулятора.
Коли ми збільшимо швидкість увімкнення та вимкнення до рівня, ми побачимо, що світлодіод затемнюється замість того, щоб вмикати та вимикати. Це тому, що наші очі не можуть чітко вловлювати частоти, що перевищують 25 Гц. Розглянемо цикл 100 мс, світлодіод вимкнеться на 30 мсек і увімкнеться на 70 мс. На виході у нас буде 70% стабільної напруги, тому світлодіод буде постійно світитися з 70% інтенсивності.
Коефіцієнт обов'язків переходить від 0 до 100. "0" означає повністю ВИМКНЕНО, а "100" повністю УВІМКНЕНО. Цей коефіцієнт дії дуже важливий для сервомотора. Положення сервомотора визначається цим коефіцієнтом експлуатації. Перевірте це для демонстрації ШІМ зі світлодіодами та Raspberry Pi.
Серводвигун та ШІМ:
Сервомотор - це комбінація двигуна постійного струму, системи управління положенням та шестерень. Сервоприводи мають багато застосувань у сучасному світі, і завдяки цьому вони доступні у різних формах та розмірах. У цьому підручнику ми будемо використовувати сервомотор SG90, він є одним з популярних і найдешевших. SG90 - це сервопривід на 180 градусів. Таким чином, за допомогою цього сервоприводу ми можемо розташувати вісь від 0-180 градусів.
Сервомотор в основному має три дроти, один призначений для позитивної напруги, інший - для заземлення, а останній - для встановлення положення. Червоний дріт підключений до джерела живлення, коричневий провід з'єднується з землею, і Жовтий провід (або білий) підключений до сигналу.
На сервоприводі у нас є система управління, яка приймає ШІМ-сигнал з сигнального штифта. Він декодує сигнал і отримує від нього коефіцієнт опору. Після цього він порівнює відношення до заздалегідь визначених значень позицій. Якщо є різниця у значеннях, він відповідно регулює положення сервопривода. Отже, положення осі серводвигуна базується на коефіцієнті опору ШІМ-сигналу на сигнальному штифті.
Частота сигналу ШІМ (модульована по ширині імпульсу) може змінюватися залежно від типу сервомотора. Для SG90 частота ШІМ-сигналу становить 50 Гц. Щоб дізнатися частоту роботи вашого сервоприводу, перевірте таблицю даних для цієї конкретної моделі. Отож, коли вибрано частоту, іншим важливим фактором тут є МОЖЛИВИЙ КОЕФІЦІЕНТ сигналу ШІМ.
У таблиці нижче показано положення сервоприводу для цього конкретного коефіцієнта обов'язку. Ви можете отримати будь-який кут між ними, відповідно вибравши значення. Отже, для 45 ° сервоприводу коефіцієнт заповнення повинен становити «5» або 5%.
ПОЗИЦІЯ |
МІЖНИЙ КОЕФІЦІЄНТ |
0º |
2.5 |
90º |
7.5 |
180º |
12.5 |
Перш ніж взаємодіяти сервомотор з Raspberry Pi, ви можете протестувати свій сервопривід за допомогою цієї схеми тестера сервомотора. Також перевірте наші сервопроекти нижче:
- Управління сервомотором за допомогою Arduino
- Управління сервомотором з Arduino Due
- Інтерфейс сервомотора з мікроконтролером 8051
- Управління сервомотором за допомогою MATLAB
- Управління сервомотором за допомогою гнучкого датчика
- Регулювання положення сервоприводу з вагою (датчик сили)
Необхідні компоненти:
Тут ми використовуємо Raspberry Pi 2 Model B з ОС Raspbian Jessie. Усі основні вимоги до обладнання та програмного забезпечення обговорювались раніше, ви можете переглянути їх у Вступі про Raspberry Pi, крім того, що нам потрібно:
- З'єднувальні штифти
- Конденсатор 1000 мкФ
- Сервомотор SG90
- Макет
Кругова діаграма:
A1000µF повинен бути підключений через силову рейку + 5 В, інакше PI може випадково вимкнутись під час управління сервоприводом.
Пояснення до роботи та програмування:
Як тільки все буде підключено згідно з принциповою схемою, ми можемо увімкнути PI, щоб написати програму на PYHTON.
Ми поговоримо про декілька команд, які ми будемо використовувати в програмі PYHTON, Ми збираємось імпортувати файл GPIO з бібліотеки, функція нижче дозволяє програмувати GPIO штифти PI. Ми також перейменовуємо “GPIO” на “IO”, тому в програмі, коли ми хочемо посилатися на шпильки GPIO, ми будемо використовувати слово “IO”.
імпортувати RPi.GPIO як IO
Іноді, коли шпильки GPIO, які ми намагаємось використовувати, можуть виконувати деякі інші функції. У такому випадку ми отримаємо попередження під час виконання програми. Команда нижче вказує PI ігнорувати попередження та продовжувати роботу з програмою.
IO.setwarnings (False)
Ми можемо вказати шпильки GPIO PI або за номером контакту на борту, або за номером їх функції. Як і "PIN 29" на платі, це "GPIO5". Отже, ми говоримо тут, або ми будемо представляти шпильку тут як «29» або «5».
IO.setmode (IO.BCM)
Ми встановлюємо PIN39 або GPIO19 як вихідний штифт. Ми отримаємо ШІМ-вихід з цього виводу.
IO.setup (19, IO.OUT)
Після налаштування вихідного штифта нам потрібно встановити штифт як ШІМ вихідний штифт, p = IO.PWM (вихідний канал, частота ШІМ-сигналу)
Наведена команда призначена для налаштування каналу, а також для налаштування частоти каналу ”. 'p' ось змінна, це може бути що завгодно. Ми використовуємо GPIO19 як ШІМ “Вихідний канал. «Частота ШІМ-сигналу» ми виберемо 50, оскільки робоча частота SG90 становить 50 Гц.
Команда нижче використовується для запуску генерації сигналу ШІМ. " DUTYCYCLE " призначений для встановлення співвідношення "Turn On", як пояснювалося раніше, стор. старт (DUTYCYCLE)
Команда нижче використовується як назавжди цикл, за допомогою цієї команди оператори всередині цього циклу будуть виконуватися постійно.
Поки 1:
Тут програма для управління сервоприводом за допомогою Raspberry Pi забезпечує ШІМ-сигнал на GPIO19. Коефіцієнт заряду сигналу ШІМ змінюється між трьома значеннями протягом трьох секунд. Отже, щосекунди сервопривід обертається до положення, визначеного коефіцієнтом боргу. Сервопривід безперервно обертається до 0º, 90º та 180º за три секунди.