将port driveboard应用程序转换为beagle bone black debian 9.5

时间:2019-06-12 17:19:38

标签: python-2.7 arm gpio beagleboneblack debian-stretch

我打算将Driveboardapp从内核3.8移植到内核4.14。 Driveboardapp是用python编写的应用程序,旨在运行Lasersaur激光切割机,它使用UART1,WiFi和GPIO。 开发人员建议使用基于内核3.8的Ubuntu 14.04 LTS中的映像将应用程序运行到beaglebone黑板上 使用该映像,我遇到了网络稳定性问题,并且发现基于debian 9.5和内核4.14的最新官方beaglebone映像更加可靠。 不幸的是,我无法使gpio功能在此新操作系统上正常工作。

这是设置gpio引脚的python代码:

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 :(得分:0)

切换到Adafruit's BeagleBone IO Python Library似乎是这样做的方法:

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