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