向上平方GPIO引脚的读数不正确

2024-05-19 00:00:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在研制一种自动机器人。当我们开始时,我们使用树莓Pi从GPIO引脚上的旋转编码器收集数据。我们编写了一个python文件,当我们精确地旋转方向盘1次时,它可以完美地读出73.736个脉冲。我们使用车轮与编码器的比率和1个编码器旋转的脉冲量来计算脉冲量。号码是正确的

后来,我们注意到,由于一个SDK在Raspbian上没有很好地工作,我们的相机丢失了帧。就在那时,我们做出了决定,加入一个正式的董事会。我们安装Ubuntu18.04是因为我们使用ROS Melodic,SDK在这个操作系统上运行得更好。向上的方形板现在可以与相机完美配合,并且可以很好地接管Pi的其他任务

我们试着用我们的脚本读出我们的编码器。起初我们没有得到任何结果,因为内核不支持GPIO和RPi.GPIO包,而不是为Ubuntu 18.04设计的。我们将内核降级为5.0.0通用版本,并制作了三个版本的脚本:原始版本、使用mraa包的版本和使用外围包的版本。我们还为Ubuntu 18.04安装了一个RPi.GPIO包

我们让他们三个都读出我们的编码器数据!但不是以正确的方式。。。当我们把机器人开得很慢时,它们每转一圈都有73.736个脉冲,但当我们开足马力时,它们只能读出17-24K的脉冲。我们开得越慢,脉冲就越多。而且,当我们开快车时,脚本会认为我们向前开,当我们开慢车时,脚本会认为我们向后开。当我们向后行驶时,情况正好相反

我们已经排除故障一段时间了。。。以下是我们注意到并试图抓住的一些事情:

  • 电流可能很低,为所有连接到up squared的设备供电(它从电源模块获得电源)。所以我们把它连接到它原来的充电器上,但没有区别
  • 我们尝试了不同的GPIO引脚,所有通用GPIO引脚,没有区别
  • 我们在某个地方读到,向上平方没有上拉/下拉电阻,所以我们在机器人中加入了我们自己的硬件电阻,没有区别
  • 我们尝试使用LinuxGPIO引脚、RPi引脚和正常的引脚号,只有正常的引脚号可以获得数据,其余的则会得到引脚不存在的错误
  • 我们一直在寻找BIOS设置,也许可以改变一些事情,但没有发现

我为我们的mraa提供了一个脚本来读取带有这个问题的编码器。外围设备和RPi.GPIO变体使用相同的方法

我们认为这可能是由于脉搏过快,但我认为如果覆盆子可以处理它,上升平方也应该能够做到这一点。可能处理器计数器/时钟或中断有问题,对我们的脚本有影响?有人知道为什么不是所有的脉冲都能通过吗

提前多谢! 乔伦

enter image description here


Tags: 数据版本脚本gpioubuntupisdk机器人

热门问题