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

时间:2010-08-24 21:37:14

标签: c++ c embedded hardware usb

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

从我希望能够做的事情开始,

  • 购买带有2,3或10个按钮的简单套件
  • 通过USB将设备插入我的电脑
  • 一旦按下按钮,听取设备并编写一些代码来做某事。

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

9 个答案:

答案 0 :(得分:20)

我喜欢Arduino,易于使用,开源和优秀的社区!

很好开始使用,并使用C / C ++的一个子集。

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

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

使应用程序变得简单,您可以在启动时调用Setup方法,然后在Arduino运行时循环使用loop方法。

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

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

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

我的2美分!

答案 1 :(得分:3)

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

答案 2 :(得分:2)

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

答案 3 :(得分:2)

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

有一个comparison page你可以看到Teensy有一些更好的硬件。内置USB为其提供了更好的性能。

答案 4 :(得分:1)

我肯定会建议尝试各种微控制器。 Arduino控制器非常好,并且number of tutorials

然而,它不是你唯一的选择。在学校里,我和Microchip PICs一起工作,这对于业余爱好者来说也很不错。 PIC的优点是我们的微控制器教科书支持它,所以我们在学习理论时就看到了应用程序。

答案 5 :(得分:1)

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

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

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

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

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

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

答案 6 :(得分:1)

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

答案 7 :(得分:1)

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

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

一些链接:

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

答案 8 :(得分:1)

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

  1. 给自己一份“The Art of the 电子“。这是一个相对易读,涵盖了欧姆定律和微处理器之间的所有内容,可以让您对整个系统的功能有所了解。
  2. 阅读。
  3. 查看Digikey。您可以在线轻松地以合理的价格购买任何与电阻器,电容器,IC,低成本电路板相关的硬件。
  4. 其他回复提到Microchip PIC和Atmel AVR,它们都是小而简单的微控制器。两家公司都有丰富的应用笔记,查看他们的网站,阅读一些应用笔记。您可以获得上述的低成本评估板或其他回复中提到的Arduino。考虑设计和构建自己的电路板,强迫自己学习基础知识。找一个EE或严重爱好者的朋友,他不介意帮助你提供一些技巧。

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

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

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

    www.digikey.com /

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

    www.atmel.com/products/avr /