gpt4 book ai didi

android-things - 如何判断外围设备是否连接到 GPIO?

转载 作者:行者123 更新时间:2023-12-04 14:24:05 25 4
gpt4 key购买 nike

我希望能够检测到外围传感器何时未连接到我的 Raspberry Pi 3。

例如,如果我有一个 GPIO 无源红外传感器。

我可以像这样获得所有 GPIO 端口:

PeripheralManagerService manager = new PeripheralManagerService();
List<String> portList = manager.getGpioList();
if (portList.isEmpty()) {
Log.i(TAG, "No GPIO port available on this device.");
} else {
Log.i(TAG, "List of available ports: " + portList);
}

然后我可以连接到这样的端口:
 try {
Gpio pir = new PeripheralManagerService().openGpio("BCM4")
} catch (IOException e) {
// not thrown in the case of an empty pin
}

但是,即使引脚为空,我仍然可以连接到它(这在技术上是有道理的,因为 gpio 只是二进制打开或关闭)。似乎没有任何 api,我无法从逻辑上合理地思考如何区分连接了外围传感器的引脚和“空”的引脚。

因此,目前,我无法以编程方式断言我的传感器和电路设置正确。

有人有想法么?从电子学的角度来看,它甚至可能吗?

引用文档:

https://developer.android.com/things/sdk/pio/gpio.html

最佳答案

有很多方法可以通过电子方式进行“存在检测”,但您在 SoC 中找不到任何内在的方法。您通常不会询问 GPIO 引脚是否连接了某些东西——它无法告诉您这一点。

额外的 GPIO 引脚通常用于检测外围设备是否连接到连接器。例如,某些传感器的插头可能包括一条“检测”线,该线对地短路并在连接传感器时将 GPIO 拉低。 USB 和 SDIO 使用接口(interface)中的一些专用电路做类似的事情。

您还可以使用电流感应之类的东西构建更精细的检测电路,但它们不可避免地必须输出您通过专用 GPIO 捕获的二进制信号。

这对于串行外围设备来说更容易实现,因为您通常可以发送基本命令并验证您是否得到响应。

关于android-things - 如何判断外围设备是否连接到 GPIO?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41785623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com