Исходный код и ресурсы
Полный исходный код библиотеки, примеры использования и историю изменений можно найти в нашем официальном репозитории:
Что такое RepkaPi.GPIO SysFS?
Это программная библиотека, созданная как совместимая по API замена популярной RPi.GPIO, но адаптированная специально для архитектуры и особенностей Repka Pi. Её ключевая особенность, отраженная в названии, — это работа через стандартный интерфейс ядра Linux — sysfs.
В отличие от методов, использующих прямой доступ к памяти (/dev/mem), подход sysfs обеспечивает:
- Безопасность и стабильность: Все операции проходят через проверенные и надежные механизмы ядра Linux, что исключает риск случайного повреждения системы из-за ошибки в коде.
- Совместимость: Гарантирует работу на различных версиях ядер Linux, которые поддерживают данный интерфейс.
- Работу без прав
root: При правильной настройке правилudev(описанной в разделе "Установка"), библиотека позволяет управлять GPIO от имени обычного пользователя.
Ключевые особенности и архитектура
Изучив структуру библиотеки, можно выделить несколько фундаментальных принципов, заложенных в её основу:
Совместимый API
Для тех, кто имеет опыт работы с Raspberry Pi, переход на Repka Pi будет максимально простым. Названия основных функций (setup, output, input, add_event_detect) и констант (HIGH, LOW, BOARD, BCM) унаследованы от RPi.GPIO.
Автоматическое определение платы
Библиотека способна самостоятельно определить модель вашей платы (Repka Pi 3 или Repka Pi 4) и автоматически подгрузить корректную карту расположения пинов.
Гибкая система нумерации
Поддерживается несколько режимов адресации контактов для максимального удобства:
BOARD: Нумерация по физическому расположению пина на гребенке. Наиболее удобен для новичков.BCM/SOC: Нумерация по системному номеру GPIO, который используется вsysfs.SUNXI: Адресация по именам портов процессора Allwinner (например, "PL10"). Удобен для разработчиков, работающих с документацией на SoC.
Продвинутая обработка событий
Механизм прерываний реализован не через примитивный опрос, а с помощью эффективного системного вызова epoll, что позволяет создавать по-настоящему реактивные программы, не нагружающие процессор.
Для кого эта документация?
Данное руководство предназначено как для начинающих пользователей, которые хотят сделать первые шаги в мире электроники с Repka Pi, так и для опытных разработчиков, желающих понять внутреннее устройство и все возможности библиотеки.
В следующих главах мы пошагово рассмотрим установку, научимся управлять пинами в разных режимах, разберем системы нумерации, освоим работу с прерываниями для создания интерактивных проектов и изучим API библиотеки для написания чистого и эффективного кода.
Технические детали #
Участники проекта
- Дмитрий Шевцов: Инициатива, первоначальная разработка.
- Семён Платцев: Портирование и адаптация для Repka Pi 4 и дальнейшее развитие проекта.
- Проект открыт для сообщества — мы приветствуем вклад каждого разработчика!