哪里可以从可编程硬件开始?

我已经想要在相当一段时间内至少学习一些关于编程硬件的想法,并且我想在这里要求得到一些起点。 我是一个有着Delphi和Objective-c经验的合理成熟的程序员,但从来没有听过设备端口/中断(我甚至不知道术语),更不用说编写一个硬件了。

从我希望能够做的开始,

  • 购买带有2,3或10个按钮的简单套件
  • 通过USB将设备插入我的电脑
  • 按下按钮后,收听设备并编写一些代码以执行某些操作。

我认为这是一个很好的起点,任何人都有指向硬件的指针或我如何开始这个?

我喜欢Arduino ,易于使用,开源和一个伟大的社区!

很高兴入门,并使用C / C ++的子集。

此外,还有很多可用的插件硬件,如GPS,蓝牙,Wifi等

我对Arduino的体验一直不错,从你从盒子里拿出它(并在Windows / Mac / Linux上安装免费的编译器),构建你的第一个’sketch’(Arduino的项目或应用程序) )。

使应用程序很容易,你有一个在启动时调用的Setup方法,然后是一个在Arduino运行时循环的loop方法。

然后你所要做的就是将输入或输出连接到Arduino板上的引脚,告诉代码它们是什么,希望你能获得所需的输出。

关于Arduino(以及其他我确定的其他人)的另一个好处是你现在可以使用那些破旧的打印机,或者没有人想要的2x CD-ROM,以及其他一些过时的技术。 你可以在服务器机房找到它真是太神奇了!

现在,我只参与过小型项目,比如插入LCD,阅读房间温度和各种项目。 但基于我所做的,我对Ardunio很满意,它为嵌入式编程提供了良好的基础,如果还不够,你可以随时变大!

我2美分!

还有使用.NET Micro Framework和Microsoft Visual C#Express的热门新闻netduino 。 我不知道它比Arduino更好,但它是另一种选择。

为什么不从微处理器的AVR编程开始。 是的,它可能有点太低了。 但我知道许多人已经开始使用硬件编程。 你可以在这里找到一个编译器。 http://winavr.sourceforge.net/和一个很好的教程: http : //www.ladyada.net/learn/avr/

上一张海报提到了Arduino,但你也应该考虑一下Teensy 。 这基本上是一回事,但价格要好一些。 您还可以选择在“Arduino”模式或原始AVR模式下使用它。 我不知道Arduinos是否给你两种选择。

有一个比较页面 ,你可以看到Teensy有一些更好的硬件。 内置USB为其提供了更好的性能。

我肯定会建议尝试各种微控制器。 Arduino控制器很好,有很多 教程 。

但是,它不是你唯一的选择。 在学校,我使用的是Microchip PIC ,这对于业余爱好者的场景来说也相当不错。 PIC的优点是我们的微控制器教科书支持它,所以我们在学习理论时看到了应用程序。

如果我理解你的问题,那么你对嵌入式编程不感兴趣。 你想购买从开始工作并从Windows控制它的东西。

说到按钮,在Windows中没什么可做的。 这些是HID控件,Windows为您处理所有接口。 没有什么太令人兴奋的了。

在这种情况下,您可以抓取任何操纵杆并使用DirectInput(DirectX技术的一部分)与其进行交互。 通过力反馈你可以做一些很酷的事情。

一个更有趣的项目是购买Wii控件并编写一些有趣的应用程序。 看看这个网站,了解我的意思:

http://johnnylee.net/projects/wii/

由于Windows不支持Wii控制器,你真的可以在这里做一些工作:)

我看到你喜欢Delphi,所以你可以看看AVR的AvrCo Multitasking Pascal。 您可以在http://www.e-lab.de上试试。 MEGA8 / 88版本是免费的。 有大量的驱动程序,模拟器,JTAG在线调试器和程序员可以看到所有标准设备(对于启动,你可以用一些电阻器制作一个简单的LPT编程器)。 它也可以为所有Arduino设备制作程序,因为AVR在他们的壁炉中。 Atmel的STK500是一个很好的初学者板,有LED,开关和其他一些外围设备。 如果你更喜欢开源,那么带有GCC的WinAVR可能就是你的道路。

如前所述,Arduino是一个不错的选择。 社区规模庞大,乐于助人。 好的一点是,如果需要,可以使用AVR微控制器的GCC端口转换为“真正的”语言。 在我的最新项目中,我做了这个 – 使用Arduino对其进行大部分原型,然后在C中重新编写。

从按钮和LED开始是一个好主意。 在修改Wii之前,先建立一些使用基本硬件的信心!

一些链接:

  • 用于AVR的Windows GCC交叉编译器(1步安装): WinAVR
  • Arduino克隆试剂盒
  • Adafruit是启动硬件和技术建议的另一个很好的来源
  • 嵌入式StackOverflow

您已编写的任何程序都与硬件交互,有显示器,键盘,鼠标,扬声器等。获得一个简单的设置,您的程序可以处理USB设备上的按钮,这不会教您如何使用硬件。 这部分是一个问题,你想要进入软件堆栈的程度有多低,以及你想知道在软件结束时会发生什么。

  1. 给自己一份“电子艺术”的副本。 这是一个相对容易阅读的内容,涵盖了欧姆定律和微处理器之间的所有内容,可以让您对整个系统的function有所了解。
  2. 阅读。
  3. 看看Digikey。 您可以在线购买任何与电阻器,电容器,IC,低成本电路板相关的硬件,价格合理。

其他回复提到了Microchip PIC和Atmel AVR,它们都是小而简单的微控制器。 两家公司都有丰富的应用笔记,查看他们的网站,阅读一些应用笔记。 您可以获得上述的低成本评估板或其他回复中提到的Arduino。 考虑设计和构建自己的电路板,强迫自己学习基础知识。 找一个EE或严重爱好者的朋友谁不介意帮助你提供一些技巧。

如果您想了解有关PC硬件的更多信息,可以查看Windows(下载WinDDK),Linux甚至DOS下的一些简单设备驱动程序(例如打印机或串行端口)。 在PC上使用DOS之类的程序进行编程可以与PC硬件进行相对简单的交互,您可以使用打印机端口来读取按钮等。

链接(我是新用户,所以我无法直接链接):

http://www.amazon.com/Art-Electronics-Paul-Horowitz/dp/0521370957

http://www.digikey.com/

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2879

http://www.atmel.com/products/avr/