我使用Arduino通过串口在传感器和我的C#应用程序之间进行通信。是否有可能从USB端口直接访问数字组件,例如 Force Sensitive Resistor - Square ?
我必须为此编写驱动程序吗?
我绘制了一个半示意图来举例说明:
答案 0 :(得分:3)
由于它是数字总线,因此无法通过USB直接读取模拟传感器。您需要某种处理来将模拟信号转换为数字信号并通过总线正确通信。
答案 1 :(得分:0)
从力敏电阻的外观来看,这是一个模拟元件;电阻和电容随施加在传感器上的力而变化。如果您查看FSR安装指南文档,请参阅从第16页开始的建议电气接口。
我建议使用第一个电路,将Vout连接到Arduino上的模拟输入。从那里你需要将ADC计数转换为电压,然后根据图9使用Arduino中的查找表函数将电压转换为力。此时你有一个包含施加在传感器上的力的变量。从这里,您可以通过USB串行总线传输值,就像任何其他值一样。然后,您的C#应用程序需要读取串行数据,并解析出值。
答案 2 :(得分:0)
为了从任何传感器中采样信息,您需要一个中间人。 Arduino使用FTDI芯片将UART(串行)转换为USB。当您通过此连接读取数据时,您将通过串行USB接口读取数据。我的建议是坚持使用Arduino或其他微控制器。
如果您真的想通过USB直接读取它(而不是通过USB串行转换器),则必须在支持USB的设备中实现某种协议,例如Stellaris Launchpad或{ {3}} AKA Atmega32U4。您还必须编写驱动程序来描述如何与此USB设备通信。除非你能够将它作为一个已知的设备实现,例如键盘或串口(是的,我们在那里完全循环)。
简而言之,目前尚无芯片将传感器的模拟(或数字)值转换为任何操作系统本身都能理解的内容。由于Arduino Lenardo非常类似USB is a protocol,因此您无法使用谨慎的设备。您将不得不使用带有USB堆栈的微控制器。
同样,我的建议是通过现有的串行(通过USB)端口通过USB传递传感器值。这是非常简单的,并且在没有整个Arduino的情况下很容易重现。