我使用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即可輕鬆重現。