In welchen einfachen Projekten können Sie die Grundlagen der eingebetteten Programmierung erlernen? [geschlossen]

8

Für jemanden, der die Grundlagen der eingebetteten Programmierung lernen möchte, welche einfachen Projekte können sie angehen?

Wir sprechen über jemanden, der die Grundlagen der Elektronik (Widerstände, Kondensatoren, digitale ICs, etc ...) kennt und Grundlöten machen kann. Ein Elektronik-Hobbyist, der in Embedded-Programmierung, oder vielleicht ein College-Student oder Junior in einem EE-College-Abschluss zu bekommen.

Die Plattform ist nicht wirklich wichtig und auch nicht die Sprache (es könnte C oder Assembler oder was auch immer sein). Der Punkt ist, Ideen für ein einfaches Projekt zu bekommen, das etwas tut.

Wenn es ein Buch über so etwas gibt, könntest du einen Link dazu schreiben?

    
Benoit 21.09.2008, 15:43
quelle

7 Antworten

6

Ich habe kürzlich ein Arduino gekauft, das leicht zu installieren ist. Es ist ein kleines, ziemlich billiges Board, auf dem ein Atmega168 mit I / O, Power, USB und anderen lustigen Dingen läuft. Es läuft nativer C-Code (wie man es von einem Atmega-Chip erwartet) und kann zum Ansteuern von Schaltungen durch Software verwendet werden.

    
coledot 21.09.2008, 20:44
quelle
4

Das folgende Projekt ist für den Kurs CSC460: Real Time Operating Systems an der University of Victoria vorgesehen. Dieses Projekt wurde entwickelt, um CS-Studenten, die keine Kenntnisse über eingebettete Systeme haben, eine komfortable Programmierung auf Mikrocontrollern zu ermöglichen.

Ziel:

Entwerfen Sie ein Sensoraktorsystem, um die Temperatur eines Raums zu steuern. Dieses Projekt wird Ihnen Pulsweitenmodulation und AD (Analog-Digital) -Umwandlung beibringen.

Teile:

  • Ein 8-bit AT90USB1287 Mikrocontroller-Demo-Platine
  • Ein Temperatursensor (an Bord des AT90)
  • Ein Gleichstrommotor (empfindlich für Spannungen zwischen 3.3V und 5.0V)
  • Propeller oder Lüfterrad, das zum DC-Motor passt
  • Ein L293D H-Brücke
  • Ein 5V-Regler

Design:

Dieses System verwendet den Temperatursensor des AT90USB1287, um die aktuelle Raumtemperatur abzulesen und die Drehzahl des DC-Motors (mit angeschlossenem Lüfterflügel) einzustellen. Indem man die Lüftergeschwindigkeit einstellt, lässt sich theoretisch der Raum abkühlen.

Der Temperatursensor ist bereits an Bord des AT90USB1287 und an den AD-Port des Mikrocontrollers angeschlossen. Sie müssen das Datenblatt für diesen Mikrocontroller lesen und Code zum Konfigurieren und Abfragen des Temperatursensors schreiben.

Der DC-Motor wird mit Pulsweitenmodulation gesteuert. PWM kann die Geschwindigkeit eines angeschlossenen Gleichstrommotors steuern, indem das Tastverhältnis des PWM-Signals variiert wird. Für weitere Informationen über PWM konsultieren Sie bitte das große und detaillierte (vielleicht ein bisschen zu viel) Datenblatt für der AT90USB1287.

Sobald Temperatursensor und DC-Motor arbeiten, haben Sie dieses Projekt abgeschlossen. Die L293D H-Brücke und der 5V-Regler können verwendet werden, um die Leistung des Gleichstrommotors zu erhöhen (von 3,3 V an Bord bis 5,0 V von der H-Brücke).

    
Justin Tanner 21.09.2008 19:38
quelle
2

Nach meiner Erfahrung gibt es einen anfänglichen Lern- "Buckel", wenn Sie so wollen, in eingebetteten Systemen, die schwer zu überwinden sind, aber sobald Sie tun, werden Sie enttäuscht sein, wenn das erste von Ihnen gewählte Projekt sehr einfach ist

Es gibt einige Anfangsinvestitionen in die Entwicklungstools (dh die Chips und der Programmierer sind am allerwenigsten). Wenn Sie ein sehr einfaches Projekt erstellen, können Sie nicht die nützlicheren Bereiche des Chips erkunden, daher ist die Menge an Wissen, die Sie erhalten, in keinem Verhältnis zu der Menge an Ressourcen, die Sie investieren; sowohl in der Zeit als auch im Geld.

Ich schlage vor, etwas spannender zu machen als ein paar blinkende LEDs. Der schwierigste Teil der Entwicklung für eine neue Embedded-Plattform ist für mich immer die erste Kompilierung und das Hochladen des ersten Programms auf den Chip. Da dieser Schritt der gleiche ist, egal wie kompliziert oder einfach Ihr erstes Projekt ist, würde ich mich erneut dafür aussprechen, dass ich sofort ein mittelschweres Projekt starten würde. So etwas wie eine IR-Fernbedienung kommt mir in den Sinn. In jedem Fall sollten Sie viel Zeit investieren, wenn Sie wirklich etwas lernen wollen.

Ich würde auch vorschlagen, dass Sie sich NICHT für etwas wie einen BASIS-STAMP oder sogar Arduino entscheiden, da diese Geräte Ihnen nicht die wahren Fähigkeiten vermitteln würden, die Sie für Embedded-Programmierung benötigen. Sie sind eher eine Plattform, auf der Ihr High-Level-Code läuft. Sie verwenden eine verherrlichte Version einer solchen Plattform, um diesen Beitrag, Ihren PC, zu lesen; kaum ein Embedded-Gerät. Auf der positiven Seite, sie sparen Ihnen eine Menge Ärger, wenn Sie nicht mit Elektronik vertraut sind.

Holen Sie sich einen 8-Bit-Chip von Microchip oder ATMEL, beide sehr beliebt und relativ billig zu starten, einen Programmierer und vielleicht ein Demo-Board, das Demo-Board funktioniert, wenn Sie nicht mit Elektronik vertraut sind, für einen dieser Chips . Am wichtigsten ist, lesen Sie die beiliegenden Datenblätter, und versuchen Sie, etwas mäßig nützlich zu bauen. Programm in C oder Assembler. ATMEL ist viel besser mit Compilern und Support für C. Auf lange Sicht werden Sie froh sein, dass Sie keine Zeit damit verschwendet haben, eine Plattform zu erlernen, die niemand für ein kommerzielles Produkt verwenden würde, und Sie werden ein besseres Verständnis für den Umgang damit bekommen die Grenzen von eingebetteten Systemen, da es keine bessere Informationsquelle als das Datenblatt gibt.

    
Nick Zalutskiy 21.09.2008 21:45
quelle
1

Es gibt ein ziemlich gutes Buch zum Thema "Embedded Linux Primer" (Christopher Hallinan ist der Autor). Dieses Buch führt Sie durch die Grundlagen der Entwicklung von Software auf einer eingebetteten Linux-Plattform. Koppeln Sie dies mit einem relativ günstigen Entwicklungssystem und der Himmel ist die Grenze.

Nehmen Sie eine Ausgabe des Magazins Circuit Cellar auf (eine wirklich gute Quelle für eingebettete Software und Hardware), und Sie werden dutzende Anzeigen für kleine Systeme finden, die es Ihnen ermöglichen sollten, sich schnell selbstständig zu machen.

    
Steve Hawkins 22.09.2008 02:00
quelle
0

Ein einfaches Projekt (ähnlich der Hello World) wäre es, einen LED-Chaser zu erstellen. Sie benötigen: 6 bis 10 LEDs und einen einfachen Schalter.

Immer wenn Sie den Schalter drücken, blinken die LEDs in einem anderen Muster. Ein Muster:
1 LED scrollt nach rechts 1 LED Scrollen nach links Wechselnde LEDs
...

Hier erfahren Sie etwas über I / O-Pins, wie man einen Timer verwendet, oder wie man einen Interrupt für den Switch verwendet (oder Sie können Polling verwenden).

    
Benoit 21.09.2008 15:47
quelle
0

Persönlich würde ich einen einfachen Tonrekorder bauen. Lassen Sie uns den AD-Wandler und den PWM-Wellenausgang üben. Außerdem würde es lehren, wie der Code modularisiert werden kann, um eine Aufzeichnungs- und Wiedergabesteuerung zu ermöglichen. Einzige Einschränkung ist die Menge an Speicher, aber selbst eine 1-kB-Probe sollte Spaß machen.

    
Frank Krueger 21.09.2008 15:52
quelle

Tags und Links