Первая программа на Python для Raspberry Pi

Первая программа на Python для Raspberry Pi

В данном уроке мы разберём, как использовать 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.

Перед вами появится экран с курсором. Это окно называется консолью или терминалом.

Консоль Python в Raspberry Pi

Hello World

Введите следующую строку в консоль и нажмите Enter:

print("Hello World!")

Пример вывода:

Hello World в Python на Raspberry Pi

На экране отобразится «Привет, мир!» (на изображении текст выведен синим цветом). Поздравляем — вы только что выполнили свою первую команду на Python.

Двигаемся дальше, и если у вас имеется светодиод для Raspberry Pi, мы напишем простой код, чтобы он начал мигать или плавно затухать.

Мигаем светодиодом с помощью Python

Для начала необходимо подключить светодиод к Raspberry Pi по схеме, представленной ниже:

Схема подключения светодиода к 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.

Схема подключения светодиода к GPIO19 Raspberry Pi

Код 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 завершён.