Mikrokontroller - Programmierung Einsteiger Hardware ideen?

2 Antworten

Nichts zum Löten

Früher oder später wirst du ums Löten nicht drumrum kommen. Bei einigen Eval-Boards muss man die Pfostenstecker noch anlöten...

Sprache am liebsten C

Ein 32-Bit-Microcontroller würde sich da empfehlen - auch wenn es 8-Bit-Microcontroller gibt, die man mit C programmieren kann (z.B. ATmega, die in den Arduino-Boards verwendet werden).

Audio ausgang

Microcontroller mit Audio-Ausgang?

Gibt's nicht.

Da braucht man dann schon so etwas wie den Raspberry Pi, der gerne anstatt eines Microcontrollers verwendet wird, aber ein "minimaler" Desktop-PC und kein Microcontroller ist.

USB adapter

Größere Microcontroller für den Consumer-Bereich haben dies...

kann per Batterie betrieben werden

Die meisten Microcontroller benötigen 5V.

ein wenig Ram sollte haben für Speicherung einzelner Programme

Auf einem Microcontroller werden die Programme in der Regel im Flash gespeichert:

Die größten mir bekannten Microcontroller haben knapp 1,5 MB RAM. Die kann man als Privatperson nicht kaufen (Preis, wenn man ihn fertig auf einer Platine eingelötet kauft: ca. 2000 Euro + 4000 Euro für die notwendigen Entwicklungstools (JTAG-Adapter und Compiler, den es für derartige Chips nicht als Freeware gibt).

"Mittelgroße" Microcontroller haben zwischen 64 und 256 KB Flash (zum Speichern des Programms) und zwischen 8 und 64 KB RAM (für Daten).

kleines Bedienfeld, mehrere Sensoren wie Infrarot oder Abstand-Messung; möglich für Anbau von kleinen Motoren und eventuell mehr als nur 6 LED`s


Platinen, in die diese ganzen Dinge bereits fertig mit eingelötet sind, habe ich noch nie gesehen. Allerdings gibt es mehrere Anbieter, die derartige Sensoren als Zusatzplatinen anbieten.

Ein Beispiel wäre die "Arduino"-Reihe: Die 8-Bit-Variante "Arduino Uno" kostet um die 25 Euro, die 32-Bit-Variante um die 50 Euro. Wenn man nicht das Originalmodell, sondern (legale) Nachbauten nimmt, liegen die Preise bei 12 bzw. 30 Euro.

Für die Arduino-Reihe kann man eine ganze Menge Zubehör (Sensoren usw.) bekommen.

Texas Instruments hat einmal Eval-Boards mit Microcontrollern zum Einführungspreis von 5 Euro und kostenlosem Versand verkauft. Ich habe gehört, dass man bei TI immer noch Boards im Bereich von 10 Euro plus Versand bekommt - allerdings ist der Umgang damit einiges komplizierter als mit einem Arduino.

Das Bedienfeld, die Sensoren und die Elektronik für die Motoransteuerung musst du dir extra besorgen.

Also 100 EUR brauchst du definitiv nicht einplanen.

Jetzt gibt es natürlich viele Optionen. Löten willst du nicht, verstehe ich. Abgesehen davon, dass man es erstmal können muss (ist aber nicht wirklich schwer), braucht man auch noch Equipment dazu - und etwas zu löten ist im Ende etwas endgültiges.

Trotzdem...du wirst löten müssen/wollen...nicht viel und nicht endgültig. Eine Eierlegende Wollmilchsau gibt es nicht - und selbst wenn - auch Motoren wollen angeschlossen werden.

Ich werfe einfach mal 3 mir bekannte Kandidaten aus verschiedenen Anwendungsbereichen in den Raum (da gibt es noch viele andere, die ich entweder nicht kenne oder nicht erwähnenswert finde).

Fangen wir mit dem kleinsten an: Ein Mikrocontroller, konkretes Beispiel: AVR. Ein AVR ist ein simpler Mikrocontroller - sonst nichts. Den musst du beschalten. Dabei hilft dir eine Rasterplatine und ein Lötkolben - oder alternativ ein Steckbrett...die 'Kleinteile' brauchst du trotzdem. Es gibt 2 Bedingungen, damit er dir gefällt: Du willst wirklich auf unterster Ebene arbeiten und alles komplett zusammenbasteln. Viel ist da nicht dran (auch kein USB oder so). UND: Du hast einen Conrad oder sowas um die Ecke wo du Kleinteile besorgen kannst (am Anfang weiß man nicht, was man braucht und jedesmal liefern lassen nervt). Lernen kann man damit sehr viel. Ich könnte dir Tips geben was man am Anfang so braucht.
Preis: 20EUR für Steckbrett+Brücken, 5EUR Kleinteile, 10EUR Programmer, <1EUR pro Mikrocontroller

Option B) Ein simples ARM Dev-Kit. Beispielsweise ein STM32 Value Line Discovery Board. Damit alleine kann man schon einiges machen - und du hast viel Platz für Peripherie (muss aber irgendwie angeflanscht werden). Einen Programmer brauchst du nicht, der ist quasi integriert. Ist für 10-20EUR zu haben (+ was auch immer du an Peripherie brauchst). Es gibt hier zu bedenken, dass du auch für kleinere Projekte immer das komplette Modul brauchst. Auf Basis des genannten Boards habe ich einmal (mit einem Kommilotonen) eine Studienarbeit gefertigt. Wenn Interesse besteht, kann ich dir diese (nachdem ich sie ausreichend anonymisiert habe) zukommen lassen.

Nun zur Königsklasse: Wie schaut es mit einem RaspberryPI oder vergleichbaren aus (BananaPI, BeagleBoard, ...). Das ist vom Handling wesentlich abstrakter und hat meiner Meinung nach nicht mehr viel mit Mikrocontroller Programmierung zu tun. Da ich selber nur den RasPI kenne möchte ich auch noch das fehlen des internen Flashspeichers als Nachteil betonen. Es ist als Lerncomputer gedacht: Gerne! Zum Lernen von Mikrocontrollern halte ich es für nicht besonders gut.

Was empfehle ich nun? Gute Frage ;-)
Ich schwanke zwischen den ersten 2 Optionen. Option 3 halte ich nicht für Zielführend.
Option 1 - ich kenne nur AVR und den 8086...da gibt es aber noch PIC und bestimmt auch was von ARM. Ich halte das für die sinnvollste, wenn du auch etwas mit der HW in Berührung kommen willst.
Option 2 - Ist etwas kompletter, du musst nicht so viel tun, hast aber auch eingeschränkte Möglichkeiten. Zum Einstieg sicher einfacher, wenn du aber mal was cooles gebaut hast, was irgendwo fest ist - im Endeffekt teurer. Wenn du nur experimentieren willst günstiger. An konkreter HW Beschaltung kommst du hier aber auch nicht vorbei, wenn du Sonderwünsche hast (aber einen TSOP 1736 den man für eine IR Fernbedienung braucht ist überall schnell angebaut - mit Steckbrett aber einfacher). Programmiertechnisch hast du hier ganz klar aber Vorteile.

Ist alles nur eine grobe Beschreibung - du musst halt selber wissen was du willst. Ein Mikrocontroller ist pro Stück günstiger - aber die initialen Kosten sind höher als bei einerm DevBoard.

Ich danke auf jedenfall recht herzlich für die gute Antwort. Hat mich direkt überrascht gleich soviel Input zu bekommen. Ich denke ich werde mich für die Option 2 entscheiden. Da ich Hardware technisch nicht viel lernen brauche sondern mich eher auf die Programmierung an sich konzentrieren soll und möchte. :-)

dann werde ich mal dir Tage schauen was ich in dieser Richtung bekomme. 

MfG Shinji

0

Jede 4. Zahl mittels einer while Schleife in C ausgeben ohne if?

Hallo!

Kann mir jemand bitte zeigen, wo ich im angehängten Bild, in dieser while Schleife die Bedingung hinzufügen kann um nur jede 4. Zahl auszugeben.

Allerdings ohne if Bedingung

Vielen Dank

...zur Frage

Programmunterschied zwischen ARM und AVR Mikrocontrollern?

Hallo allerseits, ich möchte mit einem Projekt auf dem Arm Cortex M4 beginnen. Dazu möchte ich zunächst die Struktur des Controllers und des Boards verstehen und erste kleinere Projekte darauf ausführen.

Dazu suche ich ein passendes Buch. Mir wurde bereits das Buch [1] empfohlen. Ich bin mir jedoch nicht sicher, ob dieses Buch für den z.B. STM32F407 geeignet ist.

Könnt ihr mir dazu was sagen? Oder andere Lit empfehlen?

[1] AVR Mikrocontroller - Programmierung in C: Eigene Projekte selbst entwickeln und verstehen

...zur Frage

Unterschied Hardware Programmierung und Software Programmierung?

Was bedeutet Hardware Programmieren? und was bedeutet software Programmieren?

also software programmierung ist mir schon klar, zb Programme wie Word oder Spiele. Aber was iist bitte hardware programmierung?!?!

...zur Frage

C#: Random number->fortlaufende Zahlenfolge 000 bis 999?

Hi :)

in einer vorherigen Frage, wollte ich nen einarmigen Banditen in C# (WF) erstellen. Ich habe meine Idee ein wenig abgewandelt und es so gemacht: wenn auf die Picurebox geklickt wird, wird eine zufällige Zahl generiert. Ich will, dass die Zahlen von 000 - 999 gehen. Allerdings, kann man ja unten sehen, will ich nicht alle Zahlen von 000 bis 999 aufschreiben.

Gibt es da ne Möglichkeit von 000 bis 999, also, dass erkannt wird, dass das fortlaufende Nummern sind? Sonst müsste ich echt alles von 000 bis 999 manuell in eine Codereihe schreiben. Das wäre echt mühsälig.

Der Code funzt ansonsten, habe euch nur die relevante Methode reinkopiert, die anderen sind sowieso leer.

private void pictureBox1_Click(object sender, EventArgs e)
    {
        String[] strLabel =
        {
            "000","001","002","003","004","005","006", //usw. ist halt blöd, so in einer Reihe 
        };
        Random r = new Random();
        int iSelect = r.Next(0, 998);
        label1.Text = strLabel[iSelect];
    }
...zur Frage

Was ist das für ein Symbol in der EDV ?

...zur Frage

Programmierung Berufsschule - wer kann mir helfen?

Hallo ich mache gerade eine Ausbildung zum Fachinformatiker für Systemintegration und habe mein Zeugnis bekommen worauf ich einen Gespräch mit meinem Chef hatte, weil ich beim Programmieren eine ziemliche Pfeife bin. Kurz gesagt ich raff gar nix. Im Betrieb muss ich mich überhaupt nicht mit der Programmierung auseinander setzten, da ich wie gesagt Systemintegrator bin. Unsere Klasse ist mit Systemintegratioren und Anwendungsentwicklern gemischt und bei den Systemintegratoren herrscht kollektive Ahnungslosigkeit in dem Fach, worauf ich mich dann darauf beruht habe, dass es eh niemand kann, also brauch ichs auch nicht können. war ziemlich blöd, ich weiß.

Jetzt will aber mein Chef, dass ich es lerne.. wir programmieren mit Java, wie kann ich normalsterblicher das am besten lernen, könntet ihr mir da auf normal deutsch (nicht auf fachchinesisch) ein bisschen hilfestellung geben, vielen dank.

...zur Frage

Was möchtest Du wissen?