Welche einfachen Projekte können Sie durchführen, um die Grundlagen der eingebetteten Programmierung zu erlernen?[geschlossen]

StackOverflow https://stackoverflow.com/questions/111254

  •  02-07-2019
  •  | 
  •  

Frage

Welche einfachen Projekte könnte jemand in Angriff nehmen, der die Grundlagen der eingebetteten Programmierung erlernen möchte?

Wir sprechen von jemandem, der die Grundlagen elektronischer Schaltkreise (Widerstände, Kondensatoren, digitale ICs usw.) kennt und grundlegende Lötarbeiten ausführen kann.Ein Elektronik-Hobbyist, der in die eingebettete Programmierung einsteigen möchte, oder vielleicht ein Zweit- oder Juniorstudent in einem EE-College-Abschluss.

Die Plattform spielt keine Rolle und auch die Sprache spielt keine Rolle (es könnte C oder Assembler oder was auch immer sein).Es geht darum, Ideen für ein einfaches Projekt zu bekommen, das funktioniert etwas.

Wenn es ein Buch gibt, das so etwas behandelt, könnten Sie einen Link dazu posten?

War es hilfreich?

Lösung

Ich kaufte einen Arduino vor kurzem, was zu bekommen und läuft einfach. Es ist ein kleines, ziemlich billig Bord einen Atmega168 mit den I / O-ausgebrochenen läuft, Stromversorgung, USB und andere lustige Sachen. Es läuft native C-Code (wie man es von einem Atmega Chip erwarten) und kann verwendet werden, Schaltungen durch Software zu fahren.

Andere Tipps

Das folgende Projekt ist für die CSC460: Echtzeit-Betriebssysteme Klasse an der University of Victoria. Dieses Projekt ist so konzipiert, CS Studenten ohne Kenntnisse von Embedded-Systemen komfortable Programmierung auf Mikrocontrollern zu erhalten.

Ziel:

Design-System einen Sensor-Aktor die Temperatur eines Raumes zu steuern. Dieses Projekt lernen Sie Pulsweitenmodulation und AD (Analog-Digital) Umwandlung.

Teile:

  • Ein 8-Bit AT90USB1287 Mikro-Controller Demonstration Board
  • Ein Temperatursensor (an Bord der AT90)
  • Ein Gleichstrommotor (empfindlich auf Spannungen zwischen 3,3 V und 5,0 V)
  • Propeller oder Ventilatorflügel, die den DC-Motor
  • passt
  • Ein L293D H-Brücke
  • Ein 5V-Regler

Entwurf:

Dieses System wird den Temperatursensor des AT90USB1287 verwenden, um die aktuelle Raumtemperatur und stellen Sie die Geschwindigkeit des Gleichstrommotors (mit Ventilatorflügeln angebracht) zu lesen. Durch Einstellen der Lüfterdrehzahl dieses theoretisch den Raum abkühlen, mit.

Der Temperatursensor ist bereits an Bord des AT90USB1287 und verdrahtet und AD-Port des Mikrocontrollers. Sie sind verpflichtet, das Datenblatt für diese Mikro-Controller zum Lesen und Schreiben von Code, den Temperatursensor zu konfigurieren und abzufragen.

Der Gleichstrommotor wird mit Pulsweitenmodulation gesteuert werden. PWM kann durch Variieren des Tastverhältnisses des PWM-Signals der Drehzahl eines Gleichstrommotors befestigt steuern. Weitere Informationen über PWM konsultieren Sie die große und detaillierte (vielleicht ein bisschen zu viel) Daten Blatt für die AT90USB1287.

Wenn Sie den Temperatursensor und DC-Motor Arbeits haben, haben Sie dieses Projekt abgeschlossen. Der L293D H-Brücke und 5V-Regler verwendet werden kann, die Leistung (vs von der H-Brücke zu 5,0 V von 3,3 V on-board) an den Gleichstrommotor zu erhöhen.

Meiner Erfahrung nach gibt es bei eingebetteten Systemen, wenn man so will, einen anfänglichen Lern-„Höcker“, der schwer zu überwinden sein kann, aber wenn man ihn einmal geschafft hat Sie werden enttäuscht sein, wenn das erste Projekt, das Sie auswählen, sehr einfach ist.

Es gibt einige Anfangsinvestitionen in die Entwicklungstools (d. h.(mindestens die Chips und der Programmierer).Wenn Sie ein sehr einfaches Projekt erstellen, können Sie die nützlicheren Bereiche des Chips nicht erkunden. Daher steht die Menge an Wissen, die Sie erhalten, in keinem Verhältnis zu der Menge an Ressourcen, die Sie investieren.sowohl zeitlich als auch finanziell.

Ich schlage vor, etwas Interessanteres als ein paar blinkende LEDs zu machen.Der schwierigste Teil der Entwicklung für eine neue eingebettete Plattform ist für mich immer die erste Kompilierung und das Hochladen des ersten Programms auf den Chip.Da dieser Schritt derselbe ist, egal wie kompliziert oder einfach Ihr erstes Projekt ist, würde ich wieder einmal entschieden dafür stimmen, sofort mit einem mittelschweren Projekt zu beginnen.Da fällt mir so etwas wie eine IR-Fernbedienung ein.Rechnen Sie auf jeden Fall damit, viel Zeit zu investieren, wenn Sie wirklich etwas lernen wollen.

Ich würde auch empfehlen, sich NICHT für etwas wie einen BASIC STAMP oder gar Arduino zu entscheiden, da diese Geräte Ihnen nicht die wirklichen Fähigkeiten vermitteln würden, die für die eingebettete Programmierung erforderlich sind.Sie sind eher eine Plattform, auf der Ihr High-Level-Code ausgeführt wird.Sie verwenden eine verherrlichte Version einer solchen Plattform, um diesen Beitrag zu lesen, nämlich Ihren PC;kaum ein eingebettetes Gerät.Der Vorteil ist, dass sie Ihnen viel Ärger ersparen, wenn Sie sich mit Elektronik nicht auskennen.

Besorgen Sie sich einen 8-Bit-Chip von Microchip oder ATMEL, die beide sehr beliebt und relativ günstig zu starten sind, besorgen Sie sich einen Programmierer und vielleicht ein Demoboard. Das Demoboard funktioniert, wenn Sie mit Elektronik nicht vertraut sind, für einen dieser Chips.Lesen Sie vor allem die beigefügten Datenblätter und versuchen Sie, etwas einigermaßen Nützliches zu bauen.Programmieren Sie in C oder Assembler.ATMEL ist viel besser mit Compilern und Unterstützung für C.Auf lange Sicht werden Sie froh sein, dass Sie Ihre Zeit nicht mit dem Erlernen einer Plattform verschwendet haben, die niemand, der bei klarem Verstand ist, für ein kommerzielles Produkt nutzen würde, und Sie werden ein besseres Verständnis für den Umgang mit den Einschränkungen eingebetteter Systeme erlangen, da es keine bessere gibt Informationsquelle als das Datenblatt.

Es ist ein ziemlich gutes Buch über das Thema als „Embedded Linux Primer“ (Christopher Hallinan ist der Autor). Dieses Buch führt Sie obwohl die Schrauben und Muttern der Entwicklung von Software auf einer Embedded-Linux-Plattform. Gepaart mit einem relativ kostengünstigen Entwicklungssystem und dem Himmel ist die Grenze.

eine Kopie von Circuit Cellar Magazin Pick-up (eine wirklich gute Ressource für Embedded Software und Hardware) und Sie werden Dutzende von Anzeigen für kleine Systeme finden, die Sie sich bis bekommen ermöglichen sollte und läuft schnell.

Ein einfaches Projekt (verwandt mit dem Hallo Welt) wäre eine LED Chaser zu machen. Sie benötigen: 6 bis 10 LEDs und einen einfachen Schalter

.

Jedesmal, drücken Sie den Schalter, die LEDs ein anderes Muster blinken in. Einige Muster:
1 LED Scrollen rechts
1 LED Scrollen links
Abwechselnd LEDs
...

Das wird dich lehren, über I / O-Pins, wie einen Timer zu verwenden, vielleicht wie ein Interrupt für den Schalter verwenden (oder Sie könnten Polling verwenden).

Ich persönlich würde eine einfache Audio-Recorder bauen. Lassen Sie uns Ihnen mit dem AD-Wandler und PWM Wellenausgang üben. Auch wäre es lehren, wie man den Code modularisieren für die Aufzeichnung und Wiedergabe-Steuerung zu ermöglichen. Einzige Einschränkung ist die Menge an Speicher, sondern auch eine 1 kB Probe soll Spaß machen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top