Лучший способ познакомиться с новой технологией — это заставить ее сделать что-то видимое в реальном мире. Наша первая программа будет управлять светодиодом, заставляя его мигать. Это "Hello, World!" в мире микроэлектроники, которое наглядно покажет, как программный код превращается в физическое действие.
Что нам понадобится (Аппаратная часть)
Для этого эксперимента вам потребуются всего три компонента:
- Repka Pi: С уже установленной библиотекой
RepkaPi.GPIO
. - Светодиод: Подойдет любой стандартный светодиод.
- Резистор: Номиналом от 220 Ом до 1 кОм.
- Почему нужен резистор? GPIO-пин Repka Pi может выдавать лишь очень небольшой ток. Резистор ограничивает ток, проходящий через светодиод, защищая от повреждения и сам светодиод, и, что гораздо важнее, порт вашего Repka Pi. Никогда не подключайте светодиод напрямую к GPIO!
Схема подключения
Нам нужно собрать простую электрическую цепь. У светодиода есть две ножки: длинная — это анод (+), короткая — катод (-).
- Отключите питание от вашей Repka Pi.
- Выберите любой GPIO-пин для управления. Для примера возьмем пин №7 на физической гребенке.
- Подключите длинную ножку светодиода (анод) к одному концу резистора.
- Второй конец резистора подключите к пину №7 на Repka Pi.
- Короткую ножку светодиода (катод) подключите к одному из пинов земли (
GND
) на Repka Pi (например, к пину №9).
Визуальная схема: (Пин 7 на Repka Pi)
-> (Резистор)
-> (Анод светодиода | Катод светодиода)
-> (Пин 9 "GND" на Repka Pi)
После сборки схемы можно включить питание Repka Pi.
3.3. Программный код (blink.py
)
Теперь напишем скрипт на Python, который будет управлять нашей цепью.
Шаг 1: Создайте файл Откройте любой текстовый редактор и создайте файл с именем blink.py
.
Шаг 2: Напишите код Скопируйте или наберите следующий код. Каждый шаг в нем подробно прокомментирован.
# -*- coding: utf-8 -*-
# 1. Импортируем необходимые библиотеки
import RepkaPi.GPIO as GPIO # Импортируем нашу библиотеку для работы с GPIO
from time import sleep # Импортируем функцию sleep для создания задержек
# 2. Настройка режима нумерации и пина
GPIO.setmode(GPIO.BOARD) # Указываем, что будем использовать нумерацию по физическому расположению пинов на плате.
# Определяем переменную для нашего пина, чтобы легко менять ее в будущем
LED_PIN = 7
# Настраиваем наш пин как ВЫХОД (OUTPUT).
# Это значит, что мы будем отправлять с него сигнал, а не получать.
GPIO.setup(LED_PIN, GPIO.OUT)
# 3. Основной цикл программы
try:
print("Программа запущена. Нажмите CTRL+C для завершения.")
# Создаем бесконечный цикл, который будет выполняться, пока мы его не прервем.
while True:
# Включаем светодиод
print("Светодиод ВКЛ")
GPIO.output(LED_PIN, GPIO.HIGH) # Подаем на пин высокий уровень (3.3V)
sleep(0.5) # Ждем полсекунды
# Выключаем светодиод
print("Светодиод ВЫКЛ")
GPIO.output(LED_PIN, GPIO.LOW) # Подаем на пин низкий уровень (0V)
sleep(0.5) # Снова ждем полсекунды
# 4. Корректное завершение
except KeyboardInterrupt:
# Эта часть сработает, когда вы нажмете Ctrl+C
print("\nПрограмма завершена пользователем.")
finally:
# Эта команда очень важна! Она сбрасывает состояние всех пинов,
# которые мы использовали, в их исходное состояние.
GPIO.cleanup()
3.4. Запуск и результат
Шаг 1: Сохраните файл blink.py
Шаг 2: Запустите скрипт из терминала
python3 blink.py
Вы должны увидеть в консоли сообщения "Светодиод ВКЛ" и "Светодиод ВЫКЛ", а подключенный к вашей Repka Pi светодиод начнет мигать с интервалом в полсекунды.
Шаг 3: Остановите программу Нажмите комбинацию клавиш Ctrl+C
. Программа корректно завершит свою работу, выведет сообщение и погасит светодиод.
Поздравляем! Вы только что собрали свою первую электронную схему и написали программу для управления ей. Вы освоили базовые, но самые важные функции библиотеки RepkaPi.GPIO
:
setmode()
— выбор системы нумерации.setup()
— настройка пина на вход или выход.output()
— управление состоянием пина.cleanup()
— безопасное завершение работы.
Теперь вы готовы к более сложным и интересным проектам.