Приложение для управления портом на Beagle Bone Black Debian 9.5 - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь портировать Driveboardapp с ядра 3.8 на ядро ​​4.14. Driveboardapp - это приложение, написанное на python и предназначенное для работы на станке для лазерной резки лазером. Оно использует UART1, WiFi и GPIO. Разработчики рекомендуют запускать приложение на черной доске beaglebone, используя образ на основе Ubuntu 14.04 LTS с ядром 3.8 С этим образом у меня возникают проблемы со стабильностью сети, и я обнаружил, что более свежий официальный образ beaglebone, основанный на Debian 9.5 с ядром 4.14, гораздо более надежен. К сожалению, я не могу заставить функционал gpio работать, как и ожидалось, с этой новой ОС.

Это код Python для установки пинов gpio:

try:
    fw = file("/sys/class/gpio/export", "w")
    fw.write("%d" % (71))
    fw.close()
except IOError:
    # probably already exported
    pass
# set the gpio pin to output
# echo out > /sys/class/gpio/gpio71/direction
fw = file("/sys/class/gpio/gpio71/direction", "w")
fw.write("out")
fw.close()
# set the gpio pin high
# echo 1 > /sys/class/gpio/gpio71/value
fw = file("/sys/class/gpio/gpio71/value", "w")
fw.write("1")
fw.flush()
fw.close()

Когда я запускаю приложение в debian9.5 иногда , оно разрывается с таким сообщением:

root@beaglebone:~/driveboardapp# python backend/app.py 
Traceback (most recent call last):
  File "backend/app.py", line 7, in <module>
    import config
  File "/root/driveboardapp/backend/config.py", line 194, in <module>
    fw = file("/sys/class/gpio/gpio71/direction", "w")
IOError: [Errno 2] No such file or directory: '/sys/class/gpio/gpio71/direction'

Если я перезапущу приложение, оно может сломаться в той же точке или может успешно завершиться и в конечном итоге сломаться в следующей точке кода, использующего gpio.

До сих пор я пытался добавить небольшой спящий режим перед попыткой записи файла, но он все равно не удался.

Репо приложения Driveboard https://github.com/nortd/driveboardapp

Мои правки в коде до сих пор https://github.com/luky83/driveboardapp/blob/debian9.5/backend/config.py

Спасибо за любой совет.

1 Ответ

0 голосов
/ 19 июня 2019

Переключение на Библиотека Adhone BeagleBone IO Python , кажется, способ сделать это:

import Adafruit_BBIO.GPIO as GPIO
GPIO.setup("P8_46", GPIO.OUT)
GPIO.output("P8_46", GPIO.HIGH)
...