PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Grundlegende Funktionsweise von Prozessoren und Controllern?



Preankie
14.05.2010, 17:58
Hallo Zusammen,
nachdem ich meinen Asuro erfolgreich zusammengebaut und testen konnte, würde ich gerne ein bisschen mehr über die Funktionsweise von Prozessoren und wie die ganze Hard- und Software an einem solchen Roboter zusammenarbeitet. Ich habe so grundlegende Fragen wie: "Wie bringe ich einen Micro-Controller dazu, den Roboter Asuro an einer Linie entangfahren zu lassen?" Mit der Technischen Spezifikation (320 Seiten!) alleine kann ich jedenfalls nix anfangen.
Einen guten Einstieg habe ich schon unter
http://www.mikrocontroller.net/articles/AVR-Tutorial
gefunden.
Hat jemand weitere gute Literaturempfehlungen, oder Online-Tutorials, die einem (totalen) Anfänger Einblick in die grundlegende Funktionsweise des Prozessors ATMEGA8L-8PC gibt?
Danke schon mal!

Gruß von
Thomas

TobiKa
14.05.2010, 18:18
Hi

Eine Linienverfolgung hat für mich nichts mit der Grundlegenden Funktionsweise eines Controllers zu tun.

Wie auch immer, bei der Linienverfolgung hast du Sensoren (meist Reflexoptpkoppler oder wie beim Asuro einfach ne Lichtquelle und 2 Empfänger) die du in bestimmten Abständen abfragst. Wenn eine Linie da ist, geben sie einen bestimmten Wert zurück, falls nicht muss nachgeregelt werden und immer so weiter.

Preankie
14.05.2010, 20:28
Danke, aber ich glaube ich sollte meine Frage umformulieren. Wahrscheinlich ist mein Anliegen nicht richtig rübergekommen.

:-k

wkrug
15.05.2010, 00:19
Guck Dir mal so ein Prinzipschaltbild von einem Controller an.

Da wirst Du den Rechenkern mit verschiedenen Registern, einen Flash Speicher für das Programm, einen RAM Bereich einen I/O Bereich und diverse Zusatzhardware finden ( A/D Wandler, Interruptquellen, Schnittstellen usw. ).

Der Rest für deinen Linienfolger sind dann diverse Sensoren, mit ihren Anpaßschaltungen und Motorentreiber.

Damit der Roboter der Linie folgt muß ein Programm dafür sorgen, das die Sensorinformationen ausgewertet und die entsprechenden Motoren/ Servos richtig angesteuert werden.

Der Befehlsumfang so eines Controllers ist nicht groß.
Er kann Addieren, Subtrahieren, ( manchmal Multiplizieren ), verschiedene logische Operationen durchführen, bedingte und unbedingte Sprünge machen, Vergleiche anstellen und Bytes zwischen Registern verschieben.

Die Sprache die der Controller versteht ist Maschinencode.
Diesem Code am nächsten ist Assembler, wo jedes Mnemonic genau einen Maschinencode Befehl entspricht.

Man verwendet aber, gerade bei komplexen Aufgaben, Hochsprachen wie BASIC oder "C", bei denen die Befehle in eine Sequenz aus Maschinencode umgewandelt wird.
Diese Hochsprachen sind einfacher zu handeln, als reines Assembler.

Wie Du siehst, gibt es keinen Befehl, der "Folge doch mal der Linie" heisst, sondern das muß alles in einzelne Aufgaben zerlegt werden.

Beispielhafte Programmteile:
Sensorabfrage
Abweichungsermittlung
Steuerbefehleberechnung
Steuerbefehlausgabe
dann kann wieder die Sensorabfrage gemacht werden.

Wenn das nicht das war, was Du wissen wolltest, solltest Du deine Fragen genauer eingrenzen.

Du hast im Prinzip gefragt:
Wie baue ich einen Roboter mit Microcontroller ?
Darauf kann hier im Forum in einem normalen Threat nicht erschöpfend geantwortet werden.

Hättest Du gefragt:
Welche Sensoren kann ich für einen Linienfolger verwenden und wie binde Ich die an einen Microcontroller an?
Wär schon mal ein Teilbereich klar - Eventuell hat jemand für so eine Aufgabe auch schon einen fertigen Code für den Controller.
Such doch mal in Deinem Beispielprogramm danach.

PicNick
15.05.2010, 19:19
Über ein paar grundlegende Dinge eines µC haben ich mich einmal hier ausgelassen
http://www.rn-wissen.de/index.php/Atmel_Controller_Mega16_und_Mega32

josua
16.05.2010, 12:17
hey PicNick,
schön beschrieben :-) aber das thema maschinencode war mir dann doch bissle zu kompliziert!!!

gruß josua