我正在尝试使用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'_
您应该可以通过以下方式找出您的gpio
$ ls /sys/class/gpio/gpio100 ;or whatever your gpiopin is
然后使用python
class SimpleGPIO:
def __init__(self,gpio_pin):
self.gpio_pin = 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()
gpio_100 = SimpleGPIO(100) #open on 100
gpio_100.write(1)
很棒!谢谢乔兰,这已经有了很大的帮助。您的代码最初对我不起作用,我不得不做一些调整:这就是我现在使用的内容,并导入到其他简单程序中以使用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 os
和os.system("echo %d > /sys/class/gpio/export.....
中缺少的同一行,我猜您发布时它也做了相同的操作,这就是为什么它没有立即为我工作。
感谢一堆!我真的不喜欢必须使用Adafruit
模块,因为它无法直接用于python3
,而且我仅通过研究并使代码正常工作,就学到了很多关于如何使用GPIO
的知识。
为了使这个问题保持最新,下面的工作现在可以在Debian“ buster”中为python3安装Adafruit_GPIO:
pip3 install Adafruit-GPIO
project history,他们进行了更新以使其在2019年4月与Python 3兼容。