问题标签 [upsquared]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - 如何使用 i2c-tools 通过 I2C 接口获取 BH1750(光传感器)的数据
我正在尝试通过 Ubuntu-16.04 上的 I²C 接口使用BH170FVI 传感器。我的电路板是UpSquared而不是 Raspberry。
为了能够使用 i2c 接口,我安装了i2c-tools
. 我之前也用这个工具控制了BMI160传感器,没有遇到问题。
当我尝试使用以下命令在终端上检测我的传感器时:
此命令正确检测到我的传感器,如下所示:
看来我的设备地址是0x23
.
在此之后,当我尝试通过命令读取所有寄存器映射数据时:
结果是:
问题是所有地图地址都为零。其中至少有一个应读取光量。我以为传感器电源可能会关闭,但我尝试使用命令i2cset
打开电源,但仍然没有任何变化。
注意:我的传感器没有问题,因为我使用 Arduino 以及以下代码进行了尝试:
我的问题是为什么我不能通过 on 控制我的传感器i2c-tools
。
python - UP Squared GPIO 引脚无法正确读取
我目前正在研究一个自主机器人。开始时,我们使用 Raspberry Pi 从 GPIO 引脚上的旋转编码器收集数据。我们编写了一个 python 文件,当我们将轮子旋转 1 次时,它可以完美地读出 73.736 个脉冲。我们使用轮与编码器的比率和编码器旋转 1 圈的脉冲量来计算这个脉冲量。号码是正确的。
后来,我们注意到我们的相机丢失帧是由于 SDK 在 Raspbian 上不能很好地工作。就在那时,我们决定加入 UP Squared 董事会。我们安装了 Ubuntu 18.04,因为我们使用的是 ROS Melodic,并且 SDK 更适用于这个操作系统。UP Squared 板现在可以完美地与相机配合使用,并且可以很好地接管 Pi 的其他任务。
我们尝试了我们的脚本来读出我们在 UP Squared 上的编码器。起初我们没有得到任何结果,因为内核不支持 GPIO 和不是为 Ubuntu 18.04 制作的 RPi.GPIO 包。我们将内核降级到 5.0.0 通用版本,并制作了三个版本的脚本:原始版本,一个使用 mraa 包,一个使用外围包。我们还设法为 Ubuntu 18.04 安装了一个 RPi.GPIO 包。
我们让他们三个都读出了我们的编码器数据!但不是正确的方式......当我们驱动我们的机器人真的很慢时,它们都倾向于每转 73.736 个脉冲,但是当我们驱动全功率时,它们只能读取 17-24K 脉冲。我们开得越慢,我们通过的脉冲就越多。此外,当我们开得快时,脚本认为我们向前行驶,当我们开得慢时,它认为我们向后行驶。当我们倒车时,情况正好相反。
我们已经进行了一段时间的故障排除......这是我们注意到并试图抓住的一些事情:
- 电流可能太低,无法为连接到上平方的所有设备供电(它从电源模块获得电源)。所以我们把它连接到它原来的充电器上,但没有区别。
- 我们尝试了 GPIO 的不同引脚,所有通用 GPIO 引脚,没有区别。
- 我们在某处读到 UP Squared 没有上拉/下拉电阻,所以我们在机器人中放入了自己的硬件电阻,没有区别。
- 我们尝试使用 Linux GPIO pinout、RPi pinout 和 normal Pin numbers,只有普通 pin numbers 可以通过,其余的会出现 pin 不存在的错误。
- 我们一直在寻找 BIOS 设置也许能够改变一些东西,但没有找到。
我提供了我们的 mraa 脚本来读出带有这个问题的编码器。外围和 RPi.GPIO 变体使用相同的方法。
我们认为这可能是由于脉冲来得太快,但我认为如果 Raspberry 可以处理它,那么 UP Squared 也应该能够做到这一点。也许处理器计数器/时钟或中断有问题影响我们的脚本?有谁知道为什么不是所有的脉冲都通过?
提前非常感谢!净连