Forum: PC-Programmierung Wie anfangen mit Hardware Programmierung


von Marlon T. (mrln)


Lesenswert?

Hallo,
Ich möchte mal anfangen Hardware zu Programmieren. Da ich von den vielen 
Begriffen wenig verstehe, und auf den Seite, wo diese erklärt werden, 
wieder neuen Begriffen begegne, hat es für mich wenig Sinn, sich über 
eine Suchmaschine fachkundig zumachen. Deswegen wollte ich hier mal 
Fragen ob mir jemand sagen kann, welche Teile man dafür braucht, welche 
Internetseiten gute Tutorials/Bücher haben, die sich an Anfänger richten 
und welche Programmiersprache verwendet werden sollte.

Ich benutze zur Zeit Linux, und möchte nur sehr ungern Windows 
verwenden, hätte aber Windows 7 als Alternative. Zurzeit lerne ich die 
grundlegenden Dinge beim Programmieren, mit Beispielen anhand der 
Programmiersprache C++ mit einem Buch (Programming - Principles and 
Practice Using C++).

Soweit ich weiß/hier gelesen habe, sollte man so etwas in C oder 
Assembler machen. Habe aber hier auch schon von Basic gelesen. Ich habe 
mit dem Wikibook Gambas gelernt, falls das auch geht. Ansonsten weiß 
ich, dass wir in der Schule noch Delphi lernen, weshalb ich auch bald 
beginne mir Freepascal genauer anzuschauen. Falls eine Assemblersprache, 
ist da die Nächste Frage: Welche? Ich arbeite mit einem 32-Bit System.

Zuletzt noch die Frage, ob man dies in der Schule lernt bzw. wann. Ich 
gehe in Berlin auf ein Gymnasium (kein technisches) und habe dort auch 
vor Informatik Kurse zu belegen.

Ich möchte eben erstmal nur die grundlegenden Dinge lernen und mich auch 
ein bisschen mit Hardware beschäftigen (da habe ich nämlich viele 
Lücken). Ich glaube gerade bei diesem Thema ist learning-by-doing 
angesagt, oder etwa nicht? :) Sollte ich überhaupt mir Mikrocontrollern 
anfangen?

Ich hoffe ihr könnt mir helfen :-)

Marlon

von doofi (Gast)


Lesenswert?

> Sollte ich überhaupt mir Mikrocontrollern anfangen?

Wer so fragt: Lern lieber GUT kochen.

von horst (Gast)


Lesenswert?

Guckst du hier: http://www.mikrocontroller.net/articles/AVR-Tutorial

Das Tutorial ist wirklich gut. Ich verstehe schon, am Anfang wird man 
völlig überrannt, es lohnt sich aber trotzdem, einfach mal einen 
Nachmittag lang sich einzulesen, unbekannte Begriffe nachzuschlagen usw. 
Auch wenn man nicht alles kapiert, erarbeitet man sich so langsam aber 
sicher eine gewisse Übersicht über das Thema.

Eine Warnung gleich zu Beginn: Das Thema Mikrocontroller ist gross, 
schwierig und am Anfang unübersichtlich. Ohne viel Motivation, 
Interesse, Zeit, Frusttoleranz und etwas Hirn geht es nicht! :-)


> mit Hardware beschäftigen (da habe ich nämlich viele Lücken)

Von 'Lücken' sprechen kann man nach abgeschlossenem Studium, vorher ist 
es schlimmer und nennt sich 'keine Ahnung' ;-)

von Stefan B. (Gast)


Lesenswert?

@ Marion

Wenn du bereits Linux benutzt, dann bleibe damei. Unter Linux kann man 
prima programmieren lernen und dann auf hardwarenahe Programmierung 
weitergehen.

Eine Buchempfehlung:

Jürgen Plate
Linux Hardware Hackz
http://www.hanser.de/buch.asp?isbn=978-3-446-40783-1&area=Computer

Vielleicht mal mit der Schulbücherei reden, ob Mittel (40€) dafür 
vorhanden sind.

Man muss nicht unbedingt mit Mikrocontrollern anfangen. Einige Sachen 
kannst du ohne steuern. Mikrocontroller bieten aber mehr Möglichkeiten 
und Flexibilität, wenn du kompliziertere Projekte angehst. Wie du am 
Verhältnis der Artikel hier siehst.

von Marlon T. (mrln)


Lesenswert?

Danke erstmal für die Beratung und für die Links.
Der Mikrocontroller selbst ist ja billig, aber mit dem allein kann ich 
ja nichts anfangen. Jetzt habe ich mir mal das angeschaut 
http://shop.embedded-projects.net/product_info.php?ref=2&info=p43 , kann 
ich das in Kombination mit dem Mikrocontroller bestellen, und reicht das 
dann? oder brauche ich noch mehr? Werde aus den vielen Vergleichen von 
den Platinen etc. im Tutorial nicht schlau :/

von Stefan B. (Gast)


Lesenswert?

Nein reicht nicht. Du brauchst noch einen sog. [[AVR In System 
Programmer]].

Welchen du nimmst, ist von der vorhandenen Computerausrüstung 
(Schnittstellen!) und dem verfügbaren Etat abhängig.

von Stefan B. (Gast)


Lesenswert?

Schau dir genau den Lieferumfang an. Denke an die Verbindungskabel 
zwischen PC und Targetboard und an die Stromversorgung mit einem 
Steckernetzteil. Das läppert sich zusammen.

von Marlon T. (mrln)


Lesenswert?

Wenn ich mich nicht irre haben die Prozessoren in Handys und Mp3-Playern 
oftmals ARM-Controller. Gibt es große Unterschiede zwischen der 
Programmierung solcher und den AVR-Controllern? Kann ich auf eine 
Platine alle möglichen Mikrocontroller aufstecken?

Danke nochmals für die Hilfe

marlon

von Stefan B. (Gast)


Lesenswert?

Geht nicht. Du brauchst nur mal die frei erhältlichen Datenblätter der 
verschiedenen µC zu vergleichen: Abweichungen in der Gehäuseform, Anzahl 
der Pins und Belegung der Pins sind offensichtlich!

von Thomas B. (escamoteur)


Lesenswert?

Hallo Martin,

ich kann Dich ganz gut verstehen und wenn man ganz am Anfang steht ist 
es nicht ganz einfach.

Hast Du Dir schon mal 
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

Durchgelesen?

Ganz wichtig für µC ist, dass Du dich mit Bit manipulationen in C 
auskennst, da die meisten Funktionen in einem µC durch setzen oder 
löschen von Bits in Registern des µC passiert. Auf die Register kannst 
Du von Deinem Programm aus wie auf eine normale Variable zugreifen. Am 
besten Du besorgst Dir für den Anfang ein Evalboard mit einem 
AVR-Controller drauf, dann musst Du nicht gleich auch noch löten, dass 
kannst Du dann als nächstes machen.

Erstes Ziel sollte es dann sein mal eine LED am µC zum blinken zu 
bringen.

Empfehlungen für Evalboards können vielleich die anderen geben. Für 
Board + ISP Programmer musst Du auf jeden Fall so um die 100€ rechnen.

An sonsten, stell am besten in diesem Thread konrete Fragen was Du nicht 
verstehst.

Lad Dir mal z.B.

http://www.atmel.com/dyn/resources/prod_documents/doc2466.pdf

Runter, druck es aus und versuch es zu verstehen, in solch einem 
Datenblatt alles über solch einen µC drin. Auch immer wieder mit kleinen 
Programmierbesiepielen.

Gruß & viel Erfolg

Tom

von Florian S. (tornado) Benutzerseite


Lesenswert?

Hi, so schlimm fand ichs garnet.

hab auch noch net soo lang mit AVRs angefangen,(hab vorher andere µCs 
schon programmiert)

also wenn du nen parallelport hast, (auch wenn jetzt hier einige wieder 
das motzen anfangen werden), gehts sehr leicht und auch sehr billig.

was du dann nämlich MINIMALST brauchst um anzufangen sind:


1 Lötkolben wär sinnvoll (hast vllt schon? sonst gehts da ab rund 10€ 
für ganz billige geräte los, 30W sollt er haben sonst geht irgendwie nix 
;) [ja, billig kauft man immer 2x, aber lieber erst mal mit 10€ testen 
oder bei 100€ merken dass es keinen spass macht?])

1 Atmega (hab als erstes nen Atmega8 gehabt) (ca 1-2€)

1 programmer, (ich hab am anfang den: 
http://www.tuxgraphics.org/electronics/200411/article352.shtml benutzt 
und noch nie probleme gehabt, is ein parallelportprogrammer zum selbst 
baun, typ "dapa" für avrdude/winavr) (insgesamt ca 3€)

1 steckboard wär sinnvoll, da gibts z.b. beim reichelt günstige, so ca 
10€

1 labornetzteil (50€ aufwärts) oder weitaus billiger: 1x Spannungsregler 
7805, 1 9V-Batterie und ein 9V-Clip (zusammen ca 3€)

dazu ein paar bauteile (led, widerstände [z.b. 470 Ohm für die LEDs, ein 
paar 10k für pullups etc], ein paar taster,Kondensatoren [z.b. 100nf zum 
blocken] und ein paar drähtchen)

dann kanns auch schon losgehen

wenn wir also mal vom lötkolben absehn, kannst du mit rund 15€ deine 
erste led blinken lassen. Achja, software is gratis

is natürlich net verkehrt, wenn du mehr als 1 atmega, 7805 etc. hast, 
weil du wirst vllt mal was mit mehreren controllern machen wollen oder 
sonst was.


wenn du dann merkst es taugt dir, ist natürlich ein usb-programmer oder 
ein evaluationboard evtl sinnvoll (ich hab inzwischen einen 
usb-programmer namens usbasp, weil ich am laptop keinen parallelport 
hab. is auch zum selbstbaun, allerdings brauch man da bereits einen 
funktionierenden progammer für die "erstinstallation", das teil kostet 
dann auch <10€)

gruß

von Florian S. (tornado) Benutzerseite


Lesenswert?

Da ich leider nicht mehr editieren kann mach ich einen Doppelpost.

was ich noch vergessen hab zum Thema programmer, es gäbe noch ne 
alternative. Wenn du direkt einen USB-Programmer haben willst, aber 
nichts hast um ihn zu programmieren, kannst du evtl. den hier: 
http://www.tuxgraphics.org/electronics/200510/article05101.shtml bauen. 
hab ihn aber selbst noch nicht getestet. ist halt stk500-kompatibel, hat 
usb und kann ohne weitere dinge progammiert werden. Weiß aber nicht 
genau wie man das ding unter Windows "initialisiert"(also den programmer 
selbst programmiert), für linux is angegeben. ausserdem ist er 
schätzungsweise durch den usb-chip etwas teurer und wohl deutlich 
schwieriger zusammenzubasteln

gruß und sry 4 Doppelpost

von nur so am vorbeischauen (Gast)


Lesenswert?

vielleicht hilft dir ja der link:

http://www.sparkfun.com/commerce/tutorials.php

und speziell:

http://www.sparkfun.com/commerce/tutorial_info.php?tutorials_id=57


Lass dich nicht entmutigen. Egal wie man anfaengt, es hat etwas
von: sich an den Haaren aus dem Sumpf (der Ahnungslosigkeit) ziehen

Ganz normal. s. a.:
http://de.wikipedia.org/wiki/Top-down_und_Bottom-up
Von der Software zur Hardware, oder umgekehrt. Es ist nie leicht, aber 
es macht Spass.

viel Glueck

von Gerbil (Gast)


Lesenswert?

Noch eine Anmerkung zum Netzteil:
USB am Computer liefert 5 Volt vollkommen gratis (d.h. 'nen USB-Stecker 
zum Einstecken in den Computer an dem man die Masse und die 5 Volt 
Leitung anschließt brauchts natürlich schon).

Gerhard

von grempel (Gast)


Lesenswert?

was ich auch empfehlen kann, so zum anfangen währe das Arduino Board, zb 
bei www.bausteln.de zu bekommen, is einfach per usb anzuschließen, und 
reicht zum ersten basteln. die Softwareumgebung is C, auch für Linux zu 
haben, und sehr übersichtlich.

von oldmax (Gast)


Lesenswert?

Hi
Die Frage ist nicht "wie" sondern "was". Man kann natürlich diverse 
Tutorials abarbeiten, aber es ist nicht wirklich ergiebig. Richtig was 
lernen wirst du, wenn du z. B. eine alte Eisenbahn mit einem PC steuern 
möchtest. Klar, der PC hat nicht so viele Ausgänge, die man zum Steuern 
nutzen könnte. Auch geeignete Eingänge fehlen in der Regel. Ach ja, da 
kommt µC ins Spiel. Der kann sowas. Nun muß er sich nur noch mit dem PC 
verständigen und "trara", wir haben eine Aufgabe. Ab jetzt ist deine 
Zeit mit Mädels vorbei. Fußball, Kino, schwoofen und was sonst auch 
immer Spaß machte, ist kalter Kaffee. Das einzige, was du jetzt noch 
heiß mahen kannst, ist ein Lötkolben.
Worauf ich hinaus will: der Weg zum Verständnis der Programmierung ist 
einfacher, wenn du dir eine Aufgabe suchst. Etwas, was dich 
interessiert. Vom Aquariumsteuergerät über ne Ampelanlage zum 
automatischen Alarmierungsgerät mit Handyruf, was auch immer deine Sinne 
beglückt, es muß eine Aufgabe sein. Sie kann ruhig anspruchsvoll und 
schwierig sein, denn du wirst lernen, mit kleinen Schritten deinem Ziel 
näher zu kommen. Wenn du deine Arbeit mindestens 5 mal in der Tonne 
versenkt und neu aufgesetzt hast, kommen wir dem Begriff "programmieren" 
näher.
Nun zur Ausrüstung.
Ein PC, kann ruhig alt sein und noch die begehrten Schnittstellen wie 
Druckerport parallel sowie seriel haben. USB ist für's erste optional. 
Deq weiteren Software, aber die kennst du ja bestimmt, VB, C, Pascal was 
halt verfügbar und erlernbar ist.
Hardware für µC
Ein Board zum flashen, einen ( mindestens) Controller, ein Netzteil 5 V, 
ein Meßgerät, ein Lötkolben, etwas Platinenmaterial, Kondensatoren, 
Widerstände, LED's Relais, Transistoren und Dioden, vielleicht noch ein 
paar MAX 232 oder ähnliches, ULN 2008 ist auch nicht schlecht und eine 
Bude, die man vor neugierigen Brüdern und Schwestern verschließen kann. 
Eine geduldige Mutter und einen großzügigen Vater, das rundet die Sache 
ab. Ein guter Kontakt in den wichtigsten Foren und vielleicht noch einen 
Freund, der mitspielt.
das wär's erstmal so in etwa....
Gruß oldmax

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.