【问题标题】:Hardware to do i/o to and from external devices与外部设备进行 i/o 的硬件
【发布时间】:2010-01-10 08:28:26
【问题描述】:

我有一个潜在客户想要一个数据库驱动的应用程序,用 Java 或 Python 驱动 MySQL 或 PostgreSQL,但我们需要从外部机器获取输入,这样每次外部机器关闭微动开关时,数据库中的值会减少并显示在应用程序上。

此外,当数据库中的该值达到零时,我们希望打开外部机器上的灯,直到操作员在 GUI 中执行某些操作,然后我们希望关闭灯。

我的客户提出的解决方案是将微动开关连接到键盘上的一个键,并避免将该键用于其他任何操作(他建议使用 F12 按钮),并通过左侧播放声音文件来控制灯光启动它的通道,以及停止它的正确通道。

这对我来说似乎有点俗气,尤其是进入键盘的电线 - 不仅俗气,而且如果操作员不小心拔出电线,这也是硬件问题的潜在来源。我更喜欢插入 USB 端口或可能是内部卡的东西,只是为了使布线保持在背面并远离操作员。但由于客户希望出售大量此类产品,因此他希望降低价格。

我意识到这并不是严格意义上的“编程”,而是为了解决我正在编写的程序中的问题。所以我问你:有没有便宜的硬件设备可以满足我的需求?

【问题讨论】:

    标签: interface hardware


    【解决方案1】:

    廉价硬件设备:Arduino

    它体积小、价格便宜、可编程,并且很容易学习如何编程(几乎是 C++)。根据您获得的板,它可以与 USB 或串行接口。在修补需要以某种方式与计算机交互的奇怪项目时,这是硬件黑客的梦想。你甚至可以连接一个 LED 来直接通知技术人员到 arduino。

    优点:完成项目所需的硬件知识很少。所有用于读取开关和点亮 LED 的接线都在 arduino 项目的网站上。

    缺点:学习如何将您的软件与 Arduino 库接口可能需要一点时间。

    【讨论】:

    • 他要了一个便宜的小硬件设备,这就是我链接的。阅读他要求的开关是 Arduino 网站上的示例教程之一(学习 -> 数字 IO - 去抖动,供其他人阅读)
    • 好的,很公平,+1。 (快速浏览一下,除了 USB 串行转换器之外,几乎没有什么便宜的东西。)
    • @Josh,“去抖动”是读取 Arduino 上的开关并打开 Arduino 上的 LED 的示例,但不是如何在 PC 上读取该信息的示例。我找不到任何与 PC 交互的示例,这是我唯一需要的。
    • 哦等等,我刚刚找到了“Serial”文档。这块板对于我想要的东西来说看起来有点矫枉过正,但另一方面,这些板非常便宜。
    【解决方案2】:

    为了扩展 Marcelo 的回答,如果您想快速进行原型制作,FTDI 确实制作了一个独立的板,UB232R,单件价格约为 20 美元。您可以将 CTS 引脚用作从您的设备到 PC 的输入(带有适当的上拉电阻,例如 10K)。

    除此之外,您只需要一根 USB 电缆和一种将电路板连接到微动开关的方法。 (不确定solderless breadboard 是否合适/足够强大,但这是一个快速而肮脏的解决方案,因为 UB232R 具有 DIP8 封装)无需外部电源,无需制作定制 PC 板,无需编程其他任何东西与您的 PC 相比,无需学习基本通信端口服务以外的任何硬件驱动程序,假设您的 PC 的通信库包含读取 CTS 引脚状态的功能。

    edit: 对于输出,您可以使用 RTS 引脚。如果你有比这更多的输入和输出,你会想要更仔细地考虑......

    【讨论】:

    • 既然我是那种对螺丝刀很危险的软件人,你知道我在哪里可以找到设计和制造设备的人吗?
    • 构建什么设备?买一个UB232R,看它的数据表,买一块无焊面包板(每行的孔都绑在一起),买一根USB线,把UB232放入无焊面包板,拿一个10K电阻,在Vcc和CTS之间连接10K ,连接CTS和GND之间的微动开关,为您的PC编程。
    • 哎呀,忘了说“在 UB232 和 PC 之间连接 USB 电缆”;-)
    • ...您可能需要一些 22 规格的实心连接线将微动开关连接到面包板。在你工作的地方,一定有电气技能的人......
    • 这将为您提供一个便宜的原型,但将其转移到批量生产的成本会高得多。
    【解决方案3】:

    嗯...计算机仍然带有串行(RS-232 UART)和并行端口,对吗?我相信这些很容易连接起来,“协议”(特别是对于 PP)太简单了,甚至不能这么称呼,而且组件很便宜。

    很容易在网上从使用这些端口连接机器人等的爱好者那里找到信息。例如:http://www.interfacebus.com/Design_Connector_Parallel_PC_Port.html

    但我不知道,也许 USB 也一样简单。

    【讨论】:

    • 实际上,我提到 USB 是因为在我看来,计算机制造商已经在很大程度上放弃了 RS-232 和并行,不是吗?
    • 好吧,我一定是活在过去 :) Marcelo 的 USB-UART 桥接器可能是要走的路。
    【解决方案4】:

    我会使用其中一个 USBUART 桥接器。 Those chips 在 USB 和串行端口(RS232 - 电压电平)信号之间进行转换。它们被视为 Windows 上的 COM 端口或 linux 上的 tty

    它们具有来自串行端口标准的所有 8 个信号。您可以使用其中一个输入引脚来获取微动开关,并使用输出引脚来驱动蜂鸣器。

    是的,这会增加成本,但大量购买时非常便宜。此外,该项目非常简单,如果网上还没有完成,学生可以在几天内完成。

    【讨论】:

      【解决方案5】:

      http://www.awce.com/gp3.htm - 对 VB、C++、Java、Linux 等的良好支持。大量示例。

      【讨论】:

        【解决方案6】:

        您最好选择简单的GPIO 加密狗之一,例如Advantech ADAM 范围。

        例如,ADAM 6050 有一堆输入和输出,专门设计用于连接随机外部设备。它可以通过 TCP/IP 使用常见的modbus 协议进行连接(手动编码的驱动程序通常不超过几十行)。

        对于 RS-485 型号,one-off cost is $110 - 作为经销商/OEM,您应该能够获得显着的批量折扣。您还需要一个便宜的壁疣 PSU。

        虽然市面上可能有更便宜的“按单元”解决方案,但这是一种专业的开箱即用方法,不涉及在 PC 上破解外壳或从芯片/模块构建/修改某些东西以任何方式进行级别。

        不要忘记考虑设计、制造、库存和支持您最终选择的任何解决方案的成本。

        【讨论】:

        • “几百美元”?我认为你和我对“廉价硬件”的看法截然不同。
        • @paul :听起来像我们一样!您可以将问题更新为更明确吗?我已经用 Adam 模块之一的“真实”定价更新了我的答案。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-15
        • 1970-01-01
        • 2015-05-24
        • 2016-08-12
        • 2010-12-23
        • 2011-07-03
        相关资源
        最近更新 更多