В этом уроке мы узнаем, как работать с Python на Raspberry Pi, вывести «Hello World», помигать светодиодом и использовать ШИМ.
Python в Raspberry Pi
Python - язык программирования высокого уровня, созданный Гвидо ван Россумом в 1991 году. Питон, как его называют многие программисты, язык программирования, такой же, как C ++, C #, Java или любой другой язык программирования.
Он прост в использовании, имеет чистый синтаксис, но является очень мощным языком, на котором пишут почти всё, что только захочется, начиная от веб-сайтов, заканчивая мобильными приложениями, big data и искусственным интеллектом.
Python - самый распространенный и наиболее используемый язык программирования для Raspberry Pi. Если вы пропустили, то советую посмотреть наш материал Введение в язык программирования Python.
Давайте откроем Python и приступим. Чтобы открыть Python в Raspberry Pi нам нужно сделать следующее.
Открываем Menu (Меню), переходим в Programming (Программирование) и жмем на Python 3.
Вы увидите экран с курсором. Это называется консолью или терминалом.
Hello World
Наберите следующую строку в консоли и нажмите Enter:
print("Hello World!")
Пример вывода:
Вы увидите "Привет, мир!" в терминале (на изображении выведен синим цветом). Поздравляю, вы только что выполнили свою первую команду на Питоне.
Давайте пойдем дальше и если у вас есть светодиод для Raspberry Pi, то мы сможем написать простой код, чтобы заставить его мигать или затухать.
Мигаем светодиодом с помощью Python
Во-первых, нам нужно подключить светодиод к Raspberry Pi согласно схеме ниже:
Теперь все, что вам нужно сделать - это открыть редактор Python IDLE (как показано выше), открыть новое окно (CTRL+N).
Далее вводим приведенный ниже код и сохраняемся:
import RPi.GPIO as GPIO
import time
# функция мигания
def blink(pin):
GPIO.output(pin,GPIO.HIGH)
time.sleep(1)
GPIO.output(pin,GPIO.LOW)
time.sleep(1)
return
# использовать номер пина Raspberry Pi
GPIO.setmode(GPIO.BOARD)
# настройка выхода GPIO
GPIO.setup(11, GPIO.OUT)
# мигать GPIO17 50 раз
for i in range(0,50):
blink(11)
GPIO.cleanup()
Сохраните файл и запустите его, нажав F5. Вы должны увидеть, как ваш светодиод мигает.
Поздравляю, вы сделали свой первый аппаратный проект на Raspberry Pi. Теперь можно пойти дальше и воспользоваться Широтно-Импульсной Модуляцией (ШИМ), чтобы светодиод мог затухать.
Применение ШИМ
ШИМ или широтно-импульсная модуляция (англ. - PWM или Pulse Width Modulation) - это тип цифрового сигнала. Цифровой сигнал может иметь только два возможных состояния: ВКЛ или ВЫКЛ, 0 или 1, или, в случае этого проекта, 0 или 5 вольт.
Вот почему для того, чтобы светодиод мигал, не требовался ШИМ, потому что светодиод просто включался и выключался. В сигналах ШИМ мы можем иметь оба этих состояния в течение определенного периода времени.
Если вы работаете с Ардуино, то рекомендую прочитать про Широтно-импульсную модуляцию в Ардино.
Предположим, вы хотите управлять яркостью светодиода. Возможный подход состоит в том, чтобы включить светодиод на небольшой период времени, а затем снова выключить его на небольшой промежуток времени.
Таким образом, когда это включение и выключение происходит на очень высокой скорости, это дает эффект затухания светодиода. Взгляните на рисунок ниже.
Чем шире прямоугольная волна, тем ярче будет гореть светодиод.
Схема соединения
Подключите Raspberry Pi и светодиод, как показано на схеме ниже. Светодиод подключен к GPIO19.
Код Python
После подключения схемы откройте Python 3 и нажмите CTRL+N, чтобы открыть новое окно. Скопируйте приведенный ниже код в окно:
import RPi.GPIO as IO
import time
IO.setwarnings(False)
IO.setmode (IO.BCM)
# инициализация GPIO19 как выход
IO.setup(19,IO.OUT)
# частота 100Hz
p = IO.PWM(19,100)
p.start(0)
while 1:
for x in range (50):
p.ChangeDutyCycle(x)
time.sleep(0.1)
for x in range (50):
p.ChangeDutyCycle(50-x)
time.sleep(0.1)
Когда вы запускаете программу, ваш светодиод должен менять состояние от яркого до тусклого.
Поздравляю, вы завершили свой второй проект на Python и Raspberry Pi.