2008-12-14 6 views
13

Ich habe mich in letzter Zeit für Hardware-Programmierung interessiert und ich fragte mich, was für mich als Elektronik-Amateur die beste Wahl wäre. Ich bin nicht auf der Suche nach Low-Level-Programmierung in Assembler und Erstellen von Leiterplatten.Was sind gute Optionen für den Beginn der Hardware-Programmierung mit High-Level-Sprachen?

Eher möchte ich etwas mit API für High-Level-Sprachen, vorzugsweise C# und vorgefertigte Komponenten wie USB-Schnittstellenkarten, in denen ich einfache Sensoren, Motoren etc. stecken und ein "Gadget", vielleicht ein einfacher Roboter bauen kann und so weiter ...

Bisher habe ich Phidgets gefunden, aber es gibt nur ein paar Sensoren und es ist auch ziemlich teuer.

Die Frage ist also: Kennen Sie irgendeine andere "Plattform" mit guter API und großer Auswahl an Sensoren?

+0

verwandt: http://StackOverflow.com/Questions/3047192/alternative-languages-for-embedded-programming –

Antwort

9

Werfen Sie einen Blick auf Arduino. Es gibt eine Menge Spaß Dinge, die Sie mit einem auf Make gelisteten tun können.

3

Überprüfen Sie meine Frage zu Mikrocontroller here. Auch: How to Start programming microcontroller.

Ich habe Bestellung für chritsmas der populäre Mikrocontroller Arduino. Sie können nicht mit C# programmieren, aber sie haben einen Rahmen über dem normalen Assembly/C, der die Interaktion erleichtert.

+1

Arduino sieht interessant aus. Ich denke, ich könnte die C-API mit P/Invoke verwenden. Aber ich würde immer noch die Ein-/Ausgänge selbst bauen müssen. Das ist das Gute an Phidgets, es ist bereits vorgefertigt. – lacop

1

Es gibt auch Bug Labs die eine Reihe von Hardware-Modulen erzeugt, die zusammen beliebige Geräte zu bauen, verbunden werden kann. Die Module sehen wirklich glatt aus (aber ich habe sie im wirklichen Leben nicht gesehen).

4

Wenn Sie C# verwenden möchten haben Sie auf dem .NET Micro Framework geschaut? Das SDK ist kostenlos, wird in Visual Studio integriert, kommt mit einem kompletten Emulator und es gibt mehrere Dev Kits, die zu einem vernünftigen Preis erhältlich sind.

Das Tahoe ist wesentlich mehr, aber es kommt auch mit einem TFT-Display (und Unterstützung dafür), so dass der Preis immer noch nicht unvernünftig ist.

Alle diese Sensoren unterstützen I2C- und SPI-Schnittstellen, so dass die Anzahl der verfügbaren Peripheriegeräte in die Tausende geht. Sie werden wahrscheinlich einige rudimentäre Löten für einige von ihnen (Widerstände, etc.) tun müssen, aber wenn das macht Angst, dann sind Sie wahrscheinlich auf dem falschen Weg sowieso.

2

Seit vielen Jahren habe ich von Microchip Technology ein großer Fan von der PIC-Mikrocontroller Serie gewesen. Sie haben eine breite Palette von Mikrocontrollern mit unterschiedlichen Funktionen, von superkleinem zu integrierten Wireless. Sie können bis eine ihrer PicStart Kits für etwa $ 50 holen, die die Software enthält, Programmiergerät und eine Probe Mikrocontroller.Sie können in C, Assembly, BASIC, usw. programmiert werden.

Ich habe ursprünglich meinen Start in Mikrocontroller-Programmierung mit einem Parallax Basic Stamp, aber sie sind eher begrenzt und teuer ($ 50 ea, im Vergleich zu $ ​​1-6 für a PIC) und kann nur in BASIC programmiert werden, obwohl sie hirntot einfach zu verwenden sind.

+0

CCS stellt einen großen Compiler und Lern-Kits auf der Basis von PICs zusammen. Ja, es ist ein C-Compiler, aber sie haben eine Menge vorgefertigter Bibliotheken für viele Peripheriegeräte und Protokolle, um dem Anfänger das Leben ziemlich leicht zu machen. – ctacke

0

Ich weiß nicht, wie viel "Hardware-Programmierung" Sie in der Lage sein werden, ohne tatsächlich mit Hardware zu tun haben. C# wird Sie nur soweit in die Hardware-Welt bringen, wie die meisten alles in C und manchmal C++ sind.

Wenn Sie sich für ein Hardware-Design entscheiden, ist das Nexys 2 Board von Digilent eine hervorragende Möglichkeit, sich über das Hardwaredesign mit VHDL oder Verilog zu informieren. Wenn Sie auf Mikrocontroller erweitern möchten, können Sie mit dem Xilinx Embedded Developer Kit ein Microcontroller-System mit dem MicroBlaze Softcore-Prozessor, der in Hardware implementiert wird, benutzerdefiniert konfigurieren und eine IDE zum Schreiben Ihres C-Codes bereitstellen, der auf der Embedded-Plattform ausgeführt wird.

Digilent hat auch eine Reihe von Erweiterungskarten wie Temperatursensoren, Videodecoder, Joysticks, Servocontroller usw., die Sie mit ihren programmierbaren Logikkarten verwenden können.

1

Was ist mit Lego Mindstorms? Sie haben eine 32-Bit-CPU, auf der eine VM läuft, die sogar Multithreading unterstützt. Die VM kann in Assembler programmiert werden.

Ich spielte mit ihnen vor einiger Zeit, und es war eine ziemlich interessante und lustige Erfahrung.

+0

Es gibt einen Lua-Port zu Mindstorms, also deckt es den "High-Level" -Teil der Frage ab. – Javier

+0

Die Sensorauswahl ist wirklich klein für mindstorms/NXT ... – lacop

0

Ich würde einen dieser .NET-Chips bekommen und mir eine .NET Coffee Machine machen. Oder etwas wie das, ein PIC zu bekommen ist nur nutzlos, Sie müssen Low-Level-Sprachen wie C und Assembler wissen.

Es gibt ähnliche Komponenten für Java.

Siehe: Basic USB - Using Microchip Stack and C#.NET - Hardware.

+0

Parallax hat einen sehr populären BASIC-Compiler für PIC, also muss es nicht C oder ASM sein. Und PICs sind bei weitem nicht nutzlos. – ctacke

0

Wenn das eingebettete System, mit dem Sie arbeiten werden, einen ANSI C-Compiler hat, kann es Lua (www.lua.org) ausführen, Sie müssen lediglich die Quelle auf Ihrem Gerät kompilieren. Ich sprach einmal mit einem der Entwickler der Sprache, er sagte, er habe einen der Mailinglisten-Webserver (auch in Lua geschrieben) der Sprache, die für eine Weile in einem Handy lief, nur um es zu testen.

Mit Lua können Sie die Sensoren von dem Gerät, mit dem Sie arbeiten werden, in C oder C++ verbinden und die Funktionen haben, die innerhalb von Lua High-Level-Code aufgerufen werden.