最近,我有一个正在进行的物联网项目,涉及Arduino设备与一个名为“香蕉皮”的浆果板之间的通信。我注意到有很多类似的主题,但没有一个专门讨论如何在Banana Pi中设置i2c驱动程序和引脚,因为安装库并开始编码不是一个简单的过程
以下是我的设置:
香蕉皮
Linux bananapi 3.4.104-bananian #1 SMP PREEMPT Mon Apr 6 18:25:40 UTC 2015 armv7l GNU/Linux
apt-get install python-smbus python-dev i2c-tools
i2c-dev
添加到/etc/modules
,将一些dtparams
添加到/boot/config
,尽管LinuxBananapi最初没有类似于覆盆子的文件)sudo raspi-config
接口选项激活I2C设备的选项。因此,我跳过这一步李>import smbus
from time import sleep
def main():
SLAVE_ADDRESS = 0x04
DATA_LENGTH = 4
I2CBus = smbus.SMBus(1)
print('initiated i2c connection as master')
while True:
try:
message = I2CBus.read_i2c_block_data(SLAVE_ADDRESS, 0x00, DATA_LENGTH)
print(message)
sleep(1)
except KeyboardInterrupt:
break
if __name__ == '__main__':
main()
**问题:每次运行上述代码时,它都会返回:**
Traceback (most recent call last):
File "index.py", line 20, in <module>
main()
File "index.py", line 13, in main
message = I2CBus.read_i2c_block_data(SLAVE_ADDRESS, 0x00, DATA_LENGTH)
IOError: [Errno 70] Communication error on send
这让我觉得上面第2步和第3步有些不对劲。有些人要求修改内核,如这里所述http://forum.banana-pi.org/t/has-anyone-added-an-rtc/5004/5。然而,这些步骤和他们的信心还不清楚,因为有些人说GPIO引脚在修改内核时会变得不可用,我不会冒险浪费时间将内存重新刷新回其原始操作系统,等等,以重新获得GPIO功能
阿杜伊诺
在I2C通信中,我使用Arduino Due作为香蕉Pi的从设备。布线只是简单地将Arduino SDA连接到Pi的SDA,将Arduino SCL连接到Pi的SCL(两个设备均在3.3V下工作),并将接地相互连接。 在https://radiostud.io/howto-i2c-communication-rpi/之后,在Arduino端再次进行了一些编码,只做了一个简单的修改,将它从串行监视器接收到的所有信息发送到BPi。但是由于上面显示的错误,我认为这在这个问题上并不重要
由于缺乏适当的资源,非常感谢您的帮助
目前没有回答
相关问题 更多 >
编程相关推荐