11 месяцев назад История
README.md

RepkaPi.GPIO SysFS

Подключаемая библиотека замена для RPi.GPIO для Repka Pi. Реализованы только основные функции работы с GPIO, используется sysfs: это позволяет получить доступ к контактам GPIO из пользовательского приложения.

Установка

  sudo apt-get update
  sudo apt-get install python3-dev python3-setuptools git
  git clone https://gitflic.ru/project/repka_pi/repkapigpiofs.git
  cd repkapigpiofs
  sudo python3 setup.py install

Вы так же можете перед установкой в файле RepkaPi/constants.py установить в константе GPIO.DEFAULTBOARD вашу модель платы, это позволит не выбирать модель платы в коде

Поддерживаемые модели платы

  • Repka Pi 3

Использование

То же, что и RPi.GPIO, но с новой функцией выбора платы Repka Pi.

    import RepkaPi.GPIO as GPIO

    GPIO.setboard(GPIO.REPKAPI3) # не обязательно если в constants.py при установки библиотеки установить константу GPIO.DEFAULTBOARD

    GPIO.setmode(GPIO.BOARD)

    GPIO.output(5, 1)

Примеры использования в папке Demo

Статьи по RepkaPi.GPIO

Без root-доступа

Если вы хотите использовать библиотеку как пользователь без полномочий root, вам необходимо сначала настроить правило UDEV, чтобы предоставить вам разрешения. Это можно сделать следующим образом:

  $ sudo groupadd gpio
  $ sudo usermod -aG gpio <ваш пользователь>
  $ sudo nano /etc/udev/rules.d/99-gpio.rules

Это должно добавить вашего пользователя в группу GPIO, создать новое правило UDEV и открыть его в текстовом редакторе Nano.

Введите следующее в Nano:


    KERNEL=="gpio*", MODE:="0660", GROUP:="gpio"
    KERNEL=="pwm*", MODE:="0660", GROUP:="gpio"
    KERNEL=="gpiochip*", MODE:="0660", GROUP:="gpio"
    SUBSYSTEM=="gpio*", PROGRAM="/bin/sh -c 'chown -R root:gpio /sys/class/gpio && chmod -R 777 /sys/class/gpio && chown -R root:gpio /sys/class/gpio/* && chmod -R 777 /sys/class/gpio/* && chown -R root:gpio /sys/devices/platform/soc/*.pinctrl/gpio && chmod -R 777 /sys/devices/platform/soc/*.pinctrl/gpio'"
    SUBSYSTEM=="pwm*", PROGRAM="/bin/sh -c 'chown -R root:gpio /sys/class/pwm && chmod -R 777 /sys/class/pwm && chown -R root:gpio /sys/class/pwm/* && chmod -R 777 /sys/class/pwm/* && chown -R root:gpio /sys/class/pwm/pwmchip0/* && chmod -R 777 /sys/class/pwm/pwmchip0/* && chown -R root:gpio /sys/devices/platform/soc/*.pwm/pwm && chmod -R 777 /sys/devices/platform/soc/*.pwm/pwm '"

Нажмите ctrl-x, Y и ENTER, чтобы сохранить и закрыть файл.

Перезагрузитесь, и вы можите использовать RepkaPi.GPIO из под пользователя без полномочий root.

Рекомендации

  • https://www.kernel.org/doc/Documentation/gpio/sysfs.txt
  • http://linux-sunxi.org/GPIO

Лицензия MIT

Copyright (c) 2023 Дмитрий Шевцов (@screatorpro) & Contributors

Данная лицензия разрешает лицам, получившим копию данного программного обеспечения и сопутствующей документации (далее — Программное обеспечение), безвозмездно использовать Программное обеспечение без ограничений, включая неограниченное право на использование, копирование, изменение, слияние, публикацию, распространение, сублицензирование и/или продажу копий Программного обеспечения, а также лицам, которым предоставляется данное Программное обеспечение, при соблюдении следующих условий:

Указанное выше уведомление об авторском праве и данные условия должны быть включены во все копии или значимые части данного Программного обеспечения.

ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНО ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ ГАРАНТИИ ТОВАРНОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ ПО ЕГО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И ОТСУТСТВИЯ НАРУШЕНИЙ, НО НЕ ОГРАНИЧИВАЯСЬ ИМИ. НИ В КАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО КАКИМ-ЛИБО ИСКАМ, ЗА УЩЕРБ ИЛИ ПО ИНЫМ ТРЕБОВАНИЯМ, В ТОМ ЧИСЛЕ, ПРИ ДЕЙСТВИИ КОНТРАКТА, ДЕЛИКТЕ ИЛИ ИНОЙ СИТУАЦИИ, ВОЗНИКШИМ ИЗ-ЗА ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИЛИ ИНЫХ ДЕЙСТВИЙ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.

Описание

Подключаемая библиотека замена для RPi.GPIO для Repka Pi. Реализованы только основные функции работы с GPIO, используется sysfs: это позволяет получить доступ к контактам GPIO из пользовательского приложения.

Конвейеры
0 успешных
0 с ошибкой