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