2009-01-23 130 views
3

我最近正在閱讀有關Arduino的Hello World應用程序,我想我自己,「我想我是否可以用我現在的硬件來做到這一點。」USB驅動器LED閃光燈

由於我沒有Arduino,我抓住了一個usb閃存驅動器,我已經鋪設並開始搜索有關它的信息。我在這方面沒有找到很多有用的信息,所以現在我在這裏問:我是否可以訪問USB驅動器的硬件(例如LED)並通過一些編程環境與它進行交互(我認爲C#應該可能有辦法做到這一點)?

此外,有關此主題 - 有誰知道USB驅動器使用什麼樣的命令?例如,SCSI存儲設備具有標準化的命令集; ATA設備有一個類似的協議。如何將簡單的讀/寫命令發佈到USB存儲設備?

+0

在我認識的設備時,LED只需連接而存儲寫入閃存,所以沒有軟件的事情,但只是一個硬件的東西。 – 2009-01-25 11:05:17

+0

獲得一個arduino和正確的東西,你不會撤銷它!它的方式比玩LED更有效 – DFectuoso 2009-01-27 21:04:10

+0

我第二,Arduino是30美元,完全值得。 – basszero 2009-01-27 21:15:33

回答

5

雖然USB協議相當通用,但外圍設備實際上是功能特定的,並且需要主機上的某種設備驅動程序才能正常工作。

雖然USB閃存盤上有一個微控制器,但大多數USB存儲設備都遵循一個通用協議。這就是爲什麼您不必爲每個插入Windows的驅動器安裝不同的設備驅動程序。

我很確定海量存儲協議沒有「Turn LED on」消息:) 儘管實現USB驅動器的公司實際上可能有一個特殊的命令來執行此操作(可能用於調試) ,我懷疑它會被公佈。我相信,爲了讓您直接訪問USB堆棧,您必須編寫自己的設備驅動程序並將其加載到內核中。你能想象如果一個普通的應用程序可以發送「格式化所有」命令到任意的USB設備。

1

我看看here。他們使用稱爲大容量存儲的東西

1

Linux中的USB驅動器看起來像SCSI驅動器,因此您可以進行查詢,讀取,寫入等操作。通常,閃存驅動器的控制器製造商可能有供應商特定的「後門」,這是大衆所不知道的。

3

Here is a link to a DIY USB controlled LED lamp, it's a little more work then plugging in a USB stick.

如果你想打開一個USB光硬盤驅動器上,你就必須將數據寫入到驅動器上的文件,但我認爲某些驅動器將離開光所有的時間,大部分數據正在寫入時點亮。

因此,如果你的USB驅動器被安裝爲F :,你可以創建一個像F:\ lights.txt這樣的文件,然後寫入幾k的數據,然後擦除文件並重新開始。

一個缺點是閃存驅動器在一段時間後會磨損,這會磨損。您也可以嘗試從驅動器讀取數據。

如果你想要更精確的控制,你可以得到USB數據採集設備,如these,它可以讓你驅動一個特定的電氣輸出,爲你想要的任何電源供電,包括燈泡或LED。它們最初是由科學家用來測量實驗室設備的輸入信息,我在大學物理課中使用過類似的東西,儘管當時我們使用的是RS-232。