回复:将 Adafruit_I2C 导入更改为另一个 GPIO 布局

RE: Getting the Adafruit_I2C Import Changed Into Another GPIO Layout

我在使用 MotorBridgeCape 时遇到一些问题。我有我所有的软件,我在 github.com/Seeed-Studio/MotorBridgeCapeforBBG_BBB 的 GitHub.com 和 seeedstudio.com/wiki/Motor_Bridge_Cape_v1.0.

的 Wiki 上找到了大部分软件

这是我的问题。我连接我的电池、两个电机,然后我 运行 从他们的 Wiki 页面获取直流电机的 .py 文件。我得到一个错误。错误内容如下: •访问 0x4B 时出错:检查您的 I2C 地址

我在他们的网站上在线查看。 seeedstudio.com 站点在论坛部分表示,在 2014 年有一个已解决的答案。这个答案是更新固件。我进入带有 MotorBridgeCape 的 BBB/BBG 并下载 .zip 文件然后解压缩。

固件更新如下:

1.Connect cape to your BBG/BBB, download http://www.seeedstudio.com/wiki/images/ ... e_v1.0.zip to your BBG/BBB
2.unzip the file
3.Go to the directory Motor Bridge Cape V1.0 (cd Motor Bridge Cape V1.0)
4.upload firmware (make flash_firmware)

解压 .zip 文件后,我得到一个 "directory." 目录,列为 Motor Bridge Cape v1.0。我在 file/directory.

中没有下划线

因此,它没有列为 Motor_Bridge_Cape_v1.0,我无法移动到那个 file/directory。所以,我用“\”移动到那个目录。

因此,我进入指定的目录并使用 "make flash_Firmware"。这也让我出错。

这是 MotorBridgeCapeforBBG_BBB 的代码:

https://github.com/Seeed-Studio/MotorBridgeCapeforBBG_BBB/blob/master/BBG_MotorBridgeCape/MotorBridge.py

请看:

from Adafruit_I2C import Adafruit_I2C 
import Adafruit_BBIO.GPIO as GPIO 
import time 
Reset = "P9_23" 
MotorBridge = Adafruit_I2C(0x4b) 
GPIO.setup(Reset, GPIO.OUT) 


ReadMode  = 0 
WriteMode = 1 
DeAddr    = 0X4B 
ConfigValid =  0x3a6fb67c 
DelayTime = 0.005 

上面这个软件使用的是Adafruit_I2C。有没有办法将 Adafruit_I2C 更改为另一个 "import" 没有错误的 GPIO?

从 Adafruit 导入的 I2C 有一个错误。如果我可以更改 I2C 导入以导入其他 GPIO,如 GPIO_46 等,我应该能够在我当前的代码中使用 MotorBridgeCapeforBBG_BBB 来实现。

请看: 进口车桥 导入时间

MotorName        = 1
ClockWise        = 1
CounterClockWise = 2
PwmDuty          = 90
Frequency        = 1000

if __name__=="__main__":
    motor = MotorBridge.MotorBridgeCape()
    motor.DCMotorInit(MotorName,Frequency)
    while True:
        motor.DCMotorMove(MotorName,ClockWise,PwmDuty)
        time.sleep(2)
        motor.DCMotorMove(MotorName,CounterClockWise,PwmDuty)
        time.sleep(2)
        print "hello"
        motor.DCMotorStop(MotorName)
        time.sleep(2)

赛斯

P.S。任何建议都会非常有帮助。

好的...

我检查了 BBG 和 Motor Bridge Cape 足够长的时间。我按照你在上面的答案中所说的那样做了。谢谢你。这是软件序列中的附加 2。我还需要 python smbus 才能正确 运行 软件。

赛斯

我换了行

MotorBridge = Adafruit_I2C(0x4b)

MotorBridge = Adafruit_I2C(0x4b,2)

它对我有用。还要确保安装了 python-smbus。有关详细信息,请参阅 this webpage

此项目的更新现已在 github.com https://github.com/silver2row/bbg/blob/master/MBC/MotorBridge.py 上可用。

此外,您可以查看 github 存储库开头的自述文件,以访问 smbus2、更改 smbus2 行 302 以及一些简单的源代码来测试您的发现。

您的 MotorBridge.py 文件需要进行大量更改。请查看差异并相应地更改它们。

赛斯

Motor Bridge Cape“需要”Adafruit_GPIO.I2C 库,因为 Adafruit_BBIO.I2C 库现在不​​存在。另外...这是旧消息,因为 Adafruit_GPIO.I2C 库已被弃用。

现在只读。你可以找到那个信息。这里:https://github.com/adafruit/Adafruit_Python_GPIO/blob/master/Adafruit_GPIO/I2C.py.

这就是我现在用于 Motor Bridge Cape I2C 功能的内容:https://github.com/kplindegaard/smbus2

所以,不要使用上面列出的旧方法的设置,而是使用这个:

#!/usr/bin/python3

# * Copyright (c) 2015 seeed technology inc.
# * Author      : Jiankai Li
# * Create Time:  Nov 2015
# * Change Log : Seth Dec. 2019 w/ help from #beagle at Freenode
# *              and Prabakar's book called, "BealgeBone by Example."
# * license: http://www.gnu.org/licenses/gpl-3.0.txt is the license for my contributions...
# * license from Mr. Li can be found here: https://github.com/Seeed-Studio/MotorBridgeCapeforBBG_BBB/blob/master/BBG_MotorBridgeCape/MotorBridge.py (MIT).

# FileName : MotorBridge.py
# by Jiankai.li

from smbus2 import SMBus
import time
import pathlib

# reset pin is P9.23, i.e. gpio1.17
reset_pin = pathlib.Path('/sys/class/gpio/gpio49/direction')
reset_pin.write_text('low')

bus = SMBus('/dev/i2c-2')

...

Motor Bridge Cape 和 BeagleBoard.org 板系列!