Библиотека WiringRP для Repka Pi #
Введение #
WiringRP — это библиотека на языке C, предоставляющая низкоуровневый доступ к аппаратному обеспечению одноплатных компьютеров Repka Pi. Созданная как альтернатива знаменитой WiringPi для Raspberry Pi, она предлагает простой и интуитивно понятный программный интерфейс (API) для управления GPIO и периферийными интерфейсами.
Библиотека служит надежным мостом между вашими приложениями и "железом", позволяя сосредоточиться на логике проекта, а не на сложностях работы с регистрами процессора.
Ключевые возможности #
- Универсальная поддержка Repka Pi 3 и 4: Один и тот же скомпилированный код работает на обеих платформах. Библиотека автоматически определяет модель платы при запуске и адаптируется под её аппаратные особенности.
- Полное управление GPIO:
- Гибкая настройка режимов работы контактов (вход/выход).
- Управление внутренними подтягивающими резисторами (pull-up/pull-down).
- Чтение и запись цифровых сигналов (HIGH/LOW).
- Работа с прерываниями: Возможность асинхронно реагировать на события на пинах (нажатие кнопок, сигналы с датчиков) без постоянного опроса в цикле.
- Аппаратные интерфейсы: Простой и унифицированный доступ к ключевым протоколам для связи с внешними устройствами:
- UART: для работы с последовательными портами (GPS-модули, микроконтроллеры, консольные кабели).
- I2C: для подключения широкого спектра датчиков (акселерометры, барометры, АЦП).
- SPI: для высокоскоростного обмена данными (дисплеи, матрицы, карты памяти).
- Поддержка ШИМ (PWM):
- Программный ШИМ: Возможность генерировать ШИМ-сигнал на любом GPIO-пине для управления сервоприводами или яркостью светодиодов.
- Аппаратный ШИМ: Прямое управление встроенным в SoC ШИМ-контроллером для генерации стабильного и точного сигнала.
- Адаптация под распиновки: Библиотека учитывает выбранный в
repka-configвариант распиновки и корректно работает с активными в данный момент интерфейсами.
«Дорожная карта» #
Мы постоянно работаем над расширением возможностей библиотеки. В ближайших планах:
- Реализация поддержки 1-Wire интерфейса для работы с датчиками (например, DS18B20).
- Добавление функций для управления CIR-контроллером (инфракрасный приемник), встроенным в SoC Allwinner.
Стек технологий #
- Язык программирования: C11
- Система сборки: CMake
- Система контроля версий: Git
- Сервис хранения исходного кода: GitFlic
Аппаратное обеспечение для разработки и тестирования: #
- Одноплатный компьютер Repka Pi.
- Беспаечная макетная плата для сборки и моделирования прототипов электронных устройств.
- Т-образная плата-расширение GPIO с 40-pin шлейфом.
- Стартовый набор электронных компонентов для Arduino.
Участники проекта #
- Сергей Шалапов (@binome196RU): Автор проекта, первоначальная разработка и программирование.
- Артём Юдаев (@randyswine): Реинжиниринг архитектуры проекта, администрирование интернет-ресурсов.
- tsp-hork (@Ty65784): Портирование на Repka Pi 4.
- Здесь может быть и Ваша фамилия!