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

前端之家收集整理的这篇文章主要介绍了android-things – 如何判断外围设备是否连接到GPIO?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我希望能够检测到外围传感器何时没有连接到我的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通过接口中的某些专用电路执行类似操作.

您还可以使用电流感应等方法构建更精细的检测电路,但它们不可避免地需要输出通过专用GPIO捕获的二进制信号.

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

原文链接:https://www.f2er.com/android/309982.html

猜你在找的Android相关文章