PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Allgemeine Fragen zu Microcontroller und Roboterprogrammierung



Klacknack
30.04.2012, 17:42
Hallo zusammen,

ich begebe mich momentan an mein allererstes Robotorprojekt und bin dabei auf dieses hilfreich aussehende Forum gestoßen. Ich habe da ein paar Fragen besonders im Bereich der Microcontroller und Programmierung dieser. Zuerst zu meinem geplanten Roboter: Es soll für den Anfang ein schlichter Roboter sein. Drei Räder und zwei antreibende. Diese lenken den Roboter durch eine Differentiallenkung. Zu Beginn möchte ich, dass der Roboter sich lediglich geradeaus bewegt bis er anstoßt. Dann vollzieht er eine Wendung um 90 Grad in eine Richtung und fährt weiter. Die Stoße erkennt er durch zwei Drucksensoren vorne links und vorne rechts. Anhand dessen soll er erkennen in welche richtung er wenden soll. Ich bin in der Robotersparte nicht bewandert und meine bisherigen Erkenntnisse habe ich durch Google-Suchen zusammengesammelt. Jedoch ist das das 0815-Einsteiger-Projekt, wenn ich das richtig sehe.

Ich arbeite bereits am Aufbau und an der Mechanik des Roboters und stehe bald vor der Frage, wie ich den Roboter programmiere. Zwei meiner Fragen sind nun:

- Gehe ich richtig in der Annahme, dass C die gängige Programmiersprache für Roboter ist?
- Kann jemand gute und günstige Microcontroller für Einsteiger empfehlen?

Nun möchte ich die Frage eigentlich weiter ausbauen. Ich studiere Elektrotechnik und werde mich im Winter mit Programmierung in C auseinandersetzen. Habe bislang jedoch gar keine Erfahrung damit gemacht. Ich habe lediglich Java Programmierkenntnisse. So meine nächste Frage

- Was haltet ihr von der Idee: Ich besorge mir einen Microcontroller, suche mir jedoch die Programmierung. Ich baue, dass erstmal nur zusammen. Anschließend kann ich an dem Projekt ja wachsen und immer wieder erweitern. Solange ich jedoch die Kenntnisse in der Programmierung nicht habe, lasse ich es mir programmieren.
- Aufbauend zur vorherigen Frage: Gibt es überhaupt die Möglichkeit fertig geschriebene Programme runterzuladen/ zu kaufen?

Ich erhoffe mir dadurch, ein schnelles Erfolgserlebnis zu haben und so kann ich immer wieder und immer weiter daran basteln. Ich denke es ist einfacher, als wenn ich versuche ein Mammutprojekt mit allen Details sofort komplett alleine zu stemmen. Wenn man scheitert ist das dann besonders frustrierend
Ich freue mich sehr über hilfreiche Antworten. Hoffe das waren keine dummen Fragen. Obwohl ich selber Elektrotechnik studiere, ist dieses Themenfeld komplett neu für mich.

Gruß und danke!

021aet04
30.04.2012, 18:02
Wilkommen im Forum,
Es gibt verschiedene Programmiersprachen. Je nachdem welchen Controller du nimmst gibt es z.B. Bascom (Basicdialekt), C, Assembler,...
Für die größeren Controller (ARM) gibt es dann VHDL, wobei man eher mit normalen µC einsteigen soll. Bei µC gib es zwei große Gruppen, einmal die AVR von Atmel und einmal die PICs von Microchip (es gibt noch weitere jedoch sind diese weit verbreitet). Ich arbeite mit den AVR von Atmel, hier gibt es sehr viele, von 8 pinnigen ICs bis µC mit über 100 Anschlüssen, mit unterschiedlich Speicher,...). Ich kann den Atmega88 o.Ä. empfehlen. Dieser ist für den Anfang gut geeignet, später wirst du genug Erfahrung sammeln damit du den richtigen µC auswählst, wenn du einen anderen brauchst.

Wenn du auch die AVR Serie nimmst gibt es auf Mikrocontroller.net ein gutes AVR-GCC Tutorial. Programme findest du sehr oft kostenlos im Internet.

Ich würde, wenn du später sowieso C lernen musst, gleich in C programmieren.

MfG Hannes

Kampi
30.04.2012, 18:33
Hallo und willkommen,

generell kann man sagen, dass die Atmel-Chips eine gute Wahl für einen Einstieg sind, weil das Internet voll mit Beispielen und Hilfe für diese Chips ist.
Die Idee klein anzufangen und dein Projekt immer weiter wachsen zu lassen ist ein solider Gedanke. Besser als wenn du gleich ein fertigen, selbst denkenden Roboter mit allen möglichen Schnickschnack programmieren und bauen willst :)
So tastest du dich Schritt für Schritt voran.
Fertig geschriebene Programme kannst du überall im Internet runterladen. Obs welche zu kaufen gibt weiß ich nicht, aber ich denke wenn du für ein Gratis Programm doch was zahlen willst wird dich keiner aufhalten ;)
Java-Programmierung ist auch eine schöne Sache für Mikrocontroller, weil du dadurch eventuell Programme auf dem PC schreiben kannst um Schaltungen zu steuern (oder über ein Android Smartphone).
Die Idee es dir programmieren zu lassen halte ich für falsch, weil du dadurch nichts lernst. Wenn du was fertiges haben willst kauf es dir lieber komplett. Was bringt dir ein fertiges Programm, wenn du es nicht verstehst (dann kannst du es auch nur schwer ausbauen)?
Der Rest wurde oben ja schon beantwortet :)

Btw....es gibt keine dummen Fragen....nur dumme Antworten ;)

Neutro
30.04.2012, 19:18
Ich würde dir noch empfehlen dir ein Testboard zusammen zu basteln. Damit kannst du für den Anfang schon mal ein bisschen Schaltungstechnik üben, zudem kannst du deine Programmierversuche daran bestens testen und diese später auf den Robbi portieren.
So ein Testboard ist im übrigen gar nicht so schwer zu entwickeln - ein Controller, ein paar Taster und noch einige LED´s, dazu noch alle Controllerpins auf eine Pfostenleiste oder ähnliches rausführen und schon kanns losgehen.
Wir hier im Forum sind dir da bei deinen Fragen gerne behilflich.
Ach ja, noch was: Wenn du im Rahmen deines Studiums sowieso C lernen musst, würde ich auch gleich damit anfangen (ich selber nutze Bascom).
Alles andere hatten ja schon meine Vorredner gesagt.
Viel Erfolg
Neutro

Klacknack
02.05.2012, 22:25
hi, danke für die schnellen und hilfreichen antworten. Ich antworte erst so spät, weil ich gestern das gute Wetter genutzt habe. Habs mir noch nicht anders überlegt. Also gut, ich werde mich dann am wochenende, wenn ich im Elektronikbastelladen bin, umschauen. Ich habe wiederum aber ein paar Fragen:

- habe ich das richtig verstanden, dass jeder µC nur von speziellen Programmiersprachen beschrieben werden kann? Ich hätte gedacht, dass es egal ist welche Sprache ich benutze. Beim Kompilieren wird der Programmcode in Maschinencode umgewandelt. Dieser kann von µC gelesen werden, unabhängig der Programmiersprache.
- verstehe ich das gleiche unter einem Testboard wie ihr? ein normales steckboard auf das ich den µC klemme. Dieses programmiere ich nun mit einem Testprogramm und teste das direkt anhand von LEDs aus? Um mich damit an das ganze ranzutasten.

Da werden bestimmt noch einige Fragen aufkommen, sobald ich anfange mit den microcontroller rumzuspielen. Danke bis hierhin!

Kampi
02.05.2012, 23:10
Hi,



- habe ich das richtig verstanden, dass jeder µC nur von speziellen Programmiersprachen beschrieben werden kann? Ich hätte gedacht, dass es egal ist welche Sprache ich benutze. Beim Kompilieren wird der Programmcode in Maschinencode umgewandelt. Dieser kann von µC gelesen werden, unabhängig der Programmiersprache.



Nicht ganz. Die Compiler verstehen nur bestimmte Sprachen. Du kannst natürlich auch einen eigenen Compiler bauen für irgendeine x-beliebige Sprache. Wenn du dasselbe Programm in unterschiedlichen Sprachen, spucken dir die Compiler (im Idealfall) alle den selben Hex-Code aus. Für den Mikrocontroller ist nur der Hexcode wichtig. Der Compiler ist nur ein "Übersetzer" von der Programmiersprache in Hex-Code.




- verstehe ich das gleiche unter einem Testboard wie ihr? ein normales steckboard auf das ich den µC klemme. Dieses programmiere ich nun mit einem Testprogramm und teste das direkt anhand von LEDs aus? Um mich damit an das ganze ranzutasten.


Im einfachsten Fall kannst du es so machen :)
Aber ich denke in diesem Fall ist mit Experimentierboard vielleicht eine fertig bestückte Platine gemeint wo du deine ersten Experimente drauf machen kannst. Aber gegen einen Eigenbau spricht natürlich auch nichts (da lernst du auch eine ganze Menge ;) )