2014-10-27 97 views
5

我是一名物理學家,幾周前我有一個啓示,我可以如何使用我的個人計算機對實驗室實驗進行比通常情況下更好的控制。在我跑出去嘗試這個之前,我想在這些問題上檢查比我有更多專業知識的人的可行性。黑客攻擊計算機硬件做實驗控制

想法是使用計算機上的I/O端口--- VGA,以太網,揚聲器插孔等直接與實驗設置中的傳感器和執行器對話。例如。切斷以太網電纜的一端(另一端連接到計算機)並將每條線路發送到不同的設備。我知道一個使用BeagleBone做了非常相似的博士後。他編寫了一些彙編代碼,讓他可以與內部時鐘同步所有內容,並使用GPIO引腳有效地爲他提供一個完全可編程的混合信號發生器/示波器。用筆記本電腦看起來應該是同樣的事情,而且這樣做會有額外的好處,您可以使用同一臺設備進行數據分析。

我預見到的主要潛在困難是BeagleBone上的硬件設計時考慮了這種I/O,而我期望筆記本電腦上的硬件可能難以直接控制。我知道例如(從一些初步調查,http://ask.metafilter.com/125812/Simple-USB-control-how-to-blink-an-LED-via-code)USB端口將很難這樣訪問,並且VGA是(根據VGA 15 pin port data read and write using Matlab)不可能。不過,我還沒有發現任何有關使用其他端口如以太網或揚聲器插孔的信息。因此主要的問題是:這個想法是否可行(對硬件的每個新變體都不需要花費數月時間),如果是這樣的話,哪種類型的I/O(以太網,揚聲器插口等)可能會是最好的選擇?

輔助的問題是:

  1. 我在哪裏可以找到的材料來學習我怎麼可能去執行這個計劃?我甚至不確定在Google上插入什麼關鍵字。

  2. 我能做到這一點的難易程度取決於操作系統或硬件品牌嗎?

+1

低並行端口包含至少8個用於輸出的快速(> 64khz)開關和8個用於輸入的快速「按鈕」(短傳感器),並且通過讀/寫寫入具有8位值的單個存儲器地址來實現,又名一個字節。對於輸入,您可以將廉價的USB遊戲手柄和焊接引線固定在按鈕膜觸點上,爲您提供價格低於20美元的快速10通道離散量輸入控制器。 – dandavis 2014-10-27 03:11:19

+1

個人電腦的輸出更難,但便宜的選擇包括numlock指示燈,揚聲器,振動/反饋遊戲手柄,USB閃存驅動器指示燈(ping磁盤啓動),彈出rom驅動器托盤,光電傳感器和顯示器上的閃爍矩形,當然:你爲這項任務購買了很多東西(噓)。 – dandavis 2014-10-27 03:21:58

+0

大多數現代PC在簡單IO部門都非常差,他們擁有的接口(如USB)往往會出現驚人的高延遲。如果你想要與真實世界緊密耦合,你需要一個帶有直接GPIO的嵌入式處理器,比如朋友的beaglebone上的ARM SOC,而不是消費類筆記本電腦。 – 2014-10-27 05:23:26

回答

0

唯一的電纜,我可以在PC,可以得到接近這將是一個並行打印機電纜,這是相當多的消失想到的。這是一根25線電纜,數據分散在一起,以便它可以同時發送更多數據。我只是不確定您是否可以定位特定線路,或者如果發送數據時它是更多的從左到右填充。

今天在筆記本電腦上使用它肯定會很困難。你不會找到任何帶有並行端口的筆記本電腦。有USB並行電纜和串行到並行電纜,但我猜想,唯一的控制你將它的USB或串行接口,而不是並行。

以太網,你有4雙絞線,只有2對使用和2對額外。

有一些可用的名爲Zwave的硬件,您可能需要查看。 Zwave將允許你建立一個網狀通信網絡。我不確定你需要什麼樣的響應時間。

我其實只是想到了一些可能是一個很好的解決方案。檢查安全設備。有很多設備可用於監控門,窗戶,傳感器等等的電腦。這個行業可能是你想要的。

0

我認爲最簡單的方法是使用USB端口作爲人機接口設備(HID)並使用定製的PIC程序和PIC,其中包含USB功能來編碼要發送到計算機的數據,以及這樣就可以獨立於操作系統進行編程,因爲所有市長操作系統都具有HID USB功能。

無論如何,如果您使用MIC/VGA/HDMI無論其他端口是什麼,您仍然需要設備對數據進行編碼或傳輸,以及計算機內的另一個程序來解碼正在發送的數據。

請記住,不同的硬件有不同的軟件(驅動程序),可能會以其他奇怪方式解碼原始數據,從而導致您的IO硬件依賴。

希望這會有所幫助,但這就是爲什麼USB首先被髮明出來以使其硬件和操作系統獨立。