<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Robotik-Projekt</title>
	<atom:link href="http://www.robotik-projekt.de/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.robotik-projekt.de</link>
	<description>Angewandte Robotik von Studenten der HTW Berlin</description>
	<lastBuildDate>Wed, 28 Sep 2011 13:17:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Linie folgen &#8211; Konzepte zur Realisierung</title>
		<link>http://www.robotik-projekt.de/index.php/linie-folgen-konzepte-zur-realisierung/</link>
		<comments>http://www.robotik-projekt.de/index.php/linie-folgen-konzepte-zur-realisierung/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 20:05:35 +0000</pubDate>
		<dc:creator>Benjamin Aunkofer</dc:creator>
				<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Informatik]]></category>

		<guid isPermaLink="false">http://www.robotik-projekt.de/?p=552</guid>
		<description><![CDATA[Der Roboter, basierend auf dem RP6, soll zuerst einer Linie folgen können. Die Linie ist der Führungsbefehl und ferner auch die Interaktionsschnittstelle zwischen Mensch (bzw. menschlicher Anweisung) und dem Roboter. Die Linie ist eine grafische Anweisung an den Roboter. Die Linie soll im ersten Schritt keine Abzweigungen haben und somit keine Entscheidungsfunktion bedingen. Art der [...]]]></description>
			<content:encoded><![CDATA[<p>Der Roboter, basierend auf dem RP6, soll zuerst einer Linie folgen können. Die Linie ist der Führungsbefehl und ferner auch die Interaktionsschnittstelle zwischen Mensch (bzw. menschlicher Anweisung) und dem Roboter. Die Linie ist eine grafische Anweisung an den Roboter.</p>
<p>Die Linie soll im ersten Schritt keine Abzweigungen haben und somit keine Entscheidungsfunktion bedingen.</p>
<h3><strong>Art der Linie</strong></h3>
<p>Es sind denkbar viele Realisierungsmöglichkeiten vorhanden. So könnte  eine linienartige einspurige Schiene gesetzt werden, welche sich mit  Tastern örtlich bestimmen lässt und sich der Roboter so selbst über  diese Bahn lenkt.</p>
<p>Die einfachste Variante der Linie dürfte aber eine schwarze Linie  sein, welche mit einem handelsüblichen Buntstift auf einem hellen  Untergrund gemalt wird. Diese Form der Richtungsanweisung ist ohne Frage  auch sehr flexibel und daher die Form, welche für diesen Roboter  angewendet wird.</p>
<h3><strong>Hardware zur Realisierung</strong></h3>
<p>Es kommen dafür zwei Konzepte in Frage:</p>
<ol>
<li><strong>Primitive Sensoren</strong>, welche abhängig vom Lichteinfach Spannung/Strom oder den elektrischen Widerstand ändern. Drei primitive Sensoren-Elemente stehen hierbei mit unterschiedlichen Tendenzen hinsichtlich Reaktionszeit und Empfindlichkeit in Konkurrenz und kämen für den Einsatz zur Linien-Erkennung in Frage.
<ul>
<li>Photodiode &#8211; Ein Halbleiter, welcher Licht in einen elektrischen Strom umwandelt</li>
</ul>
<ul>
<li>Phototransistor &#8211; Ähnlich der Photodiode, jedoch empfindlicher (vom Prinzip her eine Photodiode mit Verstärker)</li>
</ul>
<ul>
<li>Photowiderstand &#8211; Ändert seinen elektrischen Widerstand bzw. Leitwert empfindlich je nach einfallender Lichtintensität. Der Leitwert erhöht sich mit Zunahme der Lichtintensität.</li>
</ul>
</li>
<li><strong>Kompakte Kamera</strong><br />
Eine Kamera liefert viele  Bildpunkte liefert, welche insgesamt ein Bild ergeben. Somit lassen sich komplexe Linien (grafische Anweisungen) erkennen. Mit einer Kamera betreten wir das Gebiet der digitalen Bildverarbeitung durch eingebettete Systeme, eine sehr umfangreiche eigenständige Disziplin, welche jedoch auch in Rahmen dieses Projekts angekratzt werden darf.</li>
</ol>
<p>Gegenüberstellung beider Konzepte:</p>
<table width="80%">
<tbody>
<tr>
<th></th>
<th>Sensoren</th>
<th>Kamera</th>
</tr>
<tr>
<td>Kosten</td>
<td>eher gering</td>
<td>eher hoch</td>
</tr>
<tr>
<td>Informationsumfang</td>
<td>gering bis mittel</td>
<td>hoch</td>
</tr>
<tr>
<td>Programmieraufwand</td>
<td>gering</td>
<td>hoch</td>
</tr>
<tr>
<td>Reaktionsgeschwindigkeit</td>
<td>sensor-abhängig</td>
<td>kamera-abhängig</td>
</tr>
</tbody>
</table>
<h3>Umsetzung</h3>
<p>Es könnten insgesamt zwei Realisierungsvorschläge aus jeweils beiden Konzepten umgesetzt werden. Als Hauptziel, welches für weiterführende Aufgaben benutzt wird, wird der Umsetzungsvorschlag nach dem 1. Konzept angestrebt. Optional kann noch der Umsetzungsvorschlag basierend auf dem 2. Konzept angeschnitten werden. Dann können beide Verfahren miteinander verglichen werden.</p>
<h4>Umsetzungsvorschlag nach dem 1. Konzept:</h4>
<p>Der RP6 verfügt bereits über einen IR-Sensor und zusätzlich über Photowiderstände, welche jedoch nicht nach unten zum Boden gerichtet sind. Es gibt Ansätze, den Boden mit weiteren LEDs zu bestrahlen und die Reflexionen vom Boden mit Spiegeln zu den Photowiderständen umzuleiten. Die voneinander getrennten Widerstände können so Helligkeitsunterschiede am Boden feststellen.</p>
<table>
<tbody>
<tr>
<td style="text-align: center;"><a href="http://www.robotik-projekt.de/wp-content/uploads/2010/03/IR-Empfaenger.jpg"><img class="alignnone size-medium wp-image-567" title="IR-Empfaenger" src="http://www.robotik-projekt.de/wp-content/uploads/2010/03/IR-Empfaenger-300x199.jpg" alt="" width="300" height="199" /></a></td>
<td style="text-align: center;">- zentraler IR-Empfänger</td>
</tr>
</tbody>
</table>
<table>
<tbody>
<tr>
<td><a href="http://www.robotik-projekt.de/wp-content/uploads/2010/03/LDR.jpg"><img class="size-medium wp-image-568 aligncenter" title="LDR" src="http://www.robotik-projekt.de/wp-content/uploads/2010/03/LDR-300x199.jpg" alt="" width="300" height="199" /></a></td>
<td>- zwei nach seitlich-außen geneigte Photowiderstände</td>
</tr>
</tbody>
</table>
<p style="text-align: left;">Der Roboter-Bausatz ASURO hat ein fest integriertes Konzept mit Phototransistoren. An der Unterseite von ASURO befinden sich zwei Phototransistoren (SFH 300) zwischen einer beleuchtenden roten LED.</p>
<p style="text-align: center;"><a href="http://www.robotik-projekt.de/wp-content/uploads/2010/03/Fototransistor_Asuro.jpg"><img class="size-medium wp-image-566 aligncenter" title="Fototransistor_Asuro" src="http://www.robotik-projekt.de/wp-content/uploads/2010/03/Fototransistor_Asuro-300x199.jpg" alt="" width="300" height="199" /></a></p>
<p style="text-align: left;">Dieser Aufbau beim ASURO kann einfach beim RP6 angewendet werden, indem eine kleine Platine (oder sonstige Steckverbindung) mit der LED und den beiden Phototransistoren vorne an die Unterseite des RP6 montiert wird. Die LED wird dann an einen I/O-Port, die Phototransistoren an jeweils einen ADC-Port (Analog-Digital-Converter) des AtMega32-Controllers angeschlossen.</p>
<p style="text-align: left;">Bei der Programmierung des Programms zur Linienverfolgung kann dann an die vielen bestehenden Lösungen beim ASURO angelehnt werden und gilt damit als recht einfach.</p>
<h4>Umsetzungsvorschlag nach dem 2. Konzept:</h4>
<p>Die Erkennung der Linie mit Hilfe von Bildpunkten von einer digitalen Kamera ist weit komplexer, dafür bieten diese jedoch auch weit bessere Möglichkeiten zur Orientierung. Die Genauigkeits-Ausbeute ist dann weniger Frage der Kamera (natürlich spielt diese ebenfalls eine Rolle), sondern der Software-Programmierung in der Bilderkennung.</p>
<p>Für die Belange innerhalb des Projektes steht die Programmierung im Rahmen der Bildverarbeitung nicht im Vordergrund, so dass eine kleine Kamera ausreicht. Eine kleine Kamera, welche Grauwerte liefern kann, ist ausreichend.</p>
<p style="text-align: center;"><a href="http://www.robotik-projekt.de/wp-content/uploads/2010/03/kamera.jpg"><img class="size-medium wp-image-580 aligncenter" title="kamera" src="http://www.robotik-projekt.de/wp-content/uploads/2010/03/kamera-300x199.jpg" alt="" width="300" height="199" /></a></p>
<p style="text-align: left;">
]]></content:encoded>
			<wfw:commentRss>http://www.robotik-projekt.de/index.php/linie-folgen-konzepte-zur-realisierung/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WinAVR</title>
		<link>http://www.robotik-projekt.de/index.php/winavr/</link>
		<comments>http://www.robotik-projekt.de/index.php/winavr/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 14:01:28 +0000</pubDate>
		<dc:creator>Benjamin Aunkofer</dc:creator>
				<category><![CDATA[Informatik]]></category>

		<guid isPermaLink="false">http://www.robotik-projekt.de/?p=546</guid>
		<description><![CDATA[WinAVR ist der Compiler, welcher für die Erstellung der Ausgabedateien, die auf dem RP6 verarbeitet werden können, verantwortlich ist. WinAVR muss in AVR Studio eingebunden werden. Die Installation von WinAVR ist sehr einfach und sollte möglichst vor der Installation von AVR Studio geschehen (es funktioniert in der Regel aber auch der umgekehrte Weg). Zu Problemen [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://winavr.sourceforge.net/" target="_blank">WinAVR</a> ist der Compiler, welcher für die Erstellung der Ausgabedateien, die auf dem RP6 verarbeitet werden können, verantwortlich ist. WinAVR muss in AVR Studio eingebunden werden. Die Installation von WinAVR ist sehr einfach und sollte möglichst vor der Installation von AVR Studio geschehen (es funktioniert in der Regel aber auch der umgekehrte Weg).</p>
<p>Zu Problemen kommt es bei 64bit-Systemen (Window Vista 64Bit und Windows 7 64Bit), wenn WinAVR nicht in das Default-Verzeichnis direkt unter dem Systemlaufwerk (typischerweise C:\) installiert wird, sondern &#8211; wie für 32bit-Anwendungen gewohnt &#8211; im Verzeichnis &#8220;Program Files (x86)&#8221;.</p>
<p>WinAVR und AVR Studio machen hier Probleme, wenn das Installationsverzeichnis von WinAVR Leerzeichen und/oder Sonderzeichen enthält.</p>
<p>Beim kompilieren mit AVR Studio unter Verwendung von WinAVR macht sich dann folgende Fehlermeldung bemerkbar:</p>
<blockquote><p>make: Interrupt/Exception caught (code =  0xc00000fd, addr = 0x4217b3</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.robotik-projekt.de/index.php/winavr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programmierung &#8211; Einrichten von AVR-Studio</title>
		<link>http://www.robotik-projekt.de/index.php/programmierung-einrichten-von-avr-studio/</link>
		<comments>http://www.robotik-projekt.de/index.php/programmierung-einrichten-von-avr-studio/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 20:39:24 +0000</pubDate>
		<dc:creator>Benjamin Aunkofer</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://www.robotik-projekt.de/?p=509</guid>
		<description><![CDATA[Um den RP6 programmieren zu können, sind einige Vorbereitungen nötig, denn es wird eine Entwicklungsumgebung benötigt. Eine Entwicklungsumgebung ist ein Softwarepaket, welches in der Regel Editor, Präprozessor, Linker, Compiler und einen bestimmten Grundumfang von Standardbibliotheken mitbringt. Die Programmierung kann mit Software wie Eclipse, diverser C/C++ -Entwicklungsumgebungen, Notepad2 und vieler weiterer Software erfolgen. Wir nutzen für [...]]]></description>
			<content:encoded><![CDATA[<p>Um den RP6 programmieren zu können, sind einige Vorbereitungen nötig, denn es wird eine Entwicklungsumgebung benötigt. Eine Entwicklungsumgebung ist ein Softwarepaket, welches in der Regel Editor, Präprozessor, Linker, Compiler und einen bestimmten Grundumfang von Standardbibliotheken mitbringt.</p>
<p>Die Programmierung kann mit Software wie <a href="http://www.eclipse.org/">Eclipse</a>, diverser C/C++ -Entwicklungsumgebungen, Notepad2 und vieler weiterer Software erfolgen.</p>
<p>Wir nutzen für die Programmierung <a href="http://www.atmel.com/dyn/Products/tools_card.asp?tool_id=2725">AVR Studio</a> in der 4. Version. AVR Studio ist kostenlos aber registrierungspflichtig!</p>
<p style="text-align: center;"><a href="http://www.robotik-projekt.de/wp-content/uploads/2009/11/avrStudio.PNG"><img class="aligncenter" src="http://www.robotik-projekt.de/wp-content/uploads/2009/11/avrStudio.PNG" alt="" width="538" height="407" /></a></p>
<p style="text-align: left;">Um <a title="WinAVR" href="http://winavr.sourceforge.net/">AVR Studio</a> erfolgreich verwenden zu können, muss das Programm WinAVR  installiert sein! WinAVR ist der Compiler, auf welchen AVR Studio zugreift.</p>
<p><strong>Einrichten von AVR Studio</strong></p>
<p>Damit AVR Studio gleich so funktioniert, dass man mit der Programmierung des RP6 losstarten kann, muss man einige Schritte beachten.</p>
<p>AVR-Studio bedient sich einer &#8220;makefile&#8221;, welche AVR Studio selbst generiert, jedoch auch selbst gestaltet werden kann. Auf diese makefile kommen wir gleich zurück.</p>
<p>Auf den RP6 wird über den Bootloader eine HEX-Datei (Inhalte nur im hexadezimalen Bereich) gespielt, programmieren tun wir jedoch eine c-File in der Programmiersprache C.</p>
<p>Ausgang ist eine Hauptdatei, welche Quellcode der Programmiersprache C beinhaltet und mit der Extension .c endet, in unserem Beispiel Start.c</p>
<p>In diese Start.c kommt zu Beginn folgender Inhalt:</p>
<blockquote><p>#include &#8220;RP6RobotBaseLib.h&#8221;               // The RP6 Robot Base Library.</p>
<p>// Main-part</p>
<p>int main(void)</p>
<p>{</p>
<p>initRobotBase();              // Always call this first! The Processor will not work</p>
<p>return 0;                            // Main-function always needs a return value!</p>
<p>}</p></blockquote>
<p><span id="more-509"></span></p>
<p>Dieses Programm könnte kompiliert, hexadezimal dargestellt und über den Bootloader auf den RP6 übertragen werden, der Roboter würde dann genau nichts tun, außer sich zu initialisieren mit initRobotBase() und sein Programm zu beenden mit return 0.</p>
<p>Würde man die Funktion initRobotBase() und die Bekanntmachung von RP6RobotBaseLib.h weglassen, könnte man das Programm ohne weiteres Zutun kompilieren (nur könnte der RP6 noch nichts damit anfangen).</p>
<p>Da wir aber die initRobotBase() Funktion und noch viele weitere Funktionen, welche in der RP6RobotBaseLib.h definiert sind, benötigen, müssen wir diese RP6RobotBaseLib.h einbinden (inkludieren). Dies wird vorhergehend mit #include &#8220;RP6RobotBaseLib.h&#8221; getan.</p>
<p>Die RP6RobotBaseLib.h benötigt wiederum die RP6uart.h, RP6Config.h und die Rp6RobotBase.h. Diese Dateien müssen wir unserem Projekt bekannt machen.</p>
<p>Die Header-Dateien (.h) dienen der Definition (Bekanntmachung) der Funktionen, die in den zugehörigen Quelldateien (.c) vorzufinden sind! Das heißt, dass es zu jeder Header-Datei auch eine Quelldatei gibt.</p>
<p>Übrigens benutzen unsere Header-Dateien wiederum Header-Dateien, welche wir hier nicht in unser Projekt hinzufügen müssen, sondern weil die Entwicklungsumgebung AVR Studio diese standardmäßig bereitstellt, z. B. die IO.h (definiert Funktionen rund um die Ein-/Ausgabe von Daten).</p>
<p>Zu erst einmal müssen wir ein Projekt starten. Der ProjectWizard ist leicht in der Menüleiste zu finden und poppt auch gleich nach Programmstart automatisch auf. Hier wird ein neues Projekt eingerichtet, unser Projekt heißt beispielsweise einfach &#8220;Start&#8221; (für zukünftige Projekte sollten klar formulierte Namen herhalten, nachdenken lohnt sich!).</p>
<p><img style="border: 0px initial initial;" src="http://www.robotik-projekt.de/wp-content/uploads/2009/11/avrStudioProject.PNG" alt="" width="607" height="375" /></p>
<p>Der RP6 verfügt über ein ATmega32 Mikrocontroller von Atmel, das Gehirn des RP6. Der Compiler muss dies wissen (bzw. der richtige Compiler muss gewählt werden). Welche &#8220;Debug Platform&#8221; verwendet wird, ist eher Geschmackssache und an dieser Stelle nicht so wichtig, hauptsache das &#8220;Device&#8221; ist der ATmega32.</p>
<p><img style="border: 0px initial initial;" src="http://www.robotik-projekt.de/wp-content/uploads/2009/11/avrStudioATmega32.PNG" alt="" width="607" height="375" /></p>
<p>Nun steht das Project und es findet sich eine Datei mit Namen des Projekts unter den Quelldateien (Source Files), im Fall dieses Beispiels also Start.c</p>
<p>Es fehlen jedoch noch die Header-Dateien und die dazugehörigen Quelldateien. Diese müssen vorliegen. Bekommen kann man diese z. B. aus den Beispielprogrammen für den RP6 (im Verzeichnis RP6Base_Examples der mitgelieferten CD). Am einfachsten ist das Hinzufügen, indem man die Header-Dateien (.h) mit der Maus markiert und dann in den AVR GCC Tree (i. d. R. auf der linken Seite) in das Verzeichnis &#8220;Header Files&#8221; im AVR Studio zieht. Das Selbe tut man dann mit den Quelldateien (.c), jedoch in das Verzeichnis &#8220;Source Files&#8221; im AVR Studio.</p>
<p>Um Problemen am Anfang aus dem Weg zu gehen, empfiehlt es sich, die nötigen Dateien alle beisammen im Projektordner zu haben (so auch in diesem Beispiel). Auf Dauer ist es jedoch geschickter, die Dateien, welche man zwar benötigt aber nicht bearbeitet in einem extra angelegten Verzeichnis auf zu bewahren, dann muss man dieses Verzeichnis jedoch bei AVR Studio bekannt machen und sicherstellen, dass dies auch ins Makefile eingetragen wird (ggf. manuell nachtragen).</p>
<p><img class="alignnone" src="http://www.robotik-projekt.de/wp-content/uploads/2009/11/avrStudioTree.PNG" alt="" width="258" height="533" /></p>
<p>Die Makefile legt AVR Studio sich wie gesagt standardmäßig an, unter (in der Menüleiste) &#8220;Project&#8221; -&gt; &#8220;Configuration Options&#8221; kann jedoch eine eigene Makefile angegeben werden.</p>
<p>Man kann nun das Programm (den obigen Quellcode oder ein Beispielprogramm von der RP6 CD) kompilieren, in dem man im AVR Studio im Menü auf &#8220;<strong>Build</strong>&#8221; klickt und danach, sofern nicht bereits Fehlermeldungen erscheinen, nochmals auf &#8220;<strong>Compile</strong>&#8220;.</p>
<p>Wenn keine Fehler im Programm-Quellcode vorliegen, werden nun Dateien erzeugt, darunter die HEX-Datei mit hexadezimalem Inhalt. Diese Datei ist von besonderer Bedeutung, denn diese können wir über den Bootloader und dem USB-Anschluss zum RP6 laden.</p>
<p>Nachfolgend die <strong>Makefile</strong>, die für dieses Beispiel verwendet wurde. Diese kann man als Orientierung verwenden, falls die automatisch erzeugte Makefile von AVR Studio nicht funktioniert.</p>
<p>###############################################################################<br />
# Makefile for the project Start<br />
###############################################################################</p>
<p>## General Flags<br />
PROJECT = Start<br />
MCU = atmega32<br />
TARGET = Start.elf<br />
CC = avr-gcc</p>
<p>CPP = avr-g++</p>
<p>## Options common to compile, link and assembly rules<br />
COMMON = -mmcu=$(MCU)</p>
<p>## Compile options common for all C compilation units.<br />
CFLAGS = $(COMMON)<br />
CFLAGS += -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums<br />
CFLAGS += -MD -MP -MT $(*F).o -MF dep/$(@F).d</p>
<p>## Assembly specific flags<br />
ASMFLAGS = $(COMMON)<br />
ASMFLAGS += $(CFLAGS)<br />
ASMFLAGS += -x assembler-with-cpp -Wa,-gdwarf2</p>
<p>## Linker flags<br />
LDFLAGS = $(COMMON)<br />
LDFLAGS +=  -Wl,-Map=Start.map</p>
<p>## Intel Hex file production flags<br />
HEX_FLASH_FLAGS = -R .eeprom -R .fuse -R .lock -R .signature</p>
<p>HEX_EEPROM_FLAGS = -j .eeprom<br />
HEX_EEPROM_FLAGS += &#8211;set-section-flags=.eeprom=&#8221;alloc,load&#8221;<br />
HEX_EEPROM_FLAGS += &#8211;change-section-lma .eeprom=0 &#8211;no-change-warnings</p>
<p>## Objects that must be built in order to link<br />
OBJECTS = Start.o RP6I2CmasterTWI.o RP6uart.o RP6RobotBaseLib.o</p>
<p>## Objects explicitly added by the user<br />
LINKONLYOBJECTS =</p>
<p>## Build<br />
all: $(TARGET) Start.hex Start.eep Start.lss size</p>
<p>## Compile<br />
Start.o: ../Start.c<br />
$(CC) $(INCLUDES) $(CFLAGS) -c  $&lt;</p>
<p>RP6I2CmasterTWI.o: ../RP6I2CmasterTWI.c<br />
$(CC) $(INCLUDES) $(CFLAGS) -c  $&lt;</p>
<p>RP6uart.o: ../RP6uart.c<br />
$(CC) $(INCLUDES) $(CFLAGS) -c  $&lt;</p>
<p>RP6RobotBaseLib.o: ../RP6RobotBaseLib.c<br />
$(CC) $(INCLUDES) $(CFLAGS) -c  $&lt;</p>
<p>##Link<br />
$(TARGET): $(OBJECTS)<br />
$(CC) $(LDFLAGS) $(OBJECTS) $(LINKONLYOBJECTS) $(LIBDIRS) $(LIBS) -o $(TARGET)</p>
<p>%.hex: $(TARGET)<br />
avr-objcopy -O ihex $(HEX_FLASH_FLAGS)  $&lt; $@</p>
<p>%.eep: $(TARGET)<br />
-avr-objcopy $(HEX_EEPROM_FLAGS) -O ihex $&lt; $@ || exit 0</p>
<p>%.lss: $(TARGET)<br />
avr-objdump -h -S $&lt; &gt; $@</p>
<p>size: ${TARGET}<br />
@echo<br />
@avr-size -C &#8211;mcu=${MCU} ${TARGET}</p>
<p>## Clean target<br />
.PHONY: clean<br />
clean:<br />
-rm -rf $(OBJECTS) Start.elf dep/* Start.hex Start.eep Start.lss Start.map</p>
<p>## Other dependencies<br />
-include $(shell mkdir dep 2&gt;/dev/null) $(wildcard dep/*)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.robotik-projekt.de/index.php/programmierung-einrichten-von-avr-studio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Gelenk&#8221; &#8211; Grundlagen</title>
		<link>http://www.robotik-projekt.de/index.php/gelenk-grundlagen/</link>
		<comments>http://www.robotik-projekt.de/index.php/gelenk-grundlagen/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 08:17:32 +0000</pubDate>
		<dc:creator>Daniela Meyer</dc:creator>
				<category><![CDATA[Mechanik]]></category>

		<guid isPermaLink="false">http://www.robotik-projekt.de/?p=401</guid>
		<description><![CDATA[Ein Gelenk ist in erster Linie eine bewegliche Verbindung zwischen mindestens zwei festen Körpernm bzw. Maschinenelementen. Ähnlich wie bei einem Lager dient es zur Fixierung einer Konstruktion und wird über den Freiheitsgrad weiter definiert. Die Funtion eines Gelenkes erfährt jeder durch den eigenen Körper.  Das Strecken und Anwinkeln, sowie das Drehen des (Unter-)Armes wird durch [...]]]></description>
			<content:encoded><![CDATA[<p>Ein Gelenk ist in erster Linie eine bewegliche Verbindung zwischen mindestens zwei festen Körpernm bzw. Maschinenelementen. Ähnlich wie bei einem Lager dient es zur Fixierung einer Konstruktion und wird über den Freiheitsgrad weiter definiert.</p>
<p>Die Funtion eines Gelenkes erfährt jeder durch den eigenen Körper.  Das Strecken und Anwinkeln, sowie das Drehen des (Unter-)Armes wird durch den Ellenbogen ermöglicht. Hier fungiert der Ellenbogen als Gelenk, genauer als ein zusammengestztes Gelenk. Der Unterarm teilt sich sich in Elle und Speiche und besitzt daher zwei getrennte Verbindungen zum Oberarm. Das Oberarm-Ellen-Gelenk dient als <strong><span style="color: #000000;">Schaniergelenk </span></strong>und das Oberarm-Speichen-Gelenk als <strong>Kugelgelenk</strong>. In der Technik können bestimmte Gelenke im Gegensatz zu organischen Gelenken auch  translatorische (Schubgelenk, Freiheitsgrad = 1) Bewegungen zulassen.</p>
<p>Ein Beispiel für alle drei Bewegungsrichtungen, also drei Freiheitsgraden, ist das <strong>Kugelgelenk.</strong> Es ist durch einen kugelähnlichen Gelenkkopf gekennzeichnet. Der Kopf ermöglich eine Bewegung in alle Richtungen, läßt aber keine translatorischen Bewegung zu.</p>
<div>
<p>Ein Gelenk soll also nicht alle inneren Kräfte übertragen, sondern einer bestimmten Kraft nachgeben. So kann eine Beweglichkeit in einer Konstruktion bzw. in einem Tragwerk erreicht werden.</p>
<p><span style="text-decoration: underline;"><strong>Innere Kräfte</strong>, die bestimmte Gelenke nicht übertragen sollen:</span></p>
<p><span style="color: #008000;"><strong>Moment</strong></span>: Momente sind die aus gegenläufigen Kräften mit Hebel resultierende Drehkraft</p>
<p><span style="color: #ff6600;"><strong>Querkraft</strong></span>: Die Querkraft wirkt vertikal aus Sicht des Koordinatensystems, daher wird sie auch Vertikalkraft genannt</p>
<p><span style="color: #008080;"><strong>Normalkraft</strong></span>: Die Normalkraft wirkt senkrecht zur Querkraft, also horizontal.</p>
<p><span id="more-88"> </span></p>
<h2 style="text-align: center;"><span style="color: #008000;"><strong>Momentgelenk </strong></span></h2>
<p>Das <strong>Momentgelenk</strong> überträgt am Knotenpunkt die <strong>Querkraft</strong> und die <strong>Normalkraft</strong>. <strong>Momente </strong>werden nicht übertragen.</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.der-wirtschaftsingenieur.de/bilder/gelenk1.JPG" alt="Momentengelenk" width="232" height="213" /></p>
<p>An den Stäben können die Quer- und Normalkraft übertragen werden, wenn ihre Wirkungslinie den Knotenpunkt (Kugelgelenk-Zentrum) schneidet. Wirkt eine Kraft auf einen Stab ohne dass die Wirkungslinie den Knotenpunkt schneidet, wird der Stab zum Hebel und setzt die Kraft zum Moment um, welches nicht übertragen wird.</p>
<p>Momentgelenke können z.B. Scharniere sein. Scharniere übertragen jedoch nicht alle Momente, wie es etwa ein Kugelgelenk tut.</p>
<h2 style="text-align: center;"><strong> <span style="color: #ff6600;">Querkraftgelenk</span></strong></h2>
<p>Das <strong>Querkraftgelenk</strong> überträgt die <strong>Normalkraft</strong> und auch <strong>Momente</strong>. Auf eine einwirkende <strong>Querkraft</strong> (Vertikalkraft) weicht es jedoch aus.</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.der-wirtschaftsingenieur.de/bilder/gelenk2.JPG" alt="Querkraftgelenk" width="314" height="150" /></p>
<h2 style="text-align: center;"><span style="color: #008080;"><strong>Normalkraftgelenk</strong></span></h2>
<p>Das Gegenstück zum Querkraftgelenk ist das <strong>Normalkraftgelenk</strong>, welches zwar eine <strong>Querkraft</strong> und auch <strong>Momente</strong> überträgt, einer <strong>Normalkraft</strong> jedoch ausweicht.</p>
<p>Beispiel: Zwei Stäbe sind mit einer Hülse verbunden.</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.der-wirtschaftsingenieur.de/bilder/gelenk3.JPG" alt="Normalkraftgelenk" width="381" height="137" /></p>
<h4><strong>Hinweise:</strong></h4>
<p>Die Gelenknamen deuten daraufhin, welche Kraft <strong>nicht</strong> übertragen wird (ein Momentgelenk überträgt kein Moment etc.).</p>
<p>In der Praxis weichen Gelenke auf eine bestimmte Kraft nicht ohne Energieverlust aus, da jedes Gelenk einen Eigenwiderstand (Reibung etc.) hat.</p>
<p>Die Gelenke sind in ihrem Raum zur Kraftausweichung i.d.R. beschränkt. So ist beispielsweise ein Normalkraftgelenk so gebaut, dass ein Stab durch zu weite Entfernung nicht aus der Hülse fallen kann. Ab einer bestimmten Entfernung trifft es auf einen starken Widerstand, so dass ab dieser Entfernung die weitere Kraft (einseitig) übertragen wird. Wird der Stab in die Hülse geschoben, wird es auf eine Begrenzung stoßen und die weitere Kraft (einseitig) übertragen.</p></div>
<p><span style="text-decoration: underline;"><strong><br />
</strong></span></p>
<p><span style="text-decoration: underline;"><strong><br />
</strong></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.robotik-projekt.de/index.php/gelenk-grundlagen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lager</title>
		<link>http://www.robotik-projekt.de/index.php/lager/</link>
		<comments>http://www.robotik-projekt.de/index.php/lager/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 09:10:17 +0000</pubDate>
		<dc:creator>Daniela Meyer</dc:creator>
				<category><![CDATA[Mechanik]]></category>

		<guid isPermaLink="false">http://www.robotik-projekt.de/?p=312</guid>
		<description><![CDATA[In diesen Artikel betrachten wir die Lagerung im Sinne der technischen Mechanik und das Lager als verbindendes Maschinenelement. Technische Mechanik Hier werden die Lager je nach Lagerform und den jeweiligen Freiheitsgrad unterschieden. Der Freiheitsgrad gibt an, in welche Richtungen sich ein Körper bewegen kann. Befindet sich ein Körper in einer Ebene, wo er frei beweglich [...]]]></description>
			<content:encoded><![CDATA[<p>In diesen Artikel betrachten wir die Lagerung im Sinne der <span style="color: #993300;">technischen Mechanik</span> und das Lager als verbindendes <span style="color: #993300;">Maschinenelement</span>.</p>
<p style="text-align: center;"><strong><span style="text-decoration: underline;">Technische Mechanik</span></strong></p>
<p>Hier werden die Lager je nach Lagerform und den jeweiligen Freiheitsgrad unterschieden. Der Freiheitsgrad gibt an, in welche Richtungen sich ein Körper bewegen kann. Befindet sich ein Körper in einer Ebene, wo er frei beweglich ist, so besitzt dieser drei Freiheitsgrade. Er kann in zwei Richtungen translatorische Bewegungen ausführen und hat die Möglichkeit zu rotieren.</p>
<p style="text-align: center;"><img class="size-full wp-image-448 aligncenter" title="Stange" src="http://www.robotik-projekt.de/wp-content/uploads/2009/10/Stange.jpg" alt="Stange" width="233" height="188" /></p>
<p>Je nach Anzahl der Freiheitsgrade wird unterschieden in:</p>
<ul>
<li><span style="color: #ff0000;">einwertiges Lager</span> (kann nur eine      Kraft übertragen, z.B. Loslager)</li>
<li><span style="color: #ff0000;">zweiwertiges Lager</span> (kann zwei      Kräfte übertragen, z.B. Festlager)</li>
<li><span style="color: #ff0000;">dreiwertiges Lager </span> (kann drei      Kräfte übertragen, z.B. Einspannung)</li>
</ul>
<p>Das Lager ist demnach eine Möglichkeit, verschiedene Körper (Konstruktionen) in einer bestimmten/gewünschten Lage zu halten. Hierbei werden Reaktionskräfte freigesetzt, welche als Lagerreaktionen bezeichnet werden. Durch diese wird die Bewegungsfreiheit eingeschränkt oder sogar verhindert. Je nach Wertigkeit des Lagers kann eine translatorische Bewegung oder Rotation reduziert/vermieden werden. Ausgehend vom Lager wirkt eine Kraft, die die translatorische Bewegung behindert, sowie ein Moment, welches eine Drehung verhindern würde.</p>
<table style="height: 188px;" border="1" width="404" align="center">
<tbody>
<tr>
<th>Loslager</th>
<th>Festlager</th>
<th>Einspannung</th>
</tr>
<tr>
<td>fixiert <span style="text-decoration: underline;">einen </span>Freiheitsgrad</td>
<td>fixiert <span style="text-decoration: underline;">zwei </span>Freiheitsgrade</td>
<td style="text-align: left;">fixiert <span style="text-decoration: underline;">alle </span>Freiheitsgrade</td>
</tr>
<tr>
<td>keine Momentenübertragung</td>
<td>keine Momentenübertragung</td>
<td>Momente werden übertragen</td>
</tr>
</tbody>
</table>
<p><img class="size-medium wp-image-445 alignleft" title="Symbole Lager" src="http://www.robotik-projekt.de/wp-content/uploads/2009/10/Symbole-Lager1-300x156.jpg" alt="Symbole Lager" width="300" height="156" /></p>
<p style="text-align: center;"><strong><span style="text-decoration: underline;">Maschinenelement</span></strong></p>
<p>Hier steht das Aufnehmen und Ableiten von Kräften, sowie das Begrenzen für Bewegungen im Vordergrund. Es werden zwei Lagertypen unterschieden:</p>
<p style="text-align: center;"><strong>Gleitlager</strong></p>
<p>Das Gleitlager ermöglicht zwei Körpern (Maschinenelemente) sich aneinander vorbei zu bewegen, sodass eine Gleitbewegung realisierbar ist. Entweder durch direkten Kontakt der Oberflächen oder durch einen trennenden Schmierfilm (Fett, Öl). Weichmetalllager, welche z.B. aus Kupfer oder Zinn bestehen, wirken selbstschmierend. Gleitlager, die aus sehr harten und reibungsarmen Werkstoffen gefertigt worden sind, funktionieren schmierungsfrei.</p>
<p style="text-align: center;"><strong>Wälzlager</strong></p>
<p>Das Wälzlager besteht aus einem Innenring und Außenring, wo sich sogenannte Wälzkörper zwischen befinden. Der Innenring ist z.B. durch Kugeln von dem Außenring getrennt (Kugellager). Die Kugeln sind durch einen Wälzkörperkäfig mit einander verbunden und bewirken eine Wälzbewegung. Dieser Käfig verhindert, dass sich die Wälzkörper berühren oder eine Reibung entsteht. Weitere Wälzkörper sind Zylinder, Kegel, Nadeln und Tonnen.</p>
<p style="text-align: center;"><strong>Radial- und Axiallager</strong></p>
<p>Ebenfalls gibt es eine Unterscheidung der beiden Lagertypen in Radial- und Axiallager. Die Kategorisierung erfolgt je nach Einwirkung der Kräfte. Ein Radiallager nimmt Kräfte, die radial, also senkrecht zur Drehachse wirken, auf und ein Axiallager die, die in Richtung der Achse ausgeübt werden. Kann ein Lager beide Kräfte aufnehmen, so wird es als Radiaxlager bezeichnet.</p>
<p><strong> </strong></p>
<p><strong> </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.robotik-projekt.de/index.php/lager/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>DC-Motor</title>
		<link>http://www.robotik-projekt.de/index.php/dc-motor/</link>
		<comments>http://www.robotik-projekt.de/index.php/dc-motor/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 08:36:59 +0000</pubDate>
		<dc:creator>Daniela Meyer</dc:creator>
				<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Mechanik]]></category>

		<guid isPermaLink="false">http://www.robotik-projekt.de/?p=267</guid>
		<description><![CDATA[DC ist die Abkürzung vom englischen direct current und bedeutet Gleichstrom. Demnach ist die deutsche Bedeutung für DC-Motor &#8220;Gleichstrommotor&#8221;. Ein Gleichstrommotor ist ein Elektromotor und wird mit Gleichstrom betrieben. Gleichstrom → zeitlich nicht veränderlicher Strom, wobei dessen Stärke und Richtung gleich bleibt  [Formelzeichen I] Aufbau und Funktionsweise Der DC-Motor ist auf dem Prinzip, dass sich [...]]]></description>
			<content:encoded><![CDATA[<p><strong>DC</strong> ist die Abkürzung vom englischen <strong><em>direct current</em></strong> und bedeutet <strong><em>Gleichstrom</em></strong><em>. </em>Demnach ist die deutsche Bedeutung für DC-Motor &#8220;Gleichstrommotor&#8221;.</p>
<p>Ein Gleichstrommotor ist ein Elektromotor und wird mit Gleichstrom betrieben.</p>
<p style="text-align: center;"><strong><span style="text-decoration: underline;">Gleichstrom</span></strong></p>
<p style="text-align: center;">→ zeitlich nicht veränderlicher Strom, wobei dessen Stärke und Richtung gleich bleibt  [Formelzeichen I]</p>
<p style="text-align: center;"><strong>Aufbau und Funktionsweise</strong></p>
<p>Der DC-Motor ist auf dem Prinzip, dass sich ungleichnamige Pole zweier Magneten anziehen und gleichnamige Pole sich abstoßen, aufgebaut. Die beiden Hauptbestandteile sind der Stator und der Rotor. Der Stator ist ein festes und unbewegliches Teil, wo hingegen der Rotor ein drehbar gelagertes Teil ist. Der Stator besteht aus einem festen Permanentmagneten und der Rotor ist ein rotierender Elektromagnet. Wird der typische Aufbau eines Permanentmagneten (Stator) betrachtet, befindet sich der Elektromagnet (Rotor) im Inneren des Stators. Auf dem Rotor werden eine oder mehrere Spulen montiert, sodass diese, wenn eine Spannung angelegt wird, ein Magnetfeld erzeugen. Ein neues Magnetfeld im bereits vorhandenen Magnetfeld des Permanentmagnetes entsteht. Je nach Polung des vom Elektromagneten erzeugten Magnetfelds kann er sich in die eine oder andere Richtung drehen. Die Umpolung wird von einem Kommutator, auch Stromwender genannt, ausgeführt.</p>
<p><img class="aligncenter size-full wp-image-393" title="Magnet" src="http://www.robotik-projekt.de/wp-content/uploads/2009/10/Magnet.jpg" alt="Magnet" width="806" height="421" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.robotik-projekt.de/index.php/dc-motor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Projekt-geeignete Basis</title>
		<link>http://www.robotik-projekt.de/index.php/projekt-geeignete-basis/</link>
		<comments>http://www.robotik-projekt.de/index.php/projekt-geeignete-basis/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 13:41:03 +0000</pubDate>
		<dc:creator>Benjamin Aunkofer</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://www.robotik-projekt.de/?p=305</guid>
		<description><![CDATA[Ziel des Projekts ist es, einen Roboter mit Greifarm zu realisieren, welcher autonom eine Aufgabe ausführen kann. (Siehe Projektvorstellung) Das Rad soll aber nicht komplett neuerfunden werden, daher stimmen wir über einen Bausatz ab, der eine Basis bietet, welche technisch im Rahmen des Projekts erweitert wird, um das Projektziel zu erreichen. Diese Basis soll bereits fahren [...]]]></description>
			<content:encoded><![CDATA[<p>Ziel des Projekts ist es, einen <strong>Roboter mit Greifarm</strong> zu realisieren, welcher autonom eine Aufgabe ausführen kann. (Siehe <a title="Projektidee" href="http://www.robotik-projekt.de/index.php/vorstellung-projektidee/" target="_blank">Projektvorstellung</a>)</p>
<p>Das Rad soll aber nicht komplett neuerfunden werden, daher stimmen wir über einen Bausatz ab, der eine Basis bietet, welche technisch im Rahmen des Projekts erweitert wird, um das Projektziel zu erreichen. Diese Basis soll bereits fahren können, jedoch noch über keine Intelligenz und keine mechanischen Vorrichtungen (also kein Greifarm), sondern ausschließlich über die Möglichkeit der Fortbewegung verfügen.</p>
<h3><strong><span style="text-decoration: underline;">Was muss die Basis können?</span></strong></h3>
<p>Es muss bereits über die mechanischen und elektronischen Bauteile verfügen, um eine Fortbewegung des Roboters im Raum zu ermöglichen. Zudem soll bereits die Basis programmierbar sein (also über mindestens einen Mikrocontroller verfügen).</p>
<h3><strong><span style="text-decoration: underline;">Gängige Bausätze</span></strong></h3>
<p>Es gibt verschiedene Bausätze und fertig montierte Roboterbasis-Konstruktionen zu kaufen. Einige davon, welche für ein Projekt gegebener Größe in Frage kommen, werden kurz vorgestellt:</p>
<h3><strong>ASURO</strong></h3>
<p>ASURO (<em>Another Small and Unique Robot from Oberpfaffenhofen</em>) ist ein Bausatz des Deutschen Zentrums für Luft und Raumfahrt, welcher über zwei Räder und einige Sensoren (Lichtsensoren und Taster für die Registrierung der Umwelt sowie Lichtschranken für die Messung der Raddrehzahlen) verfügt.</p>
<p>ASURO wird i. d. R. nicht als Fertig-Bausatz geliefert und muss von den Studenten zum fertigen Roboter montiert werden, was den didaktischen Wert des Bausatzes erhöht.</p>
<p>ASURO verfügt über einen 8Bit-Mikrocontroller (ATmega8 AVR) der Firma Atmel mit einem RISC-Prozessor. Dieser Mikrocontroller ist sehr verbreitet, im Internet gut dokumentiert und dementsprechend einfach programmierbar. Für mechanische Aufbauten dürfte die Plattform des ASURO etwas zu klein sein, ließe sich aber möglicherweise leicht ertweitern bzw. vergrößern. <span style="color: #ff0000;">Für ein Projekt mit Konstruktion und Steuerung eines Greifarms scheidet ASURO daher aus.</span></p>
<p>Projekte, für welche ASURO besonders geeignet ist: Einfache Aufgaben wie das Verfolgen einer Linie bis hin zur Schwarmintelligenz-Entwicklung.</p>
<h3><strong>YETI YT-3000</strong></h3>
<p>YETI ist der einzige kostengünstige, leicht lieferbare Roboter, welcher nicht auf Räder als Fortbewegungsmittel zurückgreift, sondern eine Art &#8220;Beine&#8221; ansteuern lassen kann.</p>
<p>YETI wird i. d. R. nicht als Fertig-Bausatz geliefert und muss von den Studenten zum fertigen Roboter montiert werden, was den didaktischen Wert des Bausatzes erhöht.</p>
<p>YETI ist hinsichtlich der Elektronik leicht erweiterbar und verwendet den gleichen Mikrocontroller, wie auch ASURO (ATmega8). Mechanische Aufbauten wie ein Roboterarm etc. sind mit YETI als Basis nur sehr schwer zu realisieren, da YETI einen sehr weit vom Boden entfernten Schwerpunkt hat. <span style="color: #ff0000;">Für ein Projekt mit Konstruktion und Steuerung eines Greifarms scheidet YETI daher aus.</span></p>
<p>Projekte, für welche YETI besonders geeignet ist: Einfache Gehbewegung bis hin zum Hüpfen und Tanzen z. B. nach akustischen oder optischen Mustern.</p>
<h3>Pro-Bot 128</h3>
<p>Pro-Bot 128 ist ein Roboterbausatz mit zwei Rädern und ähnelt vom Aufbau her besonders dem ASURO, verfügt jedoch über einen ATmega128 Mikrocontroller (128Bit-Microcontroller der Firma Atmel) und bietet, da mehrstöckig aufgebaut, mehr Fläche für Erweiterungen.</p>
<p>Der Pro-Bot 128 wird i. d. R. nicht als Fertig-Bausatz geliefert und muss von den Studenten zum fertigen Roboter montiert werden, was den didaktischen Wert des Bausatzes erhöht.</p>
<p>Für mechanische Aufbauten wie etwa einen Roboterarm ist der Pro-Bot jedoch auch nicht optimal, da die Erweiterungsfläche kaum ausreichend (dafür aber leicht erweiterbar) und der Schwerpunkt des kleinen Roboters zu weit vom Boden entfernt ist. <span style="color: #ff0000;">Für ein Projekt mit Konstruktion und Steuerung eines Greifarms scheidet der Pro-Bot daher aus.</span></p>
<p>Der Pro-Bot 128 ist leistungsfähiger, als ASURO und eignet sich für alle Arten von Projekten, für die auch ASURO gedacht ist (von dem Nachlaufen bestimmter Muster bis hin zur Kommunikation mit anderen Robotern).</p>
<h3><strong>RP5</strong></h3>
<p>Das RP5 (<em><strong>Robot Project 5</strong></em>) ist ein leistungsfähiger Roboter auf vier Rädern (mit Gummi-Kette unterlegt) und einer der erfolgreichsten Bausätze. Der RP5 wird als Fertigmodell geliefert und basiert auf einem in Basic programmierbaren C-Controll (Conrad Electronic).</p>
<p>Das RP5 ist sehr erweiterbar, bietet ein stabiles Fahrgestell und kann auf Grund des Platzangebots und der Stabilität auch als Basis für mechanische Aufbauten dienen.</p>
<p>Das RP5 steht heute jedoch im Schatten des neueren RP6. <span style="color: #ff0000;">Für dieses Projekt wird der RP5 daher keine Verwendung finden.</span></p>
<h3><strong>RP6</strong></h3>
<p>Das RP6 ist eine Überarbeitung von RP5. Es wurden mechanische Elemente verbessert, damit das RP6 (gegenüber dem RP5 mit sehr lautem Fahrbetrieb) leiser ist. Zudem verfügt das RP6 jetzt über einen in C programmierbaren 23Bit-Microcontroller der Firma Atmel (Atmega23) und viele weitere Verbesserungen.</p>
<p>Für das RP6 gibt es wie für das RP5 viele Erweiterungssets.</p>
<p>Der RP6 ist für alle Projekte geeignet, welche auf vier Rädern zu bewältigen sind (jedoch ist auch eine Umrüstung auf beinartige Mechanismen denkbar), vom einfachen Verfolgen einer Linie oder anderer Muster bis hin zum Bau eines Roboters mit mechanischen Gliedmaßen sind alle erdenklichen Projekte mit dem RP6 als Basis denkbar.  <span style="color: #008000;">Für dieses Projekt mit Konstruktion und Steuerung eines Greifarms ist RP6 sehr geeignet.</span></p>
<h3><span style="color: #000000;"><strong><span style="text-decoration: underline;">Fazit:</span></strong></span></h3>
<p>Der Bausatz YETI scheidet aus, da er nicht die notwendige Agilität und Stabilität für mechanische Erweiterungen aufweist.</p>
<p><span style="color: #000000;">Für Aufgaben der einfachen Navigation entlang eines Musters bis hin zur Entwicklung einer Schwarmintelligenz sind die Roboter-Bausätze ASURO wie auch Pro-Bot 128 sehr geeignet. Das RP5 und RP6 sind ebenfalls für solche Aufgaben geeignet, bieten zudem die Möglichkeit der Montage mechanischer Aufbauten (z. B. Greifarme), welche für dieses Projekt notwendig ist. </span></p>
<p><span style="color: #000000;">Da das RP6 gegenüber das ältere RP5 verbessert wurde, ist das RP6 für dieses Projekt vorzuziehen.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.robotik-projekt.de/index.php/projekt-geeignete-basis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kondensator</title>
		<link>http://www.robotik-projekt.de/index.php/kondensator/</link>
		<comments>http://www.robotik-projekt.de/index.php/kondensator/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 21:11:35 +0000</pubDate>
		<dc:creator>Benjamin Aunkofer</dc:creator>
				<category><![CDATA[Elektronik]]></category>

		<guid isPermaLink="false">http://www.robotik-projekt.de/?p=286</guid>
		<description><![CDATA[Kondensatoren sind Ladungsspeicher und ein häufiges Bauteil in elektronischen Geräten, es kommt kaum ein elektronisches Gerät ohne Kondensatoren aus. Kondensatoren werden vor allem als kleiner Energiespeicher (und damit auch als Informationsspeicher), Blindwiderstand oder frequenzabhängiger Widerstand genutzt. Ein Kondensator ist aufgebaut durch zwei voneinander getrennter bzw. elektrisch isolierter Elektroden (z. B. aus Kupferdraht). Die Isolation der Elektroden [...]]]></description>
			<content:encoded><![CDATA[<p>Kondensatoren sind Ladungsspeicher und ein häufiges Bauteil in elektronischen Geräten, es kommt kaum ein elektronisches Gerät ohne Kondensatoren aus. Kondensatoren werden vor allem als kleiner Energiespeicher (und damit auch als Informationsspeicher), Blindwiderstand oder frequenzabhängiger Widerstand genutzt.</p>
<p>Ein Kondensator ist aufgebaut durch zwei voneinander getrennter bzw. elektrisch isolierter <strong>Elektroden </strong>(z. B. aus Kupferdraht). Die Isolation der Elektroden geschieht mittels zwischengesetztem Dielektrikum (= fester, flüssiger oder gasförmiger Isolierstoff).</p>
<p style="text-align: center;"><img class="size-full wp-image-289 aligncenter" title="kondensator" src="http://www.robotik-projekt.de/wp-content/uploads/2009/08/kondensator.PNG" alt="kondensator" width="226" height="315" /></p>
<p>Ein durch einen ungeladenen Kondensator fließender elektrischer Strom lädt eine Elektrode positiv und die andere negativ auf. Diese elektrische Ladung des Kondensators bleibt erhalten, bis eine Entladung erfolgt, die Ladung dem Kondensator also wieder entnommen wird und die Spannung auf Null sinkt.</p>
<p>Symbole in Schaltplänen für die häufigsten Kondensatoren:</p>
<p style="text-align: center;"><img class="size-full wp-image-291 aligncenter" title="kondenstor-Schaltzeichen" src="http://www.robotik-projekt.de/wp-content/uploads/2009/08/kondenstor-Schaltzeichen.PNG" alt="kondenstor-Schaltzeichen" width="537" height="130" /></p>
<p style="text-align: center;">
<p style="text-align: left;">Ein Kondensator hat eine Kapazität C, welche das Verhältnis von elektrischer Ladung  zu elektrischer Spannung angibt. Ein Kondensator entwickelt um so mehr Ladung, je höher die Spannung ist. Zwischen Spannung und Ladung besteht also ein proportionales Verhältnis. Wie viel Ladung der Kondensator jedoch bei einer bestimmten Spannung aufnimmt, hängt von der Konstante C (die Kapazität) ab. Je höher die Kapazität des Kondensators, desto stärker steigt die Ladung im Kondensator bei Erhöhung der Spannung.</p>
<p style="text-align: left;"><img class="alignnone size-full wp-image-299" title="kapazitaet" src="http://www.robotik-projekt.de/wp-content/uploads/2009/08/kapazitaet.PNG" alt="kapazitaet" width="385" height="81" /></p>
<p style="text-align: left;">Die Kapazität C wird in der Einheit Farad [F] angegeben. Ein Kondensator hat einen Farad (1F), wenn bei einer anliegenden Spannung von einem Volt (1V) eine Ladung von einer Amperesekunde (1As = 1 Coulomb) resultiert.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.robotik-projekt.de/index.php/kondensator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prozessorarchitekturen CSC und RISC</title>
		<link>http://www.robotik-projekt.de/index.php/prozessorarchitekturen-csc-und-risc/</link>
		<comments>http://www.robotik-projekt.de/index.php/prozessorarchitekturen-csc-und-risc/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 16:41:33 +0000</pubDate>
		<dc:creator>Benjamin Aunkofer</dc:creator>
				<category><![CDATA[Elektronik]]></category>

		<guid isPermaLink="false">http://www.robotik-projekt.de/?p=262</guid>
		<description><![CDATA[Es gibt zwei maßgebende Architekturprinzipien in der Mikroprozessortechnologie, RISC und CISC. Den Grundunterschied zwischen beiden Prinzipien werden bereits durch die Namensgebung klar. RISC (Reduced Instruction Set Computing) RISC arbeitet mit einem geringeren Grundbefehlssatz (maximal 128) aus weniger komplexen Befehlen, welche maximal vier Befehlsformate haben können. Das macht Programmausführungen mit einem RISC-Prozessor flexibler, da die Befehlsausführungszeit [...]]]></description>
			<content:encoded><![CDATA[<p>Es gibt zwei maßgebende Architekturprinzipien in der Mikroprozessortechnologie, RISC und CISC.</p>
<p>Den Grundunterschied zwischen beiden Prinzipien werden bereits durch die Namensgebung klar.</p>
<h4 style="font-size: 1em;"><strong style="font-weight: bold;">RISC (Reduced Instruction Set Computing)</strong></h4>
<p>RISC arbeitet mit einem geringeren Grundbefehlssatz (maximal 128) aus weniger komplexen Befehlen, welche maximal vier Befehlsformate haben können. Das macht Programmausführungen mit einem RISC-Prozessor flexibler, da die Befehlsausführungszeit geringer ist. Durch geringe Befehlsausführungen können die Rechenvorgänge des Prozessors schneller und somit auch flexibler unterbrochen werden.</p>
<p>Da sich der Befehlssatz auf das Nötigste beschränkt und die jeweiligen Befehle so (gegenüber den Befehlen der CISC-Architektur) kurz und außerdem einheitlich lang bleiben, wird auch das Dekodieren der Befehle in kürzerer Zeit möglich. RISC-Prozessoren haben gegenüber den CISC-Prozessoren verhältnismäßig viele Register (kleinster, aber schnellst adressierbarer/ansprechbarer Speicher, welcher sich innerhalb des Prozessors befindet), was die Rechengeschwindigkeit weiterhin erhöht.</p>
<p>Der Code für einen RISC-Prozessor ist weniger kompakt als der eines CISC-Prozessors, denn die vielen Befehle, welche nur für eine mittelmäßig komplexe Anweisung notwendig sind, blähen den Code geradezu auf.</p>
<h4 style="font-size: 1em;"><strong style="font-weight: bold;">CISC (</strong><strong style="font-weight: bold;">Complex Instruction Set Computing </strong><strong style="font-weight: bold;">)</strong></h4>
<p>CISC-Prozessoren kamen nach den RISC-Prozessoren und begründeten sich vor allem durch eine Zeit des teuren Arbeitsspeichers und des nicht vorhandenen Cache-Speichers. So wurden viele komplexe Befehle (welche selbst aus mehreren effektiven Befehlen bestehen und unterschiedliche Größen haben können) direkt im Mikroprogrammspeicher des Mikroprozessors gespeichert, die Architektur um spezialisierte Register, viele Befehlsformate und Adressierungen erweitert. CISC-Prozessoren hatten sich in der Vergangenheit besonders bei Großrechnern durchgesetzt, aber auch in kleinere (End-)Geräten wurden CISC-Prozessoren integriert, insbesondere durch Hersteller wie IBM, Intel und Motorola.</p>
<h4 style="font-size: 1em;"><strong style="font-weight: bold;">CISC vs RISC &#8211; Keine Frage der Zukunft</strong></h4>
<p>Heute sind reine CISC-Prozessoren kaum in Verwendung, aber auch reine RISC-Prozessoren sind heute kein Trend mehr. Heutige Prozessoren sind meistens RISC-Prozessoren, welche sich in ihrer Architektur auch an CISC-Prozessoren anlehnen. Die Prozessoren finden sich heute im Taschenrechner, der digitalen Kamera, im PC usw. auch das aktuell IPhone von Apple nutzt einen Prozessor, der mehr RISC- als CISC-Prozessor ist.</p>
<p>Die Differenzierung von RISC und CISC ist aktuell und auch in Zukunft nicht mehr notwendig, da sich die Hersteller nicht mehr nur für eine Philosophie entscheiden, sondern anforderungsgemäß Architekturen entwickeln, die Elemente aus CISC wie auch aus RISC enthalten, wobei die RISC-Eigenschaften meistens überwiegen mögen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.robotik-projekt.de/index.php/prozessorarchitekturen-csc-und-risc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Integrierter Schaltkreis: Mikrocontroller</title>
		<link>http://www.robotik-projekt.de/index.php/integrierter-schaltkreis-mikrocontroller/</link>
		<comments>http://www.robotik-projekt.de/index.php/integrierter-schaltkreis-mikrocontroller/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 16:39:33 +0000</pubDate>
		<dc:creator>Benjamin Aunkofer</dc:creator>
				<category><![CDATA[Elektronik]]></category>

		<guid isPermaLink="false">http://www.robotik-projekt.de/?p=242</guid>
		<description><![CDATA[Mikrocontroller (auch oft mit &#8220;µc&#8221; abgekürzt) sind elektronische Bauteile, mit welchen sich komplexe Aufgaben über eine Programmierung abarbeiten lassen. Mikrocontroller sind eine besonders komplexe Form der integrieten Schaltkreise (IC &#8211; Integrated Circuit). Mikrocontroller bestehen grundsätzlich aus einem (oder mehreren) Mikroprozessoren und einer Menge an Peripheriebauteilen (Schnittstellen, AD-Wandler, Speicher usw.), wobei alle Elemente gemeinsam in einem [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Mikrocontroller</strong> (auch oft mit &#8220;µc&#8221; abgekürzt) sind elektronische Bauteile, mit welchen sich komplexe Aufgaben über eine Programmierung abarbeiten lassen. Mikrocontroller sind eine besonders komplexe Form der <strong>integrieten Schaltkreise</strong> (IC &#8211; Integrated Circuit).</p>
<p>Mikrocontroller bestehen grundsätzlich aus einem (oder mehreren) Mikroprozessoren und einer Menge an Peripheriebauteilen (Schnittstellen, AD-Wandler, Speicher usw.), wobei alle Elemente gemeinsam in einem Bauteil (&#8220;Mirkochip&#8221;) vereint sind und nach außen hin als ein Bauteil erscheinen. Das Bauteil ist in der Regel mit einem oberflächenmontierten Kunststoffgehäuse verdeckt, welches den Mirkocontroller vor leichten Umwelteinflüssen schützt und die Montage mit herausstehenden Lötanschlüssen (&#8220;Beinchen&#8221;) erleichtert.</p>
<p style="text-align: center;"><img class="size-medium wp-image-244 aligncenter" title="Integrierter Schaltkreis (IC) mit Gehäuse auf einem Steckbrett" src="http://www.robotik-projekt.de/wp-content/uploads/2009/08/ic-300x199.jpg" alt="ic" width="300" height="199" /></p>
<p>Die Lötanschlüsse, welche aus dem Kunststoffgehäuse herausstehen, können direkt in eine Schaltung gelötet oder in einen Sockel gesteckt werden. Ein Sockel erleichtet die Montage und Demontage des Mikrocontrollers, nur der Sockel ist dann noch durch Lötgut fest in der Schaltung integriert. Der Sockel erleichtert den Austausch des Mikrocontrollers enorm, was keine unerhebliche Rolle spielt, da Mikrocontroller sensible Bauteile sind, welche sehr schnell (Überspannung, Falschpolung usw.) beschädigt werden kann.</p>
<p style="text-align: center;"><img class="size-medium wp-image-245    aligncenter" title="Sockel eines AVR-Mikrocontrollers" src="http://www.robotik-projekt.de/wp-content/uploads/2009/08/sockel-300x199.jpg" alt="sockel" width="300" height="199" /></p>
<p style="text-align: center;"><img class="size-medium wp-image-243   aligncenter" title="atmega" src="http://www.robotik-projekt.de/wp-content/uploads/2009/08/atmega-300x199.jpg" alt="atmega" width="300" height="199" /></p>
<p>Mikroprozessoren (CPU &#8211; Central Processing Unit, ebenfalls eine eigene Form integrierter Schaltkreise) sind Rechen- und Steuerwerke und somit der Kern jeden Mikrocontrollers.</p>
<p>In der Technologiegeschichte sind Mikrocontroller jünger als Mikroprozessoren. Dadurch, dass Mikroprozessoren dank moderner Produktionstechnik immer weiter miniaturisiert werden konnten, konnten Peripherieeinheiten ebenfalls in den Chip integriert werden und stellen nach außen hin eine einzige Einheit da, so sind die Mikrocontroller entstanden.</p>
<p style="text-align: center;"><img class="size-full wp-image-258 aligncenter" src="http://www.robotik-projekt.de/wp-content/uploads/2009/08/mikrocontroller.PNG" alt="" width="388" height="319" /></p>
<p>Heutige Mikroprozessoren verfügen neben dem Prozessorkern (Steuer- und Recheneinheit) auch über etwas Peripherie, beispielsweise einen Cache-Speicher, was zur Folge hat, dass die Grenzen zwischen Mikroprozessoren und Mikrocontroller immer mehr ineinander fließen.</p>
<p>Grundsätzlich sind Mikroprozessoren eher allgemeine Rechen- und Steuerwerke, Mikrocontroller bieten hingegen zusätzliche Peripherie. Mikrocontroller sind entweder allgemein (universelle Auslegung) gestaltet oder (häufiger) für einen sehr speziellen Zweck in der Automatisierungs- und Nachrichtentechnik ausgelegt (z. B. Steuerung eines elektronischen Verriegelungssystems). Kommunikations- und Steuerungsaufgaben in elektronischen Geräten (z. B. Radio, Kaffeemaschine, Telefon, Waschmaschine oder im Auto-Steuergerät) werden in der Regel von Mikrocontrollern übernommen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.robotik-projekt.de/index.php/integrierter-schaltkreis-mikrocontroller/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

