Noob will in Microcontrollerprogrammierung + Roboterbau einsteigen - Anfängerfragen
Hallo zusammen,
die Überschrift sagt es ja schon grob aus. ;-)
Auf dem Gebiet Micrcontroller-Programmierung bin ich völlig neu. Habe in der Schule und im Studium aber schon etwas Erfahrung mit Informatik/Programmieren machen dürfen (Borland Delphi, C#, u.A.). Jedoch ist da mein Wissen im Laufe der Zeit überwiegend verflogen, so dass ich fast bei Null anfange (ich weiß noch, wie Schleifen und Bedingungen aussehen und kenne grob die wichtigsten Datentypen wie Integer, Float, Double, String, Bool). Aber von jetzt auf gleich ein einfaches, kleines Programm schreiben könnte ich mit meinem aktuellen Wissen wohl nicht mehr ohne weiteres.
Jedenfalls möchte ich nun gerne Microcontroller programmieren können und in dem Zusammenhang im Laufe der Zeit evtl. auch verschiedene Programmiersprachen erlernen und nutzen. Langfristig würde ich eben gerne nicht nur LEDs blinken, Lichtschranken und Tongeber ansteuern können, sondern auch Sensoren, die etwas bewegen, z.B. Roboter, die sich mit Ultraschall orientieren und Hindernissen ausweichen, oder welche die Dinge auf dem Boden vor sich erkennen und aufsammeln etc. - mein kleiner Traum wäre, (irgendwann einmal) einen Autopilot für ein RC-Modellflugzeug zu bauen (ist allerdings fraglich, inwiefern und in welcher Zeit das möglich ist...).
Es soll ein langfristiges Hobby werden (das mir evtl. auch im Beruf nützlich sein könnte), daher möchte ich nichts vorgekauertes haben wie Bausätze, die ich nach Anleitung zusammenlöte ohne zu wissen, welche Aufgabe was für ein Bauteil oder eine bestimmte Schleife des Schaltkreises übernimmt. Vor allem möchte ich es jetzt von Grund auf, bis ins Detail lernen, also nachhaltig. Zudem möchte ich nach Möglichkeit ausschließlich frei verfügbare (lizenzfreie) Software nutzen.
Frage ist nun: WAS BRAUCHE ICH WIRKLICH FÜR DEN ANFANG? (allgemein)
Meine Antwort, basierend auf dem, was ich bisher gefunden habe:
- Hardware:
Controllerboard + weitere Bauelemente für den gewünschten Schaltkres (ggf. Kompaktbausatz), des Weiteren Verbindungskabel (PC-Schaltkreis) (ISP oder USB, je nach Schaltkreis und Bausatz) Meine Frage: Was ist der Unterschied, ob ich jetzt ISP oder USB nehme? Hat eines von beiden irgendwelche Vorteile? Oder kommt es einfach darauf an, was in dem jeweiligen Bausatz ist, bzw. welchen Anschluss ich auf die Platine setze? Ist das "Controllerboard" bei den Bausätzen schon zusammengesetzt? eigtl doch auch nciht, oder?
- Software:
Betriebssystem: Habe aktuell Windows 7, werde aber zum einen fürs Programmieren und zum anderen auch aus eigenem Interesse eine weitere Partition mit Linux einrichten. Frage: Welche Distribution? Meine Favoriten für die engere Auswahl sind bisher: Slackware, Ubuntu oder Debian.
Programmiersoftware: nach Möglichkeit eine lizenzfreie, vollwertige frei verfügbare Software, z.B. Visual C++ 2010 Express, Python, Assembler, LunaAVR etc.
Compiler: Wenn ich es richtig verstanden habe, eine PC-Software, die den erstellten Quelltext in Maschinensprache übersetzt.
Nach meinen Recherchen wird der aber nicht immer benötigt, manche Programmiersprachen kommen wohl ohne Compiler-Software aus, richtig oder falsch verstanden?
Mein Plan, wie ich anfange: Controllerboard und ISP-Kabel nach dem RN-Tutorial zusammenbasteln und programmieren:
http://www.rn-wissen.de/index.php/AV...einem_ATMega32
http://www.rn-wissen.de/index.php/AV...ogrammierkabel
Was meint ihr? Gut für den Einstieg oder andere Ideen?
Die Frage ist ob das sinvoll ist, wenn man ein ähnliches Controllerboard auch in einem Baukasten selbst zusammenbasteln muss (ist doch so oder?). Dann hat man ja mehr davon und kann direkt weiter den Roboter drumherum bauen und ist länger beschäftigt... ?
danach überlege ich, wie es weitergehen könnte, wenn ich den Tutorial durch hab:
- Nibobee von Nicai zusammenbauen und programmieren (allerdings: kommerzielle Software erforderlich von Nicai und stumpfes zusammenbasteln der Steuerung ohne hinterfragen zu können, was welches Bauteil für eine Aufgabe erfüllt...)
- das hier: http://halvar.at/elektronik/mikrocon..._wie_anfangen/
ist allerdings auch wieder nur ein Bausatz, bei dem sich nix bewegt und keine Aktoren oder Stellmotoren angesteuert werden (ich möchte auch Action sehen, wenn ich etwas erfolgreich programmiert hab - deswegen bin ich ja in diesem Forum und nicht in irgendeinem Elektronikforum^^)
- weitere Ideen/Empfehlungen?
So das war nun ausführlich genug über mich und meine Hoffnungen/Erwartungen an mein neues Hobby. ;-) jetzt freue ich mich auf ein freundschaftliches Miteinander hier im Forum und auf Tipps, Hilfestellungen, Berichtigungen (wenn ich etwas falsch verstanden und dargestellt habe) eurerseits. :-)
Sry für die vielen, für erfahrene Bastler vielleicht "dummen" Fragen, aber ich weiß halt wirklich nicht, wie ich sinnvoll und effizient (d.h. mit starkem Lerneffekt) anfangen soll und hätte gern etwas Bestätigung, bevor ich Geld für etwas rausschmeiße, was ich nach nem Tag durchgearbeitet hab und dann nutzlos, d.h. nicht mehr interessant ist, weil es daran nichts neues mehr zu entdecken/lernen gibt.
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo HannoHpmann,
dein Kommentar ist einfach Klasse geschrieben. Wollte auch schon ein verfassen, ist nun überflüssig.
Hänge mal ein Bild in Anhang, wie ich angefangen habe, um mich auf eine bestimmte Variante festzulegen. Wollte ja völlig unabhängig von Controller fertige Hardware sowie Software sein. Einfach erst mal Erfahrungen für Einstieg sammeln.
Bord nutze ich heute noch für Entwicklungen. Ist ja alles steckbar. Meine Projekte baue ich alle selber(Lochstreifenplatine) ist ja kaum Außenbeschaltung nötig. Natürlich ist alles größer wie mit SMD.
Hat aber den Vorteil alle IC sind gesockelt. Habe mich für AVR und BASCOM entschieden.
Wie du richtig geschrieben hast, führen viele Wege nach ROM. Somit kann keine Aussage getroffen werden, was besser ist.
Mit freundlichen Grüßen
fredred
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo derSpinner,
mein letzter Beitrag zu diesem Thema(Einstieg)
der ATMEGA 644PA-PU ist schon eine gute Wahl. Wirst schon einige Zeit benötigen um diesen an seine Leistungsgrenze zu bringen.
So nun werde ich mal versuchen meinen ersten Aufbau und programmier Erfolg zu beschreiben(sind einige Jahre vergangen) aber mal sehen.
1. Bascom-Demo installiert..... auf alten Dellrechner mit USB-COM- und Parallelanschluss.
2. Material gekauft. 1x Lochstreifenplatine(100x160) 1x 40poligen IC-Sockel 1x Buchsenleiste, 64-polig,einreihig,RM2,54 1x Parallelstecker mit Lötanschluss 1x 5poligen Platinenstecklverbinder(für ISP) 1x ATMega16 1x USB Steckernetzteil (1000mA) und eine USB- Einbaubuchse Serie A für Printmontage (Spannungsversorgung).
Kosten waren ca. 15 Euro.
Das war es. 2x 220 Ohm Widerstände und ein 100n Kondensator sowie ein Taster und 10Kohm Widerstand für Reset hatte ich noch.
Zum Aufbau ein Lötkolben und ein 3,5mm Bohrer. Der Bohrer macht sich gut die Streifen der Platine per Hand zu trennen.
Die Buchsenleiste habe ich auf 20 getrennt und neben den IC-Sockel eingelötet, den Rest auf 2x12 getrennt und auf die VCC und GND- Schiene gelötet. Somit brauchte ich bei meine ersten Versuchen nicht immer den Kolben anzuschmeißen. Konnte ja nun alles stöpseln.
Mehr Aufwand ist erst mal nicht nötig um die ersten Erfahrungen zu sammeln. Ein ISP-Dongle benötigts du nicht BASCOM hat die STK200/300 Schnittstelle integriert. Auch ein ext. Takt (Quraz) kann später noch angeschaltet werden.
Später wirst du noch ein USB für Prog einbinden. Willst ja mit der Zeit auch aktuell sein. (ich benötige bis heute kein USB oder was auch immer fürs programmieren) Wichtig wird es sein eine COM-Verbindung zu deinem PC-Terminalprogramm aufzubauen.
Somit kannst du an fast jeder X beliebigen Stelle im Programm mit „PRINT“ ein Ergebnis anzeigen lassen. Dies ist für mich unverzichtbar geworden. Denn wenn du auch mal ein Programm schreibst mit ca. 5000 Zeilen, mit vielen Sub’s , Schleifen, Berechnungen usw. Bin ich mich sicher, es treten erst mal Denkfehler auf.
So nun aber Schluss mit dem Geschwätz.
Im Anhang noch mein ISP- Anschluss LPT.
Mit freundlichen Grüßen
fredlich
Liste der Anhänge anzeigen (Anzahl: 1)
Hey, heute hab ich mich mal an dem LCD versucht.
Im Löten mache ich auch Fortschritte - sieht alles viel feiner und sauberer aus als bei den ersten Widerständen auf der Platine und ging dazu auch noch flotter. :-)
Testprogramm vom Hersteller wurde auch erfolgreich auf dem LCD angezeigt (einfache Textausgabe, Programm ist als .hex vorhanden).
Jedoch bekomme ich es einfach nicht hin, eigenständig einen Text mit Bascom zu programmieren. Könnt ihr mir helfen?
Hier die Pinbelegung des LCD:
Anhang 28060
Hier mein Versuch eines Programms (das sogar im Datenblatt zu diesem LCD als Beispiel aufgeführt war)
Zitat:
$regfile = "m8def.dat"
$crystal = 3686400
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 2
Config Portd = Output
Do
Waitms 1000
Cls
Lcd "myAVR mit LCD"
Loop
END
Ich verzweifle grad ein wenig und hab keine Idee, was ich falsch gemacht hab o.O. Kompilieren klappt, auf µC brennen geht auch. Aber dann tut sich nix.
Trotz des Befehls "Cls" (Display löschen) in der Schleife bleibt der Text des vorherigen Testprogramms auf dem LCD.
In der Beschreibung steht noch folgendes:
Zitat:
Das myAVR LCD Add-On ist für den 4Bit Modus über Port D konfiguriert.
The myAVR LCD Add-On is configured for the 4 Bit mode across port D.
Warte mindestens 50 ms nach Power-ON.
Wait as many as 50 ms according to Power-ON
Das Display wird durch das dreimalige senden von 0b0011xxxx (Soft-
Reset) in den Initialisierungsmodus versetzt, dabei muss RS = 0 sein.
Muss ich da irgendetwas manuell einstellen/konfigurieren? Wenn ja, wo kann ich das tun?