Forum: Mikrocontroller und Digitale Elektronik Einstieg in die µC Entwicklung (Was brauche ich)


von Martin B. (methusalem)


Lesenswert?

Moin zusammen,

ich möchte mich mit den Möglichkeiten der µC beschäftigen. Ich selbst
bin Softwareentwickler mit Erfahrungen in C++. Werde mich nun wohl auch
mit Assembler beschäftigen. Mal sehen was das so gibt.

Am Freitag abend war ich mal kurz in eurem Chat und habe schon mal die
ersten Fragen gestellt. Daraus wurde klar: Hier gibts wohl überwiegend
AVR Experten.

Zu dem was ich vorhabe:
Vorweg eins. Ich weiß, das mein Ziel für einen Anfänger sehr hoch
gesteckt ist. Aber ich arbeite eigentlich nach der Methode - man wächst
mit seinen Aufgaben :-)

Es geht darum, das ich verschiedene Sensoren (Lichtschranke oder
Schalter) an einen µC anschließen möchte um damit Zeitmessungen
vorzunehmen. Hintergrund: Ein Kindertraum! Die Carrerabahn. Wir möchten
eine Zeitmessanlage für Slotbahnen umsetzen.

Die Daten sollten in dem µC zwischengespeichert werden und über eine
Software auf einem PC am besten über USB ausgelesen werden können.
Außerdem sollen LEDs für eine Startampel und Relais für die
Bahnstromabschaltung von der Software auf dem PC angesteuert werden
können. Evtl. kann die Logik auch in den µC und die Software auf dem PC
sendet und empfängt nur Events wie Start/Rennabbruch/usw..
Die Kür wäre eine Ansteuerung von mehreren 7 Segment Anzeigen, die die
aktuelle Position eines Wagens in einem Wettkampf anzeigt oder
vielleicht sogar ein LCD Display. Das aber wirklich erst wenn alles
andere läuft.

Ich weiß, das es schon verschiedene System zur Zeitmessung von Slotcars
gibt. Der Reitz liegt hier im selbermachen!

Nun meine Frage: Haltet Ihr mich für total bekloppt, oder ist sowas für
mich machbar? Zeit spielt keine große Rolle. Mich drängt keiner und ich
kann mir dabei Zeit lassen. Außerdem interessiert mich die Thematik.

Wenn ich bei Euch diesen Test bestanden habe, hier Frage 2: Was sollte
ich mir anschaffen um in die µC Technik einzusteigen? Ich habe hier im
Shop die ATmega128-Entwicklungsplatine für 55 Euro gesehen. Ist das was
für mich? Die STK500 ist mir eigentlich zu teuer. Löten - wenn nicht
gerade SMD - ist kein Problem.

Habt Ihr einen Tip für mich was deutsche Literatur zu dem Thema
angeht?

Ich freue mich auf Eure Antworten und hoffe, das ihr mir weiterhelfen
könnt ...

Gruß
Martin

von Hannes L. (hannes)


Lesenswert?

Wenn es der AVR sein soll, dann lade dir doch erstmal von www.atmel.com
das AVR-Studio und die Datenblätter (nur die vollständigen, nicht die
Werbe-Zusammenfassungen) herunter. Damit kannst du dich erstmal mit der
Architektur der AVRs vertraut machen. Das AVR-Studio erlaubt
Simulationen ohne dass man Hardware braucht.

Dann etwas hier im Tutorial herumschnuppern und du lernst einige
Programmieradapter kennen. Was du dann wirklich brauchst, kannst du
dann selbst entscheiden. Es gibt Programmer-Schaltungen von einigen
Widerständen bis zum eigenen MC.

Ein moderner AVR braucht Betriebsspannung, einen keramischen Abblock-C,
einen Widerstand von Reset nach Vcc und ein Programm. Und damit rennt
er. Natürlich noch etwas Peripherie an den I/Os, damit er etwas
Sinnvolles tun kann. Für das, was du so vor hast, könnte ein Mega16
oder Mega32 völlig ausreichen, vom USB mal abgesehen, aber das soll mit
FTDI-Schaltkreisen auch kein Problem sein.

...

von jim (Gast)


Lesenswert?

Hallo Martin,

und herzlich willkommen hier. Sich mit Mikrocontrollern zu
beschaeftigen ist schon ne tolle Sache, n interessantes Hobby, oder
auch ne nuetzliche Beschaeftigung.

Gut ist es immer, ein Ziel vor Augen zu haben, aber wie so oft ist
meist der Weg das Ziel, und die Teilerfolge ermuntern immer zum
Weiterarbeiten. Dein Carrera-Projekt klingt interessant. - Und auch
schaffbar. Ich wuerde mir an Deiner Stelle erstmal das Tutorial hier
auf www.mikrocontroller.net anschauen, das war damals auch fuer mich
ein perfekter Einstieg. Erstmal ein paar LEDs blinken lassen, Timing
durchdenken, Taster entprellen und dann ists auch zum LCD net weit. Ein
Entwicklungsboard hab ich (vielleicht auch des Geldmangels wegen) noch
net geholt, ich habe die erste Schaltung auf Lochraster aufgebaut und
es funktioniert auch.

Im Forum wurden schon viele Anfängerfragen beantwortet und viele
Probleme geloest, es kann dir bestimmt 'ne große Hilfe sein. Wie immer
gilt: erst suchen, nochmal suchen, nachdenken und dann posten (:

Ich wuensch dir fuer Deinen Einstieg viel Erfolg, und Mut, immer weiter
zu machen. So wirst Du sicher auch an Dein Ziel kommen.

MfG Jim

von Peter (Gast)


Lesenswert?

Hallo Martin,

ich würd dir das crumb128 Modul empfehlen. Kostet glaub ich so um die
40 Euro und hat schon eine USB Schnittstelle und einen RS232 Wandler
mit drauf. Alle Ports sind auf Pfostenstecker ausgeführt.
www.chip45.com

Gruß Peter

von Jan (Gast)


Lesenswert?

Hallo,
ich habe auch erst vor Kurzem mit der µC-Programmierung angefangen,
aber ich halte dein Vorhaben durchaus für machbar. Ein Atmega128 dürfte
aber etwas überdimensioniert sein. Vielleicht solltest du einen Atmega16
nehmen, der hat noch eine überschaubare Pinanzahl und eigentlich alles,
was man so braucht am Anfang.
Ich würde so vorgehen, immer ein Modul zu programmieren und zu testen,
und erst wenn alle Teile fertig sind, das alles zusammenzupacken. Zur
Verbindung zum PC würde ich dir aber erst einmal die einfachere
serielle Schnittstelle empfehlen.
Ich selber habe mir für den Einstieg nur einen ISP-Programmieradapter
gekauft, den Rest habe ich mir selber zusammengelötet. Ich habe mir
eine Platine nur mit den wichtigsten Bauteilen gemacht, von der ich die
Ports per Pfostenbuchsen weggeführt habe. Dazu dann ein paar Module mit
Tasten, LEDs, LCD. So kann man immer genau das anschließen, was man für
die aktuelle Aufgabe braucht.

Ich wünsche dir schon mal viel Spaß mit deinem neuen Hobby!

(Wahrscheinlich sehen die Experten hier manches etwas anders, aber ich
lasse mich da gerne korrigieren)

von chris (Gast)


Lesenswert?

hallo,
ich habe auch erst vor kurzem angefangen mich damit zu beschäftigen.
Aber ich hatte glück das ich ein STK500 und ein BobbyCar ( ATmega32 ) (
www.qfix.de) zur verfügung hatte.
Jetzt wo ich ein bischen den Überblick gewonnen haben möchte ich mir
auch ein bischen was basteln.
Schau doch einfach mal ins AVR-Tut auf dierser Seite.
Da steht was du an Hardware brauchst.
Ein Link zu einem STK200 gibts auch.
Was du dir anschaffen müsstest? ...
Ich würde sagen vergiss die Platine für 55 Euro.
STK200 , Schnittstellenbaustein MAX232 ( für serielle Schnittstelle)
und uC wird keine 55 Euro kosten wenn du es selber machst. Schatpläne
wie gesagt im AVR-Tut.
Ich hab eine verbindung zwischen PC und uC mit serieller Schnittstelle
aufgabaut und denke das es auch für deine Anforderungen reichen
müsste.
Hab mit USB noch nichts gemacht, aber es ist bestimmt komplizierter als
mit serieller Schnittstelle.
 Chris

von Chief Brady (Gast)


Lesenswert?

Hallo Martin,

da hast du dir aber wirklich was vorgenommen. Etwas sehr ähnliches habe
ich für den Hundesport mal gemacht: Zeitmessung über
Start-/Zwischenzeit-/Stoplichtschranken, Startnummernvergabe,
Online-/Offlineübertragung zum PC (seriell), Ansteuerung von
7-Segmentanzeigen (LCD/LED über RS485 Bus) zur Anzeige der Zeit
und/oder (Fehler-)Punkte und noch einige Sachen mehr und alles in
Assembler (PIC). Dazu eine passende Auswertsoftware (Turnierverwaltung)
für den PC.

Machbar ist das, wobei ich aus heutiger Sicht die Sache evtl. eher in C
machen würde (obwohl eingefleischter Assembler-Fan). Ob das allerdings
als Einstiegsprojekt geeignet ist... Ich würde da tatsächlich seeeehhr
viel Zeit einplanen.

Hier im Forum wirst du allerdings eher Unterstützung für AVR's
bekommen. Solltest du dich doch für PIC's entscheiden helfe ich
natürlich gerne ;-) Im Zeitalter von ISP benötigst du eigentlich nur
ein Steckbrett und einen Programmieradapter. Meine Projekte fangen
immen auf dem Steckbrett an, ein Experimentierboard habe ich noch nie
vermisst.

von Jojo S. (Gast)


Lesenswert?

ich halte die Aufgabe auch für lösbar, man sollte nur in kleinen
Schritten rangehen, also erstmal eine LED blinken lassen in einer
Zeitschleife und dann Timer/Interrupt dafür nutzen. Die braucht man
hinterher immer um ein einfaches 'Multitasking' zu machen. Einfache
I/O über die serielle ist am Anfang auch sehr hilfreich, kann immer zum
einfachen Debuggen genutzt werden.
Für den Anfang würde ich ein fertiges Experimentierboard nehmen wie
z.B. hier im Webshob oder das schon genannte Crumb128. Ein grösserer
Prozessor hat hier den Vorteil das der schon einen Bootloader drin
haben kann und dann per serieller Schnittstelle programmierbar ist.
Sonst muss erstmal ein sog. 'ISP' Adapter her (<30€). Hardware mit
AVR bauen ist auch nicht schwer, aber für die Fehlersuche am Anfang ist
es einfacher schonmal zu wissen das die HW ok ist. Die o.g.
Steckbrettvariante ist aber auch ok wenn man etwas Hardwareerfahrung
hat und sich das zutraut, dann sollte aber ein fertiger ISP Adapter
her.
Wenn man in C++ fit ist dann ist C auf dem µC auch nicht schwer, man
muss sich nur erinnern wieviel Bit ein Byte hat und im Ganzen wieder
etwas sparsamer haushalten. Mit dem WinAVR ist der Einstieg nicht
besonders schwer.
Das AVR Studio hilft auch sehr gut. Ist zwar eine Assembler Umgebung,
aber mit dem Emulator kann man gute Trockenübungen machen.

von Peter Dannegger (Gast)


Lesenswert?

Ich denke mal, das sind keine schlimmen Sachen. Das einzige komplizierte
wäre für mich der USB-Kram. Ich nehme deshalb lieber einen
RS232/USB-Konverter.

Auch 7-Segment ist kein Zauberkram, entweder man macht es sich einfach
(MAX7219) oder kostengünstig (CPU multiplext selber).


Wichtig ist bloß, die Tasks so zu schreiben, daß sie sich nicht
gegenseitig behindern (keine Warteschleifen innerhalb von Funktionen),
d.h. die CPU nicht irgendwo hängenbleibt und kostbare CPU-Zeit nutzlos
vergeudet.


Peter

von Martin B. (methusalem)


Lesenswert?

Guten Morgen,

WOW ... ich bin platt. So schnell und so viele hilfreiche Antworten.
Und keiner hat mich in der Luft zerissen. Alle machen mir Mut.

Ein großes DANKE!

Wenn das so weitergeht und meine Zeitmessung für die Slotbahn
funktioniert, sind alle die mir hier so nett helfen herzlich zu nem
Rennen eingeladen :-)

Ich werd mir wohl in den nächsten Tagen mal die Mühe machen und ne
kleine Liste zusammenstellen, von Bauteilen, die ich dann bestellen
will. Aufgrund Eurer Tips werde ich wohl erstmal ein Steckbrett nehmen
und keine Entwicklungsplatine kaufen. Um den ISP werd ich wohl nicht
herummkommen. Ist aber nicht tragisch.

Ich würde mich freuen, wenn Ihr meine Liste dann noch mal kommentiert.
Schließlich wohne ich hier auf dem platten Land und muss alles im
Versand bestellen. Da wäre es ärgerlich wenn ich irgend was wichtiges
vergessen würde.

Wo bekomme ich denn noch Infos über eine Crosscompiler für den AVR? Ich
denke, das ich meine ersten Versuche dann vielleicht doch in C machen
werde. Auch wenn mich Assembler wirklich interessiert.

von Stefan Kleinwort (Gast)


Lesenswert?

Mach es in C, das spart Dir viele Nerven und Zeit. Such mal bei den
Links nach WINAVR.
Wenn es Dir auf ein paar &#8364; nicht ankommt, dann kauf Dir ein
jtag-Debugmodul (muss speziell für den AVR sein), z.B. bei Olimex.

Für die LEDs würde ich auch den MAX7219 nehmen ...

Gruß, Stefan

von Holger B. (Gast)


Lesenswert?

Hallo Martin,

schau Dir mal die AVR-Ctrl-Platine von unserer Webseite:
http://www.mikrocontroller.com
an. Hier haben wir auch Beispielprogramme für LCD-Ansteuerung,
Menüführung, Timer (ms-Interrupt) usw.

Als C-Compiler empfehle ich den CV-AVR:
http://www.hpinfotech.ro/
Erstklassig hier ist der Code-Wizard, der schon die Prozessor-Register
nach eigenen Bedürfnissen einstellt. (Für Einsteiger sehr zu
empfehlen)
...oder den GNU-C-Compiler:
http://winavr.sourceforge.net/

Gruss,
Holger

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.