如何在python3中使用Adafruit_BBIO模块?

时间:2014-06-13 19:07:46

标签: python python-3.x beagleboneblack

我正在尝试使用Beaglebone Black上的GPIO引脚。在尝试书中的一些代码示例时,我使用了Adafruit_BBIO.GPIO模块。 从那以后,我在python3中编写了我的整个逻辑,它无法访问模块。 我想问一下是否有人知道如何使用python3访问该模块。 我已经尝试将Adafruit_BBIO目录复制到我的python3文件夹中,但它没有用。

'#!/usr/bin/python3
import Adafruit_BBIO'

当我像

那样打电话时
root@arm: python3 main.py

我收到此错误:

_Traceback (most recent call last): File "main.py", line 8, in <module> import lcd_control File "/home/debian/python/lcd_control.py", line 3, in <module> import Adafuit_BBIO.GPIO as GPIO ImportError: No module named 'Adafuit_BBIO'_ 

2 个答案:

答案 0 :(得分:1)

真棒!谢谢Joran,这是一个巨大的帮助。你的代码起初并不适合我,我不得不做一些调整:这就是我现在使用的,并导入到其他简单的程序中使用GPIO:

  import os 
  class SimpleGPIO:
      def __init__(self,gpio_pin):
          self.gpio_pin = gpio_pin
          os.system("echo %d > /sys/class/gpio/export" % self.gpio_pin)
          self.gpio_path = "/sys/class/gpio/gpio%d/"%gpio_pin
          with open(self.gpio_path+"direction") as f:
              self.direction = f.read()
      def write(self,value):
          if self.direction != "out":
              os.system("echo out > %sdirection"%self.gpio_path)
              self.direction = "out"
          os.system("echo %s > %svalue"%(value,self.gpio_path))
      def read(self):
          if self.direction != "in":
              os.system("echo in > %sdirection"%self.gpio_path)
              self.direction = "in"
          with open(self.gpio_path+value) as f:
              return f.read()

现在,我只是在开头添加from gpio import SimpleGPIO重用代码。

我发现当我将其粘贴到这篇文章中时,它似乎删除了您遗失的同一行,import osos.system("echo %d > /sys/class/gpio/export.....我猜测它在发布时也是如此这就是为什么它不能直接为我工作。

非常感谢!我真的不想使用Adafruit模块,因为它没有直接为python3工作,而且我学到了很多关于如何使用GPIO的知识。通过这个工作并使代码工作。

答案 1 :(得分:0)

仅是为了更新此问题,现在可以使用以下方法在Debian“ buster”中为python3安装Adafruit_GPIO:

pip3 install Adafruit-GPIO

看着project history,他们进行了更新,以便于2019年4月与Python 3兼容。