Raspberry Pi - це плата на основі процесора ARM, розроблена для інженерів-електронників та любителів. PI - одна з найбільш надійних платформ для розробки проектів, що існують зараз. Завдяки вищій швидкості процесора та 1 ГБ оперативної пам'яті, PI можна використовувати для багатьох важливих проектів, таких як обробка зображень та Інтернет речей.
Для виконання будь-якого з важливих проектів потрібно розуміти основні функції PI. У цих підручниках ми розглянемо всі основні функціональні можливості Raspberry Pi. У кожному підручнику ми обговоримо одну з функцій PI. До кінця циклу підручників ви зможете самостійно виконувати гучні проекти. Перевірте їх, щоб розпочати роботу з конфігурацією Raspberry Pi та Raspberry Pi.
Ми обговорювали світлодіодні блимання, інтерфейси кнопок та генерацію ШІМ у попередніх підручниках. У цьому підручнику ми будемо контролювати швидкість двигуна постійного струму за допомогою техніки Raspberry Pi та ШІМ. ШІМ (Pulse Width Modulation) - метод, що використовується для виведення змінної напруги з постійного джерела живлення. Про ШІМ ми обговорювали в попередньому підручнику.
У Raspberry Pi 2 є 40 вихідних штифтів GPIO. Але з 40 можна запрограмувати лише 26 штифтів GPIO (від GPIO2 до GPIO27). Деякі з цих штифтів виконують деякі спеціальні функції. Якщо відкласти спеціальний GPIO, у нас залишилось 17 GPIO. Щоб дізнатись більше про шпильки GPIO, перейдіть за посиланням: Світлодіод блимає з Raspberry Pi
Кожен з цих 17 контактів GPIO може подавати максимум 15 мА. А сума струмів від усіх контактів GPIO не може перевищувати 50 мА. Таким чином, ми можемо отримати в середньому максимум 3 мА з кожного з цих штифтів GPIO. Тож не слід втручатися у ці речі, якщо ви не знаєте, що робите.
На платі є штирі вихідної потужності + 5 В (Pin 2 і 4) та + 3,3 В (Pin 1 & 17) для підключення інших модулів та датчиків. Ця силова шина підключена паралельно до живлення процесора. Отже, сильний струм від цієї силової шини впливає на процесор. На платі PI є запобіжник, який спрацює, як тільки ви прикладете велике навантаження. Ви можете безпечно витягнути 100 мА з рейки + 3,3 В. Ми говоримо про це тут, тому що; ми підключаємо двигун постійного струму до + 3,3 В. Маючи на увазі обмеження потужності, ми можемо сюди підключити лише двигун низької потужності, якщо ви хочете керувати двигуном великої потужності, розгляньте можливість його живлення від окремого джерела живлення.
Необхідні компоненти:
Тут ми використовуємо Raspberry Pi 2 Model B з ОС Raspbian Jessie. Усі основні вимоги до обладнання та програмного забезпечення обговорювались раніше, ви можете переглянути їх у Вступі про Raspberry Pi, крім того, що нам потрібно:
- З'єднувальні штифти
- Резистор 220 Ом або 1 КОм (3)
- Невеликий двигун постійного струму
- Кнопки (2)
- 2N2222 Транзистор
- 1N4007 Діод
- Конденсатор - 1000 мкФ
- Хлібна дошка
Пояснення схеми:
Як було сказано раніше, ми не можемо взяти більше 15 мА з будь-яких штифтів GPIO, а двигун постійного струму - більше 15 мА, тому ШІМ, що генерується Raspberry Pi, не може подаватися безпосередньо на двигун постійного струму. Отже, якщо ми підключимо двигун безпосередньо до PI для контролю швидкості, плата може остаточно пошкодитися.
Отже, ми будемо використовувати транзистор NPN (2N2222) як комутаційний пристрій. Цей транзистор тут керує потужним двигуном постійного струму, приймаючи ШІМ-сигнал від PI. Тут слід звернути увагу, що неправильно підключений транзистор може сильно навантажити плату.
Двигун є індукційним, і тому, перемикаючи двигун, ми відчуваємо індуктивний підйом. Цей стрибок буде сильно нагрівати транзистор, тому ми будемо використовувати діод (1N4007), щоб забезпечити захист транзистора від індуктивного спайку.
Для того, щоб зменшити коливання напруги, ми підключимо конденсатор 1000 мкФ через блок живлення, як показано на схемі.
Робоче пояснення:
Як тільки все буде підключено згідно з принциповою схемою, ми можемо увімкнути PI, щоб написати програму на PYHTON.
Ми поговоримо про декілька команд, які ми будемо використовувати в програмі PYHTON.
Ми збираємось імпортувати файл GPIO з бібліотеки, функція нижче дозволяє програмувати GPIO штифти PI. Ми також перейменовуємо “GPIO” на “IO”, тому в програмі, коли ми хочемо посилатися на шпильки GPIO, ми будемо використовувати слово “IO”.
імпортувати RPi.GPIO як IO
Іноді, коли шпильки GPIO, які ми намагаємось використовувати, можуть виконувати деякі інші функції. У такому випадку ми отримаємо попередження під час виконання програми. Команда нижче вказує PI ігнорувати попередження та продовжувати роботу з програмою.
IO.setwarnings (False)
Ми можемо вказати шпильки GPIO PI або за номером контакту на борту, або за номером їх функції. Як і "PIN 35" на платі, це "GPIO19". Отже, ми говоримо тут, або ми будемо представляти шпильку тут за допомогою «35» або «19».
IO.setmode (IO.BCM)
Ми встановлюємо GPIO19 (або PIN35) як вихідний штифт. Ми отримаємо ШІМ-вихід з цього виводу.
IO.setup (19, IO.IN)
Після встановлення виводу як вихідного нам потрібно встановити висновок як вихідного виводу ШІМ, p = IO.PWM (вихідний канал, частота ШІМ-сигналу)
Вищевказана команда призначена для налаштування каналу, а також для налаштування частоти ШІМ-сигналу. 'p' ось змінна, це може бути що завгодно. Ми використовуємо GPIO19 як вихідний канал ШІМ. " частоту ШІМ-сигналу " вибрано 100, оскільки ми не хочемо бачити, як світлодіод блимає.
Наведена нижче команда використовується для запуску генерації ШІМ-сигналу, ` ` DUTYCYCLE '' - для встановлення коефіцієнта включення , 0 означає, що світлодіод буде УВІМКНЕНО 0% часу, 30 означає, що світлодіод буде УВІМКНЕНО протягом 30% часу, а 100 означає повністю УВІМКНЕНО.
стор. старт (DUTYCYCLE)
У випадку, якщо Умова в дужках істинна, оператори всередині циклу виконуються один раз. Отже, якщо штифт 26 GPIO низький, тоді оператори всередині циклу IF виконуються один раз. Якщо штифт 26 GPIO не йде низько, тоді оператори всередині циклу IF не будуть виконуватися.
if (IO.input (26) == False):
У той час як 1: використовується для нескінченності циклу. За допомогою цієї команди оператори всередині цього циклу будуть виконуватися безперервно.
У нас є всі команди, необхідні для досягнення цього регулювання швидкості.
Після написання програми та її виконання залишається лише керування. У нас є дві кнопки, підключені до PI; один для збільшення робочого циклу сигналу ШІМ, а інший для зменшення робочого циклу сигналу ШІМ. Натисканням однієї кнопки швидкість двигуна постійного струму збільшується, а натисканням другої кнопки швидкість двигуна постійного струму зменшується. Цим ми досягли контролю швидкості двигуна постійного струму від Raspberry Pi.
Також перевірте:
- Контроль швидкості двигуна постійного струму
- Керування двигуном постійного струму за допомогою Arduino