2014-10-27 95 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首先被发明出来以使其硬件和操作系统独立。