<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://rn-wissen.de/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=MaxWeb</id>
		<title>RN-Wissen.de - Benutzerbeiträge [de]</title>
		<link rel="self" type="application/atom+xml" href="https://rn-wissen.de/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=MaxWeb"/>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Spezial:Beitr%C3%A4ge/MaxWeb"/>
		<updated>2026-04-11T14:46:44Z</updated>
		<subtitle>Benutzerbeiträge</subtitle>
		<generator>MediaWiki 1.25.1</generator>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Diskussion:Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=22478</id>
		<title>Diskussion:Embedded Linux Einstieg leicht gemacht</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Diskussion:Embedded_Linux_Einstieg_leicht_gemacht&amp;diff=22478"/>
				<updated>2013-04-06T17:45:42Z</updated>
		
		<summary type="html">&lt;p&gt;MaxWeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Vorschlag: Artikel in &amp;quot;Raspberry Pi&amp;quot; umbenennen, da der Inhalt sowieso spezifisch für dieses Board geschrieben wurde&lt;/div&gt;</summary>
		<author><name>MaxWeb</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Raspberry_PI:_GPIO&amp;diff=22477</id>
		<title>Raspberry PI: GPIO</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Raspberry_PI:_GPIO&amp;diff=22477"/>
				<updated>2013-04-06T17:40:56Z</updated>
		
		<summary type="html">&lt;p&gt;MaxWeb: Pinout der Revision 2.0 hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Schnittstellen= &lt;br /&gt;
Zusätzlich zu USB, Ethernet, analogen Audio/Video und HDMI bietet das Raspberry Pi verschiedene GPIO's (General Purpose Input/Output), die über die 2,54mm Stiftleiste 'P1' zugänglich sind.&amp;lt;br/&amp;gt;&lt;br /&gt;
Die GPIO Pins sind als 3,3V Signale ausgeführt und nicht 5V tolerant. Ein direkter Anschluss an TTL Level kann zur Zerstörung führen!&amp;lt;br\&amp;gt;&lt;br /&gt;
Bestimmte Pins können auch für SPI, I²C und UART Schnittstellen genutzt werden.&lt;br /&gt;
&lt;br /&gt;
==P1 Pinout==&lt;br /&gt;
Die nachfolgenden Tabelle zeigt das Pinout des Raspberry Pi Revision 1.0 (Sowohl Modell A als auch B):&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |Function&lt;br /&gt;
 |Pin&lt;br /&gt;
 |&lt;br /&gt;
 |Pin&lt;br /&gt;
 |Function&lt;br /&gt;
 |-&lt;br /&gt;
 |3,3V&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |2&lt;br /&gt;
 |5V&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 0 (SDA)&lt;br /&gt;
 |3&lt;br /&gt;
 |&lt;br /&gt;
 |4&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 1 (SCL)&lt;br /&gt;
 |5&lt;br /&gt;
 |&lt;br /&gt;
 |6&lt;br /&gt;
 |GND&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 4 (GPCLK0)&lt;br /&gt;
 |7&lt;br /&gt;
 |&lt;br /&gt;
 |8&lt;br /&gt;
 |GPIO 14 (TxD)&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 |9&lt;br /&gt;
 |&lt;br /&gt;
 |10&lt;br /&gt;
 |GPIO 15 (RxD)&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 17&lt;br /&gt;
 |11&lt;br /&gt;
 |&lt;br /&gt;
 |12&lt;br /&gt;
 |GPIO 18 (PCM_CLK)&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 21 (PCM_DOUT)&lt;br /&gt;
 |13&lt;br /&gt;
 |&lt;br /&gt;
 |14&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 22&lt;br /&gt;
 |15&lt;br /&gt;
 |&lt;br /&gt;
 |16&lt;br /&gt;
 |GPIO 23&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 |17&lt;br /&gt;
 |&lt;br /&gt;
 |18&lt;br /&gt;
 |GPIO 24&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 10 (MOSI)&lt;br /&gt;
 |19&lt;br /&gt;
 |&lt;br /&gt;
 |20&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 9 (MISO)&lt;br /&gt;
 |21&lt;br /&gt;
 |&lt;br /&gt;
 |22&lt;br /&gt;
 |GPIO 25&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 11 (SCLK)&lt;br /&gt;
 |23&lt;br /&gt;
 |&lt;br /&gt;
 |24&lt;br /&gt;
 |GPIO 8 (CE0)&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 |25&lt;br /&gt;
 |&lt;br /&gt;
 |26&lt;br /&gt;
 |GPIO 7 (CE1)&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Mittlerweile gibt es eine neue Hardwareversion des Raspberry Pi, nämlich Revision 2.0 - u.A. erkennbar an den neu hinzugekommenen Bohrlöchern.&lt;br /&gt;
Hier hat sich auch die Pinbelegung von P1 geändert (Änderungen sind fett geschrieben):&lt;br /&gt;
&lt;br /&gt;
===P1 Pinout (Rev 2.0)===&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |Function&lt;br /&gt;
 |Pin&lt;br /&gt;
 |&lt;br /&gt;
 |Pin&lt;br /&gt;
 |Function&lt;br /&gt;
 |-&lt;br /&gt;
 |3,3V&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |2&lt;br /&gt;
 |5V&lt;br /&gt;
 |-&lt;br /&gt;
 |'''GPIO 2 (SDA1)'''&lt;br /&gt;
 |3&lt;br /&gt;
 |&lt;br /&gt;
 |4&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |'''GPIO 3 (SCL1)'''&lt;br /&gt;
 |5&lt;br /&gt;
 |&lt;br /&gt;
 |6&lt;br /&gt;
 |GND&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 4 (GPCLK0)&lt;br /&gt;
 |7&lt;br /&gt;
 |&lt;br /&gt;
 |8&lt;br /&gt;
 |GPIO 14 (TxD)&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 |9&lt;br /&gt;
 |&lt;br /&gt;
 |10&lt;br /&gt;
 |GPIO 15 (RxD)&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 17&lt;br /&gt;
 |11&lt;br /&gt;
 |&lt;br /&gt;
 |12&lt;br /&gt;
 |GPIO 18 (PCM_CLK)&lt;br /&gt;
 |-&lt;br /&gt;
 |'''GPIO 27'''&lt;br /&gt;
 |13&lt;br /&gt;
 |&lt;br /&gt;
 |14&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 22&lt;br /&gt;
 |15&lt;br /&gt;
 |&lt;br /&gt;
 |16&lt;br /&gt;
 |GPIO 23&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 |17&lt;br /&gt;
 |&lt;br /&gt;
 |18&lt;br /&gt;
 |GPIO 24&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 10 (MOSI)&lt;br /&gt;
 |19&lt;br /&gt;
 |&lt;br /&gt;
 |20&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 9 (MISO)&lt;br /&gt;
 |21&lt;br /&gt;
 |&lt;br /&gt;
 |22&lt;br /&gt;
 |GPIO 25&lt;br /&gt;
 |-&lt;br /&gt;
 |GPIO 11 (SCLK)&lt;br /&gt;
 |23&lt;br /&gt;
 |&lt;br /&gt;
 |24&lt;br /&gt;
 |GPIO 8 (CE0)&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 |25&lt;br /&gt;
 |&lt;br /&gt;
 |26&lt;br /&gt;
 |GPIO 7 (CE1)&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
=Ansteuern der GPIO's=&lt;br /&gt;
Einige kleine Programmbeispiele findet man hier: [http://elinux.org/RPi_Low-level_peripherals elinux.com] (C,Python,Java,Shell,C#,Perl,Ruby)&lt;br /&gt;
&lt;br /&gt;
==Via Shell==&lt;br /&gt;
Die GPIO können direkt über die Files im Ordner '/sys/class/gpio/' angesteuert werden. Dies muss jedoch mit root-Rechten gemacht werden.&lt;br /&gt;
Zuerst müssen die Files via 'export' zugänglich gemacht werden. Da die GPIO's nach dem Systemstart als Eingänge geschaltet sind, müssen diese jetzt als Ausgänge definiert werden und können danach manipuliert werden.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel anhand von GPIO 23:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /sys/class/gpio&lt;br /&gt;
$ su&lt;br /&gt;
root Passwort eingeben&lt;br /&gt;
$ echo &amp;quot;23&amp;quot; &amp;gt; export&lt;br /&gt;
$ echo &amp;quot;out&amp;quot; &amp;gt; gpio23/direction&lt;br /&gt;
$ echo &amp;quot;1&amp;quot; &amp;gt; gpio23/value&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Via WiringPi==&lt;br /&gt;
Alternativ zur direkten Ansteuerung kann das Programm 'WiringPi' installiert werden.&lt;br /&gt;
Der Vorteil daran ist zum einen die einfachere Anwendung und dass dazu keine root Rechte benötigt werden.&lt;br /&gt;
&lt;br /&gt;
Informationen zur installation findet man auf der Projektseite..&amp;lt;br/&amp;gt;&lt;br /&gt;
https://projects.drogon.net/raspberry-pi/wiringpi/download-and-install/&lt;br /&gt;
&lt;br /&gt;
Eingang auslesen&lt;br /&gt;
&amp;lt;pre&amp;gt;gpio -g read 23&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GPIO Pin als Ausgang definieren&lt;br /&gt;
&amp;lt;pre&amp;gt;gpio -g mode 23 out&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ausgang setzen&lt;br /&gt;
&amp;lt;pre&amp;gt;gpio -g write 23 1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vollständige Informationen zu WiringPI findet man in der manpage&lt;br /&gt;
&amp;lt;pre&amp;gt;man gpio&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Via PHP==&lt;br /&gt;
Sollen die GPIO Pins über ein HTTP Webinterface bedient werden, so kann dies mit PHP realisiert werden.&lt;br /&gt;
In diesem Beispiel wird dazu via @shell_exec() WiringPi angesprochen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$val = trim(@shell_exec(&amp;quot;/usr/local/bin/gpio -g read 23&amp;quot;));&lt;br /&gt;
$val = trim(@shell_exec(&amp;quot;/usr/local/bin/gpio -g write 23 1&amp;quot;));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Anpassen der Pegel für 5V UART=&lt;br /&gt;
Eine einfache Schaltung, wie die Pegel angepasst werden können.&lt;br /&gt;
Man kann natürlich auch die anderen PINs darüber mit 5V verbinden, ist dann aber auf die Richtung festgelegt.&lt;br /&gt;
[[Bild:PiPegelwandler.png]]&lt;/div&gt;</summary>
		<author><name>MaxWeb</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=RP6_mit_AVR_Studio&amp;diff=21704</id>
		<title>RP6 mit AVR Studio</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=RP6_mit_AVR_Studio&amp;diff=21704"/>
				<updated>2013-02-15T15:51:39Z</updated>
		
		<summary type="html">&lt;p&gt;MaxWeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Robotikeinstieg]]&lt;br /&gt;
==Allgemein==&lt;br /&gt;
Dieser Artikel beschäftigt sich nicht mit der Programmierung des RP6 an sich.&lt;br /&gt;
Stattdessen wird hier die Einrichtung der Programmierumgebung AVR Studio in den Versionen 5.1 / 6 für den RP6 betrachtet.&lt;br /&gt;
Dabei handelt es sich um eine auf dem Microsoft Visual Studio basierende Entwicklungsumgebung, die von Atmel bereitgestellt wird und eine Vielzahl von AVR-Mikroprozessoren unterstützt.&lt;br /&gt;
Es bietet einen Simulator, eine bereits &amp;quot;eingebaute&amp;quot; Toolchain sowie komfortable Funktionen zum Flashen des Chips.&lt;br /&gt;
Diese Anleitung kann - in abgewandelter Form - natürlich auch für die Erweiterungsmodule M32 und M256 Wifi verwendte werden.&lt;br /&gt;
==Benötigte Werkzeuge==&lt;br /&gt;
*[http://www.atmel.com/microsite/atmel_studio6/ AVR Studio 6 Hauptseite] zum Download des RP6&lt;br /&gt;
*[http://www.atmel.com/tools/studioarchive.aspx AVR Studio Archiv] ,falls eine ältere Version gewünscht ist&lt;br /&gt;
*[http://www.arexx.com/rp6/html/en/software.htm RP6 Softwareseite] zum Download der RP6Lib und der Beispielprojekte&lt;br /&gt;
*Natürlich der RP6&lt;br /&gt;
==Das erste Projekt==&lt;br /&gt;
Jetzt geht es ans Anlegen unseres ersten Projekts. Klickt dazu einfach auf '''File''' -&amp;gt; '''New''' -&amp;gt; '''Project'''. Wählt '''AVR GCC Executable''' aus und gebt Eurem Projekt einen aussagekräftigen Namen.&lt;br /&gt;
[[Bild:NewProject.jpg|thumb|Ein neues AVRGCC-Projekt erstellen]]&lt;br /&gt;
Nun erscheint ein Fenster, in dem der Zielcontroller ausgewählt werden muss. Wählt hier den '''ATmega32''' aus und bestätigt mit '''OK'''.&lt;br /&gt;
Gut, jetzt ist das erste Projekt angelegt. Es ist nun an der Zeit, die RP6 Library in das Projekt aufzunehmen, die ihr bereits irgendwo auf euren Computer entpackt haben solltet. Darin befindet sich ein Ordner namens ''RP6Lib''. Dieser muss nun mit Windows in das neue Projektverzeichnis kopiert werden. Dieses sieht typischerweise folgendermaßen aus: ''C:\Users\DeinBenutzerName\Documents\Atmel Studio\DeinProjektName\DeinProjektName''.&lt;br /&gt;
&lt;br /&gt;
Nun haben wir die Dateien am richtigen Platz, müssen dem AVR Studio jedoch noch mitteilen, dass wir die Dateien gerne in unser Projekt aufnehmen möchten.&lt;br /&gt;
Im Unterfenster '''Solution Explorer''' befindet sich eine Schaltfläche namens '''Show All Files'''. Danach erscheint der Ordner ''RP6Lib'' ausgegraut im Solution Explorer.&lt;br /&gt;
Macht einen Rechtsklick darauf und wählt '''Include in Project'''. Jetzt ist die gesamte RP6Lib hinzugefügt, allerdings benötigen wir nur die Funktionen der RP6 Base!&lt;br /&gt;
[[Bild:ShowAll.jpg|thumb|Versteckte Dateien anzeigen]]&lt;br /&gt;
Daher müssen wir die Ordner ''RP6control'' und ''RP6control_M256_WIFI'' wieder '''entfernen''': Wählt beide aus und löscht beide Ordner (Del oder auch per Rechtsklick). Im folgenden Dialog wählt ihr dann '''Remove'''. Das Gleiche macht ihr nun für zwei der vier I2C-Treiber im Ordner ''RP6common'' - je nachdem, ob ihr einen I2C Master oder einen I2C Slave benötigt. Beides zusammen geht nicht!&lt;br /&gt;
Zum Abschluss müssen wir nur noch die '''Include-Pfade einstellen'''. Macht dazu im Solution Explorer einen '''Rechtsklick auf euer Projekt''' und wählt '''Properties'''. Navigiert danach zu '''Toolchain''' -&amp;gt; '''Directories''' und fügt die Ordner ''RP6common'' und ''RP6base'' hinzu. Danach seid ihr fertig mit der Konfiguration des AVR Studios.&lt;br /&gt;
[[Bild:Includes.jpg|thumb|Include-Verzeichnisse anpassen]]&lt;br /&gt;
Kopiert nun eines der Beispielprogramme in euer Main-File und klickt auf '''Compile'''. Der Kompilierungsvorgang sollte nun ohne Fehler sauber durchgeführt werden.&lt;br /&gt;
==Als Template einrichten==&lt;br /&gt;
Zugegeben: Dieser Einrichtungsvorgang ist ziemlich aufwändig und insbesondere für Einsteiger sehr verwirrend. Daher bietet das AVR Studio die Möglichkeit an, Projekte als Templates zu speichern und als Vorlage für neue Projekte zu nutzen. Somit habt ihr nur einmal den oben beschriebenen Konfigurationsaufwand, den Rest erledigt das Studio danach für euch.&lt;br /&gt;
Die Einrichtung als Template geht sehr einfach: Öffnet euer Projekt und klickt auf '''File''' -&amp;gt; '''Export Template'''. Wählt danach '''Project Template''' aus. Füllt im nachfolgenden Dialog die Felder nach Belieben aus und klickt auf '''Finish''' - fertig!&lt;br /&gt;
[[Bild:Template2.jpg|thumb|Als Template exportieren]]&lt;br /&gt;
==Templates als Vorlage für neue Projekte==&lt;br /&gt;
Nachdem ihr euer Projekt als Template gespeichert habt ist es denkbar einfach, daraus ein neues Projekt zu erzeugen. Wählt einfach '''File''' -&amp;gt; '''New''' -&amp;gt; '''Project''' und wählt euer Template aus, benennt das Projekt und klickt auf '''OK'''. Jetzt müsst ihr nichts mehr einstellen, stattdessen könnt ihr direkt mit dem Programmieren beginnen!&lt;br /&gt;
[[Bild:Template benutzen.jpg|thumb|Neues Projekt mit Template erstellen]]&lt;br /&gt;
==Templates installieren==&lt;br /&gt;
Und jetzt die gute Nachricht: Ihr müsst die ganze Konfiguration gar nicht selbst durchführen!&lt;br /&gt;
Ladet stattdessen einfach folgendes Template herunter:&lt;br /&gt;
[http://www.roboternetz.de/community/attachment.php?attachmentid=24525&amp;amp;d=1360933852 RP6 Base Template für Atmel Studio 5.1 und 6]&lt;br /&gt;
===Atmel Studio 5.1===&lt;br /&gt;
Navigiert nun in das Verzeichnis ''C:\Users\DeinBenutzerName\Documents\AVRStudio 5.1\Templates\ProjectTemplates'' und kopiert die heruntergeladene Datei (nicht entpacken!) dorthin.&lt;br /&gt;
Startet nun das AVR Studio und fahrt wie in &amp;quot;Templates als Vorlage für neue Projekte&amp;quot; beschrieben fort.&lt;br /&gt;
===Atmel Studio 6===&lt;br /&gt;
Navigiert nun in das Verzeichnis ''C:\Users\DeinBenutzerName\Documents\Atmel Studio\Templates\ProjectTemplates'' und kopiert die heruntergeladene Datei (nicht entpacken!) dorthin.&lt;br /&gt;
Startet nun das AVR Studio und fahrt wie in &amp;quot;Templates als Vorlage für neue Projekte&amp;quot; beschrieben fort.&lt;br /&gt;
==Hinweis==&lt;br /&gt;
Natürlich können die angegebenen Pfade von PC zu PC unterschiedlich sein, da eventuell unterschiedliche Betriebssysteme (und -Versionen) oder Partitionen verwendet werden. Daher müsst ihr die Pfade an euer System anpassen!&lt;br /&gt;
In den Include Directories solltet ihr am Besten immer relative Pfade angeben und die RP6Lib in euer Projektverzeichnis kopieren. Das erspart so manchen Ärger mit unterschiedlichen Dateipfaden.&lt;br /&gt;
==Weblinks==&lt;br /&gt;
*[http://www.atmel.com/microsite/atmel_studio6/ AVR Studio 6 Hauptseite]&lt;br /&gt;
*[http://www.atmel.com/tools/studioarchive.aspx AVR Studio Archiv]&lt;br /&gt;
*[http://www.arexx.com/rp6/html/en/software.htm RP6 Softwareseite]&lt;br /&gt;
*[http://www.roboternetz.de/community/attachment.php?attachmentid=24525&amp;amp;d=1360933852 RP6 Base Template für Atmel Studio 5.1 und 6]&lt;br /&gt;
==Quellen==&lt;br /&gt;
Ich versichere hiermit, dass ich diesen Beitrag komplett selbst verfasst habe&lt;br /&gt;
und dass er auch keine fremden Rechte verletzt. Ebenso wurden sämtliche Grafiken selbst erstellt.&lt;br /&gt;
Fremde Quellen wurden nicht benutzt, ich beschreibe hier meine eigenen Erfahrungen mit dem AVR Studio.&lt;br /&gt;
==Autoren==&lt;br /&gt;
--[[Benutzer:MaxWeb|MaxWeb]] 16:51, 15. Feb 2013 (CET)&lt;/div&gt;</summary>
		<author><name>MaxWeb</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=RP6_mit_AVR_Studio&amp;diff=21703</id>
		<title>RP6 mit AVR Studio</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=RP6_mit_AVR_Studio&amp;diff=21703"/>
				<updated>2013-02-15T15:49:10Z</updated>
		
		<summary type="html">&lt;p&gt;MaxWeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Robotikeinstieg]]&lt;br /&gt;
==Allgemein==&lt;br /&gt;
Dieser Artikel beschäftigt sich nicht mit der Programmierung des RP6 an sich.&lt;br /&gt;
Stattdessen wird hier die Einrichtung der Programmierumgebung AVR Studio in den Versionen 5.1 / 6 für den RP6 betrachtet.&lt;br /&gt;
Dabei handelt es sich um eine auf dem Microsoft Visual Studio basierende Entwicklungsumgebung, die von Atmel bereitgestellt wird und eine Vielzahl von AVR-Mikroprozessoren unterstützt.&lt;br /&gt;
Es bietet einen Simulator, eine bereits &amp;quot;eingebaute&amp;quot; Toolchain sowie komfortable Funktionen zum Flashen des Chips.&lt;br /&gt;
Diese Anleitung kann - in abgewandelter Form - natürlich auch für die Erweiterungsmodule M32 und M256 Wifi verwendte werden.&lt;br /&gt;
==Benötigte Werkzeuge==&lt;br /&gt;
*[http://www.atmel.com/microsite/atmel_studio6/ AVR Studio 6 Hauptseite] zum Download des RP6&lt;br /&gt;
*[http://www.atmel.com/tools/studioarchive.aspx AVR Studio Archiv] ,falls eine ältere Version gewünscht ist&lt;br /&gt;
*[http://www.arexx.com/rp6/html/en/software.htm RP6 Softwareseite] zum Download der RP6Lib und der Beispielprojekte&lt;br /&gt;
*Natürlich der RP6&lt;br /&gt;
==Das erste Projekt==&lt;br /&gt;
Jetzt geht es ans Anlegen unseres ersten Projekts. Klickt dazu einfach auf '''File''' -&amp;gt; '''New''' -&amp;gt; '''Project'''. Wählt '''AVR GCC Executable''' aus und gebt Eurem Projekt einen aussagekräftigen Namen.&lt;br /&gt;
[[Bild:NewProject.jpg|thumb|Ein neues AVRGCC-Projekt erstellen]]&lt;br /&gt;
Nun erscheint ein Fenster, in dem der Zielcontroller ausgewählt werden muss. Wählt hier den '''ATmega32''' aus und bestätigt mit '''OK'''.&lt;br /&gt;
Gut, jetzt ist das erste Projekt angelegt. Es ist nun an der Zeit, die RP6 Library in das Projekt aufzunehmen, die ihr bereits irgendwo auf euren Computer entpackt haben solltet. Darin befindet sich ein Ordner namens ''RP6Lib''. Dieser muss nun mit Windows in das neue Projektverzeichnis kopiert werden. Dieses sieht typischerweise folgendermaßen aus: ''C:\Users\DeinBenutzerName\Documents\Atmel Studio\DeinProjektName\DeinProjektName''.&lt;br /&gt;
&lt;br /&gt;
Nun haben wir die Dateien am richtigen Platz, müssen dem AVR Studio jedoch noch mitteilen, dass wir die Dateien gerne in unser Projekt aufnehmen möchten.&lt;br /&gt;
Im Unterfenster '''Solution Explorer''' befindet sich eine Schaltfläche namens '''Show All Files'''. Danach erscheint der Ordner ''RP6Lib'' ausgegraut im Solution Explorer.&lt;br /&gt;
Macht einen Rechtsklick darauf und wählt '''Include in Project'''. Jetzt ist die gesamte RP6Lib hinzugefügt, allerdings benötigen wir nur die Funktionen der RP6 Base!&lt;br /&gt;
[[Bild:ShowAll.jpg|thumb|Versteckte Dateien anzeigen]]&lt;br /&gt;
Daher müssen wir die Ordner ''RP6control'' und ''RP6control_M256_WIFI'' wieder '''entfernen''': Wählt beide aus und löscht beide Ordner (Del oder auch per Rechtsklick). Im folgenden Dialog wählt ihr dann '''Remove'''. Das Gleiche macht ihr nun für zwei der vier I2C-Treiber im Ordner ''RP6common'' - je nachdem, ob ihr einen I2C Master oder einen I2C Slave benötigt. Beides zusammen geht nicht!&lt;br /&gt;
Zum Abschluss müssen wir nur noch die '''Include-Pfade einstellen'''. Macht dazu im Solution Explorer einen '''Rechtsklick auf euer Projekt''' und wählt '''Properties'''. Navigiert danach zu '''Toolchain''' -&amp;gt; '''Directories''' und fügt die Ordner ''RP6common'' und ''RP6base'' hinzu. Danach seid ihr fertig mit der Konfiguration des AVR Studios.&lt;br /&gt;
[[Bild:Includes.jpg|thumb|Include-Verzeichnisse anpassen]]&lt;br /&gt;
Kopiert nun eines der Beispielprogramme in euer Main-File und klickt auf '''Compile'''. Der Kompilierungsvorgang sollte nun ohne Fehler sauber durchgeführt werden.&lt;br /&gt;
==Als Template einrichten==&lt;br /&gt;
Zugegeben: Dieser Einrichtungsvorgang ist ziemlich aufwändig und insbesondere für Einsteiger sehr verwirrend. Daher bietet das AVR Studio die Möglichkeit an, Projekte als Templates zu speichern und als Vorlage für neue Projekte zu nutzen. Somit habt ihr nur einmal den oben beschriebenen Konfigurationsaufwand, den Rest erledigt das Studio danach für euch.&lt;br /&gt;
Die Einrichtung als Template geht sehr einfach: Öffnet euer Projekt und klickt auf '''File''' -&amp;gt; '''Export Template'''. Wählt danach '''Project Template''' aus. Füllt im nachfolgenden Dialog die Felder nach Belieben aus und klickt auf '''Finish''' - fertig!&lt;br /&gt;
[[Bild:Template2.jpg|thumb|Als Template exportieren]]&lt;br /&gt;
==Templates als Vorlage für neue Projekte==&lt;br /&gt;
Nachdem ihr euer Projekt als Template gespeichert habt ist es denkbar einfach, daraus ein neues Projekt zu erzeugen. Wählt einfach '''File''' -&amp;gt; '''New''' -&amp;gt; '''Project''' und wählt euer Template aus, benennt das Projekt und klickt auf '''OK'''. Jetzt müsst ihr nichts mehr einstellen, stattdessen könnt ihr direkt mit dem Programmieren beginnen!&lt;br /&gt;
[[Bild:Template benutzen.jpg|thumb|Neues Projekt mit Template erstellen]]&lt;br /&gt;
==Templates installieren==&lt;br /&gt;
Und jetzt die gute Nachricht: Ihr müsst die ganze Konfiguration gar nicht selbst durchführen!&lt;br /&gt;
Ladet stattdessen einfach folgendes Template herunter:&lt;br /&gt;
[http://www.roboternetz.de/community/attachment.php?attachmentid=24525&amp;amp;d=1360933852 RP6 Base Template für Atmel Studio 5.1 und 6]&lt;br /&gt;
===Atmel Studio 5.1===&lt;br /&gt;
Navigiert nun in das Verzeichnis ''C:\Users\DeinBenutzerName\Documents\AVRStudio 5.1\Templates\ProjectTemplates'' und kopiert die heruntergeladene Datei (nicht entpacken!) dorthin.&lt;br /&gt;
Startet nun das AVR Studio und fahrt wie in &amp;quot;Templates als Vorlage für neue Projekte&amp;quot; beschrieben fort.&lt;br /&gt;
===Atmel Studio 6===&lt;br /&gt;
Navigiert nun in das Verzeichnis ''C:\Users\DeinBenutzerName\Documents\Atmel Studio\Templates\ProjectTemplates'' und kopiert die heruntergeladene Datei (nicht entpacken!) dorthin.&lt;br /&gt;
Startet nun das AVR Studio und fahrt wie in &amp;quot;Templates als Vorlage für neue Projekte&amp;quot; beschrieben fort.&lt;br /&gt;
==Hinweis==&lt;br /&gt;
Natürlich können die angegebenen Pfade von PC zu PC unterschiedlich sein, da eventuell unterschiedliche Betriebssysteme (und -Versionen) oder Partitionen verwendet werden. Daher müsst ihr die Pfade an euer System anpassen!&lt;br /&gt;
In den Include Directories solltet ihr am Besten immer relative Pfade angeben und die RP6Lib in euer Projektverzeichnis kopieren. Das erspart so manchen Ärger mit unterschiedlichen Dateipfaden.&lt;br /&gt;
==Weblinks==&lt;br /&gt;
*[http://www.atmel.com/microsite/atmel_studio6/ AVR Studio 6 Hauptseite]&lt;br /&gt;
*[http://www.atmel.com/tools/studioarchive.aspx AVR Studio Archiv]&lt;br /&gt;
*[http://www.arexx.com/rp6/html/en/software.htm RP6 Softwareseite]&lt;br /&gt;
*[http://www.roboternetz.de/community/attachment.php?attachmentid=24525&amp;amp;d=1360933852 RP6 Base Template für Atmel Studio 5.1 und 6]&lt;br /&gt;
==Quellen==&lt;br /&gt;
Ich versichere hiermit, dass ich diesen Beitrag komplett selbst verfasst habe&lt;br /&gt;
und dass er auch keine fremden Rechte verletzt. Ebenso wurden sämtliche Grafiken selbst erstellt.&lt;br /&gt;
Fremde Quellen wurden nicht benutzt, ich beschreibe hier meine eigenen Erfahrungen mit dem AVR Studio.&lt;br /&gt;
==Autoren==&lt;br /&gt;
--[[Benutzer:MaxWeb|MaxWeb]] 14:22, 15. Feb 2013 (CET)&lt;/div&gt;</summary>
		<author><name>MaxWeb</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=RP6_mit_AVR_Studio&amp;diff=21702</id>
		<title>RP6 mit AVR Studio</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=RP6_mit_AVR_Studio&amp;diff=21702"/>
				<updated>2013-02-15T15:43:12Z</updated>
		
		<summary type="html">&lt;p&gt;MaxWeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Robotikeinstieg]]&lt;br /&gt;
==Allgemein==&lt;br /&gt;
Dieser Artikel beschäftigt sich nicht mit der Programmierung des RP6 an sich.&lt;br /&gt;
Stattdessen wird hier die Einrichtung der Programmierumgebung AVR Studio in den Versionen 5.1 / 6 für den RP6 betrachtet.&lt;br /&gt;
Dabei handelt es sich um eine auf dem Microsoft Visual Studio basierende Entwicklungsumgebung, die von Atmel bereitgestellt wird und eine Vielzahl von AVR-Mikroprozessoren unterstützt.&lt;br /&gt;
Es bietet einen Simulator, eine bereits &amp;quot;eingebaute&amp;quot; Toolchain sowie komfortable Funktionen zum Flashen des Chips.&lt;br /&gt;
Diese Anleitung kann - in abgewandelter Form - natürlich auch für die Erweiterungsmodule M32 und M256 Wifi verwendte werden.&lt;br /&gt;
==Benötigte Werkzeuge==&lt;br /&gt;
*[http://www.atmel.com/microsite/atmel_studio6/ AVR Studio 6 Hauptseite] zum Download des RP6&lt;br /&gt;
*[http://www.atmel.com/tools/studioarchive.aspx AVR Studio Archiv] ,falls eine ältere Version gewünscht ist&lt;br /&gt;
*[http://www.arexx.com/rp6/html/en/software.htm RP6 Softwareseite] zum Download der RP6Lib und der Beispielprojekte&lt;br /&gt;
*Natürlich der RP6&lt;br /&gt;
==Das erste Projekt==&lt;br /&gt;
Jetzt geht es ans Anlegen unseres ersten Projekts. Klickt dazu einfach auf '''File''' -&amp;gt; '''New''' -&amp;gt; '''Project'''. Wählt '''AVR GCC Executable''' aus und gebt Eurem Projekt einen aussagekräftigen Namen.&lt;br /&gt;
[[Bild:NewProject.jpg|thumb|Ein neues AVRGCC-Projekt erstellen]]&lt;br /&gt;
Nun erscheint ein Fenster, in dem der Zielcontroller ausgewählt werden muss. Wählt hier den '''ATmega32''' aus und bestätigt mit '''OK'''.&lt;br /&gt;
Gut, jetzt ist das erste Projekt angelegt. Es ist nun an der Zeit, die RP6 Library in das Projekt aufzunehmen, die ihr bereits irgendwo auf euren Computer entpackt haben solltet. Darin befindet sich ein Ordner namens ''RP6Lib''. Dieser muss nun mit Windows in das neue Projektverzeichnis kopiert werden. Dieses sieht typischerweise folgendermaßen aus: ''C:\Users\DeinBenutzerName\Documents\Atmel Studio\DeinProjektName\DeinProjektName''.&lt;br /&gt;
&lt;br /&gt;
Nun haben wir die Dateien am richtigen Platz, müssen dem AVR Studio jedoch noch mitteilen, dass wir die Dateien gerne in unser Projekt aufnehmen möchten.&lt;br /&gt;
Im Unterfenster '''Solution Explorer''' befindet sich eine Schaltfläche namens '''Show All Files'''. Danach erscheint der Ordner ''RP6Lib'' ausgegraut im Solution Explorer.&lt;br /&gt;
Macht einen Rechtsklick darauf und wählt '''Include in Project'''. Jetzt ist die gesamte RP6Lib hinzugefügt, allerdings benötigen wir nur die Funktionen der RP6 Base!&lt;br /&gt;
[[Bild:ShowAll.jpg|thumb|Versteckte Dateien anzeigen]]&lt;br /&gt;
Daher müssen wir die Ordner ''RP6control'' und ''RP6control_M256_WIFI'' wieder '''entfernen''': Wählt beide aus und löscht beide Ordner (Del oder auch per Rechtsklick). Im folgenden Dialog wählt ihr dann '''Remove'''. Das Gleiche macht ihr nun für zwei der vier I2C-Treiber im Ordner ''RP6common'' - je nachdem, ob ihr einen I2C Master oder einen I2C Slave benötigt. Beides zusammen geht nicht!&lt;br /&gt;
Zum Abschluss müssen wir nur noch die '''Include-Pfade einstellen'''. Macht dazu im Solution Explorer einen '''Rechtsklick auf euer Projekt''' und wählt '''Properties'''. Navigiert danach zu '''Toolchain''' -&amp;gt; '''Directories''' und fügt die Ordner ''RP6common'' und ''RP6base'' hinzu. Danach seid ihr fertig mit der Konfiguration des AVR Studios.&lt;br /&gt;
[[Bild:Includes.jpg|thumb|Include-Verzeichnisse anpassen]]&lt;br /&gt;
Kopiert nun eines der Beispielprogramme in euer Main-File und klickt auf '''Compile'''. Der Kompilierungsvorgang sollte nun ohne Fehler sauber durchgeführt werden.&lt;br /&gt;
==Als Template einrichten==&lt;br /&gt;
Zugegeben: Dieser Einrichtungsvorgang ist ziemlich aufwändig und insbesondere für Einsteiger sehr verwirrend. Daher bietet das AVR Studio die Möglichkeit an, Projekte als Templates zu speichern und als Vorlage für neue Projekte zu nutzen. Somit habt ihr nur einmal den oben beschriebenen Konfigurationsaufwand, den Rest erledigt das Studio danach für euch.&lt;br /&gt;
Die Einrichtung als Template geht sehr einfach: Öffnet euer Projekt und klickt auf '''File''' -&amp;gt; '''Export Template'''. Wählt danach '''Project Template''' aus. Füllt im nachfolgenden Dialog die Felder nach Belieben aus und klickt auf '''Finish''' - fertig!&lt;br /&gt;
[[Bild:Template2.jpg|thumb|Als Template exportieren]]&lt;br /&gt;
==Templates als Vorlage für neue Projekte==&lt;br /&gt;
Nachdem ihr euer Projekt als Template gespeichert habt ist es denkbar einfach, daraus ein neues Projekt zu erzeugen. Wählt einfach '''File''' -&amp;gt; '''New''' -&amp;gt; '''Project''' und wählt euer Template aus, benennt das Projekt und klickt auf '''OK'''. Jetzt müsst ihr nichts mehr einstellen, stattdessen könnt ihr direkt mit dem Programmieren beginnen!&lt;br /&gt;
[[Bild:Template benutzen.jpg|thumb|Neues Projekt mit Template erstellen]]&lt;br /&gt;
==Templates installieren==&lt;br /&gt;
Und jetzt die gute Nachricht: Ihr müsst die ganze Konfiguration gar nicht selbst durchführen!&lt;br /&gt;
Ladet stattdessen einfach folgendes Template herunter:&lt;br /&gt;
[http://www.roboternetz.de/community/attachment.php?attachmentid=24525&amp;amp;d=1360933852 RP6 Base Template für Atmel Studio 5.1 und 6]&lt;br /&gt;
===Atmel Studio 5.1===&lt;br /&gt;
Navigiert nun in das Verzeichnis ''C:\Users\DeinBenutzerName\Documents\AVRStudio 5.1\Templates\ProjectTemplates'' und kopiert die heruntergeladene Datei (nicht entpacken!) dorthin.&lt;br /&gt;
Startet nun das AVR Studio und fahrt wie in &amp;quot;Templates als Vorlage für neue Projekte&amp;quot; beschrieben fort.&lt;br /&gt;
===Atmel Studio 6===&lt;br /&gt;
Navigiert nun in das Verzeichnis ''C:\Users\DeinBenutzerName\Documents\Atmel Studio\Templates\ProjectTemplates'' und kopiert die heruntergeladene Datei (nicht entpacken!) dorthin.&lt;br /&gt;
Startet nun das AVR Studio und fahrt wie in &amp;quot;Templates als Vorlage für neue Projekte&amp;quot; beschrieben fort.&lt;br /&gt;
==Weblinks==&lt;br /&gt;
*[http://www.atmel.com/microsite/atmel_studio6/ AVR Studio 6 Hauptseite]&lt;br /&gt;
*[http://www.atmel.com/tools/studioarchive.aspx AVR Studio Archiv]&lt;br /&gt;
*[http://www.arexx.com/rp6/html/en/software.htm RP6 Softwareseite]&lt;br /&gt;
*[http://www.roboternetz.de/community/attachment.php?attachmentid=24525&amp;amp;d=1360933852 RP6 Base Template für Atmel Studio 5.1 und 6]&lt;br /&gt;
==Quellen==&lt;br /&gt;
Ich versichere hiermit, dass ich diesen Beitrag komplett selbst verfasst habe&lt;br /&gt;
und dass er auch keine fremden Rechte verletzt. Ebenso wurden sämtliche Grafiken selbst erstellt.&lt;br /&gt;
Fremde Quellen wurden nicht benutzt, ich beschreibe hier meine eigenen Erfahrungen mit dem AVR Studio.&lt;br /&gt;
==Autoren==&lt;br /&gt;
--[[Benutzer:MaxWeb|MaxWeb]] 14:22, 15. Feb 2013 (CET)&lt;/div&gt;</summary>
		<author><name>MaxWeb</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=RP6_mit_AVR_Studio&amp;diff=21701</id>
		<title>RP6 mit AVR Studio</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=RP6_mit_AVR_Studio&amp;diff=21701"/>
				<updated>2013-02-15T15:42:43Z</updated>
		
		<summary type="html">&lt;p&gt;MaxWeb: Pfad für AS5.1 angepasst&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Robotikeinstieg]]&lt;br /&gt;
==Allgemein==&lt;br /&gt;
Dieser Artikel beschäftigt sich nicht mit der Programmierung des RP6 an sich.&lt;br /&gt;
Stattdessen wird hier die Einrichtung der Programmierumgebung AVR Studio in den Versionen 5.1 / 6 für den RP6 betrachtet.&lt;br /&gt;
Dabei handelt es sich um eine auf dem Microsoft Visual Studio basierende Entwicklungsumgebung, die von Atmel bereitgestellt wird und eine Vielzahl von AVR-Mikroprozessoren unterstützt.&lt;br /&gt;
Es bietet einen Simulator, eine bereits &amp;quot;eingebaute&amp;quot; Toolchain sowie komfortable Funktionen zum Flashen des Chips.&lt;br /&gt;
Diese Anleitung kann - in abgewandelter Form - natürlich auch für die Erweiterungsmodule M32 und M256 Wifi verwendte werden.&lt;br /&gt;
==Benötigte Werkzeuge==&lt;br /&gt;
*[http://www.atmel.com/microsite/atmel_studio6/ AVR Studio 6 Hauptseite] zum Download des RP6&lt;br /&gt;
*[http://www.atmel.com/tools/studioarchive.aspx AVR Studio Archiv] ,falls eine ältere Version gewünscht ist&lt;br /&gt;
*[http://www.arexx.com/rp6/html/en/software.htm RP6 Softwareseite] zum Download der RP6Lib und der Beispielprojekte&lt;br /&gt;
*Natürlich der RP6&lt;br /&gt;
==Das erste Projekt==&lt;br /&gt;
Jetzt geht es ans Anlegen unseres ersten Projekts. Klickt dazu einfach auf '''File''' -&amp;gt; '''New''' -&amp;gt; '''Project'''. Wählt '''AVR GCC Executable''' aus und gebt Eurem Projekt einen aussagekräftigen Namen.&lt;br /&gt;
[[Bild:NewProject.jpg|thumb|Ein neues AVRGCC-Projekt erstellen]]&lt;br /&gt;
Nun erscheint ein Fenster, in dem der Zielcontroller ausgewählt werden muss. Wählt hier den '''ATmega32''' aus und bestätigt mit '''OK'''.&lt;br /&gt;
Gut, jetzt ist das erste Projekt angelegt. Es ist nun an der Zeit, die RP6 Library in das Projekt aufzunehmen, die ihr bereits irgendwo auf euren Computer entpackt haben solltet. Darin befindet sich ein Ordner namens ''RP6Lib''. Dieser muss nun mit Windows in das neue Projektverzeichnis kopiert werden. Dieses sieht typischerweise folgendermaßen aus: ''C:\Users\DeinBenutzerName\Documents\Atmel Studio\DeinProjektName\DeinProjektName''.&lt;br /&gt;
&lt;br /&gt;
Nun haben wir die Dateien am richtigen Platz, müssen dem AVR Studio jedoch noch mitteilen, dass wir die Dateien gerne in unser Projekt aufnehmen möchten.&lt;br /&gt;
Im Unterfenster '''Solution Explorer''' befindet sich eine Schaltfläche namens '''Show All Files'''. Danach erscheint der Ordner ''RP6Lib'' ausgegraut im Solution Explorer.&lt;br /&gt;
Macht einen Rechtsklick darauf und wählt '''Include in Project'''. Jetzt ist die gesamte RP6Lib hinzugefügt, allerdings benötigen wir nur die Funktionen der RP6 Base!&lt;br /&gt;
[[Bild:ShowAll.jpg|thumb|Versteckte Dateien anzeigen]]&lt;br /&gt;
Daher müssen wir die Ordner ''RP6control'' und ''RP6control_M256_WIFI'' wieder '''entfernen''': Wählt beide aus und löscht beide Ordner (Del oder auch per Rechtsklick). Im folgenden Dialog wählt ihr dann '''Remove'''. Das Gleiche macht ihr nun für zwei der vier I2C-Treiber im Ordner ''RP6common'' - je nachdem, ob ihr einen I2C Master oder einen I2C Slave benötigt. Beides zusammen geht nicht!&lt;br /&gt;
Zum Abschluss müssen wir nur noch die '''Include-Pfade einstellen'''. Macht dazu im Solution Explorer einen '''Rechtsklick auf euer Projekt''' und wählt '''Properties'''. Navigiert danach zu '''Toolchain''' -&amp;gt; '''Directories''' und fügt die Ordner ''RP6common'' und ''RP6base'' hinzu. Danach seid ihr fertig mit der Konfiguration des AVR Studios.&lt;br /&gt;
[[Bild:Includes.jpg|thumb|Include-Verzeichnisse anpassen]]&lt;br /&gt;
Kopiert nun eines der Beispielprogramme in euer Main-File und klickt auf '''Compile'''. Der Kompilierungsvorgang sollte nun ohne Fehler sauber durchgeführt werden.&lt;br /&gt;
==Als Template einrichten==&lt;br /&gt;
Zugegeben: Dieser Einrichtungsvorgang ist ziemlich aufwändig und insbesondere für Einsteiger sehr verwirrend. Daher bietet das AVR Studio die Möglichkeit an, Projekte als Templates zu speichern und als Vorlage für neue Projekte zu nutzen. Somit habt ihr nur einmal den oben beschriebenen Konfigurationsaufwand, den Rest erledigt das Studio danach für euch.&lt;br /&gt;
Die Einrichtung als Template geht sehr einfach: Öffnet euer Projekt und klickt auf '''File''' -&amp;gt; '''Export Template'''. Wählt danach '''Project Template''' aus. Füllt im nachfolgenden Dialog die Felder nach Belieben aus und klickt auf '''Finish''' - fertig!&lt;br /&gt;
[[Bild:Template2.jpg|thumb|Als Template exportieren]]&lt;br /&gt;
==Templates als Vorlage für neue Projekte==&lt;br /&gt;
Nachdem ihr euer Projekt als Template gespeichert habt ist es denkbar einfach, daraus ein neues Projekt zu erzeugen. Wählt einfach '''File''' -&amp;gt; '''New''' -&amp;gt; '''Project''' und wählt euer Template aus, benennt das Projekt und klickt auf '''OK'''. Jetzt müsst ihr nichts mehr einstellen, stattdessen könnt ihr direkt mit dem Programmieren beginnen!&lt;br /&gt;
[[Bild:Template benutzen.jpg|thumb|Neues Projekt mit Template erstellen]]&lt;br /&gt;
==Templates installieren==&lt;br /&gt;
Und jetzt die gute Nachricht: Ihr müsst die ganze Konfiguration gar nicht selbst durchführen!&lt;br /&gt;
Ladet stattdessen einfach folgendes Template herunter:&lt;br /&gt;
[http://www.roboternetz.de/community/attachment.php?attachmentid=24525&amp;amp;d=1360933852 RP6 Base Template für Atmel Studio 5.1 und 6]&lt;br /&gt;
===Atmel Studio 5.1===&lt;br /&gt;
Navigiert nun in das Verzeichnis ''C:\Users\DeinBenutzerName\Documents\AVRStudio 5.1\Templates\ProjectTemplates'' und kopiert die heruntergeladene Datei (nicht entpacken!) dorthin.&lt;br /&gt;
Startet nun das AVR Studio und fahrt wie in &amp;quot;Templates als Vorlage für neue Projekte&amp;quot; beschrieben fort.&lt;br /&gt;
===Atmel Studio 6===&lt;br /&gt;
Navigiert nun in das Verzeichnis ''C:\Users\DeinBenutzerName\Documents\Atmel Studio\Templates\ProjectTemplates'' und kopiert die heruntergeladene Datei (nicht entpacken!) dorthin.&lt;br /&gt;
Startet nun das AVR Studio und fahrt wie in &amp;quot;Templates als Vorlage für neue Projekte&amp;quot; beschrieben fort.&lt;br /&gt;
==Weblinks==&lt;br /&gt;
*[http://www.atmel.com/microsite/atmel_studio6/ AVR Studio 6 Hauptseite]&lt;br /&gt;
*[http://www.atmel.com/tools/studioarchive.aspx AVR Studio Archiv]&lt;br /&gt;
*[http://www.arexx.com/rp6/html/en/software.htm RP6 Softwareseite]&lt;br /&gt;
*[http://www.roboternetz.de/community/attachment.php?attachmentid=24525&amp;amp;d=1360933852 RP6 Base Template für Atmel Studio 6]&lt;br /&gt;
==Quellen==&lt;br /&gt;
Ich versichere hiermit, dass ich diesen Beitrag komplett selbst verfasst habe&lt;br /&gt;
und dass er auch keine fremden Rechte verletzt. Ebenso wurden sämtliche Grafiken selbst erstellt.&lt;br /&gt;
Fremde Quellen wurden nicht benutzt, ich beschreibe hier meine eigenen Erfahrungen mit dem AVR Studio.&lt;br /&gt;
==Autoren==&lt;br /&gt;
--[[Benutzer:MaxWeb|MaxWeb]] 14:22, 15. Feb 2013 (CET)&lt;/div&gt;</summary>
		<author><name>MaxWeb</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=RP6_mit_AVR_Studio&amp;diff=21700</id>
		<title>RP6 mit AVR Studio</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=RP6_mit_AVR_Studio&amp;diff=21700"/>
				<updated>2013-02-15T13:32:11Z</updated>
		
		<summary type="html">&lt;p&gt;MaxWeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Robotikeinstieg]]&lt;br /&gt;
==Allgemein==&lt;br /&gt;
Dieser Artikel beschäftigt sich nicht mit der Programmierung des RP6 an sich.&lt;br /&gt;
Stattdessen wird hier die Einrichtung der Programmierumgebung AVR Studio in den Versionen 5.1 / 6 für den RP6 betrachtet.&lt;br /&gt;
Dabei handelt es sich um eine auf dem Microsoft Visual Studio basierende Entwicklungsumgebung, die von Atmel bereitgestellt wird und eine Vielzahl von AVR-Mikroprozessoren unterstützt.&lt;br /&gt;
Es bietet einen Simulator, eine bereits &amp;quot;eingebaute&amp;quot; Toolchain sowie komfortable Funktionen zum Flashen des Chips.&lt;br /&gt;
Diese Anleitung kann - in abgewandelter Form - natürlich auch für die Erweiterungsmodule M32 und M256 Wifi verwendte werden.&lt;br /&gt;
==Benötigte Werkzeuge==&lt;br /&gt;
*[http://www.atmel.com/microsite/atmel_studio6/ AVR Studio 6 Hauptseite] zum Download des RP6&lt;br /&gt;
*[http://www.atmel.com/tools/studioarchive.aspx AVR Studio Archiv] ,falls eine ältere Version gewünscht ist&lt;br /&gt;
*[http://www.arexx.com/rp6/html/en/software.htm RP6 Softwareseite] zum Download der RP6Lib und der Beispielprojekte&lt;br /&gt;
*Natürlich der RP6&lt;br /&gt;
==Das erste Projekt==&lt;br /&gt;
Jetzt geht es ans Anlegen unseres ersten Projekts. Klickt dazu einfach auf '''File''' -&amp;gt; '''New''' -&amp;gt; '''Project'''. Wählt '''AVR GCC Executable''' aus und gebt Eurem Projekt einen aussagekräftigen Namen.&lt;br /&gt;
[[Bild:NewProject.jpg|thumb|Ein neues AVRGCC-Projekt erstellen]]&lt;br /&gt;
Nun erscheint ein Fenster, in dem der Zielcontroller ausgewählt werden muss. Wählt hier den '''ATmega32''' aus und bestätigt mit '''OK'''.&lt;br /&gt;
Gut, jetzt ist das erste Projekt angelegt. Es ist nun an der Zeit, die RP6 Library in das Projekt aufzunehmen, die ihr bereits irgendwo auf euren Computer entpackt haben solltet. Darin befindet sich ein Ordner namens ''RP6Lib''. Dieser muss nun mit Windows in das neue Projektverzeichnis kopiert werden. Dieses sieht typischerweise folgendermaßen aus: ''C:\Users\DeinBenutzerName\Documents\Atmel Studio\DeinProjektName\DeinProjektName''.&lt;br /&gt;
&lt;br /&gt;
Nun haben wir die Dateien am richtigen Platz, müssen dem AVR Studio jedoch noch mitteilen, dass wir die Dateien gerne in unser Projekt aufnehmen möchten.&lt;br /&gt;
Im Unterfenster '''Solution Explorer''' befindet sich eine Schaltfläche namens '''Show All Files'''. Danach erscheint der Ordner ''RP6Lib'' ausgegraut im Solution Explorer.&lt;br /&gt;
Macht einen Rechtsklick darauf und wählt '''Include in Project'''. Jetzt ist die gesamte RP6Lib hinzugefügt, allerdings benötigen wir nur die Funktionen der RP6 Base!&lt;br /&gt;
[[Bild:ShowAll.jpg|thumb|Versteckte Dateien anzeigen]]&lt;br /&gt;
Daher müssen wir die Ordner ''RP6control'' und ''RP6control_M256_WIFI'' wieder '''entfernen''': Wählt beide aus und löscht beide Ordner (Del oder auch per Rechtsklick). Im folgenden Dialog wählt ihr dann '''Remove'''. Das Gleiche macht ihr nun für zwei der vier I2C-Treiber im Ordner ''RP6common'' - je nachdem, ob ihr einen I2C Master oder einen I2C Slave benötigt. Beides zusammen geht nicht!&lt;br /&gt;
Zum Abschluss müssen wir nur noch die '''Include-Pfade einstellen'''. Macht dazu im Solution Explorer einen '''Rechtsklick auf euer Projekt''' und wählt '''Properties'''. Navigiert danach zu '''Toolchain''' -&amp;gt; '''Directories''' und fügt die Ordner ''RP6common'' und ''RP6base'' hinzu. Danach seid ihr fertig mit der Konfiguration des AVR Studios.&lt;br /&gt;
[[Bild:Includes.jpg|thumb|Include-Verzeichnisse anpassen]]&lt;br /&gt;
Kopiert nun eines der Beispielprogramme in euer Main-File und klickt auf '''Compile'''. Der Kompilierungsvorgang sollte nun ohne Fehler sauber durchgeführt werden.&lt;br /&gt;
==Als Template einrichten==&lt;br /&gt;
Zugegeben: Dieser Einrichtungsvorgang ist ziemlich aufwändig und insbesondere für Einsteiger sehr verwirrend. Daher bietet das AVR Studio die Möglichkeit an, Projekte als Templates zu speichern und als Vorlage für neue Projekte zu nutzen. Somit habt ihr nur einmal den oben beschriebenen Konfigurationsaufwand, den Rest erledigt das Studio danach für euch.&lt;br /&gt;
Die Einrichtung als Template geht sehr einfach: Öffnet euer Projekt und klickt auf '''File''' -&amp;gt; '''Export Template'''. Wählt danach '''Project Template''' aus. Füllt im nachfolgenden Dialog die Felder nach Belieben aus und klickt auf '''Finish''' - fertig!&lt;br /&gt;
[[Bild:Template2.jpg|thumb|Als Template exportieren]]&lt;br /&gt;
==Templates als Vorlage für neue Projekte==&lt;br /&gt;
Nachdem ihr euer Projekt als Template gespeichert habt ist es denkbar einfach, daraus ein neues Projekt zu erzeugen. Wählt einfach '''File''' -&amp;gt; '''New''' -&amp;gt; '''Project''' und wählt euer Template aus, benennt das Projekt und klickt auf '''OK'''. Jetzt müsst ihr nichts mehr einstellen, stattdessen könnt ihr direkt mit dem Programmieren beginnen!&lt;br /&gt;
[[Bild:Template benutzen.jpg|thumb|Neues Projekt mit Template erstellen]]&lt;br /&gt;
==Templates installieren==&lt;br /&gt;
Und jetzt die gute Nachricht: Ihr müsst die ganze Konfiguration gar nicht selbst durchführen! Ladet stattdessen einfach folgendes Template herunter:&lt;br /&gt;
[http://www.roboternetz.de/community/attachment.php?attachmentid=24525&amp;amp;d=1360933852 RP6 Base Template für Atmel Studio 6]&lt;br /&gt;
Navigiert nun in das Verzeichnis ''C:\Users\DeinBenutzerName\Documents\Atmel Studio\Templates\ProjectTemplates'' und kopiert die heruntergeladene Datei (nicht entpacken!) dorthin.&lt;br /&gt;
Startet nun das AVR Studio und fahrt wie in &amp;quot;Templates als Vorlage für neue Projekte&amp;quot; beschrieben fort.&lt;br /&gt;
==Weblinks==&lt;br /&gt;
*[http://www.atmel.com/microsite/atmel_studio6/ AVR Studio 6 Hauptseite]&lt;br /&gt;
*[http://www.atmel.com/tools/studioarchive.aspx AVR Studio Archiv]&lt;br /&gt;
*[http://www.arexx.com/rp6/html/en/software.htm RP6 Softwareseite]&lt;br /&gt;
*[http://www.roboternetz.de/community/attachment.php?attachmentid=24525&amp;amp;d=1360933852 RP6 Base Template für Atmel Studio 6]&lt;br /&gt;
==Quellen==&lt;br /&gt;
Ich versichere hiermit, dass ich diesen Beitrag komplett selbst verfasst habe&lt;br /&gt;
und dass er auch keine fremden Rechte verletzt. Ebenso wurden sämtliche Grafiken selbst erstellt.&lt;br /&gt;
Fremde Quellen wurden nicht benutzt, ich beschreibe hier meine eigenen Erfahrungen mit dem AVR Studio.&lt;br /&gt;
==Autoren==&lt;br /&gt;
--[[Benutzer:MaxWeb|MaxWeb]] 14:22, 15. Feb 2013 (CET)&lt;/div&gt;</summary>
		<author><name>MaxWeb</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=RP6_mit_AVR_Studio&amp;diff=21699</id>
		<title>RP6 mit AVR Studio</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=RP6_mit_AVR_Studio&amp;diff=21699"/>
				<updated>2013-02-15T13:31:36Z</updated>
		
		<summary type="html">&lt;p&gt;MaxWeb: Quellenangabe hat gefehlt...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Robotikeinstieg]]&lt;br /&gt;
==Allgemein==&lt;br /&gt;
Dieser Artikel beschäftigt sich nicht mit der Programmierung des RP6 an sich.&lt;br /&gt;
Stattdessen wird hier die Einrichtung der Programmierumgebung AVR Studio in den Versionen 5.1 / 6 für den RP6 betrachtet.&lt;br /&gt;
Dabei handelt es sich um eine auf dem Microsoft Visual Studio basierende Entwicklungsumgebung, die von Atmel bereitgestellt wird und eine Vielzahl von AVR-Mikroprozessoren unterstützt.&lt;br /&gt;
Es bietet einen Simulator, eine bereits &amp;quot;eingebaute&amp;quot; Toolchain sowie komfortable Funktionen zum Flashen des Chips.&lt;br /&gt;
Diese Anleitung kann - in abgewandelter Form - natürlich auch für die Erweiterungsmodule M32 und M256 Wifi verwendte werden.&lt;br /&gt;
==Benötigte Werkzeuge==&lt;br /&gt;
*[http://www.atmel.com/microsite/atmel_studio6/ AVR Studio 6 Hauptseite] zum Download des RP6&lt;br /&gt;
*[http://www.atmel.com/tools/studioarchive.aspx AVR Studio Archiv] ,falls eine ältere Version gewünscht ist&lt;br /&gt;
*[http://www.arexx.com/rp6/html/en/software.htm RP6 Softwareseite] zum Download der RP6Lib und der Beispielprojekte&lt;br /&gt;
*Natürlich der RP6&lt;br /&gt;
==Das erste Projekt==&lt;br /&gt;
Jetzt geht es ans Anlegen unseres ersten Projekts. Klickt dazu einfach auf '''File''' -&amp;gt; '''New''' -&amp;gt; '''Project'''. Wählt '''AVR GCC Executable''' aus und gebt Eurem Projekt einen aussagekräftigen Namen.&lt;br /&gt;
[[Bild:NewProject.jpg|thumb|Ein neues AVRGCC-Projekt erstellen]]&lt;br /&gt;
Nun erscheint ein Fenster, in dem der Zielcontroller ausgewählt werden muss. Wählt hier den '''ATmega32''' aus und bestätigt mit '''OK'''.&lt;br /&gt;
Gut, jetzt ist das erste Projekt angelegt. Es ist nun an der Zeit, die RP6 Library in das Projekt aufzunehmen, die ihr bereits irgendwo auf euren Computer entpackt haben solltet. Darin befindet sich ein Ordner namens ''RP6Lib''. Dieser muss nun mit Windows in das neue Projektverzeichnis kopiert werden. Dieses sieht typischerweise folgendermaßen aus: ''C:\Users\DeinBenutzerName\Documents\Atmel Studio\DeinProjektName\DeinProjektName''.&lt;br /&gt;
&lt;br /&gt;
Nun haben wir die Dateien am richtigen Platz, müssen dem AVR Studio jedoch noch mitteilen, dass wir die Dateien gerne in unser Projekt aufnehmen möchten.&lt;br /&gt;
Im Unterfenster '''Solution Explorer''' befindet sich eine Schaltfläche namens '''Show All Files'''. Danach erscheint der Ordner ''RP6Lib'' ausgegraut im Solution Explorer.&lt;br /&gt;
Macht einen Rechtsklick darauf und wählt '''Include in Project'''. Jetzt ist die gesamte RP6Lib hinzugefügt, allerdings benötigen wir nur die Funktionen der RP6 Base!&lt;br /&gt;
[[Bild:ShowAll.jpg|thumb|Versteckte Dateien anzeigen]]&lt;br /&gt;
Daher müssen wir die Ordner ''RP6control'' und ''RP6control_M256_WIFI'' wieder '''entfernen''': Wählt beide aus und löscht beide Ordner (Del oder auch per Rechtsklick). Im folgenden Dialog wählt ihr dann '''Remove'''. Das Gleiche macht ihr nun für zwei der vier I2C-Treiber im Ordner ''RP6common'' - je nachdem, ob ihr einen I2C Master oder einen I2C Slave benötigt. Beides zusammen geht nicht!&lt;br /&gt;
Zum Abschluss müssen wir nur noch die '''Include-Pfade einstellen'''. Macht dazu im Solution Explorer einen '''Rechtsklick auf euer Projekt''' und wählt '''Properties'''. Navigiert danach zu '''Toolchain''' -&amp;gt; '''Directories''' und fügt die Ordner ''RP6common'' und ''RP6base'' hinzu. Danach seid ihr fertig mit der Konfiguration des AVR Studios.&lt;br /&gt;
[[Bild:Includes.jpg|thumb|Include-Verzeichnisse anpassen]]&lt;br /&gt;
Kopiert nun eines der Beispielprogramme in euer Main-File und klickt auf '''Compile'''. Der Kompilierungsvorgang sollte nun ohne Fehler sauber durchgeführt werden.&lt;br /&gt;
==Als Template einrichten==&lt;br /&gt;
Zugegeben: Dieser Einrichtungsvorgang ist ziemlich aufwändig und insbesondere für Einsteiger sehr verwirrend. Daher bietet das AVR Studio die Möglichkeit an, Projekte als Templates zu speichern und als Vorlage für neue Projekte zu nutzen. Somit habt ihr nur einmal den oben beschriebenen Konfigurationsaufwand, den Rest erledigt das Studio danach für euch.&lt;br /&gt;
Die Einrichtung als Template geht sehr einfach: Öffnet euer Projekt und klickt auf '''File''' -&amp;gt; '''Export Template'''. Wählt danach '''Project Template''' aus. Füllt im nachfolgenden Dialog die Felder nach Belieben aus und klickt auf '''Finish''' - fertig!&lt;br /&gt;
[[Bild:Template2.jpg|thumb|Als Template exportieren]]&lt;br /&gt;
==Templates als Vorlage für neue Projekte==&lt;br /&gt;
Nachdem ihr euer Projekt als Template gespeichert habt ist es denkbar einfach, daraus ein neues Projekt zu erzeugen. Wählt einfach '''File''' -&amp;gt; '''New''' -&amp;gt; '''Project''' und wählt euer Template aus, benennt das Projekt und klickt auf '''OK'''. Jetzt müsst ihr nichts mehr einstellen, stattdessen könnt ihr direkt mit dem Programmieren beginnen!&lt;br /&gt;
[[Bild:Template benutzen.jpg|thumb|Neues Projekt mit Template erstellen]]&lt;br /&gt;
==Templates installieren==&lt;br /&gt;
Und jetzt die gute Nachricht: Ihr müsst die ganze Konfiguration gar nicht selbst durchführen! Ladet stattdessen einfach folgendes Template herunter:&lt;br /&gt;
[http://www.roboternetz.de/community/attachment.php?attachmentid=24525&amp;amp;d=1360933852 RP6 Base Template für Atmel Studio 6]&lt;br /&gt;
Navigiert nun in das Verzeichnis ''C:\Users\DeinBenutzerName\Documents\Atmel Studio\Templates\ProjectTemplates'' und kopiert die heruntergeladene Datei (nicht entpacken!) dorthin.&lt;br /&gt;
Startet nun das AVR Studio und fahrt wie in &amp;quot;Templates als Vorlage für neue Projekte&amp;quot; beschrieben fort.&lt;br /&gt;
==Weblinks==&lt;br /&gt;
*[http://www.atmel.com/microsite/atmel_studio6/ AVR Studio 6 Hauptseite]&lt;br /&gt;
*[http://www.atmel.com/tools/studioarchive.aspx AVR Studio Archiv]&lt;br /&gt;
*[http://www.arexx.com/rp6/html/en/software.htm RP6 Softwareseite]&lt;br /&gt;
*[http://www.roboternetz.de/community/attachment.php?attachmentid=24525&amp;amp;d=1360933852 RP6 Base Template für Atmel Studio 6]&lt;br /&gt;
==Quellen==&lt;br /&gt;
Ich versichere hiermit, dass ich diesen Beitrag komplett selbst verfasst habe und dass er auch keine fremden Rechte verletzt.&lt;br /&gt;
Ebenso wurden sämtliche Grafiken selbst erstellt.&lt;br /&gt;
Fremde Quellen wurden nicht benutzt, ich beschreibe hier meine eigenen Erfahrungen mit dem AVR Studio.&lt;br /&gt;
==Autoren==&lt;br /&gt;
--[[Benutzer:MaxWeb|MaxWeb]] 14:22, 15. Feb 2013 (CET)&lt;/div&gt;</summary>
		<author><name>MaxWeb</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=RP6_mit_AVR_Studio&amp;diff=21698</id>
		<title>RP6 mit AVR Studio</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=RP6_mit_AVR_Studio&amp;diff=21698"/>
				<updated>2013-02-15T13:27:36Z</updated>
		
		<summary type="html">&lt;p&gt;MaxWeb: Kategorie korrigiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Robotikeinstieg]]&lt;br /&gt;
==Allgemein==&lt;br /&gt;
Dieser Artikel beschäftigt sich nicht mit der Programmierung des RP6 an sich.&lt;br /&gt;
Stattdessen wird hier die Einrichtung der Programmierumgebung AVR Studio in den Versionen 5.1 / 6 für den RP6 betrachtet.&lt;br /&gt;
Dabei handelt es sich um eine auf dem Microsoft Visual Studio basierende Entwicklungsumgebung, die von Atmel bereitgestellt wird und eine Vielzahl von AVR-Mikroprozessoren unterstützt.&lt;br /&gt;
Es bietet einen Simulator, eine bereits &amp;quot;eingebaute&amp;quot; Toolchain sowie komfortable Funktionen zum Flashen des Chips.&lt;br /&gt;
Diese Anleitung kann - in abgewandelter Form - natürlich auch für die Erweiterungsmodule M32 und M256 Wifi verwendte werden.&lt;br /&gt;
==Benötigte Werkzeuge==&lt;br /&gt;
*[http://www.atmel.com/microsite/atmel_studio6/ AVR Studio 6 Hauptseite] zum Download des RP6&lt;br /&gt;
*[http://www.atmel.com/tools/studioarchive.aspx AVR Studio Archiv] ,falls eine ältere Version gewünscht ist&lt;br /&gt;
*[http://www.arexx.com/rp6/html/en/software.htm RP6 Softwareseite] zum Download der RP6Lib und der Beispielprojekte&lt;br /&gt;
*Natürlich der RP6&lt;br /&gt;
==Das erste Projekt==&lt;br /&gt;
Jetzt geht es ans Anlegen unseres ersten Projekts. Klickt dazu einfach auf '''File''' -&amp;gt; '''New''' -&amp;gt; '''Project'''. Wählt '''AVR GCC Executable''' aus und gebt Eurem Projekt einen aussagekräftigen Namen.&lt;br /&gt;
[[Bild:NewProject.jpg|thumb|Ein neues AVRGCC-Projekt erstellen]]&lt;br /&gt;
Nun erscheint ein Fenster, in dem der Zielcontroller ausgewählt werden muss. Wählt hier den '''ATmega32''' aus und bestätigt mit '''OK'''.&lt;br /&gt;
Gut, jetzt ist das erste Projekt angelegt. Es ist nun an der Zeit, die RP6 Library in das Projekt aufzunehmen, die ihr bereits irgendwo auf euren Computer entpackt haben solltet. Darin befindet sich ein Ordner namens ''RP6Lib''. Dieser muss nun mit Windows in das neue Projektverzeichnis kopiert werden. Dieses sieht typischerweise folgendermaßen aus: ''C:\Users\DeinBenutzerName\Documents\Atmel Studio\DeinProjektName\DeinProjektName''.&lt;br /&gt;
&lt;br /&gt;
Nun haben wir die Dateien am richtigen Platz, müssen dem AVR Studio jedoch noch mitteilen, dass wir die Dateien gerne in unser Projekt aufnehmen möchten.&lt;br /&gt;
Im Unterfenster '''Solution Explorer''' befindet sich eine Schaltfläche namens '''Show All Files'''. Danach erscheint der Ordner ''RP6Lib'' ausgegraut im Solution Explorer.&lt;br /&gt;
Macht einen Rechtsklick darauf und wählt '''Include in Project'''. Jetzt ist die gesamte RP6Lib hinzugefügt, allerdings benötigen wir nur die Funktionen der RP6 Base!&lt;br /&gt;
[[Bild:ShowAll.jpg|thumb|Versteckte Dateien anzeigen]]&lt;br /&gt;
Daher müssen wir die Ordner ''RP6control'' und ''RP6control_M256_WIFI'' wieder '''entfernen''': Wählt beide aus und löscht beide Ordner (Del oder auch per Rechtsklick). Im folgenden Dialog wählt ihr dann '''Remove'''. Das Gleiche macht ihr nun für zwei der vier I2C-Treiber im Ordner ''RP6common'' - je nachdem, ob ihr einen I2C Master oder einen I2C Slave benötigt. Beides zusammen geht nicht!&lt;br /&gt;
Zum Abschluss müssen wir nur noch die '''Include-Pfade einstellen'''. Macht dazu im Solution Explorer einen '''Rechtsklick auf euer Projekt''' und wählt '''Properties'''. Navigiert danach zu '''Toolchain''' -&amp;gt; '''Directories''' und fügt die Ordner ''RP6common'' und ''RP6base'' hinzu. Danach seid ihr fertig mit der Konfiguration des AVR Studios.&lt;br /&gt;
[[Bild:Includes.jpg|thumb|Include-Verzeichnisse anpassen]]&lt;br /&gt;
Kopiert nun eines der Beispielprogramme in euer Main-File und klickt auf '''Compile'''. Der Kompilierungsvorgang sollte nun ohne Fehler sauber durchgeführt werden.&lt;br /&gt;
==Als Template einrichten==&lt;br /&gt;
Zugegeben: Dieser Einrichtungsvorgang ist ziemlich aufwändig und insbesondere für Einsteiger sehr verwirrend. Daher bietet das AVR Studio die Möglichkeit an, Projekte als Templates zu speichern und als Vorlage für neue Projekte zu nutzen. Somit habt ihr nur einmal den oben beschriebenen Konfigurationsaufwand, den Rest erledigt das Studio danach für euch.&lt;br /&gt;
Die Einrichtung als Template geht sehr einfach: Öffnet euer Projekt und klickt auf '''File''' -&amp;gt; '''Export Template'''. Wählt danach '''Project Template''' aus. Füllt im nachfolgenden Dialog die Felder nach Belieben aus und klickt auf '''Finish''' - fertig!&lt;br /&gt;
[[Bild:Template2.jpg|thumb|Als Template exportieren]]&lt;br /&gt;
==Templates als Vorlage für neue Projekte==&lt;br /&gt;
Nachdem ihr euer Projekt als Template gespeichert habt ist es denkbar einfach, daraus ein neues Projekt zu erzeugen. Wählt einfach '''File''' -&amp;gt; '''New''' -&amp;gt; '''Project''' und wählt euer Template aus, benennt das Projekt und klickt auf '''OK'''. Jetzt müsst ihr nichts mehr einstellen, stattdessen könnt ihr direkt mit dem Programmieren beginnen!&lt;br /&gt;
[[Bild:Template benutzen.jpg|thumb|Neues Projekt mit Template erstellen]]&lt;br /&gt;
==Templates installieren==&lt;br /&gt;
Und jetzt die gute Nachricht: Ihr müsst die ganze Konfiguration gar nicht selbst durchführen! Ladet stattdessen einfach folgendes Template herunter:&lt;br /&gt;
[http://www.roboternetz.de/community/attachment.php?attachmentid=24525&amp;amp;d=1360933852 RP6 Base Template für Atmel Studio 6]&lt;br /&gt;
Navigiert nun in das Verzeichnis ''C:\Users\DeinBenutzerName\Documents\Atmel Studio\Templates\ProjectTemplates'' und kopiert die heruntergeladene Datei (nicht entpacken!) dorthin.&lt;br /&gt;
Startet nun das AVR Studio und fahrt wie in &amp;quot;Templates als Vorlage für neue Projekte&amp;quot; beschrieben fort.&lt;br /&gt;
==Weblinks==&lt;br /&gt;
*[http://www.atmel.com/microsite/atmel_studio6/ AVR Studio 6 Hauptseite]&lt;br /&gt;
*[http://www.atmel.com/tools/studioarchive.aspx AVR Studio Archiv]&lt;br /&gt;
*[http://www.arexx.com/rp6/html/en/software.htm RP6 Softwareseite]&lt;br /&gt;
*[http://www.roboternetz.de/community/attachment.php?attachmentid=24525&amp;amp;d=1360933852 RP6 Base Template für Atmel Studio 6]&lt;br /&gt;
&lt;br /&gt;
==Autoren==&lt;br /&gt;
--[[Benutzer:MaxWeb|MaxWeb]] 14:22, 15. Feb 2013 (CET)&lt;/div&gt;</summary>
		<author><name>MaxWeb</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=RP6_mit_AVR_Studio&amp;diff=21697</id>
		<title>RP6 mit AVR Studio</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=RP6_mit_AVR_Studio&amp;diff=21697"/>
				<updated>2013-02-15T13:25:01Z</updated>
		
		<summary type="html">&lt;p&gt;MaxWeb: Template angehängt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Allgemein==&lt;br /&gt;
Dieser Artikel beschäftigt sich nicht mit der Programmierung des RP6 an sich.&lt;br /&gt;
Stattdessen wird hier die Einrichtung der Programmierumgebung AVR Studio in den Versionen 5.1 / 6 für den RP6 betrachtet.&lt;br /&gt;
Dabei handelt es sich um eine auf dem Microsoft Visual Studio basierende Entwicklungsumgebung, die von Atmel bereitgestellt wird und eine Vielzahl von AVR-Mikroprozessoren unterstützt.&lt;br /&gt;
Es bietet einen Simulator, eine bereits &amp;quot;eingebaute&amp;quot; Toolchain sowie komfortable Funktionen zum Flashen des Chips.&lt;br /&gt;
Diese Anleitung kann - in abgewandelter Form - natürlich auch für die Erweiterungsmodule M32 und M256 Wifi verwendte werden.&lt;br /&gt;
==Benötigte Werkzeuge==&lt;br /&gt;
*[http://www.atmel.com/microsite/atmel_studio6/ AVR Studio 6 Hauptseite] zum Download des RP6&lt;br /&gt;
*[http://www.atmel.com/tools/studioarchive.aspx AVR Studio Archiv] ,falls eine ältere Version gewünscht ist&lt;br /&gt;
*[http://www.arexx.com/rp6/html/en/software.htm RP6 Softwareseite] zum Download der RP6Lib und der Beispielprojekte&lt;br /&gt;
*Natürlich der RP6&lt;br /&gt;
==Das erste Projekt==&lt;br /&gt;
Jetzt geht es ans Anlegen unseres ersten Projekts. Klickt dazu einfach auf '''File''' -&amp;gt; '''New''' -&amp;gt; '''Project'''. Wählt '''AVR GCC Executable''' aus und gebt Eurem Projekt einen aussagekräftigen Namen.&lt;br /&gt;
[[Bild:NewProject.jpg|thumb|Ein neues AVRGCC-Projekt erstellen]]&lt;br /&gt;
Nun erscheint ein Fenster, in dem der Zielcontroller ausgewählt werden muss. Wählt hier den '''ATmega32''' aus und bestätigt mit '''OK'''.&lt;br /&gt;
Gut, jetzt ist das erste Projekt angelegt. Es ist nun an der Zeit, die RP6 Library in das Projekt aufzunehmen, die ihr bereits irgendwo auf euren Computer entpackt haben solltet. Darin befindet sich ein Ordner namens ''RP6Lib''. Dieser muss nun mit Windows in das neue Projektverzeichnis kopiert werden. Dieses sieht typischerweise folgendermaßen aus: ''C:\Users\DeinBenutzerName\Documents\Atmel Studio\DeinProjektName\DeinProjektName''.&lt;br /&gt;
&lt;br /&gt;
Nun haben wir die Dateien am richtigen Platz, müssen dem AVR Studio jedoch noch mitteilen, dass wir die Dateien gerne in unser Projekt aufnehmen möchten.&lt;br /&gt;
Im Unterfenster '''Solution Explorer''' befindet sich eine Schaltfläche namens '''Show All Files'''. Danach erscheint der Ordner ''RP6Lib'' ausgegraut im Solution Explorer.&lt;br /&gt;
Macht einen Rechtsklick darauf und wählt '''Include in Project'''. Jetzt ist die gesamte RP6Lib hinzugefügt, allerdings benötigen wir nur die Funktionen der RP6 Base!&lt;br /&gt;
[[Bild:ShowAll.jpg|thumb|Versteckte Dateien anzeigen]]&lt;br /&gt;
Daher müssen wir die Ordner ''RP6control'' und ''RP6control_M256_WIFI'' wieder '''entfernen''': Wählt beide aus und löscht beide Ordner (Del oder auch per Rechtsklick). Im folgenden Dialog wählt ihr dann '''Remove'''. Das Gleiche macht ihr nun für zwei der vier I2C-Treiber im Ordner ''RP6common'' - je nachdem, ob ihr einen I2C Master oder einen I2C Slave benötigt. Beides zusammen geht nicht!&lt;br /&gt;
Zum Abschluss müssen wir nur noch die '''Include-Pfade einstellen'''. Macht dazu im Solution Explorer einen '''Rechtsklick auf euer Projekt''' und wählt '''Properties'''. Navigiert danach zu '''Toolchain''' -&amp;gt; '''Directories''' und fügt die Ordner ''RP6common'' und ''RP6base'' hinzu. Danach seid ihr fertig mit der Konfiguration des AVR Studios.&lt;br /&gt;
[[Bild:Includes.jpg|thumb|Include-Verzeichnisse anpassen]]&lt;br /&gt;
Kopiert nun eines der Beispielprogramme in euer Main-File und klickt auf '''Compile'''. Der Kompilierungsvorgang sollte nun ohne Fehler sauber durchgeführt werden.&lt;br /&gt;
==Als Template einrichten==&lt;br /&gt;
Zugegeben: Dieser Einrichtungsvorgang ist ziemlich aufwändig und insbesondere für Einsteiger sehr verwirrend. Daher bietet das AVR Studio die Möglichkeit an, Projekte als Templates zu speichern und als Vorlage für neue Projekte zu nutzen. Somit habt ihr nur einmal den oben beschriebenen Konfigurationsaufwand, den Rest erledigt das Studio danach für euch.&lt;br /&gt;
Die Einrichtung als Template geht sehr einfach: Öffnet euer Projekt und klickt auf '''File''' -&amp;gt; '''Export Template'''. Wählt danach '''Project Template''' aus. Füllt im nachfolgenden Dialog die Felder nach Belieben aus und klickt auf '''Finish''' - fertig!&lt;br /&gt;
[[Bild:Template2.jpg|thumb|Als Template exportieren]]&lt;br /&gt;
==Templates als Vorlage für neue Projekte==&lt;br /&gt;
Nachdem ihr euer Projekt als Template gespeichert habt ist es denkbar einfach, daraus ein neues Projekt zu erzeugen. Wählt einfach '''File''' -&amp;gt; '''New''' -&amp;gt; '''Project''' und wählt euer Template aus, benennt das Projekt und klickt auf '''OK'''. Jetzt müsst ihr nichts mehr einstellen, stattdessen könnt ihr direkt mit dem Programmieren beginnen!&lt;br /&gt;
[[Bild:Template benutzen.jpg|thumb|Neues Projekt mit Template erstellen]]&lt;br /&gt;
==Templates installieren==&lt;br /&gt;
Und jetzt die gute Nachricht: Ihr müsst die ganze Konfiguration gar nicht selbst durchführen! Ladet stattdessen einfach folgendes Template herunter:&lt;br /&gt;
[http://www.roboternetz.de/community/attachment.php?attachmentid=24525&amp;amp;d=1360933852 RP6 Base Template für Atmel Studio 6]&lt;br /&gt;
Navigiert nun in das Verzeichnis ''C:\Users\DeinBenutzerName\Documents\Atmel Studio\Templates\ProjectTemplates'' und kopiert die heruntergeladene Datei (nicht entpacken!) dorthin.&lt;br /&gt;
Startet nun das AVR Studio und fahrt wie in &amp;quot;Templates als Vorlage für neue Projekte&amp;quot; beschrieben fort.&lt;br /&gt;
==Weblinks==&lt;br /&gt;
*[http://www.atmel.com/microsite/atmel_studio6/ AVR Studio 6 Hauptseite]&lt;br /&gt;
*[http://www.atmel.com/tools/studioarchive.aspx AVR Studio Archiv]&lt;br /&gt;
*[http://www.arexx.com/rp6/html/en/software.htm RP6 Softwareseite]&lt;br /&gt;
*[http://www.roboternetz.de/community/attachment.php?attachmentid=24525&amp;amp;d=1360933852 RP6 Base Template für Atmel Studio 6]&lt;br /&gt;
&lt;br /&gt;
==Autoren==&lt;br /&gt;
--[[Benutzer:MaxWeb|MaxWeb]] 14:22, 15. Feb 2013 (CET)&lt;/div&gt;</summary>
		<author><name>MaxWeb</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Datei:Template_benutzen.jpg&amp;diff=21696</id>
		<title>Datei:Template benutzen.jpg</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Datei:Template_benutzen.jpg&amp;diff=21696"/>
				<updated>2013-02-15T13:07:56Z</updated>
		
		<summary type="html">&lt;p&gt;MaxWeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MaxWeb</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Datei:Template2.jpg&amp;diff=21695</id>
		<title>Datei:Template2.jpg</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Datei:Template2.jpg&amp;diff=21695"/>
				<updated>2013-02-15T13:07:46Z</updated>
		
		<summary type="html">&lt;p&gt;MaxWeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MaxWeb</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Datei:Includes.jpg&amp;diff=21694</id>
		<title>Datei:Includes.jpg</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Datei:Includes.jpg&amp;diff=21694"/>
				<updated>2013-02-15T13:07:36Z</updated>
		
		<summary type="html">&lt;p&gt;MaxWeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MaxWeb</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Datei:ShowAll.jpg&amp;diff=21693</id>
		<title>Datei:ShowAll.jpg</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Datei:ShowAll.jpg&amp;diff=21693"/>
				<updated>2013-02-15T13:07:27Z</updated>
		
		<summary type="html">&lt;p&gt;MaxWeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MaxWeb</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Datei:NewProject.jpg&amp;diff=21692</id>
		<title>Datei:NewProject.jpg</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Datei:NewProject.jpg&amp;diff=21692"/>
				<updated>2013-02-15T13:07:08Z</updated>
		
		<summary type="html">&lt;p&gt;MaxWeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>MaxWeb</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=RP6_mit_AVR_Studio&amp;diff=21691</id>
		<title>RP6 mit AVR Studio</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=RP6_mit_AVR_Studio&amp;diff=21691"/>
				<updated>2013-02-15T13:05:51Z</updated>
		
		<summary type="html">&lt;p&gt;MaxWeb: Erste Version, muss noch überarbeitet werden!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ausbauwunsch|Artikel fertig stellen - mach ich noch...}}&lt;br /&gt;
==Allgemein==&lt;br /&gt;
Dieser Artikel beschäftigt sich nicht mit der Programmierung des RP6 an sich.&lt;br /&gt;
Stattdessen wird hier die Einrichtung der Programmierumgebung AVR Studio in den Versionen 5.1 / 6 betrachtet.&lt;br /&gt;
Dabei handelt es sich um eine auf dem Microsoft Visual Studio basierende Entwicklungsumgebung, die von Atmel bereitgestellt wird und eine Vielzahl von AVR-Mikroprozessoren unterstützt.&lt;br /&gt;
Es bietet einen Simulator, eine bereits &amp;quot;eingebaute&amp;quot; Toolchain sowie komfortable Funktionen zum Flashen des Chips.&lt;br /&gt;
==Benötigte Werkzeuge==&lt;br /&gt;
*[http://www.atmel.com/microsite/atmel_studio6/ AVR Studio 6 Hauptseite] zum Download des RP6&lt;br /&gt;
*[http://www.atmel.com/tools/studioarchive.aspx AVR Studio Archiv] ,falls eine ältere Version gewünscht ist&lt;br /&gt;
*[http://www.arexx.com/rp6/html/en/software.htm RP6 Softwareseite] zum Download der RP6Lib und der Beispielprojekte&lt;br /&gt;
*Natürlich der RP6&lt;br /&gt;
==Das erste Projekt==&lt;br /&gt;
Jetzt geht es ans Anlegen unseres ersten Projekts. Klickt dazu einfach auf File -&amp;gt; New -&amp;gt; Project. Wählt &amp;quot;AVR GCC Executable&amp;quot; aus und gebt Eurem Projekt einen aussagekräftigen Namen.&lt;br /&gt;
[[Bild:NewProject.jpg|thumb|Ein neues AVRGCC-Projekt erstellen]]&lt;br /&gt;
Nun erscheint ein Fenster, in dem der Zielcontroller ausgewählt werden muss. Wählt hier den ATmega32 aus und bestätigt.&lt;br /&gt;
Gut, jetzt ist das erste Projekt angelegt. Es ist nun an der Zeit, die RP6 Library in das Projekt aufzunehmen, die ihr bereits irgendwo auf euren Computer entpackt haben solltet. Darin befindet sich ein Ordner namens &amp;quot;RP6Lib&amp;quot;. Dieser muss nun mit Windows in das neue Projektverzeichnis kopiert werden. Dieses sieht typischerweise folgendermaßen aus: &amp;quot;C:\Users\DeinBenutzerName\Documents\Atmel Studio\DeinProjektName\DeinProjektName&amp;quot;.&lt;br /&gt;
Nun haben wir die Dateien am richtigen Platz, müssen dem AVR Studio jedoch noch mitteilen, dass wir die Dateien gerne in unser Projekt aufnehmen möchten.&lt;br /&gt;
Im Unterfenster &amp;quot;Solution Explorer&amp;quot; befindet sich eine Schaltfälche namens &amp;quot;Show All Files&amp;quot; (siehe Screenshot). Danach erscheint der Ordner &amp;quot;RP6Lib&amp;quot; ausgegraut im Solution Explorer.&lt;br /&gt;
Macht einen Rechtsklick darauf und wählt &amp;quot;Include in Project&amp;quot;. Jetzt ist die gesamte RP6Lib hinzugefügt, allerdings benötigen wir nur die Funktionen der RP6Lib!&lt;br /&gt;
[[Bild:ShowAll.jpg|thumb|Versteckte Dateien anzeigen]]&lt;br /&gt;
Daher müssen wir die Ordner &amp;quot;RP6control&amp;quot; und &amp;quot;RP6control_M256_WIFI&amp;quot; wieder entfernen: Wählt beide aus und löscht beide Ordner (Del oder auch per Rechtsklick). Im folgenden Dialog wählt ihr dann &amp;quot;Remove&amp;quot;. Das Gleiche macht ihr nun für zwei der vier I2C-Treiber im Ordner &amp;quot;RP6common - je nachdem, ob ihr einen I2C Master oder einen I2C Slave benötigt. Beides zusammen geht nicht!&lt;br /&gt;
Zum Abschluss müssen wir nur noch die Include-Pfade einstellen. Macht dazu im Solution Explorer einen Rechtsklick auf euer Projekt und wählt &amp;quot;Properties&amp;quot;. Navigiert danach zu &amp;quot;Toolchain&amp;quot; -&amp;gt; &amp;quot;Directories&amp;quot; und fügt die Ordner &amp;quot;RP6common&amp;quot; und &amp;quot;RP6base&amp;quot; hinzu. Danach seid ihr fertig mit der Konfiguration des AVR Studios.&lt;br /&gt;
[[Bild:Includes.jpg|thumb|Include-Verzeichnisse anpassen]]&lt;br /&gt;
Kopiert nun eines der Beispielprogramme in euer Main-File und klickt auf &amp;quot;Compile&amp;quot;. Der Kompilierungsvorgang sollte nun ohne Fehler sauber durchgeführt werden.&lt;br /&gt;
==Als Template einrichten==&lt;br /&gt;
Zugegeben: Dieser Einrichtungsvorgang ist ziemlich aufwändig und für Einsteiger sehr verwirrend. Daher bietet das AVR Studio die Möglichkeit an, Projekte als Templates zu speichern und als Vorlage für neue Projekte zu nutzen. Somit habt ihr nur einmal den oben beschriebenen Konfigurationsaufwand, den Rest erledigt das Studio danach für euch.&lt;br /&gt;
Die Einrichtung als Template geht sehr einfach: Öffnet euer Projekt und klickt auf &amp;quot;File&amp;quot; -&amp;gt; &amp;quot;Export Template&amp;quot;. Wählt danach &amp;quot;Project Template&amp;quot; aus. Füllt im nachfolgenden Dialog die Felder nach Belieben aus und klickt auf &amp;quot;Finish&amp;quot; - fertig!&lt;br /&gt;
[[Bild:Template2.jpg|thumb|Als Template exportieren]]&lt;br /&gt;
==Templates als Vorlage für neue Projekte==&lt;br /&gt;
Nachdem ihr euer Projekt als Template gespeichert habt ist es denkbar einfach, daraus ein neues Projekt zu erzeugen. Wählt einfach &amp;quot;File&amp;quot; -&amp;gt; &amp;quot;New&amp;quot; -&amp;gt; &amp;quot;Project&amp;quot; und wählt euer Template aus, benennt das Projekt und klickt auf &amp;quot;OK&amp;quot;. Jetzt müsst ihr nichts mehr einstellen, stattdessen könnt ihr direkt mit dem Programmieren beginnen!&lt;br /&gt;
[[Bild:Template benutzen.jpg|thumb|Neues Projekt mit Template erstellen]]&lt;br /&gt;
==Templates installieren==&lt;br /&gt;
Und jetzt die gute Nachricht: Ihr müsst die ganze Konfiguration gar nicht selbst durchführen! Ladet stattdessen einfach folgendes Template herunter:&lt;br /&gt;
TODO LINK!&lt;br /&gt;
Navigiert nun in das Verzeichnis &amp;quot;C:\Users\DeinBenutzerName\Documents\Atmel Studio\Templates\ProjectTemplates&amp;quot; und kopiert die heruntergeladene Datei dorthin.&lt;br /&gt;
Startet nun das AVR Studio und fahrt wie in &amp;quot;Templates als Vorlage für neue Projekte&amp;quot; beschrieben fort.&lt;/div&gt;</summary>
		<author><name>MaxWeb</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=RP6v2&amp;diff=20431</id>
		<title>RP6v2</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=RP6v2&amp;diff=20431"/>
				<updated>2012-07-26T13:23:46Z</updated>
		
		<summary type="html">&lt;p&gt;MaxWeb: /* Weblinks */  Toter Link des Wifi-Moduls&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:rp6v2_2.jpg|Der RP6v2]]&lt;br /&gt;
&lt;br /&gt;
Was bisher geschah:&lt;br /&gt;
&lt;br /&gt;
Mon, 27. Feb 2012 - Ankündigung des RP6v2&amp;lt;br/&amp;gt;&lt;br /&gt;
Don, 08. Mär 2012 - Auslieferungsbeginn des RP6v2&amp;lt;br/&amp;gt;&lt;br /&gt;
Sam, 17. Mär 2012 - Ankündigung der RP6v2 M256 WiFi&amp;lt;br/&amp;gt;&lt;br /&gt;
Mon, 11. Jun 2012 - Beginn der &amp;quot;Testaktion: Kostenlose RP6v2-M256-WIFI Module!&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
Die, 10. Jul 2012 - Ende der &amp;quot;Testaktion: Kostenlose RP6v2-M256-WIFI Module!&amp;quot; nach Abstimmung&amp;lt;br/&amp;gt;&lt;br /&gt;
Mit, 11. Jul 2012 - Veröffentlichung der RP6v2 M256 WiFi Bedienungsanleitung&amp;lt;br/&amp;gt;&lt;br /&gt;
Die, 17. Jul 2012 - Eintreffen der kostenlosen RP6v2 M256 WiFi bei den Testern&amp;lt;br/&amp;gt;&lt;br /&gt;
Mit, 25. Jul 2012 - Auslieferungsbeginn der RP6v2 M256 WiFi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Allgemein==&lt;br /&gt;
Der RP6v2 ([http://www.conrad.de/ce/de/product/191584/RP6-V2-ROBOTERSYSTEM/ 191584]) wurde am 27.02.2012 von [[Benutzer:SlyD|SlyD]] angekündigt (siehe Weblinks!). Er ist eine leicht verbesserte Version des [[RP6]]. Der RP6v2 ist softwarekompatibel zum RP6. '''Alle Erweiterungs-Module können auch mit dem RP6v2 eingesetzt werden.'''&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel beschreibt die Grundlagen zum RP6v2, '''sofern sie vom RP6 abweichen''', und die Grundlagen und Programmierung seiner zukünftigen Erweiterungs-Module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Eigenschaften==&lt;br /&gt;
Laut Ankündigung haben sich beim RP6v2 folgende Details gegenüber dem RP6 geändert:&lt;br /&gt;
* Neue Drehgeber&lt;br /&gt;
** Justierung dank neuer Sensortechnik üblicherweise nicht mehr erforderlich&lt;br /&gt;
** leicht zugängliches und deutlich größeres Potentiometer&lt;br /&gt;
** Potis nur noch zur Feinjustierung erforderlich&lt;br /&gt;
* Zusätzliche Steckverbinder (im RP6 schon seit 2010 verbaut)&lt;br /&gt;
** vom Mainboard zu den Drehgebern&lt;br /&gt;
** vom Mainboard zu den Motoren&lt;br /&gt;
* Neue Anschlüsse (Steckverbinder / Stiftleisten)&lt;br /&gt;
** 2 3-polige ADC Anschlüsse mit VDD/GND inkl. zusätzlichem Stützkondensator&lt;br /&gt;
** 2 4-polige VDD Anschlüsse (je 2x +5V und 2x GND)&lt;br /&gt;
** 1 3-poliger +UB Anschluß (1x +UB, 2x GND)&lt;br /&gt;
** 1 5-polige Stiftleiste für den I2C Bus und VDD/GND&lt;br /&gt;
** 1 8-poliger EXT Steckverbinder (JST-Wannenstecker)&lt;br /&gt;
** 2 4-polige Steckverbinder (LIO1/LIO2) für die I/O-Pins von 4 LEDs und VDD/GND&lt;br /&gt;
* Hauptsicherung&lt;br /&gt;
** von 2,5A auf 3,15A erhöht&lt;br /&gt;
* Motortreiber&lt;br /&gt;
** leistungsfähigere und robustere MOSFETs&lt;br /&gt;
* Experimentierplatine&lt;br /&gt;
** gehört nicht mehr zum Lieferumfang&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Technische Änderungen==&lt;br /&gt;
Der RP6v2 weist einige Detail-Änderungen gegenüber der Vorversion auf. '''Diese Änderungen sind für die Nutzung und Programmierung des RP6v2 weitgehend irrelevant.'''&lt;br /&gt;
&lt;br /&gt;
Fast alle passiven SMD-Bauteile sind jetzt in Bauform 0603 bestückt (Ausnahmen: R6 (SP2 C2: R6), Induktivitäten und größere Kondensatoren).&lt;br /&gt;
Im Text gibt es Verweise auf den Schaltplan des RP6v2 (RP6v2_MAINBOARD.pdf) in der Form: (SP2 B1: Bauteil). Dies bedeutet, dass man das Bauteil auf Blatt 2 des RP6v2-Schaltplans im Feld B1 finden kann.&lt;br /&gt;
&lt;br /&gt;
===Mainboard===&lt;br /&gt;
* C14 (SP2 A3: C14) -&amp;gt; Liegt jetzt an VDD (parallel u.a. zu C6..C10)&lt;br /&gt;
* C26 (SP2 A1: C26) -&amp;gt; Jetzt bestückt mit Elko 220uF/16V (laut SP: 470uF/16V!)&lt;br /&gt;
* C29 (SP2 E1: C29) -&amp;gt; Jetzt bestückt mit SMD Kondensator 10uF&lt;br /&gt;
* IO3/IO4 Bestückungsaufdruck geändert in IO4/IO5 (Stecker LIO2)&lt;br /&gt;
* UBAT Bestückungsaufdruck geändert in UBAT_SENSE&lt;br /&gt;
* F2.5A Bestückungsaufdruck geändert in F3.0A (Feinsicherung flink 3,0A)&lt;br /&gt;
* Trennstelle +UB Sensor (siehe Abschnitt 6.4.6 [[RP6#.2BUB_Sensor]] des RP6-Artikels!) existiert beim RP6v2 nicht mehr&lt;br /&gt;
* Als Motortreiber (SP3 BCD23: Q1..Q4) werden anstelle von IRF7309 (ID 3,0A; PD 1,4W) die leistungsfähigeren und ESD-geschützten Typen SP8M3 (ID 4,5A; PD 2W; Schutzdiode) verwendet&lt;br /&gt;
&lt;br /&gt;
===Encoderplatine===&lt;br /&gt;
Schaltung siehe Datei RP6v2_ENCODERS.pdf!&lt;br /&gt;
* Jetzt mit Operationsverstärker IC2 (MCP6001U) anstelle eines Transistors&lt;br /&gt;
* Größeres Potentiometer R2 (200kOhm)&lt;br /&gt;
Die Encoder sind mittlerweile auch einzeln unter der Conrad-Bestellnummer '''[http://www.conrad.de/ce/de/product/191625/RP6-DREHGEBER-SATZ 191625-62]''' verfügbar.&lt;br /&gt;
&lt;br /&gt;
===USB-Interface===&lt;br /&gt;
Schaltung siehe Datei RP6v2_USB_INTERFACE.pdf!&lt;br /&gt;
* C2  -&amp;gt; Jetzt bestückt mit SMD Kondensator 10uF&lt;br /&gt;
* C5  -&amp;gt; Neuer Blockkondensator 100nF an VCCIO von IC1&lt;br /&gt;
&lt;br /&gt;
===Steckverbindungen und Stiftleisten===&lt;br /&gt;
&lt;br /&gt;
====Motoren====&lt;br /&gt;
[[Bild:RP6v2_Motorstecker.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Beim RP6v2 sind die beiden Motorkabel mit 2-poligen Winkelsteckern RM 7,5mm an das Mainboard angeschlossen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Encoder====&lt;br /&gt;
[[Bild:RP6v2_Encoderstecker.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Beim RP6v2 sind die Encoder mit einem 6-poligen Winkelstecker RM 2,54mm an das Mainboard angeschlossen.&lt;br /&gt;
&lt;br /&gt;
Auch die 3-polige Verbindung zu den beiden Encoder-Platinen ist steckbar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====LIO1/LIO2====&lt;br /&gt;
[[Bild:RP6v2_LIO12.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Beim RP6 waren die Anschlüsse der Status-LEDs SL1,2 und SL4,5 ([[RP6#IO1..IO4]]) einzeln auf dem Mainboard zu kontaktieren.&lt;br /&gt;
&lt;br /&gt;
Beim RP6v2 gibt es zwei 4-polige Stiftleisten (LIO1, LIO2). Sie führen an den Pins 1 und 2 +5V und GND.&lt;br /&gt;
&lt;br /&gt;
An den Pins 3 und 4 finden sich die Anschlüsse von IO2, IO1 (LIO1) bzw. IO4, IO5 (LIO2).&lt;br /&gt;
&lt;br /&gt;
Bitte beachten: '''Der Bestückungsaufdruck IO4, IO5 des RP6v2 bezeichnet die selben Anschlüsse, wie beim RP6 IO3, IO4!'''&lt;br /&gt;
&lt;br /&gt;
Es handelt sich in beiden Fällen um die Anschlüsse der Status-LEDs SL4 (PB7) und SL5 (PB1).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ADC0/ADC1====&lt;br /&gt;
[[Bild:RP6v2_ADC01.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Beim RP6 waren die 3-poligen Anschlüsse von ADC0 und ADC1 ([[RP6#Analoge_Sensoren_an_ADC0.2F1]]) nicht mit Stiftleisten bestückt.&lt;br /&gt;
&lt;br /&gt;
Dies ist jetzt beim RP6v2 der Fall,- zusätzlich ist auch C26 (SP2 A1: C26) bestückt.&lt;br /&gt;
&lt;br /&gt;
Damit können analoge Sensoren direkt angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====I2C/+UB/+5V====&lt;br /&gt;
[[Bild:RP6v2_I2CUB5V.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Die beim RP6 vorhandene 5-polige I2C-Schnittstelle ([[RP6#I2C-Schnittstelle]]) findet sich (jetzt mit Stiftleiste bestückt) genau so auch beim RP6v2.&lt;br /&gt;
&lt;br /&gt;
Bitte beachten: '''Die Anordnung der Pins auf dem Mainboard ist beim RP6v2 umgekehrt wie beim RP6!'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beim RP6 gab es (nicht mit Stiftleisten bestückte) Anschlüsse für VDD und +UB ([[RP6#VDD.2FGND.2F.2BUB_Anschlu.C3.9F]]).&lt;br /&gt;
&lt;br /&gt;
Beim RP6v2 gibt es jetzt drei Stiftleisten für +UB, +5V (VDD) und GND:&lt;br /&gt;
* Eine 3-polige Stiftleiste mit GND, +UB, GND&lt;br /&gt;
* Zwei 4-polige Stiftleisten jeweils mit GND, +5V, +5V, GND&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====EXT====&lt;br /&gt;
[[Bild:RP6v2_EXT.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Beim RP6 war keine Stiftleiste für den 8-poligen EXT Anschluß bestückt.&lt;br /&gt;
&lt;br /&gt;
Beim RP6v2 ist jetzt an dieser Stelle ein Wannenstecker vorhanden, in den auch Steckbuchsen (RM 2,54) gesteckt werden können.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beschreibung des EXT Anschlusses: [[RP6#EXT_Anschlu.C3.9F]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erweiterungs-Module==&lt;br /&gt;
&lt;br /&gt;
===RP6v2 M256 WiFi Platine===&lt;br /&gt;
[[Bild:RP6v2_M256_WIFI.JPG|Die RP6v2 M256 WiFi]]&lt;br /&gt;
&lt;br /&gt;
Die RP6v2 M256 WiFi Zusatzplatine wurde am 17.03.2012 von [[Benutzer:SlyD|SlyD]] angekündigt (siehe Weblink!).&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Laut Ankündigung bietet die RP6v2 M256 WiFi:&lt;br /&gt;
* Atmel ATmega2560 Mikrocontroller&lt;br /&gt;
** 256kB Flash ROM&lt;br /&gt;
** 8kB SRAM&lt;br /&gt;
** 4kB EEPROM&lt;br /&gt;
** 16MHz Taktfrequenz&lt;br /&gt;
** 6 Hardware Timer und 86 I/O Ports&lt;br /&gt;
** Bis zu 16 A/D Wandler Kanäle (10 Bit Auflösung)&lt;br /&gt;
** 12 16 Bit Hardware PWMs&lt;br /&gt;
** 2 USART/SPI Ports&lt;br /&gt;
* Energieeffizientes 802.11g WLAN Modul&lt;br /&gt;
** Typ: Roving Networks RN-171&lt;br /&gt;
** Telemetriedaten übertragen&lt;br /&gt;
** Roboter vom PC aus fernsteuern&lt;br /&gt;
** Neue Programme drahtlos per WLAN in den Mikrocontroller laden&lt;br /&gt;
** Bootloader nachträglich erweitern&lt;br /&gt;
** Einstellung des WLAN Moduls über das RP6 USB Interface mit dem RobotLoader 2.x&lt;br /&gt;
** Änderung der Einstellungen über eine Netzwerkverbindung oder mit dem eigenen Mikrocontrollerprogramm&lt;br /&gt;
** Eigener Prozessor (entlastet den ATmega)&lt;br /&gt;
** Funktioniert mit jedem Standard WLAN Accesspoint/Router&lt;br /&gt;
** Kann als transparente serielle Schnittstelle arbeiten&lt;br /&gt;
** Kann vom PC aus per TCP/IP angesprochen werden&lt;br /&gt;
** 10cm 2.4GHz Antenne mit RP-SMA Anschluß&lt;br /&gt;
* Sonstige Ausstattung&lt;br /&gt;
** 8 Bit Display Port&lt;br /&gt;
** I2C Bus&lt;br /&gt;
** microSD Kartenslot&lt;br /&gt;
** 7 Status LEDs&lt;br /&gt;
** 2 Eingabetaster&lt;br /&gt;
** ISP Anschluß&lt;br /&gt;
** 4 WLAN ADC Kanäle&lt;br /&gt;
** AREF 3,3 und 5V&lt;br /&gt;
&lt;br /&gt;
====Technische Daten====&lt;br /&gt;
{|  {{Blauetabelle}} &lt;br /&gt;
|'''Mikrocontroller:'''&lt;br /&gt;
|AVR ATmega2560&lt;br /&gt;
|-&lt;br /&gt;
|'''Speicher:'''&lt;br /&gt;
|256 kB [[Flash]]-Speicher&amp;lt;br/&amp;gt;&lt;br /&gt;
8 kB SRAM&amp;lt;br/&amp;gt; &lt;br /&gt;
4 kB [[EEPROM]]&amp;lt;br/&amp;gt;&lt;br /&gt;
? GB microSD Speicherkarte&lt;br /&gt;
|-&lt;br /&gt;
|'''Programmierung:'''&lt;br /&gt;
|Über [[Bootloader]], belegt ca. 8 kB des Flash-Speichers&amp;lt;br/&amp;gt;&lt;br /&gt;
Drahtlos über WLAN&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Sensoren:'''&lt;br /&gt;
|2 Eingabetaster&amp;lt;br/&amp;gt;&lt;br /&gt;
4 WLAN ADC Kanäle&amp;lt;br/&amp;gt;&lt;br /&gt;
60 GP I/O Ports, davon bis 16 AD-Wandler (10-bit)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Aktoren:'''&lt;br /&gt;
|7 Status LEDs&amp;lt;br/&amp;gt;&lt;br /&gt;
1 LC-Display-Port&amp;lt;br/&amp;gt;&lt;br /&gt;
802.11g WLAN Modul&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Abmessungen:'''&lt;br /&gt;
|(L &amp;amp;times; B &amp;amp;times; H) 112 &amp;amp;times; 90 &amp;amp;times; 42 mm (ohne Antenne)&lt;br /&gt;
|-&lt;br /&gt;
|'''Ausführung:'''&lt;br /&gt;
|Fertig aufgebautes Erweiterungsmodul&lt;br /&gt;
|-&lt;br /&gt;
|'''Stromversorgung:'''&lt;br /&gt;
|6 AA NiMH Akkus (über die RP6v2 Base)&lt;br /&gt;
|-&lt;br /&gt;
|'''Hersteller:'''&lt;br /&gt;
|Arexx Niederlande&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Umbau-Optionen====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zubehör und Ersatzteile==&lt;br /&gt;
Über die Zubehör- und Ersatzteile informiert der Artikel [[RP6#Zubehör und Ersatzteile]].&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus sind bei [http://www.conrad.de/ce/ CONRAD] für den RP6v2 erhältlich:&lt;br /&gt;
* Arexx RP6v2 Drehgeber-Satz RP6-ENCv2 [http://www.conrad.de/ce/de/product/191625/RP6-DREHGEBER-SATZ 191625]&lt;br /&gt;
* Arexx RP6 USB-Interface RP6V2-TRANS [http://www.conrad.de/ce/de/product/191638/RP6-V2-PROGRAMMIER-ADAPTER 191638]&lt;br /&gt;
&lt;br /&gt;
===RP6v2 Drehgeber-Satz RP6-ENCv2===&lt;br /&gt;
&lt;br /&gt;
===RP6 USB-Interface RP6V2-TRANS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Programmierung==&lt;br /&gt;
===RobotLoader===&lt;br /&gt;
====Loader Versionen====&lt;br /&gt;
Hier eine Tabelle der (mir) bekannten RobotLoader Versionen für die RP6v2 Base, CONTROL M32 und ab Version 2.0 auch für die M256 WiFi:&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |ZIP-Datum&lt;br /&gt;
 |Version&lt;br /&gt;
 |Bemerkungen&lt;br /&gt;
 |Examples&lt;br /&gt;
 |-&lt;br /&gt;
 |12.07.2010&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RobotLoader_20100712.zip 1.5h]&lt;br /&gt;
 |Auch für die RP6 Base, für Roboterarme und Caterpillar&lt;br /&gt;
 |ab 16.10.2007&lt;br /&gt;
 |-&lt;br /&gt;
 |23.02.2012&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RobotLoader_20120223.zip 2.0 BETA]&lt;br /&gt;
 |Testversion! Ab v2.0 auch für die RP6v2 M256 WiFi Platine&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |05.06.2012&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RobotLoader_20120605.zip 2.3a]&lt;br /&gt;
 |Testversion! Siehe auch [http://www.roboternetz.de/community/threads/58168-RobotLoader-2-3a hier]!&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |18.06.2012&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RobotLoader_20120618.zip 2.3b]&lt;br /&gt;
 |Testversion! Siehe auch [http://www.roboternetz.de/community/threads/58168-RobotLoader-2-3a hier]!&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |17.07.2012&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RobotLoader_20120717.zip 2.3c]&lt;br /&gt;
 |Über Kommandozeile nutzbar, siehe auch [http://www.roboternetz.de/community/threads/58168-RobotLoader-2-3a hier]!&lt;br /&gt;
 |ab 16.07.2012&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
'''Hinweis:''' Ältere Versionen des RP6Loaders bis Version 1.4 findet ihr hier: [[RP6_-_Programmierung#RP6Loader]]&lt;br /&gt;
&lt;br /&gt;
====Projekte====&lt;br /&gt;
* Der RobotLoader 2.3a und [http://www.rn-wissen.de/index.php/LunaAVR LunaAVR] im [http://www.roboternetz.de/community/threads/58168-RobotLoader-2-3a?p=551535&amp;amp;viewfull=1#post551535 Roboternetz RP6 Forum] und im [http://forum.myluna.de/viewtopic.php?f=3&amp;amp;t=24#p94 LunaAVR Forum]&lt;br /&gt;
&lt;br /&gt;
===RP6v2===&lt;br /&gt;
'''Der RP6v2 ([http://www.conrad.de/ce/de/product/191584/RP6-V2-ROBOTERSYSTEM/ 191584]) ist softwarekompatibel zum RP6.'''&lt;br /&gt;
&lt;br /&gt;
Zur Programmierung des [[RP6]] und des RP6v2 gibt es einen eigenen Artikel: [[RP6 - Programmierung]]&lt;br /&gt;
&lt;br /&gt;
===RP6v2 M256 WiFi Platine===&lt;br /&gt;
====Demo-Programmme====&lt;br /&gt;
Die RP6v2 M256 WiFi Demo Programme sind [http://www.arexx.com/rp6/html/de/soft_doc_rp6m256.htm hier] zu finden.&lt;br /&gt;
&lt;br /&gt;
====Library====&lt;br /&gt;
Die Library für die RP6v2 M256 WiFi besteht aus folgenden 21 Dateien:&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |Library&lt;br /&gt;
 |Datei&lt;br /&gt;
 |Funktion&lt;br /&gt;
 |-&lt;br /&gt;
 |RP6M256&lt;br /&gt;
 |RP6M256.h&lt;br /&gt;
 |RP6M256 Hardware-Konfiguration&lt;br /&gt;
 |-&lt;br /&gt;
 |RP6M256&lt;br /&gt;
 |RP6M256Lib.h&lt;br /&gt;
 |RP6M256 Library Header&lt;br /&gt;
 |-&lt;br /&gt;
 |RP6M256&lt;br /&gt;
 |RP6M256Lib.c&lt;br /&gt;
 |RP6M256 Library&lt;br /&gt;
 |-&lt;br /&gt;
 |RP6M256uart&lt;br /&gt;
 |RP6M256uart.h&lt;br /&gt;
 |RS232 Funktionen Header&lt;br /&gt;
 |-&lt;br /&gt;
 |RP6M256uart&lt;br /&gt;
 |RP6M256uart.c&lt;br /&gt;
 |RS232 Funktionen&lt;br /&gt;
 |-&lt;br /&gt;
 |RP6M256_I2CMaster&lt;br /&gt;
 |RP6M256_I2CMasterLib.h&lt;br /&gt;
 |I2C Master Library Header&lt;br /&gt;
 |-&lt;br /&gt;
 |RP6M256_I2CMaster&lt;br /&gt;
 |RP6M256_I2CMasterLib.c&lt;br /&gt;
 |I2C Master Library&lt;br /&gt;
 |-&lt;br /&gt;
 |RP6M256_WIFI&lt;br /&gt;
 |RP6M256_WIFIlib.h&lt;br /&gt;
 |WIFI Library Header&lt;br /&gt;
 |-&lt;br /&gt;
 |RP6M256_WIFI&lt;br /&gt;
 |RP6M256_WIFIlib.c&lt;br /&gt;
 |WIFI Library&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |SDC&lt;br /&gt;
 |byteordering.h&lt;br /&gt;
 |Byte-order handling header&lt;br /&gt;
 |-&lt;br /&gt;
 |SDC&lt;br /&gt;
 |byteordering.c&lt;br /&gt;
 |Byte-order handling implementation&lt;br /&gt;
 |-&lt;br /&gt;
 |SDC&lt;br /&gt;
 |fat_config.h&lt;br /&gt;
 |FAT configuration&lt;br /&gt;
 |-&lt;br /&gt;
 |SDC&lt;br /&gt;
 |fat.h&lt;br /&gt;
 |FAT header&lt;br /&gt;
 |-&lt;br /&gt;
 |SDC&lt;br /&gt;
 |fat.c&lt;br /&gt;
 |FAT implementation&lt;br /&gt;
 |-&lt;br /&gt;
 |SDC&lt;br /&gt;
 |partition_config.h&lt;br /&gt;
 |Partition configuration&lt;br /&gt;
 |-&lt;br /&gt;
 |SDC&lt;br /&gt;
 |partition.h&lt;br /&gt;
 |Partition table header&lt;br /&gt;
 |-&lt;br /&gt;
 |SDC&lt;br /&gt;
 |partition.c&lt;br /&gt;
 |Partition table implementation&lt;br /&gt;
 |-&lt;br /&gt;
 |SDC&lt;br /&gt;
 |sd-reader_config.h&lt;br /&gt;
 |Common sd-reader configuration (all modules)&lt;br /&gt;
 |-&lt;br /&gt;
 |SDC&lt;br /&gt;
 |sd_raw_config.h&lt;br /&gt;
 |MMC/SD support configuration&lt;br /&gt;
 |-&lt;br /&gt;
 |SDC&lt;br /&gt;
 |sd_raw.h&lt;br /&gt;
 |MMC/SD/SDHC raw access header&lt;br /&gt;
 |-&lt;br /&gt;
 |SDC&lt;br /&gt;
 |sd_raw.c&lt;br /&gt;
 |MMC/SD/SDHC raw access implementation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Versionen=====&lt;br /&gt;
Hier eine Tabelle der (mir) bekannten Library Versionen der RP6v2 M256 WiFi:&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |ZIP-Datum&lt;br /&gt;
 |VERSION_&lt;br /&gt;
 |RP6M256Library&lt;br /&gt;
 |RP6LIB_VERSION&lt;br /&gt;
 |RP6M256.h&lt;br /&gt;
 |RP6M256Lib&lt;br /&gt;
 |WifiLib&lt;br /&gt;
 |UartLib&lt;br /&gt;
 |I2CMasterLib&lt;br /&gt;
 |SDCLib&lt;br /&gt;
 |-&lt;br /&gt;
 |24.02.2012&lt;br /&gt;
 |1.7&lt;br /&gt;
 |1.0_24.02.12&lt;br /&gt;
 |16&lt;br /&gt;
 |1.0_24.02.12&lt;br /&gt;
 |1.0_24.02.12&lt;br /&gt;
 |1.0_24.02.12&lt;br /&gt;
 |1.0_24.02.12&lt;br /&gt;
 |(1.0_24.02.12)&lt;br /&gt;
 |?&lt;br /&gt;
 |-&lt;br /&gt;
 |16.07.2012&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RP6Examples_20120716.zip 1.7] *&lt;br /&gt;
 |1.1_16.07.12&lt;br /&gt;
 |16&lt;br /&gt;
 |1.1_16.07.12&lt;br /&gt;
 |1.1_16.07.12&lt;br /&gt;
 |1.1_16.07.12&lt;br /&gt;
 |1.1_16.07.12&lt;br /&gt;
 |(1.0_24.02.12)&lt;br /&gt;
 |(2006-2011)&lt;br /&gt;
 |-&lt;br /&gt;
 |25.07.2012&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RP6Examples_20120725.zip 1.8]&lt;br /&gt;
 |1.1_16.07.12&lt;br /&gt;
 |16&lt;br /&gt;
 |1.1_16.07.12&lt;br /&gt;
 |1.1_16.07.12&lt;br /&gt;
 |1.1_16.07.12&lt;br /&gt;
 |1.1_16.07.12&lt;br /&gt;
 |(1.0_24.02.12)&lt;br /&gt;
 |(2006-2011)&lt;br /&gt;
|}&lt;br /&gt;
'''Zu *:''' Ab der Version 1.7 sind auch die Libraries und Examples der RP6v2 Base und CONTROL M32 enthalten! Siehe [[RP6_-_Programmierung#Versionen]]!&lt;br /&gt;
&lt;br /&gt;
In der 1. Spalte findet ihr das Datum der RP6Examples.zip Datei, in der die Library enthalten ist. Die 2. Spalte nennt die Version, die im Dateinamen der VERSION_x.x.txt Datei als x.x vorkommt. In der 3. Spalte steht die Versionsangabe der RP6M256Library laut Angabe in der VERSION_x.x.txt Datei.&lt;br /&gt;
&lt;br /&gt;
In der 4. Spalte gebe ich den Wert der Konstante RP6LIB_VERSION an. Es gibt sie ab den RP6v2 Base und CONTROL M32 Examples vom 16.10.2007. In den Spalten 5 bis 10 führe ich nacheinander die Versionsnummern und ggf. das in der Datei genannte Datum der Header-Datei/Library an: RP6M256.h, RP6M256Lib, WifiLib, UartLib, I2CMasterLib, SDCLib.&lt;br /&gt;
&lt;br /&gt;
=====RP6M256=====&lt;br /&gt;
======Bug-Report======&lt;br /&gt;
======Konfiguration======&lt;br /&gt;
======Port-Verwendung======&lt;br /&gt;
Die Verwendung der Ports des RP6v2 M256 WiFi Microcontrollers wird festgelegt in der Header-Datei &amp;quot;RP6M256.h&amp;quot;. In dieser Datei wird auch noch Folgendes aufgeführt:&lt;br /&gt;
* Quarzfrequenz (F_CPU) &lt;br /&gt;
* True/false Definition &lt;br /&gt;
* Verschiedene Macros &lt;br /&gt;
* Baudraten und Baudraten-Tabelle &lt;br /&gt;
&lt;br /&gt;
Hier eine Tabelle mit den Port-Definitionen für die RP6v2 M256 WiFi:&lt;br /&gt;
 Erklärung der Spalten:&lt;br /&gt;
 Port        -&amp;gt; Atmel Portpin Bezeichnung&lt;br /&gt;
 Name        -&amp;gt; Atmel Funktionsbezeichnung&lt;br /&gt;
 In/Out      -&amp;gt; Eingang (In) oder Ausgang (Out)&lt;br /&gt;
 Pullup      -&amp;gt; Falls Eingang: Pullup ein- (1) oder ausgeschaltet (0)&lt;br /&gt;
 Wert        -&amp;gt; Falls Ausgang: Logikpegel high (1) oder low (0)&lt;br /&gt;
 Funktion    -&amp;gt; Schnittstellenfunktion&lt;br /&gt;
 Bezeichnung -&amp;gt; Portpin Bezeichnung der Library&lt;br /&gt;
 Stecker     -&amp;gt; Portpin verfügbar an STECKER: Pin&lt;br /&gt;
 Anmerkungen -&amp;gt; Kommentare (ADC_xx: ADC-Kanal Bezeichnung)&lt;br /&gt;
&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |Port&lt;br /&gt;
 |Name&lt;br /&gt;
 |In/Out&lt;br /&gt;
 |Pullup&lt;br /&gt;
 |Wert&lt;br /&gt;
 |Funktion&lt;br /&gt;
 |Bezeichnung&lt;br /&gt;
 |Stecker&lt;br /&gt;
 |Anmerkungen&lt;br /&gt;
 |-&lt;br /&gt;
 |PA0&lt;br /&gt;
 |AD0&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |DISP_D0&lt;br /&gt;
 |DISPIO: 7&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 |PA1&lt;br /&gt;
 |AD1&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |DISP_D1&lt;br /&gt;
 |DISPIO: 8&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 |PA2&lt;br /&gt;
 |AD2&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |DISP_D2&lt;br /&gt;
 |DISPIO: 9&lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
 |PA3&lt;br /&gt;
 |AD3&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |DISP_D3&lt;br /&gt;
 |DISPIO: 10&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PA4&lt;br /&gt;
 |AD4&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |DISP_D4&lt;br /&gt;
 |DISPIO: 11&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PA5&lt;br /&gt;
 |AD5&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |DISP_D5&lt;br /&gt;
 |DISPIO: 12&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PA6&lt;br /&gt;
 |AD6&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |DISP_D6&lt;br /&gt;
 |DISPIO: 13&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PA7&lt;br /&gt;
 |AD7&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |DISP_D7&lt;br /&gt;
 |DISPIO: 14&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PB0&lt;br /&gt;
 |SS/PCI0&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |SPI_SS&lt;br /&gt;
 |&lt;br /&gt;
 |OUT SDCARD / ISP&lt;br /&gt;
 |-&lt;br /&gt;
 |PB1&lt;br /&gt;
 |SCK/PCI1&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |ISP&lt;br /&gt;
 |SPI_SCK&lt;br /&gt;
 |&lt;br /&gt;
 |OUT SDCARD / ISP&lt;br /&gt;
 |-&lt;br /&gt;
 |PB2&lt;br /&gt;
 |MOSI/PCI2&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |ISP&lt;br /&gt;
 |SPI_MOSI&lt;br /&gt;
 |&lt;br /&gt;
 |OUT SDCARD / ISP&lt;br /&gt;
 |-&lt;br /&gt;
 |PB3&lt;br /&gt;
 |MISO/PCI3&lt;br /&gt;
 |In&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |ISP&lt;br /&gt;
 |SPI_MISO&lt;br /&gt;
 |&lt;br /&gt;
 |IN SDCARD / ISP&lt;br /&gt;
 |-&lt;br /&gt;
 |PB4&lt;br /&gt;
 |OC2A/PCI4&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |OC2A_P14&lt;br /&gt;
 |PWM23: 5&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PB5&lt;br /&gt;
 |OC1A/PCI5&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |OC1A_P15&lt;br /&gt;
 |PWM01: 7&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PB6&lt;br /&gt;
 |OC1B/PCI6&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |OC1B_P16&lt;br /&gt;
 |PWM01: 9&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PB7&lt;br /&gt;
 |OC0A/OC1C/PCI7&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |OC0A_OCM_P17&lt;br /&gt;
 |PWM01: 4&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PC0&lt;br /&gt;
 |A8&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_PC0&lt;br /&gt;
 |PC01: 2&lt;br /&gt;
 |I2C&lt;br /&gt;
 |-&lt;br /&gt;
 |PC1&lt;br /&gt;
 |A9&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_PC1&lt;br /&gt;
 |PC01: 1&lt;br /&gt;
 |I2C&lt;br /&gt;
 |-&lt;br /&gt;
 |PC2&lt;br /&gt;
 |A10&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |SLED1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PC3&lt;br /&gt;
 |A11&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |SLED2&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PC4&lt;br /&gt;
 |A12&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |SLED3&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PC5&lt;br /&gt;
 |A13&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |SLED4&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PC6&lt;br /&gt;
 |A14&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |WLAN_GPIO14_OUT&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PC7&lt;br /&gt;
 |A15&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |WLAN_GPIO8_IN&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PD0&lt;br /&gt;
 |SCL/INT0&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |I2C-Bus&lt;br /&gt;
 |SCL&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PD1&lt;br /&gt;
 |SDA/INT1&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |I2C-Bus&lt;br /&gt;
 |SDA&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PD2&lt;br /&gt;
 |RXD1/INT2&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |RS232&lt;br /&gt;
 |RXD1&lt;br /&gt;
 |USPI15: 8&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PD3&lt;br /&gt;
 |TXD1/INT3&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |RS232&lt;br /&gt;
 |TXD1&lt;br /&gt;
 |USPI15: 6&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PD4&lt;br /&gt;
 |ICP1&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_PD4_ICP1&lt;br /&gt;
 |PWM01: 1&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PD5&lt;br /&gt;
 |XCK1&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_PD5_XCK1&lt;br /&gt;
 |USPI15: 4&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PD6&lt;br /&gt;
 |T1&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_PD6_T1&lt;br /&gt;
 |PWM01: 3&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PD7&lt;br /&gt;
 |T0&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_PD7_T2&lt;br /&gt;
 |PWM01: 6&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PE0&lt;br /&gt;
 |RXD0/PCI8&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |RS232&lt;br /&gt;
 |RXD0&lt;br /&gt;
 |&lt;br /&gt;
 |USART RX&lt;br /&gt;
 |-&lt;br /&gt;
 |PE1&lt;br /&gt;
 |TXD0&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |RS232&lt;br /&gt;
 |TXD0&lt;br /&gt;
 |&lt;br /&gt;
 |USART TX&lt;br /&gt;
 |-&lt;br /&gt;
 |PE2&lt;br /&gt;
 |XCK0/AIN0&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_PE2_XCK0_AIN0&lt;br /&gt;
 |ADCIO2: 8&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PE3&lt;br /&gt;
 |OC3A/AIN1&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_PE3_OC3A_AIN1&lt;br /&gt;
 |ADCIO2: 4&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PE4&lt;br /&gt;
 |OC3B/INT4&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_PE4_OC3B_I4&lt;br /&gt;
 |PWM23: 9&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PE5&lt;br /&gt;
 |OC3C/INT5&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_PE5_OC3C_I5&lt;br /&gt;
 |PWM23: 4&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PE6&lt;br /&gt;
 |T3/INT6&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_PE6_T3_I6&lt;br /&gt;
 |PWM23: 3&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PE7&lt;br /&gt;
 |CLKO/ICP3/INT7&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_PE7_ICP3_I7&lt;br /&gt;
 |PWM23: 1&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PF0&lt;br /&gt;
 |ADC0&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_ADC0&lt;br /&gt;
 |ADCIO1: 3&lt;br /&gt;
 |ADC_0&lt;br /&gt;
 |-&lt;br /&gt;
 |PF1&lt;br /&gt;
 |ADC1&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_ADC1&lt;br /&gt;
 |ADCIO1: 1&lt;br /&gt;
 |ADC_1&lt;br /&gt;
 |-&lt;br /&gt;
 |PF2&lt;br /&gt;
 |ADC2&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_ADC2&lt;br /&gt;
 |ADCIO1: 5&lt;br /&gt;
 |ADC_2&lt;br /&gt;
 |-&lt;br /&gt;
 |PF3&lt;br /&gt;
 |ADC3&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_ADC3&lt;br /&gt;
 |ADCIO1: 7&lt;br /&gt;
 |ADC_3&lt;br /&gt;
 |-&lt;br /&gt;
 |PF4&lt;br /&gt;
 |ADC4/TCK&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |JTAG&lt;br /&gt;
 |IO_ADC4&lt;br /&gt;
 |ADCIO1: 9&lt;br /&gt;
 |ADC_4&lt;br /&gt;
 |-&lt;br /&gt;
 |PF5&lt;br /&gt;
 |ADC5/TMS&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |JTAG&lt;br /&gt;
 |IO_ADC5&lt;br /&gt;
 |ADCIO1: 11&lt;br /&gt;
 |ADC_5&lt;br /&gt;
 |-&lt;br /&gt;
 |PF6&lt;br /&gt;
 |ADC6/TDO&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |JTAG&lt;br /&gt;
 |IO_ADC6&lt;br /&gt;
 |ADCIO1: 12&lt;br /&gt;
 |ADC_6&lt;br /&gt;
 |-&lt;br /&gt;
 |PF7&lt;br /&gt;
 |ADC7/TDI&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |JTAG&lt;br /&gt;
 |IO_ADC7&lt;br /&gt;
 |ADCIO1: 13&lt;br /&gt;
 |ADC_7&lt;br /&gt;
 |-&lt;br /&gt;
 |PG0&lt;br /&gt;
 |WR&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |DISP_WR&lt;br /&gt;
 |DISPIO: 5&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PG1&lt;br /&gt;
 |RD&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |DISP_EN_RD&lt;br /&gt;
 |DISPIO: 6&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PG2&lt;br /&gt;
 |ALE&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |DISP_RS_ALE&lt;br /&gt;
 |DISPIO: 4&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PG3&lt;br /&gt;
 |TOSC2&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |BUTTON_SW2&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PG4&lt;br /&gt;
 |TOSC1&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |BUTTON_SW1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PG5&lt;br /&gt;
 |OC0B&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_OC0B&lt;br /&gt;
 |PWM01: 5&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PH0&lt;br /&gt;
 |RXD2&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |RS232&lt;br /&gt;
 |RXD2&lt;br /&gt;
 |USPI24: 8&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PH1&lt;br /&gt;
 |TXD2&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |RS232&lt;br /&gt;
 |TXD2&lt;br /&gt;
 |USPI24: 6&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PH2&lt;br /&gt;
 |XCK2&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_PH2_XCK2&lt;br /&gt;
 |USPI24: 4&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PH3&lt;br /&gt;
 |OC4A&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_PH3_OC4A&lt;br /&gt;
 |USPI24: 9&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PH4&lt;br /&gt;
 |OC4B&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_PH4_OC4B&lt;br /&gt;
 |USPI24: 7&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PH5&lt;br /&gt;
 |OC4C&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_PH5_OC4C&lt;br /&gt;
 |USPI24: 5&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PH6&lt;br /&gt;
 |OC2B&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_PH6_OC2B&lt;br /&gt;
 |PWM23: 7&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PH7&lt;br /&gt;
 |T4&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_PH7_T4&lt;br /&gt;
 |USPI24: 3&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PJ0&lt;br /&gt;
 |RXD3/PCI9&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |RS232&lt;br /&gt;
 |WLAN_RXD3&lt;br /&gt;
 |&lt;br /&gt;
 |WLAN USART RX&lt;br /&gt;
 |-&lt;br /&gt;
 |PJ1&lt;br /&gt;
 |TXD3/PCI10&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |RS232&lt;br /&gt;
 |WLAN_TXD3&lt;br /&gt;
 |&lt;br /&gt;
 |WLAN USART TX&lt;br /&gt;
 |-&lt;br /&gt;
 |PJ2&lt;br /&gt;
 |XCK3/PCI11&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |WLAN_RTS&lt;br /&gt;
 |&lt;br /&gt;
 |Output RTS&lt;br /&gt;
 |-&lt;br /&gt;
 |PJ3&lt;br /&gt;
 |PCI12&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |INT1_PI12&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PJ4&lt;br /&gt;
 |PCI13&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |INTU_PI13&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PJ5&lt;br /&gt;
 |PCI14&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |INT3_PI14&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PJ6&lt;br /&gt;
 |PCI15&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |INT2_PI15&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PJ7&lt;br /&gt;
 |&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |WLAN_CTS&lt;br /&gt;
 |&lt;br /&gt;
 |INPUT CTS&lt;br /&gt;
 |-&lt;br /&gt;
 |PK0&lt;br /&gt;
 |ADC8/PCI16&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_ADC8_PI16&lt;br /&gt;
 |ADCIO2: 1&lt;br /&gt;
 |ADC_8&lt;br /&gt;
 |-&lt;br /&gt;
 |PK1&lt;br /&gt;
 |ADC9/PCI17&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_ADC9_PI17&lt;br /&gt;
 |ADCIO2: 3&lt;br /&gt;
 |ADC_9&lt;br /&gt;
 |-&lt;br /&gt;
 |PK2&lt;br /&gt;
 |ADC10/PCI18&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_ADC10_PI18&lt;br /&gt;
 |ADCIO2: 5&lt;br /&gt;
 |ADC_10&lt;br /&gt;
 |-&lt;br /&gt;
 |PK3&lt;br /&gt;
 |ADC11/PCI19&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_ADC11_PI19&lt;br /&gt;
 |ADCIO2: 7&lt;br /&gt;
 |ADC_11&lt;br /&gt;
 |-&lt;br /&gt;
 |PK4&lt;br /&gt;
 |ADC12/PCI20&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_ADC12_PI20&lt;br /&gt;
 |ADCIO2: 9&lt;br /&gt;
 |ADC_12&lt;br /&gt;
 |-&lt;br /&gt;
 |PK5&lt;br /&gt;
 |ADC13/PCI21&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_ADC13_PI21&lt;br /&gt;
 |PWM01: 8&lt;br /&gt;
 |ADC_13&lt;br /&gt;
 |-&lt;br /&gt;
 |PK6&lt;br /&gt;
 |ADC14/PCI22&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_ADC14_PI22&lt;br /&gt;
 |PWM23: 8&lt;br /&gt;
 |ADC_14&lt;br /&gt;
 |-&lt;br /&gt;
 |PK7&lt;br /&gt;
 |ADC15/PCI23&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_ADC15_PI23&lt;br /&gt;
 |PWM23: 6&lt;br /&gt;
 |ADC_15&lt;br /&gt;
 |-&lt;br /&gt;
 |PL0&lt;br /&gt;
 |ICP4&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_PL0_ICP4&lt;br /&gt;
 |USPI24: 1&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PL1&lt;br /&gt;
 |ICP5&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_PL1_ICP5&lt;br /&gt;
 |USPI15: 1&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PL2&lt;br /&gt;
 |T5&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_PL2_T5&lt;br /&gt;
 |USPI15: 3&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PL3&lt;br /&gt;
 |OC5A&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_PL3_OC5A&lt;br /&gt;
 |USPI15: 5&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PL4&lt;br /&gt;
 |OC5B&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_PL4_OC5B&lt;br /&gt;
 |USPI15: 9&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PL5&lt;br /&gt;
 |OC5C&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_PL5_OC5C&lt;br /&gt;
 |USPI15: 7&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PL6&lt;br /&gt;
 |&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |WLAN_WAKE&lt;br /&gt;
 |&lt;br /&gt;
 |Output&lt;br /&gt;
 |-&lt;br /&gt;
 |PL7&lt;br /&gt;
 |&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |WLAN_RESET&lt;br /&gt;
 |&lt;br /&gt;
 |Output&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 Zeichen:&lt;br /&gt;
 *   Standard-Belegung! Über Jumper/Lötbrücke änderbar.&lt;br /&gt;
 ²   I2C-Master: Out, Slave: In&lt;br /&gt;
 &lt;br /&gt;
 Abkürzungen der IO-Stecker (Spalte Stecker):&lt;br /&gt;
 PWM01    IO_PWM/T0/T1&lt;br /&gt;
 PWM23    IO_PWM/T2/T3&lt;br /&gt;
 USPI15   UART_SPI1/T5&lt;br /&gt;
 USPI24   UART_SPI2/T4&lt;br /&gt;
 ADCIO1   ADC_IO1&lt;br /&gt;
 ADCIO2   ADC_IO2/CMP&lt;br /&gt;
 DISPIO   DISPLAY/IO&lt;br /&gt;
 PC01     PC0/1&lt;br /&gt;
&lt;br /&gt;
======Timer-Nutzung======&lt;br /&gt;
&lt;br /&gt;
=====RP6M256uart=====&lt;br /&gt;
=====RP6M256_I2CMaster=====&lt;br /&gt;
=====RP6M256_WIFI=====&lt;br /&gt;
=====SDC=====&lt;br /&gt;
&lt;br /&gt;
====Projekte====&lt;br /&gt;
* Fernbedienung mit dem Browser:&lt;br /&gt;
** [http://www.roboternetz.de/community/threads/58162-Diskussion-zum-RP6-M256-WIFI-Modul?p=555102&amp;amp;viewfull=1#post555102 LED-Ansteuerung mit dem Browser]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erfahrungsberichte==&lt;br /&gt;
&lt;br /&gt;
...in Arbeit...(kann aber gerne ergänzt werden)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[RP6]]&lt;br /&gt;
* [[RP6 - Programmierung]]&lt;br /&gt;
* [[RP6 Kamera - Mitmach-Projekt]]&lt;br /&gt;
* [[RP6v2 I2C-Portexpander]]&lt;br /&gt;
* [[CCRP5]]&lt;br /&gt;
* [[Yeti]]&lt;br /&gt;
* [[Asuro]]&lt;br /&gt;
* [[C't-Bot]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
&lt;br /&gt;
* Ankündigung des RP6v2 im [http://www.roboternetz.de/community/threads/56964-NEWS-RP6v2-die-neue-Version-2-des-RP6-Robot-Systems RoboterNETZ] und im [http://www.arexx.com/forum/viewtopic.php?f=19&amp;amp;t=1778 AREXX Support Forum]&lt;br /&gt;
* Ankündigung der RP6v2 M256 WiFi und der Testaktion im [http://www.arexx.com/forum/viewtopic.php?f=19&amp;amp;t=1797 AREXX Support Forum]&lt;br /&gt;
* Beginn der &amp;quot;Testaktion: Kostenlose RP6v2-M256-WIFI Module!&amp;quot; im [http://www.roboternetz.de/community/threads/58161-Kostenlose-RP6-M256-WIFI-Module-für-Testanwender! Roboternetz RP6 Forum]&lt;br /&gt;
* Ende der &amp;quot;Testaktion: Kostenlose RP6v2-M256-WIFI Module!&amp;quot; nach Abstimmung im [http://www.roboternetz.de/community/threads/58389-Wählt-Gewinner-der-RP6v2-M256-WIFI-Module Roboternetz RP6 Forum]&lt;br /&gt;
* Newsartikel zur RP6v2 M256 WiFi im [http://www.roboternetz.de/community/threads/58160-Funk-Erweiterungsmodul-für-den-RP6-und-RP6v2-Gratis-für-Tester! RoboterNETZ]&lt;br /&gt;
* Diskussions-Thread zur RP6v2 M256 WiFi im [http://www.roboternetz.de/community/threads/58162-Diskussion-zum-RP6-M256-WIFI-Modul Roboternetz RP6 Forum]&lt;br /&gt;
* [http://www.arexx.com/rp6 AREXX RP6 Startseite]&lt;br /&gt;
* [http://www.arexx.com/forum/viewforum.php?f=19 AREXX Support Forum]&lt;br /&gt;
&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191584/RP6-V2-ROBOTERSYSTEM RP6v2 bei CONRAD]&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191550/RP6-MEGA32-ERWEITERUNGSSATZ RP6 CONTROL M32 bei CONRAD]&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191563/RP6-CC-PRO-MEGA128-ERWEITERUNGSSATZ RP6 CCPRO M128 bei CONRAD]&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191609/Arexx-RP6-V2-Control-M256-WiFi-Kit-RP6v2-M256-WIFI RP6v2 M256 WiFi bei CONRAD]&lt;br /&gt;
&lt;br /&gt;
* [http://www.rovingnetworks.com/products/RN_171_RN171_I_RM WiFi-Modul RN-171] der RP6v2 M256 WiFi&lt;br /&gt;
* [http://www.arexx.com/rp6/downloads/RP6_M256_WIFI_MANUAL_DE_20120711.zip 1. Bedienungsanleitung] der RP6v2 M256 WiFi&lt;br /&gt;
&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/viewforum.php?f=49 Roboternetz RP6 Forum]&lt;br /&gt;
* &amp;quot;Geburt&amp;quot; des Wiki im RN-Forum: [http://www.roboternetz.de/community/threads/32793-RP6-Wiki-Artikel RP6-Wiki-Artikel]&lt;br /&gt;
&lt;br /&gt;
* [http://www.youtube.com/results?search_query=rp6 RP6 Videos]&lt;br /&gt;
* [http://de-de.facebook.com/pages/Robby-RP6/155118711202285 facebook]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Robotikeinstieg]]	 &lt;br /&gt;
[[Kategorie:Praxis]]&lt;br /&gt;
&lt;br /&gt;
==Autoren==&lt;br /&gt;
--[[Benutzer:Dirk|Dirk]] 20:44, 25. Jul 2012 (CET)&lt;/div&gt;</summary>
		<author><name>MaxWeb</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=RP6v2&amp;diff=20316</id>
		<title>RP6v2</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=RP6v2&amp;diff=20316"/>
				<updated>2012-07-17T13:39:52Z</updated>
		
		<summary type="html">&lt;p&gt;MaxWeb: /* Loader Versionen */ Neue Loader-Version hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:rp6v2_2.jpg|Der RP6v2]]&lt;br /&gt;
&lt;br /&gt;
Was bisher geschah:&lt;br /&gt;
&lt;br /&gt;
Mon, 27. Feb 2012 - Ankündigung des RP6v2&amp;lt;br/&amp;gt;&lt;br /&gt;
Don, 08. Mär 2012 - Auslieferungsbeginn des RP6v2&amp;lt;br/&amp;gt;&lt;br /&gt;
Sam, 17. Mär 2012 - Ankündigung der RP6v2 M256 WiFi&amp;lt;br/&amp;gt;&lt;br /&gt;
Mon, 11. Jun 2012 - Beginn der &amp;quot;Testaktion: Kostenlose RP6v2-M256-WIFI Module!&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
Die, 10. Jul 2012 - Ende der &amp;quot;Testaktion: Kostenlose RP6v2-M256-WIFI Module!&amp;quot; nach Abstimmung&amp;lt;br/&amp;gt;&lt;br /&gt;
Mit, 11. Jul 2012 - Veröffentlichung der RP6v2 M256 WiFi Bedienungsanleitung&amp;lt;br/&amp;gt;&lt;br /&gt;
Don, 13. Sep 2012 - Auslieferungsbeginn der RP6v2 M256 WiFi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Allgemein==&lt;br /&gt;
Der RP6v2 ([http://www.conrad.de/ce/de/product/191584/RP6-V2-ROBOTERSYSTEM/ 191584]) wurde am 27.02.2012 von [[Benutzer:SlyD|SlyD]] angekündigt (siehe Weblinks!). Er ist eine leicht verbesserte Version des [[RP6]]. Der RP6v2 ist softwarekompatibel zum RP6. '''Alle Erweiterungs-Module können auch mit dem RP6v2 eingesetzt werden.'''&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel beschreibt die Grundlagen zum RP6v2, '''sofern sie vom RP6 abweichen''', und die Grundlagen und Programmierung seiner zukünftigen Erweiterungs-Module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Eigenschaften==&lt;br /&gt;
Laut Ankündigung haben sich beim RP6v2 folgende Details gegenüber dem RP6 geändert:&lt;br /&gt;
* Neue Drehgeber&lt;br /&gt;
** Justierung dank neuer Sensortechnik üblicherweise nicht mehr erforderlich&lt;br /&gt;
** leicht zugängliches und deutlich größeres Potentiometer&lt;br /&gt;
** Potis nur noch zur Feinjustierung erforderlich&lt;br /&gt;
* Zusätzliche Steckverbinder (im RP6 schon seit 2010 verbaut)&lt;br /&gt;
** vom Mainboard zu den Drehgebern&lt;br /&gt;
** vom Mainboard zu den Motoren&lt;br /&gt;
* Neue Anschlüsse (Steckverbinder / Stiftleisten)&lt;br /&gt;
** 2 3-polige ADC Anschlüsse mit VDD/GND inkl. zusätzlichem Stützkondensator&lt;br /&gt;
** 2 4-polige VDD Anschlüsse (je 2x +5V und 2x GND)&lt;br /&gt;
** 1 3-poliger +UB Anschluß (1x +UB, 2x GND)&lt;br /&gt;
** 1 5-polige Stiftleiste für den I2C Bus und VDD/GND&lt;br /&gt;
** 1 8-poliger EXT Steckverbinder (JST-Wannenstecker)&lt;br /&gt;
** 2 4-polige Steckverbinder (LIO1/LIO2) für die I/O-Pins von 4 LEDs und VDD/GND&lt;br /&gt;
* Hauptsicherung&lt;br /&gt;
** von 2,5A auf 3,15A erhöht&lt;br /&gt;
* Motortreiber&lt;br /&gt;
** leistungsfähigere und robustere MOSFETs&lt;br /&gt;
* Experimentierplatine&lt;br /&gt;
** gehört nicht mehr zum Lieferumfang&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Technische Änderungen==&lt;br /&gt;
Der RP6v2 weist einige Detail-Änderungen gegenüber der Vorversion auf. '''Diese Änderungen sind für die Nutzung und Programmierung des RP6v2 weitgehend irrelevant.'''&lt;br /&gt;
&lt;br /&gt;
Fast alle passiven SMD-Bauteile sind jetzt in Bauform 0603 bestückt (Ausnahmen: R6 (SP2 C2: R6), Induktivitäten und größere Kondensatoren).&lt;br /&gt;
Im Text gibt es Verweise auf den Schaltplan des RP6v2 (RP6v2_MAINBOARD.pdf) in der Form: (SP2 B1: Bauteil). Dies bedeutet, dass man das Bauteil auf Blatt 2 des RP6v2-Schaltplans im Feld B1 finden kann.&lt;br /&gt;
&lt;br /&gt;
===Mainboard===&lt;br /&gt;
* C14 (SP2 A3: C14) -&amp;gt; Liegt jetzt an VDD (parallel u.a. zu C6..C10)&lt;br /&gt;
* C26 (SP2 A1: C26) -&amp;gt; Jetzt bestückt mit Elko 220uF/16V (laut SP: 470uF/16V!)&lt;br /&gt;
* C29 (SP2 E1: C29) -&amp;gt; Jetzt bestückt mit SMD Kondensator 10uF&lt;br /&gt;
* IO3/IO4 Bestückungsaufdruck geändert in IO4/IO5 (Stecker LIO2)&lt;br /&gt;
* UBAT Bestückungsaufdruck geändert in UBAT_SENSE&lt;br /&gt;
* F2.5A Bestückungsaufdruck geändert in F3.0A (Feinsicherung flink 3,0A)&lt;br /&gt;
* Trennstelle +UB Sensor (siehe Abschnitt 6.4.6 [[RP6#.2BUB_Sensor]] des RP6-Artikels!) existiert beim RP6v2 nicht mehr&lt;br /&gt;
* Als Motortreiber (SP3 BCD23: Q1..Q4) werden anstelle von IRF7309 (ID 3,0A; PD 1,4W) die leistungsfähigeren und ESD-geschützten Typen SP8M3 (ID 4,5A; PD 2W; Schutzdiode) verwendet&lt;br /&gt;
&lt;br /&gt;
===Encoderplatine===&lt;br /&gt;
Schaltung siehe Datei RP6v2_ENCODERS.pdf!&lt;br /&gt;
* Jetzt mit Operationsverstärker IC2 (MCP6001U) anstelle eines Transistors&lt;br /&gt;
* Größeres Potentiometer R2 (200kOhm)&lt;br /&gt;
Die Encoder sind mittlerweile auch einzeln unter der Conrad-Bestellnummer '''[http://www.conrad.de/ce/de/product/191625/RP6-DREHGEBER-SATZ 191625-62]''' verfügbar.&lt;br /&gt;
&lt;br /&gt;
===USB-Interface===&lt;br /&gt;
Schaltung siehe Datei RP6v2_USB_INTERFACE.pdf!&lt;br /&gt;
* C2  -&amp;gt; Jetzt bestückt mit SMD Kondensator 10uF&lt;br /&gt;
* C5  -&amp;gt; Neuer Blockkondensator 100nF an VCCIO von IC1&lt;br /&gt;
&lt;br /&gt;
===Steckverbindungen und Stiftleisten===&lt;br /&gt;
&lt;br /&gt;
====Motoren====&lt;br /&gt;
[[Bild:RP6v2_Motorstecker.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Beim RP6v2 sind die beiden Motorkabel mit 2-poligen Winkelsteckern RM 7,5mm an das Mainboard angeschlossen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Encoder====&lt;br /&gt;
[[Bild:RP6v2_Encoderstecker.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Beim RP6v2 sind die Encoder mit einem 6-poligen Winkelstecker RM 2,54mm an das Mainboard angeschlossen.&lt;br /&gt;
&lt;br /&gt;
Auch die 3-polige Verbindung zu den beiden Encoder-Platinen ist steckbar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====LIO1/LIO2====&lt;br /&gt;
[[Bild:RP6v2_LIO12.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Beim RP6 waren die Anschlüsse der Status-LEDs SL1,2 und SL4,5 ([[RP6#IO1..IO4]]) einzeln auf dem Mainboard zu kontaktieren.&lt;br /&gt;
&lt;br /&gt;
Beim RP6v2 gibt es zwei 4-polige Stiftleisten (LIO1, LIO2). Sie führen an den Pins 1 und 2 +5V und GND.&lt;br /&gt;
&lt;br /&gt;
An den Pins 3 und 4 finden sich die Anschlüsse von IO2, IO1 (LIO1) bzw. IO4, IO5 (LIO2).&lt;br /&gt;
&lt;br /&gt;
Bitte beachten: '''Der Bestückungsaufdruck IO4, IO5 des RP6v2 bezeichnet die selben Anschlüsse, wie beim RP6 IO3, IO4!'''&lt;br /&gt;
&lt;br /&gt;
Es handelt sich in beiden Fällen um die Anschlüsse der Status-LEDs SL4 (PB7) und SL5 (PB1).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ADC0/ADC1====&lt;br /&gt;
[[Bild:RP6v2_ADC01.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Beim RP6 waren die 3-poligen Anschlüsse von ADC0 und ADC1 ([[RP6#Analoge_Sensoren_an_ADC0.2F1]]) nicht mit Stiftleisten bestückt.&lt;br /&gt;
&lt;br /&gt;
Dies ist jetzt beim RP6v2 der Fall,- zusätzlich ist auch C26 (SP2 A1: C26) bestückt.&lt;br /&gt;
&lt;br /&gt;
Damit können analoge Sensoren direkt angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====I2C/+UB/+5V====&lt;br /&gt;
[[Bild:RP6v2_I2CUB5V.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Die beim RP6 vorhandene 5-polige I2C-Schnittstelle ([[RP6#I2C-Schnittstelle]]) findet sich (jetzt mit Stiftleiste bestückt) genau so auch beim RP6v2.&lt;br /&gt;
&lt;br /&gt;
Bitte beachten: '''Die Anordnung der Pins auf dem Mainboard ist beim RP6v2 umgekehrt wie beim RP6!'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beim RP6 gab es (nicht mit Stiftleisten bestückte) Anschlüsse für VDD und +UB ([[RP6#VDD.2FGND.2F.2BUB_Anschlu.C3.9F]]).&lt;br /&gt;
&lt;br /&gt;
Beim RP6v2 gibt es jetzt drei Stiftleisten für +UB, +5V (VDD) und GND:&lt;br /&gt;
* Eine 3-polige Stiftleiste mit GND, +UB, GND&lt;br /&gt;
* Zwei 4-polige Stiftleisten jeweils mit GND, +5V, +5V, GND&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====EXT====&lt;br /&gt;
[[Bild:RP6v2_EXT.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Beim RP6 war keine Stiftleiste für den 8-poligen EXT Anschluß bestückt.&lt;br /&gt;
&lt;br /&gt;
Beim RP6v2 ist jetzt an dieser Stelle ein Wannenstecker vorhanden, in den auch Steckbuchsen (RM 2,54) gesteckt werden können.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beschreibung des EXT Anschlusses: [[RP6#EXT_Anschlu.C3.9F]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erweiterungs-Module==&lt;br /&gt;
&lt;br /&gt;
===RP6v2 M256 WiFi Platine===&lt;br /&gt;
[[Bild:RP6v2_M256_WIFI.JPG|Die RP6v2 M256 WiFi]]&lt;br /&gt;
&lt;br /&gt;
Die RP6v2 M256 WiFi Zusatzplatine wurde am 17.03.2012 von [[Benutzer:SlyD|SlyD]] angekündigt (siehe Weblink!).&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Laut Ankündigung bietet die RP6v2 M256 WiFi:&lt;br /&gt;
* Atmel ATmega2560 Mikrocontroller&lt;br /&gt;
** 256kB Flash ROM&lt;br /&gt;
** 8kB SRAM&lt;br /&gt;
** 4kB EEPROM&lt;br /&gt;
** 16MHz Taktfrequenz&lt;br /&gt;
** 6 Hardware Timer und 86 I/O Ports&lt;br /&gt;
** Bis zu 16 A/D Wandler Kanäle (10 Bit Auflösung)&lt;br /&gt;
** 12 16 Bit Hardware PWMs&lt;br /&gt;
** 2 USART/SPI Ports&lt;br /&gt;
* Energieeffizientes 802.11g WLAN Modul&lt;br /&gt;
** Typ: Roving Networks RN-171&lt;br /&gt;
** Telemetriedaten übertragen&lt;br /&gt;
** Roboter vom PC aus fernsteuern&lt;br /&gt;
** Neue Programme drahtlos per WLAN in den Mikrocontroller laden&lt;br /&gt;
** Bootloader nachträglich erweitern&lt;br /&gt;
** Einstellung des WLAN Moduls über das RP6 USB Interface mit dem RobotLoader 2.x&lt;br /&gt;
** Änderung der Einstellungen über eine Netzwerkverbindung oder mit dem eigenen Mikrocontrollerprogramm&lt;br /&gt;
** Eigener Prozessor (entlastet den ATmega)&lt;br /&gt;
** Funktioniert mit jedem Standard WLAN Accesspoint/Router&lt;br /&gt;
** Kann als transparente serielle Schnittstelle arbeiten&lt;br /&gt;
** Kann vom PC aus per TCP/IP angesprochen werden&lt;br /&gt;
** 10cm 2.4GHz Antenne mit RP-SMA Anschluß&lt;br /&gt;
* Sonstige Ausstattung&lt;br /&gt;
** 8 Bit Display Port&lt;br /&gt;
** I2C Bus&lt;br /&gt;
** microSD Kartenslot&lt;br /&gt;
** 7 Status LEDs&lt;br /&gt;
** 2 Eingabetaster&lt;br /&gt;
** ISP Anschluß&lt;br /&gt;
** 4 WLAN ADC Kanäle&lt;br /&gt;
** AREF 3,3 und 5V&lt;br /&gt;
&lt;br /&gt;
====Technische Daten====&lt;br /&gt;
{|  {{Blauetabelle}} &lt;br /&gt;
|'''Mikrocontroller:'''&lt;br /&gt;
|AVR ATmega2560&lt;br /&gt;
|-&lt;br /&gt;
|'''Speicher:'''&lt;br /&gt;
|256 kB [[Flash]]-Speicher&amp;lt;br/&amp;gt;&lt;br /&gt;
8 kB SRAM&amp;lt;br/&amp;gt; &lt;br /&gt;
4 kB [[EEPROM]]&amp;lt;br/&amp;gt;&lt;br /&gt;
? GB microSD Speicherkarte&lt;br /&gt;
|-&lt;br /&gt;
|'''Programmierung:'''&lt;br /&gt;
|Über [[Bootloader]], belegt ca. 8 kB des Flash-Speichers&amp;lt;br/&amp;gt;&lt;br /&gt;
Drahtlos über WLAN&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Sensoren:'''&lt;br /&gt;
|2 Eingabetaster&amp;lt;br/&amp;gt;&lt;br /&gt;
4 WLAN ADC Kanäle&amp;lt;br/&amp;gt;&lt;br /&gt;
60 GP I/O Ports, davon bis 16 AD-Wandler (10-bit)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Aktoren:'''&lt;br /&gt;
|7 Status LEDs&amp;lt;br/&amp;gt;&lt;br /&gt;
1 LC-Display-Port&amp;lt;br/&amp;gt;&lt;br /&gt;
802.11g WLAN Modul&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Abmessungen:'''&lt;br /&gt;
|(L &amp;amp;times; B &amp;amp;times; H) 112 &amp;amp;times; 90 &amp;amp;times; ? mm&lt;br /&gt;
|-&lt;br /&gt;
|'''Ausführung:'''&lt;br /&gt;
|Fertig aufgebautes Erweiterungsmodul&lt;br /&gt;
|-&lt;br /&gt;
|'''Stromversorgung:'''&lt;br /&gt;
|6 AA NiMH Akkus (über die RP6v2 Base)&lt;br /&gt;
|-&lt;br /&gt;
|'''Hersteller:'''&lt;br /&gt;
|Arexx Niederlande&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Umbau-Optionen====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zubehör und Ersatzteile==&lt;br /&gt;
Über die Zubehör- und Ersatzteile informiert der Artikel [[RP6#Zubehör und Ersatzteile]].&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus sind bei [http://www.conrad.de/ce/ CONRAD] für den RP6v2 erhältlich:&lt;br /&gt;
* Arexx RP6v2 Drehgeber-Satz RP6-ENCv2 [http://www.conrad.de/ce/de/product/191625/RP6-DREHGEBER-SATZ 191625]&lt;br /&gt;
* Arexx RP6 USB-Interface RP6V2-TRANS [http://www.conrad.de/ce/de/product/191638/RP6-V2-PROGRAMMIER-ADAPTER 191638]&lt;br /&gt;
&lt;br /&gt;
===RP6v2 Drehgeber-Satz RP6-ENCv2===&lt;br /&gt;
&lt;br /&gt;
===RP6 USB-Interface RP6V2-TRANS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Programmierung==&lt;br /&gt;
===RobotLoader===&lt;br /&gt;
====Loader Versionen====&lt;br /&gt;
Hier eine Tabelle der (mir) bekannten RobotLoader Versionen für die RP6v2 Base, CONTROL M32 und ab Version 2.0 auch für die M256 WiFi:&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |ZIP-Datum&lt;br /&gt;
 |Version&lt;br /&gt;
 |Bemerkungen&lt;br /&gt;
 |Examples&lt;br /&gt;
 |-&lt;br /&gt;
 |12.07.2010&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RobotLoader_20100712.zip 1.5h]&lt;br /&gt;
 |Auch für die RP6 Base, für Roboterarme und Caterpillar&lt;br /&gt;
 |ab 16.10.2007&lt;br /&gt;
 |-&lt;br /&gt;
 |23.02.2012&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RobotLoader_20120223.zip 2.0 BETA]&lt;br /&gt;
 |Testversion! Ab v2.0 auch für die RP6v2 M256 WiFi Platine&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |05.06.2012&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RobotLoader_20120605.zip 2.3a]&lt;br /&gt;
 |Testversion! Siehe auch [http://www.roboternetz.de/community/threads/58168-RobotLoader-2-3a hier]!&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |18.06.2012&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RobotLoader_20120618.zip 2.3b]&lt;br /&gt;
 |Über Kommandozeile nutzbar, siehe auch [http://www.roboternetz.de/community/threads/58168-RobotLoader-2-3a hier]!&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
|-&lt;br /&gt;
 |17.07.2012&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RobotLoader_20120717.zip 2.3c]&lt;br /&gt;
 |Über Kommandozeile nutzbar, siehe auch [http://www.roboternetz.de/community/threads/58168-RobotLoader-2-3a hier]!&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Projekte====&lt;br /&gt;
* Der RobotLoader 2.3a und [http://www.rn-wissen.de/index.php/LunaAVR LunaAVR] im [http://www.roboternetz.de/community/threads/58168-RobotLoader-2-3a?p=551535&amp;amp;viewfull=1#post551535 Roboternetz RP6 Forum] und im [http://forum.myluna.de/viewtopic.php?f=3&amp;amp;t=24#p94 LunaAVR Forum]&lt;br /&gt;
&lt;br /&gt;
===RP6v2===&lt;br /&gt;
'''Der RP6v2 ([http://www.conrad.de/ce/de/product/191584/RP6-V2-ROBOTERSYSTEM/ 191584]) ist softwarekompatibel zum RP6.'''&lt;br /&gt;
&lt;br /&gt;
Zur Programmierung des [[RP6]] und des RP6v2 gibt es einen eigenen Artikel: [[RP6 - Programmierung]]&lt;br /&gt;
&lt;br /&gt;
===RP6v2 M256 WiFi Platine===&lt;br /&gt;
====Demo-Programmme====&lt;br /&gt;
====Library====&lt;br /&gt;
=====Versionen=====&lt;br /&gt;
Die neuste Library (Version 1.7) sowie die Demo-Programme sind Die RP6 Base und M32 Demo Programme sind [http://www.arexx.com/rp6/downloads/RP6Examples_20120716.zip hier] zu finden.&lt;br /&gt;
Neben der Unterstützung der M256Wifi wurden auch einige Änderungen an den Libraries der anderen Module vorgenommen.&lt;br /&gt;
=====Bug-Report=====&lt;br /&gt;
=====Konfiguration=====&lt;br /&gt;
=====Port-Verwendung=====&lt;br /&gt;
=====Timer-Nutzung=====&lt;br /&gt;
&lt;br /&gt;
====Projekte====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erfahrungsberichte==&lt;br /&gt;
&lt;br /&gt;
...in Arbeit...(kann aber gerne ergänzt werden)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[RP6]]&lt;br /&gt;
* [[RP6 - Programmierung]]&lt;br /&gt;
* [[RP6 Kamera - Mitmach-Projekt]]&lt;br /&gt;
* [[RP6v2 I2C-Portexpander]]&lt;br /&gt;
* [[CCRP5]]&lt;br /&gt;
* [[Yeti]]&lt;br /&gt;
* [[Asuro]]&lt;br /&gt;
* [[C't-Bot]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
&lt;br /&gt;
* Ankündigung des RP6v2 im [http://www.roboternetz.de/community/threads/56964-NEWS-RP6v2-die-neue-Version-2-des-RP6-Robot-Systems RoboterNETZ] und im [http://www.arexx.com/forum/viewtopic.php?f=19&amp;amp;t=1778 AREXX Support Forum]&lt;br /&gt;
* Ankündigung der RP6v2 M256 WiFi und der Testaktion im [http://www.arexx.com/forum/viewtopic.php?f=19&amp;amp;t=1797 AREXX Support Forum]&lt;br /&gt;
* Beginn der &amp;quot;Testaktion: Kostenlose RP6v2-M256-WIFI Module!&amp;quot; im [http://www.roboternetz.de/community/threads/58161-Kostenlose-RP6-M256-WIFI-Module-für-Testanwender! Roboternetz RP6 Forum]&lt;br /&gt;
* Ende der &amp;quot;Testaktion: Kostenlose RP6v2-M256-WIFI Module!&amp;quot; nach Abstimmung im [http://www.roboternetz.de/community/threads/58389-Wählt-Gewinner-der-RP6v2-M256-WIFI-Module Roboternetz RP6 Forum]&lt;br /&gt;
* Newsartikel zur RP6v2 M256 WiFi im [http://www.roboternetz.de/community/threads/58160-Funk-Erweiterungsmodul-für-den-RP6-und-RP6v2-Gratis-für-Tester! RoboterNETZ]&lt;br /&gt;
* Diskussions-Thread zur RP6v2 M256 WiFi im [http://www.roboternetz.de/community/threads/58162-Diskussion-zum-RP6-M256-WIFI-Modul Roboternetz RP6 Forum]&lt;br /&gt;
* [http://www.arexx.com/rp6 AREXX RP6 Startseite]&lt;br /&gt;
* [http://www.arexx.com/forum/viewforum.php?f=19 AREXX Support Forum]&lt;br /&gt;
&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191584/RP6-V2-ROBOTERSYSTEM RP6v2 bei CONRAD]&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191550/RP6-MEGA32-ERWEITERUNGSSATZ RP6 CONTROL M32 bei CONRAD]&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191563/RP6-CC-PRO-MEGA128-ERWEITERUNGSSATZ RP6 CCPRO M128 bei CONRAD]&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191609/Arexx-RP6-V2-Control-M256-WiFi-Kit-RP6v2-M256-WIFI RP6v2 M256 WiFi bei CONRAD]&lt;br /&gt;
&lt;br /&gt;
* [http://www.rovingnetworks.com/products/RN_171 WiFi-Modul RN-171] der RP6v2 M256 WiFi&lt;br /&gt;
* [http://www.arexx.com/rp6/downloads/RP6_M256_WIFI_MANUAL_DE_20120711.zip 1. Bedienungsanleitung] der RP6v2 M256 WiFi&lt;br /&gt;
&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/viewforum.php?f=49 Roboternetz RP6 Forum]&lt;br /&gt;
* &amp;quot;Geburt&amp;quot; des Wiki im RN-Forum: [http://www.roboternetz.de/community/threads/32793-RP6-Wiki-Artikel RP6-Wiki-Artikel]&lt;br /&gt;
&lt;br /&gt;
* [http://www.youtube.com/results?search_query=rp6 RP6 Videos]&lt;br /&gt;
* [http://de-de.facebook.com/pages/Robby-RP6/155118711202285 facebook]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Robotikeinstieg]]	 &lt;br /&gt;
[[Kategorie:Praxis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Autoren==&lt;br /&gt;
--[[Benutzer:Dirk|Dirk]] 16:46, 11. Jul 2012 (CET)&lt;/div&gt;</summary>
		<author><name>MaxWeb</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=RP6v2&amp;diff=20315</id>
		<title>RP6v2</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=RP6v2&amp;diff=20315"/>
				<updated>2012-07-17T13:38:11Z</updated>
		
		<summary type="html">&lt;p&gt;MaxWeb: Neuste Lib verlinkt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:rp6v2_2.jpg|Der RP6v2]]&lt;br /&gt;
&lt;br /&gt;
Was bisher geschah:&lt;br /&gt;
&lt;br /&gt;
Mon, 27. Feb 2012 - Ankündigung des RP6v2&amp;lt;br/&amp;gt;&lt;br /&gt;
Don, 08. Mär 2012 - Auslieferungsbeginn des RP6v2&amp;lt;br/&amp;gt;&lt;br /&gt;
Sam, 17. Mär 2012 - Ankündigung der RP6v2 M256 WiFi&amp;lt;br/&amp;gt;&lt;br /&gt;
Mon, 11. Jun 2012 - Beginn der &amp;quot;Testaktion: Kostenlose RP6v2-M256-WIFI Module!&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
Die, 10. Jul 2012 - Ende der &amp;quot;Testaktion: Kostenlose RP6v2-M256-WIFI Module!&amp;quot; nach Abstimmung&amp;lt;br/&amp;gt;&lt;br /&gt;
Mit, 11. Jul 2012 - Veröffentlichung der RP6v2 M256 WiFi Bedienungsanleitung&amp;lt;br/&amp;gt;&lt;br /&gt;
Don, 13. Sep 2012 - Auslieferungsbeginn der RP6v2 M256 WiFi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Allgemein==&lt;br /&gt;
Der RP6v2 ([http://www.conrad.de/ce/de/product/191584/RP6-V2-ROBOTERSYSTEM/ 191584]) wurde am 27.02.2012 von [[Benutzer:SlyD|SlyD]] angekündigt (siehe Weblinks!). Er ist eine leicht verbesserte Version des [[RP6]]. Der RP6v2 ist softwarekompatibel zum RP6. '''Alle Erweiterungs-Module können auch mit dem RP6v2 eingesetzt werden.'''&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel beschreibt die Grundlagen zum RP6v2, '''sofern sie vom RP6 abweichen''', und die Grundlagen und Programmierung seiner zukünftigen Erweiterungs-Module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Eigenschaften==&lt;br /&gt;
Laut Ankündigung haben sich beim RP6v2 folgende Details gegenüber dem RP6 geändert:&lt;br /&gt;
* Neue Drehgeber&lt;br /&gt;
** Justierung dank neuer Sensortechnik üblicherweise nicht mehr erforderlich&lt;br /&gt;
** leicht zugängliches und deutlich größeres Potentiometer&lt;br /&gt;
** Potis nur noch zur Feinjustierung erforderlich&lt;br /&gt;
* Zusätzliche Steckverbinder (im RP6 schon seit 2010 verbaut)&lt;br /&gt;
** vom Mainboard zu den Drehgebern&lt;br /&gt;
** vom Mainboard zu den Motoren&lt;br /&gt;
* Neue Anschlüsse (Steckverbinder / Stiftleisten)&lt;br /&gt;
** 2 3-polige ADC Anschlüsse mit VDD/GND inkl. zusätzlichem Stützkondensator&lt;br /&gt;
** 2 4-polige VDD Anschlüsse (je 2x +5V und 2x GND)&lt;br /&gt;
** 1 3-poliger +UB Anschluß (1x +UB, 2x GND)&lt;br /&gt;
** 1 5-polige Stiftleiste für den I2C Bus und VDD/GND&lt;br /&gt;
** 1 8-poliger EXT Steckverbinder (JST-Wannenstecker)&lt;br /&gt;
** 2 4-polige Steckverbinder (LIO1/LIO2) für die I/O-Pins von 4 LEDs und VDD/GND&lt;br /&gt;
* Hauptsicherung&lt;br /&gt;
** von 2,5A auf 3,15A erhöht&lt;br /&gt;
* Motortreiber&lt;br /&gt;
** leistungsfähigere und robustere MOSFETs&lt;br /&gt;
* Experimentierplatine&lt;br /&gt;
** gehört nicht mehr zum Lieferumfang&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Technische Änderungen==&lt;br /&gt;
Der RP6v2 weist einige Detail-Änderungen gegenüber der Vorversion auf. '''Diese Änderungen sind für die Nutzung und Programmierung des RP6v2 weitgehend irrelevant.'''&lt;br /&gt;
&lt;br /&gt;
Fast alle passiven SMD-Bauteile sind jetzt in Bauform 0603 bestückt (Ausnahmen: R6 (SP2 C2: R6), Induktivitäten und größere Kondensatoren).&lt;br /&gt;
Im Text gibt es Verweise auf den Schaltplan des RP6v2 (RP6v2_MAINBOARD.pdf) in der Form: (SP2 B1: Bauteil). Dies bedeutet, dass man das Bauteil auf Blatt 2 des RP6v2-Schaltplans im Feld B1 finden kann.&lt;br /&gt;
&lt;br /&gt;
===Mainboard===&lt;br /&gt;
* C14 (SP2 A3: C14) -&amp;gt; Liegt jetzt an VDD (parallel u.a. zu C6..C10)&lt;br /&gt;
* C26 (SP2 A1: C26) -&amp;gt; Jetzt bestückt mit Elko 220uF/16V (laut SP: 470uF/16V!)&lt;br /&gt;
* C29 (SP2 E1: C29) -&amp;gt; Jetzt bestückt mit SMD Kondensator 10uF&lt;br /&gt;
* IO3/IO4 Bestückungsaufdruck geändert in IO4/IO5 (Stecker LIO2)&lt;br /&gt;
* UBAT Bestückungsaufdruck geändert in UBAT_SENSE&lt;br /&gt;
* F2.5A Bestückungsaufdruck geändert in F3.0A (Feinsicherung flink 3,0A)&lt;br /&gt;
* Trennstelle +UB Sensor (siehe Abschnitt 6.4.6 [[RP6#.2BUB_Sensor]] des RP6-Artikels!) existiert beim RP6v2 nicht mehr&lt;br /&gt;
* Als Motortreiber (SP3 BCD23: Q1..Q4) werden anstelle von IRF7309 (ID 3,0A; PD 1,4W) die leistungsfähigeren und ESD-geschützten Typen SP8M3 (ID 4,5A; PD 2W; Schutzdiode) verwendet&lt;br /&gt;
&lt;br /&gt;
===Encoderplatine===&lt;br /&gt;
Schaltung siehe Datei RP6v2_ENCODERS.pdf!&lt;br /&gt;
* Jetzt mit Operationsverstärker IC2 (MCP6001U) anstelle eines Transistors&lt;br /&gt;
* Größeres Potentiometer R2 (200kOhm)&lt;br /&gt;
Die Encoder sind mittlerweile auch einzeln unter der Conrad-Bestellnummer '''[http://www.conrad.de/ce/de/product/191625/RP6-DREHGEBER-SATZ 191625-62]''' verfügbar.&lt;br /&gt;
&lt;br /&gt;
===USB-Interface===&lt;br /&gt;
Schaltung siehe Datei RP6v2_USB_INTERFACE.pdf!&lt;br /&gt;
* C2  -&amp;gt; Jetzt bestückt mit SMD Kondensator 10uF&lt;br /&gt;
* C5  -&amp;gt; Neuer Blockkondensator 100nF an VCCIO von IC1&lt;br /&gt;
&lt;br /&gt;
===Steckverbindungen und Stiftleisten===&lt;br /&gt;
&lt;br /&gt;
====Motoren====&lt;br /&gt;
[[Bild:RP6v2_Motorstecker.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Beim RP6v2 sind die beiden Motorkabel mit 2-poligen Winkelsteckern RM 7,5mm an das Mainboard angeschlossen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Encoder====&lt;br /&gt;
[[Bild:RP6v2_Encoderstecker.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Beim RP6v2 sind die Encoder mit einem 6-poligen Winkelstecker RM 2,54mm an das Mainboard angeschlossen.&lt;br /&gt;
&lt;br /&gt;
Auch die 3-polige Verbindung zu den beiden Encoder-Platinen ist steckbar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====LIO1/LIO2====&lt;br /&gt;
[[Bild:RP6v2_LIO12.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Beim RP6 waren die Anschlüsse der Status-LEDs SL1,2 und SL4,5 ([[RP6#IO1..IO4]]) einzeln auf dem Mainboard zu kontaktieren.&lt;br /&gt;
&lt;br /&gt;
Beim RP6v2 gibt es zwei 4-polige Stiftleisten (LIO1, LIO2). Sie führen an den Pins 1 und 2 +5V und GND.&lt;br /&gt;
&lt;br /&gt;
An den Pins 3 und 4 finden sich die Anschlüsse von IO2, IO1 (LIO1) bzw. IO4, IO5 (LIO2).&lt;br /&gt;
&lt;br /&gt;
Bitte beachten: '''Der Bestückungsaufdruck IO4, IO5 des RP6v2 bezeichnet die selben Anschlüsse, wie beim RP6 IO3, IO4!'''&lt;br /&gt;
&lt;br /&gt;
Es handelt sich in beiden Fällen um die Anschlüsse der Status-LEDs SL4 (PB7) und SL5 (PB1).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ADC0/ADC1====&lt;br /&gt;
[[Bild:RP6v2_ADC01.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Beim RP6 waren die 3-poligen Anschlüsse von ADC0 und ADC1 ([[RP6#Analoge_Sensoren_an_ADC0.2F1]]) nicht mit Stiftleisten bestückt.&lt;br /&gt;
&lt;br /&gt;
Dies ist jetzt beim RP6v2 der Fall,- zusätzlich ist auch C26 (SP2 A1: C26) bestückt.&lt;br /&gt;
&lt;br /&gt;
Damit können analoge Sensoren direkt angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====I2C/+UB/+5V====&lt;br /&gt;
[[Bild:RP6v2_I2CUB5V.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Die beim RP6 vorhandene 5-polige I2C-Schnittstelle ([[RP6#I2C-Schnittstelle]]) findet sich (jetzt mit Stiftleiste bestückt) genau so auch beim RP6v2.&lt;br /&gt;
&lt;br /&gt;
Bitte beachten: '''Die Anordnung der Pins auf dem Mainboard ist beim RP6v2 umgekehrt wie beim RP6!'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beim RP6 gab es (nicht mit Stiftleisten bestückte) Anschlüsse für VDD und +UB ([[RP6#VDD.2FGND.2F.2BUB_Anschlu.C3.9F]]).&lt;br /&gt;
&lt;br /&gt;
Beim RP6v2 gibt es jetzt drei Stiftleisten für +UB, +5V (VDD) und GND:&lt;br /&gt;
* Eine 3-polige Stiftleiste mit GND, +UB, GND&lt;br /&gt;
* Zwei 4-polige Stiftleisten jeweils mit GND, +5V, +5V, GND&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====EXT====&lt;br /&gt;
[[Bild:RP6v2_EXT.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Beim RP6 war keine Stiftleiste für den 8-poligen EXT Anschluß bestückt.&lt;br /&gt;
&lt;br /&gt;
Beim RP6v2 ist jetzt an dieser Stelle ein Wannenstecker vorhanden, in den auch Steckbuchsen (RM 2,54) gesteckt werden können.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beschreibung des EXT Anschlusses: [[RP6#EXT_Anschlu.C3.9F]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erweiterungs-Module==&lt;br /&gt;
&lt;br /&gt;
===RP6v2 M256 WiFi Platine===&lt;br /&gt;
[[Bild:RP6v2_M256_WIFI.JPG|Die RP6v2 M256 WiFi]]&lt;br /&gt;
&lt;br /&gt;
Die RP6v2 M256 WiFi Zusatzplatine wurde am 17.03.2012 von [[Benutzer:SlyD|SlyD]] angekündigt (siehe Weblink!).&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Laut Ankündigung bietet die RP6v2 M256 WiFi:&lt;br /&gt;
* Atmel ATmega2560 Mikrocontroller&lt;br /&gt;
** 256kB Flash ROM&lt;br /&gt;
** 8kB SRAM&lt;br /&gt;
** 4kB EEPROM&lt;br /&gt;
** 16MHz Taktfrequenz&lt;br /&gt;
** 6 Hardware Timer und 86 I/O Ports&lt;br /&gt;
** Bis zu 16 A/D Wandler Kanäle (10 Bit Auflösung)&lt;br /&gt;
** 12 16 Bit Hardware PWMs&lt;br /&gt;
** 2 USART/SPI Ports&lt;br /&gt;
* Energieeffizientes 802.11g WLAN Modul&lt;br /&gt;
** Typ: Roving Networks RN-171&lt;br /&gt;
** Telemetriedaten übertragen&lt;br /&gt;
** Roboter vom PC aus fernsteuern&lt;br /&gt;
** Neue Programme drahtlos per WLAN in den Mikrocontroller laden&lt;br /&gt;
** Bootloader nachträglich erweitern&lt;br /&gt;
** Einstellung des WLAN Moduls über das RP6 USB Interface mit dem RobotLoader 2.x&lt;br /&gt;
** Änderung der Einstellungen über eine Netzwerkverbindung oder mit dem eigenen Mikrocontrollerprogramm&lt;br /&gt;
** Eigener Prozessor (entlastet den ATmega)&lt;br /&gt;
** Funktioniert mit jedem Standard WLAN Accesspoint/Router&lt;br /&gt;
** Kann als transparente serielle Schnittstelle arbeiten&lt;br /&gt;
** Kann vom PC aus per TCP/IP angesprochen werden&lt;br /&gt;
** 10cm 2.4GHz Antenne mit RP-SMA Anschluß&lt;br /&gt;
* Sonstige Ausstattung&lt;br /&gt;
** 8 Bit Display Port&lt;br /&gt;
** I2C Bus&lt;br /&gt;
** microSD Kartenslot&lt;br /&gt;
** 7 Status LEDs&lt;br /&gt;
** 2 Eingabetaster&lt;br /&gt;
** ISP Anschluß&lt;br /&gt;
** 4 WLAN ADC Kanäle&lt;br /&gt;
** AREF 3,3 und 5V&lt;br /&gt;
&lt;br /&gt;
====Technische Daten====&lt;br /&gt;
{|  {{Blauetabelle}} &lt;br /&gt;
|'''Mikrocontroller:'''&lt;br /&gt;
|AVR ATmega2560&lt;br /&gt;
|-&lt;br /&gt;
|'''Speicher:'''&lt;br /&gt;
|256 kB [[Flash]]-Speicher&amp;lt;br/&amp;gt;&lt;br /&gt;
8 kB SRAM&amp;lt;br/&amp;gt; &lt;br /&gt;
4 kB [[EEPROM]]&amp;lt;br/&amp;gt;&lt;br /&gt;
? GB microSD Speicherkarte&lt;br /&gt;
|-&lt;br /&gt;
|'''Programmierung:'''&lt;br /&gt;
|Über [[Bootloader]], belegt ca. 8 kB des Flash-Speichers&amp;lt;br/&amp;gt;&lt;br /&gt;
Drahtlos über WLAN&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Sensoren:'''&lt;br /&gt;
|2 Eingabetaster&amp;lt;br/&amp;gt;&lt;br /&gt;
4 WLAN ADC Kanäle&amp;lt;br/&amp;gt;&lt;br /&gt;
60 GP I/O Ports, davon bis 16 AD-Wandler (10-bit)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Aktoren:'''&lt;br /&gt;
|7 Status LEDs&amp;lt;br/&amp;gt;&lt;br /&gt;
1 LC-Display-Port&amp;lt;br/&amp;gt;&lt;br /&gt;
802.11g WLAN Modul&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Abmessungen:'''&lt;br /&gt;
|(L &amp;amp;times; B &amp;amp;times; H) 112 &amp;amp;times; 90 &amp;amp;times; ? mm&lt;br /&gt;
|-&lt;br /&gt;
|'''Ausführung:'''&lt;br /&gt;
|Fertig aufgebautes Erweiterungsmodul&lt;br /&gt;
|-&lt;br /&gt;
|'''Stromversorgung:'''&lt;br /&gt;
|6 AA NiMH Akkus (über die RP6v2 Base)&lt;br /&gt;
|-&lt;br /&gt;
|'''Hersteller:'''&lt;br /&gt;
|Arexx Niederlande&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Umbau-Optionen====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zubehör und Ersatzteile==&lt;br /&gt;
Über die Zubehör- und Ersatzteile informiert der Artikel [[RP6#Zubehör und Ersatzteile]].&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus sind bei [http://www.conrad.de/ce/ CONRAD] für den RP6v2 erhältlich:&lt;br /&gt;
* Arexx RP6v2 Drehgeber-Satz RP6-ENCv2 [http://www.conrad.de/ce/de/product/191625/RP6-DREHGEBER-SATZ 191625]&lt;br /&gt;
* Arexx RP6 USB-Interface RP6V2-TRANS [http://www.conrad.de/ce/de/product/191638/RP6-V2-PROGRAMMIER-ADAPTER 191638]&lt;br /&gt;
&lt;br /&gt;
===RP6v2 Drehgeber-Satz RP6-ENCv2===&lt;br /&gt;
&lt;br /&gt;
===RP6 USB-Interface RP6V2-TRANS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Programmierung==&lt;br /&gt;
===RobotLoader===&lt;br /&gt;
====Loader Versionen====&lt;br /&gt;
Hier eine Tabelle der (mir) bekannten RobotLoader Versionen für die RP6v2 Base, CONTROL M32 und ab Version 2.0 auch für die M256 WiFi:&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |ZIP-Datum&lt;br /&gt;
 |Version&lt;br /&gt;
 |Bemerkungen&lt;br /&gt;
 |Examples&lt;br /&gt;
 |-&lt;br /&gt;
 |12.07.2010&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RobotLoader_20100712.zip 1.5h]&lt;br /&gt;
 |Auch für die RP6 Base, für Roboterarme und Caterpillar&lt;br /&gt;
 |ab 16.10.2007&lt;br /&gt;
 |-&lt;br /&gt;
 |23.02.2012&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RobotLoader_20120223.zip 2.0 BETA]&lt;br /&gt;
 |Testversion! Ab v2.0 auch für die RP6v2 M256 WiFi Platine&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |05.06.2012&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RobotLoader_20120605.zip 2.3a]&lt;br /&gt;
 |Testversion! Siehe auch [http://www.roboternetz.de/community/threads/58168-RobotLoader-2-3a hier]!&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |18.06.2012&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RobotLoader_20120618.zip 2.3b]&lt;br /&gt;
 |Über Kommandozeile nutzbar, siehe auch [http://www.roboternetz.de/community/threads/58168-RobotLoader-2-3a hier]!&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Projekte====&lt;br /&gt;
* Der RobotLoader 2.3a und [http://www.rn-wissen.de/index.php/LunaAVR LunaAVR] im [http://www.roboternetz.de/community/threads/58168-RobotLoader-2-3a?p=551535&amp;amp;viewfull=1#post551535 Roboternetz RP6 Forum] und im [http://forum.myluna.de/viewtopic.php?f=3&amp;amp;t=24#p94 LunaAVR Forum]&lt;br /&gt;
&lt;br /&gt;
===RP6v2===&lt;br /&gt;
'''Der RP6v2 ([http://www.conrad.de/ce/de/product/191584/RP6-V2-ROBOTERSYSTEM/ 191584]) ist softwarekompatibel zum RP6.'''&lt;br /&gt;
&lt;br /&gt;
Zur Programmierung des [[RP6]] und des RP6v2 gibt es einen eigenen Artikel: [[RP6 - Programmierung]]&lt;br /&gt;
&lt;br /&gt;
===RP6v2 M256 WiFi Platine===&lt;br /&gt;
====Demo-Programmme====&lt;br /&gt;
====Library====&lt;br /&gt;
=====Versionen=====&lt;br /&gt;
Die neuste Library (Version 1.7) sowie die Demo-Programme sind Die RP6 Base und M32 Demo Programme sind [http://www.arexx.com/rp6/downloads/RP6Examples_20120716.zip hier] zu finden.&lt;br /&gt;
Neben der Unterstützung der M256Wifi wurden auch einige Änderungen an den Libraries der anderen Module vorgenommen.&lt;br /&gt;
=====Bug-Report=====&lt;br /&gt;
=====Konfiguration=====&lt;br /&gt;
=====Port-Verwendung=====&lt;br /&gt;
=====Timer-Nutzung=====&lt;br /&gt;
&lt;br /&gt;
====Projekte====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erfahrungsberichte==&lt;br /&gt;
&lt;br /&gt;
...in Arbeit...(kann aber gerne ergänzt werden)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[RP6]]&lt;br /&gt;
* [[RP6 - Programmierung]]&lt;br /&gt;
* [[RP6 Kamera - Mitmach-Projekt]]&lt;br /&gt;
* [[RP6v2 I2C-Portexpander]]&lt;br /&gt;
* [[CCRP5]]&lt;br /&gt;
* [[Yeti]]&lt;br /&gt;
* [[Asuro]]&lt;br /&gt;
* [[C't-Bot]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
&lt;br /&gt;
* Ankündigung des RP6v2 im [http://www.roboternetz.de/community/threads/56964-NEWS-RP6v2-die-neue-Version-2-des-RP6-Robot-Systems RoboterNETZ] und im [http://www.arexx.com/forum/viewtopic.php?f=19&amp;amp;t=1778 AREXX Support Forum]&lt;br /&gt;
* Ankündigung der RP6v2 M256 WiFi und der Testaktion im [http://www.arexx.com/forum/viewtopic.php?f=19&amp;amp;t=1797 AREXX Support Forum]&lt;br /&gt;
* Beginn der &amp;quot;Testaktion: Kostenlose RP6v2-M256-WIFI Module!&amp;quot; im [http://www.roboternetz.de/community/threads/58161-Kostenlose-RP6-M256-WIFI-Module-für-Testanwender! Roboternetz RP6 Forum]&lt;br /&gt;
* Ende der &amp;quot;Testaktion: Kostenlose RP6v2-M256-WIFI Module!&amp;quot; nach Abstimmung im [http://www.roboternetz.de/community/threads/58389-Wählt-Gewinner-der-RP6v2-M256-WIFI-Module Roboternetz RP6 Forum]&lt;br /&gt;
* Newsartikel zur RP6v2 M256 WiFi im [http://www.roboternetz.de/community/threads/58160-Funk-Erweiterungsmodul-für-den-RP6-und-RP6v2-Gratis-für-Tester! RoboterNETZ]&lt;br /&gt;
* Diskussions-Thread zur RP6v2 M256 WiFi im [http://www.roboternetz.de/community/threads/58162-Diskussion-zum-RP6-M256-WIFI-Modul Roboternetz RP6 Forum]&lt;br /&gt;
* [http://www.arexx.com/rp6 AREXX RP6 Startseite]&lt;br /&gt;
* [http://www.arexx.com/forum/viewforum.php?f=19 AREXX Support Forum]&lt;br /&gt;
&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191584/RP6-V2-ROBOTERSYSTEM RP6v2 bei CONRAD]&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191550/RP6-MEGA32-ERWEITERUNGSSATZ RP6 CONTROL M32 bei CONRAD]&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191563/RP6-CC-PRO-MEGA128-ERWEITERUNGSSATZ RP6 CCPRO M128 bei CONRAD]&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191609/Arexx-RP6-V2-Control-M256-WiFi-Kit-RP6v2-M256-WIFI RP6v2 M256 WiFi bei CONRAD]&lt;br /&gt;
&lt;br /&gt;
* [http://www.rovingnetworks.com/products/RN_171 WiFi-Modul RN-171] der RP6v2 M256 WiFi&lt;br /&gt;
* [http://www.arexx.com/rp6/downloads/RP6_M256_WIFI_MANUAL_DE_20120711.zip 1. Bedienungsanleitung] der RP6v2 M256 WiFi&lt;br /&gt;
&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/viewforum.php?f=49 Roboternetz RP6 Forum]&lt;br /&gt;
* &amp;quot;Geburt&amp;quot; des Wiki im RN-Forum: [http://www.roboternetz.de/community/threads/32793-RP6-Wiki-Artikel RP6-Wiki-Artikel]&lt;br /&gt;
&lt;br /&gt;
* [http://www.youtube.com/results?search_query=rp6 RP6 Videos]&lt;br /&gt;
* [http://de-de.facebook.com/pages/Robby-RP6/155118711202285 facebook]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Robotikeinstieg]]	 &lt;br /&gt;
[[Kategorie:Praxis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Autoren==&lt;br /&gt;
--[[Benutzer:Dirk|Dirk]] 16:46, 11. Jul 2012 (CET)&lt;/div&gt;</summary>
		<author><name>MaxWeb</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=RP6_-_Programmierung&amp;diff=20270</id>
		<title>RP6 - Programmierung</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=RP6_-_Programmierung&amp;diff=20270"/>
				<updated>2012-07-11T14:55:15Z</updated>
		
		<summary type="html">&lt;p&gt;MaxWeb: Neuste Loader-Version 2.3b hinzugefügt (Siehe RP6V2-Seite)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:Overview de.gif|Der RP6]]&lt;br /&gt;
&lt;br /&gt;
==Allgemein==&lt;br /&gt;
In diesem Artikel geht es um die Programmierung des RP6, des RP6v2 und ihrer Erweiterungsplatinen RP6 CONTROL M32 und RP6 CCPRO M128.&lt;br /&gt;
&lt;br /&gt;
Zu den Grundlagen des [[RP6]] und des [[RP6v2]] gibt es jeweils eigene Seiten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==RP6Loader==&lt;br /&gt;
Der RP6Loader ist [http://www.arexx.com/rp6/html/de/software.htm hier] zu finden. Der RP6Loader ist ein JAVA-Programm, das den RP6 oder die M32 über deren serielle Schnittstelle mit einem PC verbindet.&lt;br /&gt;
&lt;br /&gt;
Das Programm verfügt über folgende Funktionen:&lt;br /&gt;
* Statusfenster mit RP6-Akku Spannungsanzeige&lt;br /&gt;
* Flash Loader (Programme hochladen und starten, Programmspeicher löschen)&lt;br /&gt;
* HexViewer (Inhalt der HEX-Datei ansehen)&lt;br /&gt;
* Terminal (Zeichen über die serielle Schnittstelle senden/empfangen)&lt;br /&gt;
* Displays (Grafische Hilfen zur Encoder-Einstellung)&lt;br /&gt;
* Log (Protokoll-Datei zur Fehlereingrenzung)&lt;br /&gt;
Der RP6Loader kann alle seine Funktionen nur mit dem Bootloader-Programm in der RP6 Base und M32 ausspielen. Entscheidet man sich für die ISP-Programmierung mit Löschen des Bootloaders, bleibt vom Funktionsumfang eigentlich nur das Terminal übrig.&lt;br /&gt;
&lt;br /&gt;
===Loader Versionen===&lt;br /&gt;
Hier eine Tabelle der (mir) bekannten RP6Loader Versionen für die RP6 Base und M32:&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |ZIP-Datum&lt;br /&gt;
 |Version&lt;br /&gt;
 |Bemerkungen&lt;br /&gt;
 |Examples&lt;br /&gt;
 |-&lt;br /&gt;
 |03.08.2007&lt;br /&gt;
 |1.1c&lt;br /&gt;
 |ab Win2k SP4 (XP, VISTA, W7)&lt;br /&gt;
 |ab 07.06.2007&lt;br /&gt;
 |-&lt;br /&gt;
 |05.09.2007&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RP6Loader_JRE5.zip 1.1e - JRE1.5]&lt;br /&gt;
 |JRE5, Version für Win98SE/ME&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |07.09.2007&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RP6Loader_20070907.zip 1.1c]&lt;br /&gt;
 |wie 03.08.2007 (?)&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |28.09.2007&lt;br /&gt;
 |1.2&lt;br /&gt;
 |ab 1.2: \n wird gesendet&lt;br /&gt;
 |ab 16.10.2007&lt;br /&gt;
 |-&lt;br /&gt;
 |30.09.2007&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RP6Loader_20070930.zip 1.2]&lt;br /&gt;
 |wie 28.09.2007 (?)&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |17.12.2007&lt;br /&gt;
 |1.4 - BETA&lt;br /&gt;
 |ab 1.4: neuer Encodertest&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RP6Base_NEW_SELFTEST.zip neuer Selftest!]&lt;br /&gt;
 |-&lt;br /&gt;
 |23.12.2007&lt;br /&gt;
 |1.4 - BETA&lt;br /&gt;
 |spezielle Testversion&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |28.03.2008&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RP6Loader_20080328.zip 1.4c]&lt;br /&gt;
 |diese [http://www.arexx.com/rp6/downloads/RP6Loader_20080328_linux_x64.zip Version] gibt's auch für Linux 64bit&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |12.07.2010&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RobotLoader_20100712.zip 1.5h]&lt;br /&gt;
 |&amp;quot;RobotLoader&amp;quot;, auch für Roboterarme und Caterpillar&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |18.06.2012&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RobotLoader_20120618.zip 2.3b]&lt;br /&gt;
 |Über Kommandozeile nutzbar, siehe auch [http://www.roboternetz.de/community/threads/58168-RobotLoader-2-3a hier]!&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Geeignete Terminals===&lt;br /&gt;
Der RP6Loader enthält u.a. eine Terminal-Funktion. Stattdessen kann man auch andere Terminals mit besserem Funktionsumfang einsetzen.&lt;br /&gt;
&lt;br /&gt;
====HTerm====&lt;br /&gt;
Dieses Terminal-Programm [http://www.der-hammer.info/terminal/ HTerm] wurde von [[Benutzer:SlyD|SlyD]] empfohlen. Die Konfiguration zeigt dieses [http://www.arexx.com/rp6/downloads/HTerm_RP6.gif Bild].&lt;br /&gt;
&lt;br /&gt;
====ZOC====&lt;br /&gt;
[[Benutzer:radbruch|radbruch]] hat [http://www.roboternetz.de/community/showthread.php?48073-VT100-Ansi-Terminal-für-den-RP6 hier] darauf hingewiesen, dass es ein schönes, sogar farbiges Terminal-Programm [http://www.emtec.com/download.htm ZOC] gibt, das man gut anstelle des Terminals im RP6Loader einsetzen kann.&lt;br /&gt;
&lt;br /&gt;
===Projekte===&lt;br /&gt;
* [http://www.roboternetz.de/community/showthread.php?51352-RP6FlashWriter-Der-Opensource-RP6-Loader RP6FlashWriter: Der Opensource RP6 Loader]&lt;br /&gt;
* [http://www.roboternetz.de/community/showthread.php?43909-RP6Loader-für-.Net-oder-CLR-Schreiben RP6Loader für .Net oder CLR Schreiben]&lt;br /&gt;
* [http://www.roboternetz.de/community/showthread.php?53832-rpyutils-0.1-Loader-amp-Term-in-python-für-linux rpyutils 0.1 Loader und Term in Python für Linux]&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==RP6 Base und CONTROL M32==&lt;br /&gt;
Der RP6 (191524) und die M32 (191550) können frei in C programmiert werden. Dies wird durch die umfangreiche Funktionsbibliothek und die detailliert beschriebene Anleitung auch Anfängern sehr leicht gemacht. Die Software, die zur Programmierung verwendet wird (WinAVR), ist ausschließlich Freeware und kann entweder der CD entnommen oder aus dem Internet ([http://www.arexx.com/rp6/html/de/software.htm hier]) heruntergeladen werden.&lt;br /&gt;
&lt;br /&gt;
===Demo-Programme===&lt;br /&gt;
Die RP6 Base und M32 Demo Programme sind [http://www.arexx.com/rp6/html/de/software.htm hier] zu finden.&lt;br /&gt;
&lt;br /&gt;
====RP6 Base====&lt;br /&gt;
Ein Programm für die RP6 Base kann zum Beispiel so aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;RP6RobotBaseLib.h&amp;quot;	&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
	initRobotBase(); // Mikrocontroller initialisieren&lt;br /&gt;
&lt;br /&gt;
	powerON(); // Encoder und Motorstromsensoren anschalten (WICHTIG!!!)&lt;br /&gt;
&lt;br /&gt;
	setLEDs(0b111111); // Alle LEDs anschalten&lt;br /&gt;
&lt;br /&gt;
	moveAtSpeed(100,100); // Beide Motoren fahren mit Geschwindigkeit 100&lt;br /&gt;
&lt;br /&gt;
	while(true)&lt;br /&gt;
	{&lt;br /&gt;
		task_motionControl(); // Geschwindigkeit einstellen&lt;br /&gt;
		task_ADC(); // Wird wegen der Motorstromsensoren aufgerufen&lt;br /&gt;
	}&lt;br /&gt;
	return 0; &lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In dem Programm würde der RP6 als erstes alle LEDs anschalten und dann endlos mit Geschwindigkeit 100 geradeaus fahren, ohne Hindernisse zu berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
====CONTROL M32====&lt;br /&gt;
Noch ein Beispiel für die M32:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Includes:&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;RP6ControlLib.h&amp;quot; 		// IMMER einbinden!!!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
	initRP6Control(); // IMMER als ERSTES aufrufen!!!&lt;br /&gt;
	initLCD(); // Das LCD starten. Muss IMMER aufgerufen werden, BEVOR das LCD verwendet wird!&lt;br /&gt;
	setLEDs(0b1111); // Alle LEDs ein&lt;br /&gt;
	mSleep(500); // Eine halbe Sekunde warten&lt;br /&gt;
	setLEDs(0b0000); // Alle LEDs aus&lt;br /&gt;
	sound(180,80,25); // 2 mal Piepsen&lt;br /&gt;
	sound(220,80,0);&lt;br /&gt;
	showScreenLCD(&amp;quot;################&amp;quot;, &amp;quot;################&amp;quot;); // Etwas auf dem Display zeigen&lt;br /&gt;
	mSleep(1500); // Warten&lt;br /&gt;
	showScreenLCD(&amp;quot;&amp;lt;&amp;lt;RP6  Control&amp;gt;&amp;gt;&amp;quot;, &amp;quot;&amp;lt;&amp;lt;LC - DISPLAY&amp;gt;&amp;gt;&amp;quot;); //&lt;br /&gt;
	mSleep(2500); // Warten&lt;br /&gt;
	showScreenLCD(&amp;quot;Hello World&amp;quot;, &amp;quot;Example Program&amp;quot;);&lt;br /&gt;
	mSleep(2500); //Warten&lt;br /&gt;
	clearLCD(); // Das LCD löschen&lt;br /&gt;
		&lt;br /&gt;
	while(true) &lt;br /&gt;
	{&lt;br /&gt;
	     mSleep(1500); // Ewig warten...&lt;br /&gt;
	}&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Library===&lt;br /&gt;
Die Library für die RP6 Base und CONTROL M32 besteht aus folgenden 13 Dateien:&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |Library&lt;br /&gt;
 |Datei&lt;br /&gt;
 |Funktion&lt;br /&gt;
 |-&lt;br /&gt;
 |RP6&lt;br /&gt;
 |RP6Config.h&lt;br /&gt;
 |RP6 Hardware-Konfiguration&lt;br /&gt;
 |-&lt;br /&gt;
 |RP6Base&lt;br /&gt;
 |RP6RobotBase.h&lt;br /&gt;
 |RP6Base Definitionen&lt;br /&gt;
 |-&lt;br /&gt;
 |RP6Base&lt;br /&gt;
 |RP6RobotBaseLib.h&lt;br /&gt;
 |RP6Base Library Header&lt;br /&gt;
 |-&lt;br /&gt;
 |RP6Base&lt;br /&gt;
 |RP6RobotBaseLib.c&lt;br /&gt;
 |RP6Base Library&lt;br /&gt;
 |-&lt;br /&gt;
 |CONTROL M32&lt;br /&gt;
 |RP6Control.h&lt;br /&gt;
 |CONTROL M32 Definitionen&lt;br /&gt;
 |-&lt;br /&gt;
 |CONTROL M32&lt;br /&gt;
 |RP6ControlLib.h&lt;br /&gt;
 |CONTROL M32 Library Header&lt;br /&gt;
 |-&lt;br /&gt;
 |CONTROL M32&lt;br /&gt;
 |RP6ControlLib.c&lt;br /&gt;
 |CONTROL M32 Library&lt;br /&gt;
 |-&lt;br /&gt;
 |RP6uart&lt;br /&gt;
 |RP6uart.h&lt;br /&gt;
 |RS232 Funktionen Header&lt;br /&gt;
 |-&lt;br /&gt;
 |RP6uart&lt;br /&gt;
 |RP6uart.c&lt;br /&gt;
 |RS232 Funktionen&lt;br /&gt;
 |-&lt;br /&gt;
 |RP6I2CmasterTWI&lt;br /&gt;
 |RP6I2CmasterTWI.h&lt;br /&gt;
 |I2C Master Funktionen Header&lt;br /&gt;
 |-&lt;br /&gt;
 |RP6I2CmasterTWI&lt;br /&gt;
 |RP6I2CmasterTWI.c&lt;br /&gt;
 |I2C Master Funktionen&lt;br /&gt;
 |-&lt;br /&gt;
 |RP6I2CslaveTWI&lt;br /&gt;
 |RP6I2CslaveTWI.h&lt;br /&gt;
 |I2C Slave Funktionen Header&lt;br /&gt;
 |-&lt;br /&gt;
 |RP6I2CslaveTWI&lt;br /&gt;
 |RP6I2CslaveTWI.c&lt;br /&gt;
 |I2C Slave Funktionen&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Versionen====&lt;br /&gt;
Hier eine Tabelle der (mir) bekannten Library Versionen der RP6 Base und M32:&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |ZIP-Datum&lt;br /&gt;
 |VERSION_&lt;br /&gt;
 |RP6&lt;br /&gt;
 |RP6Control&lt;br /&gt;
 |RP6LIB_VERSION&lt;br /&gt;
 |RP6Config.h&lt;br /&gt;
 |BaseLib&lt;br /&gt;
 |ControlLib&lt;br /&gt;
 |UartLib&lt;br /&gt;
 |MasterTWI&lt;br /&gt;
 |SlaveTWI&lt;br /&gt;
 |-&lt;br /&gt;
 |07.06.2007&lt;br /&gt;
 |1.0&lt;br /&gt;
 |1.0&lt;br /&gt;
 |1.0&lt;br /&gt;
 |nein&lt;br /&gt;
 |1.0_16.05.07&lt;br /&gt;
 |1.0_10.04.07&lt;br /&gt;
 |1.0_16.05.07&lt;br /&gt;
 |1.0_10.04.07&lt;br /&gt;
 |1.0_16.05.07&lt;br /&gt;
 |1.0_16.05.07&lt;br /&gt;
 |-&lt;br /&gt;
 |08.07.2007&lt;br /&gt;
 |1.0&lt;br /&gt;
 |1.0&lt;br /&gt;
 |1.0&lt;br /&gt;
 |nein&lt;br /&gt;
 |1.0_16.05.07&lt;br /&gt;
 |1.0_10.04.07&lt;br /&gt;
 |1.0_16.05.07&lt;br /&gt;
 |1.0_10.04.07&lt;br /&gt;
 |1.0_16.05.07&lt;br /&gt;
 |1.0_16.05.07&lt;br /&gt;
 |-&lt;br /&gt;
 |31.07.2007&lt;br /&gt;
 |1.1&lt;br /&gt;
 |1.1&lt;br /&gt;
 |1.0&lt;br /&gt;
 |nein&lt;br /&gt;
 |1.1_27.07.07&lt;br /&gt;
 |1.1_27.07.07&lt;br /&gt;
 |1.0_16.05.07&lt;br /&gt;
 |1.0_10.04.07&lt;br /&gt;
 |1.0_16.05.07&lt;br /&gt;
 |1.0_16.05.07&lt;br /&gt;
 |-&lt;br /&gt;
 |07.08.2007&lt;br /&gt;
 |1.2&lt;br /&gt;
 |1.2_07.08.07&lt;br /&gt;
 |1.0&lt;br /&gt;
 |nein&lt;br /&gt;
 |1.2_07.08.07&lt;br /&gt;
 |1.2_07.08.07&lt;br /&gt;
 |1.0_16.05.07&lt;br /&gt;
 |1.0_10.04.07&lt;br /&gt;
 |1.0_16.05.07&lt;br /&gt;
 |1.0_16.05.07&lt;br /&gt;
 |-&lt;br /&gt;
 |11.08.2007&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RP6Examples_20070811.zip 1.2]&lt;br /&gt;
 |1.2_07.08.07&lt;br /&gt;
 |1.0&lt;br /&gt;
 |nein&lt;br /&gt;
 |1.2_07.08.07&lt;br /&gt;
 |1.2_07.08.07&lt;br /&gt;
 |1.0_16.05.07&lt;br /&gt;
 |1.0_10.04.07&lt;br /&gt;
 |1.0_16.05.07&lt;br /&gt;
 |1.0_16.05.07&lt;br /&gt;
 |-&lt;br /&gt;
 |28.09.2007&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RP6Examples_20070928.zip 1.3]&lt;br /&gt;
 |1.3_25.09.07&lt;br /&gt;
 |1.1&lt;br /&gt;
 |nein&lt;br /&gt;
 |1.2_07.08.07&lt;br /&gt;
 |1.3_25.09.07&lt;br /&gt;
 |1.1&lt;br /&gt;
 |1.1_10.09.07&lt;br /&gt;
 |1.0_16.05.07&lt;br /&gt;
 |1.0_16.05.07&lt;br /&gt;
 |-&lt;br /&gt;
 |16.10.2007&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RP6Examples_20071016.zip 1.3]&lt;br /&gt;
 |1.3_25.09.07&lt;br /&gt;
 |1.1&lt;br /&gt;
 |13&lt;br /&gt;
 |1.2_07.08.07&lt;br /&gt;
 |1.3_25.09.07&lt;br /&gt;
 |1.1&lt;br /&gt;
 |1.1_10.09.07&lt;br /&gt;
 |1.0_16.05.07&lt;br /&gt;
 |1.0_16.05.07&lt;br /&gt;
 |-&lt;br /&gt;
 |10.05.2008&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RP6Examples_20080510.zip 1.4]&lt;br /&gt;
 |1.4_29.04.08&lt;br /&gt;
 |1.1&lt;br /&gt;
 |13&lt;br /&gt;
 |1.2_07.08.07&lt;br /&gt;
 |1.4_29.04.08&lt;br /&gt;
 |1.1&lt;br /&gt;
 |1.1_10.09.07&lt;br /&gt;
 |1.0_16.05.07&lt;br /&gt;
 |1.0_16.05.07&lt;br /&gt;
 |-&lt;br /&gt;
 |15.09.2008&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RP6Examples_20080915.zip 1.5]&lt;br /&gt;
 |1.5_12.09.08&lt;br /&gt;
 |1.2&lt;br /&gt;
 |13&lt;br /&gt;
 |1.2_07.08.07&lt;br /&gt;
 |1.4_29.04.08&lt;br /&gt;
 |1.1&lt;br /&gt;
 |1.1_10.09.07&lt;br /&gt;
 |1.0_16.05.07&lt;br /&gt;
 |1.0_16.05.07&lt;br /&gt;
 |-&lt;br /&gt;
 |13.03.2010&lt;br /&gt;
 |1.5&lt;br /&gt;
 |1.5_12.09.08&lt;br /&gt;
 |1.3beta&lt;br /&gt;
 |15&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |1.3beta&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |03.02.2012&lt;br /&gt;
 |[http://www.roboternetz.de/community/attachment.php?attachmentid=21410&amp;amp;d=1328298372 1.5]&lt;br /&gt;
 |1.5_12.09.08&lt;br /&gt;
 |1.31beta&lt;br /&gt;
 |15&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |1.31beta&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
|}&lt;br /&gt;
In der 1. Spalte findet ihr das Datum der RP6Examples.zip Datei, in der die Library enthalten ist. Die 2. Spalte nennt die Version, die im Dateinamen der VERSION_x.x.txt Datei als x.x vorkommt. In der 3. und 4. Spalte steht die Versionsangabe der RP6Library und RP6ControlLibrary laut Angabe in der VERSION_x.x.txt Datei.&lt;br /&gt;
&lt;br /&gt;
In der 5. Spalte gebe ich den Wert der Konstante RP6LIB_VERSION an. Es gibt sie erst ab den Examples vom 16.10.2007. In den Spalten 6 bis 11 führe ich nacheinander die Versionsnummern und ggf. das in der Datei genannte Datum der Header-Datei/Library an: RP6Config.h, BaseLib, ControlLib, UartLib, MasterTWI, SlaveTWI.&lt;br /&gt;
&lt;br /&gt;
Die jeweils aktuelle Library ist in den Demo-Programmen auf der AREXX Homepage enthalten. Link siehe oben!&lt;br /&gt;
Die RP6Control Library in der Version 1.31beta vom 03.02.2012 könnt ihr &lt;br /&gt;
[http://www.roboternetz.de/community/showthread.php?47198-RP6Control-M32-Neue-Library-Version-1.3beta hier] finden.&lt;br /&gt;
&lt;br /&gt;
====RP6RobotBase====&lt;br /&gt;
Die RP6 Base Library existiert inzwischen in der Version 1.4 vom 29.04.2008. Gegenüber der Version 1.0 vom 10.04.2007 wurden neben Bugfixes auch einige Verbesserungen vorgenommen:&lt;br /&gt;
* Power On LED Funktion&lt;br /&gt;
* ACS Einstellungen in die RP6Config.h verlagert (um sie ändern zu können)&lt;br /&gt;
* Universelle Timer Variable mit 100 us Auflösung&lt;br /&gt;
* Anpassung an neuere WinAVR Versionen&lt;br /&gt;
&lt;br /&gt;
=====Bug-Report=====&lt;br /&gt;
[[Benutzer:DERICH|Derich2]] hat [http://www.roboternetz.de/community/threads/56659-Stopwatch-geht-um-10-zu-langsam hier] darauf hingewiesen, dass die Stopwatches nicht genau arbeiten. Durch eine kleine Änderung in der Timer 0 Compare ISR (ISR (TIMER0_COMP_vect)) kann man Abhilfe schaffen.&lt;br /&gt;
&lt;br /&gt;
=====Konfiguration=====&lt;br /&gt;
Die wesentlichen Hardware-Konfigurationen des RP6 sind in der &amp;quot;RP6Config.h&amp;quot; zu finden. Sie enthält Festlegungen zu:&lt;br /&gt;
* Encoder-Auflösung&lt;br /&gt;
* Rotations-Faktor&lt;br /&gt;
* Geschwindigkeits-Messintervall&lt;br /&gt;
* Power On Warnung&lt;br /&gt;
* ACS&lt;br /&gt;
Diese Header-Datei wird standardmäßig auch in die RP6RobotBase Library eingebunden.&lt;br /&gt;
&lt;br /&gt;
=====Port-Verwendung=====&lt;br /&gt;
Die Verwendung der Ports des RP6 Microcontrollers wird festgelegt in der Header-Datei &amp;quot;RP6RobotBase.h&amp;quot;. In dieser Datei wird auch noch Folgendes aufgeführt:&lt;br /&gt;
* Quarzfrequenz (F_CPU)&lt;br /&gt;
* True/false Definition&lt;br /&gt;
* Verschiedene Macros&lt;br /&gt;
* Baudrate der seriellen Schnittstelle&lt;br /&gt;
Hier eine Tabelle mit den Port-Definitionen für die RP6 Base:&lt;br /&gt;
 Erklärung der Spalten:&lt;br /&gt;
 Port        -&amp;gt; Atmel Portpin Bezeichnung&lt;br /&gt;
 Name        -&amp;gt; Atmel Funktionsbezeichnung&lt;br /&gt;
 In/Out      -&amp;gt; Eingang (In) oder Ausgang (Out)&lt;br /&gt;
 Pullup      -&amp;gt; Falls Eingang: Pullup ein- (1) oder ausgeschaltet (0)&lt;br /&gt;
 Wert        -&amp;gt; Falls Ausgang: Logikpegel high (1) oder low (0)&lt;br /&gt;
 Funktion    -&amp;gt; Schnittstellenfunktion&lt;br /&gt;
 Bezeichnung -&amp;gt; Portpin Bezeichnung der Library&lt;br /&gt;
 Stecker     -&amp;gt; Portpin verfügbar an STECKER: Pin&lt;br /&gt;
 Anmerkungen -&amp;gt; Kommentare (ADC_xxxxx: ADC-Kanal Bezeichnung)&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |Port&lt;br /&gt;
 |Name&lt;br /&gt;
 |In/Out&lt;br /&gt;
 |Pullup&lt;br /&gt;
 |Wert&lt;br /&gt;
 |Funktion&lt;br /&gt;
 |Bezeichnung&lt;br /&gt;
 |Stecker&lt;br /&gt;
 |Anmerkungen&lt;br /&gt;
 |-&lt;br /&gt;
 |PA0&lt;br /&gt;
 |ADC0&lt;br /&gt;
 |In&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |ADC0&lt;br /&gt;
 |ADC0: 3&lt;br /&gt;
 |ADC_ADC0 (frei)&lt;br /&gt;
 |-&lt;br /&gt;
 |PA1&lt;br /&gt;
 |ADC1&lt;br /&gt;
 |In&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |ADC1&lt;br /&gt;
 |ADC1: 3&lt;br /&gt;
 |ADC_ADC1 (frei)&lt;br /&gt;
 |-&lt;br /&gt;
 |PA2&lt;br /&gt;
 |ADC2&lt;br /&gt;
 |In&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |LS_R&lt;br /&gt;
 |&lt;br /&gt;
 |ADC_LS_R&lt;br /&gt;
 |-&lt;br /&gt;
 |PA3&lt;br /&gt;
 |ADC3&lt;br /&gt;
 |In&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |LS_L&lt;br /&gt;
 |&lt;br /&gt;
 |ADC_LS_L&lt;br /&gt;
 |-&lt;br /&gt;
 |PA4&lt;br /&gt;
 |ADC4&lt;br /&gt;
 |In/(Out)&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |E_INT1 (INT1)&lt;br /&gt;
 |XBUS: 8&lt;br /&gt;
 |XBUS INT1&lt;br /&gt;
 |-&lt;br /&gt;
 |PA5&lt;br /&gt;
 |ADC5&lt;br /&gt;
 |In&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |MCURRENT_R *&lt;br /&gt;
 |&lt;br /&gt;
 |ADC_MCURRENT_R&lt;br /&gt;
 |-&lt;br /&gt;
 |PA6&lt;br /&gt;
 |ADC6&lt;br /&gt;
 |In&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |MCURRENT_L *&lt;br /&gt;
 |&lt;br /&gt;
 |ADC_MCURRENT_L&lt;br /&gt;
 |-&lt;br /&gt;
 |PA7&lt;br /&gt;
 |ADC7&lt;br /&gt;
 |In&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |UBAT *&lt;br /&gt;
 |&lt;br /&gt;
 |ADC_BAT&lt;br /&gt;
 |-&lt;br /&gt;
 |PB0&lt;br /&gt;
 |T0/XCK&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |SL6&lt;br /&gt;
 |&lt;br /&gt;
 |Status LED 6&lt;br /&gt;
 |-&lt;br /&gt;
 |PB1&lt;br /&gt;
 |T1&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |SL5&lt;br /&gt;
 |&lt;br /&gt;
 |Status LED 5 ***&lt;br /&gt;
 |-&lt;br /&gt;
 |PB2&lt;br /&gt;
 |AIN0/INT2&lt;br /&gt;
 |In&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |ACS (INT2)&lt;br /&gt;
 |&lt;br /&gt;
 |IR Empfänger (TSOP)&lt;br /&gt;
 |-&lt;br /&gt;
 |PB3&lt;br /&gt;
 |AIN1/OC0&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |ACS_PWRH&lt;br /&gt;
 |&lt;br /&gt;
 |ACS Sendedioden HiPwr&lt;br /&gt;
 |-&lt;br /&gt;
 |PB4&lt;br /&gt;
 |SS&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |PWRON&lt;br /&gt;
 |&lt;br /&gt;
 |Power On **&lt;br /&gt;
 |-&lt;br /&gt;
 |PB5&lt;br /&gt;
 |MOSI&lt;br /&gt;
 |In&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |ISP&lt;br /&gt;
 |START&lt;br /&gt;
 |ISP: 1&lt;br /&gt;
 |Start/Stop-Taster&lt;br /&gt;
 |-&lt;br /&gt;
 |PB6&lt;br /&gt;
 |MISO&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |ISP&lt;br /&gt;
 |ACS_L&lt;br /&gt;
 |ISP: 9&lt;br /&gt;
 |ACS Sendediode links&lt;br /&gt;
 |-&lt;br /&gt;
 |PB7&lt;br /&gt;
 |SCK&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |ISP&lt;br /&gt;
 |SL4&lt;br /&gt;
 |ISP: 7&lt;br /&gt;
 |Status LED 4 ***&lt;br /&gt;
 |-&lt;br /&gt;
 |PC0&lt;br /&gt;
 |SCL&lt;br /&gt;
 |In/Out ²&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |I2C-Bus&lt;br /&gt;
 |SCL&lt;br /&gt;
 |XBUS: 10&lt;br /&gt;
 |XBUS SCL&lt;br /&gt;
 |-&lt;br /&gt;
 |PC1&lt;br /&gt;
 |SDA&lt;br /&gt;
 |In/Out&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |I2C-Bus&lt;br /&gt;
 |SDA&lt;br /&gt;
 |XBUS: 12&lt;br /&gt;
 |XBUS SDA&lt;br /&gt;
 |-&lt;br /&gt;
 |PC2&lt;br /&gt;
 |TCK&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |JTAG&lt;br /&gt;
 |DIR_L *&lt;br /&gt;
 |&lt;br /&gt;
 |Fahrtrichtung linke Kette&lt;br /&gt;
 |-&lt;br /&gt;
 |PC3&lt;br /&gt;
 |TMS&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |JTAG&lt;br /&gt;
 |DIR_R *&lt;br /&gt;
 |&lt;br /&gt;
 |Fahrtrichtung rechte Kette&lt;br /&gt;
 |-&lt;br /&gt;
 |PC4&lt;br /&gt;
 |TDO&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |JTAG&lt;br /&gt;
 |SL1&lt;br /&gt;
 |&lt;br /&gt;
 |Status LED 1 ***&lt;br /&gt;
 |-&lt;br /&gt;
 |PC5&lt;br /&gt;
 |TDI&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |JTAG&lt;br /&gt;
 |SL2&lt;br /&gt;
 |&lt;br /&gt;
 |Status LED 2 ***&lt;br /&gt;
 |-&lt;br /&gt;
 |PC6&lt;br /&gt;
 |TOSC1&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |SL3&lt;br /&gt;
 |&lt;br /&gt;
 |Status LED 3&lt;br /&gt;
 |-&lt;br /&gt;
 |PC7&lt;br /&gt;
 |TOSC2&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |ACS_R&lt;br /&gt;
 |&lt;br /&gt;
 |ACS Sendediode rechts&lt;br /&gt;
 |-&lt;br /&gt;
 |PD0&lt;br /&gt;
 |RXD&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |RS232&lt;br /&gt;
 |RX&lt;br /&gt;
 |PRG/U: 2&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PD1&lt;br /&gt;
 |TXD&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |RS232&lt;br /&gt;
 |TX&lt;br /&gt;
 |PRG/U: 3&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PD2&lt;br /&gt;
 |INT0&lt;br /&gt;
 |In&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |ENC_L&lt;br /&gt;
 |&lt;br /&gt;
 |Radencoder links&lt;br /&gt;
 |-&lt;br /&gt;
 |PD3&lt;br /&gt;
 |INT1&lt;br /&gt;
 |In&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |ENC_R&lt;br /&gt;
 |&lt;br /&gt;
 |Radencoder rechts&lt;br /&gt;
 |-&lt;br /&gt;
 |PD4&lt;br /&gt;
 |OC1B&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |MOTOR_L *&lt;br /&gt;
 |&lt;br /&gt;
 |PWM Motor links&lt;br /&gt;
 |-&lt;br /&gt;
 |PD5&lt;br /&gt;
 |OC1A&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |MOTOR_R *&lt;br /&gt;
 |&lt;br /&gt;
 |PWM Motor rechts&lt;br /&gt;
 |-&lt;br /&gt;
 |PD6&lt;br /&gt;
 |ICP&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |ACS_PWR&lt;br /&gt;
 |&lt;br /&gt;
 |ACS Sendedioden Power&lt;br /&gt;
 |-&lt;br /&gt;
 |PD7&lt;br /&gt;
 |OC2&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |IRCOMM&lt;br /&gt;
 |&lt;br /&gt;
 |IRCOMM Sendedioden&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
 Zeichen:&lt;br /&gt;
 *   Standard-Belegung! Über Jumper/Lötbrücke änderbar.&lt;br /&gt;
 **  Power On für Radencoder, IR-Empfänger *, Stromsensoren *, PWRON-LED *&lt;br /&gt;
 *** Zusätzlicher Anschluß von Bumpern oder Tastern möglich!&lt;br /&gt;
 ²   I2C-Master: Out, Slave: In&lt;br /&gt;
&lt;br /&gt;
=====Timer-Nutzung=====&lt;br /&gt;
Die Nutzung der Timer wird in der RP6Base Library in der Funktion initRobotBase() am Ende der Datei RP6RobotBaseLib.c festgelegt.&lt;br /&gt;
&lt;br /&gt;
======Timer 0======&lt;br /&gt;
Timer 0 arbeitet in der RP6Base Library im CTC-Modus (Mode 2) mit einem Vorteiler von 8 und nutzt als TOP-Wert OCR0. Bei einem Wert von 99 für OCR0 errechnet sich ein Zyklus von 100 us bei einer Quarzfrequenz von 8 MHz.&lt;br /&gt;
&lt;br /&gt;
Der Zyklus von 100 us wird genutzt für:&lt;br /&gt;
* Verzögerungen (sleep, mSleep)&lt;br /&gt;
* Stopwatches&lt;br /&gt;
* RC5 Empfang&lt;br /&gt;
* Timer Variable&lt;br /&gt;
* Geschwindigkeits-Messung&lt;br /&gt;
* Weiche PWM-Anpassung und automatische PWM-Abschaltung&lt;br /&gt;
* ACS Timing&lt;br /&gt;
* Blinken der Power On LED&lt;br /&gt;
* Überstrom Zeitmessung&lt;br /&gt;
* Bumper Check Intervall Zeitmessung&lt;br /&gt;
* Selbsttest: Duty cycle Messung&lt;br /&gt;
&lt;br /&gt;
======Timer 1======&lt;br /&gt;
Timer 1 arbeitet im phasenrichtigen (phase correct) PWM-Modus (Mode 10) mit einem Vorteiler von 1 (kein Vorteiler!) und nutzt als TOP-Wert ICR1. Bei einem Maximalwert von 210 für ICR1 errechnet sich eine PWM-Frequenz von ca. 19048 Hz.&lt;br /&gt;
&lt;br /&gt;
Die PWM wird genutzt für:&lt;br /&gt;
* Geschwindigkeitsregelung der Motoren&lt;br /&gt;
&lt;br /&gt;
======Timer 2======&lt;br /&gt;
Der Timer 2 arbeitet im CTC-Modus (Mode 2) mit einem Vorteiler von 1 (kein Vorteiler!) und nutzt als TOP-Wert OCR2. Bei einem Wert von 110 (= 0x6E) für OCR2 errechnet sich eine Frequenz von ca. 72072 Hz.&lt;br /&gt;
&lt;br /&gt;
Die 72 kHz Frequenz wird genutzt für:&lt;br /&gt;
* ACS&lt;br /&gt;
&lt;br /&gt;
====RP6Control====&lt;br /&gt;
Die RP6Control Library gibt es inzwischen in der Version 1.1 vom 28.09.2007 (evtl. existiert auch eine Version 1.2 vom 12.09.2008 ??). Von [[Benutzer:Dirk|Dirk]] wurde [http://www.roboternetz.de/community/showthread.php?47198-RP6Control-M32-Neue-Library-Version-1.3beta hier] eine Version 1.31beta veröffentlicht mit folgenden Verbesserungen:&lt;br /&gt;
* Neue Task ADC&lt;br /&gt;
* Funktionen für die freien I/O-Portpins&lt;br /&gt;
* Tonfrequenz-Konstanten für den Beeper &lt;br /&gt;
&lt;br /&gt;
=====Bug-Report=====&lt;br /&gt;
[[Benutzer:DERICH|Derich2]] hat [http://www.roboternetz.de/community/threads/56659-Stopwatch-geht-um-10-zu-langsam hier] darauf hingewiesen, dass die Stopwatches nicht genau arbeiten. Durch eine kleine Änderung in der Timer 0 Compare ISR (ISR (TIMER0_COMP_vect)) kann man Abhilfe schaffen. Diese Änderung ist ab Version 1.31beta der Library schon berücksichtigt.&lt;br /&gt;
&lt;br /&gt;
=====Konfiguration=====&lt;br /&gt;
Die wesentlichen Hardware-Konfigurationen des RP6 sind in der &amp;quot;RP6Config.h&amp;quot; zu finden. Sie enthält Festlegungen zu:&lt;br /&gt;
* Encoder-Auflösung&lt;br /&gt;
* Rotations-Faktor&lt;br /&gt;
* Geschwindigkeits-Messintervall&lt;br /&gt;
* Power On Warnung&lt;br /&gt;
* ACS&lt;br /&gt;
Diese Header-Datei wird standardmäßig auch in die RP6Control Library eingebunden.&lt;br /&gt;
&lt;br /&gt;
=====Port-Verwendung=====&lt;br /&gt;
Die Verwendung der Ports des RP6 CONTROL M32 Microcontrollers wird festgelegt in der Header-Datei &amp;quot;RP6Control.h&amp;quot;. In dieser Datei wird auch noch Folgendes aufgeführt:&lt;br /&gt;
* Quarzfrequenz (F_CPU)&lt;br /&gt;
* True/false Definition&lt;br /&gt;
* Baudrate der seriellen Schnittstelle&lt;br /&gt;
Hier eine Tabelle mit den Port-Definitionen der M32:&lt;br /&gt;
 Erklärung der Spalten:&lt;br /&gt;
 Port        -&amp;gt; Atmel Portpin Bezeichnung&lt;br /&gt;
 Name        -&amp;gt; Atmel Funktionsbezeichnung&lt;br /&gt;
 In/Out      -&amp;gt; Eingang (In) oder Ausgang (Out)&lt;br /&gt;
 Pullup      -&amp;gt; Falls Eingang: Pullup ein- (1) oder ausgeschaltet (0)&lt;br /&gt;
 Wert        -&amp;gt; Falls Ausgang: Logikpegel high (1) oder low (0)&lt;br /&gt;
 Funktion    -&amp;gt; Schnittstellenfunktion&lt;br /&gt;
 Bezeichnung -&amp;gt; Portpin Bezeichnung der Library&lt;br /&gt;
 Stecker     -&amp;gt; Portpin verfügbar an STECKER: Pin&lt;br /&gt;
 Anmerkungen -&amp;gt; Kommentare (ADC_xxxxx: ADC-Kanal Bezeichnung)&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |Port&lt;br /&gt;
 |Name&lt;br /&gt;
 |In/Out&lt;br /&gt;
 |Pullup&lt;br /&gt;
 |Wert&lt;br /&gt;
 |Funktion&lt;br /&gt;
 |Bezeichnung&lt;br /&gt;
 |Stecker&lt;br /&gt;
 |Anmerkungen&lt;br /&gt;
 |-&lt;br /&gt;
 |PA0&lt;br /&gt;
 |ADC0&lt;br /&gt;
 |In&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |MIC *&lt;br /&gt;
 |&lt;br /&gt;
 |ADC_MIC&lt;br /&gt;
 |-&lt;br /&gt;
 |PA1&lt;br /&gt;
 |ADC1&lt;br /&gt;
 |In&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |KEYPAD *&lt;br /&gt;
 |&lt;br /&gt;
 |ADC_KEYPAD&lt;br /&gt;
 |-&lt;br /&gt;
 |PA2&lt;br /&gt;
 |ADC2&lt;br /&gt;
 |In&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |ADC2&lt;br /&gt;
 |ADC: 2, ADC2: 3&lt;br /&gt;
 |ADC_2 (frei)&lt;br /&gt;
 |-&lt;br /&gt;
 |PA3&lt;br /&gt;
 |ADC3&lt;br /&gt;
 |In&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |ADC3&lt;br /&gt;
 |ADC: 1, ADC3: 3&lt;br /&gt;
 |ADC_3 (frei)&lt;br /&gt;
 |-&lt;br /&gt;
 |PA4&lt;br /&gt;
 |ADC4&lt;br /&gt;
 |In/(Out)&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |ADC4&lt;br /&gt;
 |ADC: 3&lt;br /&gt;
 |ADC_4 (frei)&lt;br /&gt;
 |-&lt;br /&gt;
 |PA5&lt;br /&gt;
 |ADC5&lt;br /&gt;
 |In&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |ADC5&lt;br /&gt;
 |ADC: 5&lt;br /&gt;
 |ADC_5 (frei)&lt;br /&gt;
 |-&lt;br /&gt;
 |PA6&lt;br /&gt;
 |ADC6&lt;br /&gt;
 |In&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |ADC6&lt;br /&gt;
 |ADC: 7&lt;br /&gt;
 |ADC_6 (frei)&lt;br /&gt;
 |-&lt;br /&gt;
 |PA7&lt;br /&gt;
 |ADC7&lt;br /&gt;
 |In&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |ADC7&lt;br /&gt;
 |ADC: 9&lt;br /&gt;
 |ADC_7 (frei)&lt;br /&gt;
 |-&lt;br /&gt;
 |PB0&lt;br /&gt;
 |T0/XCK&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |MEM_CS&lt;br /&gt;
 |&lt;br /&gt;
 |EEPROM Chip Select&lt;br /&gt;
 |-&lt;br /&gt;
 |PB1&lt;br /&gt;
 |T1&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |MEM_CS2&lt;br /&gt;
 |&lt;br /&gt;
 |EEPROM Chip Select 2 **&lt;br /&gt;
 |-&lt;br /&gt;
 |PB2&lt;br /&gt;
 |AIN0/INT2&lt;br /&gt;
 |In&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |EINT3 (INT2) *&lt;br /&gt;
 |XBUS: 9&lt;br /&gt;
 |XBUS INT3&lt;br /&gt;
 |-&lt;br /&gt;
 |PB3&lt;br /&gt;
 |AIN1/OC0&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |LCD_RS&lt;br /&gt;
 |LCD: 4&lt;br /&gt;
 |LCD RS&lt;br /&gt;
 |-&lt;br /&gt;
 |PB4&lt;br /&gt;
 |SS&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |LCD_EN&lt;br /&gt;
 |LCD: 6&lt;br /&gt;
 |LCD EN&lt;br /&gt;
 |-&lt;br /&gt;
 |PB5&lt;br /&gt;
 |MOSI&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |ISP&lt;br /&gt;
 |MOSI&lt;br /&gt;
 |ISP: 1&lt;br /&gt;
 |EEPROM SI&lt;br /&gt;
 |-&lt;br /&gt;
 |PB6&lt;br /&gt;
 |MISO&lt;br /&gt;
 |In&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |ISP&lt;br /&gt;
 |MISO&lt;br /&gt;
 |ISP: 9&lt;br /&gt;
 |EEPROM SO&lt;br /&gt;
 |-&lt;br /&gt;
 |PB7&lt;br /&gt;
 |SCK&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |ISP&lt;br /&gt;
 |SCK&lt;br /&gt;
 |ISP: 7&lt;br /&gt;
 |EEPROM SCK&lt;br /&gt;
 |-&lt;br /&gt;
 |PC0&lt;br /&gt;
 |SCL&lt;br /&gt;
 |In/Out ²&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |I2C-Bus&lt;br /&gt;
 |SCL&lt;br /&gt;
 |XBUS: 10&lt;br /&gt;
 |XBUS SCL&lt;br /&gt;
 |-&lt;br /&gt;
 |PC1&lt;br /&gt;
 |SDA&lt;br /&gt;
 |In/Out&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |I2C-Bus&lt;br /&gt;
 |SDA&lt;br /&gt;
 |XBUS: 12&lt;br /&gt;
 |XBUS SDA&lt;br /&gt;
 |-&lt;br /&gt;
 |PC2&lt;br /&gt;
 |TCK&lt;br /&gt;
 |In/Out&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |JTAG&lt;br /&gt;
 |IO_PC2&lt;br /&gt;
 |I/O: 7&lt;br /&gt;
 |frei&lt;br /&gt;
 |-&lt;br /&gt;
 |PC3&lt;br /&gt;
 |TMS&lt;br /&gt;
 |In/Out&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |JTAG&lt;br /&gt;
 |IO_PC3&lt;br /&gt;
 |I/O: 5&lt;br /&gt;
 |frei&lt;br /&gt;
 |-&lt;br /&gt;
 |PC4&lt;br /&gt;
 |TDO&lt;br /&gt;
 |In/Out&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |JTAG&lt;br /&gt;
 |IO_PC4&lt;br /&gt;
 |I/O: 6&lt;br /&gt;
 |frei&lt;br /&gt;
 |-&lt;br /&gt;
 |PC5&lt;br /&gt;
 |TDI&lt;br /&gt;
 |In/Out&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |JTAG&lt;br /&gt;
 |IO_PC5&lt;br /&gt;
 |I/O: 3&lt;br /&gt;
 |frei&lt;br /&gt;
 |-&lt;br /&gt;
 |PC6&lt;br /&gt;
 |TOSC1&lt;br /&gt;
 |In/Out&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_PC6&lt;br /&gt;
 |I/O: 4&lt;br /&gt;
 |frei&lt;br /&gt;
 |-&lt;br /&gt;
 |PC7&lt;br /&gt;
 |TOSC2&lt;br /&gt;
 |In/Out&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_PC7&lt;br /&gt;
 |I/O: 1&lt;br /&gt;
 |frei&lt;br /&gt;
 |-&lt;br /&gt;
 |PD0&lt;br /&gt;
 |RXD&lt;br /&gt;
 |In&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |RS232&lt;br /&gt;
 |RX&lt;br /&gt;
 |PRG/U: 2&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PD1&lt;br /&gt;
 |TXD&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |RS232&lt;br /&gt;
 |TX&lt;br /&gt;
 |PRG/U: 3&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |PD2&lt;br /&gt;
 |INT0&lt;br /&gt;
 |In&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |EINT1 (INT0)&lt;br /&gt;
 |XBUS: 8&lt;br /&gt;
 |XBUS INT1&lt;br /&gt;
 |-&lt;br /&gt;
 |PD3&lt;br /&gt;
 |INT1&lt;br /&gt;
 |In&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |EINT2 (INT1) *&lt;br /&gt;
 |XBUS: 11&lt;br /&gt;
 |XBUS INT2&lt;br /&gt;
 |-&lt;br /&gt;
 |PD4&lt;br /&gt;
 |OC1B&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |STR&lt;br /&gt;
 |&lt;br /&gt;
 |IC3 STR&lt;br /&gt;
 |-&lt;br /&gt;
 |PD5&lt;br /&gt;
 |OC1A&lt;br /&gt;
 |In/Out&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_PD5&lt;br /&gt;
 |I/O: 9&lt;br /&gt;
 |frei&lt;br /&gt;
 |-&lt;br /&gt;
 |PD6&lt;br /&gt;
 |ICP&lt;br /&gt;
 |In/Out&lt;br /&gt;
 |1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |IO_PD6&lt;br /&gt;
 |I/O: 8&lt;br /&gt;
 |frei&lt;br /&gt;
 |-&lt;br /&gt;
 |PD7&lt;br /&gt;
 |OC2&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |BUZ&lt;br /&gt;
 |&lt;br /&gt;
 |Beeper&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
 Zeichen:&lt;br /&gt;
 *   Standard-Belegung! Über Jumper/Lötbrücke änderbar.&lt;br /&gt;
 **  Frei nutzbar. wenn kein 2. EEPROM (IC5) eingesetzt ist!&lt;br /&gt;
 ²   I2C-Master: Out, Slave: In&lt;br /&gt;
&lt;br /&gt;
=====Timer-Nutzung=====&lt;br /&gt;
Die Nutzung der Timer wird in der CONTROL M32 Library in der Funktion initRP6Control() am Ende der Datei RP6ControlLib.c festgelegt.&lt;br /&gt;
&lt;br /&gt;
======Timer 0======&lt;br /&gt;
Timer 0 arbeitet in der M32 Library im CTC-Modus (Mode 2) mit einem Vorteiler von 8 und nutzt als TOP-Wert OCR0. Bei einem Wert von 199 für OCR0 errechnet sich ein Zyklus von 100 us bei einer Quarzfrequenz von 16 MHz.&lt;br /&gt;
&lt;br /&gt;
Der Zyklus von 100 us wird genutzt für:&lt;br /&gt;
* Verzögerungen (sleep, mSleep)&lt;br /&gt;
* Stopwatches&lt;br /&gt;
* Timer Variable&lt;br /&gt;
* Sound timing&lt;br /&gt;
&lt;br /&gt;
======Timer 1======&lt;br /&gt;
Timer 1 ist in der M32 Library nicht genutzt und kann beliebig in eigenen Programmen eingesetzt werden.&lt;br /&gt;
&lt;br /&gt;
======Timer 2======&lt;br /&gt;
Der Timer 2 arbeitet im Normal-Modus (Mode 0). Der Wert von OCR2 bestimmt die Frequenz.&lt;br /&gt;
&lt;br /&gt;
Die von Timer 2 erzeugte Frequenz wird genutzt für:&lt;br /&gt;
* Beeper&lt;br /&gt;
&lt;br /&gt;
====RP6uart====&lt;br /&gt;
Diese Library stellt Funktionen für die serielle Kommunikation zur Verfügung. Sie kann auf der RP6 Base und M32 eingesetzt werden. Die aktuelle Version ist seit dem 10.09.2007 die Version 1.1. Gegenüber der Version 1.0 vom 10.04.2007 sind die Empfangsfunktionen jetzt Interrupt-basiert und verfügen über einen Ringpuffer.&lt;br /&gt;
&lt;br /&gt;
Die RP6uart Library ist standardmäßig in die RP6Base und CONTROL M32 Library eingebunden.&lt;br /&gt;
&lt;br /&gt;
====RP6I2Cmaster/slaveTWI====&lt;br /&gt;
Diese Library (bestehend aus einer Master- und einer Slave-Library) stellt Funktionen für die I2C-Kommunikation zur Verfügung. Die Library, die es in der Version 1.0 unverändert bereits seit dem 16.05.2007 gibt, läßt sich sowohl auf der RP6Base, als auch auf der M32 nutzen. Beide Plattformen können I2C-Master oder -Slave sein.&lt;br /&gt;
&lt;br /&gt;
=====Bug-Report=====&lt;br /&gt;
Dieser interessante [http://www.roboternetz.de/community/showthread.php?51816-Dicker-Fehler-in-der-RP6I2CmasterTWI.h-der-RP6Lib-Bugfix Thread] von [[Benutzer:RolfD|RolfD]] dreht sich um Fehler in dieser Lib und deren Fix.&lt;br /&gt;
&lt;br /&gt;
=====Ergänzung=====&lt;br /&gt;
[http://www.roboternetz.de/community/threads/56861-Frage-zu-RP6-I2C-Library-Funktionen-der-Lib-von-Peter-Fleury?p=542255&amp;amp;viewfull=1#post542255 Hier] findet sich eine (evtl. noch nicht fehlerfreie) Veränderung der RP6I2Cmaster Library, um mit ihr den berührungslosen Temperatursensor MLX90614 anzusteuern. Die Änderungen ermöglichen einen Repeated Start zwischen dem Senden der I2C- und RAM-Adresse und dem Lesen der Sensor-Werte. Die Original-Library sendet an dieser Stelle ein Stop.&lt;br /&gt;
&lt;br /&gt;
===WinAVR===&lt;br /&gt;
Die neueste Version von [[WinAVR]] kann man [http://sourceforge.net/projects/winavr/files/ hier] herunterladen.&lt;br /&gt;
WinAVR ist eine fertige Windows-Einrichtung eines Editors (Programmer's Notepad 2) und eines C-Compilers für Atmel AVR-Microcontroller (AVR-GCC).&lt;br /&gt;
&lt;br /&gt;
Zu empfehlen ist ein Blick in folgende Anleitungen, die in der WinAVR-Installation enthalten sind:&lt;br /&gt;
* WinAVR-user-manual.html (Benutzer-Handbuch im Stammverzeichnis)&lt;br /&gt;
* pn2.chm (PN2 Hilfe-Datei im Unterverzeichnis \pn\help)&lt;br /&gt;
&lt;br /&gt;
====Programmer's Notepad 2====&lt;br /&gt;
Programmer's Notepad 2 (PN2) ist der Editor von WinAVR, mit dem man Programme schreibt.&lt;br /&gt;
&lt;br /&gt;
====GCC====&lt;br /&gt;
[http://gcc.gnu.org/ GCC] ist eine Sammlung von Compilern, die auch eine C-Variante enthält (AVR-GCC), die für die Programmierung von AVR-Microcontrollern eingesetzt wird. In AVR-GCC wird auch der RP6 programmiert. In seiner Anleitung gibt es einen &amp;quot;C - Crashkurs&amp;quot; (Kapitel 4.4.).&lt;br /&gt;
&lt;br /&gt;
Zusätzlich ist u.a. in der WinAVR-Installation folgende Referenz zu allen Definitionen und Funktionen der AVR-GCC-Libraries enthalten:&lt;br /&gt;
* avr-libc-user-manual.pdf (Handbuch im Unterverzeichnis \doc\avr-libc)&lt;br /&gt;
&lt;br /&gt;
Es gibt gute Tutorials, um die Sprache zu lernen:&lt;br /&gt;
* [[Avr-gcc]]&lt;br /&gt;
* [[C-Tutorial]]&lt;br /&gt;
* [http://www.c-howto.de/tutorial.html Das C Tutorial (deutsch)]&lt;br /&gt;
* [http://c.baeumle-courth.eu/ Einiges zu ANSI-C]&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus gibt es natürlich auch Bücher:&lt;br /&gt;
* [http://www.roboternetz.de/community/showthread.php?47538-Suche-C-Buch-für-Einstieg Suche C-Buch für Einstieg]&lt;br /&gt;
&lt;br /&gt;
===Projekte===&lt;br /&gt;
Ohne Anspruch auf Vollständigkeit habe ich hier Links zu wichtigen Software-Projekten für die RP6Base und die M32 aufgelistet. Wichtig war mir dabei, dass es sich um direkt nutzbare und vollständige Programme oder Libraries handelt.&lt;br /&gt;
&lt;br /&gt;
... kann gern ergänzt werden ...&lt;br /&gt;
&lt;br /&gt;
====RP6 Base====&lt;br /&gt;
* Library:&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?31931-Domino-Day-für-den-RP6&amp;amp;p=302166&amp;amp;viewfull=1#post302166 Minimale Lib für den RP6]&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php/47114-RP6Control-M32-Rechteck-Generator?p=453225&amp;amp;viewfull=1#post453225 RP6uart_2 Lib]&lt;br /&gt;
* LCD Ansteuerung (Demo, Library):&lt;br /&gt;
** [http://www.roboternetz.de/community/threads/37232-LCD-an-RP6-Base LCD an RP6 Base]&lt;br /&gt;
* Servoansteuerung (Grundlagen, Demos, Library):&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?30877-RP6-Servo-Ansteuerung RP6 Servo Ansteuerung]&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?31931-Domino-Day-für-den-RP6 Domino Day für den RP6]&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?33909-Minimallösung-Servo-Sensor Minimallösung Servo-Sensor]&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?41287-Libverträgliche-Servo-ISR Libverträgliche Servo-ISR]&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?40052-RP6Base-Library-für-8-Servos RP6Base Library für 8 Servos]&lt;br /&gt;
* Ansteuerung externer I2C-Hardware (Demo):&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?30930-RP6-Beispiel-RTC-PCF8583 RP6 Beispiel RTC PCF8583]&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?30830-RP6-Beispiel-Devantech-CMPS03 RP6 Beispiel Devantech CMPS03]&lt;br /&gt;
* Kamera Minimallösung (Demo):&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?29906-Minimallösung-Kamera-für-den-RP6 Minimallösung Kamera für den RP6]&lt;br /&gt;
* [http://www.rn-wissen.de/index.php/RP6_Kamera_-_Mitmach-Projekt Kamera-Projekt] (Demo):&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?48057-RP6Base-Video-Grabber-1 RP6Base Video Grabber 1]&lt;br /&gt;
* Clock (Library):&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?30257-RP6(Control)-Einfache-Clock-Library RP6 Einfache Clock Library]&lt;br /&gt;
* DCF77-Decoder/Clock (Library):&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?30731-RP6(Control)-DCF77-Library RP6 DCF77 Library]&lt;br /&gt;
* Linienfolger (Demo):&lt;br /&gt;
** [http://www.roboternetz.de/community/threads/34328-RP6-Linienfolger RP6 Linienfolger]&lt;br /&gt;
* PC-Verbindung über Bluetooth (Grundlagen):&lt;br /&gt;
** [http://www.roboternetz.de/community/threads/52088-RP6-Uart-Adapter-für-btm222 RP6 Uart Adapter für BTM222]&lt;br /&gt;
* PC-Fernsteuerung (Demo):&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?53885-RP6-und-Funk RP6 und Funk]&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?47704-RP6-Remotrol-1.3-Die-Opensource-RP6-Fernsteuerung RP6 Remotrol 1.3]&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?54162-Gemeinschaftsprojekt-RP6-Remotrol-2.0 Gemeinschaftsprojekt RP6 Remotrol 2.0]&lt;br /&gt;
* RC-Fernsteuerung (Demo):&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?32928-RP6-und-RC RP6 und RC]&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?47147-Fernsteuerung-für-den-RP6 Fernsteuerung für den RP6]&lt;br /&gt;
* IR-Fernsteuerung (Demo):&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?52370-RP6_TV_-Remote RP6_TV_ Remote]&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?51851-Servos-mittels-TV-Remote-steuern Servos mittels TV-Remote steuern]&lt;br /&gt;
* IR-Kommunikation (Demo):&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?29313-gelöst-Einfache-IR-Kommunikation-für-den-RP6 Einfache IR Kommunikation für den RP6]&lt;br /&gt;
* RP6 und BASCOM (Demo):&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?30719-rp6-mit-bascom-(kleiner-anfang) RP6 mit BASCOM (kleiner Anfang)]&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?30738-rp6-mit-bascom-und-fernbedienung-rc5 RP6 mit BASCOM und Fernbedienung RC5]&lt;br /&gt;
* RP6 und LabView (Demo):&lt;br /&gt;
** [http://www.roboternetz.de/community/threads/54946-Der-Robby-und-LabView Der Robby und LabView]&lt;br /&gt;
* Morse-Code senden/empfangen (Demo, Library):&lt;br /&gt;
** [http://www.rn-wissen.de/index.php/RP6_-_Morse-Code RP6 - Morse-Code]&lt;br /&gt;
* Verschiedenes:&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?40508-Maussensor-an-RP6 Maussensor an RP6]&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?46581-Feuerwehrbot-Roboterwettbewerb-Der-Gewinner-ist... Feuerwehrbot Roboterwettbewerb]&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?47843-Projekt-RP6-mit-Snake-Vision Projekt RP6 mit Snake Vision]&lt;br /&gt;
** [http://www.roboternetz.de/community/threads/56098-First-release-of-rp6simul-a-simulator-for-the-RP6-and-m32 RP6 und M32 Simulator]&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
====CONTROL M32====&lt;br /&gt;
* Library:&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?47198-RP6Control-M32-Neue-Library-Version-1.3beta RP6Control M32 Library Version 1.31beta]&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php/47114-RP6Control-M32-Rechteck-Generator?p=453225&amp;amp;viewfull=1#post453225 RP6uart_2 Lib]&lt;br /&gt;
* Servoansteuerung (Library):&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?40090-RP6Control-M32-Library-für-8-Servos RP6Control M32 Library für 8 Servos]&lt;br /&gt;
* Ansteuerung des zweiten SPI-EEPROMs (Library):&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?38922-RP6Control-Library-für-2.-SPI-EEPROM-(IC5) RP6Control Library für 2. SPI-EEPROM (IC5)]&lt;br /&gt;
* Messgeräte (Demo):&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?47114-RP6Control-M32-Rechteck-Generator RP6Control M32 Rechteck Generator]&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?47088-RP6Control-M32-Impulslängen-Messgerät RP6Control M32 Impulslängen Messgerät]&lt;br /&gt;
* [http://www.rn-wissen.de/index.php/RP6_Kamera_-_Mitmach-Projekt Kamera-Projekt] (Demo):&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?48167-RP6Control-M32-Video-Zeilenzähler-1 RP6Control M32 Video Zeilenzähler 1]&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?48032-RP6Control-M32-Video-Grabber-1 RP6Control M32 Video Grabber 1]&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?48207-RP6Control-M32-Helligkeits-Sensor RP6Control M32 Helligkeits Sensor]&lt;br /&gt;
* TRX433 (CS-8 C, 190045, Library):&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?30111-RP6Control-Lib-für-den-433-MHz-Transceiver-CS-8-C RP6Control Lib für den 433 MHz Transceiver CS-8 C]&lt;br /&gt;
* Clock (Library):&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?30257-RP6(Control)-Einfache-Clock-Library RP6 Einfache Clock Library]&lt;br /&gt;
* DCF77-Decoder/Clock (Library):&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?30731-RP6(Control)-DCF77-Library RP6 DCF77 Library]&lt;br /&gt;
* Spiele (Demo):&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?53345-RP6-Sammlung-von-Spielen-und-anderen-Mini-Programmen RP6 Sammlung von Spielen und anderen Mini-Programmen]&lt;br /&gt;
* PC-Fernsteuerung (Demo):&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?47704-RP6-Remotrol-1.3-Die-Opensource-RP6-Fernsteuerung RP6 Remotrol 1.3]&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?54162-Gemeinschaftsprojekt-RP6-Remotrol-2.0 Gemeinschaftsprojekt RP6 Remotrol 2.0]&lt;br /&gt;
* Morse-Code senden/empfangen (Demo, Library):&lt;br /&gt;
** [http://www.rn-wissen.de/index.php/RP6_-_Morse-Code RP6 - Morse-Code]&lt;br /&gt;
* Verschiedenes:&lt;br /&gt;
** [http://www.roboternetz.de/community/threads/56098-First-release-of-rp6simul-a-simulator-for-the-RP6-and-m32 RP6 und M32 Simulator]&lt;br /&gt;
** ...&lt;br /&gt;
&lt;br /&gt;
==RP6 CCPRO M128==&lt;br /&gt;
Die RP6 CCPRO M128 Erweiterungsplatine (191563) hat zunächst keinen Microcontroller an Bord. Man muß daher das C-Control PRO MEGA128 Modul (198219) mit bestellen. Es gehört zum C-Control PRO System von CONRAD und enthält einen ATmega128 Microcontroller. Das CCPRO MEGA128 Modul wird in CompactC oder BASIC programmiert. Die Programme werden als Byte-Code von der IDE in das Modul geladen und dort von einem Byte-Code-Interpreter ausgeführt.&lt;br /&gt;
&lt;br /&gt;
===Demo-Programme===&lt;br /&gt;
Die RP6 CCPRO M128 Demo Programme sind [http://www.arexx.com/rp6/html/de/soft_doc_ccpro.htm hier] zu finden.&lt;br /&gt;
&lt;br /&gt;
====CompactC====&lt;br /&gt;
Hier ein Beispiel in CompactC:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// WICHTIG: Immer die RP6CCLib mit einbinden:&lt;br /&gt;
#include &amp;quot;../../RP6CCLib/RP6CCLib.cc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
void main(void)&lt;br /&gt;
{&lt;br /&gt;
    // WICHTIG! Immer als erstes aufrufen:&lt;br /&gt;
	RP6_CCPRO_Init(); // Auf Startsignal warten, LCD und andere Dinge initialisieren !&lt;br /&gt;
&lt;br /&gt;
    // ------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
    // Zwei Zeilen Text mit dem LCD anzeigen:&lt;br /&gt;
    showScreenLCD(&amp;quot;RP6 CCPRO M128&amp;quot;, &amp;quot;Hello World!&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    // Zweimal piepsen:&lt;br /&gt;
    beep(200,300,100);   // Format: beep (&amp;lt;tonhöhe&amp;gt;, &amp;lt;dauer&amp;gt;, &amp;lt;pause&amp;gt;)&lt;br /&gt;
    beep(100,100,100);&lt;br /&gt;
&lt;br /&gt;
    // 2 Sekunden Pause:&lt;br /&gt;
    AbsDelay(2000);&lt;br /&gt;
&lt;br /&gt;
    // Untere Zeile im LCD löschen:&lt;br /&gt;
    clearPosLCD(1,0,16);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    // ------------------------------------------------------&lt;br /&gt;
    // Lauflicht:&lt;br /&gt;
    byte runLight, dir;   // Variablen deklarieren&lt;br /&gt;
    runLight = 1;  // Lauflicht Variable&lt;br /&gt;
    dir = 0;       // Laufrichtung des Lauflichtes&lt;br /&gt;
    while(true)&lt;br /&gt;
    {&lt;br /&gt;
		// LEDs setzen:&lt;br /&gt;
		setLEDs(runLight);&lt;br /&gt;
&lt;br /&gt;
        // Laufrichtung wechseln wenn die äusseren LEDs erreicht wurden:&lt;br /&gt;
		if(runLight &amp;gt;= 16) {&lt;br /&gt;
            dir = 1;&lt;br /&gt;
            // Laufrichtung im LCD anzeigen:&lt;br /&gt;
            setCursorPosLCD(1,4);&lt;br /&gt;
            printLCD(&amp;quot;&amp;lt;&amp;lt;&amp;lt;&amp;lt;----&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
		else if (runLight &amp;lt;= 1) {&lt;br /&gt;
			dir = 0;&lt;br /&gt;
            // Laufrichtung im LCD anzeigen:&lt;br /&gt;
            setCursorPosLCD(1,4);&lt;br /&gt;
            printLCD(&amp;quot;----&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
		// LED Bit weiter &amp;quot;shiften&amp;quot; - nach links oder rechts, je nach Richtung:&lt;br /&gt;
		if(dir == 0)&lt;br /&gt;
			runLight = runLight &amp;lt;&amp;lt; 1;&lt;br /&gt;
		else&lt;br /&gt;
			runLight = runLight &amp;gt;&amp;gt; 1;&lt;br /&gt;
&lt;br /&gt;
        // 150ms Pause:&lt;br /&gt;
        AbsDelay(150);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====BASIC====&lt;br /&gt;
Hier das selbe Beispiel in BASIC:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
' WICHTIG: Immer die RP6CCLib mit einbinden:&lt;br /&gt;
#include &amp;quot;../../RP6CCLib/RP6CCLib.cbas&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Sub main()&lt;br /&gt;
    Dim runLight, dir As Byte  ' Variablen deklarieren&lt;br /&gt;
&lt;br /&gt;
    ' WICHTIG! Immer als erstes aufrufen:&lt;br /&gt;
	RP6_CCPRO_Init()  ' Auf Startsignal warten, LCD und andere Dinge initialisieren!&lt;br /&gt;
&lt;br /&gt;
    ' ------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
    ' Zwei Zeilen Text mit dem LCD anzeigen:&lt;br /&gt;
    showScreenLCD(&amp;quot;RP6 CCPRO M128&amp;quot;, &amp;quot;Hello World!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    ' Zweimal piepsen:&lt;br /&gt;
    beep(200,300,100)   ' Format: beep (&amp;lt;tonhöhe&amp;gt;, &amp;lt;dauer&amp;gt;, &amp;lt;pause&amp;gt;)&lt;br /&gt;
    beep(100,100,100)&lt;br /&gt;
&lt;br /&gt;
    ' 2 Sekunde Pause:&lt;br /&gt;
    AbsDelay(2000)&lt;br /&gt;
&lt;br /&gt;
    ' Untere Zeile im LCD löschen:&lt;br /&gt;
    clearPosLCD(1,0,16)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    ' ------------------------------------------------------&lt;br /&gt;
    ' Lauflicht:&lt;br /&gt;
&lt;br /&gt;
    runLight = 1  ' Lauflicht Variable&lt;br /&gt;
    dir = 0       ' Laufrichtung des Lauflichtes&lt;br /&gt;
    Do While True&lt;br /&gt;
        setLEDs(runLight)  ' LEDs setzen&lt;br /&gt;
&lt;br /&gt;
        ' Laufrichtung wechseln wenn die äusseren LEDs erreicht wurden:&lt;br /&gt;
		If runLight &amp;gt;= 16 Then&lt;br /&gt;
            dir = 1&lt;br /&gt;
            ' Laufrichtung im LCD anzeigen:&lt;br /&gt;
            setCursorPosLCD(1,4)&lt;br /&gt;
            printLCD(&amp;quot;&amp;lt;&amp;lt;&amp;lt;&amp;lt;----&amp;quot;)&lt;br /&gt;
		Else&lt;br /&gt;
            If runLight &amp;lt;= 1 Then&lt;br /&gt;
              dir = 0&lt;br /&gt;
              ' Laufrichtung im LCD anzeigen:&lt;br /&gt;
              setCursorPosLCD(1,4)&lt;br /&gt;
              printLCD(&amp;quot;----&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;quot;)&lt;br /&gt;
            End If&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
		' LED Bit weiter &amp;quot;shiften&amp;quot; - nach links oder rechts, je nach Richtung:&lt;br /&gt;
		If dir = 0 Then&lt;br /&gt;
			runLight = runLight &amp;lt;&amp;lt; 1&lt;br /&gt;
		Else&lt;br /&gt;
			runLight = runLight &amp;gt;&amp;gt; 1&lt;br /&gt;
        End If&lt;br /&gt;
&lt;br /&gt;
        AbsDelay(150)  ' 150ms Pause&lt;br /&gt;
    End While&lt;br /&gt;
End Sub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Library===&lt;br /&gt;
Die RP6 CCPRO M128 Library besteht aus den beiden Dateien RP6CClib.cc (CompactC) und RP6CClib.cbas (BASIC). Ihr Inhalt ist identisch.&lt;br /&gt;
&lt;br /&gt;
====Versionen====&lt;br /&gt;
Hier eine Tabelle der (mir) bekannten Library Versionen der CCPRO M128:&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |ZIP-Datum&lt;br /&gt;
 |Version&lt;br /&gt;
 |Version CompactC&lt;br /&gt;
 |Version BASIC&lt;br /&gt;
 |Bemerkungen&lt;br /&gt;
 |-&lt;br /&gt;
 |22.10.2008&lt;br /&gt;
 |1.0&lt;br /&gt;
 |1.0_16.10.08&lt;br /&gt;
 |1.0_07.10.08&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |31.01.2009&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RP6_CCPRO_EXAMPLES_DE_20090131.zip 1.0]&lt;br /&gt;
 |1.0_16.10.08&lt;br /&gt;
 |1.0_07.10.08&lt;br /&gt;
 |wie 22.10.2008 (?)&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Bug-Report====&lt;br /&gt;
Die Funktion '''void RP6_readRegisters(byte adr, byte start_reg, byte readBuffer[], byte reg_count)''' der RP6CClib liest &amp;quot;reg_count&amp;quot; Register des Controllers auf dem RP6 Mainboard über den I2C-Bus.&lt;br /&gt;
&lt;br /&gt;
In diesem Teil:&lt;br /&gt;
&amp;lt;pre&amp;gt;    I2C_Start();&lt;br /&gt;
    I2C_Write(adr+1);&lt;br /&gt;
    byte i;&lt;br /&gt;
    for(i=0;i&amp;lt;reg_count;i++)&lt;br /&gt;
        readBuffer[i] = (I2C_Read_ACK());&lt;br /&gt;
    readBuffer[i+1] = (I2C_Read_NACK());&lt;br /&gt;
    I2C_Stop();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
... werden die Register eingelesen.&lt;br /&gt;
&lt;br /&gt;
Ist reg_count z.B. 10 (10 Register sollen gelesen werden), werden mit I2C_Read_ACK() die Register in readBuffer[0] bis readBuffer[9] abgelegt. Danach wird mit I2C_Read_NACK() noch das 11. Register in readBuffer[11] abgelegt. readBuffer[10] bleibt unberührt.&lt;br /&gt;
Damit funktioniert diese Funktion zwar (d.h. in readBuffer[0..9] sind die gewünschten 10 Register vorhanden), aber es findet ein unnötiger Lesezyklus zusätzlich statt.&lt;br /&gt;
&lt;br /&gt;
Man kann die RP6CClib.cc so anpassen:&lt;br /&gt;
&amp;lt;pre&amp;gt;    I2C_Start();&lt;br /&gt;
    I2C_Write(adr+1);&lt;br /&gt;
    byte i;&lt;br /&gt;
    for(i=0;i&amp;lt;(reg_count-1);i++)&lt;br /&gt;
        readBuffer[i] = (I2C_Read_ACK());&lt;br /&gt;
    readBuffer[i] = (I2C_Read_NACK());&lt;br /&gt;
    I2C_Stop();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In der RP6CClib.cbas sieht das so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;    I2C_Start()&lt;br /&gt;
    I2C_Write(adr+1)&lt;br /&gt;
    For i=0 To reg_count-2&lt;br /&gt;
        readBuffer(i) = I2C_Read_ACK()&lt;br /&gt;
    Next&lt;br /&gt;
    readBuffer(i) = I2C_Read_NACK()&lt;br /&gt;
    I2C_Stop()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Konfiguration====&lt;br /&gt;
Die wesentlichen Hardware-Konfigurationen des RP6 finden sich am Anfang der M128 Library (RP6CClib). Dort steht eine Festlegung zur:&lt;br /&gt;
* Encoder-Auflösung&lt;br /&gt;
&lt;br /&gt;
====Port-Verwendung====&lt;br /&gt;
Am Anfang der M128 Library (RP6CClib) werden Bezeichnungen für einige Portpins der RP6 CCPRO M128 definiert, siehe Abschnitt &amp;quot;C-Control Standard Port Konfiguration auf dem RP6 CCPRO M128 Modul&amp;quot;. Diese Bezeichnungen kann man anstelle der Port-Bit Nummern verwenden, um das Programm selbsterklärender zu machen. Weitere Definitionen am Anfang der M128 Library:&lt;br /&gt;
* Port On/Port Off&lt;br /&gt;
* LF, CR, SPACE&lt;br /&gt;
* LED1..LED6&lt;br /&gt;
&lt;br /&gt;
Die Festlegungen zur Verwendung der Ports des RP6 CCPRO M128 Microcontrollers finden sich am Ende der M128 Library in der Funktion RP6_CCPRO_Init(). Dort wird auch noch Folgendes gemacht:&lt;br /&gt;
* SPI initialisieren&lt;br /&gt;
* Schieberegister zurücksetzen&lt;br /&gt;
* Serielle Schnittstelle initialisieren&lt;br /&gt;
* I2C Modul initialisieren&lt;br /&gt;
* LCD initialisieren&lt;br /&gt;
Hier eine Tabelle mit den Port-Definitionen der M128:&lt;br /&gt;
 Erklärung der Spalten:&lt;br /&gt;
 Port        -&amp;gt; Atmel Portpin Bezeichnung&lt;br /&gt;
 Name        -&amp;gt; Atmel Funktionsbezeichnung&lt;br /&gt;
 In/Out      -&amp;gt; Eingang (In) oder Ausgang (Out)&lt;br /&gt;
 Pullup      -&amp;gt; Falls Eingang: Pullup ein- (1) oder ausgeschaltet (0)&lt;br /&gt;
 Wert        -&amp;gt; Falls Ausgang: Logikpegel high (1) oder low (0)&lt;br /&gt;
 Port-Bit    -&amp;gt; CCPRO Port-Bit Nummer (0..52) &lt;br /&gt;
 Bezeichnung -&amp;gt; Portpin Bezeichnung der Library&lt;br /&gt;
 Stecker     -&amp;gt; Portpin verfügbar an STECKER: Pin&lt;br /&gt;
 Anmerkungen -&amp;gt; Kommentare&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |Port&lt;br /&gt;
 |Name&lt;br /&gt;
 |In/Out&lt;br /&gt;
 |Pullup&lt;br /&gt;
 |Wert&lt;br /&gt;
 |Port-Bit&lt;br /&gt;
 |Bezeichnung&lt;br /&gt;
 |Stecker&lt;br /&gt;
 |Anmerkungen&lt;br /&gt;
 |-&lt;br /&gt;
 |PA0&lt;br /&gt;
 |AD0&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |AD0 *&lt;br /&gt;
 |PORTA: 2&lt;br /&gt;
 |IC2/3 AD0&lt;br /&gt;
 |-&lt;br /&gt;
 |PA1&lt;br /&gt;
 |AD1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |1&lt;br /&gt;
 |AD1 *&lt;br /&gt;
 |PORTA: 1&lt;br /&gt;
 |IC2/3 AD1&lt;br /&gt;
 |-&lt;br /&gt;
 |PA2&lt;br /&gt;
 |AD2&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |2&lt;br /&gt;
 |AD2 *&lt;br /&gt;
 |PORTA: 3&lt;br /&gt;
 |IC2/3 AD2&lt;br /&gt;
 |-&lt;br /&gt;
 |PA3&lt;br /&gt;
 |AD3&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |3&lt;br /&gt;
 |AD3 *&lt;br /&gt;
 |PORTA: 4&lt;br /&gt;
 |IC2/3 AD3&lt;br /&gt;
 |-&lt;br /&gt;
 |PA4&lt;br /&gt;
 |AD4&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |4&lt;br /&gt;
 |AD4 *&lt;br /&gt;
 |PORTA: 5&lt;br /&gt;
 |IC2/3 AD4&lt;br /&gt;
 |-&lt;br /&gt;
 |PA5&lt;br /&gt;
 |AD5&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |5&lt;br /&gt;
 |AD5 *&lt;br /&gt;
 |PORTA: 7&lt;br /&gt;
 |IC2/3 AD5&lt;br /&gt;
 |-&lt;br /&gt;
 |PA6&lt;br /&gt;
 |AD6&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |6&lt;br /&gt;
 |AD6 *&lt;br /&gt;
 |PORTA: 6&lt;br /&gt;
 |IC2/3 AD6&lt;br /&gt;
 |-&lt;br /&gt;
 |PA7&lt;br /&gt;
 |AD7&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |7&lt;br /&gt;
 |AD7 *&lt;br /&gt;
 |PORTA: 8&lt;br /&gt;
 |IC2/3 AD7&lt;br /&gt;
 |-&lt;br /&gt;
 |PB0&lt;br /&gt;
 |SS&lt;br /&gt;
 |In&lt;br /&gt;
 |**&lt;br /&gt;
 |&lt;br /&gt;
 |8&lt;br /&gt;
 |PORT_SS&lt;br /&gt;
 |SPI_I/O: 5&lt;br /&gt;
 |frei&lt;br /&gt;
 |-&lt;br /&gt;
 |PB1&lt;br /&gt;
 |SCK&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |1&lt;br /&gt;
 |9&lt;br /&gt;
 |PORT_SCK&lt;br /&gt;
 |SPI_I/O: 6&lt;br /&gt;
 |IC4 CLK&lt;br /&gt;
 |-&lt;br /&gt;
 |PB2&lt;br /&gt;
 |MOSI&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |1&lt;br /&gt;
 |10&lt;br /&gt;
 |PORT_MOSI&lt;br /&gt;
 |SPI_I/O: 3&lt;br /&gt;
 |IC4 D&lt;br /&gt;
 |-&lt;br /&gt;
 |PB3&lt;br /&gt;
 |MISO&lt;br /&gt;
 |In&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |11&lt;br /&gt;
 |PORT_MISO&lt;br /&gt;
 |SPI_I/O: 4&lt;br /&gt;
 |frei&lt;br /&gt;
 |-&lt;br /&gt;
 |PB4&lt;br /&gt;
 |OC0&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |12&lt;br /&gt;
 |PB4&lt;br /&gt;
 |SPI_I/O: 2&lt;br /&gt;
 |frei&lt;br /&gt;
 |-&lt;br /&gt;
 |PB5&lt;br /&gt;
 |OC1A&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |13&lt;br /&gt;
 |PB5&lt;br /&gt;
 |I/O: 1&lt;br /&gt;
 |SERVO: 1, frei&lt;br /&gt;
 |-&lt;br /&gt;
 |PB6&lt;br /&gt;
 |OC1B&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |14&lt;br /&gt;
 |PB6&lt;br /&gt;
 |I/O: 3&lt;br /&gt;
 |SERVO: 2, frei&lt;br /&gt;
 |-&lt;br /&gt;
 |PB7&lt;br /&gt;
 |OC2/OC1C&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |15&lt;br /&gt;
 |PB7&lt;br /&gt;
 |SPI_I/O: 1&lt;br /&gt;
 |SERVO: 3, frei&lt;br /&gt;
 |-&lt;br /&gt;
 |PC0&lt;br /&gt;
 |A8&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |16&lt;br /&gt;
 |A8 *&lt;br /&gt;
 |PORTC: 1&lt;br /&gt;
 |IC3 A8&lt;br /&gt;
 |-&lt;br /&gt;
 |PC1&lt;br /&gt;
 |A9&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |17&lt;br /&gt;
 |A9 *&lt;br /&gt;
 |PORTC: 2&lt;br /&gt;
 |IC3 A9&lt;br /&gt;
 |-&lt;br /&gt;
 |PC2&lt;br /&gt;
 |A10&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |18&lt;br /&gt;
 |A10 *&lt;br /&gt;
 |PORTC: 3&lt;br /&gt;
 |IC3 A10&lt;br /&gt;
 |-&lt;br /&gt;
 |PC3&lt;br /&gt;
 |A11&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |19&lt;br /&gt;
 |A11 *&lt;br /&gt;
 |PORTC: 4&lt;br /&gt;
 |IC3 A11&lt;br /&gt;
 |-&lt;br /&gt;
 |PC4&lt;br /&gt;
 |A12&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |20&lt;br /&gt;
 |A12 *&lt;br /&gt;
 |PORTC: 5&lt;br /&gt;
 |IC3 A12&lt;br /&gt;
 |-&lt;br /&gt;
 |PC5&lt;br /&gt;
 |A13&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |21&lt;br /&gt;
 |A13 *&lt;br /&gt;
 |PORTC: 6&lt;br /&gt;
 |IC3 A13&lt;br /&gt;
 |-&lt;br /&gt;
 |PC6&lt;br /&gt;
 |A14&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |22&lt;br /&gt;
 |A14 *&lt;br /&gt;
 |PORTC: 7&lt;br /&gt;
 |IC3 A14&lt;br /&gt;
 |-&lt;br /&gt;
 |PC7&lt;br /&gt;
 |A15&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |23&lt;br /&gt;
 |A15 *&lt;br /&gt;
 |PORTC: 8&lt;br /&gt;
 |IC3 A15&lt;br /&gt;
 |-&lt;br /&gt;
 |PD0&lt;br /&gt;
 |SCL/INT0&lt;br /&gt;
 |In&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |24&lt;br /&gt;
 |PORT_SCL&lt;br /&gt;
 |XBUS: 10&lt;br /&gt;
 |XBUS SCL&lt;br /&gt;
 |-&lt;br /&gt;
 |PD1&lt;br /&gt;
 |SDA/INT1&lt;br /&gt;
 |In&lt;br /&gt;
 |0&lt;br /&gt;
 |&lt;br /&gt;
 |25&lt;br /&gt;
 |PORT_SDA&lt;br /&gt;
 |XBUS: 12&lt;br /&gt;
 |XBUS SDA&lt;br /&gt;
 |-&lt;br /&gt;
 |PD2&lt;br /&gt;
 |RXD1/INT2&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |26&lt;br /&gt;
 |PORT_RXD1&lt;br /&gt;
 |I/O: 8&lt;br /&gt;
 |RX 1, frei&lt;br /&gt;
 |-&lt;br /&gt;
 |PD3&lt;br /&gt;
 |TXD1/INT3&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |27&lt;br /&gt;
 |PORT_TXD1&lt;br /&gt;
 |I/O: 7&lt;br /&gt;
 |TX 1, frei&lt;br /&gt;
 |-&lt;br /&gt;
 |PD4&lt;br /&gt;
 |ICP1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |28&lt;br /&gt;
 |PD4 (A16) *&lt;br /&gt;
 |I/O: 6&lt;br /&gt;
 |frei (IC3 A16)&lt;br /&gt;
 |-&lt;br /&gt;
 |PD5&lt;br /&gt;
 |XCK1&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |29&lt;br /&gt;
 |PORT_LCD_EN&lt;br /&gt;
 |LCD: 6&lt;br /&gt;
 |LCD EN&lt;br /&gt;
 |-&lt;br /&gt;
 |PD6&lt;br /&gt;
 |T1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |30&lt;br /&gt;
 |PD6&lt;br /&gt;
 |I/O: 4&lt;br /&gt;
 |frei&lt;br /&gt;
 |-&lt;br /&gt;
 |PD7&lt;br /&gt;
 |T2&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |31&lt;br /&gt;
 |PD7&lt;br /&gt;
 |I/O: 2&lt;br /&gt;
 |frei&lt;br /&gt;
 |-&lt;br /&gt;
 |PE0&lt;br /&gt;
 |RXD0/PDI&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |32&lt;br /&gt;
 |PORT_RXD0&lt;br /&gt;
 |PRG/U: 2&lt;br /&gt;
 |RX 0&lt;br /&gt;
 |-&lt;br /&gt;
 |PE1&lt;br /&gt;
 |TXD0/PDO&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |33&lt;br /&gt;
 |PORT_TXD0&lt;br /&gt;
 |PRG/U: 3&lt;br /&gt;
 |TX 0&lt;br /&gt;
 |-&lt;br /&gt;
 |PE2&lt;br /&gt;
 |XCK0/AIN0&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |34&lt;br /&gt;
 |PORT_STR&lt;br /&gt;
 |&lt;br /&gt;
 |IC4 STR&lt;br /&gt;
 |-&lt;br /&gt;
 |PE3&lt;br /&gt;
 |OC3A/AIN1&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |35&lt;br /&gt;
 |PORT_SND *&lt;br /&gt;
 |I/O: 5&lt;br /&gt;
 |Beeper&lt;br /&gt;
 |-&lt;br /&gt;
 |PE4&lt;br /&gt;
 |OC3B/INT4&lt;br /&gt;
 |In&lt;br /&gt;
 |**&lt;br /&gt;
 |&lt;br /&gt;
 |36&lt;br /&gt;
 |PORT_START&lt;br /&gt;
 |PRG/U: 4 ²&lt;br /&gt;
 |START_BOOT Taster&lt;br /&gt;
 |-&lt;br /&gt;
 |PE5&lt;br /&gt;
 |OC3C/INT5&lt;br /&gt;
 |In&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |37&lt;br /&gt;
 |PORT_PE5_INT *&lt;br /&gt;
 |SPI_I/O: 7, XBUS: 8&lt;br /&gt;
 |XBUS INT1&lt;br /&gt;
 |-&lt;br /&gt;
 |PE6&lt;br /&gt;
 |T3/INT6&lt;br /&gt;
 |In&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |38&lt;br /&gt;
 |PORT_PE6_INT *&lt;br /&gt;
 |XBUS: 9&lt;br /&gt;
 |XBUS INT3&lt;br /&gt;
 |-&lt;br /&gt;
 |PE7&lt;br /&gt;
 |ICP3/INT7&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |39&lt;br /&gt;
 |PE7 (EXT-DATA)&lt;br /&gt;
 |SPI_I/O: 8&lt;br /&gt;
 |frei&lt;br /&gt;
 |-&lt;br /&gt;
 |PF0&lt;br /&gt;
 |ADC0&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |40&lt;br /&gt;
 |ADC0&lt;br /&gt;
 |ADC: 4&lt;br /&gt;
 |frei&lt;br /&gt;
 |-&lt;br /&gt;
 |PF1&lt;br /&gt;
 |ADC1&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |41&lt;br /&gt;
 |ADC1&lt;br /&gt;
 |ADC: 1&lt;br /&gt;
 |frei&lt;br /&gt;
 |-&lt;br /&gt;
 |PF2&lt;br /&gt;
 |ADC2&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |42&lt;br /&gt;
 |ADC2&lt;br /&gt;
 |ADC: 6&lt;br /&gt;
 |frei&lt;br /&gt;
 |-&lt;br /&gt;
 |PF3&lt;br /&gt;
 |ADC3&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |43&lt;br /&gt;
 |ADC3&lt;br /&gt;
 |ADC: 3&lt;br /&gt;
 |frei&lt;br /&gt;
 |-&lt;br /&gt;
 |PF4&lt;br /&gt;
 |ADC4/TCK&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |44&lt;br /&gt;
 |ADC4&lt;br /&gt;
 |ADC: 8&lt;br /&gt;
 |YADC4, frei&lt;br /&gt;
 |-&lt;br /&gt;
 |PF5&lt;br /&gt;
 |ADC5/TMS&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |45&lt;br /&gt;
 |ADC5&lt;br /&gt;
 |ADC: 5&lt;br /&gt;
 |frei&lt;br /&gt;
 |-&lt;br /&gt;
 |PF6&lt;br /&gt;
 |ADC6/TDO&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |46&lt;br /&gt;
 |ADC6&lt;br /&gt;
 |ADC: 7&lt;br /&gt;
 |YADC6, frei&lt;br /&gt;
 |-&lt;br /&gt;
 |PF7&lt;br /&gt;
 |ADC7/TDI&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |47&lt;br /&gt;
 |ADC7&lt;br /&gt;
 |ADC: 2&lt;br /&gt;
 |frei&lt;br /&gt;
 |-&lt;br /&gt;
 |PG0&lt;br /&gt;
 |WR&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |48&lt;br /&gt;
 |WE&lt;br /&gt;
 |&lt;br /&gt;
 |IC3 WE/&lt;br /&gt;
 |-&lt;br /&gt;
 |PG1&lt;br /&gt;
 |RD&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |49&lt;br /&gt;
 |OE&lt;br /&gt;
 |&lt;br /&gt;
 |IC3 OE/&lt;br /&gt;
 |-&lt;br /&gt;
 |PG2&lt;br /&gt;
 |ALE&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |50&lt;br /&gt;
 |ALE&lt;br /&gt;
 |&lt;br /&gt;
 |IC2 C&lt;br /&gt;
 |-&lt;br /&gt;
 |PG3&lt;br /&gt;
 |TOSC2&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |51&lt;br /&gt;
 |PORT_LED1 *&lt;br /&gt;
 |JP: YL1&lt;br /&gt;
 |Status LED1&lt;br /&gt;
 |-&lt;br /&gt;
 |PG4&lt;br /&gt;
 |TOSC1&lt;br /&gt;
 |Out&lt;br /&gt;
 |&lt;br /&gt;
 |0&lt;br /&gt;
 |52&lt;br /&gt;
 |PORT_LED2 *&lt;br /&gt;
 |JP: YL3&lt;br /&gt;
 |Status LED2&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
 Zeichen:&lt;br /&gt;
 *    Standard-Belegung! Über Jumper/Lötbrücke änderbar.&lt;br /&gt;
 **   Pullup-Widerstand 100 kOhm!&lt;br /&gt;
 ²    Über Serienwiderstand 470 Ohm&lt;br /&gt;
&lt;br /&gt;
====Timer-Nutzung====&lt;br /&gt;
Die Nutzung der Timer wird in der M128 Library in der Funktion RP6_CCPRO_Init() am Ende der Datei RP6CClib.cc oder RP6CClib.cbas festgelegt. Dort steht jedoch nur der Hinweis auf die Nutzung von Timer 3 für den Piezo Tongeber.&lt;br /&gt;
&lt;br /&gt;
=====Timer 0=====&lt;br /&gt;
Frei für die eigene Nutzung.&lt;br /&gt;
&lt;br /&gt;
=====Timer 1=====&lt;br /&gt;
Frei für die eigene Nutzung.&lt;br /&gt;
&lt;br /&gt;
=====Timer 2=====&lt;br /&gt;
Interne CCPRO Zeitbasis (10ms Tick), z.B. für die Clock Funktion und die Thread-Ablaufsteuerung. Timer 2 kann vom eigenen Programm nicht anders konfiguriert werden, man kann aber den 10ms Tick im eigenen Programm nutzen.&lt;br /&gt;
&lt;br /&gt;
=====Timer 3=====&lt;br /&gt;
Timer 3 wird in der Library für den Piezo Tongeber verwendet. Nutzt man die Funktionen beep(), beep_t() und die Macros sound(), sound_off() und tone() NICHT, kann man Timer 3 auch anders konfigurieren und nutzen.&lt;br /&gt;
&lt;br /&gt;
===C-Control PRO===&lt;br /&gt;
[http://www.c-control.de/c-control-pro/c-control-pro/startseite_c-control-pro.html C-Control PRO] (CCPRO) ist eine Hardware- und Programmierumgebung von CONRAD. Sie ist angepaßt an die CCPRO Module MEGA32 und MEGA128. Das CCPRO MEGA128 Modul arbeitet auch auf der RP6 CCPRO M128 Erweiterungsplatine.&lt;br /&gt;
&lt;br /&gt;
====IDE====&lt;br /&gt;
Die neueste Version der CCPRO-IDE und das CCPRO-Handbuch sind [http://www.c-control.de/c-control-pro/software,_treiber,_downloads/software,_treiber,_downloads.html hier] zu finden.&lt;br /&gt;
&lt;br /&gt;
Um die Programmierung des C-Control PRO MEGA128 Moduls kennenzulernen, kann man sich auch die [http://www.c-control.de/c-control-pro/applikationen/applikationen.html Demo-Programme] ansehen. Achtung: Sie laufen nicht ohne Änderungen auf der RP6 CCPRO M128 Erweiterungsplatine!&lt;br /&gt;
&lt;br /&gt;
====Projekte====&lt;br /&gt;
Derzeit gibt es nur ein interessantes Projekt als &amp;quot;Alternative&amp;quot; für die CCPRO IDE.&lt;br /&gt;
&lt;br /&gt;
... kann gern ergänzt werden ...&lt;br /&gt;
&lt;br /&gt;
=====CCPro-Loader=====&lt;br /&gt;
[http://www.roboternetz.de/community/showthread.php?42017-CCPro-Loader-C-Control-Pro-ohne-Interpreter-nutzbar Hier] gibt es den CCPro-Loader. Mit diesem Programm von [[Benutzer:messier|messier]] kann man HEX-Dateien, die man mit anderen Programmiersprachen erstellt hat, in das C-Control PRO MEGA128 Modul laden, ohne den Bootloader zu zerstören. Das eröffnet die Möglichkeit, das Modul nicht nur in CompactC oder BASIC (d.h. in Bytecode-Interpreter Sprachen) zu programmieren, sondern auch z.B. mit GCC oder BASCOM.&lt;br /&gt;
&lt;br /&gt;
===Projekte===&lt;br /&gt;
Ohne Anspruch auf Vollständigkeit habe ich hier Links zu wichtigen Software-Projekten für die RP6 CCPRO M128 aufgelistet. Wichtig war mir dabei, dass es sich um direkt nutzbare und vollständige Programme oder Libraries handelt.&lt;br /&gt;
&lt;br /&gt;
... kann gern ergänzt werden ...&lt;br /&gt;
&lt;br /&gt;
====CompactC====&lt;br /&gt;
* Stopwatches (Library):&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?48406-CCPRO-M128-Stopwatches-(CompactC) CCPRO M128 Stopwatches]&lt;br /&gt;
* DCF77-Decoder/Clock (Library):&lt;br /&gt;
** CCPRO M128 DCF77 Decoder [http://www.roboternetz.de/community/showthread.php?42859-CCPRO-M128-DCF77-Decoder-1-(CompactC) Teil 1] und [http://www.roboternetz.de/community/showthread.php?42860-CCPRO-M128-DCF77-Decoder-2-(CompactC) Teil 2]&lt;br /&gt;
** CCPRO M128 DCF Clock [http://www.roboternetz.de/community/showthread.php?42983-CCPRO-M128-DCF-Clock-1-(CompactC) Teil 1] und [http://www.roboternetz.de/community/showthread.php?42984-CCPRO-M128-DCF-Clock-2-(CompactC) Teil 2]&lt;br /&gt;
* Servo-Ansteuerung (Demo):&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?42950-CCPRO-M128-Demo-Servo-Ansteuerung CCPRO M128 Demo Servo Ansteuerung]&lt;br /&gt;
* PC-Fernsteuerung (Demo):&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?47704-RP6-Remotrol-1.3-Die-Opensource-RP6-Fernsteuerung RP6 Remotrol 1.3]&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?54162-Gemeinschaftsprojekt-RP6-Remotrol-2.0 Gemeinschaftsprojekt RP6 Remotrol 2.0]&lt;br /&gt;
* Morse-Code senden/empfangen (Demo, Library):&lt;br /&gt;
** [http://www.rn-wissen.de/index.php/RP6_-_Morse-Code RP6 - Morse-Code]&lt;br /&gt;
&lt;br /&gt;
====BASIC====&lt;br /&gt;
* DCF77-Decoder/Clock (Library):&lt;br /&gt;
** CCPRO M128 DCF77 Decoder [http://www.roboternetz.de/community/showthread.php?42861-CCPRO-M128-DCF77-Decoder-1-(CCPRO-BASIC) Teil 1] und [http://www.roboternetz.de/community/showthread.php?42862-CCPRO-M128-DCF77-Decoder-2-(CCPRO-BASIC) Teil 2]&lt;br /&gt;
** CCPRO M128 DCF Clock [http://www.roboternetz.de/community/showthread.php?42985-CCPRO-M128-DCF-Clock-1-(CCPRO-BASIC) Teil 1] und [http://www.roboternetz.de/community/showthread.php?42986-CCPRO-M128-DCF-Clock-2-(CCPRO-BASIC) Teil 2]&lt;br /&gt;
* Servo-Ansteuerung (Demo):&lt;br /&gt;
** [http://www.roboternetz.de/community/showthread.php?42950-CCPRO-M128-Demo-Servo-Ansteuerung CCPRO M128 Demo Servo Ansteuerung]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erfahrungsberichte==&lt;br /&gt;
&lt;br /&gt;
... kann gerne ergänzt werden ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[RP6]]&lt;br /&gt;
* [[RP6v2]]&lt;br /&gt;
* [[RP6 - Morse-Code]]&lt;br /&gt;
* [[CCRP5]]&lt;br /&gt;
* [[Yeti]]&lt;br /&gt;
* [[Asuro]]&lt;br /&gt;
* [[C't-Bot]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
&lt;br /&gt;
* [http://www.arexx.com/forum/viewforum.php?f=19 AREXX Support Forum]&lt;br /&gt;
* [http://ccpro.cc2net.de/forum/ C-Control PRO Forum]&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/viewforum.php?f=49 Roboternetz RP6 Forum]&lt;br /&gt;
* [http://sourceforge.net/projects/rp6flashwriter/ RP6 FlashWriter]&lt;br /&gt;
* [http://sourceforge.net/projects/rp6remotrol/ RP6 Remotrol]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.schmiereck.de/jawiki/user/coders/RP6 JaWiki: RP6] &lt;br /&gt;
* [http://www.mikrocontroller.net/topic/79965#1049779 Eclipse mit WinAVR]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* HTW Berlin: [http://www.robotik-projekt.de/ Robotik-Projekt]&lt;br /&gt;
* FH-Wiesbaden: [http://www.cs.hs-rm.de/~linn/vpdv08/RP6_1/index.html Anwendung der Prozessdatenverarbeitung - Home]&lt;br /&gt;
* FH-Wiesbaden: [http://www.cs.hs-rm.de/~linn/vpdv08/RP6_1/Doku.pdf Anwendung der Prozessdatenverarbeitung - Doku]&lt;br /&gt;
* FEEIT, Skopje Macedonia: [http://en.feit.ukim.edu.mk/ H&amp;amp;S 2011]&lt;br /&gt;
* Uni Regensburg: Bacholorarbeit &amp;quot;[http://www.roboternetz.de/community/threads/58177-LabView-Fernsteuerungs-Tool-mit-diversen-Routinen LabView-Fernsteuerungs-Tool mit diversen Routinen]&amp;quot; &lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Robotikeinstieg]]	 &lt;br /&gt;
[[Kategorie:Praxis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Autoren==&lt;br /&gt;
--[[Benutzer:Sloti|Sloti]] 22:23, 29. Dez 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Tobias1|Tobias1]] 18:30, 06. Apr 2010 (CET)&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Dirk|Dirk]] 17:31, 17. Jun 2012 (CET)&lt;/div&gt;</summary>
		<author><name>MaxWeb</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=RP6v2&amp;diff=20264</id>
		<title>RP6v2</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=RP6v2&amp;diff=20264"/>
				<updated>2012-07-11T13:01:34Z</updated>
		
		<summary type="html">&lt;p&gt;MaxWeb: /* Beschreibung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:rp6v2_2.jpg|Der RP6v2]]&lt;br /&gt;
&lt;br /&gt;
Was bisher geschah:&lt;br /&gt;
&lt;br /&gt;
Mon, 27. Feb 2012 - Ankündigung des RP6v2&amp;lt;br/&amp;gt;&lt;br /&gt;
Don, 08. Mär 2012 - Auslieferungsbeginn des RP6v2&amp;lt;br/&amp;gt;&lt;br /&gt;
Sam, 17. Mär 2012 - Ankündigung der RP6v2 M256 WiFi&amp;lt;br/&amp;gt;&lt;br /&gt;
Mon, 11. Jun 2012 - Beginn der &amp;quot;Testaktion: Kostenlose RP6v2-M256-WIFI Module!&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
Die, 10. Jul 2012 - Ende der &amp;quot;Testaktion: Kostenlose RP6v2-M256-WIFI Module!&amp;quot; nach Abstimmung&amp;lt;br/&amp;gt;&lt;br /&gt;
Don, 05. Jul 2012 - Auslieferungsbeginn der RP6v2 M256 WiFi (?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Allgemein==&lt;br /&gt;
Der RP6v2 ([http://www.conrad.de/ce/de/product/191584/RP6-V2-ROBOTERSYSTEM/ 191584]) wurde am 27.02.2012 von [[Benutzer:SlyD|SlyD]] angekündigt (siehe Weblinks!). Er ist eine leicht verbesserte Version des [[RP6]]. Der RP6v2 ist softwarekompatibel zum RP6. '''Alle Erweiterungs-Module können auch mit dem RP6v2 eingesetzt werden.'''&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel beschreibt die Grundlagen zum RP6v2, '''sofern sie vom RP6 abweichen''', und die Grundlagen und Programmierung seiner zukünftigen Erweiterungs-Module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Eigenschaften==&lt;br /&gt;
Laut Ankündigung haben sich beim RP6v2 folgende Details gegenüber dem RP6 geändert:&lt;br /&gt;
* Neue Drehgeber&lt;br /&gt;
** Justierung dank neuer Sensortechnik üblicherweise nicht mehr erforderlich&lt;br /&gt;
** leicht zugängliches und deutlich größeres Potentiometer&lt;br /&gt;
** Potis nur noch zur Feinjustierung erforderlich&lt;br /&gt;
* Zusätzliche Steckverbinder (im RP6 schon seit 2010 verbaut)&lt;br /&gt;
** vom Mainboard zu den Drehgebern&lt;br /&gt;
** vom Mainboard zu den Motoren&lt;br /&gt;
* Neue Anschlüsse (Steckverbinder / Stiftleisten)&lt;br /&gt;
** 2 3-polige ADC Anschlüsse mit VDD/GND inkl. zusätzlichem Stützkondensator&lt;br /&gt;
** 2 4-polige VDD Anschlüsse (je 2x +5V und 2x GND)&lt;br /&gt;
** 1 3-poliger +UB Anschluß (1x +UB, 2x GND)&lt;br /&gt;
** 1 5-polige Stiftleiste für den I2C Bus und VDD/GND&lt;br /&gt;
** 1 8-poliger EXT Steckverbinder (JST-Wannenstecker)&lt;br /&gt;
** 2 4-polige Steckverbinder (LIO1/LIO2) für die I/O-Pins von 4 LEDs und VDD/GND&lt;br /&gt;
* Hauptsicherung&lt;br /&gt;
** von 2,5A auf 3,15A erhöht&lt;br /&gt;
* Motortreiber&lt;br /&gt;
** leistungsfähigere und robustere MOSFETs&lt;br /&gt;
* Experimentierplatine&lt;br /&gt;
** gehört nicht mehr zum Lieferumfang&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Technische Änderungen==&lt;br /&gt;
Der RP6v2 weist einige Detail-Änderungen gegenüber der Vorversion auf. '''Diese Änderungen sind für die Nutzung und Programmierung des RP6v2 weitgehend irrelevant.'''&lt;br /&gt;
&lt;br /&gt;
Fast alle passiven SMD-Bauteile sind jetzt in Bauform 0603 bestückt (Ausnahmen: R6 (SP2 C2: R6), Induktivitäten und größere Kondensatoren).&lt;br /&gt;
Im Text gibt es Verweise auf den Schaltplan des RP6v2 (RP6v2_MAINBOARD.pdf) in der Form: (SP2 B1: Bauteil). Dies bedeutet, dass man das Bauteil auf Blatt 2 des RP6v2-Schaltplans im Feld B1 finden kann.&lt;br /&gt;
&lt;br /&gt;
===Mainboard===&lt;br /&gt;
* C14 (SP2 A3: C14) -&amp;gt; Liegt jetzt an VDD (parallel u.a. zu C6..C10)&lt;br /&gt;
* C26 (SP2 A1: C26) -&amp;gt; Jetzt bestückt mit Elko 220uF/16V (laut SP: 470uF/16V!)&lt;br /&gt;
* C29 (SP2 E1: C29) -&amp;gt; Jetzt bestückt mit SMD Kondensator 10uF&lt;br /&gt;
* IO3/IO4 Bestückungsaufdruck geändert in IO4/IO5 (Stecker LIO2)&lt;br /&gt;
* UBAT Bestückungsaufdruck geändert in UBAT_SENSE&lt;br /&gt;
* F2.5A Bestückungsaufdruck geändert in F3.0A (Feinsicherung flink 3,0A)&lt;br /&gt;
* Trennstelle +UB Sensor (siehe Abschnitt 6.4.6 [[RP6#.2BUB_Sensor]] des RP6-Artikels!) existiert beim RP6v2 nicht mehr&lt;br /&gt;
* Als Motortreiber (SP3 BCD23: Q1..Q4) werden anstelle von IRF7309 (ID 3,0A; PD 1,4W) die leistungsfähigeren und ESD-geschützten Typen SP8M3 (ID 4,5A; PD 2W; Schutzdiode) verwendet&lt;br /&gt;
&lt;br /&gt;
===Encoderplatine===&lt;br /&gt;
Die Encoder sind mittlerweile auch einzeln unter der Conrad-Bestellnummer ''' 191625 - 62''' verfügbar.&lt;br /&gt;
Schaltung siehe Datei RP6v2_ENCODERS.pdf!&lt;br /&gt;
* Jetzt mit Operationsverstärker IC2 (MCP6001U) anstelle eines Transistors&lt;br /&gt;
* Größeres Potentiometer R2 (200kOhm)&lt;br /&gt;
&lt;br /&gt;
===USB-Interface===&lt;br /&gt;
Schaltung siehe Datei RP6v2_USB_INTERFACE.pdf!&lt;br /&gt;
* C2  -&amp;gt; Jetzt bestückt mit SMD Kondensator 10uF&lt;br /&gt;
* C5  -&amp;gt; Neuer Blockkondensator 100nF an VCCIO von IC1&lt;br /&gt;
&lt;br /&gt;
===Steckverbindungen und Stiftleisten===&lt;br /&gt;
&lt;br /&gt;
====Motoren====&lt;br /&gt;
[[Bild:RP6v2_Motorstecker.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Beim RP6v2 sind die beiden Motorkabel mit 2-poligen Winkelsteckern RM 7,5mm an das Mainboard angeschlossen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Encoder====&lt;br /&gt;
[[Bild:RP6v2_Encoderstecker.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Beim RP6v2 sind die Encoder mit einem 6-poligen Winkelstecker RM 2,54mm an das Mainboard angeschlossen.&lt;br /&gt;
&lt;br /&gt;
Auch die 3-polige Verbindung zu den beiden Encoder-Platinen ist steckbar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====LIO1/LIO2====&lt;br /&gt;
[[Bild:RP6v2_LIO12.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Beim RP6 waren die Anschlüsse der Status-LEDs SL1,2 und SL4,5 ([[RP6#IO1..IO4]]) einzeln auf dem Mainboard zu kontaktieren.&lt;br /&gt;
&lt;br /&gt;
Beim RP6v2 gibt es zwei 4-polige Stiftleisten (LIO1, LIO2). Sie führen an den Pins 1 und 2 +5V und GND.&lt;br /&gt;
&lt;br /&gt;
An den Pins 3 und 4 finden sich die Anschlüsse von IO2, IO1 (LIO1) bzw. IO4, IO5 (LIO2).&lt;br /&gt;
&lt;br /&gt;
Bitte beachten: '''Der Bestückungsaufdruck IO4, IO5 des RP6v2 bezeichnet die selben Anschlüsse, wie beim RP6 IO3, IO4!'''&lt;br /&gt;
&lt;br /&gt;
Es handelt sich in beiden Fällen um die Anschlüsse der Status-LEDs SL4 (PB7) und SL5 (PB1).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ADC0/ADC1====&lt;br /&gt;
[[Bild:RP6v2_ADC01.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Beim RP6 waren die 3-poligen Anschlüsse von ADC0 und ADC1 ([[RP6#Analoge_Sensoren_an_ADC0.2F1]]) nicht mit Stiftleisten bestückt.&lt;br /&gt;
&lt;br /&gt;
Dies ist jetzt beim RP6v2 der Fall,- zusätzlich ist auch C26 (SP2 A1: C26) bestückt.&lt;br /&gt;
&lt;br /&gt;
Damit können analoge Sensoren direkt angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====I2C/+UB/+5V====&lt;br /&gt;
[[Bild:RP6v2_I2CUB5V.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Die beim RP6 vorhandene 5-polige I2C-Schnittstelle ([[RP6#I2C-Schnittstelle]]) findet sich (jetzt mit Stiftleiste bestückt) genau so auch beim RP6v2.&lt;br /&gt;
&lt;br /&gt;
Bitte beachten: '''Die Anordnung der Pins auf dem Mainboard ist beim RP6v2 umgekehrt wie beim RP6!'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beim RP6 gab es (nicht mit Stiftleisten bestückte) Anschlüsse für VDD und +UB ([[RP6#VDD.2FGND.2F.2BUB_Anschlu.C3.9F]]).&lt;br /&gt;
&lt;br /&gt;
Beim RP6v2 gibt es jetzt drei Stiftleisten für +UB, +5V (VDD) und GND:&lt;br /&gt;
* Eine 3-polige Stiftleiste mit GND, +UB, GND&lt;br /&gt;
* Zwei 4-polige Stiftleisten jeweils mit GND, +5V, +5V, GND&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====EXT====&lt;br /&gt;
[[Bild:RP6v2_EXT.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Beim RP6 war keine Stiftleiste für den 8-poligen EXT Anschluß bestückt.&lt;br /&gt;
&lt;br /&gt;
Beim RP6v2 ist jetzt an dieser Stelle ein Wannenstecker vorhanden, in den auch Steckbuchsen (RM 2,54) gesteckt werden können.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beschreibung des EXT Anschlusses: [[RP6#EXT_Anschlu.C3.9F]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erweiterungs-Module==&lt;br /&gt;
&lt;br /&gt;
===RP6v2 M256 WiFi Platine===&lt;br /&gt;
[[Bild:RP6v2_M256_WIFI.JPG|Die RP6v2 M256 WiFi]]&lt;br /&gt;
&lt;br /&gt;
Die RP6v2 M256 WiFi Zusatzplatine wurde am 17.03.2012 von [[Benutzer:SlyD|SlyD]] angekündigt (siehe Weblink!).&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Laut Ankündigung bietet die RP6v2 M256 WiFi:&lt;br /&gt;
* Atmel ATmega2560 Mikrocontroller&lt;br /&gt;
** 256kB Flash ROM&lt;br /&gt;
** 8kB SRAM&lt;br /&gt;
** 4kB EEPROM&lt;br /&gt;
** 16MHz Taktfrequenz&lt;br /&gt;
** 6 Hardware Timer und 86 I/O Ports&lt;br /&gt;
** Bis zu 16 A/D Wandler Kanäle (10 Bit Auflösung)&lt;br /&gt;
** 12 16 Bit Hardware PWMs&lt;br /&gt;
** 2 USART/SPI Ports&lt;br /&gt;
* Energieeffizientes 802.11g WLAN Modul&lt;br /&gt;
** Typ: Roving Networks RN-171&lt;br /&gt;
** Telemetriedaten übertragen&lt;br /&gt;
** Roboter vom PC aus fernsteuern&lt;br /&gt;
** Neue Programme drahtlos per WLAN in den Mikrocontroller laden&lt;br /&gt;
** Bootloader nachträglich erweitern&lt;br /&gt;
** Einstellung des WLAN Moduls über das RP6 USB Interface mit dem RobotLoader 2.x&lt;br /&gt;
** Änderung der Einstellungen über eine Netzwerkverbindung oder mit dem eigenen Mikrocontrollerprogramm&lt;br /&gt;
** Eigener Prozessor (entlastet den ATmega)&lt;br /&gt;
** Funktioniert mit jedem Standard WLAN Accesspoint/Router&lt;br /&gt;
** Kann als transparente serielle Schnittstelle arbeiten&lt;br /&gt;
** Kann vom PC aus per TCP/IP angesprochen werden&lt;br /&gt;
** 10cm 2.4GHz Antenne mit RP-SMA Anschluß&lt;br /&gt;
* Sonstige Ausstattung&lt;br /&gt;
** 8 Bit Display Port&lt;br /&gt;
** I2C Bus&lt;br /&gt;
** microSD Kartenslot&lt;br /&gt;
** 7 Status LEDs&lt;br /&gt;
** 2 Eingabetaster&lt;br /&gt;
** ISP Anschluß&lt;br /&gt;
** 4 WLAN ADC Kanäle&lt;br /&gt;
** AREF 3,3 und 5V&lt;br /&gt;
&lt;br /&gt;
====Technische Daten====&lt;br /&gt;
{|  {{Blauetabelle}} &lt;br /&gt;
|'''Mikrocontroller:'''&lt;br /&gt;
|AVR ATmega2560&lt;br /&gt;
|-&lt;br /&gt;
|'''Speicher:'''&lt;br /&gt;
|256 kB [[Flash]]-Speicher&amp;lt;br/&amp;gt;&lt;br /&gt;
8 kB SRAM&amp;lt;br/&amp;gt; &lt;br /&gt;
4 kB [[EEPROM]]&amp;lt;br/&amp;gt;&lt;br /&gt;
? GB microSD Speicherkarte&lt;br /&gt;
|-&lt;br /&gt;
|'''Programmierung:'''&lt;br /&gt;
|Über [[Bootloader]], belegt ca. 8 kB des Flash-Speichers&amp;lt;br/&amp;gt;&lt;br /&gt;
Drahtlos über WLAN&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Sensoren:'''&lt;br /&gt;
|2 Eingabetaster&amp;lt;br/&amp;gt;&lt;br /&gt;
4 WLAN ADC Kanäle&amp;lt;br/&amp;gt;&lt;br /&gt;
60 GP I/O Ports, davon bis 16 AD-Wandler (10-bit)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Aktoren:'''&lt;br /&gt;
|7 Status LEDs&amp;lt;br/&amp;gt;&lt;br /&gt;
1 LC-Display-Port&amp;lt;br/&amp;gt;&lt;br /&gt;
802.11g WLAN Modul&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Abmessungen:'''&lt;br /&gt;
|(L &amp;amp;times; B &amp;amp;times; H) 112 &amp;amp;times; 90 &amp;amp;times; ? mm&lt;br /&gt;
|-&lt;br /&gt;
|'''Ausführung:'''&lt;br /&gt;
|Fertig aufgebautes Erweiterungsmodul&lt;br /&gt;
|-&lt;br /&gt;
|'''Stromversorgung:'''&lt;br /&gt;
|6 AA NiMH Akkus (über die RP6v2 Base)&lt;br /&gt;
|-&lt;br /&gt;
|'''Hersteller:'''&lt;br /&gt;
|Arexx Niederlande&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Umbau-Optionen====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zubehör und Ersatzteile==&lt;br /&gt;
Über die Zubehör- und Ersatzteile informiert der Artikel [[RP6#Zubehör und Ersatzteile]].&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus sind bei [http://www.conrad.de/ce/ CONRAD] für den RP6v2 erhältlich:&lt;br /&gt;
* Arexx RP6v2 Drehgeber-Satz RP6-ENCv2 [http://www.conrad.de/ce/de/product/191625/RP6-DREHGEBER-SATZ 191625]&lt;br /&gt;
* Arexx RP6 USB-Interface RP6V2-TRANS [http://www.conrad.de/ce/de/product/191638/RP6-V2-PROGRAMMIER-ADAPTER 191638]&lt;br /&gt;
&lt;br /&gt;
===RP6v2 Drehgeber-Satz RP6-ENCv2===&lt;br /&gt;
&lt;br /&gt;
===RP6 USB-Interface RP6V2-TRANS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Programmierung==&lt;br /&gt;
===RobotLoader===&lt;br /&gt;
====Loader Versionen====&lt;br /&gt;
Hier eine Tabelle der (mir) bekannten RobotLoader Versionen für die RP6v2 Base, CONTROL M32 und ab Version 2.0 auch für die M256 WiFi:&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |ZIP-Datum&lt;br /&gt;
 |Version&lt;br /&gt;
 |Bemerkungen&lt;br /&gt;
 |Examples&lt;br /&gt;
 |-&lt;br /&gt;
 |12.07.2010&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RobotLoader_20100712.zip 1.5h]&lt;br /&gt;
 |Auch für die RP6 Base, für Roboterarme und Caterpillar&lt;br /&gt;
 |ab 16.10.2007&lt;br /&gt;
 |-&lt;br /&gt;
 |23.02.2012&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RobotLoader_20120223.zip 2.0 BETA]&lt;br /&gt;
 |Testversion! Ab v2.0 auch für die RP6v2 M256 WiFi Platine&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |05.06.2012&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RobotLoader_20120605.zip 2.3a]&lt;br /&gt;
 |Testversion! Siehe auch [http://www.roboternetz.de/community/threads/58168-RobotLoader-2-3a hier]!&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |18.06.2012&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RobotLoader_20120618.zip 2.3b]&lt;br /&gt;
 |Über Kommandozeile nutzbar, siehe auch [http://www.roboternetz.de/community/threads/58168-RobotLoader-2-3a hier]!&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Projekte====&lt;br /&gt;
* Der RobotLoader 2.3a und [http://www.rn-wissen.de/index.php/LunaAVR LunaAVR] im [http://www.roboternetz.de/community/threads/58168-RobotLoader-2-3a?p=551535&amp;amp;viewfull=1#post551535 Roboternetz RP6 Forum] und im [http://forum.myluna.de/viewtopic.php?f=3&amp;amp;t=24#p94 LunaAVR Forum]&lt;br /&gt;
&lt;br /&gt;
===RP6v2===&lt;br /&gt;
'''Der RP6v2 ([http://www.conrad.de/ce/de/product/191584/RP6-V2-ROBOTERSYSTEM/ 191584]) ist softwarekompatibel zum RP6.'''&lt;br /&gt;
&lt;br /&gt;
Zur Programmierung des [[RP6]] und des RP6v2 gibt es einen eigenen Artikel: [[RP6 - Programmierung]]&lt;br /&gt;
&lt;br /&gt;
===RP6v2 M256 WiFi Platine===&lt;br /&gt;
====Demo-Programmme====&lt;br /&gt;
====Library====&lt;br /&gt;
=====Versionen=====&lt;br /&gt;
=====Bug-Report=====&lt;br /&gt;
=====Konfiguration=====&lt;br /&gt;
=====Port-Verwendung=====&lt;br /&gt;
=====Timer-Nutzung=====&lt;br /&gt;
====Projekte====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erfahrungsberichte==&lt;br /&gt;
&lt;br /&gt;
...in Arbeit...(kann aber gerne ergänzt werden)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[RP6]]&lt;br /&gt;
* [[RP6 - Programmierung]]&lt;br /&gt;
* [[RP6 Kamera - Mitmach-Projekt]]&lt;br /&gt;
* [[RP6v2 I2C-Portexpander]]&lt;br /&gt;
* [[CCRP5]]&lt;br /&gt;
* [[Yeti]]&lt;br /&gt;
* [[Asuro]]&lt;br /&gt;
* [[C't-Bot]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
&lt;br /&gt;
* Ankündigung des RP6v2 im [http://www.roboternetz.de/community/threads/56964-NEWS-RP6v2-die-neue-Version-2-des-RP6-Robot-Systems RoboterNETZ] und im [http://www.arexx.com/forum/viewtopic.php?f=19&amp;amp;t=1778 AREXX Support Forum]&lt;br /&gt;
* Ankündigung der RP6v2 M256 WiFi und der Testaktion im [http://www.arexx.com/forum/viewtopic.php?f=19&amp;amp;t=1797 AREXX Support Forum]&lt;br /&gt;
* Beginn der &amp;quot;Testaktion: Kostenlose RP6v2-M256-WIFI Module!&amp;quot; im [http://www.roboternetz.de/community/threads/58161-Kostenlose-RP6-M256-WIFI-Module-für-Testanwender! Roboternetz RP6 Forum]&lt;br /&gt;
* Ende der &amp;quot;Testaktion: Kostenlose RP6v2-M256-WIFI Module!&amp;quot; nach Abstimmung im [http://www.roboternetz.de/community/threads/58389-Wählt-Gewinner-der-RP6v2-M256-WIFI-Module Roboternetz RP6 Forum]&lt;br /&gt;
* Newsartikel zur RP6v2 M256 WiFi im [http://www.roboternetz.de/community/threads/58160-Funk-Erweiterungsmodul-für-den-RP6-und-RP6v2-Gratis-für-Tester! RoboterNETZ]&lt;br /&gt;
* Diskussions-Thread zur RP6v2 M256 WiFi im [http://www.roboternetz.de/community/threads/58162-Diskussion-zum-RP6-M256-WIFI-Modul Roboternetz RP6 Forum]&lt;br /&gt;
* [http://www.arexx.com/rp6 AREXX RP6 Startseite]&lt;br /&gt;
* [http://www.arexx.com/forum/viewforum.php?f=19 AREXX Support Forum]&lt;br /&gt;
&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191584/RP6-V2-ROBOTERSYSTEM RP6v2 bei CONRAD]&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191550/RP6-MEGA32-ERWEITERUNGSSATZ RP6 CONTROL M32 bei CONRAD]&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191563/RP6-CC-PRO-MEGA128-ERWEITERUNGSSATZ RP6 CCPRO M128 bei CONRAD]&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191609/Arexx-RP6-V2-Control-M256-WiFi-Kit-RP6v2-M256-WIFI RP6v2 M256 WiFi bei CONRAD]&lt;br /&gt;
&lt;br /&gt;
* [http://www.rovingnetworks.com/products/RN_171 WiFi-Modul RN-171] der RP6v2 M256 WiFi&lt;br /&gt;
&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/viewforum.php?f=49 Roboternetz RP6 Forum]&lt;br /&gt;
* &amp;quot;Geburt&amp;quot; des Wiki im RN-Forum: [http://www.roboternetz.de/community/threads/32793-RP6-Wiki-Artikel RP6-Wiki-Artikel]&lt;br /&gt;
&lt;br /&gt;
* [http://www.youtube.com/results?search_query=rp6 RP6 Videos]&lt;br /&gt;
* [http://de-de.facebook.com/pages/Robby-RP6/155118711202285 facebook]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Robotikeinstieg]]	 &lt;br /&gt;
[[Kategorie:Praxis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Autoren==&lt;br /&gt;
--[[Benutzer:Dirk|Dirk]] 12:52, 03. Jul 2012 (CET)&lt;/div&gt;</summary>
		<author><name>MaxWeb</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=RP6v2&amp;diff=20263</id>
		<title>RP6v2</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=RP6v2&amp;diff=20263"/>
				<updated>2012-07-11T12:54:08Z</updated>
		
		<summary type="html">&lt;p&gt;MaxWeb: /* Technische Daten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:rp6v2_2.jpg|Der RP6v2]]&lt;br /&gt;
&lt;br /&gt;
Was bisher geschah:&lt;br /&gt;
&lt;br /&gt;
Mon, 27. Feb 2012 - Ankündigung des RP6v2&amp;lt;br/&amp;gt;&lt;br /&gt;
Don, 08. Mär 2012 - Auslieferungsbeginn des RP6v2&amp;lt;br/&amp;gt;&lt;br /&gt;
Sam, 17. Mär 2012 - Ankündigung der RP6v2 M256 WiFi&amp;lt;br/&amp;gt;&lt;br /&gt;
Mon, 11. Jun 2012 - Beginn der &amp;quot;Testaktion: Kostenlose RP6v2-M256-WIFI Module!&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
Die, 10. Jul 2012 - Ende der &amp;quot;Testaktion: Kostenlose RP6v2-M256-WIFI Module!&amp;quot; nach Abstimmung&amp;lt;br/&amp;gt;&lt;br /&gt;
Don, 05. Jul 2012 - Auslieferungsbeginn der RP6v2 M256 WiFi (?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Allgemein==&lt;br /&gt;
Der RP6v2 ([http://www.conrad.de/ce/de/product/191584/RP6-V2-ROBOTERSYSTEM/ 191584]) wurde am 27.02.2012 von [[Benutzer:SlyD|SlyD]] angekündigt (siehe Weblinks!). Er ist eine leicht verbesserte Version des [[RP6]]. Der RP6v2 ist softwarekompatibel zum RP6. '''Alle Erweiterungs-Module können auch mit dem RP6v2 eingesetzt werden.'''&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel beschreibt die Grundlagen zum RP6v2, '''sofern sie vom RP6 abweichen''', und die Grundlagen und Programmierung seiner zukünftigen Erweiterungs-Module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Eigenschaften==&lt;br /&gt;
Laut Ankündigung haben sich beim RP6v2 folgende Details gegenüber dem RP6 geändert:&lt;br /&gt;
* Neue Drehgeber&lt;br /&gt;
** Justierung dank neuer Sensortechnik üblicherweise nicht mehr erforderlich&lt;br /&gt;
** leicht zugängliches und deutlich größeres Potentiometer&lt;br /&gt;
** Potis nur noch zur Feinjustierung erforderlich&lt;br /&gt;
* Zusätzliche Steckverbinder (im RP6 schon seit 2010 verbaut)&lt;br /&gt;
** vom Mainboard zu den Drehgebern&lt;br /&gt;
** vom Mainboard zu den Motoren&lt;br /&gt;
* Neue Anschlüsse (Steckverbinder / Stiftleisten)&lt;br /&gt;
** 2 3-polige ADC Anschlüsse mit VDD/GND inkl. zusätzlichem Stützkondensator&lt;br /&gt;
** 2 4-polige VDD Anschlüsse (je 2x +5V und 2x GND)&lt;br /&gt;
** 1 3-poliger +UB Anschluß (1x +UB, 2x GND)&lt;br /&gt;
** 1 5-polige Stiftleiste für den I2C Bus und VDD/GND&lt;br /&gt;
** 1 8-poliger EXT Steckverbinder (JST-Wannenstecker)&lt;br /&gt;
** 2 4-polige Steckverbinder (LIO1/LIO2) für die I/O-Pins von 4 LEDs und VDD/GND&lt;br /&gt;
* Hauptsicherung&lt;br /&gt;
** von 2,5A auf 3,15A erhöht&lt;br /&gt;
* Motortreiber&lt;br /&gt;
** leistungsfähigere und robustere MOSFETs&lt;br /&gt;
* Experimentierplatine&lt;br /&gt;
** gehört nicht mehr zum Lieferumfang&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Technische Änderungen==&lt;br /&gt;
Der RP6v2 weist einige Detail-Änderungen gegenüber der Vorversion auf. '''Diese Änderungen sind für die Nutzung und Programmierung des RP6v2 weitgehend irrelevant.'''&lt;br /&gt;
&lt;br /&gt;
Fast alle passiven SMD-Bauteile sind jetzt in Bauform 0603 bestückt (Ausnahmen: R6 (SP2 C2: R6), Induktivitäten und größere Kondensatoren).&lt;br /&gt;
Im Text gibt es Verweise auf den Schaltplan des RP6v2 (RP6v2_MAINBOARD.pdf) in der Form: (SP2 B1: Bauteil). Dies bedeutet, dass man das Bauteil auf Blatt 2 des RP6v2-Schaltplans im Feld B1 finden kann.&lt;br /&gt;
&lt;br /&gt;
===Mainboard===&lt;br /&gt;
* C14 (SP2 A3: C14) -&amp;gt; Liegt jetzt an VDD (parallel u.a. zu C6..C10)&lt;br /&gt;
* C26 (SP2 A1: C26) -&amp;gt; Jetzt bestückt mit Elko 220uF/16V (laut SP: 470uF/16V!)&lt;br /&gt;
* C29 (SP2 E1: C29) -&amp;gt; Jetzt bestückt mit SMD Kondensator 10uF&lt;br /&gt;
* IO3/IO4 Bestückungsaufdruck geändert in IO4/IO5 (Stecker LIO2)&lt;br /&gt;
* UBAT Bestückungsaufdruck geändert in UBAT_SENSE&lt;br /&gt;
* F2.5A Bestückungsaufdruck geändert in F3.0A (Feinsicherung flink 3,0A)&lt;br /&gt;
* Trennstelle +UB Sensor (siehe Abschnitt 6.4.6 [[RP6#.2BUB_Sensor]] des RP6-Artikels!) existiert beim RP6v2 nicht mehr&lt;br /&gt;
* Als Motortreiber (SP3 BCD23: Q1..Q4) werden anstelle von IRF7309 (ID 3,0A; PD 1,4W) die leistungsfähigeren und ESD-geschützten Typen SP8M3 (ID 4,5A; PD 2W; Schutzdiode) verwendet&lt;br /&gt;
&lt;br /&gt;
===Encoderplatine===&lt;br /&gt;
Die Encoder sind mittlerweile auch einzeln unter der Conrad-Bestellnummer ''' 191625 - 62''' verfügbar.&lt;br /&gt;
Schaltung siehe Datei RP6v2_ENCODERS.pdf!&lt;br /&gt;
* Jetzt mit Operationsverstärker IC2 (MCP6001U) anstelle eines Transistors&lt;br /&gt;
* Größeres Potentiometer R2 (200kOhm)&lt;br /&gt;
&lt;br /&gt;
===USB-Interface===&lt;br /&gt;
Schaltung siehe Datei RP6v2_USB_INTERFACE.pdf!&lt;br /&gt;
* C2  -&amp;gt; Jetzt bestückt mit SMD Kondensator 10uF&lt;br /&gt;
* C5  -&amp;gt; Neuer Blockkondensator 100nF an VCCIO von IC1&lt;br /&gt;
&lt;br /&gt;
===Steckverbindungen und Stiftleisten===&lt;br /&gt;
&lt;br /&gt;
====Motoren====&lt;br /&gt;
[[Bild:RP6v2_Motorstecker.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Beim RP6v2 sind die beiden Motorkabel mit 2-poligen Winkelsteckern RM 7,5mm an das Mainboard angeschlossen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Encoder====&lt;br /&gt;
[[Bild:RP6v2_Encoderstecker.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Beim RP6v2 sind die Encoder mit einem 6-poligen Winkelstecker RM 2,54mm an das Mainboard angeschlossen.&lt;br /&gt;
&lt;br /&gt;
Auch die 3-polige Verbindung zu den beiden Encoder-Platinen ist steckbar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====LIO1/LIO2====&lt;br /&gt;
[[Bild:RP6v2_LIO12.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Beim RP6 waren die Anschlüsse der Status-LEDs SL1,2 und SL4,5 ([[RP6#IO1..IO4]]) einzeln auf dem Mainboard zu kontaktieren.&lt;br /&gt;
&lt;br /&gt;
Beim RP6v2 gibt es zwei 4-polige Stiftleisten (LIO1, LIO2). Sie führen an den Pins 1 und 2 +5V und GND.&lt;br /&gt;
&lt;br /&gt;
An den Pins 3 und 4 finden sich die Anschlüsse von IO2, IO1 (LIO1) bzw. IO4, IO5 (LIO2).&lt;br /&gt;
&lt;br /&gt;
Bitte beachten: '''Der Bestückungsaufdruck IO4, IO5 des RP6v2 bezeichnet die selben Anschlüsse, wie beim RP6 IO3, IO4!'''&lt;br /&gt;
&lt;br /&gt;
Es handelt sich in beiden Fällen um die Anschlüsse der Status-LEDs SL4 (PB7) und SL5 (PB1).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ADC0/ADC1====&lt;br /&gt;
[[Bild:RP6v2_ADC01.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Beim RP6 waren die 3-poligen Anschlüsse von ADC0 und ADC1 ([[RP6#Analoge_Sensoren_an_ADC0.2F1]]) nicht mit Stiftleisten bestückt.&lt;br /&gt;
&lt;br /&gt;
Dies ist jetzt beim RP6v2 der Fall,- zusätzlich ist auch C26 (SP2 A1: C26) bestückt.&lt;br /&gt;
&lt;br /&gt;
Damit können analoge Sensoren direkt angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====I2C/+UB/+5V====&lt;br /&gt;
[[Bild:RP6v2_I2CUB5V.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Die beim RP6 vorhandene 5-polige I2C-Schnittstelle ([[RP6#I2C-Schnittstelle]]) findet sich (jetzt mit Stiftleiste bestückt) genau so auch beim RP6v2.&lt;br /&gt;
&lt;br /&gt;
Bitte beachten: '''Die Anordnung der Pins auf dem Mainboard ist beim RP6v2 umgekehrt wie beim RP6!'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beim RP6 gab es (nicht mit Stiftleisten bestückte) Anschlüsse für VDD und +UB ([[RP6#VDD.2FGND.2F.2BUB_Anschlu.C3.9F]]).&lt;br /&gt;
&lt;br /&gt;
Beim RP6v2 gibt es jetzt drei Stiftleisten für +UB, +5V (VDD) und GND:&lt;br /&gt;
* Eine 3-polige Stiftleiste mit GND, +UB, GND&lt;br /&gt;
* Zwei 4-polige Stiftleisten jeweils mit GND, +5V, +5V, GND&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====EXT====&lt;br /&gt;
[[Bild:RP6v2_EXT.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Beim RP6 war keine Stiftleiste für den 8-poligen EXT Anschluß bestückt.&lt;br /&gt;
&lt;br /&gt;
Beim RP6v2 ist jetzt an dieser Stelle ein Wannenstecker vorhanden, in den auch Steckbuchsen (RM 2,54) gesteckt werden können.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beschreibung des EXT Anschlusses: [[RP6#EXT_Anschlu.C3.9F]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erweiterungs-Module==&lt;br /&gt;
&lt;br /&gt;
===RP6v2 M256 WiFi Platine===&lt;br /&gt;
[[Bild:RP6v2_M256_WIFI.JPG|Die RP6v2 M256 WiFi]]&lt;br /&gt;
&lt;br /&gt;
Die RP6v2 M256 WiFi Zusatzplatine wurde am 17.03.2012 von [[Benutzer:SlyD|SlyD]] angekündigt (siehe Weblink!).&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Laut Ankündigung bietet die RP6v2 M256 WiFi:&lt;br /&gt;
* Atmel ATmega2560 Mikrocontroller&lt;br /&gt;
** 256kB Flash ROM&lt;br /&gt;
** 8kB SRAM&lt;br /&gt;
** 4kB EEPROM&lt;br /&gt;
** 16MHz Taktfrequenz&lt;br /&gt;
** 6 Hardware Timer und 86 I/O Ports&lt;br /&gt;
** Bis zu 16 A/D Wandler Kanäle (10 Bit Auflösung)&lt;br /&gt;
** 12 16 Bit Hardware PWMs&lt;br /&gt;
** 2 USART/SPI Ports&lt;br /&gt;
* Energieeffizientes 802.11g WLAN Modul&lt;br /&gt;
** Telemetriedaten übertragen&lt;br /&gt;
** Roboter vom PC aus fernsteuern&lt;br /&gt;
** Neue Programme drahtlos per WLAN in den Mikrocontroller laden&lt;br /&gt;
** Bootloader nachträglich erweitern&lt;br /&gt;
** Einstellung des WLAN Moduls über das RP6 USB Interface mit dem RobotLoader 2.x&lt;br /&gt;
** Änderung der Einstellungen über eine Netzwerkverbindung oder mit dem eigenen Mikrocontrollerprogramm&lt;br /&gt;
** Eigener Prozessor (entlastet den ATmega)&lt;br /&gt;
** Funktioniert mit jedem Standard WLAN Accesspoint/Router&lt;br /&gt;
** Kann als transparente serielle Schnittstelle arbeiten&lt;br /&gt;
** Kann vom PC aus per TCP/IP angesprochen werden&lt;br /&gt;
** 10cm 2.4GHz Antenne mit RP-SMA Anschluß&lt;br /&gt;
* Sonstige Ausstattung&lt;br /&gt;
** 8 Bit Display Port&lt;br /&gt;
** I2C Bus&lt;br /&gt;
** microSD Kartenslot&lt;br /&gt;
** 7 Status LEDs&lt;br /&gt;
** 2 Eingabetaster&lt;br /&gt;
** ISP Anschluß&lt;br /&gt;
** 4 WLAN ADC Kanäle&lt;br /&gt;
** AREF 3,3 und 5V&lt;br /&gt;
&lt;br /&gt;
====Technische Daten====&lt;br /&gt;
{|  {{Blauetabelle}} &lt;br /&gt;
|'''Mikrocontroller:'''&lt;br /&gt;
|AVR ATmega2560&lt;br /&gt;
|-&lt;br /&gt;
|'''Speicher:'''&lt;br /&gt;
|256 kB [[Flash]]-Speicher&amp;lt;br/&amp;gt;&lt;br /&gt;
8 kB SRAM&amp;lt;br/&amp;gt; &lt;br /&gt;
4 kB [[EEPROM]]&amp;lt;br/&amp;gt;&lt;br /&gt;
? GB microSD Speicherkarte&lt;br /&gt;
|-&lt;br /&gt;
|'''Programmierung:'''&lt;br /&gt;
|Über [[Bootloader]], belegt ca. 8 kB des Flash-Speichers&amp;lt;br/&amp;gt;&lt;br /&gt;
Drahtlos über WLAN&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Sensoren:'''&lt;br /&gt;
|2 Eingabetaster&amp;lt;br/&amp;gt;&lt;br /&gt;
4 WLAN ADC Kanäle&amp;lt;br/&amp;gt;&lt;br /&gt;
60 GP I/O Ports, davon bis 16 AD-Wandler (10-bit)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Aktoren:'''&lt;br /&gt;
|7 Status LEDs&amp;lt;br/&amp;gt;&lt;br /&gt;
1 LC-Display-Port&amp;lt;br/&amp;gt;&lt;br /&gt;
802.11g WLAN Modul&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Abmessungen:'''&lt;br /&gt;
|(L &amp;amp;times; B &amp;amp;times; H) 112 &amp;amp;times; 90 &amp;amp;times; ? mm&lt;br /&gt;
|-&lt;br /&gt;
|'''Ausführung:'''&lt;br /&gt;
|Fertig aufgebautes Erweiterungsmodul&lt;br /&gt;
|-&lt;br /&gt;
|'''Stromversorgung:'''&lt;br /&gt;
|6 AA NiMH Akkus (über die RP6v2 Base)&lt;br /&gt;
|-&lt;br /&gt;
|'''Hersteller:'''&lt;br /&gt;
|Arexx Niederlande&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Umbau-Optionen====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zubehör und Ersatzteile==&lt;br /&gt;
Über die Zubehör- und Ersatzteile informiert der Artikel [[RP6#Zubehör und Ersatzteile]].&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus sind bei [http://www.conrad.de/ce/ CONRAD] für den RP6v2 erhältlich:&lt;br /&gt;
* Arexx RP6v2 Drehgeber-Satz RP6-ENCv2 [http://www.conrad.de/ce/de/product/191625/RP6-DREHGEBER-SATZ 191625]&lt;br /&gt;
* Arexx RP6 USB-Interface RP6V2-TRANS [http://www.conrad.de/ce/de/product/191638/RP6-V2-PROGRAMMIER-ADAPTER 191638]&lt;br /&gt;
&lt;br /&gt;
===RP6v2 Drehgeber-Satz RP6-ENCv2===&lt;br /&gt;
&lt;br /&gt;
===RP6 USB-Interface RP6V2-TRANS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Programmierung==&lt;br /&gt;
===RobotLoader===&lt;br /&gt;
====Loader Versionen====&lt;br /&gt;
Hier eine Tabelle der (mir) bekannten RobotLoader Versionen für die RP6v2 Base, CONTROL M32 und ab Version 2.0 auch für die M256 WiFi:&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |ZIP-Datum&lt;br /&gt;
 |Version&lt;br /&gt;
 |Bemerkungen&lt;br /&gt;
 |Examples&lt;br /&gt;
 |-&lt;br /&gt;
 |12.07.2010&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RobotLoader_20100712.zip 1.5h]&lt;br /&gt;
 |Auch für die RP6 Base, für Roboterarme und Caterpillar&lt;br /&gt;
 |ab 16.10.2007&lt;br /&gt;
 |-&lt;br /&gt;
 |23.02.2012&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RobotLoader_20120223.zip 2.0 BETA]&lt;br /&gt;
 |Testversion! Ab v2.0 auch für die RP6v2 M256 WiFi Platine&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |05.06.2012&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RobotLoader_20120605.zip 2.3a]&lt;br /&gt;
 |Testversion! Siehe auch [http://www.roboternetz.de/community/threads/58168-RobotLoader-2-3a hier]!&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |18.06.2012&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RobotLoader_20120618.zip 2.3b]&lt;br /&gt;
 |Über Kommandozeile nutzbar, siehe auch [http://www.roboternetz.de/community/threads/58168-RobotLoader-2-3a hier]!&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Projekte====&lt;br /&gt;
* Der RobotLoader 2.3a und [http://www.rn-wissen.de/index.php/LunaAVR LunaAVR] im [http://www.roboternetz.de/community/threads/58168-RobotLoader-2-3a?p=551535&amp;amp;viewfull=1#post551535 Roboternetz RP6 Forum] und im [http://forum.myluna.de/viewtopic.php?f=3&amp;amp;t=24#p94 LunaAVR Forum]&lt;br /&gt;
&lt;br /&gt;
===RP6v2===&lt;br /&gt;
'''Der RP6v2 ([http://www.conrad.de/ce/de/product/191584/RP6-V2-ROBOTERSYSTEM/ 191584]) ist softwarekompatibel zum RP6.'''&lt;br /&gt;
&lt;br /&gt;
Zur Programmierung des [[RP6]] und des RP6v2 gibt es einen eigenen Artikel: [[RP6 - Programmierung]]&lt;br /&gt;
&lt;br /&gt;
===RP6v2 M256 WiFi Platine===&lt;br /&gt;
====Demo-Programmme====&lt;br /&gt;
====Library====&lt;br /&gt;
=====Versionen=====&lt;br /&gt;
=====Bug-Report=====&lt;br /&gt;
=====Konfiguration=====&lt;br /&gt;
=====Port-Verwendung=====&lt;br /&gt;
=====Timer-Nutzung=====&lt;br /&gt;
====Projekte====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erfahrungsberichte==&lt;br /&gt;
&lt;br /&gt;
...in Arbeit...(kann aber gerne ergänzt werden)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[RP6]]&lt;br /&gt;
* [[RP6 - Programmierung]]&lt;br /&gt;
* [[RP6 Kamera - Mitmach-Projekt]]&lt;br /&gt;
* [[RP6v2 I2C-Portexpander]]&lt;br /&gt;
* [[CCRP5]]&lt;br /&gt;
* [[Yeti]]&lt;br /&gt;
* [[Asuro]]&lt;br /&gt;
* [[C't-Bot]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
&lt;br /&gt;
* Ankündigung des RP6v2 im [http://www.roboternetz.de/community/threads/56964-NEWS-RP6v2-die-neue-Version-2-des-RP6-Robot-Systems RoboterNETZ] und im [http://www.arexx.com/forum/viewtopic.php?f=19&amp;amp;t=1778 AREXX Support Forum]&lt;br /&gt;
* Ankündigung der RP6v2 M256 WiFi und der Testaktion im [http://www.arexx.com/forum/viewtopic.php?f=19&amp;amp;t=1797 AREXX Support Forum]&lt;br /&gt;
* Beginn der &amp;quot;Testaktion: Kostenlose RP6v2-M256-WIFI Module!&amp;quot; im [http://www.roboternetz.de/community/threads/58161-Kostenlose-RP6-M256-WIFI-Module-für-Testanwender! Roboternetz RP6 Forum]&lt;br /&gt;
* Ende der &amp;quot;Testaktion: Kostenlose RP6v2-M256-WIFI Module!&amp;quot; nach Abstimmung im [http://www.roboternetz.de/community/threads/58389-Wählt-Gewinner-der-RP6v2-M256-WIFI-Module Roboternetz RP6 Forum]&lt;br /&gt;
* Newsartikel zur RP6v2 M256 WiFi im [http://www.roboternetz.de/community/threads/58160-Funk-Erweiterungsmodul-für-den-RP6-und-RP6v2-Gratis-für-Tester! RoboterNETZ]&lt;br /&gt;
* Diskussions-Thread zur RP6v2 M256 WiFi im [http://www.roboternetz.de/community/threads/58162-Diskussion-zum-RP6-M256-WIFI-Modul Roboternetz RP6 Forum]&lt;br /&gt;
* [http://www.arexx.com/rp6 AREXX RP6 Startseite]&lt;br /&gt;
* [http://www.arexx.com/forum/viewforum.php?f=19 AREXX Support Forum]&lt;br /&gt;
&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191584/RP6-V2-ROBOTERSYSTEM RP6v2 bei CONRAD]&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191550/RP6-MEGA32-ERWEITERUNGSSATZ RP6 CONTROL M32 bei CONRAD]&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191563/RP6-CC-PRO-MEGA128-ERWEITERUNGSSATZ RP6 CCPRO M128 bei CONRAD]&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191609/Arexx-RP6-V2-Control-M256-WiFi-Kit-RP6v2-M256-WIFI RP6v2 M256 WiFi bei CONRAD]&lt;br /&gt;
&lt;br /&gt;
* [http://www.rovingnetworks.com/products/RN_171 WiFi-Modul RN-171] der RP6v2 M256 WiFi&lt;br /&gt;
&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/viewforum.php?f=49 Roboternetz RP6 Forum]&lt;br /&gt;
* &amp;quot;Geburt&amp;quot; des Wiki im RN-Forum: [http://www.roboternetz.de/community/threads/32793-RP6-Wiki-Artikel RP6-Wiki-Artikel]&lt;br /&gt;
&lt;br /&gt;
* [http://www.youtube.com/results?search_query=rp6 RP6 Videos]&lt;br /&gt;
* [http://de-de.facebook.com/pages/Robby-RP6/155118711202285 facebook]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Robotikeinstieg]]	 &lt;br /&gt;
[[Kategorie:Praxis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Autoren==&lt;br /&gt;
--[[Benutzer:Dirk|Dirk]] 12:52, 03. Jul 2012 (CET)&lt;/div&gt;</summary>
		<author><name>MaxWeb</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=RP6v2&amp;diff=20262</id>
		<title>RP6v2</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=RP6v2&amp;diff=20262"/>
				<updated>2012-07-10T15:12:52Z</updated>
		
		<summary type="html">&lt;p&gt;MaxWeb: /* Encoderplatine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:rp6v2_2.jpg|Der RP6v2]]&lt;br /&gt;
&lt;br /&gt;
Was bisher geschah:&lt;br /&gt;
&lt;br /&gt;
Mon, 27. Feb 2012 - Ankündigung des RP6v2&amp;lt;br/&amp;gt;&lt;br /&gt;
Don, 08. Mär 2012 - Auslieferungsbeginn des RP6v2&amp;lt;br/&amp;gt;&lt;br /&gt;
Sam, 17. Mär 2012 - Ankündigung der RP6v2 M256 WiFi&amp;lt;br/&amp;gt;&lt;br /&gt;
Mon, 11. Jun 2012 - Beginn der &amp;quot;Testaktion: Kostenlose RP6v2-M256-WIFI Module!&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
Die, 10. Jul 2012 - Ende der &amp;quot;Testaktion: Kostenlose RP6v2-M256-WIFI Module!&amp;quot; nach Abstimmung&amp;lt;br/&amp;gt;&lt;br /&gt;
Don, 05. Jul 2012 - Auslieferungsbeginn der RP6v2 M256 WiFi (?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Allgemein==&lt;br /&gt;
Der RP6v2 ([http://www.conrad.de/ce/de/product/191584/RP6-V2-ROBOTERSYSTEM/ 191584]) wurde am 27.02.2012 von [[Benutzer:SlyD|SlyD]] angekündigt (siehe Weblinks!). Er ist eine leicht verbesserte Version des [[RP6]]. Der RP6v2 ist softwarekompatibel zum RP6. '''Alle Erweiterungs-Module können auch mit dem RP6v2 eingesetzt werden.'''&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel beschreibt die Grundlagen zum RP6v2, '''sofern sie vom RP6 abweichen''', und die Grundlagen und Programmierung seiner zukünftigen Erweiterungs-Module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Eigenschaften==&lt;br /&gt;
Laut Ankündigung haben sich beim RP6v2 folgende Details gegenüber dem RP6 geändert:&lt;br /&gt;
* Neue Drehgeber&lt;br /&gt;
** Justierung dank neuer Sensortechnik üblicherweise nicht mehr erforderlich&lt;br /&gt;
** leicht zugängliches und deutlich größeres Potentiometer&lt;br /&gt;
** Potis nur noch zur Feinjustierung erforderlich&lt;br /&gt;
* Zusätzliche Steckverbinder (im RP6 schon seit 2010 verbaut)&lt;br /&gt;
** vom Mainboard zu den Drehgebern&lt;br /&gt;
** vom Mainboard zu den Motoren&lt;br /&gt;
* Neue Anschlüsse (Steckverbinder / Stiftleisten)&lt;br /&gt;
** 2 3-polige ADC Anschlüsse mit VDD/GND inkl. zusätzlichem Stützkondensator&lt;br /&gt;
** 2 4-polige VDD Anschlüsse (je 2x +5V und 2x GND)&lt;br /&gt;
** 1 3-poliger +UB Anschluß (1x +UB, 2x GND)&lt;br /&gt;
** 1 5-polige Stiftleiste für den I2C Bus und VDD/GND&lt;br /&gt;
** 1 8-poliger EXT Steckverbinder (JST-Wannenstecker)&lt;br /&gt;
** 2 4-polige Steckverbinder (LIO1/LIO2) für die I/O-Pins von 4 LEDs und VDD/GND&lt;br /&gt;
* Hauptsicherung&lt;br /&gt;
** von 2,5A auf 3,15A erhöht&lt;br /&gt;
* Motortreiber&lt;br /&gt;
** leistungsfähigere und robustere MOSFETs&lt;br /&gt;
* Experimentierplatine&lt;br /&gt;
** gehört nicht mehr zum Lieferumfang&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Technische Änderungen==&lt;br /&gt;
Der RP6v2 weist einige Detail-Änderungen gegenüber der Vorversion auf. '''Diese Änderungen sind für die Nutzung und Programmierung des RP6v2 weitgehend irrelevant.'''&lt;br /&gt;
&lt;br /&gt;
Fast alle passiven SMD-Bauteile sind jetzt in Bauform 0603 bestückt (Ausnahmen: R6 (SP2 C2: R6), Induktivitäten und größere Kondensatoren).&lt;br /&gt;
Im Text gibt es Verweise auf den Schaltplan des RP6v2 (RP6v2_MAINBOARD.pdf) in der Form: (SP2 B1: Bauteil). Dies bedeutet, dass man das Bauteil auf Blatt 2 des RP6v2-Schaltplans im Feld B1 finden kann.&lt;br /&gt;
&lt;br /&gt;
===Mainboard===&lt;br /&gt;
* C14 (SP2 A3: C14) -&amp;gt; Liegt jetzt an VDD (parallel u.a. zu C6..C10)&lt;br /&gt;
* C26 (SP2 A1: C26) -&amp;gt; Jetzt bestückt mit Elko 220uF/16V (laut SP: 470uF/16V!)&lt;br /&gt;
* C29 (SP2 E1: C29) -&amp;gt; Jetzt bestückt mit SMD Kondensator 10uF&lt;br /&gt;
* IO3/IO4 Bestückungsaufdruck geändert in IO4/IO5 (Stecker LIO2)&lt;br /&gt;
* UBAT Bestückungsaufdruck geändert in UBAT_SENSE&lt;br /&gt;
* F2.5A Bestückungsaufdruck geändert in F3.0A (Feinsicherung flink 3,0A)&lt;br /&gt;
* Trennstelle +UB Sensor (siehe Abschnitt 6.4.6 [[RP6#.2BUB_Sensor]] des RP6-Artikels!) existiert beim RP6v2 nicht mehr&lt;br /&gt;
* Als Motortreiber (SP3 BCD23: Q1..Q4) werden anstelle von IRF7309 (ID 3,0A; PD 1,4W) die leistungsfähigeren und ESD-geschützten Typen SP8M3 (ID 4,5A; PD 2W; Schutzdiode) verwendet&lt;br /&gt;
&lt;br /&gt;
===Encoderplatine===&lt;br /&gt;
Die Encoder sind mittlerweile auch einzeln unter der Conrad-Bestellnummer ''' 191625 - 62''' verfügbar.&lt;br /&gt;
Schaltung siehe Datei RP6v2_ENCODERS.pdf!&lt;br /&gt;
* Jetzt mit Operationsverstärker IC2 (MCP6001U) anstelle eines Transistors&lt;br /&gt;
* Größeres Potentiometer R2 (200kOhm)&lt;br /&gt;
&lt;br /&gt;
===USB-Interface===&lt;br /&gt;
Schaltung siehe Datei RP6v2_USB_INTERFACE.pdf!&lt;br /&gt;
* C2  -&amp;gt; Jetzt bestückt mit SMD Kondensator 10uF&lt;br /&gt;
* C5  -&amp;gt; Neuer Blockkondensator 100nF an VCCIO von IC1&lt;br /&gt;
&lt;br /&gt;
===Steckverbindungen und Stiftleisten===&lt;br /&gt;
&lt;br /&gt;
====Motoren====&lt;br /&gt;
[[Bild:RP6v2_Motorstecker.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Beim RP6v2 sind die beiden Motorkabel mit 2-poligen Winkelsteckern RM 7,5mm an das Mainboard angeschlossen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Encoder====&lt;br /&gt;
[[Bild:RP6v2_Encoderstecker.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Beim RP6v2 sind die Encoder mit einem 6-poligen Winkelstecker RM 2,54mm an das Mainboard angeschlossen.&lt;br /&gt;
&lt;br /&gt;
Auch die 3-polige Verbindung zu den beiden Encoder-Platinen ist steckbar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====LIO1/LIO2====&lt;br /&gt;
[[Bild:RP6v2_LIO12.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Beim RP6 waren die Anschlüsse der Status-LEDs SL1,2 und SL4,5 ([[RP6#IO1..IO4]]) einzeln auf dem Mainboard zu kontaktieren.&lt;br /&gt;
&lt;br /&gt;
Beim RP6v2 gibt es zwei 4-polige Stiftleisten (LIO1, LIO2). Sie führen an den Pins 1 und 2 +5V und GND.&lt;br /&gt;
&lt;br /&gt;
An den Pins 3 und 4 finden sich die Anschlüsse von IO2, IO1 (LIO1) bzw. IO4, IO5 (LIO2).&lt;br /&gt;
&lt;br /&gt;
Bitte beachten: '''Der Bestückungsaufdruck IO4, IO5 des RP6v2 bezeichnet die selben Anschlüsse, wie beim RP6 IO3, IO4!'''&lt;br /&gt;
&lt;br /&gt;
Es handelt sich in beiden Fällen um die Anschlüsse der Status-LEDs SL4 (PB7) und SL5 (PB1).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====ADC0/ADC1====&lt;br /&gt;
[[Bild:RP6v2_ADC01.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Beim RP6 waren die 3-poligen Anschlüsse von ADC0 und ADC1 ([[RP6#Analoge_Sensoren_an_ADC0.2F1]]) nicht mit Stiftleisten bestückt.&lt;br /&gt;
&lt;br /&gt;
Dies ist jetzt beim RP6v2 der Fall,- zusätzlich ist auch C26 (SP2 A1: C26) bestückt.&lt;br /&gt;
&lt;br /&gt;
Damit können analoge Sensoren direkt angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====I2C/+UB/+5V====&lt;br /&gt;
[[Bild:RP6v2_I2CUB5V.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Die beim RP6 vorhandene 5-polige I2C-Schnittstelle ([[RP6#I2C-Schnittstelle]]) findet sich (jetzt mit Stiftleiste bestückt) genau so auch beim RP6v2.&lt;br /&gt;
&lt;br /&gt;
Bitte beachten: '''Die Anordnung der Pins auf dem Mainboard ist beim RP6v2 umgekehrt wie beim RP6!'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beim RP6 gab es (nicht mit Stiftleisten bestückte) Anschlüsse für VDD und +UB ([[RP6#VDD.2FGND.2F.2BUB_Anschlu.C3.9F]]).&lt;br /&gt;
&lt;br /&gt;
Beim RP6v2 gibt es jetzt drei Stiftleisten für +UB, +5V (VDD) und GND:&lt;br /&gt;
* Eine 3-polige Stiftleiste mit GND, +UB, GND&lt;br /&gt;
* Zwei 4-polige Stiftleisten jeweils mit GND, +5V, +5V, GND&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====EXT====&lt;br /&gt;
[[Bild:RP6v2_EXT.JPG|thumb]]&lt;br /&gt;
&lt;br /&gt;
Beim RP6 war keine Stiftleiste für den 8-poligen EXT Anschluß bestückt.&lt;br /&gt;
&lt;br /&gt;
Beim RP6v2 ist jetzt an dieser Stelle ein Wannenstecker vorhanden, in den auch Steckbuchsen (RM 2,54) gesteckt werden können.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beschreibung des EXT Anschlusses: [[RP6#EXT_Anschlu.C3.9F]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erweiterungs-Module==&lt;br /&gt;
&lt;br /&gt;
===RP6v2 M256 WiFi Platine===&lt;br /&gt;
[[Bild:RP6v2_M256_WIFI.JPG|Die RP6v2 M256 WiFi]]&lt;br /&gt;
&lt;br /&gt;
Die RP6v2 M256 WiFi Zusatzplatine wurde am 17.03.2012 von [[Benutzer:SlyD|SlyD]] angekündigt (siehe Weblink!).&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Laut Ankündigung bietet die RP6v2 M256 WiFi:&lt;br /&gt;
* Atmel ATmega2560 Mikrocontroller&lt;br /&gt;
** 256kB Flash ROM&lt;br /&gt;
** 8kB SRAM&lt;br /&gt;
** 4kB EEPROM&lt;br /&gt;
** 16MHz Taktfrequenz&lt;br /&gt;
** 6 Hardware Timer und 86 I/O Ports&lt;br /&gt;
** Bis zu 16 A/D Wandler Kanäle (10 Bit Auflösung)&lt;br /&gt;
** 12 16 Bit Hardware PWMs&lt;br /&gt;
** 2 USART/SPI Ports&lt;br /&gt;
* Energieeffizientes 802.11g WLAN Modul&lt;br /&gt;
** Telemetriedaten übertragen&lt;br /&gt;
** Roboter vom PC aus fernsteuern&lt;br /&gt;
** Neue Programme drahtlos per WLAN in den Mikrocontroller laden&lt;br /&gt;
** Bootloader nachträglich erweitern&lt;br /&gt;
** Einstellung des WLAN Moduls über das RP6 USB Interface mit dem RobotLoader 2.x&lt;br /&gt;
** Änderung der Einstellungen über eine Netzwerkverbindung oder mit dem eigenen Mikrocontrollerprogramm&lt;br /&gt;
** Eigener Prozessor (entlastet den ATmega)&lt;br /&gt;
** Funktioniert mit jedem Standard WLAN Accesspoint/Router&lt;br /&gt;
** Kann als transparente serielle Schnittstelle arbeiten&lt;br /&gt;
** Kann vom PC aus per TCP/IP angesprochen werden&lt;br /&gt;
** 10cm 2.4GHz Antenne mit RP-SMA Anschluß&lt;br /&gt;
* Sonstige Ausstattung&lt;br /&gt;
** 8 Bit Display Port&lt;br /&gt;
** I2C Bus&lt;br /&gt;
** microSD Kartenslot&lt;br /&gt;
** 7 Status LEDs&lt;br /&gt;
** 2 Eingabetaster&lt;br /&gt;
** ISP Anschluß&lt;br /&gt;
** 4 WLAN ADC Kanäle&lt;br /&gt;
** AREF 3,3 und 5V&lt;br /&gt;
&lt;br /&gt;
====Technische Daten====&lt;br /&gt;
{|  {{Blauetabelle}} &lt;br /&gt;
|'''Mikrocontroller:'''&lt;br /&gt;
|AVR ATmega2560&lt;br /&gt;
|-&lt;br /&gt;
|'''Speicher:'''&lt;br /&gt;
|256 kB [[Flash]]-Speicher&amp;lt;br/&amp;gt;&lt;br /&gt;
8 kB SRAM&amp;lt;br/&amp;gt; &lt;br /&gt;
4 kB [[EEPROM]]&amp;lt;br/&amp;gt;&lt;br /&gt;
? GB microSD Speicherkarte&lt;br /&gt;
|-&lt;br /&gt;
|'''Programmierung:'''&lt;br /&gt;
|Über [[Bootloader]], belegt ca. ? kB des Flash-Speichers&amp;lt;br/&amp;gt;&lt;br /&gt;
Drahtlos über WLAN&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Sensoren:'''&lt;br /&gt;
|2 Eingabetaster&amp;lt;br/&amp;gt;&lt;br /&gt;
4 WLAN ADC Kanäle&amp;lt;br/&amp;gt;&lt;br /&gt;
60 GP I/O Ports, davon bis 16 AD-Wandler (10-bit)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Aktoren:'''&lt;br /&gt;
|7 Status LEDs&amp;lt;br/&amp;gt;&lt;br /&gt;
1 LC-Display-Port&amp;lt;br/&amp;gt;&lt;br /&gt;
802.11g WLAN Modul&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Abmessungen:'''&lt;br /&gt;
|(L &amp;amp;times; B &amp;amp;times; H) 112 &amp;amp;times; 90 &amp;amp;times; ? mm&lt;br /&gt;
|-&lt;br /&gt;
|'''Ausführung:'''&lt;br /&gt;
|Fertig aufgebautes Erweiterungsmodul&lt;br /&gt;
|-&lt;br /&gt;
|'''Stromversorgung:'''&lt;br /&gt;
|6 AA NiMH Akkus (über die RP6v2 Base)&lt;br /&gt;
|-&lt;br /&gt;
|'''Hersteller:'''&lt;br /&gt;
|Arexx Niederlande&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Umbau-Optionen====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zubehör und Ersatzteile==&lt;br /&gt;
Über die Zubehör- und Ersatzteile informiert der Artikel [[RP6#Zubehör und Ersatzteile]].&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus sind bei [http://www.conrad.de/ce/ CONRAD] für den RP6v2 erhältlich:&lt;br /&gt;
* Arexx RP6v2 Drehgeber-Satz RP6-ENCv2 [http://www.conrad.de/ce/de/product/191625/RP6-DREHGEBER-SATZ 191625]&lt;br /&gt;
* Arexx RP6 USB-Interface RP6V2-TRANS [http://www.conrad.de/ce/de/product/191638/RP6-V2-PROGRAMMIER-ADAPTER 191638]&lt;br /&gt;
&lt;br /&gt;
===RP6v2 Drehgeber-Satz RP6-ENCv2===&lt;br /&gt;
&lt;br /&gt;
===RP6 USB-Interface RP6V2-TRANS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Programmierung==&lt;br /&gt;
===RobotLoader===&lt;br /&gt;
====Loader Versionen====&lt;br /&gt;
Hier eine Tabelle der (mir) bekannten RobotLoader Versionen für die RP6v2 Base, CONTROL M32 und ab Version 2.0 auch für die M256 WiFi:&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |ZIP-Datum&lt;br /&gt;
 |Version&lt;br /&gt;
 |Bemerkungen&lt;br /&gt;
 |Examples&lt;br /&gt;
 |-&lt;br /&gt;
 |12.07.2010&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RobotLoader_20100712.zip 1.5h]&lt;br /&gt;
 |Auch für die RP6 Base, für Roboterarme und Caterpillar&lt;br /&gt;
 |ab 16.10.2007&lt;br /&gt;
 |-&lt;br /&gt;
 |23.02.2012&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RobotLoader_20120223.zip 2.0 BETA]&lt;br /&gt;
 |Testversion! Ab v2.0 auch für die RP6v2 M256 WiFi Platine&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |05.06.2012&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RobotLoader_20120605.zip 2.3a]&lt;br /&gt;
 |Testversion! Siehe auch [http://www.roboternetz.de/community/threads/58168-RobotLoader-2-3a hier]!&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |18.06.2012&lt;br /&gt;
 |[http://www.arexx.com/rp6/downloads/RobotLoader_20120618.zip 2.3b]&lt;br /&gt;
 |Über Kommandozeile nutzbar, siehe auch [http://www.roboternetz.de/community/threads/58168-RobotLoader-2-3a hier]!&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Projekte====&lt;br /&gt;
* Der RobotLoader 2.3a und [http://www.rn-wissen.de/index.php/LunaAVR LunaAVR] im [http://www.roboternetz.de/community/threads/58168-RobotLoader-2-3a?p=551535&amp;amp;viewfull=1#post551535 Roboternetz RP6 Forum] und im [http://forum.myluna.de/viewtopic.php?f=3&amp;amp;t=24#p94 LunaAVR Forum]&lt;br /&gt;
&lt;br /&gt;
===RP6v2===&lt;br /&gt;
'''Der RP6v2 ([http://www.conrad.de/ce/de/product/191584/RP6-V2-ROBOTERSYSTEM/ 191584]) ist softwarekompatibel zum RP6.'''&lt;br /&gt;
&lt;br /&gt;
Zur Programmierung des [[RP6]] und des RP6v2 gibt es einen eigenen Artikel: [[RP6 - Programmierung]]&lt;br /&gt;
&lt;br /&gt;
===RP6v2 M256 WiFi Platine===&lt;br /&gt;
====Demo-Programmme====&lt;br /&gt;
====Library====&lt;br /&gt;
=====Versionen=====&lt;br /&gt;
=====Bug-Report=====&lt;br /&gt;
=====Konfiguration=====&lt;br /&gt;
=====Port-Verwendung=====&lt;br /&gt;
=====Timer-Nutzung=====&lt;br /&gt;
====Projekte====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erfahrungsberichte==&lt;br /&gt;
&lt;br /&gt;
...in Arbeit...(kann aber gerne ergänzt werden)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[RP6]]&lt;br /&gt;
* [[RP6 - Programmierung]]&lt;br /&gt;
* [[RP6 Kamera - Mitmach-Projekt]]&lt;br /&gt;
* [[RP6v2 I2C-Portexpander]]&lt;br /&gt;
* [[CCRP5]]&lt;br /&gt;
* [[Yeti]]&lt;br /&gt;
* [[Asuro]]&lt;br /&gt;
* [[C't-Bot]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
&lt;br /&gt;
* Ankündigung des RP6v2 im [http://www.roboternetz.de/community/threads/56964-NEWS-RP6v2-die-neue-Version-2-des-RP6-Robot-Systems RoboterNETZ] und im [http://www.arexx.com/forum/viewtopic.php?f=19&amp;amp;t=1778 AREXX Support Forum]&lt;br /&gt;
* Ankündigung der RP6v2 M256 WiFi und der Testaktion im [http://www.arexx.com/forum/viewtopic.php?f=19&amp;amp;t=1797 AREXX Support Forum]&lt;br /&gt;
* Beginn der &amp;quot;Testaktion: Kostenlose RP6v2-M256-WIFI Module!&amp;quot; im [http://www.roboternetz.de/community/threads/58161-Kostenlose-RP6-M256-WIFI-Module-für-Testanwender! Roboternetz RP6 Forum]&lt;br /&gt;
* Ende der &amp;quot;Testaktion: Kostenlose RP6v2-M256-WIFI Module!&amp;quot; nach Abstimmung im [http://www.roboternetz.de/community/threads/58389-Wählt-Gewinner-der-RP6v2-M256-WIFI-Module Roboternetz RP6 Forum]&lt;br /&gt;
* Newsartikel zur RP6v2 M256 WiFi im [http://www.roboternetz.de/community/threads/58160-Funk-Erweiterungsmodul-für-den-RP6-und-RP6v2-Gratis-für-Tester! RoboterNETZ]&lt;br /&gt;
* Diskussions-Thread zur RP6v2 M256 WiFi im [http://www.roboternetz.de/community/threads/58162-Diskussion-zum-RP6-M256-WIFI-Modul Roboternetz RP6 Forum]&lt;br /&gt;
* [http://www.arexx.com/rp6 AREXX RP6 Startseite]&lt;br /&gt;
* [http://www.arexx.com/forum/viewforum.php?f=19 AREXX Support Forum]&lt;br /&gt;
&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191584/RP6-V2-ROBOTERSYSTEM RP6v2 bei CONRAD]&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191550/RP6-MEGA32-ERWEITERUNGSSATZ RP6 CONTROL M32 bei CONRAD]&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191563/RP6-CC-PRO-MEGA128-ERWEITERUNGSSATZ RP6 CCPRO M128 bei CONRAD]&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191609/Arexx-RP6-V2-Control-M256-WiFi-Kit-RP6v2-M256-WIFI RP6v2 M256 WiFi bei CONRAD]&lt;br /&gt;
&lt;br /&gt;
* [http://www.rovingnetworks.com/products/RN_171 WiFi-Modul RN-171] der RP6v2 M256 WiFi&lt;br /&gt;
&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/viewforum.php?f=49 Roboternetz RP6 Forum]&lt;br /&gt;
* &amp;quot;Geburt&amp;quot; des Wiki im RN-Forum: [http://www.roboternetz.de/community/threads/32793-RP6-Wiki-Artikel RP6-Wiki-Artikel]&lt;br /&gt;
&lt;br /&gt;
* [http://www.youtube.com/results?search_query=rp6 RP6 Videos]&lt;br /&gt;
* [http://de-de.facebook.com/pages/Robby-RP6/155118711202285 facebook]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Robotikeinstieg]]	 &lt;br /&gt;
[[Kategorie:Praxis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Autoren==&lt;br /&gt;
--[[Benutzer:Dirk|Dirk]] 12:52, 03. Jul 2012 (CET)&lt;/div&gt;</summary>
		<author><name>MaxWeb</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Diskussion:RP6&amp;diff=20261</id>
		<title>Diskussion:RP6</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Diskussion:RP6&amp;diff=20261"/>
				<updated>2012-07-10T14:36:33Z</updated>
		
		<summary type="html">&lt;p&gt;MaxWeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Habe schnell mal die Conrad-Bestellnummern der Ersatzteile hinzugefügt&lt;br /&gt;
--[[Benutzer:MaxWeb|MaxWeb]] 16:36, 10. Jul 2012 (CEST)&lt;/div&gt;</summary>
		<author><name>MaxWeb</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=RP6&amp;diff=20260</id>
		<title>RP6</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=RP6&amp;diff=20260"/>
				<updated>2012-07-10T14:34:53Z</updated>
		
		<summary type="html">&lt;p&gt;MaxWeb: /* Ersatzraupen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:Overview de.gif|Der RP6]]&lt;br /&gt;
&lt;br /&gt;
Was bisher geschah:&lt;br /&gt;
&lt;br /&gt;
Fre, 08. Jun 2007 - Ankündigung des RP6 und der RP6 CONTROL M32&amp;lt;br/&amp;gt;&lt;br /&gt;
Mon, 02. Jul 2007 23:00 - Benachrichtigung der Tester&amp;lt;br/&amp;gt;&lt;br /&gt;
Die, 03. Jul 2007 15:00 - Bereitstellung der Dokumentation&amp;lt;br/&amp;gt;&lt;br /&gt;
Don, 05. Jul 2007 14:30 - Bereitstellung der Schaltungsunterlagen&amp;lt;br/&amp;gt;&lt;br /&gt;
Son, 08. Jul 2007 16:00 - Nachricht über den Versand der RP6&amp;lt;br/&amp;gt;&lt;br /&gt;
Mon, 09. Jul 2007 00:15 - Bereitstellung der Library und der Beispielprogramme&amp;lt;br/&amp;gt;&lt;br /&gt;
Die, 10. Jul 2007 - Eintreffen der RP6 bei den Testern&amp;lt;br/&amp;gt;&lt;br /&gt;
Mon, 16. Jul 2007 - Auslieferungsbeginn des RP6&amp;lt;br/&amp;gt;&lt;br /&gt;
Fre, 24. Apr 2009 - Ankündigung der RP6 CCPRO M128 (Auslieferung schon ab Mitte April 2009)&amp;lt;br/&amp;gt;&lt;br /&gt;
Mon, 27. Feb 2012 - Ankündigung des RP6v2&amp;lt;br/&amp;gt;&lt;br /&gt;
Don, 08. Mär 2012 - Auslieferungsbeginn des RP6v2&amp;lt;br/&amp;gt;&lt;br /&gt;
Sam, 17. Mär 2012 - Ankündigung der RP6v2 M256 WiFi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Allgemein==  [[Bild:DSC03448.JPG|thumb|RP6 mit Erweiterungsboard]] [[Bild:RP6_Lieferumfang.jpg|thumb|RP6 im Lieferumfang]]&lt;br /&gt;
Der von Arexx entwickelte RP6 ist ein autonomes Raupenfahrzeug, das nicht nur für Schüler und Studenten zum Einstieg in das Gebiet Robotik sondern auch für Fortgeschrittene Elektroniker und Bastler sehr gut geeignet ist, da das System für selbstentworfene Erweiterungen ausgelegt ist. Der RP6 wird von einem, unter Roboterentwicklern beliebten, AVR Microcontroller von Atmel gesteuert und hat Lichtsensoren in Form von zwei LDRs, 2 Bumper an der Stoßstange, 6 Status LEDs, Sensoren zur Überwachung der Akkuspannung, Drehgeber mit 625 CPR, ein Infrarot Sensor zur Hinderniserkennung und Kommunikation und Motorstromsensoren zur Verfügung. Zudem liegt dem Roboter eine umfangreiche Anleitung, inklusive einem kleinen C-Crashkurs, ein USB-Interface zum Anschluss an den PC und ein USB Kabel bei.&lt;br /&gt;
&lt;br /&gt;
In diesem Artikel geht es um die Grundlagen des RP6. Zur Programmierung des RP6 gibt es eine eigene Seite: [[RP6 - Programmierung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Technische Daten==&lt;br /&gt;
{|  {{Blauetabelle}} &lt;br /&gt;
|'''Mikrocontroller:'''&lt;br /&gt;
|AVR [[ATmega32]]&lt;br /&gt;
|-&lt;br /&gt;
|'''Speicher:'''&lt;br /&gt;
|32 kB [[Flash]]-Speicher, davon 1 kB bereits vom Bootloader belegt&amp;lt;br/&amp;gt;&lt;br /&gt;
2 kB RAM&amp;lt;br/&amp;gt; &lt;br /&gt;
1 kB [[EEPROM]]&lt;br /&gt;
|-&lt;br /&gt;
|'''Programmierung:'''&lt;br /&gt;
|Über AVR-[[Bootloader]], belegt ca. 1 kB des Flash-Speichers&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Sensoren:'''&lt;br /&gt;
|2 [[Sensorarten#Helligkeit|Lichtsensoren (LDR)]]&amp;lt;br/&amp;gt;&lt;br /&gt;
1 [[Sensorarten#Helligkeit|Infrarot (ACS - Anti Collision System)]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2 [[Sensorarten#Bumpers|Bumper]] &amp;lt;br/&amp;gt; &lt;br /&gt;
2 [[Sensorarten#Incremental-Geber|Drehgeber (Encoder)]]&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Aktoren:'''&lt;br /&gt;
|2 Motoren&amp;lt;br/&amp;gt;&lt;br /&gt;
6 Status-LEDs&amp;lt;br/&amp;gt;&lt;br /&gt;
1 IR-Sender&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Abmessungen:'''&lt;br /&gt;
|(L &amp;amp;times; B &amp;amp;times; H) 172 &amp;amp;times; 128 &amp;amp;times; 50 mm&lt;br /&gt;
|-&lt;br /&gt;
|'''Ausführung:'''&lt;br /&gt;
|Fertig aufgebauter Roboter&lt;br /&gt;
|-&lt;br /&gt;
|'''Stromversorgung:'''&lt;br /&gt;
|6 AA NiMH Akkus&lt;br /&gt;
|-&lt;br /&gt;
|'''Hersteller:'''&lt;br /&gt;
|Arexx Niederlande&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Mechanik==&lt;br /&gt;
===Beschreibung===&lt;br /&gt;
&lt;br /&gt;
===Sensoren===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Encoder====&lt;br /&gt;
&lt;br /&gt;
Die Drehgeber sind an den Getrieben der Motoren zur Drehzahlmessung angebracht. Es handelt sich dabei um Reflexlichtschranken, die auf Codierscheiben mit je 18 weissen und 18 schwarzen Segmenten ausgerichtet sind, also insgesamt 36 Segmente. Diese Codierscheiben sind wiederum an je eines der Zahnräder der beiden Getriebe geklebt worden. Wenn es sich dreht, wandern die einzelnen Segmente an der Reflexlichtschranke vorbei. Die weissen Segmente reflektieren das Infrarotlicht, die schwarzen Segmente nur wenig. Jedes der zwei mittleren Stufenzahnräder des Getriebes hat 50 Zähne auf dem großen, und 12 auf dem kleineren Zahnrad. Die Codierscheiben befinden sich auf dem Zahnrad neben dem Motor, also rechnet man:&lt;br /&gt;
50/12 * 50/12 =17.13/36; 17.13/36 * 36=625&lt;br /&gt;
Daher haben die Encoderscheiben auch Ihre 36 Segmente, denn das gibt eine schöne runde Zahl ohne gebrochenen Anteil. Die Drehgeber erzeugen also 625 Flanken pro Radumdrehung wobei jede Flanke einem Segment entspricht. Bei einem Raddurchmesser von ca. 50mm inkl. Raupenkette, ergibt sich rein rechnerisch ein Radumfang von ca. 157mm was 0.2512mm pro Zählschritt der Drehgeber entspricht. Da sich die Raupenketten aber fast immer etwas in den Untergrund eindrücken (bzw. auch selbst eingedrückt werden) kann man aber von 0.25mm pro Zählschritt ausgehen – meist ist es sogar etwas weniger, z.B. nur 0.24 oder 0.23mm. Das muss man durch abfahren von Teststrecken ermitteln, wie es im Anhang grob beschrieben ist. Sehr genau ist das allerdings durch Radschlupf (bzw. hier müssten wir eigentlich von „Kettenschlupf“ sprechen) und ähnlichen Dingen nicht - vor allem beim Rotieren auf der Stelle. Beim normalen Geradeausfahren ist dieser Fehler klein, aber beim Rotieren kann er schnell sehr große Werte annehmen! Abweichungen muss man evtl. durch weitere Tests ermitteln und mit einkalkulieren. Das ist bei Raupenantrieben leider so – auch bei viel teureren und hochwertigeren Robotern. Dafür hat man aber den Vorteil, dass der Roboter mit Raupenantrieb recht geländegängig ist im Vergleich zu Robotern mit normalem Differentialantrieb mit zwei Antriebsrädern und Stützrad. Kleinere Hindernisse und Rampen kann er meist problemlos überwinden.&lt;br /&gt;
Dabei sind die Encoder sehr nützlich, denn man kann die Geschwindigkeit gut einregeln, egal wie der Untergrund und die Motorbelastung gerade aussieht. Bei gemessenen 50 Segmenten pro Sekunde liegt die Geschwindigkeit bei 1.25 cm/s, sofern wir von 0.25mm pro Zählschritt ausgehen. Etwa 50 Segmente pro Sekunde ist auch die geringste gerade noch regelbare Geschwindigkeit (das variiert aber etwas von Roboter zu Roboter). Bei 1200 Segmenten pro Sekunde wären es die maximal möglichen 30 cm/s (bei 0.25mm Auflösung, bei 0.23 sind es 27.6 cm/s). Standardmäßig begrenzt die Funktionsbibliothek das aber auf 1000 Flanken pro Sekunde. Die maximale Geschwindigkeit ist vom Ladezustand der Akkus abhängig – daher wären 30cm/s nicht besonders lange haltbar. Außerdem erhöht sich die Lebensdauer der Getriebe und Motoren je langsamer man fährt! Wenn der Roboter 4000 Segmente gezählt hat, ist er übrigens etwa einen Meter weit gefahren. Aber wie schon gesagt, gilt das natürlich nur für genau 0.25mm Auflösung. Ohne Kalibrierung hat man hier immer mehr oder weniger starke Abweichungen. Wem es nicht auf jeden mm ankommt, braucht nichts zu kalibrieren und kann einfach von 0.25mm oder besser 0.24mm ausgehen!&lt;br /&gt;
&lt;br /&gt;
====Stoßstangensensoren====&lt;br /&gt;
&lt;br /&gt;
Vorn am Roboter sind zwei Mikroschalter mit langem Schalthebel auf einer separaten&lt;br /&gt;
Platine untergebracht, die etwas vor der anderen Sensorplatine liegt. Dadurch werden&lt;br /&gt;
die IR LEDs auf der Sensorplatine geschützt und können nicht so leicht verbiegen&lt;br /&gt;
wenn der Roboter mal gegen ein Hindernis fährt. Die Stoßstange kann man auch abmontieren und z.B. gegen eine Schuss- oder Sammelvorrichtung für Bälle o.ä. ersetzen wenn man möchte.&lt;br /&gt;
&lt;br /&gt;
====Lichtsensoren====&lt;br /&gt;
&lt;br /&gt;
Vorne auf der kleinen Sensorplatine des Roboters sind zwei sog.&lt;br /&gt;
LDRs (=&amp;quot;Light Dependant Resistors&amp;quot; also lichtabhängige Widerstände)&lt;br /&gt;
platziert und nach links bzw. rechts ausgerichtet. Zwischen&lt;br /&gt;
den beiden Sensoren ist noch eine kleine schwarze&lt;br /&gt;
„Trennwand“ damit das Licht aus einer Richtung möglichst nur&lt;br /&gt;
einen der Sensoren erreicht. Sie bilden zusammen mit je einem&lt;br /&gt;
normalen Widerstand wie beim Batteriesensor einen Spannungsteiler – hier allerdings&lt;br /&gt;
um das Umgebungslicht zu messen.&lt;br /&gt;
&lt;br /&gt;
====Anti Collision System====&lt;br /&gt;
&lt;br /&gt;
Der aus Softwaresicht komplexeste Sensor des RP6 ist das ACS - das&lt;br /&gt;
„Anti Collision System“ (engl. für Anti Kollisions System)! Es besteht&lt;br /&gt;
aus einem IR Empfänger (s. Abb.) und zwei vorne auf der Sensorplatine&lt;br /&gt;
links und rechts angebrachten IR LEDs.&lt;br /&gt;
Da es je eine IR LED links und rechts gibt, kann das ACS grob unterscheiden ob sich&lt;br /&gt;
das Objekt links, rechts oder mittig vor dem Roboter befindet.&lt;br /&gt;
Man kann zusätzlich noch die Stromstärke mit der die beiden IR LEDs gepulst werden&lt;br /&gt;
in drei Stufen einstellen. Das ACS funktioniert aber auch in der höchsten Stufe nicht&lt;br /&gt;
mit allen Objekten immer zuverlässig, denn es kommt auf die Beschaffenheit der&lt;br /&gt;
Oberfläche des jeweiligen Objekts an! Ein schwarzes Objekt reflektiert das IR Licht natürlich&lt;br /&gt;
viel schlechter als ein weisses Objekt und ein kantiges und spiegelndes Objekt&lt;br /&gt;
könnte das IR Licht hauptsächlich in eine bestimme Richtung reflektieren. Die Reichweite&lt;br /&gt;
ist also immer vom jeweiligen Objekt abhängig! Das ist eine prinzipielle Schwäche&lt;br /&gt;
von so gut wie allen IR Sensoren (jedenfalls in dieser Preisklasse).&lt;br /&gt;
Trotzdem werden die meisten Hindernisse zuverlässig erkannt und können umfahren&lt;br /&gt;
werden. Falls das mal nicht klappt, gibt es noch die Stoßstange mit den Tastsensoren&lt;br /&gt;
und falls auch die nicht richtig getroffen werden, kann der Roboter noch mit den Motorstromsensoren&lt;br /&gt;
oder den Encodern erkennen, ob die Motoren blockieren (s.u.)!&lt;br /&gt;
Wem das nicht reicht, der könnte zusätzlich z.B. noch Ultraschallsensoren anbringen...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Erweiterungssystem===&lt;br /&gt;
Auf dem Mainboard sind 22 freie 3,2mm Löcher vorhanden (im Chassis weitere 16), auf denen die Erweiterungsmodule symmetrisch vorne und hinten gestapelt werden können. Weil der Stromverbrauch durch mehr Module steigt, ist es sinnvoll nur insgesamt 6-8 Module auf dem Roboter zu stapeln. Auf dem Mainboard selbst sind noch 6 kleine Erweiterungsflächen verfügbar (plus 2 sehr kleine auf der Bumperplatine).&lt;br /&gt;
&lt;br /&gt;
===Antrieb===&lt;br /&gt;
&lt;br /&gt;
Die 7,2 VDC Motoren sind im Chassis eingebaut und werden mithilfe der H-Brücken gesteuert. Die maximale Geschwindigkeit liegt bei 25cm/s, das kann je nach Akkuspannung aber variieren. Ohne Softwarebegrenzung sind sogar 30cm/s möglich, dadurch verringert sich aber die Lebensdauer der Motoren. Die maximale Steigung, die der RP6 bewältigen kann, ist 30%, ohne Bumperplatine 40%, das hängt aber auch vom Untergrund ab. Kleine Hindernisse wie Bücher und Stifte kann der RP6 problemlos überqueren. Die Achsen der Räder sind in selbstschmierenden Sinterlagern mit 4mm Durchmesser gelagert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Elektromechanik==&lt;br /&gt;
===Beschreibung===&lt;br /&gt;
===Odometrie===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Elektronik==&lt;br /&gt;
[[Bild:RP6 Block.jpg|thumb|Blockdiagramm]]&lt;br /&gt;
===Beschreibung===&lt;br /&gt;
&lt;br /&gt;
===Sensoren (SENSORS)===&lt;br /&gt;
&lt;br /&gt;
Die meisten Sensoren über die der Roboter verfügt, haben wir ja schon in anderen Abschnitten kurz genannt, wollen diese nun aber etwas detaillierter betrachten.&lt;br /&gt;
In dem Blockdiagramm sind einige der Sensoren nicht in dem blauen Bereich &amp;quot;Sensors&amp;quot; zu sehen, weil sie besser in andere Bereiche passen. Trotzdem zählen natürlich auch die Drehgeber (= “Encoder“), Motorstromsensoren und der Batteriespannungssensor zu den Sensoren und werden darum in diesem Abschnitt beschrieben!&lt;br /&gt;
&lt;br /&gt;
====Batteriespannungs-Sensor (Voltage Sensor)====&lt;br /&gt;
&lt;br /&gt;
Dieser &amp;quot;Sensor&amp;quot; ist eigentlich nur ein einfacher Spannungsteiler aus zwei Widerständen. Wir gehen davon aus, dass die Batterien insgesamt maximal 10V liefern können. 6 NiMH Akkus werden immer unterhalb davon bleiben. Die Referenzspannung des ADC, also die Spannung mit der er die gemessene Spannung vergleicht, beträgt 5V. Da auch die Betriebsspannung 5V beträgt, darf diese nicht überschritten werden. Also müssen wir die zu messende Spannung um die Hälfte herabsetzen! Dies geschieht über einen Spannungsteiler aus zwei Widerständen, der die Spannung an den Messbereich des ADCs anpasst. Der ADC löst mit 10 Bit auf (Wertebereich 0 bis 1023), was eine Auflösung von 10V/1024=9.765625mV ergibt. Ein Messwert von 512 entspricht hier also 5V und 1023 wären ungefähr 10V! Diese Grenzwerte sollten aber normalerweise nie erreicht werden! Das ist nicht besonders genau, da die Widerstände keineswegs Präzisionswiderstände sind. Abweichungen von einigen Prozent nach oben und unten sind möglich. Auch die Referenzspannung von 5V ist nicht ganz genau und kann bei normaler Belastung etwas variieren. Das stört hier nicht, denn wir brauchen ohnehin nur einen ungefähren Wert um festzustellen ob die Batterien sich langsam dem Ende nähern. Wer die Spannung genau messen will, braucht ein Multimeter um den Messfehler zu ermitteln und diesen dann in Software auszugleichen. Wenn man mit Fehlern leben kann, kann man die Spannung dank des günstigen Umrechnungsverhältnisses sogar direkt aus den ADC Werten ungefähr abschätzen: 720 entsprechen dann grob 7.2V, 700 etwa 7V und 650 wären etwa 6.5V. Bei einem konstanten Wert unter 560 kann man davon ausgehen, dass die Akkus fast leer sind.&lt;br /&gt;
&lt;br /&gt;
====Motorstrom====&lt;br /&gt;
[[Bild:RP6_MSS.jpg|thumb]]&lt;br /&gt;
Es befinden sich zwei Leistungswiderstände in den beiden Motorstromkreisen. Aus dem Ohm'schen Gesetz U=RxI folgt, dass sich die Spannung die an einem bestimmten Widerstand abfällt, proportional zum Strom verhält, der diesen durchfließt!&lt;br /&gt;
Damit die Spannungsabfälle an den Widerständen nicht zu groß werden, müssen die Widerstände klein gewählt werden. In unserem Fall haben Sie einen Wert von 0.1 Ohm&lt;br /&gt;
Die abfallende Spannung ist also nur sehr klein (0.1V bei einem Strom von 1A) und muss verstärkt werden bevor sie mit dem ADC gemessen werden kann. Das erledigt jeweils ein sog. Operationsverstärker (OPV). In der Schaltung des RP6 wird je Motorkanal ein OPV verwendet. Der Messbereich geht etwa bis 1.8A. Bei 1.8A fallen etwa 0.18V am Widerstand ab und es ergibt sich am Ausgang des OPV eine Spannung von etwa 4V. Mehr kann der verwendete OPV bei 5V Betriebsspannung nicht ausgeben:&lt;br /&gt;
&lt;br /&gt;
I = U / ((1 + (100k / 4,7k)) * 0,1)&lt;br /&gt;
&lt;br /&gt;
Die Leistungswiderstände haben eine Toleranz von 10%, die Widerstände am OPV 5%, also ist das alles nur sehr ungenau (Ungenauigkeiten im Bereich von etwa 270mA sind möglich wenn man die Sensoren nicht kalibriert!). Wir brauchen allerdings auch nur den ungefähren Wert um festzustellen ob die Motoren stark oder wenig belastet werden. So kann der Roboter gut blockierte oder gar defekte Motoren bzw. Drehgeber erkennen! Die DC-Motoren benötigen mehr Strom je stärker sie belastet werden (Drehmoment) und somit steigt der Strom sehr stark an wenn die Motoren blockiert sind. Das wird von der Robotersoftware zur Notabschaltung verwendet: wenn die Motoren dauerhaft mit hohem Strom betrieben würden, könnten diese sehr heiß werden und dadurch Schaden nehmen! Und wenn die Encoder mal ausfallen sollten – aus welchem Grund auch immer – kann auch das damit erkannt werden. Man würde dann eine Drehzahl von 0 messen. Lässt man die Motoren aber auf voller Kraft laufen und der Strom bleibt trotzdem klein (also sind die Ketten nicht blockiert!), kann man genau daraus schließen, dass entweder die Encoder, oder die Motoren ausgefallen sind (oder Encoder und Motorstromsensoren nicht funktionieren... das passiert z.B. wenn man vergessen hat diese vorher per Software einzuschalten).&lt;br /&gt;
&lt;br /&gt;
====Encoder====&lt;br /&gt;
[[Bild:RP6_ENCODER.jpg|thumb]]&lt;br /&gt;
Ganz anders als die letztgenannten Sensoren funktionieren die Drehgeber, die an den Getrieben der Motoren zur Drehzahlmessung angebracht sind. Es handelt sich dabei um Reflexlichtschranken, die auf Codierscheiben mit je 18 weissen und 18 schwarzen Segmenten ausgerichtet sind, also insgesamt 36 Segmente (s. Abb). Diese Codierscheiben sind wiederum an je eines der Zahnräder der beiden Getriebe geklebt worden. Wenn es sich dreht, wandern die einzelnen Segmente an der Reflexlichtschranke vorbei. Die weissen Segmente reflektieren das Infrarotlicht, die schwarzen Segmente nur wenig. Die Drehgeber erzeugen so zwar auch wie die anderen Sensoren ein analoges Signal, aber es wird digital interpretiert. Zunächst wird das Signal verstärkt und anschließend über einen sog. Schmitt Trigger in ein Rechtecksignal umgewandelt. Die Flanken dieses Signals, also die Wechsel von 5 auf 0V und umgekehrt, lösen jeweils ein Interrupt Ereignis aus und diese werden dann von der Software gezählt. So kann die zurückgelegte Wegstrecke gemessen und zusammen mit einem Timer zur Zeitmessung die Drehzahl und damit auch die Geschwindigkeit ermittelt werden. Die Ermittlung der Drehzahl ist auch Hauptanwendung der Encoder – nur mit den Encodern kann man die Drehzahl auf den gewünschten Sollwert einregeln. Ohne Regelung wäre die Drehzahl nämlich von der Akkuspannung, Belastung der Motoren usw. abhängig. Die hohe Auflösung ermöglicht es dabei, auch niedrige Geschwindigkeiten noch relativ genau einzuregeln. Jedes der zwei mittleren Stufenzahnräder des Getriebes hat 50 Zähne auf dem großen, und 12 auf dem kleineren Zahnrad (s. Abb). Die Codierscheiben befinden sich auf dem Zahnrad neben dem Motor, also rechnet man:&lt;br /&gt;
&lt;br /&gt;
50/12 * 50/12 =17.13/36; 17.13/36 * 36=625&lt;br /&gt;
&lt;br /&gt;
Daher haben die Encoderscheiben auch Ihre 36 Segmente, denn das gibt eine schöne runde Zahl ohne gebrochenen Anteil. Die Drehgeber erzeugen also 625 Flanken pro Radumdrehung wobei jede Flanke einem Segment entspricht. Bei einem Raddurchmesser von ca. 50mm inkl. Raupenkette, ergibt sich rein rechnerisch ein Radumfang von ca. 157mm was 0.2512mm pro Zählschritt der Drehgeber entspricht. Da sich die Raupenketten aber fast immer etwas in den Untergrund eindrücken (bzw. auch selbst eingedrückt werden) kann man aber von 0.25mm pro Zählschritt ausgehen – meist ist es sogar etwas weniger, z.B. nur 0.24 oder 0.23mm. Das muss man durch abfahren von Teststrecken ermitteln, wie es im Anhang grob beschrieben ist. Sehr genau ist das allerdings durch Radschlupf (bzw. hier müssten wir eigentlich von „Kettenschlupf“ sprechen) und ähnlichen Dingen nicht - vor allem beim Rotieren auf der Stelle. Beim normalen Geradeausfahren ist dieser Fehler klein, aber beim Rotieren kann er schnell sehr große Werte annehmen! Abweichungen muss man evtl. durch weitere Tests ermitteln und mit einkalkulieren. Das ist bei Raupenantrieben leider so – auch bei viel teureren und hochwertigeren Robotern. Dafür hat man aber den Vorteil, dass der Roboter mit Raupenantrieb recht geländegängig ist im Vergleich zu Robotern mit normalem Differentialantrieb mit zwei Antriebsrädern und Stützrad. Kleinere Hindernisse und Rampen kann er meist problemlos überwinden.&lt;br /&gt;
Dabei sind die Encoder sehr nützlich, denn man kann die Geschwindigkeit gut einregeln, egal wie der Untergrund und die Motorbelastung gerade aussieht. Bei gemessenen 50 Segmenten pro Sekunde liegt die Geschwindigkeit bei 1.25 cm/s, sofern wir von 0.25mm pro Zählschritt ausgehen. Etwa 50 Segmente pro Sekunde ist auch die geringste gerade noch regelbare Geschwindigkeit (das variiert aber etwas von Roboter zu Roboter). Bei 1200 Segmenten pro Sekunde wären es die maximal möglichen 30 cm/s (bei 0.25mm Auflösung, bei 0.23 sind es 27.6 cm/s). Standardmäßig begrenzt die Funktionsbibliothek das aber auf 1000 Flanken pro Sekunde. Die maximale Geschwindigkeit ist vom Ladezustand der Akkus abhängig – daher wären 30cm/s nicht besonders lange haltbar. Außerdem erhöht sich die Lebensdauer der Getriebe und Motoren je langsamer man fährt!&lt;br /&gt;
&lt;br /&gt;
=====Encoder justieren=====&lt;br /&gt;
Damit der RP6 die Signale der Drehgeber richtig auswerten kann, muss man evtl. die Drehgeber einmalig justieren. Dies kann auch schon bei einem neu gekauften RP6 notwendig sein.&lt;br /&gt;
Eine genaue Anleitung dazu findet man [http://www.arexx.com/rp6/downloads/RP6_ENCODER_DE_20071219.zip hier]. Es gibt auch ein [http://www.arexx.com/rp6/downloads/rp6_encoder_video.zip Video], das die Drehgeber-Justierung zeigt.&lt;br /&gt;
&lt;br /&gt;
=====Encoder kalibrieren=====&lt;br /&gt;
Wenn der Roboter 4000 Segmente gezählt hat, ist er etwa einen Meter weit gefahren. Aber wie schon gesagt, gilt das natürlich nur für genau 0.25mm Auflösung. Ohne Kalibrierung hat man hier immer mehr oder weniger starke Abweichungen. Wem es nicht auf jeden mm ankommt, braucht nichts zu kalibrieren und kann einfach von 0.25mm oder besser 0.24mm ausgehen!&lt;br /&gt;
Optimal ist es, wenn man sich für Weg- und Winkelmessungen nicht auf die Encoder Daten stützen muss, sondern externe Systeme wie Infrarotbaken oder einen genauen elektronischen Kompass dazu zur Verfügung hat.&lt;br /&gt;
&lt;br /&gt;
Will man die Drehgeber des RP6 dennoch kalibrieren, kann man ihn z.B. mit diesem Testprogramm:&lt;br /&gt;
&amp;lt;pre&amp;gt;#include &amp;quot;RP6RobotBaseLib.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
	initRobotBase();&lt;br /&gt;
	powerON();&lt;br /&gt;
&lt;br /&gt;
	// Test: Go ahead 1m and stop!&lt;br /&gt;
	move (80, FWD, DIST_MM(1000), true);&lt;br /&gt;
	writeString_P(&amp;quot;LEFT RIGHT&amp;quot;);&lt;br /&gt;
 	writeString_P(&amp;quot;\n&amp;quot;);&lt;br /&gt;
 	writeInteger(mleft_dist, DEC);&lt;br /&gt;
	writeChar(' ');&lt;br /&gt;
 	writeInteger(mright_dist, DEC);&lt;br /&gt;
	writeString_P(&amp;quot;\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
	powerOFF();&lt;br /&gt;
&lt;br /&gt;
	return 0;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
... 1m weit fahren lassen und dann messen, wie weit er tatsächlich gefahren ist. Das Programm gibt auf dem Terminal den Stand der Drehgeber aus. Teilt man dann die gemessene Fahrstrecke in mm durch den Wert der Drehgeber, erhält man die Auflösung. Diesen Wert kann man dann der Konstanten ENCODER_RESOLUTION in der RP6Config.h zuweisen. Nach &amp;quot;Make Clean&amp;quot;, einer Neukompilierung und erneuter Ausführung des Testprogramms müßte der RP6 jetzt genau 1m weit fahren. Das gilt zumindest für den Untergrund, auf dem die Kalibrierung durchgeführt wurde.&lt;br /&gt;
&lt;br /&gt;
====Stoßstangensensoren (Bumper)====&lt;br /&gt;
&lt;br /&gt;
Vorn am Roboter sind zwei Mikroschalter mit langem Schalthebel auf einer separaten&lt;br /&gt;
Platine untergebracht, die etwas vor der anderen Sensorplatine liegt. Dadurch werden&lt;br /&gt;
die IR LEDs auf der Sensorplatine geschützt und können nicht so leicht verbiegen&lt;br /&gt;
wenn der Roboter mal gegen ein Hindernis fährt. Mit den zwei Schaltern kann der Mikrocontroller&lt;br /&gt;
einen solchen Aufprall registrieren und dann beispielsweise zurücksetzen,&lt;br /&gt;
sich etwas drehen und weiterfahren. Die Schalter sind an zwei der Ports die schon mit&lt;br /&gt;
den LEDs verbunden sind angeschlossen und blockieren so keine anderen Ports des&lt;br /&gt;
Mikrocontrollers. Daher leuchten die LEDs auch immer wenn man einen der Schalter&lt;br /&gt;
drückt! Da dies normalerweise relativ selten passiert, stört das aber nicht weiter.&lt;br /&gt;
Die Stoßstange kann man auch abmontieren und z.B. gegen eine Schuss- oder Sammelvorrichtung&lt;br /&gt;
für Bälle o.ä. ersetzen wenn man möchte.&lt;br /&gt;
&lt;br /&gt;
====Lichtsensoren (LDRs)====&lt;br /&gt;
[[Bild:RP6_Licht.jpg|thumb]]&lt;br /&gt;
Vorne auf der kleinen Sensorplatine des Roboters sind zwei sog.&lt;br /&gt;
LDRs (=&amp;quot;Light Dependant Resistors&amp;quot; also lichtabhängige Widerstände)&lt;br /&gt;
platziert und nach links bzw. rechts ausgerichtet. Zwischen&lt;br /&gt;
den beiden Sensoren ist noch eine kleine schwarze&lt;br /&gt;
„Trennwand“ damit das Licht aus einer Richtung möglichst nur&lt;br /&gt;
einen der Sensoren erreicht. Sie bilden zusammen mit je einem&lt;br /&gt;
normalen Widerstand wie beim Batteriesensor einen Spannungsteiler – hier allerdings&lt;br /&gt;
um das Umgebungslicht zu messen. Die 5V Betriebsspannung wird auch geteilt, aber&lt;br /&gt;
hier ist einer der Widerstände variabel! Es wird also das Teilungsverhältnis je nach Intensität&lt;br /&gt;
des Lichteinfalls verändert und somit eine vom Lichteinfall abhängige Spannung&lt;br /&gt;
an einen der A/D Wandler Kanäle geleitet!&lt;br /&gt;
Über den Spannungsunterschied zwischen den beiden Sensoren kann man ermitteln in&lt;br /&gt;
welcher Richtung sich eine bzw. die hellste Lichtquelle vor dem Roboter befindet:&lt;br /&gt;
Links, Rechts oder in der Mitte. Mit einem entsprechenden Programm, kann man so z.B. eine starke Taschenlampe in&lt;br /&gt;
einem abgedunkelten Zimmer verfolgen, oder den Roboter die hellste Stelle in einem&lt;br /&gt;
Raum suchen lassen! Klappt z.B. sehr gut mit einem stärkeren Hand-Halogenscheinwerfer:&lt;br /&gt;
Wenn man damit auf den Boden leuchtet, kann der Roboter dem Lichtfleck auf&lt;br /&gt;
dem Boden folgen.&lt;br /&gt;
Das geht natürlich auch umgekehrt: Der Roboter könnte z.B. auch versuchen sich vor&lt;br /&gt;
hellem Licht zu verstecken...&lt;br /&gt;
Wenn man noch ein oder zwei LDRs hinten am Roboter anbringen würde, könnte man&lt;br /&gt;
das noch verfeinern und die Richtung in der sich Lichtquellen befinden besser bestimmen.&lt;br /&gt;
Der Roboter kann sonst nämlich oft nur schwer unterscheiden ob die Lichtquelle&lt;br /&gt;
vor oder hinter ihm liegt. Zwei der A/D Wandler Kanäle sind noch frei...&lt;br /&gt;
&lt;br /&gt;
====Anti Collision System (ACS)====&lt;br /&gt;
[[Bild:RP6 ACS.jpg|thumb|Das ACS]]&lt;br /&gt;
Der aus Softwaresicht komplexeste Sensor des RP6 ist das ACS - das „Anti Collision System“ (engl. für Anti Kollisions System)! Es besteht aus einem IR Empfänger (s. Abb.) und zwei vorne auf der Sensorplatine links und rechts angebrachten IR LEDs. Die IR LEDs werden direkt vom Mikrocontroller angesteuert. Die Ansteuerungsroutinen können beliebig verändert und verbessert werden! Beim Vorgängermodell war dafür noch ein eigener Controller nötig, dessen Programm aber nicht vom Anwender geändert werden konnte...&lt;br /&gt;
Mit den IR LEDs werden kurze, mit 36kHz modulierte Infrarot Impulse ausgesandt, auf die der darauf ausgelegte IR Empfänger reagiert. Werden die IR Impulse an einem Gegenstand vor dem Roboter reflektiert und vom IR Empfänger detektiert, kann der Mikrocontroller darauf reagieren und z.B. ein Ausweichmanöver einleiten. Damit das ACS nicht zu empfindlich bzw. auf eventuelle Störungen reagiert, wartet die Software bis eine bestimmte Anzahl von Impulsen in einer bestimmten Zeit empfangen worden ist. Es wird auch eine Synchronisation mit dem RC5 Empfang durchgeführt und auf die RC5 Signale von TV/Hifi Fernbedienungen wird so nicht reagiert. Bei anderen Codes kann das aber nicht garantiert werden und das ACS könnte dann Hindernisse erkennen, wo gar keine sind! Da es je eine IR LED links und rechts gibt, kann das ACS grob unterscheiden ob sich das Objekt links, rechts oder mittig vor dem Roboter befindet.&lt;br /&gt;
Man kann zusätzlich noch die Stromstärke mit der die beiden IR LEDs gepulst werden in drei Stufen einstellen. Das ACS funktioniert aber auch in der höchsten Stufe nicht mit allen Objekten immer zuverlässig, denn es kommt auf die Beschaffenheit der Oberfläche des jeweiligen Objekts an! Ein schwarzes Objekt reflektiert das IR Licht natürlich viel schlechter als ein weisses Objekt und ein kantiges und spiegelndes Objekt könnte das IR Licht hauptsächlich in eine bestimme Richtung reflektieren. Die Reichweite ist also immer vom jeweiligen Objekt abhängig! Das ist eine prinzipielle Schwäche von so gut wie allen IR Sensoren (jedenfalls in dieser Preisklasse).&lt;br /&gt;
Trotzdem werden die meisten Hindernisse zuverlässig erkannt und können umfahren werden. Falls das mal nicht klappt, gibt es noch die Stoßstange mit den Tastsensoren und falls auch die nicht richtig getroffen werden, kann der Roboter noch mit den Motorstromsensoren oder den Encodern erkennen, ob die Motoren blockieren (s.u.)!&lt;br /&gt;
Wem das nicht reicht, der könnte zusätzlich z.B. noch Ultraschallsensoren anbringen...&lt;br /&gt;
&lt;br /&gt;
====IR-Kommunikation (IRCOMM)====&lt;br /&gt;
Der RP6 kann über die IR-LEDs links und rechts über der Bumper-Platine Daten zu anderen IR-Empfängern senden.  Es ist z.B. möglich, dass mehrere Roboter ihre Sensorwerte untereinander vergleichen.&lt;br /&gt;
&lt;br /&gt;
====6 Status-LEDs====&lt;br /&gt;
Die Status-LEDs sind vorne links und rechts über den Lichtsensoren auf der Hauptplatine angebracht.&lt;br /&gt;
&lt;br /&gt;
Über die Status-LEDs können Sensorzustände, z.B. des ACS, der Bumper oder der Lichtsensoren, dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
====IR-Sender====&lt;br /&gt;
Über den IR-Sender können Daten zu anderen Geräten übertragen werden.&lt;br /&gt;
&lt;br /&gt;
===Erweiterungssystem (EXPANSION SYSTEM)===&lt;br /&gt;
[[Bild:RP6_EXP.jpg|thumb]]&lt;br /&gt;
Eines der nützlichsten Features des RP6 ist das Erweiterungssystem.&lt;br /&gt;
Man kann den RP6 damit genau so weit ausbauen,&lt;br /&gt;
wie man es benötigt. Aus Kostengründen bietet das&lt;br /&gt;
Basissystem schließlich nur relativ wenig Sensoren. Es sind&lt;br /&gt;
zwar schon mehr als bei vielen anderen Robotern in dieser&lt;br /&gt;
Preisklasse, aber erst mit weiteren Sensoren macht ein Roboter&lt;br /&gt;
so richtig Spaß. Das ACS kann beispielsweise nur grob&lt;br /&gt;
erkennen ob sich ein Hindernis vor dem Roboter befindet.&lt;br /&gt;
Mit Ultraschallsensoren oder besseren zusätzlichen IR Sensoren,&lt;br /&gt;
könnte man aber die Distanz ermitteln und so beispielsweise&lt;br /&gt;
bessere Ausweichmanöver fahren!&lt;br /&gt;
&lt;br /&gt;
Neben Sensoren macht es auch sehr viel Sinn, zusätzliche Controller einzubauen um&lt;br /&gt;
die anfallenden Aufgaben aufteilen zu können. Beispielsweise die RP6 CONTROL M32&lt;br /&gt;
Platine mit einem weiteren MEGA32 Mikrocontroller oder die CCPRO M128.&lt;br /&gt;
&lt;br /&gt;
Das Erweiterungssystem muss natürlich in der Lage sein, viele Erweiterungsmodule&lt;br /&gt;
miteinander zu verbinden, dabei mit wenigen Signalleitungen&lt;br /&gt;
auskommen und eine ausreichend hohe Geschwindigkeit bieten.&lt;br /&gt;
&lt;br /&gt;
Siehe [[I2C]]&lt;br /&gt;
&lt;br /&gt;
===Steuerung (CONTROL SYSTEM)===&lt;br /&gt;
&lt;br /&gt;
====Hauptprozessor (ATMEGA32)====&lt;br /&gt;
[[Bild:RP6_MEGA32.jpg|thumb|Der MEGA32]]&lt;br /&gt;
Der Hauptprozessor ist der ATMEGA32 vom Atmel. Er hat 32KB Flash ROM und 2KB RAM. Der ATMEGA ist mit 8Mhz getaktet, kann also bis zu 8 Millionen Befehle pro Sekunde ausführen. Es sind 32 I/O-Pins  am Controller verfügbar. Die I/O-Pins gehören zu I/O-Ports mit jeweils 8 Pins. Davon gibt es 4: PORTA, PORTB, PORTC und PORTD. Der Controller kann die Ports entweder ein oder ausschalten (Output), oder erkennen, ob Spannung angelegt wurde oder nicht (Input). Es gibt mehrere Module, die verschiedene Aufgaben übernehmen:&lt;br /&gt;
* 3 Timer, einer davon erzeugt die PWM-Signale für die Motoren&lt;br /&gt;
* Die serielle Schnittstelle (UART)&lt;br /&gt;
* Das TWI (Two Wire Interface, also Zweidraht Schnittstelle)&lt;br /&gt;
* Ein ADC (Analog to Digital Converter) mit 8 Eingangskanälen, welche mit 10bit (0-1023) auflösen&lt;br /&gt;
* Drei externe Interrupt Eingänge&lt;br /&gt;
&lt;br /&gt;
Auserdem befindet sich im Microcontroller ein sog. Bootloader, welcher mit dem RP6 Loader kommuniziert und neue Programme in den Speicher lädt.&lt;br /&gt;
&lt;br /&gt;
===Antrieb (DRIVE SYSTEM)===&lt;br /&gt;
[[Bild:RP6_H-Brücke.jpg|thumb|Die H-Brücke]]&lt;br /&gt;
[[Bild:RP6_Tastverhältniss.jpg|thumb]]&lt;br /&gt;
Der Antrieb des RP6 besteht aus zwei Gleichstrom Motoren mit nachgeschaltetem Getriebe,&lt;br /&gt;
über das die beiden Raupenketten angetrieben werden.&lt;br /&gt;
Die Motoren genehmigen sich je nach Belastung&lt;br /&gt;
einen recht hohen Strom und können&lt;br /&gt;
natürlich nicht direkt vom Mikrocontroller&lt;br /&gt;
angesteuert werden. Dazu braucht man&lt;br /&gt;
Leistungstreiber in Form von je einer H-Brücke&lt;br /&gt;
pro Motor. Das grundlegende Prinzip&lt;br /&gt;
ist in der nebenstehenden Abbildung dargestellt.&lt;br /&gt;
Eine H-Brücke besteht aus vier&lt;br /&gt;
&amp;quot;Schaltern&amp;quot;, die in Form eines H's um einen&lt;br /&gt;
Motor angeordnet sind. Nehmen wir mal an,&lt;br /&gt;
zunächst seien alle Schalter aus. Schaltet&lt;br /&gt;
man dann S1 und S4 (Rot) an, liegt eine&lt;br /&gt;
Spannung am Motor an und er dreht sich&lt;br /&gt;
z.B. nach rechts. Schalten wir nun S1 und&lt;br /&gt;
S4 wieder aus und danach S2 und S3 (Grün)&lt;br /&gt;
an, wird die am Motor anliegende Spannung umgepolt und er dreht sich in die entgegen gesetzte&lt;br /&gt;
Richtung, also nach links! Man muss darauf achten, nicht gleichzeitig S1&lt;br /&gt;
und S2, oder S3 und S4 einzuschalten, sonst entstünde ein Kurzschluss und dadurch&lt;br /&gt;
könnten die &amp;quot;Schalter&amp;quot; zerstört werden!&lt;br /&gt;
Natürlich verwenden wir auf dem RP6 keine mechanischen Schalter, sondern sog.&lt;br /&gt;
MOSFETs. Diese schalten beim Anlegen einer genügend hohen Spannung am Eingang&lt;br /&gt;
durch. Die Schaltvorgänge können sehr schnell erfolgen, mehrere Kilohertz sind bei&lt;br /&gt;
unserer Anwendung möglich.&lt;br /&gt;
So kann man also schon mal die Drehrichtung einstellen. Und wie bekommt man den&lt;br /&gt;
Motor nun schneller bzw. langsamer? Ein Elektromotor dreht umso schneller, je höher&lt;br /&gt;
die angelegte Spannung ist. Die Drehzahl kann also über die Spannung eingestellt&lt;br /&gt;
werden - und genau dazu können wir die H-Brücke auch verwenden!&lt;br /&gt;
Die Abbildung verdeutlicht das Prinzip&lt;br /&gt;
nach dem wir vorgehen können.&lt;br /&gt;
Wir erzeugen&lt;br /&gt;
ein Rechtecksignal fester Frequenz,&lt;br /&gt;
bei dem wir das sog. Tastverhältnis&lt;br /&gt;
verändern. Mit &amp;quot;Tastverhältnis&amp;quot; ist das&lt;br /&gt;
Verhältnis von der eingeschalteten zur&lt;br /&gt;
ausgeschalteten Zeit des Signals gemeint.&lt;br /&gt;
Am Motor liegt dann effektiv eine niedrigere,&lt;br /&gt;
mittlere Gleichspannung an, die dem&lt;br /&gt;
Tastverhältnis entspricht. In der Grafik ist&lt;br /&gt;
dies durch eine rote Linie (Ug) und die roten&lt;br /&gt;
Flächen verdeutlicht. Wenn z.B. eine&lt;br /&gt;
Spannung von 7 Volt von den Akkus an&lt;br /&gt;
den Motortreibern anliegt, und diese mit&lt;br /&gt;
einem Tastverhältnis von 50% angesteuert werden, würde die mittlere Spannung in&lt;br /&gt;
etwa bei der Hälfte, also 3.5V liegen! Das stimmt real nicht ganz, aber so kann man&lt;br /&gt;
es sich schon gut und einfach vorstellen.&lt;br /&gt;
Das Antriebssystem ist dank der hohen Untersetzung (~ 1:72) relativ stark und so&lt;br /&gt;
kann der RP6 viel schwerere Lasten tragen als es z.B. der kleine Roboter ASURO&lt;br /&gt;
könnte. Allerdings steigt mit zunehmendem Gewicht natürlich auch der Energiebedarf&lt;br /&gt;
und die Akkus werden schneller leer sein ...&lt;br /&gt;
Im Vergleich mit einem ferngesteuerten Rennwagen o.ä. könnte man denken der RP6&lt;br /&gt;
sei langsam - stimmt auch - das ist jedoch absichtlich so! Der Roboter wird von einem&lt;br /&gt;
Mikrocontroller gesteuert und wenn der Programmierer einen Fehler bei der Programmierung&lt;br /&gt;
gemacht hat, wäre es ungünstig mit 10km/h vor die Wand zu prallen! Bei&lt;br /&gt;
dem eher gemächlichen Tempo des RP6 passiert aber nicht so schnell etwas und nebenbei&lt;br /&gt;
haben die Sensoren mehr Zeit die Umgebung auf Hindernisse zu untersuchen.&lt;br /&gt;
Und da wäre natürlich noch der Vorteil der höheren Belastbarkeit und der viel genaueren&lt;br /&gt;
Geschwindigkeitsregelung!&lt;br /&gt;
&lt;br /&gt;
===Stromversorgung (POWER SUPPLY)===&lt;br /&gt;
[[Bild:RP6_IC1.jpg|thumb]]&lt;br /&gt;
Natürlich benötigt ein Roboter Energie. Diese trägt der RP6 gespeichert in 6 Akkus mit&lt;br /&gt;
sich herum. Die Laufzeit ist durch die Kapazität der Akkus eingeschränkt, denn auch&lt;br /&gt;
wenn die Elektronik verhältnismäßig wenig Energie benötigt, schlucken die Motoren je&lt;br /&gt;
nach Belastung doch ziemlich viel.&lt;br /&gt;
&lt;br /&gt;
Damit die Akkus möglichst lange halten und der Roboter nicht ständig Pause machen&lt;br /&gt;
muss, sollte man ihm daher etwas größere Energiespeicher mit etwa 2500mAh gönnen.&lt;br /&gt;
Kleinere mit 2000mAh oder mehr funktionieren aber auch. Mit guten Akkus kann&lt;br /&gt;
man 3 bis 6 Stunden oder mehr Laufzeit erreichen, abhängig von der Betriebszeit der&lt;br /&gt;
Motoren, deren Belastung und Qualität der Akkus. Die 6 Akkus die notwendig sind,&lt;br /&gt;
haben insgesamt eine Nennspannung von 6x 1.2V = 7.2V. Im Blockdiagramm ist dies&lt;br /&gt;
mit &amp;quot;UB&amp;quot; (= &amp;quot;U-Battery&amp;quot;, U ist der Formelbuchstabe für Spannung) bezeichnet. „Nennspannung&amp;quot;,&lt;br /&gt;
weil sich die Spannung mit der Zeit stark verändert. Voll aufgeladen können&lt;br /&gt;
die Akkus im Leerlauf insgesamt bis zu 8.5V liefern! Diese Spannung sinkt während&lt;br /&gt;
der Entladung ab und schwankt auch je nach Belastung (Motoren an oder aus,&lt;br /&gt;
schnell langsam etc. - wie stark die Spannung schwankt, hängt auch von der Qualität&lt;br /&gt;
der verwendeten Akkus ab. Der Innenwiderstand ist hier die kritische Größe).&lt;br /&gt;
Das ist für Messungen von Sensorwerten und ähnlichem natürlich nicht ohne weiteres&lt;br /&gt;
brauchbar. Noch wichtiger ist jedoch, dass viele der verwendeten Komponenten wie&lt;br /&gt;
z.B. der Mikrocontroller nur auf 5V oder weniger Betriebsspannung ausgelegt sind und&lt;br /&gt;
bei so hohen Spannungen zerstört würden. Die Akku Spannung muss also auf einen&lt;br /&gt;
definierten Wert heruntergeregelt und stabilisiert werden!&lt;br /&gt;
Das übernimmt ein 5V Spannungsregler, der einen Strom von&lt;br /&gt;
maximal 1.5A liefern kann (s. Abb.). Bei 1.5A würde er jedoch&lt;br /&gt;
ziemlich viel Wärme abgeben. Es gibt daher eine große Kühlfläche&lt;br /&gt;
auf der Platine an die der Regler festgeschraubt ist. Über 1A&lt;br /&gt;
sollte der Regler trotz Kühlung besser nur kurzzeitig (also wenige&lt;br /&gt;
Sekunden) belastet werden, wenn man nicht noch einen zusätzlichen&lt;br /&gt;
großen Kühlköper draufschraubt.&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen, 800mA Dauerlast nicht zu überschreiten! Bei&lt;br /&gt;
so einer Belastung und zusammen mit den Motoren wären die&lt;br /&gt;
Akkus auch recht schnell leer. Im normalen Betrieb ohne ein Erweiterungsboard&lt;br /&gt;
nimmt der Roboter übrigens nicht mehr als 40mA auf (ausser wenn&lt;br /&gt;
das IRCOMM sendet), also überhaupt kein Problem für den Regler und man hat noch&lt;br /&gt;
genug Reserven für die Erweiterungsmodule, die meistens auch nicht mehr als 50mA&lt;br /&gt;
aufnehmen sofern keine Motoren, große LEDs o.ä. daran angeschlossen sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Umbau-Optionen==&lt;br /&gt;
Hier soll beschrieben werden, welche Umbau-Optionen es für die RP6 Base gibt. Im Text gibt es Verweise auf den Schaltplan des RP6 (RP6_MAINBOARD.PDF) in der Form: (SP2 B1: Bauteil). Dies bedeutet, dass man das Bauteil auf Blatt 2 des RP6-Schaltplans im Feld B1 finden kann. Beispielhaft sind im folgenden Text Bestell-Nummern der Firma [http://www.conrad.de/ce/ CONRAD] genannt. Natürlich kann man die Teile auch bei anderen Versendern beziehen.&lt;br /&gt;
&lt;br /&gt;
Bei den Materialangaben ist öfter die Rede von &amp;quot;Steckbuchsen mit Litze&amp;quot;. Diese Steckbuchsen mit angelöteter Litze können auf die ein- oder zweireihigen Stiftleisten aufgesteckt werden. Leider gibt es sie nicht (mehr) fertig konfektioniert bei CONRAD. Die einreihigen Steckbuchsen (RM 2,54mm) kann man aber z.B. bei [http://www.elv.de/output/controller.aspx ELV] bekommen: 2-polig (68-016635), 3-polig (68-022503) und 5-polig (68-023073). An sie muss man dann noch Litzen in der entsprechenden Länge selbst anlöten.&lt;br /&gt;
&lt;br /&gt;
===Elko für den IR-Empfänger=== [[Bild:RP6_C29_TSOP.JPG|thumb|RP6 C29 TSOP]]&lt;br /&gt;
Zur Spannungsstabilisierung kann ein Elko (C29; SP2 E1: C29*) am TSOP 34836 eingelötet werden.&lt;br /&gt;
&lt;br /&gt;
Normalerweise ist dieser Elko nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* Einen Elektrolyt-Kondensator stehend 10 uF / 16V (C29); RM 2,5mm (445631)&lt;br /&gt;
&lt;br /&gt;
Der Elko kann auch eine geringere Kapazität als 10 uF haben (1 uF bis 4,7 uF reichen auch). Man lötet den Elko auf seinen Platz. Bitte auf die Polung achten: Der Minuspol zeigt nach vorn (in Fahrtrichtung des RP6).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Anschlüsse===&lt;br /&gt;
Hier wird aufgelistet, wo man auf dem RP6 Mainboard Anschlüsse nutzen kann, um sie z.B. zu weiteren Sensoren, zum USRBUS oder (weniger empfehlenswert!) direkt zu EPs oder Erweiterungsplatinen (M32, CCPRO M128) zu führen.&lt;br /&gt;
&lt;br /&gt;
====Analoge Sensoren an ADC0/1==== [[Bild:RP6_ADC01.JPG|thumb|RP6 ADC0/1]]&lt;br /&gt;
&lt;br /&gt;
Wenn man bis zu zwei analoge Sensoren (z.B. IR-Distanz-Mess-Sensoren Sharp GP2Y0A02YK 185364) direkt an den RP6 anschließen möchte, dann gibt es da zwei 3-polige Kontakte, beschriftet mit VDD/GND/ADCx (x = 0..1). Hier kann man 3-polige Stiftleisten auflöten, an die dann die Sensoren angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 1-reihige Stiftleiste RM 2,54mm (z.B. 36-polig 732478)&lt;br /&gt;
* Zwei Keramik-Vielschicht-Kondensatoren 100nF (C27, C28); RM 2,54mm (453099)&lt;br /&gt;
* ENTWEDER einen Elektrolyt-Kondensator stehend 220 uF / 16V (C26); RM 3,5mm (445903)&lt;br /&gt;
* ODER einen Elektrolyt-Kondensator stehend 470 uF / 16V (C26); RM 3,5mm (446211)&lt;br /&gt;
* Zwei 3-polige Steckbuchsen mit Litze zum Anschluß der Sensoren&lt;br /&gt;
&lt;br /&gt;
Man trennt nun von der 1-reihigen Stiftleiste zweimal 3 Kontakte ab und lötet sie auf die weiß umrahmten Kontakte (VDD/GND/ADCx; SP2 B1: ADC0, ADC1), anschließend C27, C28 (SP2 A1: C27*, C28*) auf ihre Plätze und zum Schluß den Elko 220 uF oder 470 uF (C26; SP2 A1: C26*). Der Elko ist nur bei Sensoren mit hohem Strombedarf notwendig, siehe dazu auch Anleitung des RP6, Seite 136! Beim Elko auf die Polung achten: Er muss so sitzen, dass er mit seinem Pluspol in Fahrtrichtung des RP6 (nach vorn) schaut.&lt;br /&gt;
&lt;br /&gt;
Die Sensoren lötet man an die Litzen der 3-poligen Steckbuchsen und steckt diese auf die neuen Kontakte.&lt;br /&gt;
&lt;br /&gt;
Da manche Sensoren einen höheren Stromverbrauch haben, kann man die Stromversorgung an den VDD-Pins der ADC0/1-Stecker abschaltbar machen oder eine separate +5V-Spannung einspeisen. Siehe dazu den Abschnitt &amp;quot;Trennstellen - Getrennte Stromversorgung für ADC0/1&amp;quot; weiter unten!&lt;br /&gt;
&lt;br /&gt;
====ISP (In System Programming)====&lt;br /&gt;
Der ATMEGA32 des RP6 wird standardmäßig über den PROG/UART Stecker programmiert. Dazu befindet sich im Prozessor ein Bootloader-Programm. Wenn man stattdessen oder zusätzlich die ISP-Programmierung mit einem dafür geeigneten ISP-Programmier-Adapter nutzen will, kann man den Adapter an einen (noch einzulötenden) Wannenstecker auf dem RP6 anschließen.&lt;br /&gt;
Vorher sind aber ein paar &amp;quot;Umbauarbeiten&amp;quot; erforderlich.&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 1-reihige Stiftleiste RM 2,54mm (z.B. 36-polig 732478)&lt;br /&gt;
* Wannenstecker 2x5-polig gerade RM 2,54mm (z.B. [http://www.reichelt.de./ Reichelt] WSL 10G)&lt;br /&gt;
* Eine SMD-Diode LL 4148 (140902)&lt;br /&gt;
* Eine Codierbrücke (z.B. aus Set 742902)&lt;br /&gt;
&lt;br /&gt;
Zwischen dem XBUS-Stecker und C13 befinden sich 10 Lötpunkte für den ISP-Anschluß, auf die der Wannenstecker gelötet wird, und drei Lötpunkte (beschriftet mit ISP* - BOOTLOAD; SP2 A3: YR1..3), auf die eine 3-polige Stiftleiste gelötet werden muss.&lt;br /&gt;
&lt;br /&gt;
[[Bild:RP6_ISP.JPG|RP6 ISP]]&lt;br /&gt;
&lt;br /&gt;
Vorher muss eine kurze Leiterbahn zwischen den Lötpunkten BOOTLOAD aufgetrennt werden. Die Leiterbahn befindet sich auf der Lötseite der Platine und muss mit einem scharfen Messer oder einem speziellen Leiterbahn-Unterbrecher zwischen den beiden Lötpunkten unterbrochen werden. Man sollte anschließend mit einem Widerstandsmeßgerät nachmessen: Es sollte keine Verbindung mehr zwischen den Lötpunkten bestehen.&lt;br /&gt;
Man trennt dann von der 1-reihigen Stiftleiste 3 Kontakte ab und lötet sie auf die beschriebenen drei Lötpunkte.&lt;br /&gt;
&lt;br /&gt;
Zum Schluss lötet man noch die Diode LL 4148 (SP2 B3: D11*) auf ihre Lötflächen zwischen R3 und C6. Die Kathode (Strich) der Diode kommt nach vorn (in Fahrtrichtung RP6, bzw. liegt rechts von R3). Wenn man jetzt eine Codierbrücke auf die mit &amp;quot;BOOTLOAD&amp;quot; beschrifteten Pins steckt, bleibt alles unverändert: Die Programmierung erfolgt weiter über den PROG/UART-Stecker mithilfe des Bootloaders im Prozessor.&lt;br /&gt;
Wird die Codierbrücke in Stellung &amp;quot;ISP*&amp;quot; umgesteckt, kann der Prozessor mit ISP programmiert werden.&lt;br /&gt;
&lt;br /&gt;
Vorsicht: Das Bootloader-Programm kann dabei zerstört werden! Es müssen zusätzlich Fusebits des ATMEGA32 verändert werden. Dabei kann der Prozessor im schlimmsten Fall nicht mehr ansprechbar sein. Man sollte diesen Umbau und die ISP-Programmierung nur machen, wenn man genau weiß, was man macht!&lt;br /&gt;
&lt;br /&gt;
Eine Kopie des Bootloaders und eine Kurzanleitung zum Einstellen der Fusebits gibt es hier:&lt;br /&gt;
[http://www.arexx.com/rp6/downloads/RP6BASE_BOOTLOADER.zip RP6_BOOTLOADER]&lt;br /&gt;
&lt;br /&gt;
====IO1..IO4==== [[Bild:RP6_IO1-4.JPG|thumb|RP6 IO1..IO4]]&lt;br /&gt;
Die Anschlüsse IO1 bis IO4 (SP2 E3: IO1..4) steuern bereits die Status-LEDs 1, 2, 4 und 5 an. Trotzdem kann man sie auch noch mit leichten Einschränkungen als I/O-Pins benutzen. Dazu lötet man zweimal 2 Pins einer 1-reihigen Stiftleiste RM 2,54mm (z.B. 36-polig 732478) auf die IO1/2 und IO3/4 Lötpunkte.&lt;br /&gt;
Hier eine Tabelle, die die Port-Pins zeigt, die IO1..IO4 zugeordnet sind:&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |IO&lt;br /&gt;
 |Status-LED&lt;br /&gt;
 |Port-Pin&lt;br /&gt;
 |-&lt;br /&gt;
 |1&lt;br /&gt;
 |SL1&lt;br /&gt;
 |PC4&lt;br /&gt;
 |-&lt;br /&gt;
 |2&lt;br /&gt;
 |SL2&lt;br /&gt;
 |PC5&lt;br /&gt;
 |-&lt;br /&gt;
 |3&lt;br /&gt;
 |SL4&lt;br /&gt;
 |PB7&lt;br /&gt;
 |-&lt;br /&gt;
 |4&lt;br /&gt;
 |SL5&lt;br /&gt;
 |PB1&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
Wie können nun IO1..IO4 genutzt werden?&lt;br /&gt;
&lt;br /&gt;
Als ...&lt;br /&gt;
* Eingang, z.B. für zusätzliche Tastschalter/Bumper&lt;br /&gt;
* Ausgang, z.B. zur Ansteuerung von Treiberstufen, low-current LEDs, ...&lt;br /&gt;
&lt;br /&gt;
Wird ein Anschluß IOx als Eingang verwendet, muss ein Widerstand von 470 Ohm in Reihe mit dem Taster an VDD eingebaut werden, zusätzlich ein Pulldown-Widerstand 100 kOhm. Diese Beschaltung zeigen z.B. an SL6 die Widerstände R43 und R46 (SP2 E4: R43, R46).&lt;br /&gt;
&lt;br /&gt;
Als Ausgang geschaltet sollte an IOx kein hoher Strom entnommen werden: 10mA sind max. zu empfehlen!&lt;br /&gt;
&lt;br /&gt;
====USRBUS====&lt;br /&gt;
Die 14 Kontakte der beiden USRBUS-Stecker sind auf dem RP6 nirgendwo angeschlossen, sondern können über die Lötpunkte Y1..Y14 mit beliebigen Punkten auf dem Mainboard verbunden werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:RP6_USRBUS.JPG|thumb|RP6 USRBUS]]&lt;br /&gt;
&lt;br /&gt;
Ich würde auf Y1..Y14 eine Stiftleiste löten, damit die USRBUS-Belegung geändert werden kann.&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 2-reihige Stiftleiste RM 2,54mm (z.B. 2x36-polig 742007)&lt;br /&gt;
* Einige Steckbuchsen mit Litze&lt;br /&gt;
&lt;br /&gt;
Man trennt von der 2-reihigen Stiftleiste 2x7 Kontakte ab und lötet sie auf die Punkte Y1..Y14 (SP4 E34: Y1..14, Y1'..Y14') neben den beiden Wannensteckern USRBUS1 (vorn) und USRBUS2 (hinten). Wird der RP6 über Flachkabel mit einem USRBUS-Stecker auf einer RP6 Experimentierplatine (EP) und/oder mit einer Erweiterungsplatine (M32, CCPRO M128) verbunden, dann hat man mit allen mit dem USRBUS verbundenen Platinen eine direkte 14-polige Verbindung,- eben den &amp;quot;User Bus&amp;quot;. Den kann man dann nutzen, wie man will. Auf dem RP6 kann man mit Steckbuchsen die Pins Y1..Y14 mit anderen Pins verbinden.&lt;br /&gt;
&lt;br /&gt;
Beispiel: Verbindet man den Pin &amp;quot;ADC0&amp;quot; mit Y1 des USRBUS1, dann steht der Eingang ADC0 auf allen an den USRBUS1 angeschlossenen Platinen auf dem vorderen Platinenstapel an Y1 zur Verfügung. Man braucht also diesen Eingang nicht über ein eigenes Kabel auf eine EP zu führen, sondern kann dazu den USRBUS nehmen. Dadurch bleibt der Gesamtaufbau auf dem RP6 übersichtlich und komplett trennbar (man braucht nur die Stecker XBUS und USRBUS abzuziehen!).&lt;br /&gt;
&lt;br /&gt;
Wichtig:&lt;br /&gt;
* Man sollte gut dokumentieren, wie man den USRBUS am RP6 (vorn und hinten getrennt!), auf EPs und der M32/M128 benutzt! Sonst kann es bei einer anderen Anordnung von EPs zu USRBUS Konflikten/Kurzschlüssen kommen.&lt;br /&gt;
* Der USRBUS1- und der USRBUS2-Stecker sind auf dem RP6 NICHT miteinander verbunden.&lt;br /&gt;
&lt;br /&gt;
Einen Vorschlag für die Belegung des USRBUS1 (vorn) gibt es z.B. &lt;br /&gt;
[http://www.roboternetz.de/phpBB2/viewtopic.php?t=32549 hier] oder &lt;br /&gt;
[http://www.roboternetz.de/community/showthread.php/47102-Sensor-anschließen?p=453061&amp;amp;viewfull=1#post453061 da.]&lt;br /&gt;
&lt;br /&gt;
====Start/Stop Button==== [[Bild:RP6_ST.JPG|thumb|RP6 ST]]&lt;br /&gt;
Am mittleren Lochrasterfeld links finden sich zwei Lötpunkte ST1, ST2 (SP2 D2: ST1, ST2), an die weitere Start/Stop Taster (NO, normal offen) parallel zum Taster auf dem RP6 Mainboard angeschlossen werden können.&lt;br /&gt;
&lt;br /&gt;
Zum Anschluß kann man auch Stiftleisten auflöten. ST1, ST2 könnte man auch mit dem USRBUS1 verbinden, wenn man den RP6 z.B. von einer EP aus zurücksetzen möchte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Serielle Schnittstelle==== [[Bild:RP6_RST.JPG|thumb|RP6 RST]]&lt;br /&gt;
Neben dem USRBUS1 Stecker befinden sich 5 Lötpunkte mit den Signalen RST, TX, RX, GND, VDD (SP4 AB5: YRX, YTX, YMRESET, YVDD). Hier kann z.B. eine 5-polige Stiftleiste aufgelötet werden, um einen Anschluß an die serielle Schnittstelle zu ermöglichen.&lt;br /&gt;
&lt;br /&gt;
Von diesen 5 Lötpunkten könnte z.B. auch [http://www.roboternetz.de/phpBB2/viewtopic.php?t=32549 so] eine Verbindung zum benachbarten USRBUS1 hergestellt werden, um die serielle Schnittstelle des RP6 auf EPs zu führen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====I2C-Schnittstelle==== [[Bild:RP6_I2C.JPG|thumb|RP6 I2C]]&lt;br /&gt;
Neben dem XBUS2 Stecker finden sich 5 Lötpunkte mit den Signalen der I2C-Schnittstelle (SP4 D12: Stecker I2C). Dies sind: VDD (Pin 1), GND, SDA, SCL, INT1 (Pin 5). Hier kann z.B. eine 5-polige Stiftleiste aufgelötet werden, um einen Anschluß an die I2C-Schnittstelle zu ermöglichen.&lt;br /&gt;
&lt;br /&gt;
Von diesen 5 Lötpunkten könnte z.B. auch eine Verbindung zum USRBUS1 oder USRBUS2 hergestellt werden, um die I2C-Schnittstelle des RP6 auf EPs zu führen, allerdings hat man SCL, SDA, INT1 ja auch schon am XBUS zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Interrupt-Leitungen==== [[Bild:RP6_INTx.JPG|thumb|RP6 INTx]]&lt;br /&gt;
Die Interrupt-Leitungen INTU, INT1..3, MRESET (SP4 D34: MRESET, INT1..3, INTU) sind an 5 Lötpunkten neben dem XBUS1 Stecker zu kontaktieren. Hier kann natürlich auch eine 5-polige Stiftleiste aufgelötet werden. In der Regel wird man diese Anschlüsse nicht brauchen, weil sie schon auf dem XBUS zur Verfügung stehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====VDD/GND/+UB Anschluß==== [[Bild:RP6_VDDGNDUB.JPG|thumb|RP6 VDD GND +UB]]&lt;br /&gt;
In der Nähe von C4 im hinteren Bereich des Mainboards finden sich Lötpunkte (SP4 E12: YVDDx, YGNDx; SP4 D2 YUBx), an denen man VDD, GND und +UB finden kann.&lt;br /&gt;
&lt;br /&gt;
Wenn man höhere Ströme an VDD (z.B. für Servos) oder +UB (z.B. für einen anderen IRCOMM-Sender oder einen DC-Motor) entnehmen möchte, empfehlen sich diese Lötpunkte, auf die man auch Stiftleisten löten kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====EXT Anschluß==== [[Bild:RP6_EXT.jpg|thumb|RP6 EXT Anschluß]]&lt;br /&gt;
Am hinteren Rand der RP6 Hauptplatine gibt es eine Reihe von 8 Lötpunkten. Dies ist der EXT Anschluß (SP1 C23: Stecker EXT):&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |Pin&lt;br /&gt;
 |Name&lt;br /&gt;
 |Beschreibung&lt;br /&gt;
 |-&lt;br /&gt;
 |1&lt;br /&gt;
 |GND&lt;br /&gt;
 |RP6 und Akku Minuspol (GND)&lt;br /&gt;
 |-&lt;br /&gt;
 |2&lt;br /&gt;
 |CHRG&lt;br /&gt;
 |Anschluß (+) für ext. Ladegerät, identisch mit Pluspol der Ladebuchse (CHARGER, Pin 1). Ladung nur möglich, wenn S1 AUS ist!&lt;br /&gt;
 |-&lt;br /&gt;
 |3&lt;br /&gt;
 |CHRG&lt;br /&gt;
 |wie Pin 2!&lt;br /&gt;
 |-&lt;br /&gt;
 |4&lt;br /&gt;
 | +BAT&lt;br /&gt;
 |Akku Pluspol über Sicherung F1&lt;br /&gt;
 |-&lt;br /&gt;
 |5&lt;br /&gt;
 | +BAT&lt;br /&gt;
 |wie Pin 4!&lt;br /&gt;
 |-&lt;br /&gt;
 |6&lt;br /&gt;
 | +UB&lt;br /&gt;
 |RP6 +UB (+7,2V=, Bereich min. +5,5 bis max. +10V=)&lt;br /&gt;
 |-&lt;br /&gt;
 |7&lt;br /&gt;
 | +UB&lt;br /&gt;
 |wie Pin 6!&lt;br /&gt;
 |-&lt;br /&gt;
 |8&lt;br /&gt;
 |GND&lt;br /&gt;
 |wie Pin 1!&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
Man kann hier eine 1-reihige Stiftleiste RM 2,54mm (z.B. 36-polig 732478), von der man 8 Pins abtrennt, auflöten.&lt;br /&gt;
&lt;br /&gt;
Wozu kann man diesen Anschluß nutzen?&lt;br /&gt;
&lt;br /&gt;
Der wesentliche Sinn des EXT Anschlusses besteht darin, andere Arten der Stromversorgung und der Akkuladung zu ermöglichen. Normalerweise schaltet man den RP6 mit S1 an und aus. In Stellung AUS kann der Akku geladen werden, indem man ein Ladegerät an die CHARGER Buchse anschließt. Alternativ kann man das Ladegerät mit seinem Pluspol auch an CHRG (Pins 2, 3) anschließen. Siehe auch den Abschnitt &amp;quot;Trennstellen - EXT Anschluß: Andere Stromversorgung&amp;quot; weiter unten!&lt;br /&gt;
&lt;br /&gt;
An +BAT (Pins 4, 5) kann man direkt (ohne Unterbrechung durch S1) Strom aus dem Akku entnehmen. Die Grenze des Stroms bestimmt die Sicherung F1 (2,5A). Eine weitere Möglichkeit besteht darin, über diesen Anschluß den Akku auch mit einem geeigneten Ladegerät zu LADEN. Hierbei muss man aber darauf achten, dass S1 AUSgeschaltet ist, weil sonst der RP6 über +UB eine unzulässig hohe Spannung bekommen könnte. Wenn man den Akku mit 6 Mignonzellen im RP6 nicht nutzen will (der Akku-Halter bleibt leer!), sondern nur einen externen Akku, wäre der auch mit seinem Pluspol an +BAT über eine eigene Sicherung (2,5A träge) anzuschließen.&lt;br /&gt;
&lt;br /&gt;
+UB (+7,2V) ist die Versorgungsspannung des RP6 (kommt vom Akku-Pluspol über die Sicherung F1 und Schalter S1!). Mit +UB werden die H-Brücken (Motoransteuerung) direkt und die RP6 &amp;quot;Elektronik&amp;quot; über den 5V-Spannungswandler (IC1; SP1 D3: IC1) versorgt (= VDD). An +UB könnte man den RP6 direkt mit einer Spannung von +7,2V versorgen (Absicherung nicht vergessen!), dazu muss S1 AUSgeschaltet sein, damit es keine Konflikte mit dem eingebauten Akku gibt.&lt;br /&gt;
&lt;br /&gt;
Den EXT Anschluß kann man damit nutzen für:&lt;br /&gt;
* Externes Ladegerät&lt;br /&gt;
* Externen Akku&lt;br /&gt;
* Externe Stromversorgung ohne Akku&lt;br /&gt;
* Direkte Stromentnahme aus dem Akku&lt;br /&gt;
* Ergänzungsladung mit Solarzelle&lt;br /&gt;
* Autonome Akkuladung (Ladestation mit Kontakten, Induktionsladung ...)&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
Man sollte gewisse Elektronik-Kenntnisse haben, wenn man die Spannungsversorgung des RP6 verändert. VOR irgendwelchen Veränderungen seht euch auch zuerst den Schaltplan des RP6 (SP1) genau an!&lt;br /&gt;
&lt;br /&gt;
===Mess-/Kontaktpunkte===&lt;br /&gt;
Hier geht es um Kontaktpunkte, an denen man z.B. den Logik-Pegel (High/Low) oder eine analoge Spannung messen kann. Natürlich kann man die Signale auch zur Weiterleitung auf eine EP kontaktieren, dies wird man aber normalerweise nicht brauchen.&lt;br /&gt;
&lt;br /&gt;
====UBAT==== [[Bild:RP6_UBAT.JPG|thumb|RP6 UBAT]]&lt;br /&gt;
In der Mitte des Mainboards befindet sich ein Kontaktpunkt UBAT (SP1 E1: YUBAT). Dies ist ADC7 des RP6 Microcontrollers.&lt;br /&gt;
&lt;br /&gt;
Man kann hier die analoge Spannung (gegen GND) messen, die vom +UB-Spannungssensor geliefert wird.&lt;br /&gt;
&lt;br /&gt;
Die Spannung ist:&lt;br /&gt;
 UBAT = +UB / 2&lt;br /&gt;
Da der Spannungsteiler (SP1 D12: R1, R2) des +UB-Spannungssensors nicht aus Präzisionswiderständen besteht, kann man für den eigenen RP6 einen Korrekturfaktor berechnen, wenn UBAT deutlich von +UB / 2 (+ UB z.B. gemessen am EXT Stecker, Pins 6 u. 7) abweicht. Damit kann man +UB sehr viel genauer bestimmen.&lt;br /&gt;
&lt;br /&gt;
====ACS==== [[Bild:RP6_ACS_TSOP.JPG|thumb|RP6 ACS TSOP]]&lt;br /&gt;
Hinter dem TSOP (IC3) befindet sich der Kontaktpunkt ACS (SP2 E1: ACS).&lt;br /&gt;
&lt;br /&gt;
Dies ist der Ausgang des TSOP bzw. Eingang PB2 des RP6 Microcontrollers. Man kann hier das Ausgangssignal des IR-Empfängers abnehmen, z.B. um es mit einem Oszilloskop sichtbar zu machen.&lt;br /&gt;
&lt;br /&gt;
Rechts neben dem TSOP kann man noch die 3 Kontaktpunkte ACS_R, ACS_P und ACS_L (SP2 E2: ACS_P, ACS_R, ACS_L) des ACS-IR-Senders finden.&lt;br /&gt;
&lt;br /&gt;
Folgende Tabelle zeigt die Verbindungen:&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |Kontakt&lt;br /&gt;
 |Microcontroller-Portpin&lt;br /&gt;
 |SP-Verbindung&lt;br /&gt;
 |ACS-IR-Sendediode&lt;br /&gt;
 |-&lt;br /&gt;
 |ACS_P&lt;br /&gt;
 |über R8: ACS_PWRH (PB3), über R9: ACS_PWR (PD6)&lt;br /&gt;
 |SP2: 3&lt;br /&gt;
 |Anoden D1, D2&lt;br /&gt;
 |-&lt;br /&gt;
 |ACS_R&lt;br /&gt;
 |ACS_R (PC7)&lt;br /&gt;
 |SP2: 2&lt;br /&gt;
 |Kathode D1&lt;br /&gt;
 |-&lt;br /&gt;
 |ACS_L&lt;br /&gt;
 |ACS_L/MISO (PB6)&lt;br /&gt;
 |SP1: 5&lt;br /&gt;
 |Kathode D2&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====IRC==== [[Bild:RP6_IRC.JPG|thumb|RP6 IRC]] [[Bild:RP6_IRC3.JPG|thumb|RP6 IRC3]]&lt;br /&gt;
Im der Nähe von C13 befinden sich die Lötpunkte IRC, IRC+, IRC- und IRC3 (SP2 D2: YIRC; SP2 CD2: IRC+/-; SP2 C2: IRC3). Zusammen mit der Trennstelle IRC (siehe Abschnitt &amp;quot;Trennstellen - IRC&amp;quot; weiter unten!) kann man diese Kontaktstellen im Umfeld des IRCOMM-Sendedioden Treibers IRLML2502PBF (SP2 CD12: Q5) finden. Am Kontaktpunkt IRC findet sich der Eingang des Treibers bzw. Ausgang PD7 des RP6 Microcontrollers. IRC+, IRC- sind die Kontaktpunkte, an denen die IRCOMM-Sendedioden D3, D4 in Reihe auf der Sensorplatine angeschlossen sind (IRC+ = Anode). IRC3 ist verbunden mit dem Trennstellen-Lötpunkt IRC1 und liegt bei geschlossener Trennstelle IRC an +UB.&lt;br /&gt;
&lt;br /&gt;
Was läßt sich mit diesen Kontaktpunkten machen:&lt;br /&gt;
* Der IRCOMM-Sender ist der zweitgrößte Stromverbraucher des RP6 (nach dem Antrieb). An IRC3 kann daher eine eigene Stromversorgung für die IRCOMM-Sendedioden angeschlossen werden. Dazu muss die Trennstelle IRC zwischen ihren Lötpunkten IRC1, IRC2 aufgetrennt werden.&lt;br /&gt;
* An IRC+, IRC- könnten andere/weitere IRCOMM-Sendedioden angeschlossen werden (Anode an IRC+). Wenn der Vorwiderstand R6 (SP2 C2: R6) der Sendedioden dann nicht mehr paßt (bezügl. Leistung und/oder Widerstandswert), können neue leistungsfähigere IRCOMM-Sendedioden zwischen IRC3 und IRC- (Anode an IRC3) mit einem dafür geeigneten Vorwiderstand angebracht werden.&lt;br /&gt;
&lt;br /&gt;
====LS==== [[Bild:RP6_LS.JPG|thumb|RP6 LS]]&lt;br /&gt;
Die beiden Lötpunkte LS_L und LS_R (SP2 B12: LS_L, LS_R) neben R7 vorn auf dem Mainboard sind die Ausgänge der Helligkeitssensoren (links und rechts) bzw. die ADC-Eingänge ADC3 und ADC2 des RP6 Microcontrollers.&lt;br /&gt;
&lt;br /&gt;
Hier kann man die Spannungen messen, die den Helligkeitswerten entsprechen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====BP, S==== [[Bild:RP6_BP_S.JPG|thumb|RP6 BP S]]&lt;br /&gt;
Die Messpunkte BPL, BPR und der Kontaktpunkt S (SP2 E2: S; SP2 E3: BPR; SP2 E4: BPL) befinden sich am vorderen Platinenrand. BPL und BPR sind die Kontakte der Bumper. S ist eine nicht genutzte Verbindung zwischen dem Mainboard und der Sensorplatine, die über die Verbindung SP1, Pin 3, geführt wird (siehe folgende Tabelle!).&lt;br /&gt;
&lt;br /&gt;
Hier eine Tabelle mit der Belegung der 90°-Winkelverbindung SP1, SP2 zwischen dem RP6 Mainboard und der Sensorplatine: &lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |Pin&lt;br /&gt;
 |SP1&lt;br /&gt;
 |SP2&lt;br /&gt;
 |-&lt;br /&gt;
 |1&lt;br /&gt;
 |LS_L  --- Light Sensor Left&lt;br /&gt;
 |IRC-  --- IRCOMM-&lt;br /&gt;
 |-&lt;br /&gt;
 |2&lt;br /&gt;
 |BPL   --- Bumper Left&lt;br /&gt;
 |ACS_R --- ACS Right&lt;br /&gt;
 |-&lt;br /&gt;
 |3&lt;br /&gt;
 |S     --- Free for all&lt;br /&gt;
 |ACS_P --- ACS Power&lt;br /&gt;
 |-&lt;br /&gt;
 |4&lt;br /&gt;
 |GND&lt;br /&gt;
 |VDD&lt;br /&gt;
 |-&lt;br /&gt;
 |5&lt;br /&gt;
 |ACS_L --- ACS Left&lt;br /&gt;
 |BPR   --- Bumper Right&lt;br /&gt;
 |-&lt;br /&gt;
 |6&lt;br /&gt;
 |IRC+  --- IRCOMM+&lt;br /&gt;
 |LS_R  --- Light Sensor Right&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====ENC==== [[Bild:RP6_ENC.JPG|thumb|RP6 ENC]]&lt;br /&gt;
Die beiden Messpunkte ENCL, ENCR (SP4 B12: ENCL, ENCR) sind die Ausgänge der Radencoder. ENCL ist verbunden mit PD2 (INT0), ENCR mit PD3 (INT1) des RP6 Microcontrollers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Trennstellen===&lt;br /&gt;
An diesen Stellen können Leiterbahnen unterbrochen werden, um Funktionen zu deaktivieren oder anders zu nutzen.&lt;br /&gt;
&lt;br /&gt;
=====Getrennte Stromversorgung für ADC0/1=====&lt;br /&gt;
Wenn man für die analogen Sensoren an ADC0/1 (siehe Abschnitt &amp;quot;Anschlüsse - Analoge Sensoren an ADC0/1&amp;quot; weiter oben!) eine GETRENNTE Stromversorgung vorsehen will und/oder mit Codierbrücke (oder MOSFET) die Stromversorgung abschaltbar machen möchte, muss man erst Vorarbeit leisten.&lt;br /&gt;
[[Bild:RP6_SV.JPG|thumb|RP6 SV]]&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 1-reihige Stiftleiste RM 2,54mm (z.B. 36-polig 732478)&lt;br /&gt;
* Evtl.: Eine Codierbrücke (z.B. aus Set 742902)&lt;br /&gt;
* Evtl.: Eine 1-polige Steckbuchse mit Litze zur ext. Stromversorgung&lt;br /&gt;
Es muss eine kurze Leiterbahn zwischen den Punkten &amp;quot;SV1&amp;quot; und &amp;quot;SV2&amp;quot; (SP2 A1: SV1, SV2; zwischen dem PROG/UART- und dem USRBUS1-Stecker) aufgetrennt werden. Die Leiterbahn befindet sich auf der Lötseite der Platine und muss mit einem scharfen Messer oder einem speziellen Leiterbahn-Unterbrecher zwischen den beiden Lötpunkten unterbrochen werden. Man sollte anschließend mit einem Widerstandsmeßgerät zwischen SV1 und SV2 nachmessen: Es sollte keine Verbindung mehr bestehen. Jetzt trennt man von der 1-reihigen Stiftleiste 2 Kontakte ab und lötet sie auf die Punkte SV1/SV2.&lt;br /&gt;
&lt;br /&gt;
Man kann hier zunächst eine Codierbrücke aufstecken. Damit versorgt der RP6 Akku die Sensoren mit 5V an den Pins VDD. Möchte man später eine getrennte 5V-Spannung anlegen, zieht man einfach die Codierbrücke ab und speist die externe 5V-Spannung (mit einer 1-poligen Steckbuchse) am Pin SV2 ein. Achtung: An Pin SV1 wird dann nichts angeschlossen!&lt;br /&gt;
&lt;br /&gt;
Anstelle der Codierbrücke kann man natürlich auch einen MOSFET anschließen, um die Sensoren per Software abschalten zu können.&lt;br /&gt;
&lt;br /&gt;
====ACS==== [[Bild:RP6_ACS_JP.JPG|thumb|RP6 ACS JP]]&lt;br /&gt;
Die Trennstelle ACS (SP2 E1: YIR1, YIR2; SP2 F1: YIR3) befindet sich neben C29*. Sie besteht aus 3 Lötpunkten, von denen die linken beiden (IRC1, IRC2) verbunden sind. Trennt man die Leiterbahn zwischen diesen Lötpunkten auf und verbindet stattdessen die rechten beiden Lötpunkte (IRC2, IRC3) mit etwas Lötzinn oder mit einem SMD Null Ohm Widerstand, dann ist der IR-Empfänger (TSOP, IC3) dauerhaft EINgeschaltet und kann nicht mehr über das Signal PWRON (PB4) geschaltet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IRC==== [[Bild:RP6_IRC_JP.JPG|thumb|RP6 IRC JP]]&lt;br /&gt;
Die Trennstelle IRC (SP2 C1: IRC1..2) ist eng verknüpft mit den Mess- und Kontaktpunkten des IRCOMM-Senders (siehe Abschnitt &amp;quot;Mess-/Kontaktpunkte - IRC&amp;quot; weiter oben!). Wenn man sie auftrennt, kann man den IRCOMM-Sender mit einer getrennten Stromversorgung anstelle von +UB des RP6 versehen. Dies ist sehr sinnvoll, wenn man diese Funktion häufig verwendet oder sogar noch leistungsfähigere IR-Sendedioden einbaut, denn der IRCOMM-Sender ist der zweitgrößte Stromfresser (nach dem Antrieb) auf dem RP6 (von Erweiterungsplatinen und EPs Marke Eigenbau einmal abgesehen!). Man kann hier natürlich auch eine 2-polige Stiftleiste einlöten, um die Verbindung zu +UB mit einer Codierbrücke trennbar zu machen. Eine getrennte Stromversorgung +7,2V (Bereich: +5,5 .. +10V) kann man an IRC1 einspeisen. IRC1 dieser Trennstelle ist mit dem Kontaktpunkt IRC3 (siehe Abschnitt &amp;quot;Mess-/Kontaktpunkte - IRC&amp;quot; weiter oben!) verbunden. &lt;br /&gt;
&lt;br /&gt;
====RP6 Antrieb====&lt;br /&gt;
Mit den folgenden Trennstellen kann man den RP6 Antrieb (H-Brücken und Motoren) fast komplett vom Rest des RP6 Mainboards abtrennen (es bleibt nur die 5V-Versorgung (VDD) von IC4, T1, T2 bestehen!). Damit ist es möglich, mit dem RP6 Mainboard einen ganz anderen Antrieb (also z.B. ein anderes Roboter-Chassis mit eigenen Motoren und H-Brücken) zu steuern. Umgekehrt könnte man den RP6 Antrieb auch deshalb abtrennen, um ihn durch ein anderes Prozessorsystem (z.B. auch eine M32!) anzusteuern. It's up to you!&lt;br /&gt;
&lt;br /&gt;
=====+UB Power===== [[Bild:RP6_HB_Power.jpg|thumb|RP6 HB Power]]&lt;br /&gt;
Der RP6 Antrieb wird direkt aus dem Akku (über S1 und F1) mit 7,2V (+UB) versorgt. Diese Stromversorgung kann man komplett abtrennen. Die Trennstelle (SP3 E34: X) liegt unter der Sicherung F1 (siehe Abb. RP6 HB Power). Zwischen den beiden doppelten Lötflächen befinden sich auf der Lötseite (Unterseite) des Mainboards vier parallele Leiterbahnen, die aufgetrennt werden müssen. Der Pluspol einer externen Spannung zur Versorgung des RP6 Antriebs kann dann mit einer Kabelverbindung an den doppelten Lötflächen (mit einem &amp;quot;+&amp;quot; gekennzeichnet) direkt neben dem Leistungswiderstand (R27) angeschlossen werden. Eine Absicherung dieser Stromversorgung sollte man unbedingt vorsehen (2,5A träge)!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Stromsensoren===== [[Bild:RP6_CS.JPG|thumb|RP6 CS]]&lt;br /&gt;
Um den Motorstrom der beiden Motoren des RP6 zu messen, wird ein Dual-Operationsverstärker (IC5 = 27M2C; SP3 B23/D23: IC5B/A) eingesetzt. Dieses IC wird über PWRON (PB4) mit Strom versorgt. Die Stromsensoren funktionieren also nicht, wenn PWRON Low-Pegel führt (Befehl powerOFF() der RP6 Library!). Auf dem RP6 Mainboard gibt es eine Trennstelle mit drei Lötflächen (SP3 E34: CS1, CS2, CS3). Sie befindet sich auf dem Mainboard neben C23. Möchte man IC5 nicht mehr über PWRON mit Strom versorgen, sondern über VDD (+5V), dann trennt man die Leiterbahn zwischen den linken beiden Lötpunkten (CS1, CS2) auf und verbindet die rechten beiden Lötpunkte (CS2, CS3) mit etwas Lötzinn oder einem SMD Null Ohm Widerstand. Danach sind die Stromsensoren immer eingeschaltet und können über PWRON nicht mehr geschaltet werden. Alternativ kann man an CS2 auch eine externe Versorgungsspannung (+5V) für IC5 einspeisen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====DR/MR/ML/DL===== [[Bild:RP6_DR_MR_ML_DL.JPG|thumb|RP6 DR MR ML DL]]&lt;br /&gt;
An diesen Trennstellen können die Eingänge der H-Brücke für die Geschwindigkeit (PWM) und Drehrichtung der Motoren von den Portpins des Microcontrollers abgetrennt werden.&lt;br /&gt;
Für den rechten Motor sind dies die Trennstellen MR1/2 und DR1/2 (SP3 A23: MR1/2, DR1/2), für den linken Motor ML1/2 und DL1/2 (SP3 F23: ML1/2, DL1/2).&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |Trennstelle&lt;br /&gt;
 |Portpin&lt;br /&gt;
 |Funktion H-Brücke&lt;br /&gt;
 |-&lt;br /&gt;
 |MR1/2&lt;br /&gt;
 |PD5 (OC1A)&lt;br /&gt;
 |PWM Motor rechts&lt;br /&gt;
 |-&lt;br /&gt;
 |DR1/2&lt;br /&gt;
 |PC3 (TMS)&lt;br /&gt;
 |Fahrtrichtung rechts&lt;br /&gt;
 |-&lt;br /&gt;
 |ML1/2&lt;br /&gt;
 |PD4 (OC1B)&lt;br /&gt;
 |PWM Motor links&lt;br /&gt;
 |-&lt;br /&gt;
 |DL1/2&lt;br /&gt;
 |PC2 (TCK)&lt;br /&gt;
 |Fahrtrichtung links&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
Trennt man die Leiterbahn (auf der Lötseite des RP6 Mainboards) zwischen den Lötpunkten der Trennstellen auf, kann man die Eingänge der H-Brücke (Mx1, Dx1) z.B. mit einem anderen Microcontroller verbinden. Die Ausgänge (Portpins) des RP6 Microcontrollers (Mx2, Dx2) können dann anders genutzt werden. Natürlich kann man auf die Lötpunkte dieser Trennstellen auch Stiftleisten löten, um den Anschluß steckbar zu machen.&lt;br /&gt;
&lt;br /&gt;
=====MCR/MCL===== [[Bild:RP6_MCR_MCL.JPG|thumb|RP6 MCR MCL]]&lt;br /&gt;
An diesen Trennstellen können die Motorstromsensoren von den ADC-Eingängen des Microcontrollers abgetrennt werden.&lt;br /&gt;
&lt;br /&gt;
Für den rechten Sensor ist dies die Trennstelle MCR1/2 (SP3 A1: MCR1, MCR2), für den linken Sensor MCL1/2 (SP3 E1: MCL1, MCL2).&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |Trennstelle&lt;br /&gt;
 |Portpin&lt;br /&gt;
 |Funktion H-Brücke&lt;br /&gt;
 |-&lt;br /&gt;
 |MCR1/2&lt;br /&gt;
 |PA5 (ADC5)&lt;br /&gt;
 |Motorstrom rechts&lt;br /&gt;
 |-&lt;br /&gt;
 |MCL1/2&lt;br /&gt;
 |PA6 (ADC6)&lt;br /&gt;
 |Motorstrom links&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
Trennt man die Leiterbahn (auf der Lötseite des RP6 Mainboards) zwischen den Lötpunkten der Trennstellen auf, kann man die ADC-Eingänge (Portpins) des RP6 Microcontrollers (MCx1) anders nutzen und die Ausgänge der Motorstromsensoren (MCx2) z.B. mit ADC-Eingängen eines anderen Microcontrollers verbinden. Natürlich kann man auf die Lötpunkte dieser Trennstellen auch Stiftleisten löten, um den Anschluß steckbar zu machen.&lt;br /&gt;
&lt;br /&gt;
====PWRON-LED==== [[Bild:RP6_PWRON_L.JPG|thumb|RP6 PWRON L]]&lt;br /&gt;
Auf dem RP6 Mainboard gibt es eine gelbe LED, die anzeigt, ob PWRON High-Pegel hat. Mit einer Trennstelle neben dieser LED (SP2 D4: YL1, YL2) kann diese LED deaktiviert werden (z.B. um Strom zu sparen).&lt;br /&gt;
&lt;br /&gt;
Dazu trennt man die Leiterbahn zwischen den Lötpunkten auf. Soll die LED wieder aktiviert werden, verbindet man die Lötpunkte wieder mit etwas Lötzinn oder einem SMD Null Ohm Widerstand.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====+UB Sensor==== [[Bild:RP6_UB.JPG|thumb|RP6 UB]]&lt;br /&gt;
Die Versorgungsspannung +UB des RP6 wird mit dem +UB-Spannungssensor an PA7 (ADC7) gemessen. Will man diesen Spannungssensor mit seinem Eingangsspannungsteiler R1, R2 (SP1 D12: R1, R2) von +UB abtrennen (z.B. um ihn anders zu verwenden), gibt es eine Trennstelle UB1/2 (SP1 D2: UB1, UB2). Trennt man die Leiterbahn auf der Lötseite des RP6 Mainboards zwischen den Lötpunkten auf, kann +UB nicht mehr gemessen werden. Man kann dann den Lötpunkt UB2 mit einem anderen Messpunkt (z.B. mit +BAT) verbinden und dort die Spannung (0..10V) messen. Natürlich kann man auf die Lötpunkte dieser Trennstellen auch Stiftleisten löten, um den Anschluß steckbar zu machen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====EXT Anschluß: Andere Stromversorgung==== [[Bild:RP6_S1_CHRG.jpg|thumb|RP6 S1 CHRG]]&lt;br /&gt;
Wenn man für den RP6 eine andere Stromversorgung oder Ladeschaltung anschließen will, geht dies gut am EXT Anschluß (SP1 C23: Stecker EXT). Siehe auch den Abschnitt &amp;quot;Anschlüsse - EXT Anschluß&amp;quot; weiter oben! Dann muss der Schalter S1 dauerhaft AUSgeschaltet bleiben und die Verbindung zwischen S1 und CHRG des EXT Anschlusses (SP1 C3: X) unterbrochen werden. Diese Trennstelle befindet sich auf der Lötseite (Unterseite) des RP6 Mainboards etwas versteckt zwischen S1 (Pin 3) und der benachbarten Leiterbahn, die CHRG des EXT Anschlusses mit der Ladebuchse CHARGER (Pin 1 +) verbindet. Dort sind fünf kurze, parallele Leiterbahnen zu unterbrechen (siehe gelbe Markierung in der Abb. RP6 S1 CHRG!). Will man das nicht machen, darf man die Ladebuchse CHARGER auf jeden Fall nicht mehr nutzen!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Lochraster-Felder===&lt;br /&gt;
Auf diesen Feldern kann man eigene kleine Schaltungen aufbauen. An jedem der sechs Felder stehen VDD (+5V) und GND zur Verfügung (SP4 E12: YVDDx, YGNDx).&lt;br /&gt;
&lt;br /&gt;
Bitte beachten: Die Lochreihen oder -spalten, die mit einer eckigen Klammer &amp;quot;[&amp;quot; markiert sind, liegen auf der Lötseite (Unterseite) direkt auf dem Rahmen des Chassis! Hier können also keine Drähte von unten verlötet werden.&lt;br /&gt;
&lt;br /&gt;
====Vorn links====&lt;br /&gt;
Das kleine Lochrasterfeld vorn links kann z.B. für Beleuchtung (Blinker, Scheinwerfer links) oder auch für einen zusätzlichen Sensor genutzt werden.&lt;br /&gt;
Zur Verfügung steht eine 2-adrige Verbindung zum mittleren Lochrasterfeld links.&lt;br /&gt;
&lt;br /&gt;
In der Nähe dieses Lochrasterfeldes gibt es auch:&lt;br /&gt;
* IO3, IO4 (SP2 E3: IO3, IO4)&lt;br /&gt;
* ADC0 (SP2 B1: ADC0)&lt;br /&gt;
&lt;br /&gt;
====Mitte links==== [[Bild:RP6_Lochfeld_LM.JPG|thumb|RP6 Lochrasterfeld Mitte links]]&lt;br /&gt;
Das größere Lochrasterfeld Mitte links kann z.B. für eine kleinere Schaltung zur Ansteuerung der Beleuchtung/Sensoren auf den Lochrasterfeldern vorn und hinten links oder für andere Zwecke genutzt werden.&lt;br /&gt;
&lt;br /&gt;
Es stehen hier folgende Anschlüsse zur Verfügung:&lt;br /&gt;
* 2-adrige Verbindung zum Lochrasterfeld vorn links&lt;br /&gt;
* 2-adrige Verbindung zum Lochrasterfeld hinten links&lt;br /&gt;
* ST1/ST2 zum Anschluß weiterer Start/Stop Taster (SP2 D2: ST1/2)&lt;br /&gt;
* PWR (SP2 D2: YPWR1)&lt;br /&gt;
* I2C-Bus (SCL, SDA; SP4 C1: YSCL1, YSDA1)&lt;br /&gt;
* +UB (SP4 D2: YUB1)&lt;br /&gt;
In der Nähe dieses Lochrasterfeldes gibt es auch:&lt;br /&gt;
* Serielle Schnittstelle (RST, TX, RX; SP4 AB5: YRX, YTX, YMRESET, YVDD)&lt;br /&gt;
* USRBUS1 (vorn; SP4 E34: Y1'..Y14')&lt;br /&gt;
&lt;br /&gt;
=====Schaltungsvorschläge=====&lt;br /&gt;
Wie kann z.B. eine Schaltung für Beleuchtungseffekte oder Sensoren aussehen?&lt;br /&gt;
&lt;br /&gt;
Man könnte 8 zusätzliche Schaltkanäle mit dem I2C-Portexpander-IC PCF8574(A)P gewinnen. Dieses IC passt mit wenigen Zusatzteilen auf die mittlere Lochrasterfläche. Angesteuert wird es über den I2C-Bus. Mit den 8 Ausgängen lassen sich einige Beleuchtungseffekte erreichen, die dann über Software schaltbar sind.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann man auch das IC PCF8591P z.B. für den Anschluß von analogen Sensoren verwenden. Auch dieser Baustein wird über I2C angesteuert. Beide ICs sind bei [http://www.reichelt.de./ Reichelt] erhältlich.&lt;br /&gt;
&lt;br /&gt;
Will man nicht den I2C-Bus benutzen, kann man als I/O-Ports IO1..IO4 oder als analoge Eingänge ADC0 und ADC1 verwenden. Auch SCL und SDA stehen als I/O-Ports zur Verfügung, wenn der I2C-Bus im ganzen System nicht verwendet werden soll.&lt;br /&gt;
&lt;br /&gt;
Wichtig für Zusatzschaltungen, die fest auf dem RP6 verlötet werden, sind zwei Aspekte:&lt;br /&gt;
* Wenn sie die Stromversorgung belasten, sollten sie (z.B. über einen Transistor oder MOSFET) abschaltbar sein. Dazu kann man auch das Signal PWR heranziehen, das auf beiden mittleren Lochrasterflächen zur Verfügung steht. Dann kann man mit dem Befehl &amp;quot;powerOFF()&amp;quot; der RP6 Library die Stromversorgung per Software abschalten.&lt;br /&gt;
* Wenn man auch anderweitig genutzte Portpins (SDA, SCL, IO1..IO4, ADC0/1) für die eigene Schaltung einsetzt, sollte man die Verbindung zu den Portpins mit einer abziehbaren Codierbrücke trennbar machen.&lt;br /&gt;
&lt;br /&gt;
====Hinten links====&lt;br /&gt;
Das kleine Lochrasterfeld hinten links kann z.B. für Beleuchtung (Blinker, Rücklicht links) oder auch für einen zusätzlichen Sensor genutzt werden.&lt;br /&gt;
Zur Verfügung steht eine 2-adrige Verbindung zum mittleren Lochrasterfeld links.&lt;br /&gt;
&lt;br /&gt;
In der Nähe dieses Lochrasterfeldes gibt es auch:&lt;br /&gt;
* EXT Anschluß (SP1 C23: Stecker EXT)&lt;br /&gt;
&lt;br /&gt;
====Vorn rechts====&lt;br /&gt;
Das kleine Lochrasterfeld vorn rechts kann z.B. für Beleuchtung (Blinker, Scheinwerfer rechts) oder auch für einen zusätzlichen Sensor genutzt werden.&lt;br /&gt;
Zur Verfügung steht eine 2-adrige Verbindung zum mittleren Lochrasterfeld rechts.&lt;br /&gt;
&lt;br /&gt;
In der Nähe dieses Lochrasterfeldes gibt es auch:&lt;br /&gt;
* IO1, IO2 (SP2 E3: IO1, IO2)&lt;br /&gt;
* ADC1 (SP2 B1: ADC1)&lt;br /&gt;
&lt;br /&gt;
====Mitte rechts====&lt;br /&gt;
Das größere Lochrasterfeld Mitte rechts kann z.B. für eine kleinere Schaltung zur Ansteuerung der Beleuchtung/Sensoren auf den Lochrasterfeldern vorn und hinten rechts oder für andere Zwecke genutzt werden.&lt;br /&gt;
&lt;br /&gt;
Es stehen hier folgende Anschlüsse zur Verfügung:&lt;br /&gt;
* 2-adrige Verbindung zum Lochrasterfeld vorn rechts&lt;br /&gt;
* 2-adrige Verbindung zum Lochrasterfeld hinten rechts&lt;br /&gt;
* PWR (SP2 D2: YPWR2)&lt;br /&gt;
* I2C-Bus (SCL, SDA; SP4 C1: YSCL2, YSDA2)&lt;br /&gt;
* +UB (SP4 D2: YUB2)&lt;br /&gt;
In der Nähe dieses Lochrasterfeldes gibt es auch:&lt;br /&gt;
* Interrupt-Anschluß (INTU, INT1..3, MRESET; SP4 D34: MRESET, INT1..3, INTU)&lt;br /&gt;
* USRBUS2 (hinten; SP4 E34: Y1..Y14)&lt;br /&gt;
&lt;br /&gt;
====Hinten rechts====&lt;br /&gt;
Das kleine Lochrasterfeld hinten rechts kann z.B. für Beleuchtung (Blinker, Rücklicht rechts) oder auch für einen zusätzlichen Sensor genutzt werden.&lt;br /&gt;
Zur Verfügung steht eine 2-adrige Verbindung zum mittleren Lochrasterfeld rechts.&lt;br /&gt;
&lt;br /&gt;
In der Nähe dieses Lochrasterfeldes gibt es auch:&lt;br /&gt;
* EXT Anschluß (SP1 C23: Stecker EXT)&lt;br /&gt;
* Akku-Anschluß (SP1 B3: BATTERY)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erweiterungen==&lt;br /&gt;
Auf / An den RP6 könnte man z.B. noch folgendes anbauen / erweitern:&lt;br /&gt;
&lt;br /&gt;
* Einen Greifarm&lt;br /&gt;
* Einen Ultraschallsensor&lt;br /&gt;
* Zwei Lichtsensoren hinten, um die hellste / dunkelste Stelle im Raum besser zu finden&lt;br /&gt;
* Einen digitalen Kompass&lt;br /&gt;
* uvm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erweiterungs-Module==&lt;br /&gt;
&lt;br /&gt;
Es sind von Arexx schon drei Erweiterungsmöglichkeiten auf dem Markt. Zum Ersten die Experimentierplatinen (191537), die zum Erstellen von eigenen Schaltungen und Sensoren gedacht sind, und von denen eine schon im Lieferumfang enthalten ist, das Erweiterungsboard RP6 CONTROL M32 (191550) und die RP6 CCPRO M128 (191563).&lt;br /&gt;
&lt;br /&gt;
Die Boards kann man dann über den I2C Bus mit dem Mainboard kommunizieren lassen.  Es ist sehr sinnvoll, die Module symmetrisch hintereinander zu stapeln und nicht mehr als 6-8 Module zu verbauen, weil der Roboter sonst immer schwerer und langsamer wird. Basierend auf dem Master-Slave System könnte man so bis zu 127 Slaves anschließen. Zudem ist es ratsam, qualitativ hochwertige Akkus und ein Ladegerät mit passendem Stecker zu verwenden, da man ansonsten immer das Mainboard abschrauben müsste um an die Akkus heranzukommen. Für den Fall wurde extra eine Ladebuchse eingebaut.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Experimentierplatine ===&lt;br /&gt;
[[Bild:RP6_Exp.jpg|RP6 Experimentierplatine]]&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Die Experimentier-Platine ist dazu gedacht, eigene Schaltungen auf dem RP6 zu realisieren. Sie wird über den I²C-Bus mit den anderen Erweiterungsmodulen verbunden. Ausserdem ist es sinnvoll, die (freien) I/O-Ports (ADC-Kanäle) der RP6 Base, des M32 Erweiterungsmoduls bzw. des CCPRO M128 Moduls über ein [http://www.reichelt.de/?;ACTION=3;LA=444;GROUP=C63;GROUPID=3328;ARTICLE=47637;START=0;SORT=artnr;OFFSET=16;SID=1580faBqwQAQ8AAGY-ZAM7cd511ee04a106a88a359faaac0071e2 10-Pol-Flachbandkabel] mit [http://www.reichelt.de/?ACTION=3;GROUP=C151;GROUPID=3231;ARTICLE=14571;SID=1580faBqwQAQ8AAGY-ZAM7cd511ee04a106a88a359faaac0071e2 Stecker] auf die Experimentierplatine zu führen, weil es übersichtlicher bleibt und keine Kabel lose herumhängen. Auf der Experimentierplatine kann man dann LEDs oder einen Temperatursensor an die I/O-Ports bzw. an die ADC-Kanäle anschießen.&lt;br /&gt;
&lt;br /&gt;
====Technische Daten====&lt;br /&gt;
{|  {{Blauetabelle}} &lt;br /&gt;
|'''Mikrocontroller:'''&lt;br /&gt;
|Keiner&lt;br /&gt;
|-&lt;br /&gt;
|'''Speicher:'''&lt;br /&gt;
|Keiner&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Programmierung:'''&lt;br /&gt;
|Kein Programmieradapter&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Sensoren:'''&lt;br /&gt;
|Keine&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Aktoren:'''&lt;br /&gt;
|Keine&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Abmessungen:'''&lt;br /&gt;
|(L &amp;amp;times; B &amp;amp;times; H) 112 &amp;amp;times; 90 &amp;amp;times; 10 mm&lt;br /&gt;
|-&lt;br /&gt;
|'''Ausführung:'''&lt;br /&gt;
|Bausatz&lt;br /&gt;
|-&lt;br /&gt;
|'''Stromversorgung:'''&lt;br /&gt;
|6 AA NiMH Akkus (über die RP6 Base)&lt;br /&gt;
|-&lt;br /&gt;
|'''Hersteller:'''&lt;br /&gt;
|Arexx Niederlande&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Schaltungsideen ====&lt;br /&gt;
Auf der / den Experimentierplatinen könnte man z.B. folgendes realisieren:&lt;br /&gt;
&lt;br /&gt;
* eine Kameraschaltung (wie [http://www.rn-wissen.de/index.php/RP6_Kamera_-_Mitmach-Projekt hier] gezeigt)&lt;br /&gt;
* Scheinwerfer, Rücklichter, Blinker etc. (ABER immer mit Vorwiderstand!!!)&lt;br /&gt;
* ein LED-Lauflicht (über I/O-Expander, gibt´s beim [http://www.reichelt.de/?ACTION=3;ARTICLE=14527;PROVID=2402 Reichelt])&lt;br /&gt;
* mehr ADC-Kanäle (über ADC-Expander, einfach mal nach PCF8591 [http://www.google.de/search?q=PCF8591 googlen])&lt;br /&gt;
* eine Wetterstation mit Luftfeuchtemesser, Temperaturfühler und Lichtmesser ([http://www.roboternetz.de/phpBB2/viewtopic.php?t=52298 hier] gibt es eine Wetterstation uvm.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RP6 CONTROL M32 Platine ===&lt;br /&gt;
[[Bild:RP6Control_M32.jpg|RP6 CONTROL M32]]&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Auf der M32 lassen sich weitere LEDs, Sensoren oder ähnliches anschließen, außerdem steht ein weiterer ATMEGA32 zur Verfügung, welcher sich gut im Master Modus betreiben lässt. Es sind ein Mikrofonsensor, fünf Taster, vier Status-LEDs, ein Display-Port, ein Beeper, 6 freie ADC-Kanäle, 8 freie I/O-Ports, ein Programmieradapter, ein JTAG-Anschluss, eine ISP-Programmierschnittstelle sowie ein freier Steckplatz für ein EEPROM verfügbar.&lt;br /&gt;
&lt;br /&gt;
====Technische Daten====&lt;br /&gt;
{|  {{Blauetabelle}} &lt;br /&gt;
|'''Mikrocontroller:'''&lt;br /&gt;
|AVR [[ATmega32]]&lt;br /&gt;
|-&lt;br /&gt;
|'''Speicher:'''&lt;br /&gt;
|32 kB [[Flash]]-Speicher, davon 1 kB bereits vom Bootloader belegt&amp;lt;br/&amp;gt;&lt;br /&gt;
2 kB SRAM&amp;lt;br/&amp;gt; &lt;br /&gt;
1 kB [[EEPROM]]&lt;br /&gt;
|-&lt;br /&gt;
|'''Programmierung:'''&lt;br /&gt;
|Über AVR-[[Bootloader]], belegt ca. 1 kB des Flash-Speichers&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Sensoren:'''&lt;br /&gt;
|1 Mikrofonsensor&amp;lt;br/&amp;gt;&lt;br /&gt;
5 Eingabetaster&amp;lt;br/&amp;gt;&lt;br /&gt;
14 I/O Ports, davon 6 ADC-Wandler&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Aktoren:'''&lt;br /&gt;
|1 Beeper&amp;lt;br/&amp;gt;&lt;br /&gt;
4 Status-LEDs&amp;lt;br/&amp;gt;&lt;br /&gt;
1 LC-Display-Port&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Abmessungen:'''&lt;br /&gt;
|(L &amp;amp;times; B &amp;amp;times; H) 112 &amp;amp;times; 90 &amp;amp;times; 15 mm&lt;br /&gt;
|-&lt;br /&gt;
|'''Ausführung:'''&lt;br /&gt;
|Fertig aufgebautes Erweiterungsmodul&lt;br /&gt;
|-&lt;br /&gt;
|'''Stromversorgung:'''&lt;br /&gt;
|6 AA NiMH Akkus (über die RP6 Base)&lt;br /&gt;
|-&lt;br /&gt;
|'''Hersteller:'''&lt;br /&gt;
|Arexx Niederlande&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Umbau-Optionen ====&lt;br /&gt;
Dieser Absatz soll die Möglichkeiten der RP6 CONTROL M32 Platine (im Folgenden &amp;quot;M32&amp;quot; genannt) auflisten, die es gibt, um auf einfache Weise weitere Anschlüsse oder Verbindungen zu ermöglichen. Nicht beschrieben werden die Anschlußmöglichkeiten, die in Form der vorhandenen Wannenstecker sowieso gegeben sind (z.B. am LCD-, I/O- oder ADC-Stecker). Im Text gibt es Verweise auf den Schaltplan der M32 (RP6_CONTROL_M32.PDF) in der Form: (SP2 B1: Bauteil).  Dies bedeutet, dass man das Bauteil auf Blatt 2 des RP6-M32-Schaltplans im Feld B1 finden kann.&lt;br /&gt;
&lt;br /&gt;
Folgende Möglichkeiten zum Umbau/Ausbau sind vorgesehen:&lt;br /&gt;
* Zweites SPI-EEPROM (IC5)&lt;br /&gt;
* Zwei analoge Sensoren, evtl. mit getrennter Stromversorgung&lt;br /&gt;
* ISP (In System Programming)&lt;br /&gt;
* JTAG-Programmierung&lt;br /&gt;
* USRBUS&lt;br /&gt;
* IRQ-Zuweisung ändern&lt;br /&gt;
* ADC0 und ADC1 anders nutzen&lt;br /&gt;
* Schieberegister kaskadieren&lt;br /&gt;
Im folgenden Text soll beschrieben werden, wie man die weiteren Möglichkeiten nutzen kann. Es wird jeweils erwähnt, was man an Material braucht. Beispielhaft sind da Bestell-Nummern der Firma [http://www.conrad.de/ce/ CONRAD] genannt. Natürlich kann man die Teile auch bei anderen Versendern beziehen. Durch die Nennung der Bestell-Nummer ist das jeweilige Teil aber gut zu identifizieren. Man sollte Löten können und sich bewußt sein, dass ggf. ein Garantieanspruch nicht mehr besteht, wenn man an der Platine gelötet hat.&lt;br /&gt;
&lt;br /&gt;
Bei den Materialangaben ist öfter die Rede von &amp;quot;Steckbuchsen mit Litze&amp;quot;. Diese Steckbuchsen mit angelöteter Litze können auf die ein- oder zweireihigen Stiftleisten aufgesteckt werden. Leider gibt es sie nicht (mehr) fertig konfektioniert bei CONRAD. Die einreihigen Steckbuchsen (RM 2,54mm) kann man aber z.B. bei [http://www.elv.de/output/controller.aspx ELV] bekommen: 2-polig (68-016635), 3-polig (68-022503) und 5-polig (68-023073). An sie muss man dann noch Litzen in der entsprechenden Länge selbst anlöten.&lt;br /&gt;
&lt;br /&gt;
===== Zweites SPI-EEPROM =====&lt;br /&gt;
Es ist sehr einfach, ein zweites SPI-EEPROM (SP1 A1: IC5*) auf der M32 zu nutzen.&lt;br /&gt;
&lt;br /&gt;
[[Bild:RP6_M32_IC5-Socket.JPG|thumb|Sockel des 2. SPI-EEPROMs]]&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* Einen IC-Sockel 8-pol DIP für IC5 ([http://www.conrad.de/ce/de/product/189600/IC-FASSUNG-PRAeZISION-8POLIG 189600])&lt;br /&gt;
* Einen Keramik-Vielschicht-Kondensator 100nF (C19); RM 2,54mm ([http://www.conrad.de/ce/de/product/453099/?insert=36&amp;amp;insertNoDeeplink&amp;amp;productname=KONDENSATOR-01-F-KDPU-254-MM 453099])&lt;br /&gt;
* Ein serielles SPI-EEPROM im PDIP8 Gehäuse (IC5)&lt;br /&gt;
Zuerst wird der IC-Sockel eingelötet (Kerbe beachten!), dann C19 (SP1 A1: C19*). Das war's.&lt;br /&gt;
&lt;br /&gt;
Leider gibt es das EEPROM nicht bei den gängigeren Versendern. Bekommen kann man es aber z.B. bei [http://de.farnell.com/jsp/home/homepage.jsp Farnell]. Dort hat das SPI-EEPROM mit 256 kbit die Bezeichnung 25LC256-I/P (1331398). Wenn man es noch größer mag: 25LC1024 (1331392) mit 1024 kbit. SPI-EEPROMs führt inzwischen auch [http://www.reichelt.de./ Reichelt].&lt;br /&gt;
&lt;br /&gt;
'''Programmierung:'''&lt;br /&gt;
&lt;br /&gt;
In die RP6ControlLib.h bitte einfügen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SPI_EEPROM2_PAGESIZE 64&lt;br /&gt;
&lt;br /&gt;
uint8_t SPI_EEPROM2_readByte(uint16_t memAddr);&lt;br /&gt;
void SPI_EEPROM2_writeByte(uint16_t memAddr, uint8_t data);&lt;br /&gt;
void SPI_EEPROM2_enableWrite(void);&lt;br /&gt;
void SPI_EEPROM2_disableWrite(void);&lt;br /&gt;
uint8_t SPI_EEPROM2_getStatus(void);&lt;br /&gt;
&lt;br /&gt;
void SPI_EEPROM2_writeBytes(uint16_t startAddr, uint8_t *buffer, uint8_t length);&lt;br /&gt;
void SPI_EEPROM2_readBytes(uint16_t startAddr, uint8_t *buffer, uint8_t length);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Konstante SPI_EEPROM2_PAGESIZE ist abhängig von der Art und Größe des EEPROMs. Für ein 256 kbit-EEPROM ist die Seitengröße (pagesize) in der Regel 64, für einen 512 kbit-Typ 128 und für einen 1024 kbit-Typ 256.&lt;br /&gt;
&lt;br /&gt;
In die RP6ControlLib.c bitte einfügen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*****************************************************************************/&lt;br /&gt;
// Second external SPI EEPROM:&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Reads a single Byte from the 2nd external EEPROM.&lt;br /&gt;
 */&lt;br /&gt;
uint8_t SPI_EEPROM2_readByte(uint16_t memAddr)&lt;br /&gt;
{&lt;br /&gt;
	uint8_t data;&lt;br /&gt;
	PORTB &amp;amp;= ~MEM_CS2;&lt;br /&gt;
	writeSPI(SPI_EEPROM_READ);&lt;br /&gt;
	writeWordSPI(memAddr);&lt;br /&gt;
	data = readSPI();&lt;br /&gt;
	PORTB |= MEM_CS2;&lt;br /&gt;
	return data;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Reads &amp;quot;length&amp;quot; Bytes into the Buffer &amp;quot;buffer&amp;quot; from startAdr on. &lt;br /&gt;
 * You can read the complete 2nd EEPROM into a buffer at once - if it is large enough. &lt;br /&gt;
 * (But you only have 2KB SRAM on a MEGA32 ;) )&lt;br /&gt;
 */&lt;br /&gt;
void SPI_EEPROM2_readBytes(uint16_t startAddr, uint8_t *buffer, uint8_t length)&lt;br /&gt;
{&lt;br /&gt;
	PORTB &amp;amp;= ~MEM_CS2;&lt;br /&gt;
	writeSPI(SPI_EEPROM_READ);&lt;br /&gt;
	writeWordSPI(startAddr);&lt;br /&gt;
	readBufferSPI(&amp;amp;buffer[0], length);&lt;br /&gt;
	PORTB |= MEM_CS2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Enable Write Mode&lt;br /&gt;
 */&lt;br /&gt;
void SPI_EEPROM2_enableWrite(void)&lt;br /&gt;
{&lt;br /&gt;
	PORTB &amp;amp;= ~MEM_CS2;&lt;br /&gt;
	writeSPI(SPI_EEPROM_WREN);&lt;br /&gt;
	PORTB |= MEM_CS2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Disable Write Mode&lt;br /&gt;
 */&lt;br /&gt;
void SPI_EEPROM2_disableWrite(void)&lt;br /&gt;
{&lt;br /&gt;
	PORTB &amp;amp;= ~MEM_CS2;&lt;br /&gt;
	writeSPI(SPI_EEPROM_WRDI);&lt;br /&gt;
	PORTB |= MEM_CS2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Write a single data byte to the specified 2nd EEPROM address.&lt;br /&gt;
 */&lt;br /&gt;
void SPI_EEPROM2_writeByte(uint16_t memAddr, uint8_t data)&lt;br /&gt;
{&lt;br /&gt;
	while(SPI_EEPROM2_getStatus() &amp;amp; SPI_EEPROM_STAT_WIP);&lt;br /&gt;
	SPI_EEPROM2_enableWrite();&lt;br /&gt;
	PORTB &amp;amp;= ~MEM_CS2;&lt;br /&gt;
	writeSPI(SPI_EEPROM_WRITE);&lt;br /&gt;
	writeWordSPI(memAddr);&lt;br /&gt;
	writeSPI(data);&lt;br /&gt;
	PORTB |= MEM_CS2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Write &amp;quot;length&amp;quot; Bytes from the Buffer to the 2nd EEPROM. &lt;br /&gt;
 * YOU CAN ONLY WRITE MAXIMAL [SPI_EEPROM2_PAGESIZE] BYTES AT ONCE!!!&lt;br /&gt;
 * This is the Pagesize!&lt;br /&gt;
 * You can NOT cross a page boundary!&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
void SPI_EEPROM2_writeBytes(uint16_t startAddr, uint8_t *buffer, uint8_t length)&lt;br /&gt;
{&lt;br /&gt;
	while(SPI_EEPROM2_getStatus() &amp;amp; SPI_EEPROM_STAT_WIP);&lt;br /&gt;
	SPI_EEPROM2_enableWrite();&lt;br /&gt;
	PORTB &amp;amp;= ~MEM_CS2;&lt;br /&gt;
	writeSPI(SPI_EEPROM_WRITE);&lt;br /&gt;
	writeWordSPI(startAddr);&lt;br /&gt;
	writeBufferSPI(&amp;amp;buffer[0], length);&lt;br /&gt;
	PORTB |= MEM_CS2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Returns EEPROM Status register - for checking if 2nd EEPROM is buisy. &lt;br /&gt;
 * Writing takes about 5ms. &lt;br /&gt;
 */&lt;br /&gt;
uint8_t SPI_EEPROM2_getStatus(void)&lt;br /&gt;
{&lt;br /&gt;
	uint8_t status;&lt;br /&gt;
	PORTB &amp;amp;= ~MEM_CS2;&lt;br /&gt;
	writeSPI(SPI_EEPROM_RDSR);&lt;br /&gt;
	status = readSPI();&lt;br /&gt;
	PORTB |= MEM_CS2;&lt;br /&gt;
	return status;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*****************************************************************************/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hinweis zum 1024 kbit-EEPROM:&lt;br /&gt;
&lt;br /&gt;
Dieses EEPROM benötigt 24-Bit Adressen und muss daher etwas anders angesprochen werden als die &amp;quot;kleineren&amp;quot; Typen bis 512 kbit.&lt;br /&gt;
Die Funktion SPI_EEPROM2_readByte() sieht für ein 1024 kbit-EEPROM z.B. so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;uint8_t SPI_EEPROM2_readByte(uint32_t memAddr)&lt;br /&gt;
{&lt;br /&gt;
	uint8_t data;&lt;br /&gt;
	PORTB &amp;amp;= ~MEM_CS2;&lt;br /&gt;
	writeSPI(SPI_EEPROM_READ);&lt;br /&gt;
	writeSPI((uint8_t)(memAddr &amp;gt;&amp;gt; 16));&lt;br /&gt;
	writeWordSPI((uint16_t)memAddr);&lt;br /&gt;
	data = readSPI();&lt;br /&gt;
	PORTB |= MEM_CS2;&lt;br /&gt;
	return data;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
Alle weiteren Funktionen, die EEPROM-Adressen verwenden (SPI_EEPROM2_readBytes, SPI_EEPROM2_writeByte, SPI_EEPROM2_writeBytes), müssen genau so angepasst werden.&lt;br /&gt;
&lt;br /&gt;
===== Anschlüsse =====&lt;br /&gt;
Hier wird aufgelistet, wo man auf der M32 Platine Anschlüsse nutzen kann, um sie z.B. zu weiteren Sensoren, zum USRBUS oder (weniger empfehlenswert!) direkt zu EPs, zur RP6 Base oder zur CCPRO M128 zu führen. &lt;br /&gt;
&lt;br /&gt;
====== Analoge Sensoren an ADC2/3 ====== [[Bild:RP6_M32_ADC23.JPG|thumb|ADC2 ADC3]]&lt;br /&gt;
Wenn man bis zu zwei analoge Sensoren (z.B. IR-Distanz-Mess-Sensoren Sharp GP2Y0A02YK 185364) direkt an die M32 anschließen möchte, dann gibt es da zwei 3-polige Kontakte, beschriftet mit VDD/GND/ADCx (x = 2..3). Hier kann man 3-polige Stiftleisten auflöten, an die dann die Sensoren angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 1-reihige Stiftleiste RM 2,54mm (z.B. 36-polig 732478)&lt;br /&gt;
* Zwei Keramik-Vielschicht-Kondensatoren 100nF (C16, C17); RM 2,54mm (453099)&lt;br /&gt;
* Ein Elektrolyt-Kondensator stehend 470 uF / 16V (C18); RM 3,5mm (446211)&lt;br /&gt;
* Zwei 3-polige Steckbuchsen mit Litze zum Anschluß der Sensoren&lt;br /&gt;
Man trennt von der 1-reihigen Stiftleiste zweimal 3 Kontakte ab und lötet sie auf die weiß umrahmten Kontakte (VDD/GND/ADCx; SP2 C23: ADC2, YGND8, YVDD6, ADC3, YGND7, YVDD5), anschließend C16, C17 (SP2 C1: C16*, C17*) auf ihre Plätze und zum Schluß den Elko 470 uF (C18; SP2 B1: C18*). Beim Elko auf die Polung achten: Er muss genau so sitzen wie sein Nachbar C1 (Minuspol schaut zum Beeper SND).&lt;br /&gt;
&lt;br /&gt;
Die Sensoren lötet man an die Litzen der 3-poligen Steckbuchsen und steckt diese auf die neuen Kontakte.&lt;br /&gt;
&lt;br /&gt;
Da manche Sensoren einen höheren Stromverbrauch haben, kann man die Stromversorgung an den VDD-Pins der ADC2/3-Stecker abschaltbar machen oder eine separate +5V-Spannung einspeisen. Siehe dazu den Abschnitt &amp;quot;Trennstellen - Getrennte Stromversorgung für ADC2/3&amp;quot; weiter unten!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== ISP (In System Programming) ======&lt;br /&gt;
Der ATMEGA32 der M32 wird standardmäßig über den PROG/UART Stecker programmiert. Dazu befindet sich im Prozessor ein Bootloader-Programm. Wenn man stattdessen oder zusätzlich die ISP-Programmierung mit einem dafür geeigneten ISP-Programmier-Adapter nutzen will, kann man den Adapter an den gewinkelten ISP-Stecker auf der M32 anschließen.&lt;br /&gt;
Vorher sind aber ein paar &amp;quot;Umbauarbeiten&amp;quot; erforderlich.&lt;br /&gt;
&lt;br /&gt;
[[Bild:RP6_M32_ISP.JPG|thumb|ISP]]&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 1-reihige Stiftleiste RM 2,54mm (z.B. 36-polig 732478)&lt;br /&gt;
* Einen SMD-Widerstand 10 kOhm (406376)&lt;br /&gt;
* Eine SMD-Diode LL 4148 (140902)&lt;br /&gt;
* Eine Codierbrücke (z.B. aus Set 742902)&lt;br /&gt;
&lt;br /&gt;
Der SMD-Widerstand wird auf seinen Platz (R1; SP1 A3: R1*) neben dem XBUS2-Stecker gelötet, danach die Diode LL 4148 (D2; SP1 B3: D2*). Die Kathode (Strich) der Diode zeigt in Richtung des Quarzes (X1). Zwischen R1 und C1 befinden sich drei Lötpunkte (beschriftet mit ISP/DEBUG - BOOTLOAD; SP1 A34: YRST1..3), auf die eine 3-polige Stiftleiste gelötet werden muss. Vorher muss eine kurze Leiterbahn zwischen den Lötpunkten BOOTLOAD aufgetrennt werden. Die Leiterbahn befindet sich auf der Lötseite der Platine und muss mit einem scharfen Messer oder einem speziellen Leiterbahn-Unterbrecher zwischen den beiden Lötpunkten unterbrochen werden. Man sollte anschließend mit einem Widerstandsmeßgerät nachmessen: Es sollte keine Verbindung mehr zwischen den Lötpunkten bestehen.&lt;br /&gt;
Man trennt dann von der 1-reihigen Stiftleiste 3 Kontakte ab und lötet sie auf die beschriebenen drei Lötpunkte.&lt;br /&gt;
&lt;br /&gt;
Wenn man jetzt eine Codierbrücke auf die mit &amp;quot;BOOTLOAD&amp;quot; beschrifteten Pins steckt, bleibt alles unverändert: Die Programmierung erfolgt weiter über den PROG/UART-Stecker mithilfe des Bootloaders im Prozessor. Wird die Codierbrücke in Stellung &amp;quot;ISP/DEBUG&amp;quot; umgesteckt, kann der Prozessor mit ISP programmiert werden.&lt;br /&gt;
&lt;br /&gt;
Vorsicht: Das Bootloader-Programm kann dabei zerstört werden! Es müssen zusätzlich Fusebits des ATMEGA32 verändert werden. &lt;br /&gt;
&lt;br /&gt;
Dabei kann der Prozessor im schlimmsten Fall nicht mehr ansprechbar sein. Man sollte diesen Umbau und die ISP-Programmierung nur machen, wenn man genau weiß, was man macht!&lt;br /&gt;
&lt;br /&gt;
Eine Kopie des Bootloaders und eine Kurzanleitung zum Einstellen der Fusebits gibt es hier: &lt;br /&gt;
[http://www.arexx.com/rp6/downloads/RP6_M32_BOOTLOADER.zip RP6_M32_BOOTLOADER]&lt;br /&gt;
&lt;br /&gt;
====== JTAG ====== [[Bild:RP6_M32_JTAG.JPG|thumb|JTAG]]&lt;br /&gt;
Die Programmierung und ein Debuggen sind auch mit der JTAG-Schnittstelle möglich. Das ist nur zu empfehlen, wenn man Erfahrungen mitbringt, oder der Prozessor der M32 durch eine ISP-Falschprogrammierung z.B. nicht mehr ansprechbar ist.&lt;br /&gt;
Um die JTAG-Schnittstelle nutzen zu können, muss der ISP-Umbau durchgeführt worden sein und die dort beschriebene Codierbrücke auf &amp;quot;ISP/DEBUG&amp;quot; gesteckt sein. Der JTAG-Programmer kann dann an die Lötpunkte &amp;quot;JTAG&amp;quot; zwischen ISP- und I/O-Stecker angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 2-reihige Stiftleiste RM 2,54mm (z.B. 2x36-polig 742007)&lt;br /&gt;
Man trennt von der 2-reihigen Stiftleiste 2x5 Kontakte ab und lötet sie auf die 10 JTAG-Lötpunkte (SP2 A12: YTDI, YTDO, YTMS, YTCK, YTRST, YVDD3/4, YGND3/4, YNC). Hier kann jetzt der JTAG-Programmer z.B. mit einem 10-poligen Flachkabel-Stecker angeschlossen werden. Um das JTAG-Interface des ATMEGA32 nutzen zu können, müssen Änderungen an den Fusebits vorgenommen werden.&lt;br /&gt;
&lt;br /&gt;
Vorsicht: Man sollte die JTAG-Programmierung und Fusebit-Manipulationen nur machen, wenn man genau weiß, was man macht!&lt;br /&gt;
&lt;br /&gt;
====== USRBUS ======&lt;br /&gt;
Die 14 Kontakte der beiden USRBUS-Stecker sind auf der M32 nirgendwo angeschlossen, sondern können über die Lötpunkte Y1..Y14 mit beliebigen Punkten auf der M32 verbunden werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:RP6_M32_USRBUS.JPG|thumb|USRBUS]]&lt;br /&gt;
&lt;br /&gt;
Ich würde auf Y1..Y14 eine Stiftleiste löten, damit die USRBUS-Belegung geändert werden kann.&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 2-reihige Stiftleiste RM 2,54mm (z.B. 2x36-polig 742007)&lt;br /&gt;
* Einige Steckbuchsen mit Litze&lt;br /&gt;
&lt;br /&gt;
Man trennt von der 2-reihigen Stiftleiste 2x7 Kontakte ab und lötet sie auf die Punkte Y1..Y14 (SP2 E3: Y1..Y14) neben dem Wannenstecker USRBUS2. Wird die M32 über Flachkabel mit einem USRBUS-Stecker auf einer RP6 Experimentierplatine (EP) und/oder mit dem RP6 selbst verbunden, dann hat man mit allen mit dem USRBUS verbundenen Platinen eine direkte 14-polige Verbindung,- eben den &amp;quot;User Bus&amp;quot;. Den kann man dann nutzen, wie man will. Auf der M32 kann man mit Steckbuchsen die Pins Y1..Y14 mit anderen Pins verbinden.&lt;br /&gt;
&lt;br /&gt;
Beispiel: Verbindet man den Pin &amp;quot;ADC2&amp;quot; mit Y1 des USRBUS, dann steht der Eingang ADC2 auf allen an den USRBUS angeschlossenen Platinen an Y1 zur Verfügung. Man braucht also diesen Eingang nicht über ein eigenes Kabel auf eine EP zu führen, sondern kann dazu den USRBUS nehmen. Dadurch bleibt der Gesamtaufbau auf dem RP6 übersichtlich und komplett trennbar (man braucht nur die Stecker XBUS und USRBUS abzuziehen!).&lt;br /&gt;
&lt;br /&gt;
Wichtig: Man sollte gut dokumentieren, wie man den USRBUS am RP6 (vorn und hinten getrennt!), auf EPs und der M32/M128 benutzt! Sonst kann es bei einer anderen Anordnung von EPs zu USRBUS Konflikten/Kurzschlüssen kommen.&lt;br /&gt;
&lt;br /&gt;
====== Schieberegister kaskadieren ====== [[Bild:RP6_M32_SPI.JPG|thumb|SPI]]&lt;br /&gt;
Auf der M32 wird ein 8-Bit Schieberegister-Baustein (IC3: 74HC4094D) dazu gebraucht, vier Status-LEDs (LED1..LED4) und ein LCD (am Stecker LCD) anzusteuern. Durch Schieberegister kann man Port-Pins gewinnen, wenn die Pins des Prozessors nicht ausreichen.&lt;br /&gt;
&lt;br /&gt;
Solche Schieberegister kann man &amp;quot;kaskadieren&amp;quot;, d.h. weitere identische Bausteine einbauen, die weitere Port-Pins zur Verfügung stellen. Wenn man zusätzliche 74HC4094 einsetzen will, wird man das am besten auf einer EP aufbauen. Die Anschlüsse für diese Schieberegister werden auf der M32 an einer 6-poligen Reihe von Lötpunkten (beschriftet mit MISO, STR, MOSI, SCK, QS, QS*; SP1 D3: YQS1/2, YMOSI, YSCK, YSTR, YMISO) links von IC3 zur Verfügung gestellt.&lt;br /&gt;
&lt;br /&gt;
Wenn man diese 6 Signalleitungen auf eine EP führen will, gibt es dafür zwei Möglichkeiten:&lt;br /&gt;
* a) Direkte 6-polige Kabelverbindung von den oben beschriebenen Lötpunkten zur EP&lt;br /&gt;
* b) Nutzung des USRBUS, um die 6 Signale zur EP zu führen&lt;br /&gt;
Wenn man im Abschnitt &amp;quot;USRBUS&amp;quot; den entsprechenden Umbau gemacht hat, würde ich b) empfehlen! Man könnte dafür eine 6-polige Stiftleiste auf die o.g. Lötpunkte auflöten und 1:1 z.B. mit den Pins Y4, Y6, Y8, Y10, Y12, Y14 des USRBUS verbinden. Dann kann man auf der EP weitere Schieberegister- und SPI-Bausteine (z.B. SPI-EEPROMs, RFM12 Transceiver o.ä.) aufbauen.&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 1-reihige Stiftleiste RM 2,54mm (z.B. 36-polig 732478)&lt;br /&gt;
* Steckbuchsen mit Litze&lt;br /&gt;
Man trennt von der 1-reihigen Stiftleiste 6 Kontakte ab und lötet sie auf die beschriebenen sechs Lötpunkte auf der M32. Mit den Steckbuchsen mit Litze wird dann die Verbindung entweder direkt zur EP (Option a) oder über den USRBUS zur EP (Option b) hergestellt.&lt;br /&gt;
&lt;br /&gt;
====== VDD/GND/+UB Anschluß ====== [[Bild:RP6_M32_VDDGNDUB.JPG|thumb|RP6 M32 VDD GND +UB]]&lt;br /&gt;
VDD, GND und +UB (SP2 C3: YUB1, YGND1/2/5, YVDD1/2) kann man auf der M32 an diesen Lötpunkten abnehmen.&lt;br /&gt;
&lt;br /&gt;
Natürlich kann man hier auch Stiftleisten auflöten.&lt;br /&gt;
&lt;br /&gt;
Auf der anderen Platinenseite (zwischen dem USRBUS1 und ISP Stecker) befinden sich zusätzlich noch 2 weitere Lötpunkte, an denen man VDD und GND kontaktieren kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Serielle Schnittstelle ====== [[Bild:RP6_M32_RST.JPG|thumb|RP6 M32 RST]]&lt;br /&gt;
Neben dem PROG/UART Stecker befinden sich 5 Lötpunkte mit den Signalen RST, TX, RX, GND, VDD (SP2 BC3: YRX, YTX, YRST, YVDD, YGND). Hier kann z.B. eine 5-polige Stiftleiste aufgelötet werden, um einen Anschluß an die serielle Schnittstelle zu ermöglichen.&lt;br /&gt;
 &lt;br /&gt;
Von diesen 5 Lötpunkten könnte z.B. auch eine Verbindung zum USRBUS hergestellt werden, um die serielle Schnittstelle der M32 auf EPs zu führen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== MEM_CS2 ====== [[Bild:RP6_M32_MEM_CS2.JPG|thumb|RP6 M32 MEM_CS2]]&lt;br /&gt;
MEM_CS2 (M32 Microcontroller Pin PB1) kann man am IC5-Sockel an Pin 1 (SP1 A1: IC5*, Pin 1) kontaktieren. Falls IC5 nicht eingesetzt werden soll, kann man hier durch Einstecken eines Kabels in Pin 1 des IC5-Sockels PB1 nutzen und z.B. zum USRBUS führen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Mess-/Kontaktpunkte =====&lt;br /&gt;
Hier geht es um Kontaktpunkte, an denen man z.B. den Logik-Pegel (High/Low) oder eine analoge Spannung messen kann. Natürlich kann man die Signale auch zur Weiterleitung auf eine EP kontaktieren, dies wird man aber normalerweise nicht brauchen.&lt;br /&gt;
&lt;br /&gt;
====== M-Signal ====== [[Bild:RP6_M32_M_SIGNAL.JPG|thumb|RP6 M32 M-Signal]]&lt;br /&gt;
An diesem Messpunkt (SP1 E3: YM_SIGNAL) neben D1 kann man die Ausgangsspannung des Mikrofon-Verstärkers IC4 (SP1 E3: IC4) messen oder z.B. mit einem Oszilloskop darstellen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Trennstellen =====&lt;br /&gt;
An diesen Stellen können Leiterbahnen unterbrochen werden, um Funktionen zu deaktivieren oder anders zu nutzen. &lt;br /&gt;
&lt;br /&gt;
====== Getrennte Stromversorgung für ADC2/3 ======&lt;br /&gt;
Wenn man für die analogen Sensoren an ADC2/3 (siehe Abschnitt &amp;quot;Anschlüsse - Analoge Sensoren an ADC2/3&amp;quot; weiter oben!) eine GETRENNTE Stromversorgung vorsehen will und/oder mit Codierbrücke (oder MOSFET) die Stromversorgung abschaltbar machen möchte, muss man erst Vorarbeit leisten.&lt;br /&gt;
[[Bild:RP6_M32_SV.jpg|thumb|RP6 M32 SV]]&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 1-reihige Stiftleiste RM 2,54mm (z.B. 36-polig 732478)&lt;br /&gt;
* Evtl.: Eine Codierbrücke (z.B. aus Set 742902)&lt;br /&gt;
* Evtl.: Eine 1-polige Steckbuchse mit Litze zur ext. Stromversorgung&lt;br /&gt;
Es muss eine kurze Leiterbahn zwischen den Punkten &amp;quot;SV1&amp;quot; und &amp;quot;SV2&amp;quot; (SP2 B2: SV1, SV2) aufgetrennt werden. Die Leiterbahn befindet sich auf der Lötseite der Platine und muss mit einem scharfen Messer oder einem speziellen Leiterbahn-Unterbrecher zwischen den beiden Lötpunkten unterbrochen werden. Man sollte anschließend mit einem Widerstandsmeßgerät zwischen SV1 und SV2 nachmessen: Es sollte keine Verbindung mehr bestehen. Jetzt trennt man von der 1-reihigen Stiftleiste 2 Kontakte ab und lötet sie auf die Punkte SV1/SV2.&lt;br /&gt;
&lt;br /&gt;
Man kann hier zunächst eine Codierbrücke aufstecken. Damit versorgt der RP6 Akku die Sensoren mit 5V an den Pins VDD. Möchte man später eine getrennte 5V-Spannung anlegen, zieht man einfach die Codierbrücke ab und speist die externe 5V-Spannung (mit einer 1-poligen Steckbuchse) am Pin SV2 ein. Achtung: An Pin SV1 wird dann nichts angeschlossen!&lt;br /&gt;
&lt;br /&gt;
Anstelle der Codierbrücke kann man natürlich auch einen MOSFET anschließen, um die Sensoren per Software abschalten zu können.&lt;br /&gt;
&lt;br /&gt;
====== Interrupt-Zuordnung ändern ======&lt;br /&gt;
Am XBUS stehen vier Interrupt-Pins (genannt INT1..INT3, INTU) zur Verfügung. INT1 ist auf der RP6 Base mit PA4 verbunden, auf der M32 mit PD2 (Prozessor INT0), auf der M128 mit PE5 (Prozessor INT5). Diese Tabelle zeigt die Verbindung aller Interruptleitungen auf den drei Platinen (RP6 Base, M32, M128) über den XBUS:&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |XBUS Pin&lt;br /&gt;
 |XBUS INTx&lt;br /&gt;
 |RP6 Base Pin&lt;br /&gt;
 |RP6 Base INTx&lt;br /&gt;
 |RP6 M32 Pin&lt;br /&gt;
 |RP6 M32 INTx&lt;br /&gt;
 |RP6 M128 Pin&lt;br /&gt;
 |RP6 M128 INTx&lt;br /&gt;
 |-&lt;br /&gt;
 |8&lt;br /&gt;
 |INT1&lt;br /&gt;
 |PA4&lt;br /&gt;
 |kein&lt;br /&gt;
 |PD2&lt;br /&gt;
 |INT0&lt;br /&gt;
 |PE5&lt;br /&gt;
 |INT5&lt;br /&gt;
 |-&lt;br /&gt;
 |11&lt;br /&gt;
 |INT2&lt;br /&gt;
 |n.c.&lt;br /&gt;
 |&lt;br /&gt;
 |PD3&lt;br /&gt;
 |INT1&lt;br /&gt;
 |n.c.&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |9&lt;br /&gt;
 |INT3&lt;br /&gt;
 |n.c.&lt;br /&gt;
 |&lt;br /&gt;
 |PB2&lt;br /&gt;
 |INT2&lt;br /&gt;
 |PE6&lt;br /&gt;
 |INT6&lt;br /&gt;
 |-&lt;br /&gt;
 |7&lt;br /&gt;
 |INTU&lt;br /&gt;
 |n.c.&lt;br /&gt;
 |&lt;br /&gt;
 |n.c.&lt;br /&gt;
 |&lt;br /&gt;
 |n.c.&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
Auf der M32 kann man die Interrupt-Zuordnung durch drei Codierbrücken (beschriftet mit I2-INTU, INT3-I3, I2-INT2; SP2 A3: YINT2/3/U, YI2_1/2, YI3) ändern.&lt;br /&gt;
&lt;br /&gt;
[[Bild:RP6_M32_INTx.JPG|thumb|INTx]]&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 2-reihige Stiftleiste RM 2,54mm (z.B. 2x36-polig 742007)&lt;br /&gt;
* Drei Codierbrücken (z.B. aus Set 742902)&lt;br /&gt;
Vor dem Auflöten der Stiftleiste müssen zwei kurze Leiterbahnen zwischen zwei Lötpunkten aufgetrennt werden, und zwar zwischen den Lötpunkten INT3-I3 und I2-INT2. Die Leiterbahnen müssen mit einem scharfen Messer oder einem speziellen Leiterbahn-Unterbrecher zwischen den beiden Lötpunkten unterbrochen werden. Man sollte anschließend mit einem Widerstandsmeßgerät nachmessen: Es sollte keine Verbindung mehr zwischen INT3-I3 und I2-INT2 bestehen. Man trennt dann von der 2-reihigen Stiftleiste 2x3 Kontakte ab und lötet sie auf das weiß umrahmte Feld mit der o.g. Beschriftung.&lt;br /&gt;
&lt;br /&gt;
Hier kann man auf INT3-I3 und I2-INT2 je eine Codierbrücke aufstecken, wenn man die Standard-Belegung beibehalten will. Steckt man auf I2-INTU eine Codierbrücke, dann ist INTU des XBUS mit Pin PD3 (I2) der M32 verbunden. Wenn man keine der Codierbrücken aufsteckt, sind die Pins PD3 (I2) und PB2 (I3) des M32-Prozessors nicht mehr mit dem XBUS verbunden und können anders verwendet werden. Auf der M32 kann man dann z.B. auch andere Verbindungen zum XBUS herstellen, indem man auf die Pins INT2, INT3 oder INTU Kabelverbindungen aufsteckt.&lt;br /&gt;
&lt;br /&gt;
====== ADC0 und ADC1 frei nutzen ======&lt;br /&gt;
Auf der M32 ist ADC0 fest mit dem Mikrofon (MIC) und ADC1 mit den Tastern T1..T5 (KEYPAD) verbunden. Wenn man diese ADC-Eingänge für andere Sensoren benötigt, kann man das Mikrofon und die Taster von den Eingängen abtrennen.&lt;br /&gt;
&lt;br /&gt;
[[Bild:RP6_M32_MIC_KEY.JPG|thumb|MIC_KEYPAD]]&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 1-reihige Stiftleiste RM 2,54mm (z.B. 36-polig 732478)&lt;br /&gt;
* Eine Codierbrücke (z.B. aus Set 742902)&lt;br /&gt;
&lt;br /&gt;
MIC/ADC0:&lt;br /&gt;
Es muss eine kurze Leiterbahn zwischen zwei Lötpunkten aufgetrennt werden, die sich zwischen R2 und C19 befinden (SP1 D4: YM1, YM2). Die Leiterbahn muss mit einem scharfen Messer oder einem speziellen Leiterbahn-Unterbrecher zwischen den beiden Lötpunkten unterbrochen werden. Man sollte anschließend mit einem Widerstandsmeßgerät nachmessen: Es sollte keine Verbindung mehr bestehen. Vorsicht: Nicht R2 beschädigen! Damit ist das Mikrofon auf der M32 ohne Funktion und ADC0 kann anders genutzt werden. ADC0 ist dann am oberen Lötpunkt zwischen R2 und C19 verfügbar, dort müßte eine Kabelverbindung angelötet werden.&lt;br /&gt;
Soll das Mikrofon später doch wieder an ADC0 angeschlossen werden, verbindet man die beiden Lötpunkte zwischen R2 und C19 einfach mit etwas Lötzinn oder mit einem SMD Null Ohm Widerstand.&lt;br /&gt;
&lt;br /&gt;
KEYPAD/ADC1:&lt;br /&gt;
Es muss eine kurze Leiterbahn zwischen zwei Lötpunkten aufgetrennt werden, die sich unterhalb von R15 befinden (SP1 D2: YKP1, YKP2). Die Leiterbahn befindet sich auf der Lötseite der Platine und muss mit einem scharfen Messer oder einem speziellen Leiterbahn-Unterbrecher zwischen den beiden Lötpunkten unterbrochen werden. Man sollte anschließend mit einem Widerstandsmeßgerät nachmessen: Es sollte keine Verbindung mehr bestehen. Jetzt trennt man von der 1-reihigen Stiftleiste 2 Kontakte ab und lötet sie auf die beiden Punkte unterhalb von R15. Hier kann man jetzt eine Codierbrücke aufstecken, wenn man die Taster weiter benutzen will. Wenn die Brücke abgezogen ist, sind die Taster ohne Funktion und ADC1 kann anders genutzt werden. ADC1 ist dann am linken Pin der 2-poligen Stiftleiste unterhalb von R15 verfügbar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RP6 CCPRO M128 Platine===&lt;br /&gt;
&lt;br /&gt;
[[Bild:CCPRO M128 k-1-.jpg|Das CCPRO M128]]&lt;br /&gt;
&lt;br /&gt;
====Technische Daten====&lt;br /&gt;
{|  {{Blauetabelle}} &lt;br /&gt;
|'''Mikrocontroller:'''&lt;br /&gt;
|Steckplatz für ein C-Control PRO MEGA128 Modul mit einem ATMEGA128&lt;br /&gt;
|-&lt;br /&gt;
|'''Speicher:'''&lt;br /&gt;
|128 kB [[Flash]]-Speicher, davon 4 kB bereits vom Bootloader belegt&amp;lt;br/&amp;gt;&lt;br /&gt;
4 kB SRAM intern&amp;lt;br/&amp;gt; &lt;br /&gt;
64 kB SRAM extern&amp;lt;br/&amp;gt;&lt;br /&gt;
4 kB [[EEPROM]]&lt;br /&gt;
|-&lt;br /&gt;
|'''Programmierung:'''&lt;br /&gt;
|Über CCPRO-IDE&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Sensoren:'''&lt;br /&gt;
|1 12bit I²C Temperatursensor &amp;lt;br/&amp;gt;&lt;br /&gt;
19 I/O-Ports, davon 8 ADCs, 3 PWM (Servos) und 2 I/Os für eine weitere serielle Schnittstelle (UART)&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Aktoren:'''&lt;br /&gt;
|1 Beeper&amp;lt;br/&amp;gt;&lt;br /&gt;
5 Status-LEDs&amp;lt;br/&amp;gt;&lt;br /&gt;
1 LC-Display-Port&amp;lt;br/&amp;gt;&lt;br /&gt;
1 Sockel für ein I²C-Bus EEPROM vom Typ 24(L)Cxxx&lt;br /&gt;
|-&lt;br /&gt;
|'''Abmessungen:'''&lt;br /&gt;
|(L &amp;amp;times; B &amp;amp;times; H) 112 &amp;amp;times; 90 &amp;amp;times; 21 mm&lt;br /&gt;
|-&lt;br /&gt;
|'''Ausführung:'''&lt;br /&gt;
|Fertig aufgebautes Erweiterungsmodul&lt;br /&gt;
|-&lt;br /&gt;
|'''Stromversorgung:'''&lt;br /&gt;
|6 AA NiMH Akkus (über die RP6 Base)&lt;br /&gt;
|-&lt;br /&gt;
|'''Hersteller:'''&lt;br /&gt;
|Arexx Niederlande&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Umbauoptionen====&lt;br /&gt;
Auf der CCPRO M128 kann leider nicht so viel umgebaut werden:&lt;br /&gt;
&lt;br /&gt;
* I2C-EEPROM&lt;br /&gt;
* Freie Nutzung von PORTA* und PORTC*&lt;br /&gt;
* USRBUS&lt;br /&gt;
* A16-/PD4-Nutzung&lt;br /&gt;
&lt;br /&gt;
Im Text gibt es Verweise auf den Schaltplan der CCPRO M128 (RP6_CCPRO_M128_Schematic.PDF) in der Form: (SP2 B1: Bauteil).  Dies bedeutet, dass man das Bauteil auf Blatt 2 des M128-Schaltplans im Feld B1 finden kann.&lt;br /&gt;
&lt;br /&gt;
Bei den Materialangaben ist öfter die Rede von &amp;quot;Steckbuchsen mit Litze&amp;quot;. Diese Steckbuchsen mit angelöteter Litze können auf die ein- oder zweireihigen Stiftleisten aufgesteckt werden. Leider gibt es sie nicht (mehr) fertig konfektioniert bei CONRAD. Die einreihigen Steckbuchsen (RM 2,54mm) kann man aber z.B. bei [http://www.elv.de/output/controller.aspx ELV] bekommen: 2-polig (68-016635), 3-polig (68-022503) und 5-polig (68-023073). An sie muss man dann noch Litzen in der entsprechenden Länge selbst anlöten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====I2C-EEPROM=====&lt;br /&gt;
Zum Einsetzen eines I2C-EEPROMS (IC6; SP2 C1: IC6) braucht man nichts umzubauen. Man kauft einfach ein passendes EEPROM des Typs 24(L)Cxxxx-P und setzt es auf seinen Sockel, Kerbe zum oberen Platinenrand.&lt;br /&gt;
&lt;br /&gt;
Mögliche Typen (erhältlich z.B. bei [http://www.digikey.de/ Digi-Key] oder bei [http://www.reichelt.de./ Reichelt]):&lt;br /&gt;
* AT24C128  (AT24C128-10PU-2.7-ND)&lt;br /&gt;
* AT24C256  (AT24C256-10PU-2.7-ND)&lt;br /&gt;
* AT24C512  (AT24C512-10PU-2.7-ND)&lt;br /&gt;
* AT24C1024 (AT24C1024-10PI-2.7-ND)&lt;br /&gt;
&lt;br /&gt;
=====Anschlüsse=====&lt;br /&gt;
Hier wird aufgelistet, wo man auf der M128 Platine Anschlüsse nutzen kann, um sie z.B. zu weiteren Sensoren, zum USRBUS oder (weniger empfehlenswert!) direkt zu EPs, zur RP6 Base oder zur M32 zu führen. &lt;br /&gt;
&lt;br /&gt;
======Freie Nutzung von PORTA* und PORTC*======&lt;br /&gt;
Um PORTA* und PORTC* frei nutzen zu können (für weitere I/O-Ports), muss man auf das externe SRAM verzichten, was nicht sehr ratsam ist. Mehr I/O-Ports kann man alternativ durch I/O Expander gewinnen. Falls man das SRAM trotzdem deaktivieren will, hier die Anleitung.&lt;br /&gt;
&lt;br /&gt;
Für den Umbau braucht man:&lt;br /&gt;
* Wannenstecker 2x5-polig gerade RM 2,54mm (z.B. [http://www.reichelt.de./ Reichelt] WSL 10G)&lt;br /&gt;
* 1-reihige Stiftleiste RM 2,54mm (z.B. 36-polig 732478)&lt;br /&gt;
* Eine Codierbrücke (z.B. aus Set 742902)&lt;br /&gt;
[[Bild:RP6_M128_PortA.JPG|thumb|PORTA*]]&lt;br /&gt;
&lt;br /&gt;
Für die Bestückung von PORTA* (SP2 AB2: Stecker PORTA*) lötet man den Wannenstecker hier (siehe Abb. PORTA*) auf.&lt;br /&gt;
[[Bild:RP6_M128_PortC.JPG|thumb|PORTC*]]&lt;br /&gt;
&lt;br /&gt;
Für die Bestückung von PORTC* (SP1 A2: PC0..7, YGND1) trennt man von der 1-reihigen Stiftleiste 9 Kontakte ab und lötet sie auf die PORTC*-Lötpunkte (siehe Abb. PORTC*).&lt;br /&gt;
&lt;br /&gt;
Dann muss noch der SRAM-Enable Jumper (SP1 EF1: Y27..29) bestückt werden:&lt;br /&gt;
&lt;br /&gt;
[[Bild:RP6_M128_EN_SRAM.JPG|EN_SRAM]]&lt;br /&gt;
&lt;br /&gt;
Man trennt von der 1-reihigen Stiftleiste 3 Kontakte ab und lötet sie auf die abgebildeten Lötpunkte. Vorher muss eine Leiterbahn auf der Lötseite der Platine zwischen den ENABLE-Lötpunkten aufgetrennt werden.&lt;br /&gt;
Wenn das SRAM wie bisher genutzt werden soll, steckt man die Codierbrücke auf die Stellung &amp;quot;ENABLE&amp;quot;. Will man stattdessen Port A und Port C frei nutzen (und damit auf SRAM verzichten!), kommt die Codierbrücke auf &amp;quot;DISABLE&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
======USRBUS======&lt;br /&gt;
Auf die 14 Kontakte neben dem Wannenstecker USRBUS2 ist noch nichts gelötet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:RP6_M128_USRBUS.JPG|thumb|USRBUS]]&lt;br /&gt;
&lt;br /&gt;
Ich würde auf Y1..Y14 eine Stiftleiste löten, damit die USRBUS-Belegung geändert werden kann.&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 2-reihige Stiftleiste RM 2,54mm (z.B. 2x36-polig 742007)&lt;br /&gt;
* Einige Steckbuchsen mit Litze&lt;br /&gt;
&lt;br /&gt;
Man trennt von der 2-reihigen Stiftleiste 2x7 Kontakte ab und lötet sie auf die Punkte Y1..Y14 (SP2 E234: Y1..Y14) neben dem Wannenstecker USRBUS2. Wird die M128 über Flachkabel mit einem USRBUS-Stecker auf einer RP6 Experimentierplatine (EP) und/oder mit dem RP6 selbst verbunden, dann hat man mit allen mit dem USRBUS verbundenen Platinen eine direkte 14-polige Verbindung,- eben den &amp;quot;User Bus&amp;quot;. Den kann man dann nutzen, wie man will. Auf der M128 kann man mit Steckbuchsen die Pins Y1..Y14 mit anderen Pins verbinden.&lt;br /&gt;
&lt;br /&gt;
Beispiel: Verbindet man den Pin &amp;quot;ADC4&amp;quot; mit Y1 des USRBUS, dann steht der Eingang ADC4 auf allen an den USRBUS angeschlossenen Platinen an Y1 zur Verfügung. Man braucht also diesen Eingang nicht über ein eigenes Kabel auf eine EP zu führen, sondern kann dazu den USRBUS nehmen. Dadurch bleibt der Gesamtaufbau auf dem RP6 übersichtlich und komplett trennbar (man braucht nur die Stecker XBUS und USRBUS abzuziehen!).&lt;br /&gt;
&lt;br /&gt;
Wichtig: Man sollte gut dokumentieren, wie man den USRBUS am RP6 (vorn und hinten getrennt!), auf EPs und der M128 benutzt! Sonst kann es bei einer anderen Anordnung von EPs zu USRBUS Konflikten/Kurzschlüssen kommen.&lt;br /&gt;
&lt;br /&gt;
======IC5 ALERT====== [[Bild:RP6_M128_IC5_ALERT.JPG|thumb|IC5 ALERT]]&lt;br /&gt;
Dieser Lötpunkt (SP2 C2: AL) neben IC5 ist der Anschluß ALERT (Pin 3) des I2C-Temperatursensors TCN75A (SP2 C2: IC5).&lt;br /&gt;
&lt;br /&gt;
Dies ist ein Open-Drain Ausgang, der ein Alarm-Signal ausgibt, wenn die Temperatur die eingestellten Grenzen über-/unterschreitet (siehe auch Datenblatt des Sensors (TCN75A.pdf), Abschnitt 5.3.4!). Wenn man ALERT auf einen Eingang des Microcontrollers führen will, muß man auch noch einen Pullup-Widerstand vorsehen oder den internen Pullup des uC-Eingangs aktivieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======VDD/GND Anschluß====== [[Bild:RP6_M128_VDDGND.JPG|thumb|VDD GND]]&lt;br /&gt;
Auf der CCPRO M128 gibt es 2 Lötpunkte (SP1 E34: YVDD3, YGND4) zwischen R5 und C7 bzw. direkt neben der Codierbrücke (SP1 E3: YL9, YL10) zum Deaktivieren von LED5.&lt;br /&gt;
&lt;br /&gt;
Hier könnte man VDD und GND kontaktieren. VDD ist der Lötpunkt, der näher an R5 liegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Trennstellen=====&lt;br /&gt;
An diesen Stellen können Leiterbahnen unterbrochen werden, um Funktionen zu deaktivieren oder anders zu nutzen. &lt;br /&gt;
&lt;br /&gt;
======A16-/PD4-Nutzung====== [[Bild:RP6_M128_A16.JPG|thumb|A16/PD4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf der CCPRO M128 gibt es ein 3-poliges Feld von Lötpunkten (SP2 AB1: PD4, A16, GND) unter dem CCPRO MEGA128 Modul (IC1). Standardmässig ist A16 des SRAM (IC3) hier auf GND gelegt. Damit kann man PD4 des Prozessors (ICP1) frei nutzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Will man A16 des SRAM mit PD4 schaltbar machen, muss man eine Leiterbahn auf der Bestückungsseite zwischen den oberen zwei der drei Lötpunkte auftrennen und die anderen (unteren) beiden Lötpunkte mit etwas Lötzinn oder einem SMD Null Ohm Widerstand verbinden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Sinn dieses Umbaus besteht darin, dass man danach anstelle von 64kB nun die vollen 128kB SRAM des IC3 adressieren kann. Man muss dann aber PD4 selbst schalten, da C-Control PRO ab Version 1.50 nur 64kB ext. SRAM ansteuern kann. Immerhin könnte man dann 2 Blöcke à je 64kB nutzen und mit PD4 zwischen beiden Blöcken umschalten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ob CCPRO damit klar kommt: Wohl kaum! Ich würde daher diesen Umbau nicht durchführen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zubehör und Ersatzteile ==&lt;br /&gt;
Von [http://www.conrad.de/ce/ CONRAD] gibt es z.B. &lt;br /&gt;
&lt;br /&gt;
* das LC-Display [http://www.conrad.de/ce/de/product/190911/LC-DISPLAY-16-X-2-KONFEKTIONIERT 190911], welches an die M32 und an die CCPRO M128 angeschlossen werden kann.&lt;br /&gt;
* einen IR-Ball [http://www.conrad.de/ce/de/product/191437/INFRAROT-BALL-FUeR-ROBOTER-FUssBALL 191437]&lt;br /&gt;
* einen Graustufen-Boden-Sensor [http://www.conrad.de/ce/de/product/191599/GRAUSTUFEN-BODEN-SENSOR-FUeR-FUssBALLROBOT 191599]&lt;br /&gt;
* eine IR-Fernbedienung [http://www.conrad.de/ce/de/product/340720/PROMO-8-UNIVERSALFERNBEDIENUNG 340720]&lt;br /&gt;
* Ersatzräder [http://www.conrad.de/ce/de/product/191307/ANTRIEBSRAD-RP5RP6 191307]&lt;br /&gt;
* Ersatzzahnräder [http://www.conrad.de/ce/de/product/191346/SCHRAeG-ZAHNRAeDERSATZ-RP5RP6 191346]&lt;br /&gt;
* Ersatzraupen [http://www.conrad.de/ce/de/product/191333/RAUPENSATZ-RP5RP6 191333]&lt;br /&gt;
&lt;br /&gt;
===Displays===&lt;br /&gt;
Die vorkonfektionierten Displays kann man zum Ausgeben von Texten, Sensordaten und kleinen Animationen benutzen. Sie können an die M32 und die CCPRO M128 angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Diese 16x2 Zeichen Displays sind bisher lieferbar:&lt;br /&gt;
&lt;br /&gt;
* LC-Display ([http://www.conrad.de/ce/de/product/190911/LC-DISPLAY-16-X-2-KONFEKTIONIERT 190911])&lt;br /&gt;
* OLED-Display (197622)&lt;br /&gt;
* Backlight-Display ([http://www.conrad.de/ce/de/product/191621/DISPLAY-RP5RP6-BLAU-MIT-BACKLIGHT 191621])&lt;br /&gt;
&lt;br /&gt;
Das LCD ist weiterhin lieferbar, zeitweise (2007/08) gab es unter dieser Bestellnummer eine Version, die zu klein (66 x 37mm) war, um sie auf der M32 oder der CCPRO M128 zu montieren.&lt;br /&gt;
&lt;br /&gt;
Das OLED-Display ist aktuell (April 2012) nicht mehr lieferbar.&lt;br /&gt;
&lt;br /&gt;
Neu im Angebot ist das Backlight-Display.&lt;br /&gt;
&lt;br /&gt;
Diese Displays können mit 4 M3-Abstandbolzen 25 mm (Bestell-Nr. 526665) und 4 Muttern M3 (z.B. aus 815624), sowie 4 Schrauben M3 (z.B. aus 815322) auf der M32 oder CCPRO M128 befestigt werden. Leider sind die Befestigungslöcher der Displays zu klein für ein M3-Gewinde, so dass man die Löcher sehr vorsichtig auf 3..3,2 mm erweitern muss.&lt;br /&gt;
&lt;br /&gt;
===IR-Ball===&lt;br /&gt;
Den IR-Ball kann man benutzen um mit dem RP6 Fußball oder ähnliches zu spielen.&lt;br /&gt;
&lt;br /&gt;
===Graustufen-Boden-Sensor===&lt;br /&gt;
&lt;br /&gt;
===IR-Fernbedienung===&lt;br /&gt;
[[Bild:RP6_RC.jpg|thumb|2 RC5 Fernbedinungen]]&lt;br /&gt;
Mit der IR-Fernbedienung kann der RP6 wie ein ferngesteuertes Auto verwendet werden. Im Beispielprogramm &amp;quot;Example_08_TV_REMOTE&amp;quot; im Ordner mit den RP6-Base-Demos wird das noch genauer erläutert.&lt;br /&gt;
&lt;br /&gt;
===Ersatzräder===&lt;br /&gt;
Die Ersatzräder sind bei Conrad unter der Bestellnummer '''191307 - 62''' erhältlich&lt;br /&gt;
&lt;br /&gt;
===Ersatzzahnräder===&lt;br /&gt;
Die Ersatzzahnräder sind bei Conrad unter der Bestellnummer '''191346 - 62''' erhältlich&lt;br /&gt;
&lt;br /&gt;
===Ersatzraupen===&lt;br /&gt;
Die Ersatzraupensind bei Conrad unter der Bestellnummer '''191333 - 62''' erhältlich&lt;br /&gt;
&lt;br /&gt;
==Programmierung==&lt;br /&gt;
Um diesen Grundlagenartikel zum RP6 nicht immer länger werden zu lassen, habe ich den Teil zur Programmierung des RP6 und seiner Erweiterungsplatinen RP6 CONTROL M32 und RP6 CCPRO M128 ausgelagert: [[RP6 - Programmierung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==RP6v2==&lt;br /&gt;
Der neue RP6v2 ist weitgehend identisch mit dem RP6, so dass fast alle Angaben dieses Artikels auch für den RP6v2 zutreffen.&lt;br /&gt;
Für vom RP6 abweichende Details des [http://www.conrad.de/ce/de/product/191584/RP6-V2-ROBOTERSYSTEM RP6v2] und für dessen zukünftige Erweiterungsplatinen (z.B. die aktuell [http://www.arexx.com/forum/viewtopic.php?f=19&amp;amp;t=1797 hier] angekündigte RP6v2 M256 WiFi) gibt es einen eigenen Grundlagenartikel: [[RP6v2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erfahrungsberichte==&lt;br /&gt;
&lt;br /&gt;
...in Arbeit...(kann aber gerne ergänzt werden)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[RP6 - Programmierung]]&lt;br /&gt;
* [[RP6v2]]&lt;br /&gt;
* [[RP6_Kamera_-_Mitmach-Projekt]]&lt;br /&gt;
* [[RP6v2_I2C-Portexpander]]&lt;br /&gt;
* [[CCRP5]]&lt;br /&gt;
* [[Yeti]]&lt;br /&gt;
* [[Asuro]]&lt;br /&gt;
* [[C't-Bot]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
&lt;br /&gt;
* [http://www.pcwelt.de/start/gaming_fun/gadgets/news/84558/ PC-Welt-Artikel]&lt;br /&gt;
&lt;br /&gt;
* Ankündigung des RP6 und der RP6 CONTROL M32 im [http://www.arexx.com/forum/viewtopic.php?t=370 AREXX Support Forum]&lt;br /&gt;
* Ankündigung der RP6 CCPRO M128 im [http://www.arexx.com/forum/viewtopic.php?f=19&amp;amp;t=834&amp;amp;start=0 AREXX Support Forum] und im [http://www.roboternetz.de/community/threads/42228-RP6-C-Control-PRO-MEGA128-Erweiterungsmodul-Website-online RoboterNETZ]&lt;br /&gt;
* Ankündigung des RP6v2 im [http://www.roboternetz.de/community/threads/56964-NEWS-RP6v2-die-neue-Version-2-des-RP6-Robot-Systems RoboterNETZ] und im [http://www.arexx.com/forum/viewtopic.php?f=19&amp;amp;t=1778 AREXX Support Forum]&lt;br /&gt;
* Ankündigung der RP6v2 M256 WiFi im [http://www.arexx.com/forum/viewtopic.php?f=19&amp;amp;t=1797 AREXX Support Forum]&lt;br /&gt;
* [http://www.arexx.com/rp6 AREXX RP6 Startseite]&lt;br /&gt;
* [http://www.arexx.com/forum/viewforum.php?f=19 AREXX Support Forum]&lt;br /&gt;
* [http://www.arexx.com/rp6/html/de/soft_doc_ccpro.htm AREXX CCPRO M128 Seite]&lt;br /&gt;
&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191524/RP6-ROBOTERSYSTEM RP6 bei CONRAD]&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191584/RP6-V2-ROBOTERSYSTEM RP6v2 bei CONRAD]&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191550/RP6-MEGA32-ERWEITERUNGSSATZ RP6 CONTROL M32 bei CONRAD]&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191563/RP6-CC-PRO-MEGA128-ERWEITERUNGSSATZ RP6 CCPRO M128 bei CONRAD]&lt;br /&gt;
* [http://www.c-control.de/c-control-pro/c-control-pro/startseite_c-control-pro.html C-Control PRO Startseite]&lt;br /&gt;
* [http://ccpro.cc2net.de/forum/ C-Control PRO Forum]&lt;br /&gt;
&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/viewforum.php?f=49 Roboternetz RP6 Forum]&lt;br /&gt;
* &amp;quot;Geburt&amp;quot; des Wiki im RN-Forum: [http://www.roboternetz.de/community/threads/32793-RP6-Wiki-Artikel RP6-Wiki-Artikel]&lt;br /&gt;
* Henkessoft: [http://www.henkessoft.de/Roboter/rp6.htm RP6]&lt;br /&gt;
* PIC-PROJEKTE Wiki: [http://pic-projekte.de/wiki/index.php?title=RP6  RP6]&lt;br /&gt;
&lt;br /&gt;
* [http://www.youtube.com/results?search_query=rp6 RP6 Videos]&lt;br /&gt;
* [http://de-de.facebook.com/pages/Robby-RP6/155118711202285 facebook]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Robotikeinstieg]]	 &lt;br /&gt;
[[Kategorie:Praxis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Autoren==&lt;br /&gt;
--[[Benutzer:Sloti|Sloti]] 22:23, 29. Dez 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Tobias1|Tobias1]] 18:30, 06. Apr 2010 (CET)&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Dirk|Dirk]] 20:23, 28. Jun 2012 (CET)&lt;/div&gt;</summary>
		<author><name>MaxWeb</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=RP6&amp;diff=20259</id>
		<title>RP6</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=RP6&amp;diff=20259"/>
				<updated>2012-07-10T14:34:28Z</updated>
		
		<summary type="html">&lt;p&gt;MaxWeb: /* Ersatzzahnräder */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:Overview de.gif|Der RP6]]&lt;br /&gt;
&lt;br /&gt;
Was bisher geschah:&lt;br /&gt;
&lt;br /&gt;
Fre, 08. Jun 2007 - Ankündigung des RP6 und der RP6 CONTROL M32&amp;lt;br/&amp;gt;&lt;br /&gt;
Mon, 02. Jul 2007 23:00 - Benachrichtigung der Tester&amp;lt;br/&amp;gt;&lt;br /&gt;
Die, 03. Jul 2007 15:00 - Bereitstellung der Dokumentation&amp;lt;br/&amp;gt;&lt;br /&gt;
Don, 05. Jul 2007 14:30 - Bereitstellung der Schaltungsunterlagen&amp;lt;br/&amp;gt;&lt;br /&gt;
Son, 08. Jul 2007 16:00 - Nachricht über den Versand der RP6&amp;lt;br/&amp;gt;&lt;br /&gt;
Mon, 09. Jul 2007 00:15 - Bereitstellung der Library und der Beispielprogramme&amp;lt;br/&amp;gt;&lt;br /&gt;
Die, 10. Jul 2007 - Eintreffen der RP6 bei den Testern&amp;lt;br/&amp;gt;&lt;br /&gt;
Mon, 16. Jul 2007 - Auslieferungsbeginn des RP6&amp;lt;br/&amp;gt;&lt;br /&gt;
Fre, 24. Apr 2009 - Ankündigung der RP6 CCPRO M128 (Auslieferung schon ab Mitte April 2009)&amp;lt;br/&amp;gt;&lt;br /&gt;
Mon, 27. Feb 2012 - Ankündigung des RP6v2&amp;lt;br/&amp;gt;&lt;br /&gt;
Don, 08. Mär 2012 - Auslieferungsbeginn des RP6v2&amp;lt;br/&amp;gt;&lt;br /&gt;
Sam, 17. Mär 2012 - Ankündigung der RP6v2 M256 WiFi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Allgemein==  [[Bild:DSC03448.JPG|thumb|RP6 mit Erweiterungsboard]] [[Bild:RP6_Lieferumfang.jpg|thumb|RP6 im Lieferumfang]]&lt;br /&gt;
Der von Arexx entwickelte RP6 ist ein autonomes Raupenfahrzeug, das nicht nur für Schüler und Studenten zum Einstieg in das Gebiet Robotik sondern auch für Fortgeschrittene Elektroniker und Bastler sehr gut geeignet ist, da das System für selbstentworfene Erweiterungen ausgelegt ist. Der RP6 wird von einem, unter Roboterentwicklern beliebten, AVR Microcontroller von Atmel gesteuert und hat Lichtsensoren in Form von zwei LDRs, 2 Bumper an der Stoßstange, 6 Status LEDs, Sensoren zur Überwachung der Akkuspannung, Drehgeber mit 625 CPR, ein Infrarot Sensor zur Hinderniserkennung und Kommunikation und Motorstromsensoren zur Verfügung. Zudem liegt dem Roboter eine umfangreiche Anleitung, inklusive einem kleinen C-Crashkurs, ein USB-Interface zum Anschluss an den PC und ein USB Kabel bei.&lt;br /&gt;
&lt;br /&gt;
In diesem Artikel geht es um die Grundlagen des RP6. Zur Programmierung des RP6 gibt es eine eigene Seite: [[RP6 - Programmierung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Technische Daten==&lt;br /&gt;
{|  {{Blauetabelle}} &lt;br /&gt;
|'''Mikrocontroller:'''&lt;br /&gt;
|AVR [[ATmega32]]&lt;br /&gt;
|-&lt;br /&gt;
|'''Speicher:'''&lt;br /&gt;
|32 kB [[Flash]]-Speicher, davon 1 kB bereits vom Bootloader belegt&amp;lt;br/&amp;gt;&lt;br /&gt;
2 kB RAM&amp;lt;br/&amp;gt; &lt;br /&gt;
1 kB [[EEPROM]]&lt;br /&gt;
|-&lt;br /&gt;
|'''Programmierung:'''&lt;br /&gt;
|Über AVR-[[Bootloader]], belegt ca. 1 kB des Flash-Speichers&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Sensoren:'''&lt;br /&gt;
|2 [[Sensorarten#Helligkeit|Lichtsensoren (LDR)]]&amp;lt;br/&amp;gt;&lt;br /&gt;
1 [[Sensorarten#Helligkeit|Infrarot (ACS - Anti Collision System)]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2 [[Sensorarten#Bumpers|Bumper]] &amp;lt;br/&amp;gt; &lt;br /&gt;
2 [[Sensorarten#Incremental-Geber|Drehgeber (Encoder)]]&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Aktoren:'''&lt;br /&gt;
|2 Motoren&amp;lt;br/&amp;gt;&lt;br /&gt;
6 Status-LEDs&amp;lt;br/&amp;gt;&lt;br /&gt;
1 IR-Sender&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Abmessungen:'''&lt;br /&gt;
|(L &amp;amp;times; B &amp;amp;times; H) 172 &amp;amp;times; 128 &amp;amp;times; 50 mm&lt;br /&gt;
|-&lt;br /&gt;
|'''Ausführung:'''&lt;br /&gt;
|Fertig aufgebauter Roboter&lt;br /&gt;
|-&lt;br /&gt;
|'''Stromversorgung:'''&lt;br /&gt;
|6 AA NiMH Akkus&lt;br /&gt;
|-&lt;br /&gt;
|'''Hersteller:'''&lt;br /&gt;
|Arexx Niederlande&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Mechanik==&lt;br /&gt;
===Beschreibung===&lt;br /&gt;
&lt;br /&gt;
===Sensoren===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Encoder====&lt;br /&gt;
&lt;br /&gt;
Die Drehgeber sind an den Getrieben der Motoren zur Drehzahlmessung angebracht. Es handelt sich dabei um Reflexlichtschranken, die auf Codierscheiben mit je 18 weissen und 18 schwarzen Segmenten ausgerichtet sind, also insgesamt 36 Segmente. Diese Codierscheiben sind wiederum an je eines der Zahnräder der beiden Getriebe geklebt worden. Wenn es sich dreht, wandern die einzelnen Segmente an der Reflexlichtschranke vorbei. Die weissen Segmente reflektieren das Infrarotlicht, die schwarzen Segmente nur wenig. Jedes der zwei mittleren Stufenzahnräder des Getriebes hat 50 Zähne auf dem großen, und 12 auf dem kleineren Zahnrad. Die Codierscheiben befinden sich auf dem Zahnrad neben dem Motor, also rechnet man:&lt;br /&gt;
50/12 * 50/12 =17.13/36; 17.13/36 * 36=625&lt;br /&gt;
Daher haben die Encoderscheiben auch Ihre 36 Segmente, denn das gibt eine schöne runde Zahl ohne gebrochenen Anteil. Die Drehgeber erzeugen also 625 Flanken pro Radumdrehung wobei jede Flanke einem Segment entspricht. Bei einem Raddurchmesser von ca. 50mm inkl. Raupenkette, ergibt sich rein rechnerisch ein Radumfang von ca. 157mm was 0.2512mm pro Zählschritt der Drehgeber entspricht. Da sich die Raupenketten aber fast immer etwas in den Untergrund eindrücken (bzw. auch selbst eingedrückt werden) kann man aber von 0.25mm pro Zählschritt ausgehen – meist ist es sogar etwas weniger, z.B. nur 0.24 oder 0.23mm. Das muss man durch abfahren von Teststrecken ermitteln, wie es im Anhang grob beschrieben ist. Sehr genau ist das allerdings durch Radschlupf (bzw. hier müssten wir eigentlich von „Kettenschlupf“ sprechen) und ähnlichen Dingen nicht - vor allem beim Rotieren auf der Stelle. Beim normalen Geradeausfahren ist dieser Fehler klein, aber beim Rotieren kann er schnell sehr große Werte annehmen! Abweichungen muss man evtl. durch weitere Tests ermitteln und mit einkalkulieren. Das ist bei Raupenantrieben leider so – auch bei viel teureren und hochwertigeren Robotern. Dafür hat man aber den Vorteil, dass der Roboter mit Raupenantrieb recht geländegängig ist im Vergleich zu Robotern mit normalem Differentialantrieb mit zwei Antriebsrädern und Stützrad. Kleinere Hindernisse und Rampen kann er meist problemlos überwinden.&lt;br /&gt;
Dabei sind die Encoder sehr nützlich, denn man kann die Geschwindigkeit gut einregeln, egal wie der Untergrund und die Motorbelastung gerade aussieht. Bei gemessenen 50 Segmenten pro Sekunde liegt die Geschwindigkeit bei 1.25 cm/s, sofern wir von 0.25mm pro Zählschritt ausgehen. Etwa 50 Segmente pro Sekunde ist auch die geringste gerade noch regelbare Geschwindigkeit (das variiert aber etwas von Roboter zu Roboter). Bei 1200 Segmenten pro Sekunde wären es die maximal möglichen 30 cm/s (bei 0.25mm Auflösung, bei 0.23 sind es 27.6 cm/s). Standardmäßig begrenzt die Funktionsbibliothek das aber auf 1000 Flanken pro Sekunde. Die maximale Geschwindigkeit ist vom Ladezustand der Akkus abhängig – daher wären 30cm/s nicht besonders lange haltbar. Außerdem erhöht sich die Lebensdauer der Getriebe und Motoren je langsamer man fährt! Wenn der Roboter 4000 Segmente gezählt hat, ist er übrigens etwa einen Meter weit gefahren. Aber wie schon gesagt, gilt das natürlich nur für genau 0.25mm Auflösung. Ohne Kalibrierung hat man hier immer mehr oder weniger starke Abweichungen. Wem es nicht auf jeden mm ankommt, braucht nichts zu kalibrieren und kann einfach von 0.25mm oder besser 0.24mm ausgehen!&lt;br /&gt;
&lt;br /&gt;
====Stoßstangensensoren====&lt;br /&gt;
&lt;br /&gt;
Vorn am Roboter sind zwei Mikroschalter mit langem Schalthebel auf einer separaten&lt;br /&gt;
Platine untergebracht, die etwas vor der anderen Sensorplatine liegt. Dadurch werden&lt;br /&gt;
die IR LEDs auf der Sensorplatine geschützt und können nicht so leicht verbiegen&lt;br /&gt;
wenn der Roboter mal gegen ein Hindernis fährt. Die Stoßstange kann man auch abmontieren und z.B. gegen eine Schuss- oder Sammelvorrichtung für Bälle o.ä. ersetzen wenn man möchte.&lt;br /&gt;
&lt;br /&gt;
====Lichtsensoren====&lt;br /&gt;
&lt;br /&gt;
Vorne auf der kleinen Sensorplatine des Roboters sind zwei sog.&lt;br /&gt;
LDRs (=&amp;quot;Light Dependant Resistors&amp;quot; also lichtabhängige Widerstände)&lt;br /&gt;
platziert und nach links bzw. rechts ausgerichtet. Zwischen&lt;br /&gt;
den beiden Sensoren ist noch eine kleine schwarze&lt;br /&gt;
„Trennwand“ damit das Licht aus einer Richtung möglichst nur&lt;br /&gt;
einen der Sensoren erreicht. Sie bilden zusammen mit je einem&lt;br /&gt;
normalen Widerstand wie beim Batteriesensor einen Spannungsteiler – hier allerdings&lt;br /&gt;
um das Umgebungslicht zu messen.&lt;br /&gt;
&lt;br /&gt;
====Anti Collision System====&lt;br /&gt;
&lt;br /&gt;
Der aus Softwaresicht komplexeste Sensor des RP6 ist das ACS - das&lt;br /&gt;
„Anti Collision System“ (engl. für Anti Kollisions System)! Es besteht&lt;br /&gt;
aus einem IR Empfänger (s. Abb.) und zwei vorne auf der Sensorplatine&lt;br /&gt;
links und rechts angebrachten IR LEDs.&lt;br /&gt;
Da es je eine IR LED links und rechts gibt, kann das ACS grob unterscheiden ob sich&lt;br /&gt;
das Objekt links, rechts oder mittig vor dem Roboter befindet.&lt;br /&gt;
Man kann zusätzlich noch die Stromstärke mit der die beiden IR LEDs gepulst werden&lt;br /&gt;
in drei Stufen einstellen. Das ACS funktioniert aber auch in der höchsten Stufe nicht&lt;br /&gt;
mit allen Objekten immer zuverlässig, denn es kommt auf die Beschaffenheit der&lt;br /&gt;
Oberfläche des jeweiligen Objekts an! Ein schwarzes Objekt reflektiert das IR Licht natürlich&lt;br /&gt;
viel schlechter als ein weisses Objekt und ein kantiges und spiegelndes Objekt&lt;br /&gt;
könnte das IR Licht hauptsächlich in eine bestimme Richtung reflektieren. Die Reichweite&lt;br /&gt;
ist also immer vom jeweiligen Objekt abhängig! Das ist eine prinzipielle Schwäche&lt;br /&gt;
von so gut wie allen IR Sensoren (jedenfalls in dieser Preisklasse).&lt;br /&gt;
Trotzdem werden die meisten Hindernisse zuverlässig erkannt und können umfahren&lt;br /&gt;
werden. Falls das mal nicht klappt, gibt es noch die Stoßstange mit den Tastsensoren&lt;br /&gt;
und falls auch die nicht richtig getroffen werden, kann der Roboter noch mit den Motorstromsensoren&lt;br /&gt;
oder den Encodern erkennen, ob die Motoren blockieren (s.u.)!&lt;br /&gt;
Wem das nicht reicht, der könnte zusätzlich z.B. noch Ultraschallsensoren anbringen...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Erweiterungssystem===&lt;br /&gt;
Auf dem Mainboard sind 22 freie 3,2mm Löcher vorhanden (im Chassis weitere 16), auf denen die Erweiterungsmodule symmetrisch vorne und hinten gestapelt werden können. Weil der Stromverbrauch durch mehr Module steigt, ist es sinnvoll nur insgesamt 6-8 Module auf dem Roboter zu stapeln. Auf dem Mainboard selbst sind noch 6 kleine Erweiterungsflächen verfügbar (plus 2 sehr kleine auf der Bumperplatine).&lt;br /&gt;
&lt;br /&gt;
===Antrieb===&lt;br /&gt;
&lt;br /&gt;
Die 7,2 VDC Motoren sind im Chassis eingebaut und werden mithilfe der H-Brücken gesteuert. Die maximale Geschwindigkeit liegt bei 25cm/s, das kann je nach Akkuspannung aber variieren. Ohne Softwarebegrenzung sind sogar 30cm/s möglich, dadurch verringert sich aber die Lebensdauer der Motoren. Die maximale Steigung, die der RP6 bewältigen kann, ist 30%, ohne Bumperplatine 40%, das hängt aber auch vom Untergrund ab. Kleine Hindernisse wie Bücher und Stifte kann der RP6 problemlos überqueren. Die Achsen der Räder sind in selbstschmierenden Sinterlagern mit 4mm Durchmesser gelagert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Elektromechanik==&lt;br /&gt;
===Beschreibung===&lt;br /&gt;
===Odometrie===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Elektronik==&lt;br /&gt;
[[Bild:RP6 Block.jpg|thumb|Blockdiagramm]]&lt;br /&gt;
===Beschreibung===&lt;br /&gt;
&lt;br /&gt;
===Sensoren (SENSORS)===&lt;br /&gt;
&lt;br /&gt;
Die meisten Sensoren über die der Roboter verfügt, haben wir ja schon in anderen Abschnitten kurz genannt, wollen diese nun aber etwas detaillierter betrachten.&lt;br /&gt;
In dem Blockdiagramm sind einige der Sensoren nicht in dem blauen Bereich &amp;quot;Sensors&amp;quot; zu sehen, weil sie besser in andere Bereiche passen. Trotzdem zählen natürlich auch die Drehgeber (= “Encoder“), Motorstromsensoren und der Batteriespannungssensor zu den Sensoren und werden darum in diesem Abschnitt beschrieben!&lt;br /&gt;
&lt;br /&gt;
====Batteriespannungs-Sensor (Voltage Sensor)====&lt;br /&gt;
&lt;br /&gt;
Dieser &amp;quot;Sensor&amp;quot; ist eigentlich nur ein einfacher Spannungsteiler aus zwei Widerständen. Wir gehen davon aus, dass die Batterien insgesamt maximal 10V liefern können. 6 NiMH Akkus werden immer unterhalb davon bleiben. Die Referenzspannung des ADC, also die Spannung mit der er die gemessene Spannung vergleicht, beträgt 5V. Da auch die Betriebsspannung 5V beträgt, darf diese nicht überschritten werden. Also müssen wir die zu messende Spannung um die Hälfte herabsetzen! Dies geschieht über einen Spannungsteiler aus zwei Widerständen, der die Spannung an den Messbereich des ADCs anpasst. Der ADC löst mit 10 Bit auf (Wertebereich 0 bis 1023), was eine Auflösung von 10V/1024=9.765625mV ergibt. Ein Messwert von 512 entspricht hier also 5V und 1023 wären ungefähr 10V! Diese Grenzwerte sollten aber normalerweise nie erreicht werden! Das ist nicht besonders genau, da die Widerstände keineswegs Präzisionswiderstände sind. Abweichungen von einigen Prozent nach oben und unten sind möglich. Auch die Referenzspannung von 5V ist nicht ganz genau und kann bei normaler Belastung etwas variieren. Das stört hier nicht, denn wir brauchen ohnehin nur einen ungefähren Wert um festzustellen ob die Batterien sich langsam dem Ende nähern. Wer die Spannung genau messen will, braucht ein Multimeter um den Messfehler zu ermitteln und diesen dann in Software auszugleichen. Wenn man mit Fehlern leben kann, kann man die Spannung dank des günstigen Umrechnungsverhältnisses sogar direkt aus den ADC Werten ungefähr abschätzen: 720 entsprechen dann grob 7.2V, 700 etwa 7V und 650 wären etwa 6.5V. Bei einem konstanten Wert unter 560 kann man davon ausgehen, dass die Akkus fast leer sind.&lt;br /&gt;
&lt;br /&gt;
====Motorstrom====&lt;br /&gt;
[[Bild:RP6_MSS.jpg|thumb]]&lt;br /&gt;
Es befinden sich zwei Leistungswiderstände in den beiden Motorstromkreisen. Aus dem Ohm'schen Gesetz U=RxI folgt, dass sich die Spannung die an einem bestimmten Widerstand abfällt, proportional zum Strom verhält, der diesen durchfließt!&lt;br /&gt;
Damit die Spannungsabfälle an den Widerständen nicht zu groß werden, müssen die Widerstände klein gewählt werden. In unserem Fall haben Sie einen Wert von 0.1 Ohm&lt;br /&gt;
Die abfallende Spannung ist also nur sehr klein (0.1V bei einem Strom von 1A) und muss verstärkt werden bevor sie mit dem ADC gemessen werden kann. Das erledigt jeweils ein sog. Operationsverstärker (OPV). In der Schaltung des RP6 wird je Motorkanal ein OPV verwendet. Der Messbereich geht etwa bis 1.8A. Bei 1.8A fallen etwa 0.18V am Widerstand ab und es ergibt sich am Ausgang des OPV eine Spannung von etwa 4V. Mehr kann der verwendete OPV bei 5V Betriebsspannung nicht ausgeben:&lt;br /&gt;
&lt;br /&gt;
I = U / ((1 + (100k / 4,7k)) * 0,1)&lt;br /&gt;
&lt;br /&gt;
Die Leistungswiderstände haben eine Toleranz von 10%, die Widerstände am OPV 5%, also ist das alles nur sehr ungenau (Ungenauigkeiten im Bereich von etwa 270mA sind möglich wenn man die Sensoren nicht kalibriert!). Wir brauchen allerdings auch nur den ungefähren Wert um festzustellen ob die Motoren stark oder wenig belastet werden. So kann der Roboter gut blockierte oder gar defekte Motoren bzw. Drehgeber erkennen! Die DC-Motoren benötigen mehr Strom je stärker sie belastet werden (Drehmoment) und somit steigt der Strom sehr stark an wenn die Motoren blockiert sind. Das wird von der Robotersoftware zur Notabschaltung verwendet: wenn die Motoren dauerhaft mit hohem Strom betrieben würden, könnten diese sehr heiß werden und dadurch Schaden nehmen! Und wenn die Encoder mal ausfallen sollten – aus welchem Grund auch immer – kann auch das damit erkannt werden. Man würde dann eine Drehzahl von 0 messen. Lässt man die Motoren aber auf voller Kraft laufen und der Strom bleibt trotzdem klein (also sind die Ketten nicht blockiert!), kann man genau daraus schließen, dass entweder die Encoder, oder die Motoren ausgefallen sind (oder Encoder und Motorstromsensoren nicht funktionieren... das passiert z.B. wenn man vergessen hat diese vorher per Software einzuschalten).&lt;br /&gt;
&lt;br /&gt;
====Encoder====&lt;br /&gt;
[[Bild:RP6_ENCODER.jpg|thumb]]&lt;br /&gt;
Ganz anders als die letztgenannten Sensoren funktionieren die Drehgeber, die an den Getrieben der Motoren zur Drehzahlmessung angebracht sind. Es handelt sich dabei um Reflexlichtschranken, die auf Codierscheiben mit je 18 weissen und 18 schwarzen Segmenten ausgerichtet sind, also insgesamt 36 Segmente (s. Abb). Diese Codierscheiben sind wiederum an je eines der Zahnräder der beiden Getriebe geklebt worden. Wenn es sich dreht, wandern die einzelnen Segmente an der Reflexlichtschranke vorbei. Die weissen Segmente reflektieren das Infrarotlicht, die schwarzen Segmente nur wenig. Die Drehgeber erzeugen so zwar auch wie die anderen Sensoren ein analoges Signal, aber es wird digital interpretiert. Zunächst wird das Signal verstärkt und anschließend über einen sog. Schmitt Trigger in ein Rechtecksignal umgewandelt. Die Flanken dieses Signals, also die Wechsel von 5 auf 0V und umgekehrt, lösen jeweils ein Interrupt Ereignis aus und diese werden dann von der Software gezählt. So kann die zurückgelegte Wegstrecke gemessen und zusammen mit einem Timer zur Zeitmessung die Drehzahl und damit auch die Geschwindigkeit ermittelt werden. Die Ermittlung der Drehzahl ist auch Hauptanwendung der Encoder – nur mit den Encodern kann man die Drehzahl auf den gewünschten Sollwert einregeln. Ohne Regelung wäre die Drehzahl nämlich von der Akkuspannung, Belastung der Motoren usw. abhängig. Die hohe Auflösung ermöglicht es dabei, auch niedrige Geschwindigkeiten noch relativ genau einzuregeln. Jedes der zwei mittleren Stufenzahnräder des Getriebes hat 50 Zähne auf dem großen, und 12 auf dem kleineren Zahnrad (s. Abb). Die Codierscheiben befinden sich auf dem Zahnrad neben dem Motor, also rechnet man:&lt;br /&gt;
&lt;br /&gt;
50/12 * 50/12 =17.13/36; 17.13/36 * 36=625&lt;br /&gt;
&lt;br /&gt;
Daher haben die Encoderscheiben auch Ihre 36 Segmente, denn das gibt eine schöne runde Zahl ohne gebrochenen Anteil. Die Drehgeber erzeugen also 625 Flanken pro Radumdrehung wobei jede Flanke einem Segment entspricht. Bei einem Raddurchmesser von ca. 50mm inkl. Raupenkette, ergibt sich rein rechnerisch ein Radumfang von ca. 157mm was 0.2512mm pro Zählschritt der Drehgeber entspricht. Da sich die Raupenketten aber fast immer etwas in den Untergrund eindrücken (bzw. auch selbst eingedrückt werden) kann man aber von 0.25mm pro Zählschritt ausgehen – meist ist es sogar etwas weniger, z.B. nur 0.24 oder 0.23mm. Das muss man durch abfahren von Teststrecken ermitteln, wie es im Anhang grob beschrieben ist. Sehr genau ist das allerdings durch Radschlupf (bzw. hier müssten wir eigentlich von „Kettenschlupf“ sprechen) und ähnlichen Dingen nicht - vor allem beim Rotieren auf der Stelle. Beim normalen Geradeausfahren ist dieser Fehler klein, aber beim Rotieren kann er schnell sehr große Werte annehmen! Abweichungen muss man evtl. durch weitere Tests ermitteln und mit einkalkulieren. Das ist bei Raupenantrieben leider so – auch bei viel teureren und hochwertigeren Robotern. Dafür hat man aber den Vorteil, dass der Roboter mit Raupenantrieb recht geländegängig ist im Vergleich zu Robotern mit normalem Differentialantrieb mit zwei Antriebsrädern und Stützrad. Kleinere Hindernisse und Rampen kann er meist problemlos überwinden.&lt;br /&gt;
Dabei sind die Encoder sehr nützlich, denn man kann die Geschwindigkeit gut einregeln, egal wie der Untergrund und die Motorbelastung gerade aussieht. Bei gemessenen 50 Segmenten pro Sekunde liegt die Geschwindigkeit bei 1.25 cm/s, sofern wir von 0.25mm pro Zählschritt ausgehen. Etwa 50 Segmente pro Sekunde ist auch die geringste gerade noch regelbare Geschwindigkeit (das variiert aber etwas von Roboter zu Roboter). Bei 1200 Segmenten pro Sekunde wären es die maximal möglichen 30 cm/s (bei 0.25mm Auflösung, bei 0.23 sind es 27.6 cm/s). Standardmäßig begrenzt die Funktionsbibliothek das aber auf 1000 Flanken pro Sekunde. Die maximale Geschwindigkeit ist vom Ladezustand der Akkus abhängig – daher wären 30cm/s nicht besonders lange haltbar. Außerdem erhöht sich die Lebensdauer der Getriebe und Motoren je langsamer man fährt!&lt;br /&gt;
&lt;br /&gt;
=====Encoder justieren=====&lt;br /&gt;
Damit der RP6 die Signale der Drehgeber richtig auswerten kann, muss man evtl. die Drehgeber einmalig justieren. Dies kann auch schon bei einem neu gekauften RP6 notwendig sein.&lt;br /&gt;
Eine genaue Anleitung dazu findet man [http://www.arexx.com/rp6/downloads/RP6_ENCODER_DE_20071219.zip hier]. Es gibt auch ein [http://www.arexx.com/rp6/downloads/rp6_encoder_video.zip Video], das die Drehgeber-Justierung zeigt.&lt;br /&gt;
&lt;br /&gt;
=====Encoder kalibrieren=====&lt;br /&gt;
Wenn der Roboter 4000 Segmente gezählt hat, ist er etwa einen Meter weit gefahren. Aber wie schon gesagt, gilt das natürlich nur für genau 0.25mm Auflösung. Ohne Kalibrierung hat man hier immer mehr oder weniger starke Abweichungen. Wem es nicht auf jeden mm ankommt, braucht nichts zu kalibrieren und kann einfach von 0.25mm oder besser 0.24mm ausgehen!&lt;br /&gt;
Optimal ist es, wenn man sich für Weg- und Winkelmessungen nicht auf die Encoder Daten stützen muss, sondern externe Systeme wie Infrarotbaken oder einen genauen elektronischen Kompass dazu zur Verfügung hat.&lt;br /&gt;
&lt;br /&gt;
Will man die Drehgeber des RP6 dennoch kalibrieren, kann man ihn z.B. mit diesem Testprogramm:&lt;br /&gt;
&amp;lt;pre&amp;gt;#include &amp;quot;RP6RobotBaseLib.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
	initRobotBase();&lt;br /&gt;
	powerON();&lt;br /&gt;
&lt;br /&gt;
	// Test: Go ahead 1m and stop!&lt;br /&gt;
	move (80, FWD, DIST_MM(1000), true);&lt;br /&gt;
	writeString_P(&amp;quot;LEFT RIGHT&amp;quot;);&lt;br /&gt;
 	writeString_P(&amp;quot;\n&amp;quot;);&lt;br /&gt;
 	writeInteger(mleft_dist, DEC);&lt;br /&gt;
	writeChar(' ');&lt;br /&gt;
 	writeInteger(mright_dist, DEC);&lt;br /&gt;
	writeString_P(&amp;quot;\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
	powerOFF();&lt;br /&gt;
&lt;br /&gt;
	return 0;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
... 1m weit fahren lassen und dann messen, wie weit er tatsächlich gefahren ist. Das Programm gibt auf dem Terminal den Stand der Drehgeber aus. Teilt man dann die gemessene Fahrstrecke in mm durch den Wert der Drehgeber, erhält man die Auflösung. Diesen Wert kann man dann der Konstanten ENCODER_RESOLUTION in der RP6Config.h zuweisen. Nach &amp;quot;Make Clean&amp;quot;, einer Neukompilierung und erneuter Ausführung des Testprogramms müßte der RP6 jetzt genau 1m weit fahren. Das gilt zumindest für den Untergrund, auf dem die Kalibrierung durchgeführt wurde.&lt;br /&gt;
&lt;br /&gt;
====Stoßstangensensoren (Bumper)====&lt;br /&gt;
&lt;br /&gt;
Vorn am Roboter sind zwei Mikroschalter mit langem Schalthebel auf einer separaten&lt;br /&gt;
Platine untergebracht, die etwas vor der anderen Sensorplatine liegt. Dadurch werden&lt;br /&gt;
die IR LEDs auf der Sensorplatine geschützt und können nicht so leicht verbiegen&lt;br /&gt;
wenn der Roboter mal gegen ein Hindernis fährt. Mit den zwei Schaltern kann der Mikrocontroller&lt;br /&gt;
einen solchen Aufprall registrieren und dann beispielsweise zurücksetzen,&lt;br /&gt;
sich etwas drehen und weiterfahren. Die Schalter sind an zwei der Ports die schon mit&lt;br /&gt;
den LEDs verbunden sind angeschlossen und blockieren so keine anderen Ports des&lt;br /&gt;
Mikrocontrollers. Daher leuchten die LEDs auch immer wenn man einen der Schalter&lt;br /&gt;
drückt! Da dies normalerweise relativ selten passiert, stört das aber nicht weiter.&lt;br /&gt;
Die Stoßstange kann man auch abmontieren und z.B. gegen eine Schuss- oder Sammelvorrichtung&lt;br /&gt;
für Bälle o.ä. ersetzen wenn man möchte.&lt;br /&gt;
&lt;br /&gt;
====Lichtsensoren (LDRs)====&lt;br /&gt;
[[Bild:RP6_Licht.jpg|thumb]]&lt;br /&gt;
Vorne auf der kleinen Sensorplatine des Roboters sind zwei sog.&lt;br /&gt;
LDRs (=&amp;quot;Light Dependant Resistors&amp;quot; also lichtabhängige Widerstände)&lt;br /&gt;
platziert und nach links bzw. rechts ausgerichtet. Zwischen&lt;br /&gt;
den beiden Sensoren ist noch eine kleine schwarze&lt;br /&gt;
„Trennwand“ damit das Licht aus einer Richtung möglichst nur&lt;br /&gt;
einen der Sensoren erreicht. Sie bilden zusammen mit je einem&lt;br /&gt;
normalen Widerstand wie beim Batteriesensor einen Spannungsteiler – hier allerdings&lt;br /&gt;
um das Umgebungslicht zu messen. Die 5V Betriebsspannung wird auch geteilt, aber&lt;br /&gt;
hier ist einer der Widerstände variabel! Es wird also das Teilungsverhältnis je nach Intensität&lt;br /&gt;
des Lichteinfalls verändert und somit eine vom Lichteinfall abhängige Spannung&lt;br /&gt;
an einen der A/D Wandler Kanäle geleitet!&lt;br /&gt;
Über den Spannungsunterschied zwischen den beiden Sensoren kann man ermitteln in&lt;br /&gt;
welcher Richtung sich eine bzw. die hellste Lichtquelle vor dem Roboter befindet:&lt;br /&gt;
Links, Rechts oder in der Mitte. Mit einem entsprechenden Programm, kann man so z.B. eine starke Taschenlampe in&lt;br /&gt;
einem abgedunkelten Zimmer verfolgen, oder den Roboter die hellste Stelle in einem&lt;br /&gt;
Raum suchen lassen! Klappt z.B. sehr gut mit einem stärkeren Hand-Halogenscheinwerfer:&lt;br /&gt;
Wenn man damit auf den Boden leuchtet, kann der Roboter dem Lichtfleck auf&lt;br /&gt;
dem Boden folgen.&lt;br /&gt;
Das geht natürlich auch umgekehrt: Der Roboter könnte z.B. auch versuchen sich vor&lt;br /&gt;
hellem Licht zu verstecken...&lt;br /&gt;
Wenn man noch ein oder zwei LDRs hinten am Roboter anbringen würde, könnte man&lt;br /&gt;
das noch verfeinern und die Richtung in der sich Lichtquellen befinden besser bestimmen.&lt;br /&gt;
Der Roboter kann sonst nämlich oft nur schwer unterscheiden ob die Lichtquelle&lt;br /&gt;
vor oder hinter ihm liegt. Zwei der A/D Wandler Kanäle sind noch frei...&lt;br /&gt;
&lt;br /&gt;
====Anti Collision System (ACS)====&lt;br /&gt;
[[Bild:RP6 ACS.jpg|thumb|Das ACS]]&lt;br /&gt;
Der aus Softwaresicht komplexeste Sensor des RP6 ist das ACS - das „Anti Collision System“ (engl. für Anti Kollisions System)! Es besteht aus einem IR Empfänger (s. Abb.) und zwei vorne auf der Sensorplatine links und rechts angebrachten IR LEDs. Die IR LEDs werden direkt vom Mikrocontroller angesteuert. Die Ansteuerungsroutinen können beliebig verändert und verbessert werden! Beim Vorgängermodell war dafür noch ein eigener Controller nötig, dessen Programm aber nicht vom Anwender geändert werden konnte...&lt;br /&gt;
Mit den IR LEDs werden kurze, mit 36kHz modulierte Infrarot Impulse ausgesandt, auf die der darauf ausgelegte IR Empfänger reagiert. Werden die IR Impulse an einem Gegenstand vor dem Roboter reflektiert und vom IR Empfänger detektiert, kann der Mikrocontroller darauf reagieren und z.B. ein Ausweichmanöver einleiten. Damit das ACS nicht zu empfindlich bzw. auf eventuelle Störungen reagiert, wartet die Software bis eine bestimmte Anzahl von Impulsen in einer bestimmten Zeit empfangen worden ist. Es wird auch eine Synchronisation mit dem RC5 Empfang durchgeführt und auf die RC5 Signale von TV/Hifi Fernbedienungen wird so nicht reagiert. Bei anderen Codes kann das aber nicht garantiert werden und das ACS könnte dann Hindernisse erkennen, wo gar keine sind! Da es je eine IR LED links und rechts gibt, kann das ACS grob unterscheiden ob sich das Objekt links, rechts oder mittig vor dem Roboter befindet.&lt;br /&gt;
Man kann zusätzlich noch die Stromstärke mit der die beiden IR LEDs gepulst werden in drei Stufen einstellen. Das ACS funktioniert aber auch in der höchsten Stufe nicht mit allen Objekten immer zuverlässig, denn es kommt auf die Beschaffenheit der Oberfläche des jeweiligen Objekts an! Ein schwarzes Objekt reflektiert das IR Licht natürlich viel schlechter als ein weisses Objekt und ein kantiges und spiegelndes Objekt könnte das IR Licht hauptsächlich in eine bestimme Richtung reflektieren. Die Reichweite ist also immer vom jeweiligen Objekt abhängig! Das ist eine prinzipielle Schwäche von so gut wie allen IR Sensoren (jedenfalls in dieser Preisklasse).&lt;br /&gt;
Trotzdem werden die meisten Hindernisse zuverlässig erkannt und können umfahren werden. Falls das mal nicht klappt, gibt es noch die Stoßstange mit den Tastsensoren und falls auch die nicht richtig getroffen werden, kann der Roboter noch mit den Motorstromsensoren oder den Encodern erkennen, ob die Motoren blockieren (s.u.)!&lt;br /&gt;
Wem das nicht reicht, der könnte zusätzlich z.B. noch Ultraschallsensoren anbringen...&lt;br /&gt;
&lt;br /&gt;
====IR-Kommunikation (IRCOMM)====&lt;br /&gt;
Der RP6 kann über die IR-LEDs links und rechts über der Bumper-Platine Daten zu anderen IR-Empfängern senden.  Es ist z.B. möglich, dass mehrere Roboter ihre Sensorwerte untereinander vergleichen.&lt;br /&gt;
&lt;br /&gt;
====6 Status-LEDs====&lt;br /&gt;
Die Status-LEDs sind vorne links und rechts über den Lichtsensoren auf der Hauptplatine angebracht.&lt;br /&gt;
&lt;br /&gt;
Über die Status-LEDs können Sensorzustände, z.B. des ACS, der Bumper oder der Lichtsensoren, dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
====IR-Sender====&lt;br /&gt;
Über den IR-Sender können Daten zu anderen Geräten übertragen werden.&lt;br /&gt;
&lt;br /&gt;
===Erweiterungssystem (EXPANSION SYSTEM)===&lt;br /&gt;
[[Bild:RP6_EXP.jpg|thumb]]&lt;br /&gt;
Eines der nützlichsten Features des RP6 ist das Erweiterungssystem.&lt;br /&gt;
Man kann den RP6 damit genau so weit ausbauen,&lt;br /&gt;
wie man es benötigt. Aus Kostengründen bietet das&lt;br /&gt;
Basissystem schließlich nur relativ wenig Sensoren. Es sind&lt;br /&gt;
zwar schon mehr als bei vielen anderen Robotern in dieser&lt;br /&gt;
Preisklasse, aber erst mit weiteren Sensoren macht ein Roboter&lt;br /&gt;
so richtig Spaß. Das ACS kann beispielsweise nur grob&lt;br /&gt;
erkennen ob sich ein Hindernis vor dem Roboter befindet.&lt;br /&gt;
Mit Ultraschallsensoren oder besseren zusätzlichen IR Sensoren,&lt;br /&gt;
könnte man aber die Distanz ermitteln und so beispielsweise&lt;br /&gt;
bessere Ausweichmanöver fahren!&lt;br /&gt;
&lt;br /&gt;
Neben Sensoren macht es auch sehr viel Sinn, zusätzliche Controller einzubauen um&lt;br /&gt;
die anfallenden Aufgaben aufteilen zu können. Beispielsweise die RP6 CONTROL M32&lt;br /&gt;
Platine mit einem weiteren MEGA32 Mikrocontroller oder die CCPRO M128.&lt;br /&gt;
&lt;br /&gt;
Das Erweiterungssystem muss natürlich in der Lage sein, viele Erweiterungsmodule&lt;br /&gt;
miteinander zu verbinden, dabei mit wenigen Signalleitungen&lt;br /&gt;
auskommen und eine ausreichend hohe Geschwindigkeit bieten.&lt;br /&gt;
&lt;br /&gt;
Siehe [[I2C]]&lt;br /&gt;
&lt;br /&gt;
===Steuerung (CONTROL SYSTEM)===&lt;br /&gt;
&lt;br /&gt;
====Hauptprozessor (ATMEGA32)====&lt;br /&gt;
[[Bild:RP6_MEGA32.jpg|thumb|Der MEGA32]]&lt;br /&gt;
Der Hauptprozessor ist der ATMEGA32 vom Atmel. Er hat 32KB Flash ROM und 2KB RAM. Der ATMEGA ist mit 8Mhz getaktet, kann also bis zu 8 Millionen Befehle pro Sekunde ausführen. Es sind 32 I/O-Pins  am Controller verfügbar. Die I/O-Pins gehören zu I/O-Ports mit jeweils 8 Pins. Davon gibt es 4: PORTA, PORTB, PORTC und PORTD. Der Controller kann die Ports entweder ein oder ausschalten (Output), oder erkennen, ob Spannung angelegt wurde oder nicht (Input). Es gibt mehrere Module, die verschiedene Aufgaben übernehmen:&lt;br /&gt;
* 3 Timer, einer davon erzeugt die PWM-Signale für die Motoren&lt;br /&gt;
* Die serielle Schnittstelle (UART)&lt;br /&gt;
* Das TWI (Two Wire Interface, also Zweidraht Schnittstelle)&lt;br /&gt;
* Ein ADC (Analog to Digital Converter) mit 8 Eingangskanälen, welche mit 10bit (0-1023) auflösen&lt;br /&gt;
* Drei externe Interrupt Eingänge&lt;br /&gt;
&lt;br /&gt;
Auserdem befindet sich im Microcontroller ein sog. Bootloader, welcher mit dem RP6 Loader kommuniziert und neue Programme in den Speicher lädt.&lt;br /&gt;
&lt;br /&gt;
===Antrieb (DRIVE SYSTEM)===&lt;br /&gt;
[[Bild:RP6_H-Brücke.jpg|thumb|Die H-Brücke]]&lt;br /&gt;
[[Bild:RP6_Tastverhältniss.jpg|thumb]]&lt;br /&gt;
Der Antrieb des RP6 besteht aus zwei Gleichstrom Motoren mit nachgeschaltetem Getriebe,&lt;br /&gt;
über das die beiden Raupenketten angetrieben werden.&lt;br /&gt;
Die Motoren genehmigen sich je nach Belastung&lt;br /&gt;
einen recht hohen Strom und können&lt;br /&gt;
natürlich nicht direkt vom Mikrocontroller&lt;br /&gt;
angesteuert werden. Dazu braucht man&lt;br /&gt;
Leistungstreiber in Form von je einer H-Brücke&lt;br /&gt;
pro Motor. Das grundlegende Prinzip&lt;br /&gt;
ist in der nebenstehenden Abbildung dargestellt.&lt;br /&gt;
Eine H-Brücke besteht aus vier&lt;br /&gt;
&amp;quot;Schaltern&amp;quot;, die in Form eines H's um einen&lt;br /&gt;
Motor angeordnet sind. Nehmen wir mal an,&lt;br /&gt;
zunächst seien alle Schalter aus. Schaltet&lt;br /&gt;
man dann S1 und S4 (Rot) an, liegt eine&lt;br /&gt;
Spannung am Motor an und er dreht sich&lt;br /&gt;
z.B. nach rechts. Schalten wir nun S1 und&lt;br /&gt;
S4 wieder aus und danach S2 und S3 (Grün)&lt;br /&gt;
an, wird die am Motor anliegende Spannung umgepolt und er dreht sich in die entgegen gesetzte&lt;br /&gt;
Richtung, also nach links! Man muss darauf achten, nicht gleichzeitig S1&lt;br /&gt;
und S2, oder S3 und S4 einzuschalten, sonst entstünde ein Kurzschluss und dadurch&lt;br /&gt;
könnten die &amp;quot;Schalter&amp;quot; zerstört werden!&lt;br /&gt;
Natürlich verwenden wir auf dem RP6 keine mechanischen Schalter, sondern sog.&lt;br /&gt;
MOSFETs. Diese schalten beim Anlegen einer genügend hohen Spannung am Eingang&lt;br /&gt;
durch. Die Schaltvorgänge können sehr schnell erfolgen, mehrere Kilohertz sind bei&lt;br /&gt;
unserer Anwendung möglich.&lt;br /&gt;
So kann man also schon mal die Drehrichtung einstellen. Und wie bekommt man den&lt;br /&gt;
Motor nun schneller bzw. langsamer? Ein Elektromotor dreht umso schneller, je höher&lt;br /&gt;
die angelegte Spannung ist. Die Drehzahl kann also über die Spannung eingestellt&lt;br /&gt;
werden - und genau dazu können wir die H-Brücke auch verwenden!&lt;br /&gt;
Die Abbildung verdeutlicht das Prinzip&lt;br /&gt;
nach dem wir vorgehen können.&lt;br /&gt;
Wir erzeugen&lt;br /&gt;
ein Rechtecksignal fester Frequenz,&lt;br /&gt;
bei dem wir das sog. Tastverhältnis&lt;br /&gt;
verändern. Mit &amp;quot;Tastverhältnis&amp;quot; ist das&lt;br /&gt;
Verhältnis von der eingeschalteten zur&lt;br /&gt;
ausgeschalteten Zeit des Signals gemeint.&lt;br /&gt;
Am Motor liegt dann effektiv eine niedrigere,&lt;br /&gt;
mittlere Gleichspannung an, die dem&lt;br /&gt;
Tastverhältnis entspricht. In der Grafik ist&lt;br /&gt;
dies durch eine rote Linie (Ug) und die roten&lt;br /&gt;
Flächen verdeutlicht. Wenn z.B. eine&lt;br /&gt;
Spannung von 7 Volt von den Akkus an&lt;br /&gt;
den Motortreibern anliegt, und diese mit&lt;br /&gt;
einem Tastverhältnis von 50% angesteuert werden, würde die mittlere Spannung in&lt;br /&gt;
etwa bei der Hälfte, also 3.5V liegen! Das stimmt real nicht ganz, aber so kann man&lt;br /&gt;
es sich schon gut und einfach vorstellen.&lt;br /&gt;
Das Antriebssystem ist dank der hohen Untersetzung (~ 1:72) relativ stark und so&lt;br /&gt;
kann der RP6 viel schwerere Lasten tragen als es z.B. der kleine Roboter ASURO&lt;br /&gt;
könnte. Allerdings steigt mit zunehmendem Gewicht natürlich auch der Energiebedarf&lt;br /&gt;
und die Akkus werden schneller leer sein ...&lt;br /&gt;
Im Vergleich mit einem ferngesteuerten Rennwagen o.ä. könnte man denken der RP6&lt;br /&gt;
sei langsam - stimmt auch - das ist jedoch absichtlich so! Der Roboter wird von einem&lt;br /&gt;
Mikrocontroller gesteuert und wenn der Programmierer einen Fehler bei der Programmierung&lt;br /&gt;
gemacht hat, wäre es ungünstig mit 10km/h vor die Wand zu prallen! Bei&lt;br /&gt;
dem eher gemächlichen Tempo des RP6 passiert aber nicht so schnell etwas und nebenbei&lt;br /&gt;
haben die Sensoren mehr Zeit die Umgebung auf Hindernisse zu untersuchen.&lt;br /&gt;
Und da wäre natürlich noch der Vorteil der höheren Belastbarkeit und der viel genaueren&lt;br /&gt;
Geschwindigkeitsregelung!&lt;br /&gt;
&lt;br /&gt;
===Stromversorgung (POWER SUPPLY)===&lt;br /&gt;
[[Bild:RP6_IC1.jpg|thumb]]&lt;br /&gt;
Natürlich benötigt ein Roboter Energie. Diese trägt der RP6 gespeichert in 6 Akkus mit&lt;br /&gt;
sich herum. Die Laufzeit ist durch die Kapazität der Akkus eingeschränkt, denn auch&lt;br /&gt;
wenn die Elektronik verhältnismäßig wenig Energie benötigt, schlucken die Motoren je&lt;br /&gt;
nach Belastung doch ziemlich viel.&lt;br /&gt;
&lt;br /&gt;
Damit die Akkus möglichst lange halten und der Roboter nicht ständig Pause machen&lt;br /&gt;
muss, sollte man ihm daher etwas größere Energiespeicher mit etwa 2500mAh gönnen.&lt;br /&gt;
Kleinere mit 2000mAh oder mehr funktionieren aber auch. Mit guten Akkus kann&lt;br /&gt;
man 3 bis 6 Stunden oder mehr Laufzeit erreichen, abhängig von der Betriebszeit der&lt;br /&gt;
Motoren, deren Belastung und Qualität der Akkus. Die 6 Akkus die notwendig sind,&lt;br /&gt;
haben insgesamt eine Nennspannung von 6x 1.2V = 7.2V. Im Blockdiagramm ist dies&lt;br /&gt;
mit &amp;quot;UB&amp;quot; (= &amp;quot;U-Battery&amp;quot;, U ist der Formelbuchstabe für Spannung) bezeichnet. „Nennspannung&amp;quot;,&lt;br /&gt;
weil sich die Spannung mit der Zeit stark verändert. Voll aufgeladen können&lt;br /&gt;
die Akkus im Leerlauf insgesamt bis zu 8.5V liefern! Diese Spannung sinkt während&lt;br /&gt;
der Entladung ab und schwankt auch je nach Belastung (Motoren an oder aus,&lt;br /&gt;
schnell langsam etc. - wie stark die Spannung schwankt, hängt auch von der Qualität&lt;br /&gt;
der verwendeten Akkus ab. Der Innenwiderstand ist hier die kritische Größe).&lt;br /&gt;
Das ist für Messungen von Sensorwerten und ähnlichem natürlich nicht ohne weiteres&lt;br /&gt;
brauchbar. Noch wichtiger ist jedoch, dass viele der verwendeten Komponenten wie&lt;br /&gt;
z.B. der Mikrocontroller nur auf 5V oder weniger Betriebsspannung ausgelegt sind und&lt;br /&gt;
bei so hohen Spannungen zerstört würden. Die Akku Spannung muss also auf einen&lt;br /&gt;
definierten Wert heruntergeregelt und stabilisiert werden!&lt;br /&gt;
Das übernimmt ein 5V Spannungsregler, der einen Strom von&lt;br /&gt;
maximal 1.5A liefern kann (s. Abb.). Bei 1.5A würde er jedoch&lt;br /&gt;
ziemlich viel Wärme abgeben. Es gibt daher eine große Kühlfläche&lt;br /&gt;
auf der Platine an die der Regler festgeschraubt ist. Über 1A&lt;br /&gt;
sollte der Regler trotz Kühlung besser nur kurzzeitig (also wenige&lt;br /&gt;
Sekunden) belastet werden, wenn man nicht noch einen zusätzlichen&lt;br /&gt;
großen Kühlköper draufschraubt.&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen, 800mA Dauerlast nicht zu überschreiten! Bei&lt;br /&gt;
so einer Belastung und zusammen mit den Motoren wären die&lt;br /&gt;
Akkus auch recht schnell leer. Im normalen Betrieb ohne ein Erweiterungsboard&lt;br /&gt;
nimmt der Roboter übrigens nicht mehr als 40mA auf (ausser wenn&lt;br /&gt;
das IRCOMM sendet), also überhaupt kein Problem für den Regler und man hat noch&lt;br /&gt;
genug Reserven für die Erweiterungsmodule, die meistens auch nicht mehr als 50mA&lt;br /&gt;
aufnehmen sofern keine Motoren, große LEDs o.ä. daran angeschlossen sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Umbau-Optionen==&lt;br /&gt;
Hier soll beschrieben werden, welche Umbau-Optionen es für die RP6 Base gibt. Im Text gibt es Verweise auf den Schaltplan des RP6 (RP6_MAINBOARD.PDF) in der Form: (SP2 B1: Bauteil). Dies bedeutet, dass man das Bauteil auf Blatt 2 des RP6-Schaltplans im Feld B1 finden kann. Beispielhaft sind im folgenden Text Bestell-Nummern der Firma [http://www.conrad.de/ce/ CONRAD] genannt. Natürlich kann man die Teile auch bei anderen Versendern beziehen.&lt;br /&gt;
&lt;br /&gt;
Bei den Materialangaben ist öfter die Rede von &amp;quot;Steckbuchsen mit Litze&amp;quot;. Diese Steckbuchsen mit angelöteter Litze können auf die ein- oder zweireihigen Stiftleisten aufgesteckt werden. Leider gibt es sie nicht (mehr) fertig konfektioniert bei CONRAD. Die einreihigen Steckbuchsen (RM 2,54mm) kann man aber z.B. bei [http://www.elv.de/output/controller.aspx ELV] bekommen: 2-polig (68-016635), 3-polig (68-022503) und 5-polig (68-023073). An sie muss man dann noch Litzen in der entsprechenden Länge selbst anlöten.&lt;br /&gt;
&lt;br /&gt;
===Elko für den IR-Empfänger=== [[Bild:RP6_C29_TSOP.JPG|thumb|RP6 C29 TSOP]]&lt;br /&gt;
Zur Spannungsstabilisierung kann ein Elko (C29; SP2 E1: C29*) am TSOP 34836 eingelötet werden.&lt;br /&gt;
&lt;br /&gt;
Normalerweise ist dieser Elko nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* Einen Elektrolyt-Kondensator stehend 10 uF / 16V (C29); RM 2,5mm (445631)&lt;br /&gt;
&lt;br /&gt;
Der Elko kann auch eine geringere Kapazität als 10 uF haben (1 uF bis 4,7 uF reichen auch). Man lötet den Elko auf seinen Platz. Bitte auf die Polung achten: Der Minuspol zeigt nach vorn (in Fahrtrichtung des RP6).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Anschlüsse===&lt;br /&gt;
Hier wird aufgelistet, wo man auf dem RP6 Mainboard Anschlüsse nutzen kann, um sie z.B. zu weiteren Sensoren, zum USRBUS oder (weniger empfehlenswert!) direkt zu EPs oder Erweiterungsplatinen (M32, CCPRO M128) zu führen.&lt;br /&gt;
&lt;br /&gt;
====Analoge Sensoren an ADC0/1==== [[Bild:RP6_ADC01.JPG|thumb|RP6 ADC0/1]]&lt;br /&gt;
&lt;br /&gt;
Wenn man bis zu zwei analoge Sensoren (z.B. IR-Distanz-Mess-Sensoren Sharp GP2Y0A02YK 185364) direkt an den RP6 anschließen möchte, dann gibt es da zwei 3-polige Kontakte, beschriftet mit VDD/GND/ADCx (x = 0..1). Hier kann man 3-polige Stiftleisten auflöten, an die dann die Sensoren angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 1-reihige Stiftleiste RM 2,54mm (z.B. 36-polig 732478)&lt;br /&gt;
* Zwei Keramik-Vielschicht-Kondensatoren 100nF (C27, C28); RM 2,54mm (453099)&lt;br /&gt;
* ENTWEDER einen Elektrolyt-Kondensator stehend 220 uF / 16V (C26); RM 3,5mm (445903)&lt;br /&gt;
* ODER einen Elektrolyt-Kondensator stehend 470 uF / 16V (C26); RM 3,5mm (446211)&lt;br /&gt;
* Zwei 3-polige Steckbuchsen mit Litze zum Anschluß der Sensoren&lt;br /&gt;
&lt;br /&gt;
Man trennt nun von der 1-reihigen Stiftleiste zweimal 3 Kontakte ab und lötet sie auf die weiß umrahmten Kontakte (VDD/GND/ADCx; SP2 B1: ADC0, ADC1), anschließend C27, C28 (SP2 A1: C27*, C28*) auf ihre Plätze und zum Schluß den Elko 220 uF oder 470 uF (C26; SP2 A1: C26*). Der Elko ist nur bei Sensoren mit hohem Strombedarf notwendig, siehe dazu auch Anleitung des RP6, Seite 136! Beim Elko auf die Polung achten: Er muss so sitzen, dass er mit seinem Pluspol in Fahrtrichtung des RP6 (nach vorn) schaut.&lt;br /&gt;
&lt;br /&gt;
Die Sensoren lötet man an die Litzen der 3-poligen Steckbuchsen und steckt diese auf die neuen Kontakte.&lt;br /&gt;
&lt;br /&gt;
Da manche Sensoren einen höheren Stromverbrauch haben, kann man die Stromversorgung an den VDD-Pins der ADC0/1-Stecker abschaltbar machen oder eine separate +5V-Spannung einspeisen. Siehe dazu den Abschnitt &amp;quot;Trennstellen - Getrennte Stromversorgung für ADC0/1&amp;quot; weiter unten!&lt;br /&gt;
&lt;br /&gt;
====ISP (In System Programming)====&lt;br /&gt;
Der ATMEGA32 des RP6 wird standardmäßig über den PROG/UART Stecker programmiert. Dazu befindet sich im Prozessor ein Bootloader-Programm. Wenn man stattdessen oder zusätzlich die ISP-Programmierung mit einem dafür geeigneten ISP-Programmier-Adapter nutzen will, kann man den Adapter an einen (noch einzulötenden) Wannenstecker auf dem RP6 anschließen.&lt;br /&gt;
Vorher sind aber ein paar &amp;quot;Umbauarbeiten&amp;quot; erforderlich.&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 1-reihige Stiftleiste RM 2,54mm (z.B. 36-polig 732478)&lt;br /&gt;
* Wannenstecker 2x5-polig gerade RM 2,54mm (z.B. [http://www.reichelt.de./ Reichelt] WSL 10G)&lt;br /&gt;
* Eine SMD-Diode LL 4148 (140902)&lt;br /&gt;
* Eine Codierbrücke (z.B. aus Set 742902)&lt;br /&gt;
&lt;br /&gt;
Zwischen dem XBUS-Stecker und C13 befinden sich 10 Lötpunkte für den ISP-Anschluß, auf die der Wannenstecker gelötet wird, und drei Lötpunkte (beschriftet mit ISP* - BOOTLOAD; SP2 A3: YR1..3), auf die eine 3-polige Stiftleiste gelötet werden muss.&lt;br /&gt;
&lt;br /&gt;
[[Bild:RP6_ISP.JPG|RP6 ISP]]&lt;br /&gt;
&lt;br /&gt;
Vorher muss eine kurze Leiterbahn zwischen den Lötpunkten BOOTLOAD aufgetrennt werden. Die Leiterbahn befindet sich auf der Lötseite der Platine und muss mit einem scharfen Messer oder einem speziellen Leiterbahn-Unterbrecher zwischen den beiden Lötpunkten unterbrochen werden. Man sollte anschließend mit einem Widerstandsmeßgerät nachmessen: Es sollte keine Verbindung mehr zwischen den Lötpunkten bestehen.&lt;br /&gt;
Man trennt dann von der 1-reihigen Stiftleiste 3 Kontakte ab und lötet sie auf die beschriebenen drei Lötpunkte.&lt;br /&gt;
&lt;br /&gt;
Zum Schluss lötet man noch die Diode LL 4148 (SP2 B3: D11*) auf ihre Lötflächen zwischen R3 und C6. Die Kathode (Strich) der Diode kommt nach vorn (in Fahrtrichtung RP6, bzw. liegt rechts von R3). Wenn man jetzt eine Codierbrücke auf die mit &amp;quot;BOOTLOAD&amp;quot; beschrifteten Pins steckt, bleibt alles unverändert: Die Programmierung erfolgt weiter über den PROG/UART-Stecker mithilfe des Bootloaders im Prozessor.&lt;br /&gt;
Wird die Codierbrücke in Stellung &amp;quot;ISP*&amp;quot; umgesteckt, kann der Prozessor mit ISP programmiert werden.&lt;br /&gt;
&lt;br /&gt;
Vorsicht: Das Bootloader-Programm kann dabei zerstört werden! Es müssen zusätzlich Fusebits des ATMEGA32 verändert werden. Dabei kann der Prozessor im schlimmsten Fall nicht mehr ansprechbar sein. Man sollte diesen Umbau und die ISP-Programmierung nur machen, wenn man genau weiß, was man macht!&lt;br /&gt;
&lt;br /&gt;
Eine Kopie des Bootloaders und eine Kurzanleitung zum Einstellen der Fusebits gibt es hier:&lt;br /&gt;
[http://www.arexx.com/rp6/downloads/RP6BASE_BOOTLOADER.zip RP6_BOOTLOADER]&lt;br /&gt;
&lt;br /&gt;
====IO1..IO4==== [[Bild:RP6_IO1-4.JPG|thumb|RP6 IO1..IO4]]&lt;br /&gt;
Die Anschlüsse IO1 bis IO4 (SP2 E3: IO1..4) steuern bereits die Status-LEDs 1, 2, 4 und 5 an. Trotzdem kann man sie auch noch mit leichten Einschränkungen als I/O-Pins benutzen. Dazu lötet man zweimal 2 Pins einer 1-reihigen Stiftleiste RM 2,54mm (z.B. 36-polig 732478) auf die IO1/2 und IO3/4 Lötpunkte.&lt;br /&gt;
Hier eine Tabelle, die die Port-Pins zeigt, die IO1..IO4 zugeordnet sind:&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |IO&lt;br /&gt;
 |Status-LED&lt;br /&gt;
 |Port-Pin&lt;br /&gt;
 |-&lt;br /&gt;
 |1&lt;br /&gt;
 |SL1&lt;br /&gt;
 |PC4&lt;br /&gt;
 |-&lt;br /&gt;
 |2&lt;br /&gt;
 |SL2&lt;br /&gt;
 |PC5&lt;br /&gt;
 |-&lt;br /&gt;
 |3&lt;br /&gt;
 |SL4&lt;br /&gt;
 |PB7&lt;br /&gt;
 |-&lt;br /&gt;
 |4&lt;br /&gt;
 |SL5&lt;br /&gt;
 |PB1&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
Wie können nun IO1..IO4 genutzt werden?&lt;br /&gt;
&lt;br /&gt;
Als ...&lt;br /&gt;
* Eingang, z.B. für zusätzliche Tastschalter/Bumper&lt;br /&gt;
* Ausgang, z.B. zur Ansteuerung von Treiberstufen, low-current LEDs, ...&lt;br /&gt;
&lt;br /&gt;
Wird ein Anschluß IOx als Eingang verwendet, muss ein Widerstand von 470 Ohm in Reihe mit dem Taster an VDD eingebaut werden, zusätzlich ein Pulldown-Widerstand 100 kOhm. Diese Beschaltung zeigen z.B. an SL6 die Widerstände R43 und R46 (SP2 E4: R43, R46).&lt;br /&gt;
&lt;br /&gt;
Als Ausgang geschaltet sollte an IOx kein hoher Strom entnommen werden: 10mA sind max. zu empfehlen!&lt;br /&gt;
&lt;br /&gt;
====USRBUS====&lt;br /&gt;
Die 14 Kontakte der beiden USRBUS-Stecker sind auf dem RP6 nirgendwo angeschlossen, sondern können über die Lötpunkte Y1..Y14 mit beliebigen Punkten auf dem Mainboard verbunden werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:RP6_USRBUS.JPG|thumb|RP6 USRBUS]]&lt;br /&gt;
&lt;br /&gt;
Ich würde auf Y1..Y14 eine Stiftleiste löten, damit die USRBUS-Belegung geändert werden kann.&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 2-reihige Stiftleiste RM 2,54mm (z.B. 2x36-polig 742007)&lt;br /&gt;
* Einige Steckbuchsen mit Litze&lt;br /&gt;
&lt;br /&gt;
Man trennt von der 2-reihigen Stiftleiste 2x7 Kontakte ab und lötet sie auf die Punkte Y1..Y14 (SP4 E34: Y1..14, Y1'..Y14') neben den beiden Wannensteckern USRBUS1 (vorn) und USRBUS2 (hinten). Wird der RP6 über Flachkabel mit einem USRBUS-Stecker auf einer RP6 Experimentierplatine (EP) und/oder mit einer Erweiterungsplatine (M32, CCPRO M128) verbunden, dann hat man mit allen mit dem USRBUS verbundenen Platinen eine direkte 14-polige Verbindung,- eben den &amp;quot;User Bus&amp;quot;. Den kann man dann nutzen, wie man will. Auf dem RP6 kann man mit Steckbuchsen die Pins Y1..Y14 mit anderen Pins verbinden.&lt;br /&gt;
&lt;br /&gt;
Beispiel: Verbindet man den Pin &amp;quot;ADC0&amp;quot; mit Y1 des USRBUS1, dann steht der Eingang ADC0 auf allen an den USRBUS1 angeschlossenen Platinen auf dem vorderen Platinenstapel an Y1 zur Verfügung. Man braucht also diesen Eingang nicht über ein eigenes Kabel auf eine EP zu führen, sondern kann dazu den USRBUS nehmen. Dadurch bleibt der Gesamtaufbau auf dem RP6 übersichtlich und komplett trennbar (man braucht nur die Stecker XBUS und USRBUS abzuziehen!).&lt;br /&gt;
&lt;br /&gt;
Wichtig:&lt;br /&gt;
* Man sollte gut dokumentieren, wie man den USRBUS am RP6 (vorn und hinten getrennt!), auf EPs und der M32/M128 benutzt! Sonst kann es bei einer anderen Anordnung von EPs zu USRBUS Konflikten/Kurzschlüssen kommen.&lt;br /&gt;
* Der USRBUS1- und der USRBUS2-Stecker sind auf dem RP6 NICHT miteinander verbunden.&lt;br /&gt;
&lt;br /&gt;
Einen Vorschlag für die Belegung des USRBUS1 (vorn) gibt es z.B. &lt;br /&gt;
[http://www.roboternetz.de/phpBB2/viewtopic.php?t=32549 hier] oder &lt;br /&gt;
[http://www.roboternetz.de/community/showthread.php/47102-Sensor-anschließen?p=453061&amp;amp;viewfull=1#post453061 da.]&lt;br /&gt;
&lt;br /&gt;
====Start/Stop Button==== [[Bild:RP6_ST.JPG|thumb|RP6 ST]]&lt;br /&gt;
Am mittleren Lochrasterfeld links finden sich zwei Lötpunkte ST1, ST2 (SP2 D2: ST1, ST2), an die weitere Start/Stop Taster (NO, normal offen) parallel zum Taster auf dem RP6 Mainboard angeschlossen werden können.&lt;br /&gt;
&lt;br /&gt;
Zum Anschluß kann man auch Stiftleisten auflöten. ST1, ST2 könnte man auch mit dem USRBUS1 verbinden, wenn man den RP6 z.B. von einer EP aus zurücksetzen möchte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Serielle Schnittstelle==== [[Bild:RP6_RST.JPG|thumb|RP6 RST]]&lt;br /&gt;
Neben dem USRBUS1 Stecker befinden sich 5 Lötpunkte mit den Signalen RST, TX, RX, GND, VDD (SP4 AB5: YRX, YTX, YMRESET, YVDD). Hier kann z.B. eine 5-polige Stiftleiste aufgelötet werden, um einen Anschluß an die serielle Schnittstelle zu ermöglichen.&lt;br /&gt;
&lt;br /&gt;
Von diesen 5 Lötpunkten könnte z.B. auch [http://www.roboternetz.de/phpBB2/viewtopic.php?t=32549 so] eine Verbindung zum benachbarten USRBUS1 hergestellt werden, um die serielle Schnittstelle des RP6 auf EPs zu führen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====I2C-Schnittstelle==== [[Bild:RP6_I2C.JPG|thumb|RP6 I2C]]&lt;br /&gt;
Neben dem XBUS2 Stecker finden sich 5 Lötpunkte mit den Signalen der I2C-Schnittstelle (SP4 D12: Stecker I2C). Dies sind: VDD (Pin 1), GND, SDA, SCL, INT1 (Pin 5). Hier kann z.B. eine 5-polige Stiftleiste aufgelötet werden, um einen Anschluß an die I2C-Schnittstelle zu ermöglichen.&lt;br /&gt;
&lt;br /&gt;
Von diesen 5 Lötpunkten könnte z.B. auch eine Verbindung zum USRBUS1 oder USRBUS2 hergestellt werden, um die I2C-Schnittstelle des RP6 auf EPs zu führen, allerdings hat man SCL, SDA, INT1 ja auch schon am XBUS zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Interrupt-Leitungen==== [[Bild:RP6_INTx.JPG|thumb|RP6 INTx]]&lt;br /&gt;
Die Interrupt-Leitungen INTU, INT1..3, MRESET (SP4 D34: MRESET, INT1..3, INTU) sind an 5 Lötpunkten neben dem XBUS1 Stecker zu kontaktieren. Hier kann natürlich auch eine 5-polige Stiftleiste aufgelötet werden. In der Regel wird man diese Anschlüsse nicht brauchen, weil sie schon auf dem XBUS zur Verfügung stehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====VDD/GND/+UB Anschluß==== [[Bild:RP6_VDDGNDUB.JPG|thumb|RP6 VDD GND +UB]]&lt;br /&gt;
In der Nähe von C4 im hinteren Bereich des Mainboards finden sich Lötpunkte (SP4 E12: YVDDx, YGNDx; SP4 D2 YUBx), an denen man VDD, GND und +UB finden kann.&lt;br /&gt;
&lt;br /&gt;
Wenn man höhere Ströme an VDD (z.B. für Servos) oder +UB (z.B. für einen anderen IRCOMM-Sender oder einen DC-Motor) entnehmen möchte, empfehlen sich diese Lötpunkte, auf die man auch Stiftleisten löten kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====EXT Anschluß==== [[Bild:RP6_EXT.jpg|thumb|RP6 EXT Anschluß]]&lt;br /&gt;
Am hinteren Rand der RP6 Hauptplatine gibt es eine Reihe von 8 Lötpunkten. Dies ist der EXT Anschluß (SP1 C23: Stecker EXT):&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |Pin&lt;br /&gt;
 |Name&lt;br /&gt;
 |Beschreibung&lt;br /&gt;
 |-&lt;br /&gt;
 |1&lt;br /&gt;
 |GND&lt;br /&gt;
 |RP6 und Akku Minuspol (GND)&lt;br /&gt;
 |-&lt;br /&gt;
 |2&lt;br /&gt;
 |CHRG&lt;br /&gt;
 |Anschluß (+) für ext. Ladegerät, identisch mit Pluspol der Ladebuchse (CHARGER, Pin 1). Ladung nur möglich, wenn S1 AUS ist!&lt;br /&gt;
 |-&lt;br /&gt;
 |3&lt;br /&gt;
 |CHRG&lt;br /&gt;
 |wie Pin 2!&lt;br /&gt;
 |-&lt;br /&gt;
 |4&lt;br /&gt;
 | +BAT&lt;br /&gt;
 |Akku Pluspol über Sicherung F1&lt;br /&gt;
 |-&lt;br /&gt;
 |5&lt;br /&gt;
 | +BAT&lt;br /&gt;
 |wie Pin 4!&lt;br /&gt;
 |-&lt;br /&gt;
 |6&lt;br /&gt;
 | +UB&lt;br /&gt;
 |RP6 +UB (+7,2V=, Bereich min. +5,5 bis max. +10V=)&lt;br /&gt;
 |-&lt;br /&gt;
 |7&lt;br /&gt;
 | +UB&lt;br /&gt;
 |wie Pin 6!&lt;br /&gt;
 |-&lt;br /&gt;
 |8&lt;br /&gt;
 |GND&lt;br /&gt;
 |wie Pin 1!&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
Man kann hier eine 1-reihige Stiftleiste RM 2,54mm (z.B. 36-polig 732478), von der man 8 Pins abtrennt, auflöten.&lt;br /&gt;
&lt;br /&gt;
Wozu kann man diesen Anschluß nutzen?&lt;br /&gt;
&lt;br /&gt;
Der wesentliche Sinn des EXT Anschlusses besteht darin, andere Arten der Stromversorgung und der Akkuladung zu ermöglichen. Normalerweise schaltet man den RP6 mit S1 an und aus. In Stellung AUS kann der Akku geladen werden, indem man ein Ladegerät an die CHARGER Buchse anschließt. Alternativ kann man das Ladegerät mit seinem Pluspol auch an CHRG (Pins 2, 3) anschließen. Siehe auch den Abschnitt &amp;quot;Trennstellen - EXT Anschluß: Andere Stromversorgung&amp;quot; weiter unten!&lt;br /&gt;
&lt;br /&gt;
An +BAT (Pins 4, 5) kann man direkt (ohne Unterbrechung durch S1) Strom aus dem Akku entnehmen. Die Grenze des Stroms bestimmt die Sicherung F1 (2,5A). Eine weitere Möglichkeit besteht darin, über diesen Anschluß den Akku auch mit einem geeigneten Ladegerät zu LADEN. Hierbei muss man aber darauf achten, dass S1 AUSgeschaltet ist, weil sonst der RP6 über +UB eine unzulässig hohe Spannung bekommen könnte. Wenn man den Akku mit 6 Mignonzellen im RP6 nicht nutzen will (der Akku-Halter bleibt leer!), sondern nur einen externen Akku, wäre der auch mit seinem Pluspol an +BAT über eine eigene Sicherung (2,5A träge) anzuschließen.&lt;br /&gt;
&lt;br /&gt;
+UB (+7,2V) ist die Versorgungsspannung des RP6 (kommt vom Akku-Pluspol über die Sicherung F1 und Schalter S1!). Mit +UB werden die H-Brücken (Motoransteuerung) direkt und die RP6 &amp;quot;Elektronik&amp;quot; über den 5V-Spannungswandler (IC1; SP1 D3: IC1) versorgt (= VDD). An +UB könnte man den RP6 direkt mit einer Spannung von +7,2V versorgen (Absicherung nicht vergessen!), dazu muss S1 AUSgeschaltet sein, damit es keine Konflikte mit dem eingebauten Akku gibt.&lt;br /&gt;
&lt;br /&gt;
Den EXT Anschluß kann man damit nutzen für:&lt;br /&gt;
* Externes Ladegerät&lt;br /&gt;
* Externen Akku&lt;br /&gt;
* Externe Stromversorgung ohne Akku&lt;br /&gt;
* Direkte Stromentnahme aus dem Akku&lt;br /&gt;
* Ergänzungsladung mit Solarzelle&lt;br /&gt;
* Autonome Akkuladung (Ladestation mit Kontakten, Induktionsladung ...)&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
Man sollte gewisse Elektronik-Kenntnisse haben, wenn man die Spannungsversorgung des RP6 verändert. VOR irgendwelchen Veränderungen seht euch auch zuerst den Schaltplan des RP6 (SP1) genau an!&lt;br /&gt;
&lt;br /&gt;
===Mess-/Kontaktpunkte===&lt;br /&gt;
Hier geht es um Kontaktpunkte, an denen man z.B. den Logik-Pegel (High/Low) oder eine analoge Spannung messen kann. Natürlich kann man die Signale auch zur Weiterleitung auf eine EP kontaktieren, dies wird man aber normalerweise nicht brauchen.&lt;br /&gt;
&lt;br /&gt;
====UBAT==== [[Bild:RP6_UBAT.JPG|thumb|RP6 UBAT]]&lt;br /&gt;
In der Mitte des Mainboards befindet sich ein Kontaktpunkt UBAT (SP1 E1: YUBAT). Dies ist ADC7 des RP6 Microcontrollers.&lt;br /&gt;
&lt;br /&gt;
Man kann hier die analoge Spannung (gegen GND) messen, die vom +UB-Spannungssensor geliefert wird.&lt;br /&gt;
&lt;br /&gt;
Die Spannung ist:&lt;br /&gt;
 UBAT = +UB / 2&lt;br /&gt;
Da der Spannungsteiler (SP1 D12: R1, R2) des +UB-Spannungssensors nicht aus Präzisionswiderständen besteht, kann man für den eigenen RP6 einen Korrekturfaktor berechnen, wenn UBAT deutlich von +UB / 2 (+ UB z.B. gemessen am EXT Stecker, Pins 6 u. 7) abweicht. Damit kann man +UB sehr viel genauer bestimmen.&lt;br /&gt;
&lt;br /&gt;
====ACS==== [[Bild:RP6_ACS_TSOP.JPG|thumb|RP6 ACS TSOP]]&lt;br /&gt;
Hinter dem TSOP (IC3) befindet sich der Kontaktpunkt ACS (SP2 E1: ACS).&lt;br /&gt;
&lt;br /&gt;
Dies ist der Ausgang des TSOP bzw. Eingang PB2 des RP6 Microcontrollers. Man kann hier das Ausgangssignal des IR-Empfängers abnehmen, z.B. um es mit einem Oszilloskop sichtbar zu machen.&lt;br /&gt;
&lt;br /&gt;
Rechts neben dem TSOP kann man noch die 3 Kontaktpunkte ACS_R, ACS_P und ACS_L (SP2 E2: ACS_P, ACS_R, ACS_L) des ACS-IR-Senders finden.&lt;br /&gt;
&lt;br /&gt;
Folgende Tabelle zeigt die Verbindungen:&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |Kontakt&lt;br /&gt;
 |Microcontroller-Portpin&lt;br /&gt;
 |SP-Verbindung&lt;br /&gt;
 |ACS-IR-Sendediode&lt;br /&gt;
 |-&lt;br /&gt;
 |ACS_P&lt;br /&gt;
 |über R8: ACS_PWRH (PB3), über R9: ACS_PWR (PD6)&lt;br /&gt;
 |SP2: 3&lt;br /&gt;
 |Anoden D1, D2&lt;br /&gt;
 |-&lt;br /&gt;
 |ACS_R&lt;br /&gt;
 |ACS_R (PC7)&lt;br /&gt;
 |SP2: 2&lt;br /&gt;
 |Kathode D1&lt;br /&gt;
 |-&lt;br /&gt;
 |ACS_L&lt;br /&gt;
 |ACS_L/MISO (PB6)&lt;br /&gt;
 |SP1: 5&lt;br /&gt;
 |Kathode D2&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====IRC==== [[Bild:RP6_IRC.JPG|thumb|RP6 IRC]] [[Bild:RP6_IRC3.JPG|thumb|RP6 IRC3]]&lt;br /&gt;
Im der Nähe von C13 befinden sich die Lötpunkte IRC, IRC+, IRC- und IRC3 (SP2 D2: YIRC; SP2 CD2: IRC+/-; SP2 C2: IRC3). Zusammen mit der Trennstelle IRC (siehe Abschnitt &amp;quot;Trennstellen - IRC&amp;quot; weiter unten!) kann man diese Kontaktstellen im Umfeld des IRCOMM-Sendedioden Treibers IRLML2502PBF (SP2 CD12: Q5) finden. Am Kontaktpunkt IRC findet sich der Eingang des Treibers bzw. Ausgang PD7 des RP6 Microcontrollers. IRC+, IRC- sind die Kontaktpunkte, an denen die IRCOMM-Sendedioden D3, D4 in Reihe auf der Sensorplatine angeschlossen sind (IRC+ = Anode). IRC3 ist verbunden mit dem Trennstellen-Lötpunkt IRC1 und liegt bei geschlossener Trennstelle IRC an +UB.&lt;br /&gt;
&lt;br /&gt;
Was läßt sich mit diesen Kontaktpunkten machen:&lt;br /&gt;
* Der IRCOMM-Sender ist der zweitgrößte Stromverbraucher des RP6 (nach dem Antrieb). An IRC3 kann daher eine eigene Stromversorgung für die IRCOMM-Sendedioden angeschlossen werden. Dazu muss die Trennstelle IRC zwischen ihren Lötpunkten IRC1, IRC2 aufgetrennt werden.&lt;br /&gt;
* An IRC+, IRC- könnten andere/weitere IRCOMM-Sendedioden angeschlossen werden (Anode an IRC+). Wenn der Vorwiderstand R6 (SP2 C2: R6) der Sendedioden dann nicht mehr paßt (bezügl. Leistung und/oder Widerstandswert), können neue leistungsfähigere IRCOMM-Sendedioden zwischen IRC3 und IRC- (Anode an IRC3) mit einem dafür geeigneten Vorwiderstand angebracht werden.&lt;br /&gt;
&lt;br /&gt;
====LS==== [[Bild:RP6_LS.JPG|thumb|RP6 LS]]&lt;br /&gt;
Die beiden Lötpunkte LS_L und LS_R (SP2 B12: LS_L, LS_R) neben R7 vorn auf dem Mainboard sind die Ausgänge der Helligkeitssensoren (links und rechts) bzw. die ADC-Eingänge ADC3 und ADC2 des RP6 Microcontrollers.&lt;br /&gt;
&lt;br /&gt;
Hier kann man die Spannungen messen, die den Helligkeitswerten entsprechen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====BP, S==== [[Bild:RP6_BP_S.JPG|thumb|RP6 BP S]]&lt;br /&gt;
Die Messpunkte BPL, BPR und der Kontaktpunkt S (SP2 E2: S; SP2 E3: BPR; SP2 E4: BPL) befinden sich am vorderen Platinenrand. BPL und BPR sind die Kontakte der Bumper. S ist eine nicht genutzte Verbindung zwischen dem Mainboard und der Sensorplatine, die über die Verbindung SP1, Pin 3, geführt wird (siehe folgende Tabelle!).&lt;br /&gt;
&lt;br /&gt;
Hier eine Tabelle mit der Belegung der 90°-Winkelverbindung SP1, SP2 zwischen dem RP6 Mainboard und der Sensorplatine: &lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |Pin&lt;br /&gt;
 |SP1&lt;br /&gt;
 |SP2&lt;br /&gt;
 |-&lt;br /&gt;
 |1&lt;br /&gt;
 |LS_L  --- Light Sensor Left&lt;br /&gt;
 |IRC-  --- IRCOMM-&lt;br /&gt;
 |-&lt;br /&gt;
 |2&lt;br /&gt;
 |BPL   --- Bumper Left&lt;br /&gt;
 |ACS_R --- ACS Right&lt;br /&gt;
 |-&lt;br /&gt;
 |3&lt;br /&gt;
 |S     --- Free for all&lt;br /&gt;
 |ACS_P --- ACS Power&lt;br /&gt;
 |-&lt;br /&gt;
 |4&lt;br /&gt;
 |GND&lt;br /&gt;
 |VDD&lt;br /&gt;
 |-&lt;br /&gt;
 |5&lt;br /&gt;
 |ACS_L --- ACS Left&lt;br /&gt;
 |BPR   --- Bumper Right&lt;br /&gt;
 |-&lt;br /&gt;
 |6&lt;br /&gt;
 |IRC+  --- IRCOMM+&lt;br /&gt;
 |LS_R  --- Light Sensor Right&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====ENC==== [[Bild:RP6_ENC.JPG|thumb|RP6 ENC]]&lt;br /&gt;
Die beiden Messpunkte ENCL, ENCR (SP4 B12: ENCL, ENCR) sind die Ausgänge der Radencoder. ENCL ist verbunden mit PD2 (INT0), ENCR mit PD3 (INT1) des RP6 Microcontrollers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Trennstellen===&lt;br /&gt;
An diesen Stellen können Leiterbahnen unterbrochen werden, um Funktionen zu deaktivieren oder anders zu nutzen.&lt;br /&gt;
&lt;br /&gt;
=====Getrennte Stromversorgung für ADC0/1=====&lt;br /&gt;
Wenn man für die analogen Sensoren an ADC0/1 (siehe Abschnitt &amp;quot;Anschlüsse - Analoge Sensoren an ADC0/1&amp;quot; weiter oben!) eine GETRENNTE Stromversorgung vorsehen will und/oder mit Codierbrücke (oder MOSFET) die Stromversorgung abschaltbar machen möchte, muss man erst Vorarbeit leisten.&lt;br /&gt;
[[Bild:RP6_SV.JPG|thumb|RP6 SV]]&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 1-reihige Stiftleiste RM 2,54mm (z.B. 36-polig 732478)&lt;br /&gt;
* Evtl.: Eine Codierbrücke (z.B. aus Set 742902)&lt;br /&gt;
* Evtl.: Eine 1-polige Steckbuchse mit Litze zur ext. Stromversorgung&lt;br /&gt;
Es muss eine kurze Leiterbahn zwischen den Punkten &amp;quot;SV1&amp;quot; und &amp;quot;SV2&amp;quot; (SP2 A1: SV1, SV2; zwischen dem PROG/UART- und dem USRBUS1-Stecker) aufgetrennt werden. Die Leiterbahn befindet sich auf der Lötseite der Platine und muss mit einem scharfen Messer oder einem speziellen Leiterbahn-Unterbrecher zwischen den beiden Lötpunkten unterbrochen werden. Man sollte anschließend mit einem Widerstandsmeßgerät zwischen SV1 und SV2 nachmessen: Es sollte keine Verbindung mehr bestehen. Jetzt trennt man von der 1-reihigen Stiftleiste 2 Kontakte ab und lötet sie auf die Punkte SV1/SV2.&lt;br /&gt;
&lt;br /&gt;
Man kann hier zunächst eine Codierbrücke aufstecken. Damit versorgt der RP6 Akku die Sensoren mit 5V an den Pins VDD. Möchte man später eine getrennte 5V-Spannung anlegen, zieht man einfach die Codierbrücke ab und speist die externe 5V-Spannung (mit einer 1-poligen Steckbuchse) am Pin SV2 ein. Achtung: An Pin SV1 wird dann nichts angeschlossen!&lt;br /&gt;
&lt;br /&gt;
Anstelle der Codierbrücke kann man natürlich auch einen MOSFET anschließen, um die Sensoren per Software abschalten zu können.&lt;br /&gt;
&lt;br /&gt;
====ACS==== [[Bild:RP6_ACS_JP.JPG|thumb|RP6 ACS JP]]&lt;br /&gt;
Die Trennstelle ACS (SP2 E1: YIR1, YIR2; SP2 F1: YIR3) befindet sich neben C29*. Sie besteht aus 3 Lötpunkten, von denen die linken beiden (IRC1, IRC2) verbunden sind. Trennt man die Leiterbahn zwischen diesen Lötpunkten auf und verbindet stattdessen die rechten beiden Lötpunkte (IRC2, IRC3) mit etwas Lötzinn oder mit einem SMD Null Ohm Widerstand, dann ist der IR-Empfänger (TSOP, IC3) dauerhaft EINgeschaltet und kann nicht mehr über das Signal PWRON (PB4) geschaltet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IRC==== [[Bild:RP6_IRC_JP.JPG|thumb|RP6 IRC JP]]&lt;br /&gt;
Die Trennstelle IRC (SP2 C1: IRC1..2) ist eng verknüpft mit den Mess- und Kontaktpunkten des IRCOMM-Senders (siehe Abschnitt &amp;quot;Mess-/Kontaktpunkte - IRC&amp;quot; weiter oben!). Wenn man sie auftrennt, kann man den IRCOMM-Sender mit einer getrennten Stromversorgung anstelle von +UB des RP6 versehen. Dies ist sehr sinnvoll, wenn man diese Funktion häufig verwendet oder sogar noch leistungsfähigere IR-Sendedioden einbaut, denn der IRCOMM-Sender ist der zweitgrößte Stromfresser (nach dem Antrieb) auf dem RP6 (von Erweiterungsplatinen und EPs Marke Eigenbau einmal abgesehen!). Man kann hier natürlich auch eine 2-polige Stiftleiste einlöten, um die Verbindung zu +UB mit einer Codierbrücke trennbar zu machen. Eine getrennte Stromversorgung +7,2V (Bereich: +5,5 .. +10V) kann man an IRC1 einspeisen. IRC1 dieser Trennstelle ist mit dem Kontaktpunkt IRC3 (siehe Abschnitt &amp;quot;Mess-/Kontaktpunkte - IRC&amp;quot; weiter oben!) verbunden. &lt;br /&gt;
&lt;br /&gt;
====RP6 Antrieb====&lt;br /&gt;
Mit den folgenden Trennstellen kann man den RP6 Antrieb (H-Brücken und Motoren) fast komplett vom Rest des RP6 Mainboards abtrennen (es bleibt nur die 5V-Versorgung (VDD) von IC4, T1, T2 bestehen!). Damit ist es möglich, mit dem RP6 Mainboard einen ganz anderen Antrieb (also z.B. ein anderes Roboter-Chassis mit eigenen Motoren und H-Brücken) zu steuern. Umgekehrt könnte man den RP6 Antrieb auch deshalb abtrennen, um ihn durch ein anderes Prozessorsystem (z.B. auch eine M32!) anzusteuern. It's up to you!&lt;br /&gt;
&lt;br /&gt;
=====+UB Power===== [[Bild:RP6_HB_Power.jpg|thumb|RP6 HB Power]]&lt;br /&gt;
Der RP6 Antrieb wird direkt aus dem Akku (über S1 und F1) mit 7,2V (+UB) versorgt. Diese Stromversorgung kann man komplett abtrennen. Die Trennstelle (SP3 E34: X) liegt unter der Sicherung F1 (siehe Abb. RP6 HB Power). Zwischen den beiden doppelten Lötflächen befinden sich auf der Lötseite (Unterseite) des Mainboards vier parallele Leiterbahnen, die aufgetrennt werden müssen. Der Pluspol einer externen Spannung zur Versorgung des RP6 Antriebs kann dann mit einer Kabelverbindung an den doppelten Lötflächen (mit einem &amp;quot;+&amp;quot; gekennzeichnet) direkt neben dem Leistungswiderstand (R27) angeschlossen werden. Eine Absicherung dieser Stromversorgung sollte man unbedingt vorsehen (2,5A träge)!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Stromsensoren===== [[Bild:RP6_CS.JPG|thumb|RP6 CS]]&lt;br /&gt;
Um den Motorstrom der beiden Motoren des RP6 zu messen, wird ein Dual-Operationsverstärker (IC5 = 27M2C; SP3 B23/D23: IC5B/A) eingesetzt. Dieses IC wird über PWRON (PB4) mit Strom versorgt. Die Stromsensoren funktionieren also nicht, wenn PWRON Low-Pegel führt (Befehl powerOFF() der RP6 Library!). Auf dem RP6 Mainboard gibt es eine Trennstelle mit drei Lötflächen (SP3 E34: CS1, CS2, CS3). Sie befindet sich auf dem Mainboard neben C23. Möchte man IC5 nicht mehr über PWRON mit Strom versorgen, sondern über VDD (+5V), dann trennt man die Leiterbahn zwischen den linken beiden Lötpunkten (CS1, CS2) auf und verbindet die rechten beiden Lötpunkte (CS2, CS3) mit etwas Lötzinn oder einem SMD Null Ohm Widerstand. Danach sind die Stromsensoren immer eingeschaltet und können über PWRON nicht mehr geschaltet werden. Alternativ kann man an CS2 auch eine externe Versorgungsspannung (+5V) für IC5 einspeisen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====DR/MR/ML/DL===== [[Bild:RP6_DR_MR_ML_DL.JPG|thumb|RP6 DR MR ML DL]]&lt;br /&gt;
An diesen Trennstellen können die Eingänge der H-Brücke für die Geschwindigkeit (PWM) und Drehrichtung der Motoren von den Portpins des Microcontrollers abgetrennt werden.&lt;br /&gt;
Für den rechten Motor sind dies die Trennstellen MR1/2 und DR1/2 (SP3 A23: MR1/2, DR1/2), für den linken Motor ML1/2 und DL1/2 (SP3 F23: ML1/2, DL1/2).&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |Trennstelle&lt;br /&gt;
 |Portpin&lt;br /&gt;
 |Funktion H-Brücke&lt;br /&gt;
 |-&lt;br /&gt;
 |MR1/2&lt;br /&gt;
 |PD5 (OC1A)&lt;br /&gt;
 |PWM Motor rechts&lt;br /&gt;
 |-&lt;br /&gt;
 |DR1/2&lt;br /&gt;
 |PC3 (TMS)&lt;br /&gt;
 |Fahrtrichtung rechts&lt;br /&gt;
 |-&lt;br /&gt;
 |ML1/2&lt;br /&gt;
 |PD4 (OC1B)&lt;br /&gt;
 |PWM Motor links&lt;br /&gt;
 |-&lt;br /&gt;
 |DL1/2&lt;br /&gt;
 |PC2 (TCK)&lt;br /&gt;
 |Fahrtrichtung links&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
Trennt man die Leiterbahn (auf der Lötseite des RP6 Mainboards) zwischen den Lötpunkten der Trennstellen auf, kann man die Eingänge der H-Brücke (Mx1, Dx1) z.B. mit einem anderen Microcontroller verbinden. Die Ausgänge (Portpins) des RP6 Microcontrollers (Mx2, Dx2) können dann anders genutzt werden. Natürlich kann man auf die Lötpunkte dieser Trennstellen auch Stiftleisten löten, um den Anschluß steckbar zu machen.&lt;br /&gt;
&lt;br /&gt;
=====MCR/MCL===== [[Bild:RP6_MCR_MCL.JPG|thumb|RP6 MCR MCL]]&lt;br /&gt;
An diesen Trennstellen können die Motorstromsensoren von den ADC-Eingängen des Microcontrollers abgetrennt werden.&lt;br /&gt;
&lt;br /&gt;
Für den rechten Sensor ist dies die Trennstelle MCR1/2 (SP3 A1: MCR1, MCR2), für den linken Sensor MCL1/2 (SP3 E1: MCL1, MCL2).&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |Trennstelle&lt;br /&gt;
 |Portpin&lt;br /&gt;
 |Funktion H-Brücke&lt;br /&gt;
 |-&lt;br /&gt;
 |MCR1/2&lt;br /&gt;
 |PA5 (ADC5)&lt;br /&gt;
 |Motorstrom rechts&lt;br /&gt;
 |-&lt;br /&gt;
 |MCL1/2&lt;br /&gt;
 |PA6 (ADC6)&lt;br /&gt;
 |Motorstrom links&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
Trennt man die Leiterbahn (auf der Lötseite des RP6 Mainboards) zwischen den Lötpunkten der Trennstellen auf, kann man die ADC-Eingänge (Portpins) des RP6 Microcontrollers (MCx1) anders nutzen und die Ausgänge der Motorstromsensoren (MCx2) z.B. mit ADC-Eingängen eines anderen Microcontrollers verbinden. Natürlich kann man auf die Lötpunkte dieser Trennstellen auch Stiftleisten löten, um den Anschluß steckbar zu machen.&lt;br /&gt;
&lt;br /&gt;
====PWRON-LED==== [[Bild:RP6_PWRON_L.JPG|thumb|RP6 PWRON L]]&lt;br /&gt;
Auf dem RP6 Mainboard gibt es eine gelbe LED, die anzeigt, ob PWRON High-Pegel hat. Mit einer Trennstelle neben dieser LED (SP2 D4: YL1, YL2) kann diese LED deaktiviert werden (z.B. um Strom zu sparen).&lt;br /&gt;
&lt;br /&gt;
Dazu trennt man die Leiterbahn zwischen den Lötpunkten auf. Soll die LED wieder aktiviert werden, verbindet man die Lötpunkte wieder mit etwas Lötzinn oder einem SMD Null Ohm Widerstand.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====+UB Sensor==== [[Bild:RP6_UB.JPG|thumb|RP6 UB]]&lt;br /&gt;
Die Versorgungsspannung +UB des RP6 wird mit dem +UB-Spannungssensor an PA7 (ADC7) gemessen. Will man diesen Spannungssensor mit seinem Eingangsspannungsteiler R1, R2 (SP1 D12: R1, R2) von +UB abtrennen (z.B. um ihn anders zu verwenden), gibt es eine Trennstelle UB1/2 (SP1 D2: UB1, UB2). Trennt man die Leiterbahn auf der Lötseite des RP6 Mainboards zwischen den Lötpunkten auf, kann +UB nicht mehr gemessen werden. Man kann dann den Lötpunkt UB2 mit einem anderen Messpunkt (z.B. mit +BAT) verbinden und dort die Spannung (0..10V) messen. Natürlich kann man auf die Lötpunkte dieser Trennstellen auch Stiftleisten löten, um den Anschluß steckbar zu machen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====EXT Anschluß: Andere Stromversorgung==== [[Bild:RP6_S1_CHRG.jpg|thumb|RP6 S1 CHRG]]&lt;br /&gt;
Wenn man für den RP6 eine andere Stromversorgung oder Ladeschaltung anschließen will, geht dies gut am EXT Anschluß (SP1 C23: Stecker EXT). Siehe auch den Abschnitt &amp;quot;Anschlüsse - EXT Anschluß&amp;quot; weiter oben! Dann muss der Schalter S1 dauerhaft AUSgeschaltet bleiben und die Verbindung zwischen S1 und CHRG des EXT Anschlusses (SP1 C3: X) unterbrochen werden. Diese Trennstelle befindet sich auf der Lötseite (Unterseite) des RP6 Mainboards etwas versteckt zwischen S1 (Pin 3) und der benachbarten Leiterbahn, die CHRG des EXT Anschlusses mit der Ladebuchse CHARGER (Pin 1 +) verbindet. Dort sind fünf kurze, parallele Leiterbahnen zu unterbrechen (siehe gelbe Markierung in der Abb. RP6 S1 CHRG!). Will man das nicht machen, darf man die Ladebuchse CHARGER auf jeden Fall nicht mehr nutzen!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Lochraster-Felder===&lt;br /&gt;
Auf diesen Feldern kann man eigene kleine Schaltungen aufbauen. An jedem der sechs Felder stehen VDD (+5V) und GND zur Verfügung (SP4 E12: YVDDx, YGNDx).&lt;br /&gt;
&lt;br /&gt;
Bitte beachten: Die Lochreihen oder -spalten, die mit einer eckigen Klammer &amp;quot;[&amp;quot; markiert sind, liegen auf der Lötseite (Unterseite) direkt auf dem Rahmen des Chassis! Hier können also keine Drähte von unten verlötet werden.&lt;br /&gt;
&lt;br /&gt;
====Vorn links====&lt;br /&gt;
Das kleine Lochrasterfeld vorn links kann z.B. für Beleuchtung (Blinker, Scheinwerfer links) oder auch für einen zusätzlichen Sensor genutzt werden.&lt;br /&gt;
Zur Verfügung steht eine 2-adrige Verbindung zum mittleren Lochrasterfeld links.&lt;br /&gt;
&lt;br /&gt;
In der Nähe dieses Lochrasterfeldes gibt es auch:&lt;br /&gt;
* IO3, IO4 (SP2 E3: IO3, IO4)&lt;br /&gt;
* ADC0 (SP2 B1: ADC0)&lt;br /&gt;
&lt;br /&gt;
====Mitte links==== [[Bild:RP6_Lochfeld_LM.JPG|thumb|RP6 Lochrasterfeld Mitte links]]&lt;br /&gt;
Das größere Lochrasterfeld Mitte links kann z.B. für eine kleinere Schaltung zur Ansteuerung der Beleuchtung/Sensoren auf den Lochrasterfeldern vorn und hinten links oder für andere Zwecke genutzt werden.&lt;br /&gt;
&lt;br /&gt;
Es stehen hier folgende Anschlüsse zur Verfügung:&lt;br /&gt;
* 2-adrige Verbindung zum Lochrasterfeld vorn links&lt;br /&gt;
* 2-adrige Verbindung zum Lochrasterfeld hinten links&lt;br /&gt;
* ST1/ST2 zum Anschluß weiterer Start/Stop Taster (SP2 D2: ST1/2)&lt;br /&gt;
* PWR (SP2 D2: YPWR1)&lt;br /&gt;
* I2C-Bus (SCL, SDA; SP4 C1: YSCL1, YSDA1)&lt;br /&gt;
* +UB (SP4 D2: YUB1)&lt;br /&gt;
In der Nähe dieses Lochrasterfeldes gibt es auch:&lt;br /&gt;
* Serielle Schnittstelle (RST, TX, RX; SP4 AB5: YRX, YTX, YMRESET, YVDD)&lt;br /&gt;
* USRBUS1 (vorn; SP4 E34: Y1'..Y14')&lt;br /&gt;
&lt;br /&gt;
=====Schaltungsvorschläge=====&lt;br /&gt;
Wie kann z.B. eine Schaltung für Beleuchtungseffekte oder Sensoren aussehen?&lt;br /&gt;
&lt;br /&gt;
Man könnte 8 zusätzliche Schaltkanäle mit dem I2C-Portexpander-IC PCF8574(A)P gewinnen. Dieses IC passt mit wenigen Zusatzteilen auf die mittlere Lochrasterfläche. Angesteuert wird es über den I2C-Bus. Mit den 8 Ausgängen lassen sich einige Beleuchtungseffekte erreichen, die dann über Software schaltbar sind.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann man auch das IC PCF8591P z.B. für den Anschluß von analogen Sensoren verwenden. Auch dieser Baustein wird über I2C angesteuert. Beide ICs sind bei [http://www.reichelt.de./ Reichelt] erhältlich.&lt;br /&gt;
&lt;br /&gt;
Will man nicht den I2C-Bus benutzen, kann man als I/O-Ports IO1..IO4 oder als analoge Eingänge ADC0 und ADC1 verwenden. Auch SCL und SDA stehen als I/O-Ports zur Verfügung, wenn der I2C-Bus im ganzen System nicht verwendet werden soll.&lt;br /&gt;
&lt;br /&gt;
Wichtig für Zusatzschaltungen, die fest auf dem RP6 verlötet werden, sind zwei Aspekte:&lt;br /&gt;
* Wenn sie die Stromversorgung belasten, sollten sie (z.B. über einen Transistor oder MOSFET) abschaltbar sein. Dazu kann man auch das Signal PWR heranziehen, das auf beiden mittleren Lochrasterflächen zur Verfügung steht. Dann kann man mit dem Befehl &amp;quot;powerOFF()&amp;quot; der RP6 Library die Stromversorgung per Software abschalten.&lt;br /&gt;
* Wenn man auch anderweitig genutzte Portpins (SDA, SCL, IO1..IO4, ADC0/1) für die eigene Schaltung einsetzt, sollte man die Verbindung zu den Portpins mit einer abziehbaren Codierbrücke trennbar machen.&lt;br /&gt;
&lt;br /&gt;
====Hinten links====&lt;br /&gt;
Das kleine Lochrasterfeld hinten links kann z.B. für Beleuchtung (Blinker, Rücklicht links) oder auch für einen zusätzlichen Sensor genutzt werden.&lt;br /&gt;
Zur Verfügung steht eine 2-adrige Verbindung zum mittleren Lochrasterfeld links.&lt;br /&gt;
&lt;br /&gt;
In der Nähe dieses Lochrasterfeldes gibt es auch:&lt;br /&gt;
* EXT Anschluß (SP1 C23: Stecker EXT)&lt;br /&gt;
&lt;br /&gt;
====Vorn rechts====&lt;br /&gt;
Das kleine Lochrasterfeld vorn rechts kann z.B. für Beleuchtung (Blinker, Scheinwerfer rechts) oder auch für einen zusätzlichen Sensor genutzt werden.&lt;br /&gt;
Zur Verfügung steht eine 2-adrige Verbindung zum mittleren Lochrasterfeld rechts.&lt;br /&gt;
&lt;br /&gt;
In der Nähe dieses Lochrasterfeldes gibt es auch:&lt;br /&gt;
* IO1, IO2 (SP2 E3: IO1, IO2)&lt;br /&gt;
* ADC1 (SP2 B1: ADC1)&lt;br /&gt;
&lt;br /&gt;
====Mitte rechts====&lt;br /&gt;
Das größere Lochrasterfeld Mitte rechts kann z.B. für eine kleinere Schaltung zur Ansteuerung der Beleuchtung/Sensoren auf den Lochrasterfeldern vorn und hinten rechts oder für andere Zwecke genutzt werden.&lt;br /&gt;
&lt;br /&gt;
Es stehen hier folgende Anschlüsse zur Verfügung:&lt;br /&gt;
* 2-adrige Verbindung zum Lochrasterfeld vorn rechts&lt;br /&gt;
* 2-adrige Verbindung zum Lochrasterfeld hinten rechts&lt;br /&gt;
* PWR (SP2 D2: YPWR2)&lt;br /&gt;
* I2C-Bus (SCL, SDA; SP4 C1: YSCL2, YSDA2)&lt;br /&gt;
* +UB (SP4 D2: YUB2)&lt;br /&gt;
In der Nähe dieses Lochrasterfeldes gibt es auch:&lt;br /&gt;
* Interrupt-Anschluß (INTU, INT1..3, MRESET; SP4 D34: MRESET, INT1..3, INTU)&lt;br /&gt;
* USRBUS2 (hinten; SP4 E34: Y1..Y14)&lt;br /&gt;
&lt;br /&gt;
====Hinten rechts====&lt;br /&gt;
Das kleine Lochrasterfeld hinten rechts kann z.B. für Beleuchtung (Blinker, Rücklicht rechts) oder auch für einen zusätzlichen Sensor genutzt werden.&lt;br /&gt;
Zur Verfügung steht eine 2-adrige Verbindung zum mittleren Lochrasterfeld rechts.&lt;br /&gt;
&lt;br /&gt;
In der Nähe dieses Lochrasterfeldes gibt es auch:&lt;br /&gt;
* EXT Anschluß (SP1 C23: Stecker EXT)&lt;br /&gt;
* Akku-Anschluß (SP1 B3: BATTERY)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erweiterungen==&lt;br /&gt;
Auf / An den RP6 könnte man z.B. noch folgendes anbauen / erweitern:&lt;br /&gt;
&lt;br /&gt;
* Einen Greifarm&lt;br /&gt;
* Einen Ultraschallsensor&lt;br /&gt;
* Zwei Lichtsensoren hinten, um die hellste / dunkelste Stelle im Raum besser zu finden&lt;br /&gt;
* Einen digitalen Kompass&lt;br /&gt;
* uvm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erweiterungs-Module==&lt;br /&gt;
&lt;br /&gt;
Es sind von Arexx schon drei Erweiterungsmöglichkeiten auf dem Markt. Zum Ersten die Experimentierplatinen (191537), die zum Erstellen von eigenen Schaltungen und Sensoren gedacht sind, und von denen eine schon im Lieferumfang enthalten ist, das Erweiterungsboard RP6 CONTROL M32 (191550) und die RP6 CCPRO M128 (191563).&lt;br /&gt;
&lt;br /&gt;
Die Boards kann man dann über den I2C Bus mit dem Mainboard kommunizieren lassen.  Es ist sehr sinnvoll, die Module symmetrisch hintereinander zu stapeln und nicht mehr als 6-8 Module zu verbauen, weil der Roboter sonst immer schwerer und langsamer wird. Basierend auf dem Master-Slave System könnte man so bis zu 127 Slaves anschließen. Zudem ist es ratsam, qualitativ hochwertige Akkus und ein Ladegerät mit passendem Stecker zu verwenden, da man ansonsten immer das Mainboard abschrauben müsste um an die Akkus heranzukommen. Für den Fall wurde extra eine Ladebuchse eingebaut.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Experimentierplatine ===&lt;br /&gt;
[[Bild:RP6_Exp.jpg|RP6 Experimentierplatine]]&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Die Experimentier-Platine ist dazu gedacht, eigene Schaltungen auf dem RP6 zu realisieren. Sie wird über den I²C-Bus mit den anderen Erweiterungsmodulen verbunden. Ausserdem ist es sinnvoll, die (freien) I/O-Ports (ADC-Kanäle) der RP6 Base, des M32 Erweiterungsmoduls bzw. des CCPRO M128 Moduls über ein [http://www.reichelt.de/?;ACTION=3;LA=444;GROUP=C63;GROUPID=3328;ARTICLE=47637;START=0;SORT=artnr;OFFSET=16;SID=1580faBqwQAQ8AAGY-ZAM7cd511ee04a106a88a359faaac0071e2 10-Pol-Flachbandkabel] mit [http://www.reichelt.de/?ACTION=3;GROUP=C151;GROUPID=3231;ARTICLE=14571;SID=1580faBqwQAQ8AAGY-ZAM7cd511ee04a106a88a359faaac0071e2 Stecker] auf die Experimentierplatine zu führen, weil es übersichtlicher bleibt und keine Kabel lose herumhängen. Auf der Experimentierplatine kann man dann LEDs oder einen Temperatursensor an die I/O-Ports bzw. an die ADC-Kanäle anschießen.&lt;br /&gt;
&lt;br /&gt;
====Technische Daten====&lt;br /&gt;
{|  {{Blauetabelle}} &lt;br /&gt;
|'''Mikrocontroller:'''&lt;br /&gt;
|Keiner&lt;br /&gt;
|-&lt;br /&gt;
|'''Speicher:'''&lt;br /&gt;
|Keiner&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Programmierung:'''&lt;br /&gt;
|Kein Programmieradapter&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Sensoren:'''&lt;br /&gt;
|Keine&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Aktoren:'''&lt;br /&gt;
|Keine&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Abmessungen:'''&lt;br /&gt;
|(L &amp;amp;times; B &amp;amp;times; H) 112 &amp;amp;times; 90 &amp;amp;times; 10 mm&lt;br /&gt;
|-&lt;br /&gt;
|'''Ausführung:'''&lt;br /&gt;
|Bausatz&lt;br /&gt;
|-&lt;br /&gt;
|'''Stromversorgung:'''&lt;br /&gt;
|6 AA NiMH Akkus (über die RP6 Base)&lt;br /&gt;
|-&lt;br /&gt;
|'''Hersteller:'''&lt;br /&gt;
|Arexx Niederlande&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Schaltungsideen ====&lt;br /&gt;
Auf der / den Experimentierplatinen könnte man z.B. folgendes realisieren:&lt;br /&gt;
&lt;br /&gt;
* eine Kameraschaltung (wie [http://www.rn-wissen.de/index.php/RP6_Kamera_-_Mitmach-Projekt hier] gezeigt)&lt;br /&gt;
* Scheinwerfer, Rücklichter, Blinker etc. (ABER immer mit Vorwiderstand!!!)&lt;br /&gt;
* ein LED-Lauflicht (über I/O-Expander, gibt´s beim [http://www.reichelt.de/?ACTION=3;ARTICLE=14527;PROVID=2402 Reichelt])&lt;br /&gt;
* mehr ADC-Kanäle (über ADC-Expander, einfach mal nach PCF8591 [http://www.google.de/search?q=PCF8591 googlen])&lt;br /&gt;
* eine Wetterstation mit Luftfeuchtemesser, Temperaturfühler und Lichtmesser ([http://www.roboternetz.de/phpBB2/viewtopic.php?t=52298 hier] gibt es eine Wetterstation uvm.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RP6 CONTROL M32 Platine ===&lt;br /&gt;
[[Bild:RP6Control_M32.jpg|RP6 CONTROL M32]]&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Auf der M32 lassen sich weitere LEDs, Sensoren oder ähnliches anschließen, außerdem steht ein weiterer ATMEGA32 zur Verfügung, welcher sich gut im Master Modus betreiben lässt. Es sind ein Mikrofonsensor, fünf Taster, vier Status-LEDs, ein Display-Port, ein Beeper, 6 freie ADC-Kanäle, 8 freie I/O-Ports, ein Programmieradapter, ein JTAG-Anschluss, eine ISP-Programmierschnittstelle sowie ein freier Steckplatz für ein EEPROM verfügbar.&lt;br /&gt;
&lt;br /&gt;
====Technische Daten====&lt;br /&gt;
{|  {{Blauetabelle}} &lt;br /&gt;
|'''Mikrocontroller:'''&lt;br /&gt;
|AVR [[ATmega32]]&lt;br /&gt;
|-&lt;br /&gt;
|'''Speicher:'''&lt;br /&gt;
|32 kB [[Flash]]-Speicher, davon 1 kB bereits vom Bootloader belegt&amp;lt;br/&amp;gt;&lt;br /&gt;
2 kB SRAM&amp;lt;br/&amp;gt; &lt;br /&gt;
1 kB [[EEPROM]]&lt;br /&gt;
|-&lt;br /&gt;
|'''Programmierung:'''&lt;br /&gt;
|Über AVR-[[Bootloader]], belegt ca. 1 kB des Flash-Speichers&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Sensoren:'''&lt;br /&gt;
|1 Mikrofonsensor&amp;lt;br/&amp;gt;&lt;br /&gt;
5 Eingabetaster&amp;lt;br/&amp;gt;&lt;br /&gt;
14 I/O Ports, davon 6 ADC-Wandler&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Aktoren:'''&lt;br /&gt;
|1 Beeper&amp;lt;br/&amp;gt;&lt;br /&gt;
4 Status-LEDs&amp;lt;br/&amp;gt;&lt;br /&gt;
1 LC-Display-Port&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Abmessungen:'''&lt;br /&gt;
|(L &amp;amp;times; B &amp;amp;times; H) 112 &amp;amp;times; 90 &amp;amp;times; 15 mm&lt;br /&gt;
|-&lt;br /&gt;
|'''Ausführung:'''&lt;br /&gt;
|Fertig aufgebautes Erweiterungsmodul&lt;br /&gt;
|-&lt;br /&gt;
|'''Stromversorgung:'''&lt;br /&gt;
|6 AA NiMH Akkus (über die RP6 Base)&lt;br /&gt;
|-&lt;br /&gt;
|'''Hersteller:'''&lt;br /&gt;
|Arexx Niederlande&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Umbau-Optionen ====&lt;br /&gt;
Dieser Absatz soll die Möglichkeiten der RP6 CONTROL M32 Platine (im Folgenden &amp;quot;M32&amp;quot; genannt) auflisten, die es gibt, um auf einfache Weise weitere Anschlüsse oder Verbindungen zu ermöglichen. Nicht beschrieben werden die Anschlußmöglichkeiten, die in Form der vorhandenen Wannenstecker sowieso gegeben sind (z.B. am LCD-, I/O- oder ADC-Stecker). Im Text gibt es Verweise auf den Schaltplan der M32 (RP6_CONTROL_M32.PDF) in der Form: (SP2 B1: Bauteil).  Dies bedeutet, dass man das Bauteil auf Blatt 2 des RP6-M32-Schaltplans im Feld B1 finden kann.&lt;br /&gt;
&lt;br /&gt;
Folgende Möglichkeiten zum Umbau/Ausbau sind vorgesehen:&lt;br /&gt;
* Zweites SPI-EEPROM (IC5)&lt;br /&gt;
* Zwei analoge Sensoren, evtl. mit getrennter Stromversorgung&lt;br /&gt;
* ISP (In System Programming)&lt;br /&gt;
* JTAG-Programmierung&lt;br /&gt;
* USRBUS&lt;br /&gt;
* IRQ-Zuweisung ändern&lt;br /&gt;
* ADC0 und ADC1 anders nutzen&lt;br /&gt;
* Schieberegister kaskadieren&lt;br /&gt;
Im folgenden Text soll beschrieben werden, wie man die weiteren Möglichkeiten nutzen kann. Es wird jeweils erwähnt, was man an Material braucht. Beispielhaft sind da Bestell-Nummern der Firma [http://www.conrad.de/ce/ CONRAD] genannt. Natürlich kann man die Teile auch bei anderen Versendern beziehen. Durch die Nennung der Bestell-Nummer ist das jeweilige Teil aber gut zu identifizieren. Man sollte Löten können und sich bewußt sein, dass ggf. ein Garantieanspruch nicht mehr besteht, wenn man an der Platine gelötet hat.&lt;br /&gt;
&lt;br /&gt;
Bei den Materialangaben ist öfter die Rede von &amp;quot;Steckbuchsen mit Litze&amp;quot;. Diese Steckbuchsen mit angelöteter Litze können auf die ein- oder zweireihigen Stiftleisten aufgesteckt werden. Leider gibt es sie nicht (mehr) fertig konfektioniert bei CONRAD. Die einreihigen Steckbuchsen (RM 2,54mm) kann man aber z.B. bei [http://www.elv.de/output/controller.aspx ELV] bekommen: 2-polig (68-016635), 3-polig (68-022503) und 5-polig (68-023073). An sie muss man dann noch Litzen in der entsprechenden Länge selbst anlöten.&lt;br /&gt;
&lt;br /&gt;
===== Zweites SPI-EEPROM =====&lt;br /&gt;
Es ist sehr einfach, ein zweites SPI-EEPROM (SP1 A1: IC5*) auf der M32 zu nutzen.&lt;br /&gt;
&lt;br /&gt;
[[Bild:RP6_M32_IC5-Socket.JPG|thumb|Sockel des 2. SPI-EEPROMs]]&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* Einen IC-Sockel 8-pol DIP für IC5 ([http://www.conrad.de/ce/de/product/189600/IC-FASSUNG-PRAeZISION-8POLIG 189600])&lt;br /&gt;
* Einen Keramik-Vielschicht-Kondensator 100nF (C19); RM 2,54mm ([http://www.conrad.de/ce/de/product/453099/?insert=36&amp;amp;insertNoDeeplink&amp;amp;productname=KONDENSATOR-01-F-KDPU-254-MM 453099])&lt;br /&gt;
* Ein serielles SPI-EEPROM im PDIP8 Gehäuse (IC5)&lt;br /&gt;
Zuerst wird der IC-Sockel eingelötet (Kerbe beachten!), dann C19 (SP1 A1: C19*). Das war's.&lt;br /&gt;
&lt;br /&gt;
Leider gibt es das EEPROM nicht bei den gängigeren Versendern. Bekommen kann man es aber z.B. bei [http://de.farnell.com/jsp/home/homepage.jsp Farnell]. Dort hat das SPI-EEPROM mit 256 kbit die Bezeichnung 25LC256-I/P (1331398). Wenn man es noch größer mag: 25LC1024 (1331392) mit 1024 kbit. SPI-EEPROMs führt inzwischen auch [http://www.reichelt.de./ Reichelt].&lt;br /&gt;
&lt;br /&gt;
'''Programmierung:'''&lt;br /&gt;
&lt;br /&gt;
In die RP6ControlLib.h bitte einfügen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SPI_EEPROM2_PAGESIZE 64&lt;br /&gt;
&lt;br /&gt;
uint8_t SPI_EEPROM2_readByte(uint16_t memAddr);&lt;br /&gt;
void SPI_EEPROM2_writeByte(uint16_t memAddr, uint8_t data);&lt;br /&gt;
void SPI_EEPROM2_enableWrite(void);&lt;br /&gt;
void SPI_EEPROM2_disableWrite(void);&lt;br /&gt;
uint8_t SPI_EEPROM2_getStatus(void);&lt;br /&gt;
&lt;br /&gt;
void SPI_EEPROM2_writeBytes(uint16_t startAddr, uint8_t *buffer, uint8_t length);&lt;br /&gt;
void SPI_EEPROM2_readBytes(uint16_t startAddr, uint8_t *buffer, uint8_t length);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Konstante SPI_EEPROM2_PAGESIZE ist abhängig von der Art und Größe des EEPROMs. Für ein 256 kbit-EEPROM ist die Seitengröße (pagesize) in der Regel 64, für einen 512 kbit-Typ 128 und für einen 1024 kbit-Typ 256.&lt;br /&gt;
&lt;br /&gt;
In die RP6ControlLib.c bitte einfügen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*****************************************************************************/&lt;br /&gt;
// Second external SPI EEPROM:&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Reads a single Byte from the 2nd external EEPROM.&lt;br /&gt;
 */&lt;br /&gt;
uint8_t SPI_EEPROM2_readByte(uint16_t memAddr)&lt;br /&gt;
{&lt;br /&gt;
	uint8_t data;&lt;br /&gt;
	PORTB &amp;amp;= ~MEM_CS2;&lt;br /&gt;
	writeSPI(SPI_EEPROM_READ);&lt;br /&gt;
	writeWordSPI(memAddr);&lt;br /&gt;
	data = readSPI();&lt;br /&gt;
	PORTB |= MEM_CS2;&lt;br /&gt;
	return data;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Reads &amp;quot;length&amp;quot; Bytes into the Buffer &amp;quot;buffer&amp;quot; from startAdr on. &lt;br /&gt;
 * You can read the complete 2nd EEPROM into a buffer at once - if it is large enough. &lt;br /&gt;
 * (But you only have 2KB SRAM on a MEGA32 ;) )&lt;br /&gt;
 */&lt;br /&gt;
void SPI_EEPROM2_readBytes(uint16_t startAddr, uint8_t *buffer, uint8_t length)&lt;br /&gt;
{&lt;br /&gt;
	PORTB &amp;amp;= ~MEM_CS2;&lt;br /&gt;
	writeSPI(SPI_EEPROM_READ);&lt;br /&gt;
	writeWordSPI(startAddr);&lt;br /&gt;
	readBufferSPI(&amp;amp;buffer[0], length);&lt;br /&gt;
	PORTB |= MEM_CS2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Enable Write Mode&lt;br /&gt;
 */&lt;br /&gt;
void SPI_EEPROM2_enableWrite(void)&lt;br /&gt;
{&lt;br /&gt;
	PORTB &amp;amp;= ~MEM_CS2;&lt;br /&gt;
	writeSPI(SPI_EEPROM_WREN);&lt;br /&gt;
	PORTB |= MEM_CS2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Disable Write Mode&lt;br /&gt;
 */&lt;br /&gt;
void SPI_EEPROM2_disableWrite(void)&lt;br /&gt;
{&lt;br /&gt;
	PORTB &amp;amp;= ~MEM_CS2;&lt;br /&gt;
	writeSPI(SPI_EEPROM_WRDI);&lt;br /&gt;
	PORTB |= MEM_CS2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Write a single data byte to the specified 2nd EEPROM address.&lt;br /&gt;
 */&lt;br /&gt;
void SPI_EEPROM2_writeByte(uint16_t memAddr, uint8_t data)&lt;br /&gt;
{&lt;br /&gt;
	while(SPI_EEPROM2_getStatus() &amp;amp; SPI_EEPROM_STAT_WIP);&lt;br /&gt;
	SPI_EEPROM2_enableWrite();&lt;br /&gt;
	PORTB &amp;amp;= ~MEM_CS2;&lt;br /&gt;
	writeSPI(SPI_EEPROM_WRITE);&lt;br /&gt;
	writeWordSPI(memAddr);&lt;br /&gt;
	writeSPI(data);&lt;br /&gt;
	PORTB |= MEM_CS2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Write &amp;quot;length&amp;quot; Bytes from the Buffer to the 2nd EEPROM. &lt;br /&gt;
 * YOU CAN ONLY WRITE MAXIMAL [SPI_EEPROM2_PAGESIZE] BYTES AT ONCE!!!&lt;br /&gt;
 * This is the Pagesize!&lt;br /&gt;
 * You can NOT cross a page boundary!&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
void SPI_EEPROM2_writeBytes(uint16_t startAddr, uint8_t *buffer, uint8_t length)&lt;br /&gt;
{&lt;br /&gt;
	while(SPI_EEPROM2_getStatus() &amp;amp; SPI_EEPROM_STAT_WIP);&lt;br /&gt;
	SPI_EEPROM2_enableWrite();&lt;br /&gt;
	PORTB &amp;amp;= ~MEM_CS2;&lt;br /&gt;
	writeSPI(SPI_EEPROM_WRITE);&lt;br /&gt;
	writeWordSPI(startAddr);&lt;br /&gt;
	writeBufferSPI(&amp;amp;buffer[0], length);&lt;br /&gt;
	PORTB |= MEM_CS2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Returns EEPROM Status register - for checking if 2nd EEPROM is buisy. &lt;br /&gt;
 * Writing takes about 5ms. &lt;br /&gt;
 */&lt;br /&gt;
uint8_t SPI_EEPROM2_getStatus(void)&lt;br /&gt;
{&lt;br /&gt;
	uint8_t status;&lt;br /&gt;
	PORTB &amp;amp;= ~MEM_CS2;&lt;br /&gt;
	writeSPI(SPI_EEPROM_RDSR);&lt;br /&gt;
	status = readSPI();&lt;br /&gt;
	PORTB |= MEM_CS2;&lt;br /&gt;
	return status;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*****************************************************************************/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hinweis zum 1024 kbit-EEPROM:&lt;br /&gt;
&lt;br /&gt;
Dieses EEPROM benötigt 24-Bit Adressen und muss daher etwas anders angesprochen werden als die &amp;quot;kleineren&amp;quot; Typen bis 512 kbit.&lt;br /&gt;
Die Funktion SPI_EEPROM2_readByte() sieht für ein 1024 kbit-EEPROM z.B. so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;uint8_t SPI_EEPROM2_readByte(uint32_t memAddr)&lt;br /&gt;
{&lt;br /&gt;
	uint8_t data;&lt;br /&gt;
	PORTB &amp;amp;= ~MEM_CS2;&lt;br /&gt;
	writeSPI(SPI_EEPROM_READ);&lt;br /&gt;
	writeSPI((uint8_t)(memAddr &amp;gt;&amp;gt; 16));&lt;br /&gt;
	writeWordSPI((uint16_t)memAddr);&lt;br /&gt;
	data = readSPI();&lt;br /&gt;
	PORTB |= MEM_CS2;&lt;br /&gt;
	return data;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
Alle weiteren Funktionen, die EEPROM-Adressen verwenden (SPI_EEPROM2_readBytes, SPI_EEPROM2_writeByte, SPI_EEPROM2_writeBytes), müssen genau so angepasst werden.&lt;br /&gt;
&lt;br /&gt;
===== Anschlüsse =====&lt;br /&gt;
Hier wird aufgelistet, wo man auf der M32 Platine Anschlüsse nutzen kann, um sie z.B. zu weiteren Sensoren, zum USRBUS oder (weniger empfehlenswert!) direkt zu EPs, zur RP6 Base oder zur CCPRO M128 zu führen. &lt;br /&gt;
&lt;br /&gt;
====== Analoge Sensoren an ADC2/3 ====== [[Bild:RP6_M32_ADC23.JPG|thumb|ADC2 ADC3]]&lt;br /&gt;
Wenn man bis zu zwei analoge Sensoren (z.B. IR-Distanz-Mess-Sensoren Sharp GP2Y0A02YK 185364) direkt an die M32 anschließen möchte, dann gibt es da zwei 3-polige Kontakte, beschriftet mit VDD/GND/ADCx (x = 2..3). Hier kann man 3-polige Stiftleisten auflöten, an die dann die Sensoren angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 1-reihige Stiftleiste RM 2,54mm (z.B. 36-polig 732478)&lt;br /&gt;
* Zwei Keramik-Vielschicht-Kondensatoren 100nF (C16, C17); RM 2,54mm (453099)&lt;br /&gt;
* Ein Elektrolyt-Kondensator stehend 470 uF / 16V (C18); RM 3,5mm (446211)&lt;br /&gt;
* Zwei 3-polige Steckbuchsen mit Litze zum Anschluß der Sensoren&lt;br /&gt;
Man trennt von der 1-reihigen Stiftleiste zweimal 3 Kontakte ab und lötet sie auf die weiß umrahmten Kontakte (VDD/GND/ADCx; SP2 C23: ADC2, YGND8, YVDD6, ADC3, YGND7, YVDD5), anschließend C16, C17 (SP2 C1: C16*, C17*) auf ihre Plätze und zum Schluß den Elko 470 uF (C18; SP2 B1: C18*). Beim Elko auf die Polung achten: Er muss genau so sitzen wie sein Nachbar C1 (Minuspol schaut zum Beeper SND).&lt;br /&gt;
&lt;br /&gt;
Die Sensoren lötet man an die Litzen der 3-poligen Steckbuchsen und steckt diese auf die neuen Kontakte.&lt;br /&gt;
&lt;br /&gt;
Da manche Sensoren einen höheren Stromverbrauch haben, kann man die Stromversorgung an den VDD-Pins der ADC2/3-Stecker abschaltbar machen oder eine separate +5V-Spannung einspeisen. Siehe dazu den Abschnitt &amp;quot;Trennstellen - Getrennte Stromversorgung für ADC2/3&amp;quot; weiter unten!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== ISP (In System Programming) ======&lt;br /&gt;
Der ATMEGA32 der M32 wird standardmäßig über den PROG/UART Stecker programmiert. Dazu befindet sich im Prozessor ein Bootloader-Programm. Wenn man stattdessen oder zusätzlich die ISP-Programmierung mit einem dafür geeigneten ISP-Programmier-Adapter nutzen will, kann man den Adapter an den gewinkelten ISP-Stecker auf der M32 anschließen.&lt;br /&gt;
Vorher sind aber ein paar &amp;quot;Umbauarbeiten&amp;quot; erforderlich.&lt;br /&gt;
&lt;br /&gt;
[[Bild:RP6_M32_ISP.JPG|thumb|ISP]]&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 1-reihige Stiftleiste RM 2,54mm (z.B. 36-polig 732478)&lt;br /&gt;
* Einen SMD-Widerstand 10 kOhm (406376)&lt;br /&gt;
* Eine SMD-Diode LL 4148 (140902)&lt;br /&gt;
* Eine Codierbrücke (z.B. aus Set 742902)&lt;br /&gt;
&lt;br /&gt;
Der SMD-Widerstand wird auf seinen Platz (R1; SP1 A3: R1*) neben dem XBUS2-Stecker gelötet, danach die Diode LL 4148 (D2; SP1 B3: D2*). Die Kathode (Strich) der Diode zeigt in Richtung des Quarzes (X1). Zwischen R1 und C1 befinden sich drei Lötpunkte (beschriftet mit ISP/DEBUG - BOOTLOAD; SP1 A34: YRST1..3), auf die eine 3-polige Stiftleiste gelötet werden muss. Vorher muss eine kurze Leiterbahn zwischen den Lötpunkten BOOTLOAD aufgetrennt werden. Die Leiterbahn befindet sich auf der Lötseite der Platine und muss mit einem scharfen Messer oder einem speziellen Leiterbahn-Unterbrecher zwischen den beiden Lötpunkten unterbrochen werden. Man sollte anschließend mit einem Widerstandsmeßgerät nachmessen: Es sollte keine Verbindung mehr zwischen den Lötpunkten bestehen.&lt;br /&gt;
Man trennt dann von der 1-reihigen Stiftleiste 3 Kontakte ab und lötet sie auf die beschriebenen drei Lötpunkte.&lt;br /&gt;
&lt;br /&gt;
Wenn man jetzt eine Codierbrücke auf die mit &amp;quot;BOOTLOAD&amp;quot; beschrifteten Pins steckt, bleibt alles unverändert: Die Programmierung erfolgt weiter über den PROG/UART-Stecker mithilfe des Bootloaders im Prozessor. Wird die Codierbrücke in Stellung &amp;quot;ISP/DEBUG&amp;quot; umgesteckt, kann der Prozessor mit ISP programmiert werden.&lt;br /&gt;
&lt;br /&gt;
Vorsicht: Das Bootloader-Programm kann dabei zerstört werden! Es müssen zusätzlich Fusebits des ATMEGA32 verändert werden. &lt;br /&gt;
&lt;br /&gt;
Dabei kann der Prozessor im schlimmsten Fall nicht mehr ansprechbar sein. Man sollte diesen Umbau und die ISP-Programmierung nur machen, wenn man genau weiß, was man macht!&lt;br /&gt;
&lt;br /&gt;
Eine Kopie des Bootloaders und eine Kurzanleitung zum Einstellen der Fusebits gibt es hier: &lt;br /&gt;
[http://www.arexx.com/rp6/downloads/RP6_M32_BOOTLOADER.zip RP6_M32_BOOTLOADER]&lt;br /&gt;
&lt;br /&gt;
====== JTAG ====== [[Bild:RP6_M32_JTAG.JPG|thumb|JTAG]]&lt;br /&gt;
Die Programmierung und ein Debuggen sind auch mit der JTAG-Schnittstelle möglich. Das ist nur zu empfehlen, wenn man Erfahrungen mitbringt, oder der Prozessor der M32 durch eine ISP-Falschprogrammierung z.B. nicht mehr ansprechbar ist.&lt;br /&gt;
Um die JTAG-Schnittstelle nutzen zu können, muss der ISP-Umbau durchgeführt worden sein und die dort beschriebene Codierbrücke auf &amp;quot;ISP/DEBUG&amp;quot; gesteckt sein. Der JTAG-Programmer kann dann an die Lötpunkte &amp;quot;JTAG&amp;quot; zwischen ISP- und I/O-Stecker angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 2-reihige Stiftleiste RM 2,54mm (z.B. 2x36-polig 742007)&lt;br /&gt;
Man trennt von der 2-reihigen Stiftleiste 2x5 Kontakte ab und lötet sie auf die 10 JTAG-Lötpunkte (SP2 A12: YTDI, YTDO, YTMS, YTCK, YTRST, YVDD3/4, YGND3/4, YNC). Hier kann jetzt der JTAG-Programmer z.B. mit einem 10-poligen Flachkabel-Stecker angeschlossen werden. Um das JTAG-Interface des ATMEGA32 nutzen zu können, müssen Änderungen an den Fusebits vorgenommen werden.&lt;br /&gt;
&lt;br /&gt;
Vorsicht: Man sollte die JTAG-Programmierung und Fusebit-Manipulationen nur machen, wenn man genau weiß, was man macht!&lt;br /&gt;
&lt;br /&gt;
====== USRBUS ======&lt;br /&gt;
Die 14 Kontakte der beiden USRBUS-Stecker sind auf der M32 nirgendwo angeschlossen, sondern können über die Lötpunkte Y1..Y14 mit beliebigen Punkten auf der M32 verbunden werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:RP6_M32_USRBUS.JPG|thumb|USRBUS]]&lt;br /&gt;
&lt;br /&gt;
Ich würde auf Y1..Y14 eine Stiftleiste löten, damit die USRBUS-Belegung geändert werden kann.&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 2-reihige Stiftleiste RM 2,54mm (z.B. 2x36-polig 742007)&lt;br /&gt;
* Einige Steckbuchsen mit Litze&lt;br /&gt;
&lt;br /&gt;
Man trennt von der 2-reihigen Stiftleiste 2x7 Kontakte ab und lötet sie auf die Punkte Y1..Y14 (SP2 E3: Y1..Y14) neben dem Wannenstecker USRBUS2. Wird die M32 über Flachkabel mit einem USRBUS-Stecker auf einer RP6 Experimentierplatine (EP) und/oder mit dem RP6 selbst verbunden, dann hat man mit allen mit dem USRBUS verbundenen Platinen eine direkte 14-polige Verbindung,- eben den &amp;quot;User Bus&amp;quot;. Den kann man dann nutzen, wie man will. Auf der M32 kann man mit Steckbuchsen die Pins Y1..Y14 mit anderen Pins verbinden.&lt;br /&gt;
&lt;br /&gt;
Beispiel: Verbindet man den Pin &amp;quot;ADC2&amp;quot; mit Y1 des USRBUS, dann steht der Eingang ADC2 auf allen an den USRBUS angeschlossenen Platinen an Y1 zur Verfügung. Man braucht also diesen Eingang nicht über ein eigenes Kabel auf eine EP zu führen, sondern kann dazu den USRBUS nehmen. Dadurch bleibt der Gesamtaufbau auf dem RP6 übersichtlich und komplett trennbar (man braucht nur die Stecker XBUS und USRBUS abzuziehen!).&lt;br /&gt;
&lt;br /&gt;
Wichtig: Man sollte gut dokumentieren, wie man den USRBUS am RP6 (vorn und hinten getrennt!), auf EPs und der M32/M128 benutzt! Sonst kann es bei einer anderen Anordnung von EPs zu USRBUS Konflikten/Kurzschlüssen kommen.&lt;br /&gt;
&lt;br /&gt;
====== Schieberegister kaskadieren ====== [[Bild:RP6_M32_SPI.JPG|thumb|SPI]]&lt;br /&gt;
Auf der M32 wird ein 8-Bit Schieberegister-Baustein (IC3: 74HC4094D) dazu gebraucht, vier Status-LEDs (LED1..LED4) und ein LCD (am Stecker LCD) anzusteuern. Durch Schieberegister kann man Port-Pins gewinnen, wenn die Pins des Prozessors nicht ausreichen.&lt;br /&gt;
&lt;br /&gt;
Solche Schieberegister kann man &amp;quot;kaskadieren&amp;quot;, d.h. weitere identische Bausteine einbauen, die weitere Port-Pins zur Verfügung stellen. Wenn man zusätzliche 74HC4094 einsetzen will, wird man das am besten auf einer EP aufbauen. Die Anschlüsse für diese Schieberegister werden auf der M32 an einer 6-poligen Reihe von Lötpunkten (beschriftet mit MISO, STR, MOSI, SCK, QS, QS*; SP1 D3: YQS1/2, YMOSI, YSCK, YSTR, YMISO) links von IC3 zur Verfügung gestellt.&lt;br /&gt;
&lt;br /&gt;
Wenn man diese 6 Signalleitungen auf eine EP führen will, gibt es dafür zwei Möglichkeiten:&lt;br /&gt;
* a) Direkte 6-polige Kabelverbindung von den oben beschriebenen Lötpunkten zur EP&lt;br /&gt;
* b) Nutzung des USRBUS, um die 6 Signale zur EP zu führen&lt;br /&gt;
Wenn man im Abschnitt &amp;quot;USRBUS&amp;quot; den entsprechenden Umbau gemacht hat, würde ich b) empfehlen! Man könnte dafür eine 6-polige Stiftleiste auf die o.g. Lötpunkte auflöten und 1:1 z.B. mit den Pins Y4, Y6, Y8, Y10, Y12, Y14 des USRBUS verbinden. Dann kann man auf der EP weitere Schieberegister- und SPI-Bausteine (z.B. SPI-EEPROMs, RFM12 Transceiver o.ä.) aufbauen.&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 1-reihige Stiftleiste RM 2,54mm (z.B. 36-polig 732478)&lt;br /&gt;
* Steckbuchsen mit Litze&lt;br /&gt;
Man trennt von der 1-reihigen Stiftleiste 6 Kontakte ab und lötet sie auf die beschriebenen sechs Lötpunkte auf der M32. Mit den Steckbuchsen mit Litze wird dann die Verbindung entweder direkt zur EP (Option a) oder über den USRBUS zur EP (Option b) hergestellt.&lt;br /&gt;
&lt;br /&gt;
====== VDD/GND/+UB Anschluß ====== [[Bild:RP6_M32_VDDGNDUB.JPG|thumb|RP6 M32 VDD GND +UB]]&lt;br /&gt;
VDD, GND und +UB (SP2 C3: YUB1, YGND1/2/5, YVDD1/2) kann man auf der M32 an diesen Lötpunkten abnehmen.&lt;br /&gt;
&lt;br /&gt;
Natürlich kann man hier auch Stiftleisten auflöten.&lt;br /&gt;
&lt;br /&gt;
Auf der anderen Platinenseite (zwischen dem USRBUS1 und ISP Stecker) befinden sich zusätzlich noch 2 weitere Lötpunkte, an denen man VDD und GND kontaktieren kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Serielle Schnittstelle ====== [[Bild:RP6_M32_RST.JPG|thumb|RP6 M32 RST]]&lt;br /&gt;
Neben dem PROG/UART Stecker befinden sich 5 Lötpunkte mit den Signalen RST, TX, RX, GND, VDD (SP2 BC3: YRX, YTX, YRST, YVDD, YGND). Hier kann z.B. eine 5-polige Stiftleiste aufgelötet werden, um einen Anschluß an die serielle Schnittstelle zu ermöglichen.&lt;br /&gt;
 &lt;br /&gt;
Von diesen 5 Lötpunkten könnte z.B. auch eine Verbindung zum USRBUS hergestellt werden, um die serielle Schnittstelle der M32 auf EPs zu führen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== MEM_CS2 ====== [[Bild:RP6_M32_MEM_CS2.JPG|thumb|RP6 M32 MEM_CS2]]&lt;br /&gt;
MEM_CS2 (M32 Microcontroller Pin PB1) kann man am IC5-Sockel an Pin 1 (SP1 A1: IC5*, Pin 1) kontaktieren. Falls IC5 nicht eingesetzt werden soll, kann man hier durch Einstecken eines Kabels in Pin 1 des IC5-Sockels PB1 nutzen und z.B. zum USRBUS führen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Mess-/Kontaktpunkte =====&lt;br /&gt;
Hier geht es um Kontaktpunkte, an denen man z.B. den Logik-Pegel (High/Low) oder eine analoge Spannung messen kann. Natürlich kann man die Signale auch zur Weiterleitung auf eine EP kontaktieren, dies wird man aber normalerweise nicht brauchen.&lt;br /&gt;
&lt;br /&gt;
====== M-Signal ====== [[Bild:RP6_M32_M_SIGNAL.JPG|thumb|RP6 M32 M-Signal]]&lt;br /&gt;
An diesem Messpunkt (SP1 E3: YM_SIGNAL) neben D1 kann man die Ausgangsspannung des Mikrofon-Verstärkers IC4 (SP1 E3: IC4) messen oder z.B. mit einem Oszilloskop darstellen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Trennstellen =====&lt;br /&gt;
An diesen Stellen können Leiterbahnen unterbrochen werden, um Funktionen zu deaktivieren oder anders zu nutzen. &lt;br /&gt;
&lt;br /&gt;
====== Getrennte Stromversorgung für ADC2/3 ======&lt;br /&gt;
Wenn man für die analogen Sensoren an ADC2/3 (siehe Abschnitt &amp;quot;Anschlüsse - Analoge Sensoren an ADC2/3&amp;quot; weiter oben!) eine GETRENNTE Stromversorgung vorsehen will und/oder mit Codierbrücke (oder MOSFET) die Stromversorgung abschaltbar machen möchte, muss man erst Vorarbeit leisten.&lt;br /&gt;
[[Bild:RP6_M32_SV.jpg|thumb|RP6 M32 SV]]&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 1-reihige Stiftleiste RM 2,54mm (z.B. 36-polig 732478)&lt;br /&gt;
* Evtl.: Eine Codierbrücke (z.B. aus Set 742902)&lt;br /&gt;
* Evtl.: Eine 1-polige Steckbuchse mit Litze zur ext. Stromversorgung&lt;br /&gt;
Es muss eine kurze Leiterbahn zwischen den Punkten &amp;quot;SV1&amp;quot; und &amp;quot;SV2&amp;quot; (SP2 B2: SV1, SV2) aufgetrennt werden. Die Leiterbahn befindet sich auf der Lötseite der Platine und muss mit einem scharfen Messer oder einem speziellen Leiterbahn-Unterbrecher zwischen den beiden Lötpunkten unterbrochen werden. Man sollte anschließend mit einem Widerstandsmeßgerät zwischen SV1 und SV2 nachmessen: Es sollte keine Verbindung mehr bestehen. Jetzt trennt man von der 1-reihigen Stiftleiste 2 Kontakte ab und lötet sie auf die Punkte SV1/SV2.&lt;br /&gt;
&lt;br /&gt;
Man kann hier zunächst eine Codierbrücke aufstecken. Damit versorgt der RP6 Akku die Sensoren mit 5V an den Pins VDD. Möchte man später eine getrennte 5V-Spannung anlegen, zieht man einfach die Codierbrücke ab und speist die externe 5V-Spannung (mit einer 1-poligen Steckbuchse) am Pin SV2 ein. Achtung: An Pin SV1 wird dann nichts angeschlossen!&lt;br /&gt;
&lt;br /&gt;
Anstelle der Codierbrücke kann man natürlich auch einen MOSFET anschließen, um die Sensoren per Software abschalten zu können.&lt;br /&gt;
&lt;br /&gt;
====== Interrupt-Zuordnung ändern ======&lt;br /&gt;
Am XBUS stehen vier Interrupt-Pins (genannt INT1..INT3, INTU) zur Verfügung. INT1 ist auf der RP6 Base mit PA4 verbunden, auf der M32 mit PD2 (Prozessor INT0), auf der M128 mit PE5 (Prozessor INT5). Diese Tabelle zeigt die Verbindung aller Interruptleitungen auf den drei Platinen (RP6 Base, M32, M128) über den XBUS:&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |XBUS Pin&lt;br /&gt;
 |XBUS INTx&lt;br /&gt;
 |RP6 Base Pin&lt;br /&gt;
 |RP6 Base INTx&lt;br /&gt;
 |RP6 M32 Pin&lt;br /&gt;
 |RP6 M32 INTx&lt;br /&gt;
 |RP6 M128 Pin&lt;br /&gt;
 |RP6 M128 INTx&lt;br /&gt;
 |-&lt;br /&gt;
 |8&lt;br /&gt;
 |INT1&lt;br /&gt;
 |PA4&lt;br /&gt;
 |kein&lt;br /&gt;
 |PD2&lt;br /&gt;
 |INT0&lt;br /&gt;
 |PE5&lt;br /&gt;
 |INT5&lt;br /&gt;
 |-&lt;br /&gt;
 |11&lt;br /&gt;
 |INT2&lt;br /&gt;
 |n.c.&lt;br /&gt;
 |&lt;br /&gt;
 |PD3&lt;br /&gt;
 |INT1&lt;br /&gt;
 |n.c.&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |9&lt;br /&gt;
 |INT3&lt;br /&gt;
 |n.c.&lt;br /&gt;
 |&lt;br /&gt;
 |PB2&lt;br /&gt;
 |INT2&lt;br /&gt;
 |PE6&lt;br /&gt;
 |INT6&lt;br /&gt;
 |-&lt;br /&gt;
 |7&lt;br /&gt;
 |INTU&lt;br /&gt;
 |n.c.&lt;br /&gt;
 |&lt;br /&gt;
 |n.c.&lt;br /&gt;
 |&lt;br /&gt;
 |n.c.&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
Auf der M32 kann man die Interrupt-Zuordnung durch drei Codierbrücken (beschriftet mit I2-INTU, INT3-I3, I2-INT2; SP2 A3: YINT2/3/U, YI2_1/2, YI3) ändern.&lt;br /&gt;
&lt;br /&gt;
[[Bild:RP6_M32_INTx.JPG|thumb|INTx]]&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 2-reihige Stiftleiste RM 2,54mm (z.B. 2x36-polig 742007)&lt;br /&gt;
* Drei Codierbrücken (z.B. aus Set 742902)&lt;br /&gt;
Vor dem Auflöten der Stiftleiste müssen zwei kurze Leiterbahnen zwischen zwei Lötpunkten aufgetrennt werden, und zwar zwischen den Lötpunkten INT3-I3 und I2-INT2. Die Leiterbahnen müssen mit einem scharfen Messer oder einem speziellen Leiterbahn-Unterbrecher zwischen den beiden Lötpunkten unterbrochen werden. Man sollte anschließend mit einem Widerstandsmeßgerät nachmessen: Es sollte keine Verbindung mehr zwischen INT3-I3 und I2-INT2 bestehen. Man trennt dann von der 2-reihigen Stiftleiste 2x3 Kontakte ab und lötet sie auf das weiß umrahmte Feld mit der o.g. Beschriftung.&lt;br /&gt;
&lt;br /&gt;
Hier kann man auf INT3-I3 und I2-INT2 je eine Codierbrücke aufstecken, wenn man die Standard-Belegung beibehalten will. Steckt man auf I2-INTU eine Codierbrücke, dann ist INTU des XBUS mit Pin PD3 (I2) der M32 verbunden. Wenn man keine der Codierbrücken aufsteckt, sind die Pins PD3 (I2) und PB2 (I3) des M32-Prozessors nicht mehr mit dem XBUS verbunden und können anders verwendet werden. Auf der M32 kann man dann z.B. auch andere Verbindungen zum XBUS herstellen, indem man auf die Pins INT2, INT3 oder INTU Kabelverbindungen aufsteckt.&lt;br /&gt;
&lt;br /&gt;
====== ADC0 und ADC1 frei nutzen ======&lt;br /&gt;
Auf der M32 ist ADC0 fest mit dem Mikrofon (MIC) und ADC1 mit den Tastern T1..T5 (KEYPAD) verbunden. Wenn man diese ADC-Eingänge für andere Sensoren benötigt, kann man das Mikrofon und die Taster von den Eingängen abtrennen.&lt;br /&gt;
&lt;br /&gt;
[[Bild:RP6_M32_MIC_KEY.JPG|thumb|MIC_KEYPAD]]&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 1-reihige Stiftleiste RM 2,54mm (z.B. 36-polig 732478)&lt;br /&gt;
* Eine Codierbrücke (z.B. aus Set 742902)&lt;br /&gt;
&lt;br /&gt;
MIC/ADC0:&lt;br /&gt;
Es muss eine kurze Leiterbahn zwischen zwei Lötpunkten aufgetrennt werden, die sich zwischen R2 und C19 befinden (SP1 D4: YM1, YM2). Die Leiterbahn muss mit einem scharfen Messer oder einem speziellen Leiterbahn-Unterbrecher zwischen den beiden Lötpunkten unterbrochen werden. Man sollte anschließend mit einem Widerstandsmeßgerät nachmessen: Es sollte keine Verbindung mehr bestehen. Vorsicht: Nicht R2 beschädigen! Damit ist das Mikrofon auf der M32 ohne Funktion und ADC0 kann anders genutzt werden. ADC0 ist dann am oberen Lötpunkt zwischen R2 und C19 verfügbar, dort müßte eine Kabelverbindung angelötet werden.&lt;br /&gt;
Soll das Mikrofon später doch wieder an ADC0 angeschlossen werden, verbindet man die beiden Lötpunkte zwischen R2 und C19 einfach mit etwas Lötzinn oder mit einem SMD Null Ohm Widerstand.&lt;br /&gt;
&lt;br /&gt;
KEYPAD/ADC1:&lt;br /&gt;
Es muss eine kurze Leiterbahn zwischen zwei Lötpunkten aufgetrennt werden, die sich unterhalb von R15 befinden (SP1 D2: YKP1, YKP2). Die Leiterbahn befindet sich auf der Lötseite der Platine und muss mit einem scharfen Messer oder einem speziellen Leiterbahn-Unterbrecher zwischen den beiden Lötpunkten unterbrochen werden. Man sollte anschließend mit einem Widerstandsmeßgerät nachmessen: Es sollte keine Verbindung mehr bestehen. Jetzt trennt man von der 1-reihigen Stiftleiste 2 Kontakte ab und lötet sie auf die beiden Punkte unterhalb von R15. Hier kann man jetzt eine Codierbrücke aufstecken, wenn man die Taster weiter benutzen will. Wenn die Brücke abgezogen ist, sind die Taster ohne Funktion und ADC1 kann anders genutzt werden. ADC1 ist dann am linken Pin der 2-poligen Stiftleiste unterhalb von R15 verfügbar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RP6 CCPRO M128 Platine===&lt;br /&gt;
&lt;br /&gt;
[[Bild:CCPRO M128 k-1-.jpg|Das CCPRO M128]]&lt;br /&gt;
&lt;br /&gt;
====Technische Daten====&lt;br /&gt;
{|  {{Blauetabelle}} &lt;br /&gt;
|'''Mikrocontroller:'''&lt;br /&gt;
|Steckplatz für ein C-Control PRO MEGA128 Modul mit einem ATMEGA128&lt;br /&gt;
|-&lt;br /&gt;
|'''Speicher:'''&lt;br /&gt;
|128 kB [[Flash]]-Speicher, davon 4 kB bereits vom Bootloader belegt&amp;lt;br/&amp;gt;&lt;br /&gt;
4 kB SRAM intern&amp;lt;br/&amp;gt; &lt;br /&gt;
64 kB SRAM extern&amp;lt;br/&amp;gt;&lt;br /&gt;
4 kB [[EEPROM]]&lt;br /&gt;
|-&lt;br /&gt;
|'''Programmierung:'''&lt;br /&gt;
|Über CCPRO-IDE&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Sensoren:'''&lt;br /&gt;
|1 12bit I²C Temperatursensor &amp;lt;br/&amp;gt;&lt;br /&gt;
19 I/O-Ports, davon 8 ADCs, 3 PWM (Servos) und 2 I/Os für eine weitere serielle Schnittstelle (UART)&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Aktoren:'''&lt;br /&gt;
|1 Beeper&amp;lt;br/&amp;gt;&lt;br /&gt;
5 Status-LEDs&amp;lt;br/&amp;gt;&lt;br /&gt;
1 LC-Display-Port&amp;lt;br/&amp;gt;&lt;br /&gt;
1 Sockel für ein I²C-Bus EEPROM vom Typ 24(L)Cxxx&lt;br /&gt;
|-&lt;br /&gt;
|'''Abmessungen:'''&lt;br /&gt;
|(L &amp;amp;times; B &amp;amp;times; H) 112 &amp;amp;times; 90 &amp;amp;times; 21 mm&lt;br /&gt;
|-&lt;br /&gt;
|'''Ausführung:'''&lt;br /&gt;
|Fertig aufgebautes Erweiterungsmodul&lt;br /&gt;
|-&lt;br /&gt;
|'''Stromversorgung:'''&lt;br /&gt;
|6 AA NiMH Akkus (über die RP6 Base)&lt;br /&gt;
|-&lt;br /&gt;
|'''Hersteller:'''&lt;br /&gt;
|Arexx Niederlande&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Umbauoptionen====&lt;br /&gt;
Auf der CCPRO M128 kann leider nicht so viel umgebaut werden:&lt;br /&gt;
&lt;br /&gt;
* I2C-EEPROM&lt;br /&gt;
* Freie Nutzung von PORTA* und PORTC*&lt;br /&gt;
* USRBUS&lt;br /&gt;
* A16-/PD4-Nutzung&lt;br /&gt;
&lt;br /&gt;
Im Text gibt es Verweise auf den Schaltplan der CCPRO M128 (RP6_CCPRO_M128_Schematic.PDF) in der Form: (SP2 B1: Bauteil).  Dies bedeutet, dass man das Bauteil auf Blatt 2 des M128-Schaltplans im Feld B1 finden kann.&lt;br /&gt;
&lt;br /&gt;
Bei den Materialangaben ist öfter die Rede von &amp;quot;Steckbuchsen mit Litze&amp;quot;. Diese Steckbuchsen mit angelöteter Litze können auf die ein- oder zweireihigen Stiftleisten aufgesteckt werden. Leider gibt es sie nicht (mehr) fertig konfektioniert bei CONRAD. Die einreihigen Steckbuchsen (RM 2,54mm) kann man aber z.B. bei [http://www.elv.de/output/controller.aspx ELV] bekommen: 2-polig (68-016635), 3-polig (68-022503) und 5-polig (68-023073). An sie muss man dann noch Litzen in der entsprechenden Länge selbst anlöten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====I2C-EEPROM=====&lt;br /&gt;
Zum Einsetzen eines I2C-EEPROMS (IC6; SP2 C1: IC6) braucht man nichts umzubauen. Man kauft einfach ein passendes EEPROM des Typs 24(L)Cxxxx-P und setzt es auf seinen Sockel, Kerbe zum oberen Platinenrand.&lt;br /&gt;
&lt;br /&gt;
Mögliche Typen (erhältlich z.B. bei [http://www.digikey.de/ Digi-Key] oder bei [http://www.reichelt.de./ Reichelt]):&lt;br /&gt;
* AT24C128  (AT24C128-10PU-2.7-ND)&lt;br /&gt;
* AT24C256  (AT24C256-10PU-2.7-ND)&lt;br /&gt;
* AT24C512  (AT24C512-10PU-2.7-ND)&lt;br /&gt;
* AT24C1024 (AT24C1024-10PI-2.7-ND)&lt;br /&gt;
&lt;br /&gt;
=====Anschlüsse=====&lt;br /&gt;
Hier wird aufgelistet, wo man auf der M128 Platine Anschlüsse nutzen kann, um sie z.B. zu weiteren Sensoren, zum USRBUS oder (weniger empfehlenswert!) direkt zu EPs, zur RP6 Base oder zur M32 zu führen. &lt;br /&gt;
&lt;br /&gt;
======Freie Nutzung von PORTA* und PORTC*======&lt;br /&gt;
Um PORTA* und PORTC* frei nutzen zu können (für weitere I/O-Ports), muss man auf das externe SRAM verzichten, was nicht sehr ratsam ist. Mehr I/O-Ports kann man alternativ durch I/O Expander gewinnen. Falls man das SRAM trotzdem deaktivieren will, hier die Anleitung.&lt;br /&gt;
&lt;br /&gt;
Für den Umbau braucht man:&lt;br /&gt;
* Wannenstecker 2x5-polig gerade RM 2,54mm (z.B. [http://www.reichelt.de./ Reichelt] WSL 10G)&lt;br /&gt;
* 1-reihige Stiftleiste RM 2,54mm (z.B. 36-polig 732478)&lt;br /&gt;
* Eine Codierbrücke (z.B. aus Set 742902)&lt;br /&gt;
[[Bild:RP6_M128_PortA.JPG|thumb|PORTA*]]&lt;br /&gt;
&lt;br /&gt;
Für die Bestückung von PORTA* (SP2 AB2: Stecker PORTA*) lötet man den Wannenstecker hier (siehe Abb. PORTA*) auf.&lt;br /&gt;
[[Bild:RP6_M128_PortC.JPG|thumb|PORTC*]]&lt;br /&gt;
&lt;br /&gt;
Für die Bestückung von PORTC* (SP1 A2: PC0..7, YGND1) trennt man von der 1-reihigen Stiftleiste 9 Kontakte ab und lötet sie auf die PORTC*-Lötpunkte (siehe Abb. PORTC*).&lt;br /&gt;
&lt;br /&gt;
Dann muss noch der SRAM-Enable Jumper (SP1 EF1: Y27..29) bestückt werden:&lt;br /&gt;
&lt;br /&gt;
[[Bild:RP6_M128_EN_SRAM.JPG|EN_SRAM]]&lt;br /&gt;
&lt;br /&gt;
Man trennt von der 1-reihigen Stiftleiste 3 Kontakte ab und lötet sie auf die abgebildeten Lötpunkte. Vorher muss eine Leiterbahn auf der Lötseite der Platine zwischen den ENABLE-Lötpunkten aufgetrennt werden.&lt;br /&gt;
Wenn das SRAM wie bisher genutzt werden soll, steckt man die Codierbrücke auf die Stellung &amp;quot;ENABLE&amp;quot;. Will man stattdessen Port A und Port C frei nutzen (und damit auf SRAM verzichten!), kommt die Codierbrücke auf &amp;quot;DISABLE&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
======USRBUS======&lt;br /&gt;
Auf die 14 Kontakte neben dem Wannenstecker USRBUS2 ist noch nichts gelötet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:RP6_M128_USRBUS.JPG|thumb|USRBUS]]&lt;br /&gt;
&lt;br /&gt;
Ich würde auf Y1..Y14 eine Stiftleiste löten, damit die USRBUS-Belegung geändert werden kann.&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 2-reihige Stiftleiste RM 2,54mm (z.B. 2x36-polig 742007)&lt;br /&gt;
* Einige Steckbuchsen mit Litze&lt;br /&gt;
&lt;br /&gt;
Man trennt von der 2-reihigen Stiftleiste 2x7 Kontakte ab und lötet sie auf die Punkte Y1..Y14 (SP2 E234: Y1..Y14) neben dem Wannenstecker USRBUS2. Wird die M128 über Flachkabel mit einem USRBUS-Stecker auf einer RP6 Experimentierplatine (EP) und/oder mit dem RP6 selbst verbunden, dann hat man mit allen mit dem USRBUS verbundenen Platinen eine direkte 14-polige Verbindung,- eben den &amp;quot;User Bus&amp;quot;. Den kann man dann nutzen, wie man will. Auf der M128 kann man mit Steckbuchsen die Pins Y1..Y14 mit anderen Pins verbinden.&lt;br /&gt;
&lt;br /&gt;
Beispiel: Verbindet man den Pin &amp;quot;ADC4&amp;quot; mit Y1 des USRBUS, dann steht der Eingang ADC4 auf allen an den USRBUS angeschlossenen Platinen an Y1 zur Verfügung. Man braucht also diesen Eingang nicht über ein eigenes Kabel auf eine EP zu führen, sondern kann dazu den USRBUS nehmen. Dadurch bleibt der Gesamtaufbau auf dem RP6 übersichtlich und komplett trennbar (man braucht nur die Stecker XBUS und USRBUS abzuziehen!).&lt;br /&gt;
&lt;br /&gt;
Wichtig: Man sollte gut dokumentieren, wie man den USRBUS am RP6 (vorn und hinten getrennt!), auf EPs und der M128 benutzt! Sonst kann es bei einer anderen Anordnung von EPs zu USRBUS Konflikten/Kurzschlüssen kommen.&lt;br /&gt;
&lt;br /&gt;
======IC5 ALERT====== [[Bild:RP6_M128_IC5_ALERT.JPG|thumb|IC5 ALERT]]&lt;br /&gt;
Dieser Lötpunkt (SP2 C2: AL) neben IC5 ist der Anschluß ALERT (Pin 3) des I2C-Temperatursensors TCN75A (SP2 C2: IC5).&lt;br /&gt;
&lt;br /&gt;
Dies ist ein Open-Drain Ausgang, der ein Alarm-Signal ausgibt, wenn die Temperatur die eingestellten Grenzen über-/unterschreitet (siehe auch Datenblatt des Sensors (TCN75A.pdf), Abschnitt 5.3.4!). Wenn man ALERT auf einen Eingang des Microcontrollers führen will, muß man auch noch einen Pullup-Widerstand vorsehen oder den internen Pullup des uC-Eingangs aktivieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======VDD/GND Anschluß====== [[Bild:RP6_M128_VDDGND.JPG|thumb|VDD GND]]&lt;br /&gt;
Auf der CCPRO M128 gibt es 2 Lötpunkte (SP1 E34: YVDD3, YGND4) zwischen R5 und C7 bzw. direkt neben der Codierbrücke (SP1 E3: YL9, YL10) zum Deaktivieren von LED5.&lt;br /&gt;
&lt;br /&gt;
Hier könnte man VDD und GND kontaktieren. VDD ist der Lötpunkt, der näher an R5 liegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Trennstellen=====&lt;br /&gt;
An diesen Stellen können Leiterbahnen unterbrochen werden, um Funktionen zu deaktivieren oder anders zu nutzen. &lt;br /&gt;
&lt;br /&gt;
======A16-/PD4-Nutzung====== [[Bild:RP6_M128_A16.JPG|thumb|A16/PD4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf der CCPRO M128 gibt es ein 3-poliges Feld von Lötpunkten (SP2 AB1: PD4, A16, GND) unter dem CCPRO MEGA128 Modul (IC1). Standardmässig ist A16 des SRAM (IC3) hier auf GND gelegt. Damit kann man PD4 des Prozessors (ICP1) frei nutzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Will man A16 des SRAM mit PD4 schaltbar machen, muss man eine Leiterbahn auf der Bestückungsseite zwischen den oberen zwei der drei Lötpunkte auftrennen und die anderen (unteren) beiden Lötpunkte mit etwas Lötzinn oder einem SMD Null Ohm Widerstand verbinden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Sinn dieses Umbaus besteht darin, dass man danach anstelle von 64kB nun die vollen 128kB SRAM des IC3 adressieren kann. Man muss dann aber PD4 selbst schalten, da C-Control PRO ab Version 1.50 nur 64kB ext. SRAM ansteuern kann. Immerhin könnte man dann 2 Blöcke à je 64kB nutzen und mit PD4 zwischen beiden Blöcken umschalten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ob CCPRO damit klar kommt: Wohl kaum! Ich würde daher diesen Umbau nicht durchführen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zubehör und Ersatzteile ==&lt;br /&gt;
Von [http://www.conrad.de/ce/ CONRAD] gibt es z.B. &lt;br /&gt;
&lt;br /&gt;
* das LC-Display [http://www.conrad.de/ce/de/product/190911/LC-DISPLAY-16-X-2-KONFEKTIONIERT 190911], welches an die M32 und an die CCPRO M128 angeschlossen werden kann.&lt;br /&gt;
* einen IR-Ball [http://www.conrad.de/ce/de/product/191437/INFRAROT-BALL-FUeR-ROBOTER-FUssBALL 191437]&lt;br /&gt;
* einen Graustufen-Boden-Sensor [http://www.conrad.de/ce/de/product/191599/GRAUSTUFEN-BODEN-SENSOR-FUeR-FUssBALLROBOT 191599]&lt;br /&gt;
* eine IR-Fernbedienung [http://www.conrad.de/ce/de/product/340720/PROMO-8-UNIVERSALFERNBEDIENUNG 340720]&lt;br /&gt;
* Ersatzräder [http://www.conrad.de/ce/de/product/191307/ANTRIEBSRAD-RP5RP6 191307]&lt;br /&gt;
* Ersatzzahnräder [http://www.conrad.de/ce/de/product/191346/SCHRAeG-ZAHNRAeDERSATZ-RP5RP6 191346]&lt;br /&gt;
* Ersatzraupen [http://www.conrad.de/ce/de/product/191333/RAUPENSATZ-RP5RP6 191333]&lt;br /&gt;
&lt;br /&gt;
===Displays===&lt;br /&gt;
Die vorkonfektionierten Displays kann man zum Ausgeben von Texten, Sensordaten und kleinen Animationen benutzen. Sie können an die M32 und die CCPRO M128 angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Diese 16x2 Zeichen Displays sind bisher lieferbar:&lt;br /&gt;
&lt;br /&gt;
* LC-Display ([http://www.conrad.de/ce/de/product/190911/LC-DISPLAY-16-X-2-KONFEKTIONIERT 190911])&lt;br /&gt;
* OLED-Display (197622)&lt;br /&gt;
* Backlight-Display ([http://www.conrad.de/ce/de/product/191621/DISPLAY-RP5RP6-BLAU-MIT-BACKLIGHT 191621])&lt;br /&gt;
&lt;br /&gt;
Das LCD ist weiterhin lieferbar, zeitweise (2007/08) gab es unter dieser Bestellnummer eine Version, die zu klein (66 x 37mm) war, um sie auf der M32 oder der CCPRO M128 zu montieren.&lt;br /&gt;
&lt;br /&gt;
Das OLED-Display ist aktuell (April 2012) nicht mehr lieferbar.&lt;br /&gt;
&lt;br /&gt;
Neu im Angebot ist das Backlight-Display.&lt;br /&gt;
&lt;br /&gt;
Diese Displays können mit 4 M3-Abstandbolzen 25 mm (Bestell-Nr. 526665) und 4 Muttern M3 (z.B. aus 815624), sowie 4 Schrauben M3 (z.B. aus 815322) auf der M32 oder CCPRO M128 befestigt werden. Leider sind die Befestigungslöcher der Displays zu klein für ein M3-Gewinde, so dass man die Löcher sehr vorsichtig auf 3..3,2 mm erweitern muss.&lt;br /&gt;
&lt;br /&gt;
===IR-Ball===&lt;br /&gt;
Den IR-Ball kann man benutzen um mit dem RP6 Fußball oder ähnliches zu spielen.&lt;br /&gt;
&lt;br /&gt;
===Graustufen-Boden-Sensor===&lt;br /&gt;
&lt;br /&gt;
===IR-Fernbedienung===&lt;br /&gt;
[[Bild:RP6_RC.jpg|thumb|2 RC5 Fernbedinungen]]&lt;br /&gt;
Mit der IR-Fernbedienung kann der RP6 wie ein ferngesteuertes Auto verwendet werden. Im Beispielprogramm &amp;quot;Example_08_TV_REMOTE&amp;quot; im Ordner mit den RP6-Base-Demos wird das noch genauer erläutert.&lt;br /&gt;
&lt;br /&gt;
===Ersatzräder===&lt;br /&gt;
Die Ersatzräder sind bei Conrad unter der Bestellnummer '''191307 - 62''' erhältlich&lt;br /&gt;
&lt;br /&gt;
===Ersatzzahnräder===&lt;br /&gt;
Die Ersatzzahnräder sind bei Conrad unter der Bestellnummer '''191346 - 62''' erhältlich&lt;br /&gt;
&lt;br /&gt;
===Ersatzraupen===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Programmierung==&lt;br /&gt;
Um diesen Grundlagenartikel zum RP6 nicht immer länger werden zu lassen, habe ich den Teil zur Programmierung des RP6 und seiner Erweiterungsplatinen RP6 CONTROL M32 und RP6 CCPRO M128 ausgelagert: [[RP6 - Programmierung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==RP6v2==&lt;br /&gt;
Der neue RP6v2 ist weitgehend identisch mit dem RP6, so dass fast alle Angaben dieses Artikels auch für den RP6v2 zutreffen.&lt;br /&gt;
Für vom RP6 abweichende Details des [http://www.conrad.de/ce/de/product/191584/RP6-V2-ROBOTERSYSTEM RP6v2] und für dessen zukünftige Erweiterungsplatinen (z.B. die aktuell [http://www.arexx.com/forum/viewtopic.php?f=19&amp;amp;t=1797 hier] angekündigte RP6v2 M256 WiFi) gibt es einen eigenen Grundlagenartikel: [[RP6v2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erfahrungsberichte==&lt;br /&gt;
&lt;br /&gt;
...in Arbeit...(kann aber gerne ergänzt werden)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[RP6 - Programmierung]]&lt;br /&gt;
* [[RP6v2]]&lt;br /&gt;
* [[RP6_Kamera_-_Mitmach-Projekt]]&lt;br /&gt;
* [[RP6v2_I2C-Portexpander]]&lt;br /&gt;
* [[CCRP5]]&lt;br /&gt;
* [[Yeti]]&lt;br /&gt;
* [[Asuro]]&lt;br /&gt;
* [[C't-Bot]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
&lt;br /&gt;
* [http://www.pcwelt.de/start/gaming_fun/gadgets/news/84558/ PC-Welt-Artikel]&lt;br /&gt;
&lt;br /&gt;
* Ankündigung des RP6 und der RP6 CONTROL M32 im [http://www.arexx.com/forum/viewtopic.php?t=370 AREXX Support Forum]&lt;br /&gt;
* Ankündigung der RP6 CCPRO M128 im [http://www.arexx.com/forum/viewtopic.php?f=19&amp;amp;t=834&amp;amp;start=0 AREXX Support Forum] und im [http://www.roboternetz.de/community/threads/42228-RP6-C-Control-PRO-MEGA128-Erweiterungsmodul-Website-online RoboterNETZ]&lt;br /&gt;
* Ankündigung des RP6v2 im [http://www.roboternetz.de/community/threads/56964-NEWS-RP6v2-die-neue-Version-2-des-RP6-Robot-Systems RoboterNETZ] und im [http://www.arexx.com/forum/viewtopic.php?f=19&amp;amp;t=1778 AREXX Support Forum]&lt;br /&gt;
* Ankündigung der RP6v2 M256 WiFi im [http://www.arexx.com/forum/viewtopic.php?f=19&amp;amp;t=1797 AREXX Support Forum]&lt;br /&gt;
* [http://www.arexx.com/rp6 AREXX RP6 Startseite]&lt;br /&gt;
* [http://www.arexx.com/forum/viewforum.php?f=19 AREXX Support Forum]&lt;br /&gt;
* [http://www.arexx.com/rp6/html/de/soft_doc_ccpro.htm AREXX CCPRO M128 Seite]&lt;br /&gt;
&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191524/RP6-ROBOTERSYSTEM RP6 bei CONRAD]&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191584/RP6-V2-ROBOTERSYSTEM RP6v2 bei CONRAD]&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191550/RP6-MEGA32-ERWEITERUNGSSATZ RP6 CONTROL M32 bei CONRAD]&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191563/RP6-CC-PRO-MEGA128-ERWEITERUNGSSATZ RP6 CCPRO M128 bei CONRAD]&lt;br /&gt;
* [http://www.c-control.de/c-control-pro/c-control-pro/startseite_c-control-pro.html C-Control PRO Startseite]&lt;br /&gt;
* [http://ccpro.cc2net.de/forum/ C-Control PRO Forum]&lt;br /&gt;
&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/viewforum.php?f=49 Roboternetz RP6 Forum]&lt;br /&gt;
* &amp;quot;Geburt&amp;quot; des Wiki im RN-Forum: [http://www.roboternetz.de/community/threads/32793-RP6-Wiki-Artikel RP6-Wiki-Artikel]&lt;br /&gt;
* Henkessoft: [http://www.henkessoft.de/Roboter/rp6.htm RP6]&lt;br /&gt;
* PIC-PROJEKTE Wiki: [http://pic-projekte.de/wiki/index.php?title=RP6  RP6]&lt;br /&gt;
&lt;br /&gt;
* [http://www.youtube.com/results?search_query=rp6 RP6 Videos]&lt;br /&gt;
* [http://de-de.facebook.com/pages/Robby-RP6/155118711202285 facebook]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Robotikeinstieg]]	 &lt;br /&gt;
[[Kategorie:Praxis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Autoren==&lt;br /&gt;
--[[Benutzer:Sloti|Sloti]] 22:23, 29. Dez 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Tobias1|Tobias1]] 18:30, 06. Apr 2010 (CET)&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Dirk|Dirk]] 20:23, 28. Jun 2012 (CET)&lt;/div&gt;</summary>
		<author><name>MaxWeb</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=RP6&amp;diff=20258</id>
		<title>RP6</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=RP6&amp;diff=20258"/>
				<updated>2012-07-10T14:33:47Z</updated>
		
		<summary type="html">&lt;p&gt;MaxWeb: /* Ersatzräder */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:Overview de.gif|Der RP6]]&lt;br /&gt;
&lt;br /&gt;
Was bisher geschah:&lt;br /&gt;
&lt;br /&gt;
Fre, 08. Jun 2007 - Ankündigung des RP6 und der RP6 CONTROL M32&amp;lt;br/&amp;gt;&lt;br /&gt;
Mon, 02. Jul 2007 23:00 - Benachrichtigung der Tester&amp;lt;br/&amp;gt;&lt;br /&gt;
Die, 03. Jul 2007 15:00 - Bereitstellung der Dokumentation&amp;lt;br/&amp;gt;&lt;br /&gt;
Don, 05. Jul 2007 14:30 - Bereitstellung der Schaltungsunterlagen&amp;lt;br/&amp;gt;&lt;br /&gt;
Son, 08. Jul 2007 16:00 - Nachricht über den Versand der RP6&amp;lt;br/&amp;gt;&lt;br /&gt;
Mon, 09. Jul 2007 00:15 - Bereitstellung der Library und der Beispielprogramme&amp;lt;br/&amp;gt;&lt;br /&gt;
Die, 10. Jul 2007 - Eintreffen der RP6 bei den Testern&amp;lt;br/&amp;gt;&lt;br /&gt;
Mon, 16. Jul 2007 - Auslieferungsbeginn des RP6&amp;lt;br/&amp;gt;&lt;br /&gt;
Fre, 24. Apr 2009 - Ankündigung der RP6 CCPRO M128 (Auslieferung schon ab Mitte April 2009)&amp;lt;br/&amp;gt;&lt;br /&gt;
Mon, 27. Feb 2012 - Ankündigung des RP6v2&amp;lt;br/&amp;gt;&lt;br /&gt;
Don, 08. Mär 2012 - Auslieferungsbeginn des RP6v2&amp;lt;br/&amp;gt;&lt;br /&gt;
Sam, 17. Mär 2012 - Ankündigung der RP6v2 M256 WiFi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Allgemein==  [[Bild:DSC03448.JPG|thumb|RP6 mit Erweiterungsboard]] [[Bild:RP6_Lieferumfang.jpg|thumb|RP6 im Lieferumfang]]&lt;br /&gt;
Der von Arexx entwickelte RP6 ist ein autonomes Raupenfahrzeug, das nicht nur für Schüler und Studenten zum Einstieg in das Gebiet Robotik sondern auch für Fortgeschrittene Elektroniker und Bastler sehr gut geeignet ist, da das System für selbstentworfene Erweiterungen ausgelegt ist. Der RP6 wird von einem, unter Roboterentwicklern beliebten, AVR Microcontroller von Atmel gesteuert und hat Lichtsensoren in Form von zwei LDRs, 2 Bumper an der Stoßstange, 6 Status LEDs, Sensoren zur Überwachung der Akkuspannung, Drehgeber mit 625 CPR, ein Infrarot Sensor zur Hinderniserkennung und Kommunikation und Motorstromsensoren zur Verfügung. Zudem liegt dem Roboter eine umfangreiche Anleitung, inklusive einem kleinen C-Crashkurs, ein USB-Interface zum Anschluss an den PC und ein USB Kabel bei.&lt;br /&gt;
&lt;br /&gt;
In diesem Artikel geht es um die Grundlagen des RP6. Zur Programmierung des RP6 gibt es eine eigene Seite: [[RP6 - Programmierung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Technische Daten==&lt;br /&gt;
{|  {{Blauetabelle}} &lt;br /&gt;
|'''Mikrocontroller:'''&lt;br /&gt;
|AVR [[ATmega32]]&lt;br /&gt;
|-&lt;br /&gt;
|'''Speicher:'''&lt;br /&gt;
|32 kB [[Flash]]-Speicher, davon 1 kB bereits vom Bootloader belegt&amp;lt;br/&amp;gt;&lt;br /&gt;
2 kB RAM&amp;lt;br/&amp;gt; &lt;br /&gt;
1 kB [[EEPROM]]&lt;br /&gt;
|-&lt;br /&gt;
|'''Programmierung:'''&lt;br /&gt;
|Über AVR-[[Bootloader]], belegt ca. 1 kB des Flash-Speichers&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Sensoren:'''&lt;br /&gt;
|2 [[Sensorarten#Helligkeit|Lichtsensoren (LDR)]]&amp;lt;br/&amp;gt;&lt;br /&gt;
1 [[Sensorarten#Helligkeit|Infrarot (ACS - Anti Collision System)]]&amp;lt;br/&amp;gt;&lt;br /&gt;
2 [[Sensorarten#Bumpers|Bumper]] &amp;lt;br/&amp;gt; &lt;br /&gt;
2 [[Sensorarten#Incremental-Geber|Drehgeber (Encoder)]]&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Aktoren:'''&lt;br /&gt;
|2 Motoren&amp;lt;br/&amp;gt;&lt;br /&gt;
6 Status-LEDs&amp;lt;br/&amp;gt;&lt;br /&gt;
1 IR-Sender&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Abmessungen:'''&lt;br /&gt;
|(L &amp;amp;times; B &amp;amp;times; H) 172 &amp;amp;times; 128 &amp;amp;times; 50 mm&lt;br /&gt;
|-&lt;br /&gt;
|'''Ausführung:'''&lt;br /&gt;
|Fertig aufgebauter Roboter&lt;br /&gt;
|-&lt;br /&gt;
|'''Stromversorgung:'''&lt;br /&gt;
|6 AA NiMH Akkus&lt;br /&gt;
|-&lt;br /&gt;
|'''Hersteller:'''&lt;br /&gt;
|Arexx Niederlande&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Mechanik==&lt;br /&gt;
===Beschreibung===&lt;br /&gt;
&lt;br /&gt;
===Sensoren===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Encoder====&lt;br /&gt;
&lt;br /&gt;
Die Drehgeber sind an den Getrieben der Motoren zur Drehzahlmessung angebracht. Es handelt sich dabei um Reflexlichtschranken, die auf Codierscheiben mit je 18 weissen und 18 schwarzen Segmenten ausgerichtet sind, also insgesamt 36 Segmente. Diese Codierscheiben sind wiederum an je eines der Zahnräder der beiden Getriebe geklebt worden. Wenn es sich dreht, wandern die einzelnen Segmente an der Reflexlichtschranke vorbei. Die weissen Segmente reflektieren das Infrarotlicht, die schwarzen Segmente nur wenig. Jedes der zwei mittleren Stufenzahnräder des Getriebes hat 50 Zähne auf dem großen, und 12 auf dem kleineren Zahnrad. Die Codierscheiben befinden sich auf dem Zahnrad neben dem Motor, also rechnet man:&lt;br /&gt;
50/12 * 50/12 =17.13/36; 17.13/36 * 36=625&lt;br /&gt;
Daher haben die Encoderscheiben auch Ihre 36 Segmente, denn das gibt eine schöne runde Zahl ohne gebrochenen Anteil. Die Drehgeber erzeugen also 625 Flanken pro Radumdrehung wobei jede Flanke einem Segment entspricht. Bei einem Raddurchmesser von ca. 50mm inkl. Raupenkette, ergibt sich rein rechnerisch ein Radumfang von ca. 157mm was 0.2512mm pro Zählschritt der Drehgeber entspricht. Da sich die Raupenketten aber fast immer etwas in den Untergrund eindrücken (bzw. auch selbst eingedrückt werden) kann man aber von 0.25mm pro Zählschritt ausgehen – meist ist es sogar etwas weniger, z.B. nur 0.24 oder 0.23mm. Das muss man durch abfahren von Teststrecken ermitteln, wie es im Anhang grob beschrieben ist. Sehr genau ist das allerdings durch Radschlupf (bzw. hier müssten wir eigentlich von „Kettenschlupf“ sprechen) und ähnlichen Dingen nicht - vor allem beim Rotieren auf der Stelle. Beim normalen Geradeausfahren ist dieser Fehler klein, aber beim Rotieren kann er schnell sehr große Werte annehmen! Abweichungen muss man evtl. durch weitere Tests ermitteln und mit einkalkulieren. Das ist bei Raupenantrieben leider so – auch bei viel teureren und hochwertigeren Robotern. Dafür hat man aber den Vorteil, dass der Roboter mit Raupenantrieb recht geländegängig ist im Vergleich zu Robotern mit normalem Differentialantrieb mit zwei Antriebsrädern und Stützrad. Kleinere Hindernisse und Rampen kann er meist problemlos überwinden.&lt;br /&gt;
Dabei sind die Encoder sehr nützlich, denn man kann die Geschwindigkeit gut einregeln, egal wie der Untergrund und die Motorbelastung gerade aussieht. Bei gemessenen 50 Segmenten pro Sekunde liegt die Geschwindigkeit bei 1.25 cm/s, sofern wir von 0.25mm pro Zählschritt ausgehen. Etwa 50 Segmente pro Sekunde ist auch die geringste gerade noch regelbare Geschwindigkeit (das variiert aber etwas von Roboter zu Roboter). Bei 1200 Segmenten pro Sekunde wären es die maximal möglichen 30 cm/s (bei 0.25mm Auflösung, bei 0.23 sind es 27.6 cm/s). Standardmäßig begrenzt die Funktionsbibliothek das aber auf 1000 Flanken pro Sekunde. Die maximale Geschwindigkeit ist vom Ladezustand der Akkus abhängig – daher wären 30cm/s nicht besonders lange haltbar. Außerdem erhöht sich die Lebensdauer der Getriebe und Motoren je langsamer man fährt! Wenn der Roboter 4000 Segmente gezählt hat, ist er übrigens etwa einen Meter weit gefahren. Aber wie schon gesagt, gilt das natürlich nur für genau 0.25mm Auflösung. Ohne Kalibrierung hat man hier immer mehr oder weniger starke Abweichungen. Wem es nicht auf jeden mm ankommt, braucht nichts zu kalibrieren und kann einfach von 0.25mm oder besser 0.24mm ausgehen!&lt;br /&gt;
&lt;br /&gt;
====Stoßstangensensoren====&lt;br /&gt;
&lt;br /&gt;
Vorn am Roboter sind zwei Mikroschalter mit langem Schalthebel auf einer separaten&lt;br /&gt;
Platine untergebracht, die etwas vor der anderen Sensorplatine liegt. Dadurch werden&lt;br /&gt;
die IR LEDs auf der Sensorplatine geschützt und können nicht so leicht verbiegen&lt;br /&gt;
wenn der Roboter mal gegen ein Hindernis fährt. Die Stoßstange kann man auch abmontieren und z.B. gegen eine Schuss- oder Sammelvorrichtung für Bälle o.ä. ersetzen wenn man möchte.&lt;br /&gt;
&lt;br /&gt;
====Lichtsensoren====&lt;br /&gt;
&lt;br /&gt;
Vorne auf der kleinen Sensorplatine des Roboters sind zwei sog.&lt;br /&gt;
LDRs (=&amp;quot;Light Dependant Resistors&amp;quot; also lichtabhängige Widerstände)&lt;br /&gt;
platziert und nach links bzw. rechts ausgerichtet. Zwischen&lt;br /&gt;
den beiden Sensoren ist noch eine kleine schwarze&lt;br /&gt;
„Trennwand“ damit das Licht aus einer Richtung möglichst nur&lt;br /&gt;
einen der Sensoren erreicht. Sie bilden zusammen mit je einem&lt;br /&gt;
normalen Widerstand wie beim Batteriesensor einen Spannungsteiler – hier allerdings&lt;br /&gt;
um das Umgebungslicht zu messen.&lt;br /&gt;
&lt;br /&gt;
====Anti Collision System====&lt;br /&gt;
&lt;br /&gt;
Der aus Softwaresicht komplexeste Sensor des RP6 ist das ACS - das&lt;br /&gt;
„Anti Collision System“ (engl. für Anti Kollisions System)! Es besteht&lt;br /&gt;
aus einem IR Empfänger (s. Abb.) und zwei vorne auf der Sensorplatine&lt;br /&gt;
links und rechts angebrachten IR LEDs.&lt;br /&gt;
Da es je eine IR LED links und rechts gibt, kann das ACS grob unterscheiden ob sich&lt;br /&gt;
das Objekt links, rechts oder mittig vor dem Roboter befindet.&lt;br /&gt;
Man kann zusätzlich noch die Stromstärke mit der die beiden IR LEDs gepulst werden&lt;br /&gt;
in drei Stufen einstellen. Das ACS funktioniert aber auch in der höchsten Stufe nicht&lt;br /&gt;
mit allen Objekten immer zuverlässig, denn es kommt auf die Beschaffenheit der&lt;br /&gt;
Oberfläche des jeweiligen Objekts an! Ein schwarzes Objekt reflektiert das IR Licht natürlich&lt;br /&gt;
viel schlechter als ein weisses Objekt und ein kantiges und spiegelndes Objekt&lt;br /&gt;
könnte das IR Licht hauptsächlich in eine bestimme Richtung reflektieren. Die Reichweite&lt;br /&gt;
ist also immer vom jeweiligen Objekt abhängig! Das ist eine prinzipielle Schwäche&lt;br /&gt;
von so gut wie allen IR Sensoren (jedenfalls in dieser Preisklasse).&lt;br /&gt;
Trotzdem werden die meisten Hindernisse zuverlässig erkannt und können umfahren&lt;br /&gt;
werden. Falls das mal nicht klappt, gibt es noch die Stoßstange mit den Tastsensoren&lt;br /&gt;
und falls auch die nicht richtig getroffen werden, kann der Roboter noch mit den Motorstromsensoren&lt;br /&gt;
oder den Encodern erkennen, ob die Motoren blockieren (s.u.)!&lt;br /&gt;
Wem das nicht reicht, der könnte zusätzlich z.B. noch Ultraschallsensoren anbringen...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Erweiterungssystem===&lt;br /&gt;
Auf dem Mainboard sind 22 freie 3,2mm Löcher vorhanden (im Chassis weitere 16), auf denen die Erweiterungsmodule symmetrisch vorne und hinten gestapelt werden können. Weil der Stromverbrauch durch mehr Module steigt, ist es sinnvoll nur insgesamt 6-8 Module auf dem Roboter zu stapeln. Auf dem Mainboard selbst sind noch 6 kleine Erweiterungsflächen verfügbar (plus 2 sehr kleine auf der Bumperplatine).&lt;br /&gt;
&lt;br /&gt;
===Antrieb===&lt;br /&gt;
&lt;br /&gt;
Die 7,2 VDC Motoren sind im Chassis eingebaut und werden mithilfe der H-Brücken gesteuert. Die maximale Geschwindigkeit liegt bei 25cm/s, das kann je nach Akkuspannung aber variieren. Ohne Softwarebegrenzung sind sogar 30cm/s möglich, dadurch verringert sich aber die Lebensdauer der Motoren. Die maximale Steigung, die der RP6 bewältigen kann, ist 30%, ohne Bumperplatine 40%, das hängt aber auch vom Untergrund ab. Kleine Hindernisse wie Bücher und Stifte kann der RP6 problemlos überqueren. Die Achsen der Räder sind in selbstschmierenden Sinterlagern mit 4mm Durchmesser gelagert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Elektromechanik==&lt;br /&gt;
===Beschreibung===&lt;br /&gt;
===Odometrie===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Elektronik==&lt;br /&gt;
[[Bild:RP6 Block.jpg|thumb|Blockdiagramm]]&lt;br /&gt;
===Beschreibung===&lt;br /&gt;
&lt;br /&gt;
===Sensoren (SENSORS)===&lt;br /&gt;
&lt;br /&gt;
Die meisten Sensoren über die der Roboter verfügt, haben wir ja schon in anderen Abschnitten kurz genannt, wollen diese nun aber etwas detaillierter betrachten.&lt;br /&gt;
In dem Blockdiagramm sind einige der Sensoren nicht in dem blauen Bereich &amp;quot;Sensors&amp;quot; zu sehen, weil sie besser in andere Bereiche passen. Trotzdem zählen natürlich auch die Drehgeber (= “Encoder“), Motorstromsensoren und der Batteriespannungssensor zu den Sensoren und werden darum in diesem Abschnitt beschrieben!&lt;br /&gt;
&lt;br /&gt;
====Batteriespannungs-Sensor (Voltage Sensor)====&lt;br /&gt;
&lt;br /&gt;
Dieser &amp;quot;Sensor&amp;quot; ist eigentlich nur ein einfacher Spannungsteiler aus zwei Widerständen. Wir gehen davon aus, dass die Batterien insgesamt maximal 10V liefern können. 6 NiMH Akkus werden immer unterhalb davon bleiben. Die Referenzspannung des ADC, also die Spannung mit der er die gemessene Spannung vergleicht, beträgt 5V. Da auch die Betriebsspannung 5V beträgt, darf diese nicht überschritten werden. Also müssen wir die zu messende Spannung um die Hälfte herabsetzen! Dies geschieht über einen Spannungsteiler aus zwei Widerständen, der die Spannung an den Messbereich des ADCs anpasst. Der ADC löst mit 10 Bit auf (Wertebereich 0 bis 1023), was eine Auflösung von 10V/1024=9.765625mV ergibt. Ein Messwert von 512 entspricht hier also 5V und 1023 wären ungefähr 10V! Diese Grenzwerte sollten aber normalerweise nie erreicht werden! Das ist nicht besonders genau, da die Widerstände keineswegs Präzisionswiderstände sind. Abweichungen von einigen Prozent nach oben und unten sind möglich. Auch die Referenzspannung von 5V ist nicht ganz genau und kann bei normaler Belastung etwas variieren. Das stört hier nicht, denn wir brauchen ohnehin nur einen ungefähren Wert um festzustellen ob die Batterien sich langsam dem Ende nähern. Wer die Spannung genau messen will, braucht ein Multimeter um den Messfehler zu ermitteln und diesen dann in Software auszugleichen. Wenn man mit Fehlern leben kann, kann man die Spannung dank des günstigen Umrechnungsverhältnisses sogar direkt aus den ADC Werten ungefähr abschätzen: 720 entsprechen dann grob 7.2V, 700 etwa 7V und 650 wären etwa 6.5V. Bei einem konstanten Wert unter 560 kann man davon ausgehen, dass die Akkus fast leer sind.&lt;br /&gt;
&lt;br /&gt;
====Motorstrom====&lt;br /&gt;
[[Bild:RP6_MSS.jpg|thumb]]&lt;br /&gt;
Es befinden sich zwei Leistungswiderstände in den beiden Motorstromkreisen. Aus dem Ohm'schen Gesetz U=RxI folgt, dass sich die Spannung die an einem bestimmten Widerstand abfällt, proportional zum Strom verhält, der diesen durchfließt!&lt;br /&gt;
Damit die Spannungsabfälle an den Widerständen nicht zu groß werden, müssen die Widerstände klein gewählt werden. In unserem Fall haben Sie einen Wert von 0.1 Ohm&lt;br /&gt;
Die abfallende Spannung ist also nur sehr klein (0.1V bei einem Strom von 1A) und muss verstärkt werden bevor sie mit dem ADC gemessen werden kann. Das erledigt jeweils ein sog. Operationsverstärker (OPV). In der Schaltung des RP6 wird je Motorkanal ein OPV verwendet. Der Messbereich geht etwa bis 1.8A. Bei 1.8A fallen etwa 0.18V am Widerstand ab und es ergibt sich am Ausgang des OPV eine Spannung von etwa 4V. Mehr kann der verwendete OPV bei 5V Betriebsspannung nicht ausgeben:&lt;br /&gt;
&lt;br /&gt;
I = U / ((1 + (100k / 4,7k)) * 0,1)&lt;br /&gt;
&lt;br /&gt;
Die Leistungswiderstände haben eine Toleranz von 10%, die Widerstände am OPV 5%, also ist das alles nur sehr ungenau (Ungenauigkeiten im Bereich von etwa 270mA sind möglich wenn man die Sensoren nicht kalibriert!). Wir brauchen allerdings auch nur den ungefähren Wert um festzustellen ob die Motoren stark oder wenig belastet werden. So kann der Roboter gut blockierte oder gar defekte Motoren bzw. Drehgeber erkennen! Die DC-Motoren benötigen mehr Strom je stärker sie belastet werden (Drehmoment) und somit steigt der Strom sehr stark an wenn die Motoren blockiert sind. Das wird von der Robotersoftware zur Notabschaltung verwendet: wenn die Motoren dauerhaft mit hohem Strom betrieben würden, könnten diese sehr heiß werden und dadurch Schaden nehmen! Und wenn die Encoder mal ausfallen sollten – aus welchem Grund auch immer – kann auch das damit erkannt werden. Man würde dann eine Drehzahl von 0 messen. Lässt man die Motoren aber auf voller Kraft laufen und der Strom bleibt trotzdem klein (also sind die Ketten nicht blockiert!), kann man genau daraus schließen, dass entweder die Encoder, oder die Motoren ausgefallen sind (oder Encoder und Motorstromsensoren nicht funktionieren... das passiert z.B. wenn man vergessen hat diese vorher per Software einzuschalten).&lt;br /&gt;
&lt;br /&gt;
====Encoder====&lt;br /&gt;
[[Bild:RP6_ENCODER.jpg|thumb]]&lt;br /&gt;
Ganz anders als die letztgenannten Sensoren funktionieren die Drehgeber, die an den Getrieben der Motoren zur Drehzahlmessung angebracht sind. Es handelt sich dabei um Reflexlichtschranken, die auf Codierscheiben mit je 18 weissen und 18 schwarzen Segmenten ausgerichtet sind, also insgesamt 36 Segmente (s. Abb). Diese Codierscheiben sind wiederum an je eines der Zahnräder der beiden Getriebe geklebt worden. Wenn es sich dreht, wandern die einzelnen Segmente an der Reflexlichtschranke vorbei. Die weissen Segmente reflektieren das Infrarotlicht, die schwarzen Segmente nur wenig. Die Drehgeber erzeugen so zwar auch wie die anderen Sensoren ein analoges Signal, aber es wird digital interpretiert. Zunächst wird das Signal verstärkt und anschließend über einen sog. Schmitt Trigger in ein Rechtecksignal umgewandelt. Die Flanken dieses Signals, also die Wechsel von 5 auf 0V und umgekehrt, lösen jeweils ein Interrupt Ereignis aus und diese werden dann von der Software gezählt. So kann die zurückgelegte Wegstrecke gemessen und zusammen mit einem Timer zur Zeitmessung die Drehzahl und damit auch die Geschwindigkeit ermittelt werden. Die Ermittlung der Drehzahl ist auch Hauptanwendung der Encoder – nur mit den Encodern kann man die Drehzahl auf den gewünschten Sollwert einregeln. Ohne Regelung wäre die Drehzahl nämlich von der Akkuspannung, Belastung der Motoren usw. abhängig. Die hohe Auflösung ermöglicht es dabei, auch niedrige Geschwindigkeiten noch relativ genau einzuregeln. Jedes der zwei mittleren Stufenzahnräder des Getriebes hat 50 Zähne auf dem großen, und 12 auf dem kleineren Zahnrad (s. Abb). Die Codierscheiben befinden sich auf dem Zahnrad neben dem Motor, also rechnet man:&lt;br /&gt;
&lt;br /&gt;
50/12 * 50/12 =17.13/36; 17.13/36 * 36=625&lt;br /&gt;
&lt;br /&gt;
Daher haben die Encoderscheiben auch Ihre 36 Segmente, denn das gibt eine schöne runde Zahl ohne gebrochenen Anteil. Die Drehgeber erzeugen also 625 Flanken pro Radumdrehung wobei jede Flanke einem Segment entspricht. Bei einem Raddurchmesser von ca. 50mm inkl. Raupenkette, ergibt sich rein rechnerisch ein Radumfang von ca. 157mm was 0.2512mm pro Zählschritt der Drehgeber entspricht. Da sich die Raupenketten aber fast immer etwas in den Untergrund eindrücken (bzw. auch selbst eingedrückt werden) kann man aber von 0.25mm pro Zählschritt ausgehen – meist ist es sogar etwas weniger, z.B. nur 0.24 oder 0.23mm. Das muss man durch abfahren von Teststrecken ermitteln, wie es im Anhang grob beschrieben ist. Sehr genau ist das allerdings durch Radschlupf (bzw. hier müssten wir eigentlich von „Kettenschlupf“ sprechen) und ähnlichen Dingen nicht - vor allem beim Rotieren auf der Stelle. Beim normalen Geradeausfahren ist dieser Fehler klein, aber beim Rotieren kann er schnell sehr große Werte annehmen! Abweichungen muss man evtl. durch weitere Tests ermitteln und mit einkalkulieren. Das ist bei Raupenantrieben leider so – auch bei viel teureren und hochwertigeren Robotern. Dafür hat man aber den Vorteil, dass der Roboter mit Raupenantrieb recht geländegängig ist im Vergleich zu Robotern mit normalem Differentialantrieb mit zwei Antriebsrädern und Stützrad. Kleinere Hindernisse und Rampen kann er meist problemlos überwinden.&lt;br /&gt;
Dabei sind die Encoder sehr nützlich, denn man kann die Geschwindigkeit gut einregeln, egal wie der Untergrund und die Motorbelastung gerade aussieht. Bei gemessenen 50 Segmenten pro Sekunde liegt die Geschwindigkeit bei 1.25 cm/s, sofern wir von 0.25mm pro Zählschritt ausgehen. Etwa 50 Segmente pro Sekunde ist auch die geringste gerade noch regelbare Geschwindigkeit (das variiert aber etwas von Roboter zu Roboter). Bei 1200 Segmenten pro Sekunde wären es die maximal möglichen 30 cm/s (bei 0.25mm Auflösung, bei 0.23 sind es 27.6 cm/s). Standardmäßig begrenzt die Funktionsbibliothek das aber auf 1000 Flanken pro Sekunde. Die maximale Geschwindigkeit ist vom Ladezustand der Akkus abhängig – daher wären 30cm/s nicht besonders lange haltbar. Außerdem erhöht sich die Lebensdauer der Getriebe und Motoren je langsamer man fährt!&lt;br /&gt;
&lt;br /&gt;
=====Encoder justieren=====&lt;br /&gt;
Damit der RP6 die Signale der Drehgeber richtig auswerten kann, muss man evtl. die Drehgeber einmalig justieren. Dies kann auch schon bei einem neu gekauften RP6 notwendig sein.&lt;br /&gt;
Eine genaue Anleitung dazu findet man [http://www.arexx.com/rp6/downloads/RP6_ENCODER_DE_20071219.zip hier]. Es gibt auch ein [http://www.arexx.com/rp6/downloads/rp6_encoder_video.zip Video], das die Drehgeber-Justierung zeigt.&lt;br /&gt;
&lt;br /&gt;
=====Encoder kalibrieren=====&lt;br /&gt;
Wenn der Roboter 4000 Segmente gezählt hat, ist er etwa einen Meter weit gefahren. Aber wie schon gesagt, gilt das natürlich nur für genau 0.25mm Auflösung. Ohne Kalibrierung hat man hier immer mehr oder weniger starke Abweichungen. Wem es nicht auf jeden mm ankommt, braucht nichts zu kalibrieren und kann einfach von 0.25mm oder besser 0.24mm ausgehen!&lt;br /&gt;
Optimal ist es, wenn man sich für Weg- und Winkelmessungen nicht auf die Encoder Daten stützen muss, sondern externe Systeme wie Infrarotbaken oder einen genauen elektronischen Kompass dazu zur Verfügung hat.&lt;br /&gt;
&lt;br /&gt;
Will man die Drehgeber des RP6 dennoch kalibrieren, kann man ihn z.B. mit diesem Testprogramm:&lt;br /&gt;
&amp;lt;pre&amp;gt;#include &amp;quot;RP6RobotBaseLib.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
	initRobotBase();&lt;br /&gt;
	powerON();&lt;br /&gt;
&lt;br /&gt;
	// Test: Go ahead 1m and stop!&lt;br /&gt;
	move (80, FWD, DIST_MM(1000), true);&lt;br /&gt;
	writeString_P(&amp;quot;LEFT RIGHT&amp;quot;);&lt;br /&gt;
 	writeString_P(&amp;quot;\n&amp;quot;);&lt;br /&gt;
 	writeInteger(mleft_dist, DEC);&lt;br /&gt;
	writeChar(' ');&lt;br /&gt;
 	writeInteger(mright_dist, DEC);&lt;br /&gt;
	writeString_P(&amp;quot;\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
	powerOFF();&lt;br /&gt;
&lt;br /&gt;
	return 0;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
... 1m weit fahren lassen und dann messen, wie weit er tatsächlich gefahren ist. Das Programm gibt auf dem Terminal den Stand der Drehgeber aus. Teilt man dann die gemessene Fahrstrecke in mm durch den Wert der Drehgeber, erhält man die Auflösung. Diesen Wert kann man dann der Konstanten ENCODER_RESOLUTION in der RP6Config.h zuweisen. Nach &amp;quot;Make Clean&amp;quot;, einer Neukompilierung und erneuter Ausführung des Testprogramms müßte der RP6 jetzt genau 1m weit fahren. Das gilt zumindest für den Untergrund, auf dem die Kalibrierung durchgeführt wurde.&lt;br /&gt;
&lt;br /&gt;
====Stoßstangensensoren (Bumper)====&lt;br /&gt;
&lt;br /&gt;
Vorn am Roboter sind zwei Mikroschalter mit langem Schalthebel auf einer separaten&lt;br /&gt;
Platine untergebracht, die etwas vor der anderen Sensorplatine liegt. Dadurch werden&lt;br /&gt;
die IR LEDs auf der Sensorplatine geschützt und können nicht so leicht verbiegen&lt;br /&gt;
wenn der Roboter mal gegen ein Hindernis fährt. Mit den zwei Schaltern kann der Mikrocontroller&lt;br /&gt;
einen solchen Aufprall registrieren und dann beispielsweise zurücksetzen,&lt;br /&gt;
sich etwas drehen und weiterfahren. Die Schalter sind an zwei der Ports die schon mit&lt;br /&gt;
den LEDs verbunden sind angeschlossen und blockieren so keine anderen Ports des&lt;br /&gt;
Mikrocontrollers. Daher leuchten die LEDs auch immer wenn man einen der Schalter&lt;br /&gt;
drückt! Da dies normalerweise relativ selten passiert, stört das aber nicht weiter.&lt;br /&gt;
Die Stoßstange kann man auch abmontieren und z.B. gegen eine Schuss- oder Sammelvorrichtung&lt;br /&gt;
für Bälle o.ä. ersetzen wenn man möchte.&lt;br /&gt;
&lt;br /&gt;
====Lichtsensoren (LDRs)====&lt;br /&gt;
[[Bild:RP6_Licht.jpg|thumb]]&lt;br /&gt;
Vorne auf der kleinen Sensorplatine des Roboters sind zwei sog.&lt;br /&gt;
LDRs (=&amp;quot;Light Dependant Resistors&amp;quot; also lichtabhängige Widerstände)&lt;br /&gt;
platziert und nach links bzw. rechts ausgerichtet. Zwischen&lt;br /&gt;
den beiden Sensoren ist noch eine kleine schwarze&lt;br /&gt;
„Trennwand“ damit das Licht aus einer Richtung möglichst nur&lt;br /&gt;
einen der Sensoren erreicht. Sie bilden zusammen mit je einem&lt;br /&gt;
normalen Widerstand wie beim Batteriesensor einen Spannungsteiler – hier allerdings&lt;br /&gt;
um das Umgebungslicht zu messen. Die 5V Betriebsspannung wird auch geteilt, aber&lt;br /&gt;
hier ist einer der Widerstände variabel! Es wird also das Teilungsverhältnis je nach Intensität&lt;br /&gt;
des Lichteinfalls verändert und somit eine vom Lichteinfall abhängige Spannung&lt;br /&gt;
an einen der A/D Wandler Kanäle geleitet!&lt;br /&gt;
Über den Spannungsunterschied zwischen den beiden Sensoren kann man ermitteln in&lt;br /&gt;
welcher Richtung sich eine bzw. die hellste Lichtquelle vor dem Roboter befindet:&lt;br /&gt;
Links, Rechts oder in der Mitte. Mit einem entsprechenden Programm, kann man so z.B. eine starke Taschenlampe in&lt;br /&gt;
einem abgedunkelten Zimmer verfolgen, oder den Roboter die hellste Stelle in einem&lt;br /&gt;
Raum suchen lassen! Klappt z.B. sehr gut mit einem stärkeren Hand-Halogenscheinwerfer:&lt;br /&gt;
Wenn man damit auf den Boden leuchtet, kann der Roboter dem Lichtfleck auf&lt;br /&gt;
dem Boden folgen.&lt;br /&gt;
Das geht natürlich auch umgekehrt: Der Roboter könnte z.B. auch versuchen sich vor&lt;br /&gt;
hellem Licht zu verstecken...&lt;br /&gt;
Wenn man noch ein oder zwei LDRs hinten am Roboter anbringen würde, könnte man&lt;br /&gt;
das noch verfeinern und die Richtung in der sich Lichtquellen befinden besser bestimmen.&lt;br /&gt;
Der Roboter kann sonst nämlich oft nur schwer unterscheiden ob die Lichtquelle&lt;br /&gt;
vor oder hinter ihm liegt. Zwei der A/D Wandler Kanäle sind noch frei...&lt;br /&gt;
&lt;br /&gt;
====Anti Collision System (ACS)====&lt;br /&gt;
[[Bild:RP6 ACS.jpg|thumb|Das ACS]]&lt;br /&gt;
Der aus Softwaresicht komplexeste Sensor des RP6 ist das ACS - das „Anti Collision System“ (engl. für Anti Kollisions System)! Es besteht aus einem IR Empfänger (s. Abb.) und zwei vorne auf der Sensorplatine links und rechts angebrachten IR LEDs. Die IR LEDs werden direkt vom Mikrocontroller angesteuert. Die Ansteuerungsroutinen können beliebig verändert und verbessert werden! Beim Vorgängermodell war dafür noch ein eigener Controller nötig, dessen Programm aber nicht vom Anwender geändert werden konnte...&lt;br /&gt;
Mit den IR LEDs werden kurze, mit 36kHz modulierte Infrarot Impulse ausgesandt, auf die der darauf ausgelegte IR Empfänger reagiert. Werden die IR Impulse an einem Gegenstand vor dem Roboter reflektiert und vom IR Empfänger detektiert, kann der Mikrocontroller darauf reagieren und z.B. ein Ausweichmanöver einleiten. Damit das ACS nicht zu empfindlich bzw. auf eventuelle Störungen reagiert, wartet die Software bis eine bestimmte Anzahl von Impulsen in einer bestimmten Zeit empfangen worden ist. Es wird auch eine Synchronisation mit dem RC5 Empfang durchgeführt und auf die RC5 Signale von TV/Hifi Fernbedienungen wird so nicht reagiert. Bei anderen Codes kann das aber nicht garantiert werden und das ACS könnte dann Hindernisse erkennen, wo gar keine sind! Da es je eine IR LED links und rechts gibt, kann das ACS grob unterscheiden ob sich das Objekt links, rechts oder mittig vor dem Roboter befindet.&lt;br /&gt;
Man kann zusätzlich noch die Stromstärke mit der die beiden IR LEDs gepulst werden in drei Stufen einstellen. Das ACS funktioniert aber auch in der höchsten Stufe nicht mit allen Objekten immer zuverlässig, denn es kommt auf die Beschaffenheit der Oberfläche des jeweiligen Objekts an! Ein schwarzes Objekt reflektiert das IR Licht natürlich viel schlechter als ein weisses Objekt und ein kantiges und spiegelndes Objekt könnte das IR Licht hauptsächlich in eine bestimme Richtung reflektieren. Die Reichweite ist also immer vom jeweiligen Objekt abhängig! Das ist eine prinzipielle Schwäche von so gut wie allen IR Sensoren (jedenfalls in dieser Preisklasse).&lt;br /&gt;
Trotzdem werden die meisten Hindernisse zuverlässig erkannt und können umfahren werden. Falls das mal nicht klappt, gibt es noch die Stoßstange mit den Tastsensoren und falls auch die nicht richtig getroffen werden, kann der Roboter noch mit den Motorstromsensoren oder den Encodern erkennen, ob die Motoren blockieren (s.u.)!&lt;br /&gt;
Wem das nicht reicht, der könnte zusätzlich z.B. noch Ultraschallsensoren anbringen...&lt;br /&gt;
&lt;br /&gt;
====IR-Kommunikation (IRCOMM)====&lt;br /&gt;
Der RP6 kann über die IR-LEDs links und rechts über der Bumper-Platine Daten zu anderen IR-Empfängern senden.  Es ist z.B. möglich, dass mehrere Roboter ihre Sensorwerte untereinander vergleichen.&lt;br /&gt;
&lt;br /&gt;
====6 Status-LEDs====&lt;br /&gt;
Die Status-LEDs sind vorne links und rechts über den Lichtsensoren auf der Hauptplatine angebracht.&lt;br /&gt;
&lt;br /&gt;
Über die Status-LEDs können Sensorzustände, z.B. des ACS, der Bumper oder der Lichtsensoren, dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
====IR-Sender====&lt;br /&gt;
Über den IR-Sender können Daten zu anderen Geräten übertragen werden.&lt;br /&gt;
&lt;br /&gt;
===Erweiterungssystem (EXPANSION SYSTEM)===&lt;br /&gt;
[[Bild:RP6_EXP.jpg|thumb]]&lt;br /&gt;
Eines der nützlichsten Features des RP6 ist das Erweiterungssystem.&lt;br /&gt;
Man kann den RP6 damit genau so weit ausbauen,&lt;br /&gt;
wie man es benötigt. Aus Kostengründen bietet das&lt;br /&gt;
Basissystem schließlich nur relativ wenig Sensoren. Es sind&lt;br /&gt;
zwar schon mehr als bei vielen anderen Robotern in dieser&lt;br /&gt;
Preisklasse, aber erst mit weiteren Sensoren macht ein Roboter&lt;br /&gt;
so richtig Spaß. Das ACS kann beispielsweise nur grob&lt;br /&gt;
erkennen ob sich ein Hindernis vor dem Roboter befindet.&lt;br /&gt;
Mit Ultraschallsensoren oder besseren zusätzlichen IR Sensoren,&lt;br /&gt;
könnte man aber die Distanz ermitteln und so beispielsweise&lt;br /&gt;
bessere Ausweichmanöver fahren!&lt;br /&gt;
&lt;br /&gt;
Neben Sensoren macht es auch sehr viel Sinn, zusätzliche Controller einzubauen um&lt;br /&gt;
die anfallenden Aufgaben aufteilen zu können. Beispielsweise die RP6 CONTROL M32&lt;br /&gt;
Platine mit einem weiteren MEGA32 Mikrocontroller oder die CCPRO M128.&lt;br /&gt;
&lt;br /&gt;
Das Erweiterungssystem muss natürlich in der Lage sein, viele Erweiterungsmodule&lt;br /&gt;
miteinander zu verbinden, dabei mit wenigen Signalleitungen&lt;br /&gt;
auskommen und eine ausreichend hohe Geschwindigkeit bieten.&lt;br /&gt;
&lt;br /&gt;
Siehe [[I2C]]&lt;br /&gt;
&lt;br /&gt;
===Steuerung (CONTROL SYSTEM)===&lt;br /&gt;
&lt;br /&gt;
====Hauptprozessor (ATMEGA32)====&lt;br /&gt;
[[Bild:RP6_MEGA32.jpg|thumb|Der MEGA32]]&lt;br /&gt;
Der Hauptprozessor ist der ATMEGA32 vom Atmel. Er hat 32KB Flash ROM und 2KB RAM. Der ATMEGA ist mit 8Mhz getaktet, kann also bis zu 8 Millionen Befehle pro Sekunde ausführen. Es sind 32 I/O-Pins  am Controller verfügbar. Die I/O-Pins gehören zu I/O-Ports mit jeweils 8 Pins. Davon gibt es 4: PORTA, PORTB, PORTC und PORTD. Der Controller kann die Ports entweder ein oder ausschalten (Output), oder erkennen, ob Spannung angelegt wurde oder nicht (Input). Es gibt mehrere Module, die verschiedene Aufgaben übernehmen:&lt;br /&gt;
* 3 Timer, einer davon erzeugt die PWM-Signale für die Motoren&lt;br /&gt;
* Die serielle Schnittstelle (UART)&lt;br /&gt;
* Das TWI (Two Wire Interface, also Zweidraht Schnittstelle)&lt;br /&gt;
* Ein ADC (Analog to Digital Converter) mit 8 Eingangskanälen, welche mit 10bit (0-1023) auflösen&lt;br /&gt;
* Drei externe Interrupt Eingänge&lt;br /&gt;
&lt;br /&gt;
Auserdem befindet sich im Microcontroller ein sog. Bootloader, welcher mit dem RP6 Loader kommuniziert und neue Programme in den Speicher lädt.&lt;br /&gt;
&lt;br /&gt;
===Antrieb (DRIVE SYSTEM)===&lt;br /&gt;
[[Bild:RP6_H-Brücke.jpg|thumb|Die H-Brücke]]&lt;br /&gt;
[[Bild:RP6_Tastverhältniss.jpg|thumb]]&lt;br /&gt;
Der Antrieb des RP6 besteht aus zwei Gleichstrom Motoren mit nachgeschaltetem Getriebe,&lt;br /&gt;
über das die beiden Raupenketten angetrieben werden.&lt;br /&gt;
Die Motoren genehmigen sich je nach Belastung&lt;br /&gt;
einen recht hohen Strom und können&lt;br /&gt;
natürlich nicht direkt vom Mikrocontroller&lt;br /&gt;
angesteuert werden. Dazu braucht man&lt;br /&gt;
Leistungstreiber in Form von je einer H-Brücke&lt;br /&gt;
pro Motor. Das grundlegende Prinzip&lt;br /&gt;
ist in der nebenstehenden Abbildung dargestellt.&lt;br /&gt;
Eine H-Brücke besteht aus vier&lt;br /&gt;
&amp;quot;Schaltern&amp;quot;, die in Form eines H's um einen&lt;br /&gt;
Motor angeordnet sind. Nehmen wir mal an,&lt;br /&gt;
zunächst seien alle Schalter aus. Schaltet&lt;br /&gt;
man dann S1 und S4 (Rot) an, liegt eine&lt;br /&gt;
Spannung am Motor an und er dreht sich&lt;br /&gt;
z.B. nach rechts. Schalten wir nun S1 und&lt;br /&gt;
S4 wieder aus und danach S2 und S3 (Grün)&lt;br /&gt;
an, wird die am Motor anliegende Spannung umgepolt und er dreht sich in die entgegen gesetzte&lt;br /&gt;
Richtung, also nach links! Man muss darauf achten, nicht gleichzeitig S1&lt;br /&gt;
und S2, oder S3 und S4 einzuschalten, sonst entstünde ein Kurzschluss und dadurch&lt;br /&gt;
könnten die &amp;quot;Schalter&amp;quot; zerstört werden!&lt;br /&gt;
Natürlich verwenden wir auf dem RP6 keine mechanischen Schalter, sondern sog.&lt;br /&gt;
MOSFETs. Diese schalten beim Anlegen einer genügend hohen Spannung am Eingang&lt;br /&gt;
durch. Die Schaltvorgänge können sehr schnell erfolgen, mehrere Kilohertz sind bei&lt;br /&gt;
unserer Anwendung möglich.&lt;br /&gt;
So kann man also schon mal die Drehrichtung einstellen. Und wie bekommt man den&lt;br /&gt;
Motor nun schneller bzw. langsamer? Ein Elektromotor dreht umso schneller, je höher&lt;br /&gt;
die angelegte Spannung ist. Die Drehzahl kann also über die Spannung eingestellt&lt;br /&gt;
werden - und genau dazu können wir die H-Brücke auch verwenden!&lt;br /&gt;
Die Abbildung verdeutlicht das Prinzip&lt;br /&gt;
nach dem wir vorgehen können.&lt;br /&gt;
Wir erzeugen&lt;br /&gt;
ein Rechtecksignal fester Frequenz,&lt;br /&gt;
bei dem wir das sog. Tastverhältnis&lt;br /&gt;
verändern. Mit &amp;quot;Tastverhältnis&amp;quot; ist das&lt;br /&gt;
Verhältnis von der eingeschalteten zur&lt;br /&gt;
ausgeschalteten Zeit des Signals gemeint.&lt;br /&gt;
Am Motor liegt dann effektiv eine niedrigere,&lt;br /&gt;
mittlere Gleichspannung an, die dem&lt;br /&gt;
Tastverhältnis entspricht. In der Grafik ist&lt;br /&gt;
dies durch eine rote Linie (Ug) und die roten&lt;br /&gt;
Flächen verdeutlicht. Wenn z.B. eine&lt;br /&gt;
Spannung von 7 Volt von den Akkus an&lt;br /&gt;
den Motortreibern anliegt, und diese mit&lt;br /&gt;
einem Tastverhältnis von 50% angesteuert werden, würde die mittlere Spannung in&lt;br /&gt;
etwa bei der Hälfte, also 3.5V liegen! Das stimmt real nicht ganz, aber so kann man&lt;br /&gt;
es sich schon gut und einfach vorstellen.&lt;br /&gt;
Das Antriebssystem ist dank der hohen Untersetzung (~ 1:72) relativ stark und so&lt;br /&gt;
kann der RP6 viel schwerere Lasten tragen als es z.B. der kleine Roboter ASURO&lt;br /&gt;
könnte. Allerdings steigt mit zunehmendem Gewicht natürlich auch der Energiebedarf&lt;br /&gt;
und die Akkus werden schneller leer sein ...&lt;br /&gt;
Im Vergleich mit einem ferngesteuerten Rennwagen o.ä. könnte man denken der RP6&lt;br /&gt;
sei langsam - stimmt auch - das ist jedoch absichtlich so! Der Roboter wird von einem&lt;br /&gt;
Mikrocontroller gesteuert und wenn der Programmierer einen Fehler bei der Programmierung&lt;br /&gt;
gemacht hat, wäre es ungünstig mit 10km/h vor die Wand zu prallen! Bei&lt;br /&gt;
dem eher gemächlichen Tempo des RP6 passiert aber nicht so schnell etwas und nebenbei&lt;br /&gt;
haben die Sensoren mehr Zeit die Umgebung auf Hindernisse zu untersuchen.&lt;br /&gt;
Und da wäre natürlich noch der Vorteil der höheren Belastbarkeit und der viel genaueren&lt;br /&gt;
Geschwindigkeitsregelung!&lt;br /&gt;
&lt;br /&gt;
===Stromversorgung (POWER SUPPLY)===&lt;br /&gt;
[[Bild:RP6_IC1.jpg|thumb]]&lt;br /&gt;
Natürlich benötigt ein Roboter Energie. Diese trägt der RP6 gespeichert in 6 Akkus mit&lt;br /&gt;
sich herum. Die Laufzeit ist durch die Kapazität der Akkus eingeschränkt, denn auch&lt;br /&gt;
wenn die Elektronik verhältnismäßig wenig Energie benötigt, schlucken die Motoren je&lt;br /&gt;
nach Belastung doch ziemlich viel.&lt;br /&gt;
&lt;br /&gt;
Damit die Akkus möglichst lange halten und der Roboter nicht ständig Pause machen&lt;br /&gt;
muss, sollte man ihm daher etwas größere Energiespeicher mit etwa 2500mAh gönnen.&lt;br /&gt;
Kleinere mit 2000mAh oder mehr funktionieren aber auch. Mit guten Akkus kann&lt;br /&gt;
man 3 bis 6 Stunden oder mehr Laufzeit erreichen, abhängig von der Betriebszeit der&lt;br /&gt;
Motoren, deren Belastung und Qualität der Akkus. Die 6 Akkus die notwendig sind,&lt;br /&gt;
haben insgesamt eine Nennspannung von 6x 1.2V = 7.2V. Im Blockdiagramm ist dies&lt;br /&gt;
mit &amp;quot;UB&amp;quot; (= &amp;quot;U-Battery&amp;quot;, U ist der Formelbuchstabe für Spannung) bezeichnet. „Nennspannung&amp;quot;,&lt;br /&gt;
weil sich die Spannung mit der Zeit stark verändert. Voll aufgeladen können&lt;br /&gt;
die Akkus im Leerlauf insgesamt bis zu 8.5V liefern! Diese Spannung sinkt während&lt;br /&gt;
der Entladung ab und schwankt auch je nach Belastung (Motoren an oder aus,&lt;br /&gt;
schnell langsam etc. - wie stark die Spannung schwankt, hängt auch von der Qualität&lt;br /&gt;
der verwendeten Akkus ab. Der Innenwiderstand ist hier die kritische Größe).&lt;br /&gt;
Das ist für Messungen von Sensorwerten und ähnlichem natürlich nicht ohne weiteres&lt;br /&gt;
brauchbar. Noch wichtiger ist jedoch, dass viele der verwendeten Komponenten wie&lt;br /&gt;
z.B. der Mikrocontroller nur auf 5V oder weniger Betriebsspannung ausgelegt sind und&lt;br /&gt;
bei so hohen Spannungen zerstört würden. Die Akku Spannung muss also auf einen&lt;br /&gt;
definierten Wert heruntergeregelt und stabilisiert werden!&lt;br /&gt;
Das übernimmt ein 5V Spannungsregler, der einen Strom von&lt;br /&gt;
maximal 1.5A liefern kann (s. Abb.). Bei 1.5A würde er jedoch&lt;br /&gt;
ziemlich viel Wärme abgeben. Es gibt daher eine große Kühlfläche&lt;br /&gt;
auf der Platine an die der Regler festgeschraubt ist. Über 1A&lt;br /&gt;
sollte der Regler trotz Kühlung besser nur kurzzeitig (also wenige&lt;br /&gt;
Sekunden) belastet werden, wenn man nicht noch einen zusätzlichen&lt;br /&gt;
großen Kühlköper draufschraubt.&lt;br /&gt;
&lt;br /&gt;
Es wird empfohlen, 800mA Dauerlast nicht zu überschreiten! Bei&lt;br /&gt;
so einer Belastung und zusammen mit den Motoren wären die&lt;br /&gt;
Akkus auch recht schnell leer. Im normalen Betrieb ohne ein Erweiterungsboard&lt;br /&gt;
nimmt der Roboter übrigens nicht mehr als 40mA auf (ausser wenn&lt;br /&gt;
das IRCOMM sendet), also überhaupt kein Problem für den Regler und man hat noch&lt;br /&gt;
genug Reserven für die Erweiterungsmodule, die meistens auch nicht mehr als 50mA&lt;br /&gt;
aufnehmen sofern keine Motoren, große LEDs o.ä. daran angeschlossen sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Umbau-Optionen==&lt;br /&gt;
Hier soll beschrieben werden, welche Umbau-Optionen es für die RP6 Base gibt. Im Text gibt es Verweise auf den Schaltplan des RP6 (RP6_MAINBOARD.PDF) in der Form: (SP2 B1: Bauteil). Dies bedeutet, dass man das Bauteil auf Blatt 2 des RP6-Schaltplans im Feld B1 finden kann. Beispielhaft sind im folgenden Text Bestell-Nummern der Firma [http://www.conrad.de/ce/ CONRAD] genannt. Natürlich kann man die Teile auch bei anderen Versendern beziehen.&lt;br /&gt;
&lt;br /&gt;
Bei den Materialangaben ist öfter die Rede von &amp;quot;Steckbuchsen mit Litze&amp;quot;. Diese Steckbuchsen mit angelöteter Litze können auf die ein- oder zweireihigen Stiftleisten aufgesteckt werden. Leider gibt es sie nicht (mehr) fertig konfektioniert bei CONRAD. Die einreihigen Steckbuchsen (RM 2,54mm) kann man aber z.B. bei [http://www.elv.de/output/controller.aspx ELV] bekommen: 2-polig (68-016635), 3-polig (68-022503) und 5-polig (68-023073). An sie muss man dann noch Litzen in der entsprechenden Länge selbst anlöten.&lt;br /&gt;
&lt;br /&gt;
===Elko für den IR-Empfänger=== [[Bild:RP6_C29_TSOP.JPG|thumb|RP6 C29 TSOP]]&lt;br /&gt;
Zur Spannungsstabilisierung kann ein Elko (C29; SP2 E1: C29*) am TSOP 34836 eingelötet werden.&lt;br /&gt;
&lt;br /&gt;
Normalerweise ist dieser Elko nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* Einen Elektrolyt-Kondensator stehend 10 uF / 16V (C29); RM 2,5mm (445631)&lt;br /&gt;
&lt;br /&gt;
Der Elko kann auch eine geringere Kapazität als 10 uF haben (1 uF bis 4,7 uF reichen auch). Man lötet den Elko auf seinen Platz. Bitte auf die Polung achten: Der Minuspol zeigt nach vorn (in Fahrtrichtung des RP6).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Anschlüsse===&lt;br /&gt;
Hier wird aufgelistet, wo man auf dem RP6 Mainboard Anschlüsse nutzen kann, um sie z.B. zu weiteren Sensoren, zum USRBUS oder (weniger empfehlenswert!) direkt zu EPs oder Erweiterungsplatinen (M32, CCPRO M128) zu führen.&lt;br /&gt;
&lt;br /&gt;
====Analoge Sensoren an ADC0/1==== [[Bild:RP6_ADC01.JPG|thumb|RP6 ADC0/1]]&lt;br /&gt;
&lt;br /&gt;
Wenn man bis zu zwei analoge Sensoren (z.B. IR-Distanz-Mess-Sensoren Sharp GP2Y0A02YK 185364) direkt an den RP6 anschließen möchte, dann gibt es da zwei 3-polige Kontakte, beschriftet mit VDD/GND/ADCx (x = 0..1). Hier kann man 3-polige Stiftleisten auflöten, an die dann die Sensoren angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 1-reihige Stiftleiste RM 2,54mm (z.B. 36-polig 732478)&lt;br /&gt;
* Zwei Keramik-Vielschicht-Kondensatoren 100nF (C27, C28); RM 2,54mm (453099)&lt;br /&gt;
* ENTWEDER einen Elektrolyt-Kondensator stehend 220 uF / 16V (C26); RM 3,5mm (445903)&lt;br /&gt;
* ODER einen Elektrolyt-Kondensator stehend 470 uF / 16V (C26); RM 3,5mm (446211)&lt;br /&gt;
* Zwei 3-polige Steckbuchsen mit Litze zum Anschluß der Sensoren&lt;br /&gt;
&lt;br /&gt;
Man trennt nun von der 1-reihigen Stiftleiste zweimal 3 Kontakte ab und lötet sie auf die weiß umrahmten Kontakte (VDD/GND/ADCx; SP2 B1: ADC0, ADC1), anschließend C27, C28 (SP2 A1: C27*, C28*) auf ihre Plätze und zum Schluß den Elko 220 uF oder 470 uF (C26; SP2 A1: C26*). Der Elko ist nur bei Sensoren mit hohem Strombedarf notwendig, siehe dazu auch Anleitung des RP6, Seite 136! Beim Elko auf die Polung achten: Er muss so sitzen, dass er mit seinem Pluspol in Fahrtrichtung des RP6 (nach vorn) schaut.&lt;br /&gt;
&lt;br /&gt;
Die Sensoren lötet man an die Litzen der 3-poligen Steckbuchsen und steckt diese auf die neuen Kontakte.&lt;br /&gt;
&lt;br /&gt;
Da manche Sensoren einen höheren Stromverbrauch haben, kann man die Stromversorgung an den VDD-Pins der ADC0/1-Stecker abschaltbar machen oder eine separate +5V-Spannung einspeisen. Siehe dazu den Abschnitt &amp;quot;Trennstellen - Getrennte Stromversorgung für ADC0/1&amp;quot; weiter unten!&lt;br /&gt;
&lt;br /&gt;
====ISP (In System Programming)====&lt;br /&gt;
Der ATMEGA32 des RP6 wird standardmäßig über den PROG/UART Stecker programmiert. Dazu befindet sich im Prozessor ein Bootloader-Programm. Wenn man stattdessen oder zusätzlich die ISP-Programmierung mit einem dafür geeigneten ISP-Programmier-Adapter nutzen will, kann man den Adapter an einen (noch einzulötenden) Wannenstecker auf dem RP6 anschließen.&lt;br /&gt;
Vorher sind aber ein paar &amp;quot;Umbauarbeiten&amp;quot; erforderlich.&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 1-reihige Stiftleiste RM 2,54mm (z.B. 36-polig 732478)&lt;br /&gt;
* Wannenstecker 2x5-polig gerade RM 2,54mm (z.B. [http://www.reichelt.de./ Reichelt] WSL 10G)&lt;br /&gt;
* Eine SMD-Diode LL 4148 (140902)&lt;br /&gt;
* Eine Codierbrücke (z.B. aus Set 742902)&lt;br /&gt;
&lt;br /&gt;
Zwischen dem XBUS-Stecker und C13 befinden sich 10 Lötpunkte für den ISP-Anschluß, auf die der Wannenstecker gelötet wird, und drei Lötpunkte (beschriftet mit ISP* - BOOTLOAD; SP2 A3: YR1..3), auf die eine 3-polige Stiftleiste gelötet werden muss.&lt;br /&gt;
&lt;br /&gt;
[[Bild:RP6_ISP.JPG|RP6 ISP]]&lt;br /&gt;
&lt;br /&gt;
Vorher muss eine kurze Leiterbahn zwischen den Lötpunkten BOOTLOAD aufgetrennt werden. Die Leiterbahn befindet sich auf der Lötseite der Platine und muss mit einem scharfen Messer oder einem speziellen Leiterbahn-Unterbrecher zwischen den beiden Lötpunkten unterbrochen werden. Man sollte anschließend mit einem Widerstandsmeßgerät nachmessen: Es sollte keine Verbindung mehr zwischen den Lötpunkten bestehen.&lt;br /&gt;
Man trennt dann von der 1-reihigen Stiftleiste 3 Kontakte ab und lötet sie auf die beschriebenen drei Lötpunkte.&lt;br /&gt;
&lt;br /&gt;
Zum Schluss lötet man noch die Diode LL 4148 (SP2 B3: D11*) auf ihre Lötflächen zwischen R3 und C6. Die Kathode (Strich) der Diode kommt nach vorn (in Fahrtrichtung RP6, bzw. liegt rechts von R3). Wenn man jetzt eine Codierbrücke auf die mit &amp;quot;BOOTLOAD&amp;quot; beschrifteten Pins steckt, bleibt alles unverändert: Die Programmierung erfolgt weiter über den PROG/UART-Stecker mithilfe des Bootloaders im Prozessor.&lt;br /&gt;
Wird die Codierbrücke in Stellung &amp;quot;ISP*&amp;quot; umgesteckt, kann der Prozessor mit ISP programmiert werden.&lt;br /&gt;
&lt;br /&gt;
Vorsicht: Das Bootloader-Programm kann dabei zerstört werden! Es müssen zusätzlich Fusebits des ATMEGA32 verändert werden. Dabei kann der Prozessor im schlimmsten Fall nicht mehr ansprechbar sein. Man sollte diesen Umbau und die ISP-Programmierung nur machen, wenn man genau weiß, was man macht!&lt;br /&gt;
&lt;br /&gt;
Eine Kopie des Bootloaders und eine Kurzanleitung zum Einstellen der Fusebits gibt es hier:&lt;br /&gt;
[http://www.arexx.com/rp6/downloads/RP6BASE_BOOTLOADER.zip RP6_BOOTLOADER]&lt;br /&gt;
&lt;br /&gt;
====IO1..IO4==== [[Bild:RP6_IO1-4.JPG|thumb|RP6 IO1..IO4]]&lt;br /&gt;
Die Anschlüsse IO1 bis IO4 (SP2 E3: IO1..4) steuern bereits die Status-LEDs 1, 2, 4 und 5 an. Trotzdem kann man sie auch noch mit leichten Einschränkungen als I/O-Pins benutzen. Dazu lötet man zweimal 2 Pins einer 1-reihigen Stiftleiste RM 2,54mm (z.B. 36-polig 732478) auf die IO1/2 und IO3/4 Lötpunkte.&lt;br /&gt;
Hier eine Tabelle, die die Port-Pins zeigt, die IO1..IO4 zugeordnet sind:&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |IO&lt;br /&gt;
 |Status-LED&lt;br /&gt;
 |Port-Pin&lt;br /&gt;
 |-&lt;br /&gt;
 |1&lt;br /&gt;
 |SL1&lt;br /&gt;
 |PC4&lt;br /&gt;
 |-&lt;br /&gt;
 |2&lt;br /&gt;
 |SL2&lt;br /&gt;
 |PC5&lt;br /&gt;
 |-&lt;br /&gt;
 |3&lt;br /&gt;
 |SL4&lt;br /&gt;
 |PB7&lt;br /&gt;
 |-&lt;br /&gt;
 |4&lt;br /&gt;
 |SL5&lt;br /&gt;
 |PB1&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
Wie können nun IO1..IO4 genutzt werden?&lt;br /&gt;
&lt;br /&gt;
Als ...&lt;br /&gt;
* Eingang, z.B. für zusätzliche Tastschalter/Bumper&lt;br /&gt;
* Ausgang, z.B. zur Ansteuerung von Treiberstufen, low-current LEDs, ...&lt;br /&gt;
&lt;br /&gt;
Wird ein Anschluß IOx als Eingang verwendet, muss ein Widerstand von 470 Ohm in Reihe mit dem Taster an VDD eingebaut werden, zusätzlich ein Pulldown-Widerstand 100 kOhm. Diese Beschaltung zeigen z.B. an SL6 die Widerstände R43 und R46 (SP2 E4: R43, R46).&lt;br /&gt;
&lt;br /&gt;
Als Ausgang geschaltet sollte an IOx kein hoher Strom entnommen werden: 10mA sind max. zu empfehlen!&lt;br /&gt;
&lt;br /&gt;
====USRBUS====&lt;br /&gt;
Die 14 Kontakte der beiden USRBUS-Stecker sind auf dem RP6 nirgendwo angeschlossen, sondern können über die Lötpunkte Y1..Y14 mit beliebigen Punkten auf dem Mainboard verbunden werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:RP6_USRBUS.JPG|thumb|RP6 USRBUS]]&lt;br /&gt;
&lt;br /&gt;
Ich würde auf Y1..Y14 eine Stiftleiste löten, damit die USRBUS-Belegung geändert werden kann.&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 2-reihige Stiftleiste RM 2,54mm (z.B. 2x36-polig 742007)&lt;br /&gt;
* Einige Steckbuchsen mit Litze&lt;br /&gt;
&lt;br /&gt;
Man trennt von der 2-reihigen Stiftleiste 2x7 Kontakte ab und lötet sie auf die Punkte Y1..Y14 (SP4 E34: Y1..14, Y1'..Y14') neben den beiden Wannensteckern USRBUS1 (vorn) und USRBUS2 (hinten). Wird der RP6 über Flachkabel mit einem USRBUS-Stecker auf einer RP6 Experimentierplatine (EP) und/oder mit einer Erweiterungsplatine (M32, CCPRO M128) verbunden, dann hat man mit allen mit dem USRBUS verbundenen Platinen eine direkte 14-polige Verbindung,- eben den &amp;quot;User Bus&amp;quot;. Den kann man dann nutzen, wie man will. Auf dem RP6 kann man mit Steckbuchsen die Pins Y1..Y14 mit anderen Pins verbinden.&lt;br /&gt;
&lt;br /&gt;
Beispiel: Verbindet man den Pin &amp;quot;ADC0&amp;quot; mit Y1 des USRBUS1, dann steht der Eingang ADC0 auf allen an den USRBUS1 angeschlossenen Platinen auf dem vorderen Platinenstapel an Y1 zur Verfügung. Man braucht also diesen Eingang nicht über ein eigenes Kabel auf eine EP zu führen, sondern kann dazu den USRBUS nehmen. Dadurch bleibt der Gesamtaufbau auf dem RP6 übersichtlich und komplett trennbar (man braucht nur die Stecker XBUS und USRBUS abzuziehen!).&lt;br /&gt;
&lt;br /&gt;
Wichtig:&lt;br /&gt;
* Man sollte gut dokumentieren, wie man den USRBUS am RP6 (vorn und hinten getrennt!), auf EPs und der M32/M128 benutzt! Sonst kann es bei einer anderen Anordnung von EPs zu USRBUS Konflikten/Kurzschlüssen kommen.&lt;br /&gt;
* Der USRBUS1- und der USRBUS2-Stecker sind auf dem RP6 NICHT miteinander verbunden.&lt;br /&gt;
&lt;br /&gt;
Einen Vorschlag für die Belegung des USRBUS1 (vorn) gibt es z.B. &lt;br /&gt;
[http://www.roboternetz.de/phpBB2/viewtopic.php?t=32549 hier] oder &lt;br /&gt;
[http://www.roboternetz.de/community/showthread.php/47102-Sensor-anschließen?p=453061&amp;amp;viewfull=1#post453061 da.]&lt;br /&gt;
&lt;br /&gt;
====Start/Stop Button==== [[Bild:RP6_ST.JPG|thumb|RP6 ST]]&lt;br /&gt;
Am mittleren Lochrasterfeld links finden sich zwei Lötpunkte ST1, ST2 (SP2 D2: ST1, ST2), an die weitere Start/Stop Taster (NO, normal offen) parallel zum Taster auf dem RP6 Mainboard angeschlossen werden können.&lt;br /&gt;
&lt;br /&gt;
Zum Anschluß kann man auch Stiftleisten auflöten. ST1, ST2 könnte man auch mit dem USRBUS1 verbinden, wenn man den RP6 z.B. von einer EP aus zurücksetzen möchte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Serielle Schnittstelle==== [[Bild:RP6_RST.JPG|thumb|RP6 RST]]&lt;br /&gt;
Neben dem USRBUS1 Stecker befinden sich 5 Lötpunkte mit den Signalen RST, TX, RX, GND, VDD (SP4 AB5: YRX, YTX, YMRESET, YVDD). Hier kann z.B. eine 5-polige Stiftleiste aufgelötet werden, um einen Anschluß an die serielle Schnittstelle zu ermöglichen.&lt;br /&gt;
&lt;br /&gt;
Von diesen 5 Lötpunkten könnte z.B. auch [http://www.roboternetz.de/phpBB2/viewtopic.php?t=32549 so] eine Verbindung zum benachbarten USRBUS1 hergestellt werden, um die serielle Schnittstelle des RP6 auf EPs zu führen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====I2C-Schnittstelle==== [[Bild:RP6_I2C.JPG|thumb|RP6 I2C]]&lt;br /&gt;
Neben dem XBUS2 Stecker finden sich 5 Lötpunkte mit den Signalen der I2C-Schnittstelle (SP4 D12: Stecker I2C). Dies sind: VDD (Pin 1), GND, SDA, SCL, INT1 (Pin 5). Hier kann z.B. eine 5-polige Stiftleiste aufgelötet werden, um einen Anschluß an die I2C-Schnittstelle zu ermöglichen.&lt;br /&gt;
&lt;br /&gt;
Von diesen 5 Lötpunkten könnte z.B. auch eine Verbindung zum USRBUS1 oder USRBUS2 hergestellt werden, um die I2C-Schnittstelle des RP6 auf EPs zu führen, allerdings hat man SCL, SDA, INT1 ja auch schon am XBUS zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Interrupt-Leitungen==== [[Bild:RP6_INTx.JPG|thumb|RP6 INTx]]&lt;br /&gt;
Die Interrupt-Leitungen INTU, INT1..3, MRESET (SP4 D34: MRESET, INT1..3, INTU) sind an 5 Lötpunkten neben dem XBUS1 Stecker zu kontaktieren. Hier kann natürlich auch eine 5-polige Stiftleiste aufgelötet werden. In der Regel wird man diese Anschlüsse nicht brauchen, weil sie schon auf dem XBUS zur Verfügung stehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====VDD/GND/+UB Anschluß==== [[Bild:RP6_VDDGNDUB.JPG|thumb|RP6 VDD GND +UB]]&lt;br /&gt;
In der Nähe von C4 im hinteren Bereich des Mainboards finden sich Lötpunkte (SP4 E12: YVDDx, YGNDx; SP4 D2 YUBx), an denen man VDD, GND und +UB finden kann.&lt;br /&gt;
&lt;br /&gt;
Wenn man höhere Ströme an VDD (z.B. für Servos) oder +UB (z.B. für einen anderen IRCOMM-Sender oder einen DC-Motor) entnehmen möchte, empfehlen sich diese Lötpunkte, auf die man auch Stiftleisten löten kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====EXT Anschluß==== [[Bild:RP6_EXT.jpg|thumb|RP6 EXT Anschluß]]&lt;br /&gt;
Am hinteren Rand der RP6 Hauptplatine gibt es eine Reihe von 8 Lötpunkten. Dies ist der EXT Anschluß (SP1 C23: Stecker EXT):&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |Pin&lt;br /&gt;
 |Name&lt;br /&gt;
 |Beschreibung&lt;br /&gt;
 |-&lt;br /&gt;
 |1&lt;br /&gt;
 |GND&lt;br /&gt;
 |RP6 und Akku Minuspol (GND)&lt;br /&gt;
 |-&lt;br /&gt;
 |2&lt;br /&gt;
 |CHRG&lt;br /&gt;
 |Anschluß (+) für ext. Ladegerät, identisch mit Pluspol der Ladebuchse (CHARGER, Pin 1). Ladung nur möglich, wenn S1 AUS ist!&lt;br /&gt;
 |-&lt;br /&gt;
 |3&lt;br /&gt;
 |CHRG&lt;br /&gt;
 |wie Pin 2!&lt;br /&gt;
 |-&lt;br /&gt;
 |4&lt;br /&gt;
 | +BAT&lt;br /&gt;
 |Akku Pluspol über Sicherung F1&lt;br /&gt;
 |-&lt;br /&gt;
 |5&lt;br /&gt;
 | +BAT&lt;br /&gt;
 |wie Pin 4!&lt;br /&gt;
 |-&lt;br /&gt;
 |6&lt;br /&gt;
 | +UB&lt;br /&gt;
 |RP6 +UB (+7,2V=, Bereich min. +5,5 bis max. +10V=)&lt;br /&gt;
 |-&lt;br /&gt;
 |7&lt;br /&gt;
 | +UB&lt;br /&gt;
 |wie Pin 6!&lt;br /&gt;
 |-&lt;br /&gt;
 |8&lt;br /&gt;
 |GND&lt;br /&gt;
 |wie Pin 1!&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
Man kann hier eine 1-reihige Stiftleiste RM 2,54mm (z.B. 36-polig 732478), von der man 8 Pins abtrennt, auflöten.&lt;br /&gt;
&lt;br /&gt;
Wozu kann man diesen Anschluß nutzen?&lt;br /&gt;
&lt;br /&gt;
Der wesentliche Sinn des EXT Anschlusses besteht darin, andere Arten der Stromversorgung und der Akkuladung zu ermöglichen. Normalerweise schaltet man den RP6 mit S1 an und aus. In Stellung AUS kann der Akku geladen werden, indem man ein Ladegerät an die CHARGER Buchse anschließt. Alternativ kann man das Ladegerät mit seinem Pluspol auch an CHRG (Pins 2, 3) anschließen. Siehe auch den Abschnitt &amp;quot;Trennstellen - EXT Anschluß: Andere Stromversorgung&amp;quot; weiter unten!&lt;br /&gt;
&lt;br /&gt;
An +BAT (Pins 4, 5) kann man direkt (ohne Unterbrechung durch S1) Strom aus dem Akku entnehmen. Die Grenze des Stroms bestimmt die Sicherung F1 (2,5A). Eine weitere Möglichkeit besteht darin, über diesen Anschluß den Akku auch mit einem geeigneten Ladegerät zu LADEN. Hierbei muss man aber darauf achten, dass S1 AUSgeschaltet ist, weil sonst der RP6 über +UB eine unzulässig hohe Spannung bekommen könnte. Wenn man den Akku mit 6 Mignonzellen im RP6 nicht nutzen will (der Akku-Halter bleibt leer!), sondern nur einen externen Akku, wäre der auch mit seinem Pluspol an +BAT über eine eigene Sicherung (2,5A träge) anzuschließen.&lt;br /&gt;
&lt;br /&gt;
+UB (+7,2V) ist die Versorgungsspannung des RP6 (kommt vom Akku-Pluspol über die Sicherung F1 und Schalter S1!). Mit +UB werden die H-Brücken (Motoransteuerung) direkt und die RP6 &amp;quot;Elektronik&amp;quot; über den 5V-Spannungswandler (IC1; SP1 D3: IC1) versorgt (= VDD). An +UB könnte man den RP6 direkt mit einer Spannung von +7,2V versorgen (Absicherung nicht vergessen!), dazu muss S1 AUSgeschaltet sein, damit es keine Konflikte mit dem eingebauten Akku gibt.&lt;br /&gt;
&lt;br /&gt;
Den EXT Anschluß kann man damit nutzen für:&lt;br /&gt;
* Externes Ladegerät&lt;br /&gt;
* Externen Akku&lt;br /&gt;
* Externe Stromversorgung ohne Akku&lt;br /&gt;
* Direkte Stromentnahme aus dem Akku&lt;br /&gt;
* Ergänzungsladung mit Solarzelle&lt;br /&gt;
* Autonome Akkuladung (Ladestation mit Kontakten, Induktionsladung ...)&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
Man sollte gewisse Elektronik-Kenntnisse haben, wenn man die Spannungsversorgung des RP6 verändert. VOR irgendwelchen Veränderungen seht euch auch zuerst den Schaltplan des RP6 (SP1) genau an!&lt;br /&gt;
&lt;br /&gt;
===Mess-/Kontaktpunkte===&lt;br /&gt;
Hier geht es um Kontaktpunkte, an denen man z.B. den Logik-Pegel (High/Low) oder eine analoge Spannung messen kann. Natürlich kann man die Signale auch zur Weiterleitung auf eine EP kontaktieren, dies wird man aber normalerweise nicht brauchen.&lt;br /&gt;
&lt;br /&gt;
====UBAT==== [[Bild:RP6_UBAT.JPG|thumb|RP6 UBAT]]&lt;br /&gt;
In der Mitte des Mainboards befindet sich ein Kontaktpunkt UBAT (SP1 E1: YUBAT). Dies ist ADC7 des RP6 Microcontrollers.&lt;br /&gt;
&lt;br /&gt;
Man kann hier die analoge Spannung (gegen GND) messen, die vom +UB-Spannungssensor geliefert wird.&lt;br /&gt;
&lt;br /&gt;
Die Spannung ist:&lt;br /&gt;
 UBAT = +UB / 2&lt;br /&gt;
Da der Spannungsteiler (SP1 D12: R1, R2) des +UB-Spannungssensors nicht aus Präzisionswiderständen besteht, kann man für den eigenen RP6 einen Korrekturfaktor berechnen, wenn UBAT deutlich von +UB / 2 (+ UB z.B. gemessen am EXT Stecker, Pins 6 u. 7) abweicht. Damit kann man +UB sehr viel genauer bestimmen.&lt;br /&gt;
&lt;br /&gt;
====ACS==== [[Bild:RP6_ACS_TSOP.JPG|thumb|RP6 ACS TSOP]]&lt;br /&gt;
Hinter dem TSOP (IC3) befindet sich der Kontaktpunkt ACS (SP2 E1: ACS).&lt;br /&gt;
&lt;br /&gt;
Dies ist der Ausgang des TSOP bzw. Eingang PB2 des RP6 Microcontrollers. Man kann hier das Ausgangssignal des IR-Empfängers abnehmen, z.B. um es mit einem Oszilloskop sichtbar zu machen.&lt;br /&gt;
&lt;br /&gt;
Rechts neben dem TSOP kann man noch die 3 Kontaktpunkte ACS_R, ACS_P und ACS_L (SP2 E2: ACS_P, ACS_R, ACS_L) des ACS-IR-Senders finden.&lt;br /&gt;
&lt;br /&gt;
Folgende Tabelle zeigt die Verbindungen:&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |Kontakt&lt;br /&gt;
 |Microcontroller-Portpin&lt;br /&gt;
 |SP-Verbindung&lt;br /&gt;
 |ACS-IR-Sendediode&lt;br /&gt;
 |-&lt;br /&gt;
 |ACS_P&lt;br /&gt;
 |über R8: ACS_PWRH (PB3), über R9: ACS_PWR (PD6)&lt;br /&gt;
 |SP2: 3&lt;br /&gt;
 |Anoden D1, D2&lt;br /&gt;
 |-&lt;br /&gt;
 |ACS_R&lt;br /&gt;
 |ACS_R (PC7)&lt;br /&gt;
 |SP2: 2&lt;br /&gt;
 |Kathode D1&lt;br /&gt;
 |-&lt;br /&gt;
 |ACS_L&lt;br /&gt;
 |ACS_L/MISO (PB6)&lt;br /&gt;
 |SP1: 5&lt;br /&gt;
 |Kathode D2&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====IRC==== [[Bild:RP6_IRC.JPG|thumb|RP6 IRC]] [[Bild:RP6_IRC3.JPG|thumb|RP6 IRC3]]&lt;br /&gt;
Im der Nähe von C13 befinden sich die Lötpunkte IRC, IRC+, IRC- und IRC3 (SP2 D2: YIRC; SP2 CD2: IRC+/-; SP2 C2: IRC3). Zusammen mit der Trennstelle IRC (siehe Abschnitt &amp;quot;Trennstellen - IRC&amp;quot; weiter unten!) kann man diese Kontaktstellen im Umfeld des IRCOMM-Sendedioden Treibers IRLML2502PBF (SP2 CD12: Q5) finden. Am Kontaktpunkt IRC findet sich der Eingang des Treibers bzw. Ausgang PD7 des RP6 Microcontrollers. IRC+, IRC- sind die Kontaktpunkte, an denen die IRCOMM-Sendedioden D3, D4 in Reihe auf der Sensorplatine angeschlossen sind (IRC+ = Anode). IRC3 ist verbunden mit dem Trennstellen-Lötpunkt IRC1 und liegt bei geschlossener Trennstelle IRC an +UB.&lt;br /&gt;
&lt;br /&gt;
Was läßt sich mit diesen Kontaktpunkten machen:&lt;br /&gt;
* Der IRCOMM-Sender ist der zweitgrößte Stromverbraucher des RP6 (nach dem Antrieb). An IRC3 kann daher eine eigene Stromversorgung für die IRCOMM-Sendedioden angeschlossen werden. Dazu muss die Trennstelle IRC zwischen ihren Lötpunkten IRC1, IRC2 aufgetrennt werden.&lt;br /&gt;
* An IRC+, IRC- könnten andere/weitere IRCOMM-Sendedioden angeschlossen werden (Anode an IRC+). Wenn der Vorwiderstand R6 (SP2 C2: R6) der Sendedioden dann nicht mehr paßt (bezügl. Leistung und/oder Widerstandswert), können neue leistungsfähigere IRCOMM-Sendedioden zwischen IRC3 und IRC- (Anode an IRC3) mit einem dafür geeigneten Vorwiderstand angebracht werden.&lt;br /&gt;
&lt;br /&gt;
====LS==== [[Bild:RP6_LS.JPG|thumb|RP6 LS]]&lt;br /&gt;
Die beiden Lötpunkte LS_L und LS_R (SP2 B12: LS_L, LS_R) neben R7 vorn auf dem Mainboard sind die Ausgänge der Helligkeitssensoren (links und rechts) bzw. die ADC-Eingänge ADC3 und ADC2 des RP6 Microcontrollers.&lt;br /&gt;
&lt;br /&gt;
Hier kann man die Spannungen messen, die den Helligkeitswerten entsprechen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====BP, S==== [[Bild:RP6_BP_S.JPG|thumb|RP6 BP S]]&lt;br /&gt;
Die Messpunkte BPL, BPR und der Kontaktpunkt S (SP2 E2: S; SP2 E3: BPR; SP2 E4: BPL) befinden sich am vorderen Platinenrand. BPL und BPR sind die Kontakte der Bumper. S ist eine nicht genutzte Verbindung zwischen dem Mainboard und der Sensorplatine, die über die Verbindung SP1, Pin 3, geführt wird (siehe folgende Tabelle!).&lt;br /&gt;
&lt;br /&gt;
Hier eine Tabelle mit der Belegung der 90°-Winkelverbindung SP1, SP2 zwischen dem RP6 Mainboard und der Sensorplatine: &lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |Pin&lt;br /&gt;
 |SP1&lt;br /&gt;
 |SP2&lt;br /&gt;
 |-&lt;br /&gt;
 |1&lt;br /&gt;
 |LS_L  --- Light Sensor Left&lt;br /&gt;
 |IRC-  --- IRCOMM-&lt;br /&gt;
 |-&lt;br /&gt;
 |2&lt;br /&gt;
 |BPL   --- Bumper Left&lt;br /&gt;
 |ACS_R --- ACS Right&lt;br /&gt;
 |-&lt;br /&gt;
 |3&lt;br /&gt;
 |S     --- Free for all&lt;br /&gt;
 |ACS_P --- ACS Power&lt;br /&gt;
 |-&lt;br /&gt;
 |4&lt;br /&gt;
 |GND&lt;br /&gt;
 |VDD&lt;br /&gt;
 |-&lt;br /&gt;
 |5&lt;br /&gt;
 |ACS_L --- ACS Left&lt;br /&gt;
 |BPR   --- Bumper Right&lt;br /&gt;
 |-&lt;br /&gt;
 |6&lt;br /&gt;
 |IRC+  --- IRCOMM+&lt;br /&gt;
 |LS_R  --- Light Sensor Right&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====ENC==== [[Bild:RP6_ENC.JPG|thumb|RP6 ENC]]&lt;br /&gt;
Die beiden Messpunkte ENCL, ENCR (SP4 B12: ENCL, ENCR) sind die Ausgänge der Radencoder. ENCL ist verbunden mit PD2 (INT0), ENCR mit PD3 (INT1) des RP6 Microcontrollers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Trennstellen===&lt;br /&gt;
An diesen Stellen können Leiterbahnen unterbrochen werden, um Funktionen zu deaktivieren oder anders zu nutzen.&lt;br /&gt;
&lt;br /&gt;
=====Getrennte Stromversorgung für ADC0/1=====&lt;br /&gt;
Wenn man für die analogen Sensoren an ADC0/1 (siehe Abschnitt &amp;quot;Anschlüsse - Analoge Sensoren an ADC0/1&amp;quot; weiter oben!) eine GETRENNTE Stromversorgung vorsehen will und/oder mit Codierbrücke (oder MOSFET) die Stromversorgung abschaltbar machen möchte, muss man erst Vorarbeit leisten.&lt;br /&gt;
[[Bild:RP6_SV.JPG|thumb|RP6 SV]]&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 1-reihige Stiftleiste RM 2,54mm (z.B. 36-polig 732478)&lt;br /&gt;
* Evtl.: Eine Codierbrücke (z.B. aus Set 742902)&lt;br /&gt;
* Evtl.: Eine 1-polige Steckbuchse mit Litze zur ext. Stromversorgung&lt;br /&gt;
Es muss eine kurze Leiterbahn zwischen den Punkten &amp;quot;SV1&amp;quot; und &amp;quot;SV2&amp;quot; (SP2 A1: SV1, SV2; zwischen dem PROG/UART- und dem USRBUS1-Stecker) aufgetrennt werden. Die Leiterbahn befindet sich auf der Lötseite der Platine und muss mit einem scharfen Messer oder einem speziellen Leiterbahn-Unterbrecher zwischen den beiden Lötpunkten unterbrochen werden. Man sollte anschließend mit einem Widerstandsmeßgerät zwischen SV1 und SV2 nachmessen: Es sollte keine Verbindung mehr bestehen. Jetzt trennt man von der 1-reihigen Stiftleiste 2 Kontakte ab und lötet sie auf die Punkte SV1/SV2.&lt;br /&gt;
&lt;br /&gt;
Man kann hier zunächst eine Codierbrücke aufstecken. Damit versorgt der RP6 Akku die Sensoren mit 5V an den Pins VDD. Möchte man später eine getrennte 5V-Spannung anlegen, zieht man einfach die Codierbrücke ab und speist die externe 5V-Spannung (mit einer 1-poligen Steckbuchse) am Pin SV2 ein. Achtung: An Pin SV1 wird dann nichts angeschlossen!&lt;br /&gt;
&lt;br /&gt;
Anstelle der Codierbrücke kann man natürlich auch einen MOSFET anschließen, um die Sensoren per Software abschalten zu können.&lt;br /&gt;
&lt;br /&gt;
====ACS==== [[Bild:RP6_ACS_JP.JPG|thumb|RP6 ACS JP]]&lt;br /&gt;
Die Trennstelle ACS (SP2 E1: YIR1, YIR2; SP2 F1: YIR3) befindet sich neben C29*. Sie besteht aus 3 Lötpunkten, von denen die linken beiden (IRC1, IRC2) verbunden sind. Trennt man die Leiterbahn zwischen diesen Lötpunkten auf und verbindet stattdessen die rechten beiden Lötpunkte (IRC2, IRC3) mit etwas Lötzinn oder mit einem SMD Null Ohm Widerstand, dann ist der IR-Empfänger (TSOP, IC3) dauerhaft EINgeschaltet und kann nicht mehr über das Signal PWRON (PB4) geschaltet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====IRC==== [[Bild:RP6_IRC_JP.JPG|thumb|RP6 IRC JP]]&lt;br /&gt;
Die Trennstelle IRC (SP2 C1: IRC1..2) ist eng verknüpft mit den Mess- und Kontaktpunkten des IRCOMM-Senders (siehe Abschnitt &amp;quot;Mess-/Kontaktpunkte - IRC&amp;quot; weiter oben!). Wenn man sie auftrennt, kann man den IRCOMM-Sender mit einer getrennten Stromversorgung anstelle von +UB des RP6 versehen. Dies ist sehr sinnvoll, wenn man diese Funktion häufig verwendet oder sogar noch leistungsfähigere IR-Sendedioden einbaut, denn der IRCOMM-Sender ist der zweitgrößte Stromfresser (nach dem Antrieb) auf dem RP6 (von Erweiterungsplatinen und EPs Marke Eigenbau einmal abgesehen!). Man kann hier natürlich auch eine 2-polige Stiftleiste einlöten, um die Verbindung zu +UB mit einer Codierbrücke trennbar zu machen. Eine getrennte Stromversorgung +7,2V (Bereich: +5,5 .. +10V) kann man an IRC1 einspeisen. IRC1 dieser Trennstelle ist mit dem Kontaktpunkt IRC3 (siehe Abschnitt &amp;quot;Mess-/Kontaktpunkte - IRC&amp;quot; weiter oben!) verbunden. &lt;br /&gt;
&lt;br /&gt;
====RP6 Antrieb====&lt;br /&gt;
Mit den folgenden Trennstellen kann man den RP6 Antrieb (H-Brücken und Motoren) fast komplett vom Rest des RP6 Mainboards abtrennen (es bleibt nur die 5V-Versorgung (VDD) von IC4, T1, T2 bestehen!). Damit ist es möglich, mit dem RP6 Mainboard einen ganz anderen Antrieb (also z.B. ein anderes Roboter-Chassis mit eigenen Motoren und H-Brücken) zu steuern. Umgekehrt könnte man den RP6 Antrieb auch deshalb abtrennen, um ihn durch ein anderes Prozessorsystem (z.B. auch eine M32!) anzusteuern. It's up to you!&lt;br /&gt;
&lt;br /&gt;
=====+UB Power===== [[Bild:RP6_HB_Power.jpg|thumb|RP6 HB Power]]&lt;br /&gt;
Der RP6 Antrieb wird direkt aus dem Akku (über S1 und F1) mit 7,2V (+UB) versorgt. Diese Stromversorgung kann man komplett abtrennen. Die Trennstelle (SP3 E34: X) liegt unter der Sicherung F1 (siehe Abb. RP6 HB Power). Zwischen den beiden doppelten Lötflächen befinden sich auf der Lötseite (Unterseite) des Mainboards vier parallele Leiterbahnen, die aufgetrennt werden müssen. Der Pluspol einer externen Spannung zur Versorgung des RP6 Antriebs kann dann mit einer Kabelverbindung an den doppelten Lötflächen (mit einem &amp;quot;+&amp;quot; gekennzeichnet) direkt neben dem Leistungswiderstand (R27) angeschlossen werden. Eine Absicherung dieser Stromversorgung sollte man unbedingt vorsehen (2,5A träge)!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Stromsensoren===== [[Bild:RP6_CS.JPG|thumb|RP6 CS]]&lt;br /&gt;
Um den Motorstrom der beiden Motoren des RP6 zu messen, wird ein Dual-Operationsverstärker (IC5 = 27M2C; SP3 B23/D23: IC5B/A) eingesetzt. Dieses IC wird über PWRON (PB4) mit Strom versorgt. Die Stromsensoren funktionieren also nicht, wenn PWRON Low-Pegel führt (Befehl powerOFF() der RP6 Library!). Auf dem RP6 Mainboard gibt es eine Trennstelle mit drei Lötflächen (SP3 E34: CS1, CS2, CS3). Sie befindet sich auf dem Mainboard neben C23. Möchte man IC5 nicht mehr über PWRON mit Strom versorgen, sondern über VDD (+5V), dann trennt man die Leiterbahn zwischen den linken beiden Lötpunkten (CS1, CS2) auf und verbindet die rechten beiden Lötpunkte (CS2, CS3) mit etwas Lötzinn oder einem SMD Null Ohm Widerstand. Danach sind die Stromsensoren immer eingeschaltet und können über PWRON nicht mehr geschaltet werden. Alternativ kann man an CS2 auch eine externe Versorgungsspannung (+5V) für IC5 einspeisen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====DR/MR/ML/DL===== [[Bild:RP6_DR_MR_ML_DL.JPG|thumb|RP6 DR MR ML DL]]&lt;br /&gt;
An diesen Trennstellen können die Eingänge der H-Brücke für die Geschwindigkeit (PWM) und Drehrichtung der Motoren von den Portpins des Microcontrollers abgetrennt werden.&lt;br /&gt;
Für den rechten Motor sind dies die Trennstellen MR1/2 und DR1/2 (SP3 A23: MR1/2, DR1/2), für den linken Motor ML1/2 und DL1/2 (SP3 F23: ML1/2, DL1/2).&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |Trennstelle&lt;br /&gt;
 |Portpin&lt;br /&gt;
 |Funktion H-Brücke&lt;br /&gt;
 |-&lt;br /&gt;
 |MR1/2&lt;br /&gt;
 |PD5 (OC1A)&lt;br /&gt;
 |PWM Motor rechts&lt;br /&gt;
 |-&lt;br /&gt;
 |DR1/2&lt;br /&gt;
 |PC3 (TMS)&lt;br /&gt;
 |Fahrtrichtung rechts&lt;br /&gt;
 |-&lt;br /&gt;
 |ML1/2&lt;br /&gt;
 |PD4 (OC1B)&lt;br /&gt;
 |PWM Motor links&lt;br /&gt;
 |-&lt;br /&gt;
 |DL1/2&lt;br /&gt;
 |PC2 (TCK)&lt;br /&gt;
 |Fahrtrichtung links&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
Trennt man die Leiterbahn (auf der Lötseite des RP6 Mainboards) zwischen den Lötpunkten der Trennstellen auf, kann man die Eingänge der H-Brücke (Mx1, Dx1) z.B. mit einem anderen Microcontroller verbinden. Die Ausgänge (Portpins) des RP6 Microcontrollers (Mx2, Dx2) können dann anders genutzt werden. Natürlich kann man auf die Lötpunkte dieser Trennstellen auch Stiftleisten löten, um den Anschluß steckbar zu machen.&lt;br /&gt;
&lt;br /&gt;
=====MCR/MCL===== [[Bild:RP6_MCR_MCL.JPG|thumb|RP6 MCR MCL]]&lt;br /&gt;
An diesen Trennstellen können die Motorstromsensoren von den ADC-Eingängen des Microcontrollers abgetrennt werden.&lt;br /&gt;
&lt;br /&gt;
Für den rechten Sensor ist dies die Trennstelle MCR1/2 (SP3 A1: MCR1, MCR2), für den linken Sensor MCL1/2 (SP3 E1: MCL1, MCL2).&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |Trennstelle&lt;br /&gt;
 |Portpin&lt;br /&gt;
 |Funktion H-Brücke&lt;br /&gt;
 |-&lt;br /&gt;
 |MCR1/2&lt;br /&gt;
 |PA5 (ADC5)&lt;br /&gt;
 |Motorstrom rechts&lt;br /&gt;
 |-&lt;br /&gt;
 |MCL1/2&lt;br /&gt;
 |PA6 (ADC6)&lt;br /&gt;
 |Motorstrom links&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
Trennt man die Leiterbahn (auf der Lötseite des RP6 Mainboards) zwischen den Lötpunkten der Trennstellen auf, kann man die ADC-Eingänge (Portpins) des RP6 Microcontrollers (MCx1) anders nutzen und die Ausgänge der Motorstromsensoren (MCx2) z.B. mit ADC-Eingängen eines anderen Microcontrollers verbinden. Natürlich kann man auf die Lötpunkte dieser Trennstellen auch Stiftleisten löten, um den Anschluß steckbar zu machen.&lt;br /&gt;
&lt;br /&gt;
====PWRON-LED==== [[Bild:RP6_PWRON_L.JPG|thumb|RP6 PWRON L]]&lt;br /&gt;
Auf dem RP6 Mainboard gibt es eine gelbe LED, die anzeigt, ob PWRON High-Pegel hat. Mit einer Trennstelle neben dieser LED (SP2 D4: YL1, YL2) kann diese LED deaktiviert werden (z.B. um Strom zu sparen).&lt;br /&gt;
&lt;br /&gt;
Dazu trennt man die Leiterbahn zwischen den Lötpunkten auf. Soll die LED wieder aktiviert werden, verbindet man die Lötpunkte wieder mit etwas Lötzinn oder einem SMD Null Ohm Widerstand.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====+UB Sensor==== [[Bild:RP6_UB.JPG|thumb|RP6 UB]]&lt;br /&gt;
Die Versorgungsspannung +UB des RP6 wird mit dem +UB-Spannungssensor an PA7 (ADC7) gemessen. Will man diesen Spannungssensor mit seinem Eingangsspannungsteiler R1, R2 (SP1 D12: R1, R2) von +UB abtrennen (z.B. um ihn anders zu verwenden), gibt es eine Trennstelle UB1/2 (SP1 D2: UB1, UB2). Trennt man die Leiterbahn auf der Lötseite des RP6 Mainboards zwischen den Lötpunkten auf, kann +UB nicht mehr gemessen werden. Man kann dann den Lötpunkt UB2 mit einem anderen Messpunkt (z.B. mit +BAT) verbinden und dort die Spannung (0..10V) messen. Natürlich kann man auf die Lötpunkte dieser Trennstellen auch Stiftleisten löten, um den Anschluß steckbar zu machen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====EXT Anschluß: Andere Stromversorgung==== [[Bild:RP6_S1_CHRG.jpg|thumb|RP6 S1 CHRG]]&lt;br /&gt;
Wenn man für den RP6 eine andere Stromversorgung oder Ladeschaltung anschließen will, geht dies gut am EXT Anschluß (SP1 C23: Stecker EXT). Siehe auch den Abschnitt &amp;quot;Anschlüsse - EXT Anschluß&amp;quot; weiter oben! Dann muss der Schalter S1 dauerhaft AUSgeschaltet bleiben und die Verbindung zwischen S1 und CHRG des EXT Anschlusses (SP1 C3: X) unterbrochen werden. Diese Trennstelle befindet sich auf der Lötseite (Unterseite) des RP6 Mainboards etwas versteckt zwischen S1 (Pin 3) und der benachbarten Leiterbahn, die CHRG des EXT Anschlusses mit der Ladebuchse CHARGER (Pin 1 +) verbindet. Dort sind fünf kurze, parallele Leiterbahnen zu unterbrechen (siehe gelbe Markierung in der Abb. RP6 S1 CHRG!). Will man das nicht machen, darf man die Ladebuchse CHARGER auf jeden Fall nicht mehr nutzen!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Lochraster-Felder===&lt;br /&gt;
Auf diesen Feldern kann man eigene kleine Schaltungen aufbauen. An jedem der sechs Felder stehen VDD (+5V) und GND zur Verfügung (SP4 E12: YVDDx, YGNDx).&lt;br /&gt;
&lt;br /&gt;
Bitte beachten: Die Lochreihen oder -spalten, die mit einer eckigen Klammer &amp;quot;[&amp;quot; markiert sind, liegen auf der Lötseite (Unterseite) direkt auf dem Rahmen des Chassis! Hier können also keine Drähte von unten verlötet werden.&lt;br /&gt;
&lt;br /&gt;
====Vorn links====&lt;br /&gt;
Das kleine Lochrasterfeld vorn links kann z.B. für Beleuchtung (Blinker, Scheinwerfer links) oder auch für einen zusätzlichen Sensor genutzt werden.&lt;br /&gt;
Zur Verfügung steht eine 2-adrige Verbindung zum mittleren Lochrasterfeld links.&lt;br /&gt;
&lt;br /&gt;
In der Nähe dieses Lochrasterfeldes gibt es auch:&lt;br /&gt;
* IO3, IO4 (SP2 E3: IO3, IO4)&lt;br /&gt;
* ADC0 (SP2 B1: ADC0)&lt;br /&gt;
&lt;br /&gt;
====Mitte links==== [[Bild:RP6_Lochfeld_LM.JPG|thumb|RP6 Lochrasterfeld Mitte links]]&lt;br /&gt;
Das größere Lochrasterfeld Mitte links kann z.B. für eine kleinere Schaltung zur Ansteuerung der Beleuchtung/Sensoren auf den Lochrasterfeldern vorn und hinten links oder für andere Zwecke genutzt werden.&lt;br /&gt;
&lt;br /&gt;
Es stehen hier folgende Anschlüsse zur Verfügung:&lt;br /&gt;
* 2-adrige Verbindung zum Lochrasterfeld vorn links&lt;br /&gt;
* 2-adrige Verbindung zum Lochrasterfeld hinten links&lt;br /&gt;
* ST1/ST2 zum Anschluß weiterer Start/Stop Taster (SP2 D2: ST1/2)&lt;br /&gt;
* PWR (SP2 D2: YPWR1)&lt;br /&gt;
* I2C-Bus (SCL, SDA; SP4 C1: YSCL1, YSDA1)&lt;br /&gt;
* +UB (SP4 D2: YUB1)&lt;br /&gt;
In der Nähe dieses Lochrasterfeldes gibt es auch:&lt;br /&gt;
* Serielle Schnittstelle (RST, TX, RX; SP4 AB5: YRX, YTX, YMRESET, YVDD)&lt;br /&gt;
* USRBUS1 (vorn; SP4 E34: Y1'..Y14')&lt;br /&gt;
&lt;br /&gt;
=====Schaltungsvorschläge=====&lt;br /&gt;
Wie kann z.B. eine Schaltung für Beleuchtungseffekte oder Sensoren aussehen?&lt;br /&gt;
&lt;br /&gt;
Man könnte 8 zusätzliche Schaltkanäle mit dem I2C-Portexpander-IC PCF8574(A)P gewinnen. Dieses IC passt mit wenigen Zusatzteilen auf die mittlere Lochrasterfläche. Angesteuert wird es über den I2C-Bus. Mit den 8 Ausgängen lassen sich einige Beleuchtungseffekte erreichen, die dann über Software schaltbar sind.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann man auch das IC PCF8591P z.B. für den Anschluß von analogen Sensoren verwenden. Auch dieser Baustein wird über I2C angesteuert. Beide ICs sind bei [http://www.reichelt.de./ Reichelt] erhältlich.&lt;br /&gt;
&lt;br /&gt;
Will man nicht den I2C-Bus benutzen, kann man als I/O-Ports IO1..IO4 oder als analoge Eingänge ADC0 und ADC1 verwenden. Auch SCL und SDA stehen als I/O-Ports zur Verfügung, wenn der I2C-Bus im ganzen System nicht verwendet werden soll.&lt;br /&gt;
&lt;br /&gt;
Wichtig für Zusatzschaltungen, die fest auf dem RP6 verlötet werden, sind zwei Aspekte:&lt;br /&gt;
* Wenn sie die Stromversorgung belasten, sollten sie (z.B. über einen Transistor oder MOSFET) abschaltbar sein. Dazu kann man auch das Signal PWR heranziehen, das auf beiden mittleren Lochrasterflächen zur Verfügung steht. Dann kann man mit dem Befehl &amp;quot;powerOFF()&amp;quot; der RP6 Library die Stromversorgung per Software abschalten.&lt;br /&gt;
* Wenn man auch anderweitig genutzte Portpins (SDA, SCL, IO1..IO4, ADC0/1) für die eigene Schaltung einsetzt, sollte man die Verbindung zu den Portpins mit einer abziehbaren Codierbrücke trennbar machen.&lt;br /&gt;
&lt;br /&gt;
====Hinten links====&lt;br /&gt;
Das kleine Lochrasterfeld hinten links kann z.B. für Beleuchtung (Blinker, Rücklicht links) oder auch für einen zusätzlichen Sensor genutzt werden.&lt;br /&gt;
Zur Verfügung steht eine 2-adrige Verbindung zum mittleren Lochrasterfeld links.&lt;br /&gt;
&lt;br /&gt;
In der Nähe dieses Lochrasterfeldes gibt es auch:&lt;br /&gt;
* EXT Anschluß (SP1 C23: Stecker EXT)&lt;br /&gt;
&lt;br /&gt;
====Vorn rechts====&lt;br /&gt;
Das kleine Lochrasterfeld vorn rechts kann z.B. für Beleuchtung (Blinker, Scheinwerfer rechts) oder auch für einen zusätzlichen Sensor genutzt werden.&lt;br /&gt;
Zur Verfügung steht eine 2-adrige Verbindung zum mittleren Lochrasterfeld rechts.&lt;br /&gt;
&lt;br /&gt;
In der Nähe dieses Lochrasterfeldes gibt es auch:&lt;br /&gt;
* IO1, IO2 (SP2 E3: IO1, IO2)&lt;br /&gt;
* ADC1 (SP2 B1: ADC1)&lt;br /&gt;
&lt;br /&gt;
====Mitte rechts====&lt;br /&gt;
Das größere Lochrasterfeld Mitte rechts kann z.B. für eine kleinere Schaltung zur Ansteuerung der Beleuchtung/Sensoren auf den Lochrasterfeldern vorn und hinten rechts oder für andere Zwecke genutzt werden.&lt;br /&gt;
&lt;br /&gt;
Es stehen hier folgende Anschlüsse zur Verfügung:&lt;br /&gt;
* 2-adrige Verbindung zum Lochrasterfeld vorn rechts&lt;br /&gt;
* 2-adrige Verbindung zum Lochrasterfeld hinten rechts&lt;br /&gt;
* PWR (SP2 D2: YPWR2)&lt;br /&gt;
* I2C-Bus (SCL, SDA; SP4 C1: YSCL2, YSDA2)&lt;br /&gt;
* +UB (SP4 D2: YUB2)&lt;br /&gt;
In der Nähe dieses Lochrasterfeldes gibt es auch:&lt;br /&gt;
* Interrupt-Anschluß (INTU, INT1..3, MRESET; SP4 D34: MRESET, INT1..3, INTU)&lt;br /&gt;
* USRBUS2 (hinten; SP4 E34: Y1..Y14)&lt;br /&gt;
&lt;br /&gt;
====Hinten rechts====&lt;br /&gt;
Das kleine Lochrasterfeld hinten rechts kann z.B. für Beleuchtung (Blinker, Rücklicht rechts) oder auch für einen zusätzlichen Sensor genutzt werden.&lt;br /&gt;
Zur Verfügung steht eine 2-adrige Verbindung zum mittleren Lochrasterfeld rechts.&lt;br /&gt;
&lt;br /&gt;
In der Nähe dieses Lochrasterfeldes gibt es auch:&lt;br /&gt;
* EXT Anschluß (SP1 C23: Stecker EXT)&lt;br /&gt;
* Akku-Anschluß (SP1 B3: BATTERY)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erweiterungen==&lt;br /&gt;
Auf / An den RP6 könnte man z.B. noch folgendes anbauen / erweitern:&lt;br /&gt;
&lt;br /&gt;
* Einen Greifarm&lt;br /&gt;
* Einen Ultraschallsensor&lt;br /&gt;
* Zwei Lichtsensoren hinten, um die hellste / dunkelste Stelle im Raum besser zu finden&lt;br /&gt;
* Einen digitalen Kompass&lt;br /&gt;
* uvm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erweiterungs-Module==&lt;br /&gt;
&lt;br /&gt;
Es sind von Arexx schon drei Erweiterungsmöglichkeiten auf dem Markt. Zum Ersten die Experimentierplatinen (191537), die zum Erstellen von eigenen Schaltungen und Sensoren gedacht sind, und von denen eine schon im Lieferumfang enthalten ist, das Erweiterungsboard RP6 CONTROL M32 (191550) und die RP6 CCPRO M128 (191563).&lt;br /&gt;
&lt;br /&gt;
Die Boards kann man dann über den I2C Bus mit dem Mainboard kommunizieren lassen.  Es ist sehr sinnvoll, die Module symmetrisch hintereinander zu stapeln und nicht mehr als 6-8 Module zu verbauen, weil der Roboter sonst immer schwerer und langsamer wird. Basierend auf dem Master-Slave System könnte man so bis zu 127 Slaves anschließen. Zudem ist es ratsam, qualitativ hochwertige Akkus und ein Ladegerät mit passendem Stecker zu verwenden, da man ansonsten immer das Mainboard abschrauben müsste um an die Akkus heranzukommen. Für den Fall wurde extra eine Ladebuchse eingebaut.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Experimentierplatine ===&lt;br /&gt;
[[Bild:RP6_Exp.jpg|RP6 Experimentierplatine]]&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Die Experimentier-Platine ist dazu gedacht, eigene Schaltungen auf dem RP6 zu realisieren. Sie wird über den I²C-Bus mit den anderen Erweiterungsmodulen verbunden. Ausserdem ist es sinnvoll, die (freien) I/O-Ports (ADC-Kanäle) der RP6 Base, des M32 Erweiterungsmoduls bzw. des CCPRO M128 Moduls über ein [http://www.reichelt.de/?;ACTION=3;LA=444;GROUP=C63;GROUPID=3328;ARTICLE=47637;START=0;SORT=artnr;OFFSET=16;SID=1580faBqwQAQ8AAGY-ZAM7cd511ee04a106a88a359faaac0071e2 10-Pol-Flachbandkabel] mit [http://www.reichelt.de/?ACTION=3;GROUP=C151;GROUPID=3231;ARTICLE=14571;SID=1580faBqwQAQ8AAGY-ZAM7cd511ee04a106a88a359faaac0071e2 Stecker] auf die Experimentierplatine zu führen, weil es übersichtlicher bleibt und keine Kabel lose herumhängen. Auf der Experimentierplatine kann man dann LEDs oder einen Temperatursensor an die I/O-Ports bzw. an die ADC-Kanäle anschießen.&lt;br /&gt;
&lt;br /&gt;
====Technische Daten====&lt;br /&gt;
{|  {{Blauetabelle}} &lt;br /&gt;
|'''Mikrocontroller:'''&lt;br /&gt;
|Keiner&lt;br /&gt;
|-&lt;br /&gt;
|'''Speicher:'''&lt;br /&gt;
|Keiner&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Programmierung:'''&lt;br /&gt;
|Kein Programmieradapter&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Sensoren:'''&lt;br /&gt;
|Keine&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Aktoren:'''&lt;br /&gt;
|Keine&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Abmessungen:'''&lt;br /&gt;
|(L &amp;amp;times; B &amp;amp;times; H) 112 &amp;amp;times; 90 &amp;amp;times; 10 mm&lt;br /&gt;
|-&lt;br /&gt;
|'''Ausführung:'''&lt;br /&gt;
|Bausatz&lt;br /&gt;
|-&lt;br /&gt;
|'''Stromversorgung:'''&lt;br /&gt;
|6 AA NiMH Akkus (über die RP6 Base)&lt;br /&gt;
|-&lt;br /&gt;
|'''Hersteller:'''&lt;br /&gt;
|Arexx Niederlande&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Schaltungsideen ====&lt;br /&gt;
Auf der / den Experimentierplatinen könnte man z.B. folgendes realisieren:&lt;br /&gt;
&lt;br /&gt;
* eine Kameraschaltung (wie [http://www.rn-wissen.de/index.php/RP6_Kamera_-_Mitmach-Projekt hier] gezeigt)&lt;br /&gt;
* Scheinwerfer, Rücklichter, Blinker etc. (ABER immer mit Vorwiderstand!!!)&lt;br /&gt;
* ein LED-Lauflicht (über I/O-Expander, gibt´s beim [http://www.reichelt.de/?ACTION=3;ARTICLE=14527;PROVID=2402 Reichelt])&lt;br /&gt;
* mehr ADC-Kanäle (über ADC-Expander, einfach mal nach PCF8591 [http://www.google.de/search?q=PCF8591 googlen])&lt;br /&gt;
* eine Wetterstation mit Luftfeuchtemesser, Temperaturfühler und Lichtmesser ([http://www.roboternetz.de/phpBB2/viewtopic.php?t=52298 hier] gibt es eine Wetterstation uvm.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RP6 CONTROL M32 Platine ===&lt;br /&gt;
[[Bild:RP6Control_M32.jpg|RP6 CONTROL M32]]&lt;br /&gt;
&lt;br /&gt;
====Beschreibung====&lt;br /&gt;
Auf der M32 lassen sich weitere LEDs, Sensoren oder ähnliches anschließen, außerdem steht ein weiterer ATMEGA32 zur Verfügung, welcher sich gut im Master Modus betreiben lässt. Es sind ein Mikrofonsensor, fünf Taster, vier Status-LEDs, ein Display-Port, ein Beeper, 6 freie ADC-Kanäle, 8 freie I/O-Ports, ein Programmieradapter, ein JTAG-Anschluss, eine ISP-Programmierschnittstelle sowie ein freier Steckplatz für ein EEPROM verfügbar.&lt;br /&gt;
&lt;br /&gt;
====Technische Daten====&lt;br /&gt;
{|  {{Blauetabelle}} &lt;br /&gt;
|'''Mikrocontroller:'''&lt;br /&gt;
|AVR [[ATmega32]]&lt;br /&gt;
|-&lt;br /&gt;
|'''Speicher:'''&lt;br /&gt;
|32 kB [[Flash]]-Speicher, davon 1 kB bereits vom Bootloader belegt&amp;lt;br/&amp;gt;&lt;br /&gt;
2 kB SRAM&amp;lt;br/&amp;gt; &lt;br /&gt;
1 kB [[EEPROM]]&lt;br /&gt;
|-&lt;br /&gt;
|'''Programmierung:'''&lt;br /&gt;
|Über AVR-[[Bootloader]], belegt ca. 1 kB des Flash-Speichers&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Sensoren:'''&lt;br /&gt;
|1 Mikrofonsensor&amp;lt;br/&amp;gt;&lt;br /&gt;
5 Eingabetaster&amp;lt;br/&amp;gt;&lt;br /&gt;
14 I/O Ports, davon 6 ADC-Wandler&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Aktoren:'''&lt;br /&gt;
|1 Beeper&amp;lt;br/&amp;gt;&lt;br /&gt;
4 Status-LEDs&amp;lt;br/&amp;gt;&lt;br /&gt;
1 LC-Display-Port&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Abmessungen:'''&lt;br /&gt;
|(L &amp;amp;times; B &amp;amp;times; H) 112 &amp;amp;times; 90 &amp;amp;times; 15 mm&lt;br /&gt;
|-&lt;br /&gt;
|'''Ausführung:'''&lt;br /&gt;
|Fertig aufgebautes Erweiterungsmodul&lt;br /&gt;
|-&lt;br /&gt;
|'''Stromversorgung:'''&lt;br /&gt;
|6 AA NiMH Akkus (über die RP6 Base)&lt;br /&gt;
|-&lt;br /&gt;
|'''Hersteller:'''&lt;br /&gt;
|Arexx Niederlande&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Umbau-Optionen ====&lt;br /&gt;
Dieser Absatz soll die Möglichkeiten der RP6 CONTROL M32 Platine (im Folgenden &amp;quot;M32&amp;quot; genannt) auflisten, die es gibt, um auf einfache Weise weitere Anschlüsse oder Verbindungen zu ermöglichen. Nicht beschrieben werden die Anschlußmöglichkeiten, die in Form der vorhandenen Wannenstecker sowieso gegeben sind (z.B. am LCD-, I/O- oder ADC-Stecker). Im Text gibt es Verweise auf den Schaltplan der M32 (RP6_CONTROL_M32.PDF) in der Form: (SP2 B1: Bauteil).  Dies bedeutet, dass man das Bauteil auf Blatt 2 des RP6-M32-Schaltplans im Feld B1 finden kann.&lt;br /&gt;
&lt;br /&gt;
Folgende Möglichkeiten zum Umbau/Ausbau sind vorgesehen:&lt;br /&gt;
* Zweites SPI-EEPROM (IC5)&lt;br /&gt;
* Zwei analoge Sensoren, evtl. mit getrennter Stromversorgung&lt;br /&gt;
* ISP (In System Programming)&lt;br /&gt;
* JTAG-Programmierung&lt;br /&gt;
* USRBUS&lt;br /&gt;
* IRQ-Zuweisung ändern&lt;br /&gt;
* ADC0 und ADC1 anders nutzen&lt;br /&gt;
* Schieberegister kaskadieren&lt;br /&gt;
Im folgenden Text soll beschrieben werden, wie man die weiteren Möglichkeiten nutzen kann. Es wird jeweils erwähnt, was man an Material braucht. Beispielhaft sind da Bestell-Nummern der Firma [http://www.conrad.de/ce/ CONRAD] genannt. Natürlich kann man die Teile auch bei anderen Versendern beziehen. Durch die Nennung der Bestell-Nummer ist das jeweilige Teil aber gut zu identifizieren. Man sollte Löten können und sich bewußt sein, dass ggf. ein Garantieanspruch nicht mehr besteht, wenn man an der Platine gelötet hat.&lt;br /&gt;
&lt;br /&gt;
Bei den Materialangaben ist öfter die Rede von &amp;quot;Steckbuchsen mit Litze&amp;quot;. Diese Steckbuchsen mit angelöteter Litze können auf die ein- oder zweireihigen Stiftleisten aufgesteckt werden. Leider gibt es sie nicht (mehr) fertig konfektioniert bei CONRAD. Die einreihigen Steckbuchsen (RM 2,54mm) kann man aber z.B. bei [http://www.elv.de/output/controller.aspx ELV] bekommen: 2-polig (68-016635), 3-polig (68-022503) und 5-polig (68-023073). An sie muss man dann noch Litzen in der entsprechenden Länge selbst anlöten.&lt;br /&gt;
&lt;br /&gt;
===== Zweites SPI-EEPROM =====&lt;br /&gt;
Es ist sehr einfach, ein zweites SPI-EEPROM (SP1 A1: IC5*) auf der M32 zu nutzen.&lt;br /&gt;
&lt;br /&gt;
[[Bild:RP6_M32_IC5-Socket.JPG|thumb|Sockel des 2. SPI-EEPROMs]]&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* Einen IC-Sockel 8-pol DIP für IC5 ([http://www.conrad.de/ce/de/product/189600/IC-FASSUNG-PRAeZISION-8POLIG 189600])&lt;br /&gt;
* Einen Keramik-Vielschicht-Kondensator 100nF (C19); RM 2,54mm ([http://www.conrad.de/ce/de/product/453099/?insert=36&amp;amp;insertNoDeeplink&amp;amp;productname=KONDENSATOR-01-F-KDPU-254-MM 453099])&lt;br /&gt;
* Ein serielles SPI-EEPROM im PDIP8 Gehäuse (IC5)&lt;br /&gt;
Zuerst wird der IC-Sockel eingelötet (Kerbe beachten!), dann C19 (SP1 A1: C19*). Das war's.&lt;br /&gt;
&lt;br /&gt;
Leider gibt es das EEPROM nicht bei den gängigeren Versendern. Bekommen kann man es aber z.B. bei [http://de.farnell.com/jsp/home/homepage.jsp Farnell]. Dort hat das SPI-EEPROM mit 256 kbit die Bezeichnung 25LC256-I/P (1331398). Wenn man es noch größer mag: 25LC1024 (1331392) mit 1024 kbit. SPI-EEPROMs führt inzwischen auch [http://www.reichelt.de./ Reichelt].&lt;br /&gt;
&lt;br /&gt;
'''Programmierung:'''&lt;br /&gt;
&lt;br /&gt;
In die RP6ControlLib.h bitte einfügen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#define SPI_EEPROM2_PAGESIZE 64&lt;br /&gt;
&lt;br /&gt;
uint8_t SPI_EEPROM2_readByte(uint16_t memAddr);&lt;br /&gt;
void SPI_EEPROM2_writeByte(uint16_t memAddr, uint8_t data);&lt;br /&gt;
void SPI_EEPROM2_enableWrite(void);&lt;br /&gt;
void SPI_EEPROM2_disableWrite(void);&lt;br /&gt;
uint8_t SPI_EEPROM2_getStatus(void);&lt;br /&gt;
&lt;br /&gt;
void SPI_EEPROM2_writeBytes(uint16_t startAddr, uint8_t *buffer, uint8_t length);&lt;br /&gt;
void SPI_EEPROM2_readBytes(uint16_t startAddr, uint8_t *buffer, uint8_t length);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Konstante SPI_EEPROM2_PAGESIZE ist abhängig von der Art und Größe des EEPROMs. Für ein 256 kbit-EEPROM ist die Seitengröße (pagesize) in der Regel 64, für einen 512 kbit-Typ 128 und für einen 1024 kbit-Typ 256.&lt;br /&gt;
&lt;br /&gt;
In die RP6ControlLib.c bitte einfügen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*****************************************************************************/&lt;br /&gt;
// Second external SPI EEPROM:&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Reads a single Byte from the 2nd external EEPROM.&lt;br /&gt;
 */&lt;br /&gt;
uint8_t SPI_EEPROM2_readByte(uint16_t memAddr)&lt;br /&gt;
{&lt;br /&gt;
	uint8_t data;&lt;br /&gt;
	PORTB &amp;amp;= ~MEM_CS2;&lt;br /&gt;
	writeSPI(SPI_EEPROM_READ);&lt;br /&gt;
	writeWordSPI(memAddr);&lt;br /&gt;
	data = readSPI();&lt;br /&gt;
	PORTB |= MEM_CS2;&lt;br /&gt;
	return data;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Reads &amp;quot;length&amp;quot; Bytes into the Buffer &amp;quot;buffer&amp;quot; from startAdr on. &lt;br /&gt;
 * You can read the complete 2nd EEPROM into a buffer at once - if it is large enough. &lt;br /&gt;
 * (But you only have 2KB SRAM on a MEGA32 ;) )&lt;br /&gt;
 */&lt;br /&gt;
void SPI_EEPROM2_readBytes(uint16_t startAddr, uint8_t *buffer, uint8_t length)&lt;br /&gt;
{&lt;br /&gt;
	PORTB &amp;amp;= ~MEM_CS2;&lt;br /&gt;
	writeSPI(SPI_EEPROM_READ);&lt;br /&gt;
	writeWordSPI(startAddr);&lt;br /&gt;
	readBufferSPI(&amp;amp;buffer[0], length);&lt;br /&gt;
	PORTB |= MEM_CS2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Enable Write Mode&lt;br /&gt;
 */&lt;br /&gt;
void SPI_EEPROM2_enableWrite(void)&lt;br /&gt;
{&lt;br /&gt;
	PORTB &amp;amp;= ~MEM_CS2;&lt;br /&gt;
	writeSPI(SPI_EEPROM_WREN);&lt;br /&gt;
	PORTB |= MEM_CS2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Disable Write Mode&lt;br /&gt;
 */&lt;br /&gt;
void SPI_EEPROM2_disableWrite(void)&lt;br /&gt;
{&lt;br /&gt;
	PORTB &amp;amp;= ~MEM_CS2;&lt;br /&gt;
	writeSPI(SPI_EEPROM_WRDI);&lt;br /&gt;
	PORTB |= MEM_CS2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Write a single data byte to the specified 2nd EEPROM address.&lt;br /&gt;
 */&lt;br /&gt;
void SPI_EEPROM2_writeByte(uint16_t memAddr, uint8_t data)&lt;br /&gt;
{&lt;br /&gt;
	while(SPI_EEPROM2_getStatus() &amp;amp; SPI_EEPROM_STAT_WIP);&lt;br /&gt;
	SPI_EEPROM2_enableWrite();&lt;br /&gt;
	PORTB &amp;amp;= ~MEM_CS2;&lt;br /&gt;
	writeSPI(SPI_EEPROM_WRITE);&lt;br /&gt;
	writeWordSPI(memAddr);&lt;br /&gt;
	writeSPI(data);&lt;br /&gt;
	PORTB |= MEM_CS2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Write &amp;quot;length&amp;quot; Bytes from the Buffer to the 2nd EEPROM. &lt;br /&gt;
 * YOU CAN ONLY WRITE MAXIMAL [SPI_EEPROM2_PAGESIZE] BYTES AT ONCE!!!&lt;br /&gt;
 * This is the Pagesize!&lt;br /&gt;
 * You can NOT cross a page boundary!&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
void SPI_EEPROM2_writeBytes(uint16_t startAddr, uint8_t *buffer, uint8_t length)&lt;br /&gt;
{&lt;br /&gt;
	while(SPI_EEPROM2_getStatus() &amp;amp; SPI_EEPROM_STAT_WIP);&lt;br /&gt;
	SPI_EEPROM2_enableWrite();&lt;br /&gt;
	PORTB &amp;amp;= ~MEM_CS2;&lt;br /&gt;
	writeSPI(SPI_EEPROM_WRITE);&lt;br /&gt;
	writeWordSPI(startAddr);&lt;br /&gt;
	writeBufferSPI(&amp;amp;buffer[0], length);&lt;br /&gt;
	PORTB |= MEM_CS2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Returns EEPROM Status register - for checking if 2nd EEPROM is buisy. &lt;br /&gt;
 * Writing takes about 5ms. &lt;br /&gt;
 */&lt;br /&gt;
uint8_t SPI_EEPROM2_getStatus(void)&lt;br /&gt;
{&lt;br /&gt;
	uint8_t status;&lt;br /&gt;
	PORTB &amp;amp;= ~MEM_CS2;&lt;br /&gt;
	writeSPI(SPI_EEPROM_RDSR);&lt;br /&gt;
	status = readSPI();&lt;br /&gt;
	PORTB |= MEM_CS2;&lt;br /&gt;
	return status;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*****************************************************************************/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hinweis zum 1024 kbit-EEPROM:&lt;br /&gt;
&lt;br /&gt;
Dieses EEPROM benötigt 24-Bit Adressen und muss daher etwas anders angesprochen werden als die &amp;quot;kleineren&amp;quot; Typen bis 512 kbit.&lt;br /&gt;
Die Funktion SPI_EEPROM2_readByte() sieht für ein 1024 kbit-EEPROM z.B. so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;uint8_t SPI_EEPROM2_readByte(uint32_t memAddr)&lt;br /&gt;
{&lt;br /&gt;
	uint8_t data;&lt;br /&gt;
	PORTB &amp;amp;= ~MEM_CS2;&lt;br /&gt;
	writeSPI(SPI_EEPROM_READ);&lt;br /&gt;
	writeSPI((uint8_t)(memAddr &amp;gt;&amp;gt; 16));&lt;br /&gt;
	writeWordSPI((uint16_t)memAddr);&lt;br /&gt;
	data = readSPI();&lt;br /&gt;
	PORTB |= MEM_CS2;&lt;br /&gt;
	return data;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
Alle weiteren Funktionen, die EEPROM-Adressen verwenden (SPI_EEPROM2_readBytes, SPI_EEPROM2_writeByte, SPI_EEPROM2_writeBytes), müssen genau so angepasst werden.&lt;br /&gt;
&lt;br /&gt;
===== Anschlüsse =====&lt;br /&gt;
Hier wird aufgelistet, wo man auf der M32 Platine Anschlüsse nutzen kann, um sie z.B. zu weiteren Sensoren, zum USRBUS oder (weniger empfehlenswert!) direkt zu EPs, zur RP6 Base oder zur CCPRO M128 zu führen. &lt;br /&gt;
&lt;br /&gt;
====== Analoge Sensoren an ADC2/3 ====== [[Bild:RP6_M32_ADC23.JPG|thumb|ADC2 ADC3]]&lt;br /&gt;
Wenn man bis zu zwei analoge Sensoren (z.B. IR-Distanz-Mess-Sensoren Sharp GP2Y0A02YK 185364) direkt an die M32 anschließen möchte, dann gibt es da zwei 3-polige Kontakte, beschriftet mit VDD/GND/ADCx (x = 2..3). Hier kann man 3-polige Stiftleisten auflöten, an die dann die Sensoren angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 1-reihige Stiftleiste RM 2,54mm (z.B. 36-polig 732478)&lt;br /&gt;
* Zwei Keramik-Vielschicht-Kondensatoren 100nF (C16, C17); RM 2,54mm (453099)&lt;br /&gt;
* Ein Elektrolyt-Kondensator stehend 470 uF / 16V (C18); RM 3,5mm (446211)&lt;br /&gt;
* Zwei 3-polige Steckbuchsen mit Litze zum Anschluß der Sensoren&lt;br /&gt;
Man trennt von der 1-reihigen Stiftleiste zweimal 3 Kontakte ab und lötet sie auf die weiß umrahmten Kontakte (VDD/GND/ADCx; SP2 C23: ADC2, YGND8, YVDD6, ADC3, YGND7, YVDD5), anschließend C16, C17 (SP2 C1: C16*, C17*) auf ihre Plätze und zum Schluß den Elko 470 uF (C18; SP2 B1: C18*). Beim Elko auf die Polung achten: Er muss genau so sitzen wie sein Nachbar C1 (Minuspol schaut zum Beeper SND).&lt;br /&gt;
&lt;br /&gt;
Die Sensoren lötet man an die Litzen der 3-poligen Steckbuchsen und steckt diese auf die neuen Kontakte.&lt;br /&gt;
&lt;br /&gt;
Da manche Sensoren einen höheren Stromverbrauch haben, kann man die Stromversorgung an den VDD-Pins der ADC2/3-Stecker abschaltbar machen oder eine separate +5V-Spannung einspeisen. Siehe dazu den Abschnitt &amp;quot;Trennstellen - Getrennte Stromversorgung für ADC2/3&amp;quot; weiter unten!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== ISP (In System Programming) ======&lt;br /&gt;
Der ATMEGA32 der M32 wird standardmäßig über den PROG/UART Stecker programmiert. Dazu befindet sich im Prozessor ein Bootloader-Programm. Wenn man stattdessen oder zusätzlich die ISP-Programmierung mit einem dafür geeigneten ISP-Programmier-Adapter nutzen will, kann man den Adapter an den gewinkelten ISP-Stecker auf der M32 anschließen.&lt;br /&gt;
Vorher sind aber ein paar &amp;quot;Umbauarbeiten&amp;quot; erforderlich.&lt;br /&gt;
&lt;br /&gt;
[[Bild:RP6_M32_ISP.JPG|thumb|ISP]]&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 1-reihige Stiftleiste RM 2,54mm (z.B. 36-polig 732478)&lt;br /&gt;
* Einen SMD-Widerstand 10 kOhm (406376)&lt;br /&gt;
* Eine SMD-Diode LL 4148 (140902)&lt;br /&gt;
* Eine Codierbrücke (z.B. aus Set 742902)&lt;br /&gt;
&lt;br /&gt;
Der SMD-Widerstand wird auf seinen Platz (R1; SP1 A3: R1*) neben dem XBUS2-Stecker gelötet, danach die Diode LL 4148 (D2; SP1 B3: D2*). Die Kathode (Strich) der Diode zeigt in Richtung des Quarzes (X1). Zwischen R1 und C1 befinden sich drei Lötpunkte (beschriftet mit ISP/DEBUG - BOOTLOAD; SP1 A34: YRST1..3), auf die eine 3-polige Stiftleiste gelötet werden muss. Vorher muss eine kurze Leiterbahn zwischen den Lötpunkten BOOTLOAD aufgetrennt werden. Die Leiterbahn befindet sich auf der Lötseite der Platine und muss mit einem scharfen Messer oder einem speziellen Leiterbahn-Unterbrecher zwischen den beiden Lötpunkten unterbrochen werden. Man sollte anschließend mit einem Widerstandsmeßgerät nachmessen: Es sollte keine Verbindung mehr zwischen den Lötpunkten bestehen.&lt;br /&gt;
Man trennt dann von der 1-reihigen Stiftleiste 3 Kontakte ab und lötet sie auf die beschriebenen drei Lötpunkte.&lt;br /&gt;
&lt;br /&gt;
Wenn man jetzt eine Codierbrücke auf die mit &amp;quot;BOOTLOAD&amp;quot; beschrifteten Pins steckt, bleibt alles unverändert: Die Programmierung erfolgt weiter über den PROG/UART-Stecker mithilfe des Bootloaders im Prozessor. Wird die Codierbrücke in Stellung &amp;quot;ISP/DEBUG&amp;quot; umgesteckt, kann der Prozessor mit ISP programmiert werden.&lt;br /&gt;
&lt;br /&gt;
Vorsicht: Das Bootloader-Programm kann dabei zerstört werden! Es müssen zusätzlich Fusebits des ATMEGA32 verändert werden. &lt;br /&gt;
&lt;br /&gt;
Dabei kann der Prozessor im schlimmsten Fall nicht mehr ansprechbar sein. Man sollte diesen Umbau und die ISP-Programmierung nur machen, wenn man genau weiß, was man macht!&lt;br /&gt;
&lt;br /&gt;
Eine Kopie des Bootloaders und eine Kurzanleitung zum Einstellen der Fusebits gibt es hier: &lt;br /&gt;
[http://www.arexx.com/rp6/downloads/RP6_M32_BOOTLOADER.zip RP6_M32_BOOTLOADER]&lt;br /&gt;
&lt;br /&gt;
====== JTAG ====== [[Bild:RP6_M32_JTAG.JPG|thumb|JTAG]]&lt;br /&gt;
Die Programmierung und ein Debuggen sind auch mit der JTAG-Schnittstelle möglich. Das ist nur zu empfehlen, wenn man Erfahrungen mitbringt, oder der Prozessor der M32 durch eine ISP-Falschprogrammierung z.B. nicht mehr ansprechbar ist.&lt;br /&gt;
Um die JTAG-Schnittstelle nutzen zu können, muss der ISP-Umbau durchgeführt worden sein und die dort beschriebene Codierbrücke auf &amp;quot;ISP/DEBUG&amp;quot; gesteckt sein. Der JTAG-Programmer kann dann an die Lötpunkte &amp;quot;JTAG&amp;quot; zwischen ISP- und I/O-Stecker angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 2-reihige Stiftleiste RM 2,54mm (z.B. 2x36-polig 742007)&lt;br /&gt;
Man trennt von der 2-reihigen Stiftleiste 2x5 Kontakte ab und lötet sie auf die 10 JTAG-Lötpunkte (SP2 A12: YTDI, YTDO, YTMS, YTCK, YTRST, YVDD3/4, YGND3/4, YNC). Hier kann jetzt der JTAG-Programmer z.B. mit einem 10-poligen Flachkabel-Stecker angeschlossen werden. Um das JTAG-Interface des ATMEGA32 nutzen zu können, müssen Änderungen an den Fusebits vorgenommen werden.&lt;br /&gt;
&lt;br /&gt;
Vorsicht: Man sollte die JTAG-Programmierung und Fusebit-Manipulationen nur machen, wenn man genau weiß, was man macht!&lt;br /&gt;
&lt;br /&gt;
====== USRBUS ======&lt;br /&gt;
Die 14 Kontakte der beiden USRBUS-Stecker sind auf der M32 nirgendwo angeschlossen, sondern können über die Lötpunkte Y1..Y14 mit beliebigen Punkten auf der M32 verbunden werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:RP6_M32_USRBUS.JPG|thumb|USRBUS]]&lt;br /&gt;
&lt;br /&gt;
Ich würde auf Y1..Y14 eine Stiftleiste löten, damit die USRBUS-Belegung geändert werden kann.&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 2-reihige Stiftleiste RM 2,54mm (z.B. 2x36-polig 742007)&lt;br /&gt;
* Einige Steckbuchsen mit Litze&lt;br /&gt;
&lt;br /&gt;
Man trennt von der 2-reihigen Stiftleiste 2x7 Kontakte ab und lötet sie auf die Punkte Y1..Y14 (SP2 E3: Y1..Y14) neben dem Wannenstecker USRBUS2. Wird die M32 über Flachkabel mit einem USRBUS-Stecker auf einer RP6 Experimentierplatine (EP) und/oder mit dem RP6 selbst verbunden, dann hat man mit allen mit dem USRBUS verbundenen Platinen eine direkte 14-polige Verbindung,- eben den &amp;quot;User Bus&amp;quot;. Den kann man dann nutzen, wie man will. Auf der M32 kann man mit Steckbuchsen die Pins Y1..Y14 mit anderen Pins verbinden.&lt;br /&gt;
&lt;br /&gt;
Beispiel: Verbindet man den Pin &amp;quot;ADC2&amp;quot; mit Y1 des USRBUS, dann steht der Eingang ADC2 auf allen an den USRBUS angeschlossenen Platinen an Y1 zur Verfügung. Man braucht also diesen Eingang nicht über ein eigenes Kabel auf eine EP zu führen, sondern kann dazu den USRBUS nehmen. Dadurch bleibt der Gesamtaufbau auf dem RP6 übersichtlich und komplett trennbar (man braucht nur die Stecker XBUS und USRBUS abzuziehen!).&lt;br /&gt;
&lt;br /&gt;
Wichtig: Man sollte gut dokumentieren, wie man den USRBUS am RP6 (vorn und hinten getrennt!), auf EPs und der M32/M128 benutzt! Sonst kann es bei einer anderen Anordnung von EPs zu USRBUS Konflikten/Kurzschlüssen kommen.&lt;br /&gt;
&lt;br /&gt;
====== Schieberegister kaskadieren ====== [[Bild:RP6_M32_SPI.JPG|thumb|SPI]]&lt;br /&gt;
Auf der M32 wird ein 8-Bit Schieberegister-Baustein (IC3: 74HC4094D) dazu gebraucht, vier Status-LEDs (LED1..LED4) und ein LCD (am Stecker LCD) anzusteuern. Durch Schieberegister kann man Port-Pins gewinnen, wenn die Pins des Prozessors nicht ausreichen.&lt;br /&gt;
&lt;br /&gt;
Solche Schieberegister kann man &amp;quot;kaskadieren&amp;quot;, d.h. weitere identische Bausteine einbauen, die weitere Port-Pins zur Verfügung stellen. Wenn man zusätzliche 74HC4094 einsetzen will, wird man das am besten auf einer EP aufbauen. Die Anschlüsse für diese Schieberegister werden auf der M32 an einer 6-poligen Reihe von Lötpunkten (beschriftet mit MISO, STR, MOSI, SCK, QS, QS*; SP1 D3: YQS1/2, YMOSI, YSCK, YSTR, YMISO) links von IC3 zur Verfügung gestellt.&lt;br /&gt;
&lt;br /&gt;
Wenn man diese 6 Signalleitungen auf eine EP führen will, gibt es dafür zwei Möglichkeiten:&lt;br /&gt;
* a) Direkte 6-polige Kabelverbindung von den oben beschriebenen Lötpunkten zur EP&lt;br /&gt;
* b) Nutzung des USRBUS, um die 6 Signale zur EP zu führen&lt;br /&gt;
Wenn man im Abschnitt &amp;quot;USRBUS&amp;quot; den entsprechenden Umbau gemacht hat, würde ich b) empfehlen! Man könnte dafür eine 6-polige Stiftleiste auf die o.g. Lötpunkte auflöten und 1:1 z.B. mit den Pins Y4, Y6, Y8, Y10, Y12, Y14 des USRBUS verbinden. Dann kann man auf der EP weitere Schieberegister- und SPI-Bausteine (z.B. SPI-EEPROMs, RFM12 Transceiver o.ä.) aufbauen.&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 1-reihige Stiftleiste RM 2,54mm (z.B. 36-polig 732478)&lt;br /&gt;
* Steckbuchsen mit Litze&lt;br /&gt;
Man trennt von der 1-reihigen Stiftleiste 6 Kontakte ab und lötet sie auf die beschriebenen sechs Lötpunkte auf der M32. Mit den Steckbuchsen mit Litze wird dann die Verbindung entweder direkt zur EP (Option a) oder über den USRBUS zur EP (Option b) hergestellt.&lt;br /&gt;
&lt;br /&gt;
====== VDD/GND/+UB Anschluß ====== [[Bild:RP6_M32_VDDGNDUB.JPG|thumb|RP6 M32 VDD GND +UB]]&lt;br /&gt;
VDD, GND und +UB (SP2 C3: YUB1, YGND1/2/5, YVDD1/2) kann man auf der M32 an diesen Lötpunkten abnehmen.&lt;br /&gt;
&lt;br /&gt;
Natürlich kann man hier auch Stiftleisten auflöten.&lt;br /&gt;
&lt;br /&gt;
Auf der anderen Platinenseite (zwischen dem USRBUS1 und ISP Stecker) befinden sich zusätzlich noch 2 weitere Lötpunkte, an denen man VDD und GND kontaktieren kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== Serielle Schnittstelle ====== [[Bild:RP6_M32_RST.JPG|thumb|RP6 M32 RST]]&lt;br /&gt;
Neben dem PROG/UART Stecker befinden sich 5 Lötpunkte mit den Signalen RST, TX, RX, GND, VDD (SP2 BC3: YRX, YTX, YRST, YVDD, YGND). Hier kann z.B. eine 5-polige Stiftleiste aufgelötet werden, um einen Anschluß an die serielle Schnittstelle zu ermöglichen.&lt;br /&gt;
 &lt;br /&gt;
Von diesen 5 Lötpunkten könnte z.B. auch eine Verbindung zum USRBUS hergestellt werden, um die serielle Schnittstelle der M32 auf EPs zu führen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== MEM_CS2 ====== [[Bild:RP6_M32_MEM_CS2.JPG|thumb|RP6 M32 MEM_CS2]]&lt;br /&gt;
MEM_CS2 (M32 Microcontroller Pin PB1) kann man am IC5-Sockel an Pin 1 (SP1 A1: IC5*, Pin 1) kontaktieren. Falls IC5 nicht eingesetzt werden soll, kann man hier durch Einstecken eines Kabels in Pin 1 des IC5-Sockels PB1 nutzen und z.B. zum USRBUS führen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Mess-/Kontaktpunkte =====&lt;br /&gt;
Hier geht es um Kontaktpunkte, an denen man z.B. den Logik-Pegel (High/Low) oder eine analoge Spannung messen kann. Natürlich kann man die Signale auch zur Weiterleitung auf eine EP kontaktieren, dies wird man aber normalerweise nicht brauchen.&lt;br /&gt;
&lt;br /&gt;
====== M-Signal ====== [[Bild:RP6_M32_M_SIGNAL.JPG|thumb|RP6 M32 M-Signal]]&lt;br /&gt;
An diesem Messpunkt (SP1 E3: YM_SIGNAL) neben D1 kann man die Ausgangsspannung des Mikrofon-Verstärkers IC4 (SP1 E3: IC4) messen oder z.B. mit einem Oszilloskop darstellen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Trennstellen =====&lt;br /&gt;
An diesen Stellen können Leiterbahnen unterbrochen werden, um Funktionen zu deaktivieren oder anders zu nutzen. &lt;br /&gt;
&lt;br /&gt;
====== Getrennte Stromversorgung für ADC2/3 ======&lt;br /&gt;
Wenn man für die analogen Sensoren an ADC2/3 (siehe Abschnitt &amp;quot;Anschlüsse - Analoge Sensoren an ADC2/3&amp;quot; weiter oben!) eine GETRENNTE Stromversorgung vorsehen will und/oder mit Codierbrücke (oder MOSFET) die Stromversorgung abschaltbar machen möchte, muss man erst Vorarbeit leisten.&lt;br /&gt;
[[Bild:RP6_M32_SV.jpg|thumb|RP6 M32 SV]]&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 1-reihige Stiftleiste RM 2,54mm (z.B. 36-polig 732478)&lt;br /&gt;
* Evtl.: Eine Codierbrücke (z.B. aus Set 742902)&lt;br /&gt;
* Evtl.: Eine 1-polige Steckbuchse mit Litze zur ext. Stromversorgung&lt;br /&gt;
Es muss eine kurze Leiterbahn zwischen den Punkten &amp;quot;SV1&amp;quot; und &amp;quot;SV2&amp;quot; (SP2 B2: SV1, SV2) aufgetrennt werden. Die Leiterbahn befindet sich auf der Lötseite der Platine und muss mit einem scharfen Messer oder einem speziellen Leiterbahn-Unterbrecher zwischen den beiden Lötpunkten unterbrochen werden. Man sollte anschließend mit einem Widerstandsmeßgerät zwischen SV1 und SV2 nachmessen: Es sollte keine Verbindung mehr bestehen. Jetzt trennt man von der 1-reihigen Stiftleiste 2 Kontakte ab und lötet sie auf die Punkte SV1/SV2.&lt;br /&gt;
&lt;br /&gt;
Man kann hier zunächst eine Codierbrücke aufstecken. Damit versorgt der RP6 Akku die Sensoren mit 5V an den Pins VDD. Möchte man später eine getrennte 5V-Spannung anlegen, zieht man einfach die Codierbrücke ab und speist die externe 5V-Spannung (mit einer 1-poligen Steckbuchse) am Pin SV2 ein. Achtung: An Pin SV1 wird dann nichts angeschlossen!&lt;br /&gt;
&lt;br /&gt;
Anstelle der Codierbrücke kann man natürlich auch einen MOSFET anschließen, um die Sensoren per Software abschalten zu können.&lt;br /&gt;
&lt;br /&gt;
====== Interrupt-Zuordnung ändern ======&lt;br /&gt;
Am XBUS stehen vier Interrupt-Pins (genannt INT1..INT3, INTU) zur Verfügung. INT1 ist auf der RP6 Base mit PA4 verbunden, auf der M32 mit PD2 (Prozessor INT0), auf der M128 mit PE5 (Prozessor INT5). Diese Tabelle zeigt die Verbindung aller Interruptleitungen auf den drei Platinen (RP6 Base, M32, M128) über den XBUS:&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |XBUS Pin&lt;br /&gt;
 |XBUS INTx&lt;br /&gt;
 |RP6 Base Pin&lt;br /&gt;
 |RP6 Base INTx&lt;br /&gt;
 |RP6 M32 Pin&lt;br /&gt;
 |RP6 M32 INTx&lt;br /&gt;
 |RP6 M128 Pin&lt;br /&gt;
 |RP6 M128 INTx&lt;br /&gt;
 |-&lt;br /&gt;
 |8&lt;br /&gt;
 |INT1&lt;br /&gt;
 |PA4&lt;br /&gt;
 |kein&lt;br /&gt;
 |PD2&lt;br /&gt;
 |INT0&lt;br /&gt;
 |PE5&lt;br /&gt;
 |INT5&lt;br /&gt;
 |-&lt;br /&gt;
 |11&lt;br /&gt;
 |INT2&lt;br /&gt;
 |n.c.&lt;br /&gt;
 |&lt;br /&gt;
 |PD3&lt;br /&gt;
 |INT1&lt;br /&gt;
 |n.c.&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |9&lt;br /&gt;
 |INT3&lt;br /&gt;
 |n.c.&lt;br /&gt;
 |&lt;br /&gt;
 |PB2&lt;br /&gt;
 |INT2&lt;br /&gt;
 |PE6&lt;br /&gt;
 |INT6&lt;br /&gt;
 |-&lt;br /&gt;
 |7&lt;br /&gt;
 |INTU&lt;br /&gt;
 |n.c.&lt;br /&gt;
 |&lt;br /&gt;
 |n.c.&lt;br /&gt;
 |&lt;br /&gt;
 |n.c.&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
|}&lt;br /&gt;
Auf der M32 kann man die Interrupt-Zuordnung durch drei Codierbrücken (beschriftet mit I2-INTU, INT3-I3, I2-INT2; SP2 A3: YINT2/3/U, YI2_1/2, YI3) ändern.&lt;br /&gt;
&lt;br /&gt;
[[Bild:RP6_M32_INTx.JPG|thumb|INTx]]&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 2-reihige Stiftleiste RM 2,54mm (z.B. 2x36-polig 742007)&lt;br /&gt;
* Drei Codierbrücken (z.B. aus Set 742902)&lt;br /&gt;
Vor dem Auflöten der Stiftleiste müssen zwei kurze Leiterbahnen zwischen zwei Lötpunkten aufgetrennt werden, und zwar zwischen den Lötpunkten INT3-I3 und I2-INT2. Die Leiterbahnen müssen mit einem scharfen Messer oder einem speziellen Leiterbahn-Unterbrecher zwischen den beiden Lötpunkten unterbrochen werden. Man sollte anschließend mit einem Widerstandsmeßgerät nachmessen: Es sollte keine Verbindung mehr zwischen INT3-I3 und I2-INT2 bestehen. Man trennt dann von der 2-reihigen Stiftleiste 2x3 Kontakte ab und lötet sie auf das weiß umrahmte Feld mit der o.g. Beschriftung.&lt;br /&gt;
&lt;br /&gt;
Hier kann man auf INT3-I3 und I2-INT2 je eine Codierbrücke aufstecken, wenn man die Standard-Belegung beibehalten will. Steckt man auf I2-INTU eine Codierbrücke, dann ist INTU des XBUS mit Pin PD3 (I2) der M32 verbunden. Wenn man keine der Codierbrücken aufsteckt, sind die Pins PD3 (I2) und PB2 (I3) des M32-Prozessors nicht mehr mit dem XBUS verbunden und können anders verwendet werden. Auf der M32 kann man dann z.B. auch andere Verbindungen zum XBUS herstellen, indem man auf die Pins INT2, INT3 oder INTU Kabelverbindungen aufsteckt.&lt;br /&gt;
&lt;br /&gt;
====== ADC0 und ADC1 frei nutzen ======&lt;br /&gt;
Auf der M32 ist ADC0 fest mit dem Mikrofon (MIC) und ADC1 mit den Tastern T1..T5 (KEYPAD) verbunden. Wenn man diese ADC-Eingänge für andere Sensoren benötigt, kann man das Mikrofon und die Taster von den Eingängen abtrennen.&lt;br /&gt;
&lt;br /&gt;
[[Bild:RP6_M32_MIC_KEY.JPG|thumb|MIC_KEYPAD]]&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 1-reihige Stiftleiste RM 2,54mm (z.B. 36-polig 732478)&lt;br /&gt;
* Eine Codierbrücke (z.B. aus Set 742902)&lt;br /&gt;
&lt;br /&gt;
MIC/ADC0:&lt;br /&gt;
Es muss eine kurze Leiterbahn zwischen zwei Lötpunkten aufgetrennt werden, die sich zwischen R2 und C19 befinden (SP1 D4: YM1, YM2). Die Leiterbahn muss mit einem scharfen Messer oder einem speziellen Leiterbahn-Unterbrecher zwischen den beiden Lötpunkten unterbrochen werden. Man sollte anschließend mit einem Widerstandsmeßgerät nachmessen: Es sollte keine Verbindung mehr bestehen. Vorsicht: Nicht R2 beschädigen! Damit ist das Mikrofon auf der M32 ohne Funktion und ADC0 kann anders genutzt werden. ADC0 ist dann am oberen Lötpunkt zwischen R2 und C19 verfügbar, dort müßte eine Kabelverbindung angelötet werden.&lt;br /&gt;
Soll das Mikrofon später doch wieder an ADC0 angeschlossen werden, verbindet man die beiden Lötpunkte zwischen R2 und C19 einfach mit etwas Lötzinn oder mit einem SMD Null Ohm Widerstand.&lt;br /&gt;
&lt;br /&gt;
KEYPAD/ADC1:&lt;br /&gt;
Es muss eine kurze Leiterbahn zwischen zwei Lötpunkten aufgetrennt werden, die sich unterhalb von R15 befinden (SP1 D2: YKP1, YKP2). Die Leiterbahn befindet sich auf der Lötseite der Platine und muss mit einem scharfen Messer oder einem speziellen Leiterbahn-Unterbrecher zwischen den beiden Lötpunkten unterbrochen werden. Man sollte anschließend mit einem Widerstandsmeßgerät nachmessen: Es sollte keine Verbindung mehr bestehen. Jetzt trennt man von der 1-reihigen Stiftleiste 2 Kontakte ab und lötet sie auf die beiden Punkte unterhalb von R15. Hier kann man jetzt eine Codierbrücke aufstecken, wenn man die Taster weiter benutzen will. Wenn die Brücke abgezogen ist, sind die Taster ohne Funktion und ADC1 kann anders genutzt werden. ADC1 ist dann am linken Pin der 2-poligen Stiftleiste unterhalb von R15 verfügbar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== RP6 CCPRO M128 Platine===&lt;br /&gt;
&lt;br /&gt;
[[Bild:CCPRO M128 k-1-.jpg|Das CCPRO M128]]&lt;br /&gt;
&lt;br /&gt;
====Technische Daten====&lt;br /&gt;
{|  {{Blauetabelle}} &lt;br /&gt;
|'''Mikrocontroller:'''&lt;br /&gt;
|Steckplatz für ein C-Control PRO MEGA128 Modul mit einem ATMEGA128&lt;br /&gt;
|-&lt;br /&gt;
|'''Speicher:'''&lt;br /&gt;
|128 kB [[Flash]]-Speicher, davon 4 kB bereits vom Bootloader belegt&amp;lt;br/&amp;gt;&lt;br /&gt;
4 kB SRAM intern&amp;lt;br/&amp;gt; &lt;br /&gt;
64 kB SRAM extern&amp;lt;br/&amp;gt;&lt;br /&gt;
4 kB [[EEPROM]]&lt;br /&gt;
|-&lt;br /&gt;
|'''Programmierung:'''&lt;br /&gt;
|Über CCPRO-IDE&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Sensoren:'''&lt;br /&gt;
|1 12bit I²C Temperatursensor &amp;lt;br/&amp;gt;&lt;br /&gt;
19 I/O-Ports, davon 8 ADCs, 3 PWM (Servos) und 2 I/Os für eine weitere serielle Schnittstelle (UART)&lt;br /&gt;
|-&lt;br /&gt;
|'''Vorhandene Aktoren:'''&lt;br /&gt;
|1 Beeper&amp;lt;br/&amp;gt;&lt;br /&gt;
5 Status-LEDs&amp;lt;br/&amp;gt;&lt;br /&gt;
1 LC-Display-Port&amp;lt;br/&amp;gt;&lt;br /&gt;
1 Sockel für ein I²C-Bus EEPROM vom Typ 24(L)Cxxx&lt;br /&gt;
|-&lt;br /&gt;
|'''Abmessungen:'''&lt;br /&gt;
|(L &amp;amp;times; B &amp;amp;times; H) 112 &amp;amp;times; 90 &amp;amp;times; 21 mm&lt;br /&gt;
|-&lt;br /&gt;
|'''Ausführung:'''&lt;br /&gt;
|Fertig aufgebautes Erweiterungsmodul&lt;br /&gt;
|-&lt;br /&gt;
|'''Stromversorgung:'''&lt;br /&gt;
|6 AA NiMH Akkus (über die RP6 Base)&lt;br /&gt;
|-&lt;br /&gt;
|'''Hersteller:'''&lt;br /&gt;
|Arexx Niederlande&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Umbauoptionen====&lt;br /&gt;
Auf der CCPRO M128 kann leider nicht so viel umgebaut werden:&lt;br /&gt;
&lt;br /&gt;
* I2C-EEPROM&lt;br /&gt;
* Freie Nutzung von PORTA* und PORTC*&lt;br /&gt;
* USRBUS&lt;br /&gt;
* A16-/PD4-Nutzung&lt;br /&gt;
&lt;br /&gt;
Im Text gibt es Verweise auf den Schaltplan der CCPRO M128 (RP6_CCPRO_M128_Schematic.PDF) in der Form: (SP2 B1: Bauteil).  Dies bedeutet, dass man das Bauteil auf Blatt 2 des M128-Schaltplans im Feld B1 finden kann.&lt;br /&gt;
&lt;br /&gt;
Bei den Materialangaben ist öfter die Rede von &amp;quot;Steckbuchsen mit Litze&amp;quot;. Diese Steckbuchsen mit angelöteter Litze können auf die ein- oder zweireihigen Stiftleisten aufgesteckt werden. Leider gibt es sie nicht (mehr) fertig konfektioniert bei CONRAD. Die einreihigen Steckbuchsen (RM 2,54mm) kann man aber z.B. bei [http://www.elv.de/output/controller.aspx ELV] bekommen: 2-polig (68-016635), 3-polig (68-022503) und 5-polig (68-023073). An sie muss man dann noch Litzen in der entsprechenden Länge selbst anlöten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====I2C-EEPROM=====&lt;br /&gt;
Zum Einsetzen eines I2C-EEPROMS (IC6; SP2 C1: IC6) braucht man nichts umzubauen. Man kauft einfach ein passendes EEPROM des Typs 24(L)Cxxxx-P und setzt es auf seinen Sockel, Kerbe zum oberen Platinenrand.&lt;br /&gt;
&lt;br /&gt;
Mögliche Typen (erhältlich z.B. bei [http://www.digikey.de/ Digi-Key] oder bei [http://www.reichelt.de./ Reichelt]):&lt;br /&gt;
* AT24C128  (AT24C128-10PU-2.7-ND)&lt;br /&gt;
* AT24C256  (AT24C256-10PU-2.7-ND)&lt;br /&gt;
* AT24C512  (AT24C512-10PU-2.7-ND)&lt;br /&gt;
* AT24C1024 (AT24C1024-10PI-2.7-ND)&lt;br /&gt;
&lt;br /&gt;
=====Anschlüsse=====&lt;br /&gt;
Hier wird aufgelistet, wo man auf der M128 Platine Anschlüsse nutzen kann, um sie z.B. zu weiteren Sensoren, zum USRBUS oder (weniger empfehlenswert!) direkt zu EPs, zur RP6 Base oder zur M32 zu führen. &lt;br /&gt;
&lt;br /&gt;
======Freie Nutzung von PORTA* und PORTC*======&lt;br /&gt;
Um PORTA* und PORTC* frei nutzen zu können (für weitere I/O-Ports), muss man auf das externe SRAM verzichten, was nicht sehr ratsam ist. Mehr I/O-Ports kann man alternativ durch I/O Expander gewinnen. Falls man das SRAM trotzdem deaktivieren will, hier die Anleitung.&lt;br /&gt;
&lt;br /&gt;
Für den Umbau braucht man:&lt;br /&gt;
* Wannenstecker 2x5-polig gerade RM 2,54mm (z.B. [http://www.reichelt.de./ Reichelt] WSL 10G)&lt;br /&gt;
* 1-reihige Stiftleiste RM 2,54mm (z.B. 36-polig 732478)&lt;br /&gt;
* Eine Codierbrücke (z.B. aus Set 742902)&lt;br /&gt;
[[Bild:RP6_M128_PortA.JPG|thumb|PORTA*]]&lt;br /&gt;
&lt;br /&gt;
Für die Bestückung von PORTA* (SP2 AB2: Stecker PORTA*) lötet man den Wannenstecker hier (siehe Abb. PORTA*) auf.&lt;br /&gt;
[[Bild:RP6_M128_PortC.JPG|thumb|PORTC*]]&lt;br /&gt;
&lt;br /&gt;
Für die Bestückung von PORTC* (SP1 A2: PC0..7, YGND1) trennt man von der 1-reihigen Stiftleiste 9 Kontakte ab und lötet sie auf die PORTC*-Lötpunkte (siehe Abb. PORTC*).&lt;br /&gt;
&lt;br /&gt;
Dann muss noch der SRAM-Enable Jumper (SP1 EF1: Y27..29) bestückt werden:&lt;br /&gt;
&lt;br /&gt;
[[Bild:RP6_M128_EN_SRAM.JPG|EN_SRAM]]&lt;br /&gt;
&lt;br /&gt;
Man trennt von der 1-reihigen Stiftleiste 3 Kontakte ab und lötet sie auf die abgebildeten Lötpunkte. Vorher muss eine Leiterbahn auf der Lötseite der Platine zwischen den ENABLE-Lötpunkten aufgetrennt werden.&lt;br /&gt;
Wenn das SRAM wie bisher genutzt werden soll, steckt man die Codierbrücke auf die Stellung &amp;quot;ENABLE&amp;quot;. Will man stattdessen Port A und Port C frei nutzen (und damit auf SRAM verzichten!), kommt die Codierbrücke auf &amp;quot;DISABLE&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
======USRBUS======&lt;br /&gt;
Auf die 14 Kontakte neben dem Wannenstecker USRBUS2 ist noch nichts gelötet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:RP6_M128_USRBUS.JPG|thumb|USRBUS]]&lt;br /&gt;
&lt;br /&gt;
Ich würde auf Y1..Y14 eine Stiftleiste löten, damit die USRBUS-Belegung geändert werden kann.&lt;br /&gt;
&lt;br /&gt;
Man braucht dazu:&lt;br /&gt;
* 2-reihige Stiftleiste RM 2,54mm (z.B. 2x36-polig 742007)&lt;br /&gt;
* Einige Steckbuchsen mit Litze&lt;br /&gt;
&lt;br /&gt;
Man trennt von der 2-reihigen Stiftleiste 2x7 Kontakte ab und lötet sie auf die Punkte Y1..Y14 (SP2 E234: Y1..Y14) neben dem Wannenstecker USRBUS2. Wird die M128 über Flachkabel mit einem USRBUS-Stecker auf einer RP6 Experimentierplatine (EP) und/oder mit dem RP6 selbst verbunden, dann hat man mit allen mit dem USRBUS verbundenen Platinen eine direkte 14-polige Verbindung,- eben den &amp;quot;User Bus&amp;quot;. Den kann man dann nutzen, wie man will. Auf der M128 kann man mit Steckbuchsen die Pins Y1..Y14 mit anderen Pins verbinden.&lt;br /&gt;
&lt;br /&gt;
Beispiel: Verbindet man den Pin &amp;quot;ADC4&amp;quot; mit Y1 des USRBUS, dann steht der Eingang ADC4 auf allen an den USRBUS angeschlossenen Platinen an Y1 zur Verfügung. Man braucht also diesen Eingang nicht über ein eigenes Kabel auf eine EP zu führen, sondern kann dazu den USRBUS nehmen. Dadurch bleibt der Gesamtaufbau auf dem RP6 übersichtlich und komplett trennbar (man braucht nur die Stecker XBUS und USRBUS abzuziehen!).&lt;br /&gt;
&lt;br /&gt;
Wichtig: Man sollte gut dokumentieren, wie man den USRBUS am RP6 (vorn und hinten getrennt!), auf EPs und der M128 benutzt! Sonst kann es bei einer anderen Anordnung von EPs zu USRBUS Konflikten/Kurzschlüssen kommen.&lt;br /&gt;
&lt;br /&gt;
======IC5 ALERT====== [[Bild:RP6_M128_IC5_ALERT.JPG|thumb|IC5 ALERT]]&lt;br /&gt;
Dieser Lötpunkt (SP2 C2: AL) neben IC5 ist der Anschluß ALERT (Pin 3) des I2C-Temperatursensors TCN75A (SP2 C2: IC5).&lt;br /&gt;
&lt;br /&gt;
Dies ist ein Open-Drain Ausgang, der ein Alarm-Signal ausgibt, wenn die Temperatur die eingestellten Grenzen über-/unterschreitet (siehe auch Datenblatt des Sensors (TCN75A.pdf), Abschnitt 5.3.4!). Wenn man ALERT auf einen Eingang des Microcontrollers führen will, muß man auch noch einen Pullup-Widerstand vorsehen oder den internen Pullup des uC-Eingangs aktivieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
======VDD/GND Anschluß====== [[Bild:RP6_M128_VDDGND.JPG|thumb|VDD GND]]&lt;br /&gt;
Auf der CCPRO M128 gibt es 2 Lötpunkte (SP1 E34: YVDD3, YGND4) zwischen R5 und C7 bzw. direkt neben der Codierbrücke (SP1 E3: YL9, YL10) zum Deaktivieren von LED5.&lt;br /&gt;
&lt;br /&gt;
Hier könnte man VDD und GND kontaktieren. VDD ist der Lötpunkt, der näher an R5 liegt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Trennstellen=====&lt;br /&gt;
An diesen Stellen können Leiterbahnen unterbrochen werden, um Funktionen zu deaktivieren oder anders zu nutzen. &lt;br /&gt;
&lt;br /&gt;
======A16-/PD4-Nutzung====== [[Bild:RP6_M128_A16.JPG|thumb|A16/PD4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auf der CCPRO M128 gibt es ein 3-poliges Feld von Lötpunkten (SP2 AB1: PD4, A16, GND) unter dem CCPRO MEGA128 Modul (IC1). Standardmässig ist A16 des SRAM (IC3) hier auf GND gelegt. Damit kann man PD4 des Prozessors (ICP1) frei nutzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Will man A16 des SRAM mit PD4 schaltbar machen, muss man eine Leiterbahn auf der Bestückungsseite zwischen den oberen zwei der drei Lötpunkte auftrennen und die anderen (unteren) beiden Lötpunkte mit etwas Lötzinn oder einem SMD Null Ohm Widerstand verbinden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Sinn dieses Umbaus besteht darin, dass man danach anstelle von 64kB nun die vollen 128kB SRAM des IC3 adressieren kann. Man muss dann aber PD4 selbst schalten, da C-Control PRO ab Version 1.50 nur 64kB ext. SRAM ansteuern kann. Immerhin könnte man dann 2 Blöcke à je 64kB nutzen und mit PD4 zwischen beiden Blöcken umschalten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ob CCPRO damit klar kommt: Wohl kaum! Ich würde daher diesen Umbau nicht durchführen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zubehör und Ersatzteile ==&lt;br /&gt;
Von [http://www.conrad.de/ce/ CONRAD] gibt es z.B. &lt;br /&gt;
&lt;br /&gt;
* das LC-Display [http://www.conrad.de/ce/de/product/190911/LC-DISPLAY-16-X-2-KONFEKTIONIERT 190911], welches an die M32 und an die CCPRO M128 angeschlossen werden kann.&lt;br /&gt;
* einen IR-Ball [http://www.conrad.de/ce/de/product/191437/INFRAROT-BALL-FUeR-ROBOTER-FUssBALL 191437]&lt;br /&gt;
* einen Graustufen-Boden-Sensor [http://www.conrad.de/ce/de/product/191599/GRAUSTUFEN-BODEN-SENSOR-FUeR-FUssBALLROBOT 191599]&lt;br /&gt;
* eine IR-Fernbedienung [http://www.conrad.de/ce/de/product/340720/PROMO-8-UNIVERSALFERNBEDIENUNG 340720]&lt;br /&gt;
* Ersatzräder [http://www.conrad.de/ce/de/product/191307/ANTRIEBSRAD-RP5RP6 191307]&lt;br /&gt;
* Ersatzzahnräder [http://www.conrad.de/ce/de/product/191346/SCHRAeG-ZAHNRAeDERSATZ-RP5RP6 191346]&lt;br /&gt;
* Ersatzraupen [http://www.conrad.de/ce/de/product/191333/RAUPENSATZ-RP5RP6 191333]&lt;br /&gt;
&lt;br /&gt;
===Displays===&lt;br /&gt;
Die vorkonfektionierten Displays kann man zum Ausgeben von Texten, Sensordaten und kleinen Animationen benutzen. Sie können an die M32 und die CCPRO M128 angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
Diese 16x2 Zeichen Displays sind bisher lieferbar:&lt;br /&gt;
&lt;br /&gt;
* LC-Display ([http://www.conrad.de/ce/de/product/190911/LC-DISPLAY-16-X-2-KONFEKTIONIERT 190911])&lt;br /&gt;
* OLED-Display (197622)&lt;br /&gt;
* Backlight-Display ([http://www.conrad.de/ce/de/product/191621/DISPLAY-RP5RP6-BLAU-MIT-BACKLIGHT 191621])&lt;br /&gt;
&lt;br /&gt;
Das LCD ist weiterhin lieferbar, zeitweise (2007/08) gab es unter dieser Bestellnummer eine Version, die zu klein (66 x 37mm) war, um sie auf der M32 oder der CCPRO M128 zu montieren.&lt;br /&gt;
&lt;br /&gt;
Das OLED-Display ist aktuell (April 2012) nicht mehr lieferbar.&lt;br /&gt;
&lt;br /&gt;
Neu im Angebot ist das Backlight-Display.&lt;br /&gt;
&lt;br /&gt;
Diese Displays können mit 4 M3-Abstandbolzen 25 mm (Bestell-Nr. 526665) und 4 Muttern M3 (z.B. aus 815624), sowie 4 Schrauben M3 (z.B. aus 815322) auf der M32 oder CCPRO M128 befestigt werden. Leider sind die Befestigungslöcher der Displays zu klein für ein M3-Gewinde, so dass man die Löcher sehr vorsichtig auf 3..3,2 mm erweitern muss.&lt;br /&gt;
&lt;br /&gt;
===IR-Ball===&lt;br /&gt;
Den IR-Ball kann man benutzen um mit dem RP6 Fußball oder ähnliches zu spielen.&lt;br /&gt;
&lt;br /&gt;
===Graustufen-Boden-Sensor===&lt;br /&gt;
&lt;br /&gt;
===IR-Fernbedienung===&lt;br /&gt;
[[Bild:RP6_RC.jpg|thumb|2 RC5 Fernbedinungen]]&lt;br /&gt;
Mit der IR-Fernbedienung kann der RP6 wie ein ferngesteuertes Auto verwendet werden. Im Beispielprogramm &amp;quot;Example_08_TV_REMOTE&amp;quot; im Ordner mit den RP6-Base-Demos wird das noch genauer erläutert.&lt;br /&gt;
&lt;br /&gt;
===Ersatzräder===&lt;br /&gt;
Die Ersatzräder sind bei Conrad unter der Bestellnummer '''191307 - 62''' erhältlich&lt;br /&gt;
&lt;br /&gt;
===Ersatzzahnräder===&lt;br /&gt;
===Ersatzraupen===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Programmierung==&lt;br /&gt;
Um diesen Grundlagenartikel zum RP6 nicht immer länger werden zu lassen, habe ich den Teil zur Programmierung des RP6 und seiner Erweiterungsplatinen RP6 CONTROL M32 und RP6 CCPRO M128 ausgelagert: [[RP6 - Programmierung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==RP6v2==&lt;br /&gt;
Der neue RP6v2 ist weitgehend identisch mit dem RP6, so dass fast alle Angaben dieses Artikels auch für den RP6v2 zutreffen.&lt;br /&gt;
Für vom RP6 abweichende Details des [http://www.conrad.de/ce/de/product/191584/RP6-V2-ROBOTERSYSTEM RP6v2] und für dessen zukünftige Erweiterungsplatinen (z.B. die aktuell [http://www.arexx.com/forum/viewtopic.php?f=19&amp;amp;t=1797 hier] angekündigte RP6v2 M256 WiFi) gibt es einen eigenen Grundlagenartikel: [[RP6v2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Erfahrungsberichte==&lt;br /&gt;
&lt;br /&gt;
...in Arbeit...(kann aber gerne ergänzt werden)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[RP6 - Programmierung]]&lt;br /&gt;
* [[RP6v2]]&lt;br /&gt;
* [[RP6_Kamera_-_Mitmach-Projekt]]&lt;br /&gt;
* [[RP6v2_I2C-Portexpander]]&lt;br /&gt;
* [[CCRP5]]&lt;br /&gt;
* [[Yeti]]&lt;br /&gt;
* [[Asuro]]&lt;br /&gt;
* [[C't-Bot]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
&lt;br /&gt;
* [http://www.pcwelt.de/start/gaming_fun/gadgets/news/84558/ PC-Welt-Artikel]&lt;br /&gt;
&lt;br /&gt;
* Ankündigung des RP6 und der RP6 CONTROL M32 im [http://www.arexx.com/forum/viewtopic.php?t=370 AREXX Support Forum]&lt;br /&gt;
* Ankündigung der RP6 CCPRO M128 im [http://www.arexx.com/forum/viewtopic.php?f=19&amp;amp;t=834&amp;amp;start=0 AREXX Support Forum] und im [http://www.roboternetz.de/community/threads/42228-RP6-C-Control-PRO-MEGA128-Erweiterungsmodul-Website-online RoboterNETZ]&lt;br /&gt;
* Ankündigung des RP6v2 im [http://www.roboternetz.de/community/threads/56964-NEWS-RP6v2-die-neue-Version-2-des-RP6-Robot-Systems RoboterNETZ] und im [http://www.arexx.com/forum/viewtopic.php?f=19&amp;amp;t=1778 AREXX Support Forum]&lt;br /&gt;
* Ankündigung der RP6v2 M256 WiFi im [http://www.arexx.com/forum/viewtopic.php?f=19&amp;amp;t=1797 AREXX Support Forum]&lt;br /&gt;
* [http://www.arexx.com/rp6 AREXX RP6 Startseite]&lt;br /&gt;
* [http://www.arexx.com/forum/viewforum.php?f=19 AREXX Support Forum]&lt;br /&gt;
* [http://www.arexx.com/rp6/html/de/soft_doc_ccpro.htm AREXX CCPRO M128 Seite]&lt;br /&gt;
&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191524/RP6-ROBOTERSYSTEM RP6 bei CONRAD]&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191584/RP6-V2-ROBOTERSYSTEM RP6v2 bei CONRAD]&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191550/RP6-MEGA32-ERWEITERUNGSSATZ RP6 CONTROL M32 bei CONRAD]&lt;br /&gt;
* [http://www.conrad.de/ce/de/product/191563/RP6-CC-PRO-MEGA128-ERWEITERUNGSSATZ RP6 CCPRO M128 bei CONRAD]&lt;br /&gt;
* [http://www.c-control.de/c-control-pro/c-control-pro/startseite_c-control-pro.html C-Control PRO Startseite]&lt;br /&gt;
* [http://ccpro.cc2net.de/forum/ C-Control PRO Forum]&lt;br /&gt;
&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/viewforum.php?f=49 Roboternetz RP6 Forum]&lt;br /&gt;
* &amp;quot;Geburt&amp;quot; des Wiki im RN-Forum: [http://www.roboternetz.de/community/threads/32793-RP6-Wiki-Artikel RP6-Wiki-Artikel]&lt;br /&gt;
* Henkessoft: [http://www.henkessoft.de/Roboter/rp6.htm RP6]&lt;br /&gt;
* PIC-PROJEKTE Wiki: [http://pic-projekte.de/wiki/index.php?title=RP6  RP6]&lt;br /&gt;
&lt;br /&gt;
* [http://www.youtube.com/results?search_query=rp6 RP6 Videos]&lt;br /&gt;
* [http://de-de.facebook.com/pages/Robby-RP6/155118711202285 facebook]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Robotikeinstieg]]	 &lt;br /&gt;
[[Kategorie:Praxis]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Autoren==&lt;br /&gt;
--[[Benutzer:Sloti|Sloti]] 22:23, 29. Dez 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Tobias1|Tobias1]] 18:30, 06. Apr 2010 (CET)&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Dirk|Dirk]] 20:23, 28. Jun 2012 (CET)&lt;/div&gt;</summary>
		<author><name>MaxWeb</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Diskussion:RP6v2&amp;diff=20169</id>
		<title>Diskussion:RP6v2</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Diskussion:RP6v2&amp;diff=20169"/>
				<updated>2012-07-04T18:48:51Z</updated>
		
		<summary type="html">&lt;p&gt;MaxWeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Zitat aus dem Artikel: &amp;quot;Don, 05. Jul 2012 - Auslieferungsbeginn der RP6v2 M256 WiFi (?)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Laut Post von SlyD stimmt der von Conrad bekanntgegebene Termin der Auslieferung nicht: [http://www.roboternetz.de/community/threads/58162-Diskussion-zum-RP6-M256-WIFI-Modul/page3 Link zum Beitrag]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Wifi-Platine ist auch unabhängig vom RP6 zu erwerben, sollte der Abschnitt dazu nicht lieber in einen eigenen Beitrag ausgelagert werden?&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:MaxWeb|MaxWeb]] 20:48, 4. Jul 2012 (CEST)&lt;/div&gt;</summary>
		<author><name>MaxWeb</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Btm222&amp;diff=20166</id>
		<title>Btm222</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Btm222&amp;diff=20166"/>
				<updated>2012-06-30T14:45:09Z</updated>
		
		<summary type="html">&lt;p&gt;MaxWeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das Bluetooth-Funkmodul BTM222 bietet die Möglichkeit, Roboter oder eigene Schaltungen per Bluetooth drahtlos mit einem PC oder anderen Bluetoothfähigen&lt;br /&gt;
Geräten wie Mobiltelefonen zu verbinden. Dabei bietet es mit einem Preis von rund 15-20€ eine kostengünstige Alternative zu teuren Funkmodulen oder WLAN-Adaptern.&lt;br /&gt;
&lt;br /&gt;
== Daten ==&lt;br /&gt;
* Hersteller: Rayson&lt;br /&gt;
* Betriebsspannung: 3,3V&lt;br /&gt;
* Stromaufnahme: 114mA (Durchschnitt)&lt;br /&gt;
* Bluetooth 2.0+EDR zertifiziert&lt;br /&gt;
* Leistung: +10dBm (Klasse 1)&lt;br /&gt;
* Reichweite: Bis 100m im Freien &lt;br /&gt;
* Schnittstelle am Endgerät: Virtueller Serieller Port via SPP&lt;br /&gt;
* Schnittstelle zur Schaltung: UART (3,3V Pegel) / USB&lt;br /&gt;
* Konfiguration: SPP AT Befehlssatz&lt;br /&gt;
* Baudraten von 9600bps - 460,8 Kbps &lt;br /&gt;
* Maße: 28,2mm x 15mm x 2,8mm&lt;br /&gt;
&lt;br /&gt;
== Wichtiger Hinweis ==&lt;br /&gt;
Das BTM222 arbeitet mit einem UART-Pegel von 3,3V und darf daher NICHT direkt am RS232-Anschluss des PC oder an Schaltungen mit einem UART-Pegel von 5V betrieben werden!&lt;br /&gt;
Hier ist zwingend ein entsprechender Pegelwandler vorzusehen, ansonsten wird das Modul zerstört!&lt;br /&gt;
&lt;br /&gt;
==Fabrikeinstellungen und Inbetriebnahme==&lt;br /&gt;
Das Modul wird mit einer voreingestellten Baudrate von 19200baud ausgeliefert.&lt;br /&gt;
Möchte man die Einstellungen des Moduls ändern, so ist das Modul über einen geeigneten Pegelwandler an den seriellen Port eines PCs anzuschließen.&lt;br /&gt;
Mit einem geeigneten Terminalprogramm (Hyperterminal, HTerm, Terminal o.Ä.) ist nun eine Verbindung zu diesem seriellen Port herzustellen und die richtige Baudrate einzustellen.&lt;br /&gt;
Auf die Eingabe des Befehls &amp;quot;AT&amp;quot; sollte das Modul nun mit &amp;quot;OK&amp;quot; antworten.  Mit dem Befehl &amp;quot;ATI1&amp;quot; können nun die bisherigen Einstellungen abgerufen werden, der Befehl &amp;quot;ATZ0&amp;quot; stellt&lt;br /&gt;
die Werkseinstellungen wieder her. Mit &amp;quot;ATQ1&amp;quot; schaltet man die Meldungen wie &amp;quot;OK&amp;quot;, &amp;quot;ERROR&amp;quot;, &amp;quot;CONNECT&amp;quot; oder &amp;quot;DISCONNECT&amp;quot; ab, &amp;quot;ATQ0&amp;quot; schaltet diese ein. Der Befehl &amp;quot;ATE0&amp;quot; verhindert das Zurücksenden der per Bluetooth verschickten Daten per UART (Echo).&lt;br /&gt;
&lt;br /&gt;
Für weitere AT-Befehle sei auf [http://robotrack.org/BTM222/BTM-indexD09.htm SPP AT-Befehlssatz] verwiesen.&lt;br /&gt;
Wichtiger Hinweis: Manche Module reagieren mit einem &amp;quot;ERROR&amp;quot; auf AT-Befehle, wenn dem Befehl ein &amp;quot;\r\n&amp;quot; nachgesendet wird. In diesem Fall ist nur ein CR ( &amp;quot;\r&amp;quot; ) nachzusenden.&lt;br /&gt;
&lt;br /&gt;
Nun, da es vollständig konfiguriert ist, kann das Modul wieder vom PC getrennt und mit der Zielschaltung verbunden werden. Wichtig ist, dass sowohl das per Bluetooth verbundene Gerät als auch die Zielschaltung &lt;br /&gt;
die gleiche Baudraten-Einstellung haben wie das BTM222 - ansonsten kommen lediglich seltsame Zeichen beim anderen Gerät an. Anschließend muss das Modul nur noch mit dem Endgerät gepaart werden, danach ist die Konfiguration abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
== Betrieb ==&lt;br /&gt;
Einmal konfiguriert stellt das BTM222 eine Funkbrücke zwischen eigenen Schaltungen und Bluetooth-Endgeräten dar. Per UART an das Modul gesandte Daten werden per Bluetooth an das Endgerät übertragen und umgekehrt.&lt;br /&gt;
Dabei nutzt das Endgerät einen virtuellen Seriellen Port, um mit der Schaltung zu kommunizieren.&lt;br /&gt;
=== Status-LEDs ===&lt;br /&gt;
Viele Adapterplatinen verfügen über eine Anzahl von Status-LEDs, die das Debuggen im Fehlerfall teils erheblich vereinfachen.&lt;br /&gt;
&lt;br /&gt;
Die meisten dem Autor bekannten Adapterplatinen verfügen über zwei Status-LEDs, so etwa der BTM222-Adapter von [http://plischka.at/blog/?p=11 plischka.at] oder das auf [http://www.mikrokopter.de/ucwiki/BTM-222 mikrokopter.de]. Eine der LEDs zeigt dabei den Verbindungsstatus des Moduls an: Sie blinkt, wenn keine Verbindung besteht und leuchtet bei existierender Verbindung dauerhaft. Die zweite LED leuchtet genau dann, wenn Daten gesendet/empfangen werden.&lt;br /&gt;
&lt;br /&gt;
Andere Adapterplatinen hingegen haben andere Status-LEDs oder gar keine Status-LEDs, daher sei hier auf deren Datenblätter verwiesen.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Technische Daten, weitere Adapterplatinen, Bezugsquellen, SPP-Befehle, Korrektur, falls Fehler vorhanden, Troubleshooting}}&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
&lt;br /&gt;
[http://robotrack.org/BTM222/BTM-indexD09.htm http://robotrack.org/BTM222/BTM-indexD09.htm]&lt;br /&gt;
&lt;br /&gt;
[http://plischka.at/blog/?p=11 http://plischka.at/blog/?p=11]&lt;br /&gt;
&lt;br /&gt;
[http://www.mikrokopter.de/ucwiki/BTM-222 mikrokopter.de http://www.mikrokopter.de/ucwiki/BTM-222 mikrokopter.de]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Elektronik]]&lt;/div&gt;</summary>
		<author><name>MaxWeb</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Btm222&amp;diff=20165</id>
		<title>Btm222</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Btm222&amp;diff=20165"/>
				<updated>2012-06-29T17:42:19Z</updated>
		
		<summary type="html">&lt;p&gt;MaxWeb: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das Bluetooth-Funkmodul BTM222 bietet die Möglichkeit, Roboter oder eigene Schaltungen per Bluetooth drahtlos mit einem PC oder anderen Bluetoothfähigen&lt;br /&gt;
Geräten wie Mobiltelefonen zu verbinden. Dabei bietet es mit einem Preis von rund 15-20€ eine kostengünstige Alternative zu teuren Funkmodulen oder WLAN-Adaptern.&lt;br /&gt;
&lt;br /&gt;
== Daten ==&lt;br /&gt;
* Hersteller: Rayson&lt;br /&gt;
* Betriebsspannung: 3,3V&lt;br /&gt;
* Stromaufnahme: 114mA (Durchschnitt)&lt;br /&gt;
* Bluetooth 2.0+EDR zertifiziert&lt;br /&gt;
* Leistung: +10dBm (Klasse 1)&lt;br /&gt;
* Reichweite: Bis 100m im Freien &lt;br /&gt;
* Schnittstelle am Endgerät: Virtueller Serieller Port via SPP&lt;br /&gt;
* Schnittstelle zur Schaltung: UART (3,3V Pegel) / USB&lt;br /&gt;
* Konfiguration: SPP AT Befehlssatz&lt;br /&gt;
* Baudraten von 9600bps - 460,8 Kbps &lt;br /&gt;
* Maße: 28,2mm x 15mm x 2,8mm&lt;br /&gt;
&lt;br /&gt;
== Wichtiger Hinweis ==&lt;br /&gt;
Das BTM222 arbeitet mit einem UART-Pegel von 3,3V und darf daher NICHT direkt am RS232-Anschluss des PC oder an Schaltungen mit einem UART-Pegel von 5V betrieben werden!&lt;br /&gt;
Hier ist zwingend ein entsprechender Pegelwandler vorzusehen, ansonsten wird das Modul zerstört!&lt;br /&gt;
&lt;br /&gt;
==Fabrikeinstellungen und Inbetriebnahme==&lt;br /&gt;
Das Modul wird mit einer voreingestellten Baudrate von 19200baud ausgeliefert.&lt;br /&gt;
Möchte man die Einstellungen des Moduls ändern, so ist das Modul über einen geeigneten Pegelwandler an den seriellen Port eines PCs anzuschließen.&lt;br /&gt;
Mit einem geeigneten Terminalprogramm (Hyperterminal, HTerm, Terminal o.Ä.) ist nun eine Verbindung zu diesem seriellen Port herzustellen und die richtige Baudrate einzustellen.&lt;br /&gt;
Auf die Eingabe des Befehls &amp;quot;AT&amp;quot; sollte das Modul nun mit &amp;quot;OK&amp;quot; antworten.  Mit dem Befehl &amp;quot;ATI1&amp;quot; können nun die bisherigen Einstellungen abgerufen werden, der Befehl &amp;quot;ATZ0&amp;quot; stellt&lt;br /&gt;
die Werkseinstellungen wieder her. Mit &amp;quot;ATQ1&amp;quot; schaltet man die Meldungen wie &amp;quot;OK&amp;quot;, &amp;quot;ERROR&amp;quot;, &amp;quot;CONNECT&amp;quot; oder &amp;quot;DISCONNECT&amp;quot; ab, &amp;quot;ATQ0&amp;quot; schaltet diese ein. Der Befehl &amp;quot;ATE0&amp;quot; verhindert das Zurücksenden der per Bluetooth verschickten Daten per UART (Echo).&lt;br /&gt;
&lt;br /&gt;
Für weitere AT-Befehle sei auf [http://robotrack.org/BTM222/BTM-indexD09.htm SPP AT-Befehlssatz] verwiesen.&lt;br /&gt;
Wichtiger Hinweis: Manche Module reagieren mit einem &amp;quot;ERROR&amp;quot; auf AT-Befehle, wenn dem Befehl ein &amp;quot;\r\n&amp;quot; nachgesendet wird. In diesem Fall ist nur ein CR ( &amp;quot;\r&amp;quot; ) nachzusenden.&lt;br /&gt;
&lt;br /&gt;
Nun, da es vollständig konfiguriert ist, kann das Modul wieder vom PC getrennt und mit der Zielschaltung verbunden werden. Wichtig ist, dass sowohl das per Bluetooth verbundene Gerät als auch die Zielschaltung &lt;br /&gt;
die gleiche Baudraten-Einstellung haben wie das BTM222 - ansonsten kommen lediglich seltsame Zeichen beim anderen Gerät an. Anschließend muss das Modul nur noch mit dem Endgerät gepaart werden, danach ist die Konfiguration abgeschlossen.&lt;br /&gt;
&lt;br /&gt;
== Betrieb ==&lt;br /&gt;
Einmal konfiguriert stellt das BTM222 eine Funkbrücke zwischen eigenen Schaltungen und Bluetooth-Endgeräten dar. Per UART an das Modul gesandte Daten werden per Bluetooth an das Endgerät übertragen und umgekehrt.&lt;br /&gt;
Dabei nutzt das Endgerät einen virtuellen Seriellen Port, um mit der Schaltung zu kommunizieren.&lt;br /&gt;
=== Status-LEDs ===&lt;br /&gt;
Viele Adapterplatinen verfügen über eine Anzahl von Status-LEDs, die das Debuggen im Fehlerfall teils erheblich vereinfachen.&lt;br /&gt;
&lt;br /&gt;
Die meisten dem Autor bekannten Adapterplatinen verfügen über zwei Status-LEDs, so etwa der BTM222-Adapter von [http://plischka.at/blog/?p=11 plischka.at] oder das auf [http://www.mikrokopter.de/ucwiki/BTM-222 mikrokopter.de]. Eine der LEDs zeigt dabei den Verbindungsstatus des Moduls an: Sie blinkt, wenn keine Verbindung besteht und leuchtet bei existierender Verbindung dauerhaft. Die zweite LED leuchtet genau dann, wenn Daten gesendet/empfangen werden.&lt;br /&gt;
&lt;br /&gt;
Andere Adapterplatinen hingegen haben andere Status-LEDs oder gar keine Status-LEDs, daher sei hier auf deren Datenblätter verwiesen.&lt;br /&gt;
&lt;br /&gt;
{{Ausbauwunsch|Technische Daten, weitere Adapterplatinen, Bezugsquellen, SPP-Befehle, Korrektur, falls Fehler vorhanden, Troubleshooting}}&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
&lt;br /&gt;
[http://robotrack.org/BTM222/BTM-indexD09.htm http://robotrack.org/BTM222/BTM-indexD09.htm]&lt;br /&gt;
&lt;br /&gt;
[http://plischka.at/blog/?p=11 http://plischka.at/blog/?p=11]&lt;br /&gt;
&lt;br /&gt;
[http://www.mikrokopter.de/ucwiki/BTM-222 mikrokopter.de http://www.mikrokopter.de/ucwiki/BTM-222 mikrokopter.de]&lt;/div&gt;</summary>
		<author><name>MaxWeb</name></author>	</entry>

	</feed>