<?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=Chypsylon</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=Chypsylon"/>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Spezial:Beitr%C3%A4ge/Chypsylon"/>
		<updated>2026-04-11T20:44:48Z</updated>
		<subtitle>Benutzerbeiträge</subtitle>
		<generator>MediaWiki 1.25.1</generator>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=TWI_Slave_mit_avr-gcc&amp;diff=21364</id>
		<title>TWI Slave mit avr-gcc</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=TWI_Slave_mit_avr-gcc&amp;diff=21364"/>
				<updated>2012-10-19T16:12:46Z</updated>
		
		<summary type="html">&lt;p&gt;Chypsylon: /* Slave sourcecode */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Programm für einen AVR mit [[TWI]] (Hardware-[[I2C]])-Schnittstelle als Slave.&lt;br /&gt;
Manchmal stellt sich die Aufgabe, mehrere AVRs per [[I2C]] zu vernetzen. Ein Beispiel ist die Erweiterung eines bestehenden Systems um einen leistungsstärkeren Controller. Dies ist etwa beim [[Asuro]] oder [[Yeti]] denkbar, um z.B. mehr Ein/Ausgänge oder Speicherplatz zu bekommen.&lt;br /&gt;
&lt;br /&gt;
Man kann aber beim Bau eines Roboters auch von Anfang an auf ein System von mehreren vernetzten Controllern setzen. So kann man verschiedene Aufgabe, die weitgehend unabhängig voneinader gleichzeitg erledigt werden müssen, besser verteilen. Denkbar ist z.B. ein Controller für die Motorsteuerung, einer für die Sensorik, einer für Ein-und Ausgabe (wie LCD und Bedientaster),... , und ein zentraler Controller, der die Richtung vorgibt und alle anderen Controller mit Befehlen versorgt. Ein konkretes Beispiel ist der Roboterbausatz Nibo (siehe: [http://www.nicai-systems.de/nibo.html]) von nicai-systems, der einen Atmel ATmega128 als Hauptcontroller und zwei Atmel ATtiny44 als Controller für die Motorsteuerung und die IR-Sensorik einsetzt. Die Kommunikation läuft mit 400 kHz über den I2C-Bus mit dem ATmega128 als Master. &lt;br /&gt;
Schließlich kann ein entsprechend programmierter AVR auch als Ersatz für handelsübliche I2C-Bauteile dienen. Der kleinste AVR mit Hardware-I2C, der ATmega48, ist mit 1,30€ (Reichelt) billiger als viele normale I2C-ICs. Er kann bei entsprechender Programmierung z.B. die Aufgaben von zwei PCF8574 (8bit-Portexpander, 1,25€) und einem PCF8591 (4fach AD-Wandler, 2,35€) übernehmen und außerdem noch als I2C-EEPROM mit 256 Bytes dienen. &lt;br /&gt;
&lt;br /&gt;
Das System ist als eine Art Dualport-RAM konzipiert, Master und Slave teilen sich also einen Speicherbereich und können darüber Daten austauschen. Die Ansteuerung läuft wie bei den bekannten I2C-EEPROMs. Der Master schreibt erst die Adresse, die er lesen bzw- schreiben will. Bei einem Schreibzugriff überträgt er nun die Daten. Bei einem Lesezugriff wird ein repeated start im Lesemodus durchgeführt, dann können die Daten byteweise eingelesen werden. Die Adressen werden dabei automatisch weitergezählt, sodass mehrere Bytes in Folge verarbeitet werden können.&lt;br /&gt;
&lt;br /&gt;
Getestet wurde der Code für zwei Mega32 mit dem AVR Studio. Beachte: im AVR-Studio ist default ein ATmega128 eingestellt, unter Projekt -&amp;gt; Configuration Options kann das Device geändert werden, außerdem ist die Taktfrequenz des Controllers einzustellen. Im Projekt wird für den Master die Dateien twimaster.c und i2cmaster.h hinzugefügt, und für den Slave die twislave.c und twislave.h. &lt;br /&gt;
Wenn stattdessen ein makefile verwendet wird, müssen dort unter SRC die c-Dateien eingetragen werden.&lt;br /&gt;
&lt;br /&gt;
Die Verbindung zwischen Master und Slave erfolgt über die Pins SCL und SDA, außerdem muss ein gemeinsamer GND vorhanden sein. Abschlusswiderstände (4,7kOhm) nicht vergessen, am besten beim Master, siehe auch I2C-Definitionen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das folgende Programm (twislave.c) steuert das TWI (Hardware-I2C)-Interface eines AVRs als Slave an. Es müsste auf allen AVRs der Mega-Reihe funktionieren, die über eine TWI-Schnittstelle verfügen. &lt;br /&gt;
&lt;br /&gt;
== Master ==&lt;br /&gt;
Ein Testprogramm für den Master. Es wird die [http://homepage.hispeed.ch/peterfleury/avr-software.html#libs I2C-Master-Bibliothek von Peter Fleury] verwendet.&lt;br /&gt;
Es wird geprüft, ob der Slave bereit ist, dann werden drei Bytes erst in den Slave geschrieben, und anschließend wieder ausgelesen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// I2C-Master-Routinen von Peter Fleury verwenden &lt;br /&gt;
// siehe http://homepage.hispeed.ch/peterfleury/avr-software.html#libs&lt;br /&gt;
// Hier sind auch die Dateien: i2cmaster.h und twimaster.c zu finden, die benötigt werden&lt;br /&gt;
// Letztes Update des Codes 5. April 2010 durch HannoHupmann&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
#include &amp;quot;i2cmaster.h&amp;quot;  &lt;br /&gt;
#define SLAVE_ADRESSE 0x50&lt;br /&gt;
&lt;br /&gt;
uint8_t byte1 = 42;&lt;br /&gt;
uint8_t byte2 = 43;&lt;br /&gt;
uint8_t byte3 = 44;&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
  i2c_init();         // init I2C interface&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if(!(i2c_start(SLAVE_ADRESSE+I2C_WRITE))) //Slave bereit zum schreiben?&lt;br /&gt;
{&lt;br /&gt;
  i2c_write(0x00);  // Buffer Startadresse setzen 	&lt;br /&gt;
  i2c_write(byte1); // Drei Bytes schreiben...&lt;br /&gt;
  i2c_write(byte2); &lt;br /&gt;
  i2c_write(byte3); &lt;br /&gt;
  i2c_stop();       // Zugriff beenden&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
  /* Hier könnte eine Fehlermeldung ausgegeben werden... */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if(!(i2c_start(SLAVE_ADRESSE+I2C_WRITE))) //Slave bereit zum lesen?&lt;br /&gt;
{&lt;br /&gt;
  i2c_write(0x00); //Buffer Startadresse zum Auslesen&lt;br /&gt;
  i2c_rep_start(SLAVE_ADRESSE+I2C_READ); //Lesen beginnen&lt;br /&gt;
&lt;br /&gt;
  byte1= i2c_readAck(); // Bytes lesen...&lt;br /&gt;
  byte2= i2c_readAck();&lt;br /&gt;
  byte3= i2c_readNak(); // letztes Byte lesen, darum kein ACK&lt;br /&gt;
  i2c_stop();           // Zugriff beenden&lt;br /&gt;
} &lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
  /* Hier könnte eine Fehlermeldung ausgegeben werden... */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if ((byte1 != 42)||(byte2 != 43)||(byte3 != 44))&lt;br /&gt;
{&lt;br /&gt;
  /* Die Bytes wurden nicht korrekt übertragen und wieder gelesen! */ &lt;br /&gt;
}&lt;br /&gt;
    for(;;);	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Code wurde von HannoHupmann auf einem Mega32 getestet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Slave == &lt;br /&gt;
Hier soll nun der Code behandelt werden der für den Slave-Controller notwendig ist. Der vorgestellte Code schreibt die Register des Slaves an die Serielle Schnittstelle, mit einem Terminal Programm kann man sich die Ausgabe ansehen und überprüfen ob alles korrekt funktioniert. &lt;br /&gt;
Der Code ist wieder an den von Peter Fleury angelehnt.&lt;br /&gt;
&lt;br /&gt;
Der Slave sollte ohne Master folgende Ausgabe liefern: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
i2cdata: &lt;br /&gt;
10&lt;br /&gt;
11&lt;br /&gt;
12&lt;br /&gt;
13&lt;br /&gt;
usw. &lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
Die Register werden der Reihe nach mit ihrem Wert angezeigt. Wird der Master hinzugefügt sollte nun folgende Ausgabe im Terminal erscheinen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
i2cdata: &lt;br /&gt;
42&lt;br /&gt;
43&lt;br /&gt;
44&lt;br /&gt;
13&lt;br /&gt;
usw. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Slave Testprogramm ==&lt;br /&gt;
Ein Testprogramm für den Slave. Es verwendet zur Ausgabe die UART-lib von P. Fleury, die auf derselben Homepage wie die TWI-Master-Lib zu finden ist.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
Testprogramm für den Slave &lt;br /&gt;
Der Buffer wird mit Werten gefüllt. Dann wird er fortlaufend über die serielle Schnittstelle ausgegeben.&lt;br /&gt;
Nun kann man dort sehen, wenn der Master einen Wert ändert&lt;br /&gt;
*/&lt;br /&gt;
#include &amp;lt;util/twi.h&amp;gt; 	    //enthält z.B. die Bezeichnungen für die Statuscodes in TWSR&lt;br /&gt;
#include &amp;lt;avr/interrupt.h&amp;gt;  //dient zur Behandlung der Interrupts&lt;br /&gt;
#include &amp;lt;stdint.h&amp;gt; 	    //definiert den Datentyp uint8_t&lt;br /&gt;
#include &amp;quot;twislave.h&amp;quot;&lt;br /&gt;
#include &amp;quot;uart.h&amp;quot;           //UART-Lib von P- Fleury&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;         //nötig für Zahlumwandlung mit itoa&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#define BAUD 9600 //Baudrate&lt;br /&gt;
#define SLAVE_ADRESSE 0x50 //Die Slave-Adresse&lt;br /&gt;
&lt;br /&gt;
//Hilfsfunktion, um Zahlen über das UART auszugeben&lt;br /&gt;
void uart_puti( const int val )&lt;br /&gt;
{&lt;br /&gt;
    char buffer[8];&lt;br /&gt;
    uart_puts( itoa(val, buffer, 10) );&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main (void)&lt;br /&gt;
{&lt;br /&gt;
//TWI als Slave mit Adresse slaveadr starten&lt;br /&gt;
init_twi_slave(SLAVE_ADRESSE);&lt;br /&gt;
&lt;br /&gt;
//i2cdatamit Werten füllen, die der Master auslesen und ändern kann&lt;br /&gt;
for(uint8_t i=0;i&amp;lt;i2c_buffer_size;i++)&lt;br /&gt;
	{&lt;br /&gt;
		i2cdata[i]=10+i;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
//Serielle Schnittstelle aktivieren&lt;br /&gt;
uart_init((UART_BAUD_SELECT((BAUD),F_CPU)));&lt;br /&gt;
uart_puts(&amp;quot;I2C-Test\r\n&amp;quot;);&lt;br /&gt;
uart_puts(&amp;quot;Teste I2C-Slave mit Adresse &amp;quot;); uart_puti(SLAVE_ADRESSE);&lt;br /&gt;
uart_puts(&amp;quot;\r\n&amp;quot;);&lt;br /&gt;
uart_puts(&amp;quot;\r\n&amp;quot;); //Leerzeile&lt;br /&gt;
&lt;br /&gt;
//in einer Endlosschleife den Inhalt der Buffer ausgeben&lt;br /&gt;
while(1) &lt;br /&gt;
{&lt;br /&gt;
	uart_puts(&amp;quot;i2cdata:\r\n&amp;quot;);&lt;br /&gt;
	for(uint8_t i=0;i&amp;lt;i2c_buffer_size;i++)&lt;br /&gt;
		{&lt;br /&gt;
			uart_puti(i2cdata[i]);&lt;br /&gt;
			uart_puts(&amp;quot;\r\n&amp;quot;);&lt;br /&gt;
		}&lt;br /&gt;
	uart_puts(&amp;quot;\r\n&amp;quot;);//leerzeile&lt;br /&gt;
_delay_ms(500);&lt;br /&gt;
} //end.while&lt;br /&gt;
} //end.main&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Slave sourcecode ==&lt;br /&gt;
Die twislave.c für den Slave. Stand: 05.09.2012 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;util/twi.h&amp;gt; 	    //enthält z.B. die Bezeichnungen für die Statuscodes in TWSR&lt;br /&gt;
#include &amp;lt;avr/interrupt.h&amp;gt;  //dient zur Behandlung der Interrupts&lt;br /&gt;
#include &amp;lt;stdint.h&amp;gt;         //definiert den Datentyp uint8_t       &lt;br /&gt;
#include &amp;quot;twislave.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
//%%%%%%%% Globale Variablen, die vom Hauptprogramm genutzt werden %%%%%%%%&lt;br /&gt;
/*Der Buffer, in dem die Daten gespeichert werden. &lt;br /&gt;
Aus Sicht des Masters läuft der Zugrif auf den Buffer genau wie bei einem I2C-EEPROm ab.&lt;br /&gt;
Für den Slave ist es eine globale Variable&lt;br /&gt;
*/&lt;br /&gt;
volatile uint8_t buffer_adr; //&amp;quot;Adressregister&amp;quot; für den Buffer&lt;br /&gt;
&lt;br /&gt;
/*Initaliserung des TWI-Inteface. Muss zu Beginn aufgerufen werden, sowie bei einem Wechsel der Slave Adresse&lt;br /&gt;
Parameter adr: gewünschte Slave-Adresse&lt;br /&gt;
*/&lt;br /&gt;
void init_twi_slave(uint8_t adr)&lt;br /&gt;
{&lt;br /&gt;
        TWAR= adr; //Adresse setzen&lt;br /&gt;
	TWCR &amp;amp;= ~(1&amp;lt;&amp;lt;TWSTA)|(1&amp;lt;&amp;lt;TWSTO);&lt;br /&gt;
	TWCR|= (1&amp;lt;&amp;lt;TWEA) | (1&amp;lt;&amp;lt;TWEN)|(1&amp;lt;&amp;lt;TWIE); 	&lt;br /&gt;
	buffer_adr=0xFF;  &lt;br /&gt;
	sei();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Je nach Statuscode in TWSR müssen verschiedene Bitmuster in TWCR geschreiben werden(siehe Tabellen im Datenblatt!). &lt;br /&gt;
//Makros für die verwendeten Bitmuster:&lt;br /&gt;
&lt;br /&gt;
//ACK nach empfangenen Daten senden/ ACK nach gesendeten Daten erwarten&lt;br /&gt;
#define TWCR_ACK TWCR = (1&amp;lt;&amp;lt;TWEN)|(1&amp;lt;&amp;lt;TWIE)|(1&amp;lt;&amp;lt;TWINT)|(1&amp;lt;&amp;lt;TWEA)|(0&amp;lt;&amp;lt;TWSTA)|(0&amp;lt;&amp;lt;TWSTO)|(0&amp;lt;&amp;lt;TWWC);  &lt;br /&gt;
&lt;br /&gt;
//NACK nach empfangenen Daten senden/ NACK nach gesendeten Daten erwarten     &lt;br /&gt;
#define TWCR_NACK TWCR = (1&amp;lt;&amp;lt;TWEN)|(1&amp;lt;&amp;lt;TWIE)|(1&amp;lt;&amp;lt;TWINT)|(0&amp;lt;&amp;lt;TWEA)|(0&amp;lt;&amp;lt;TWSTA)|(0&amp;lt;&amp;lt;TWSTO)|(0&amp;lt;&amp;lt;TWWC);&lt;br /&gt;
&lt;br /&gt;
//switch to the non adressed slave mode...&lt;br /&gt;
#define TWCR_RESET TWCR = (1&amp;lt;&amp;lt;TWEN)|(1&amp;lt;&amp;lt;TWIE)|(1&amp;lt;&amp;lt;TWINT)|(1&amp;lt;&amp;lt;TWEA)|(0&amp;lt;&amp;lt;TWSTA)|(1&amp;lt;&amp;lt;TWSTO)|(0&amp;lt;&amp;lt;TWWC);  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/*ISR, die bei einem Ereignis auf dem Bus ausgelöst wird. Im Register TWSR befindet sich dann &lt;br /&gt;
ein Statuscode, anhand dessen die Situation festgestellt werden kann.&lt;br /&gt;
*/&lt;br /&gt;
ISR (TWI_vect)  &lt;br /&gt;
{&lt;br /&gt;
uint8_t data=0;&lt;br /&gt;
&lt;br /&gt;
switch (TW_STATUS) //TWI-Statusregister prüfen und nötige Aktion bestimmen &lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
// Slave Receiver &lt;br /&gt;
&lt;br /&gt;
case TW_SR_SLA_ACK: // 0x60 Slave Receiver, Slave wurde adressiert	&lt;br /&gt;
	TWCR_ACK; // nächstes Datenbyte empfangen, ACK danach senden&lt;br /&gt;
	buffer_adr=0xFF; //Bufferposition ist undefiniert&lt;br /&gt;
break;&lt;br /&gt;
	&lt;br /&gt;
case TW_SR_DATA_ACK: // 0x80 Slave Receiver, ein Datenbyte wurde empfangen&lt;br /&gt;
	data=TWDR; //Empfangene Daten auslesen&lt;br /&gt;
	if (buffer_adr == 0xFF) //erster Zugriff, Bufferposition setzen&lt;br /&gt;
		{&lt;br /&gt;
			//Kontrolle ob gewünschte Adresse im erlaubten bereich&lt;br /&gt;
			if(data&amp;lt;i2c_buffer_size+1)&lt;br /&gt;
				{&lt;br /&gt;
					buffer_adr= data; //Bufferposition wie adressiert setzen&lt;br /&gt;
				}&lt;br /&gt;
			else&lt;br /&gt;
				{&lt;br /&gt;
					buffer_adr=0; //Adresse auf Null setzen. Ist das sinnvoll? TO DO!&lt;br /&gt;
				}				&lt;br /&gt;
			TWCR_ACK;	// nächstes Datenbyte empfangen, ACK danach, um nächstes Byte anzufordern&lt;br /&gt;
		}&lt;br /&gt;
	else //weiterer Zugriff, nachdem die Position im Buffer gesetzt wurde. NUn die Daten empfangen und speichern&lt;br /&gt;
		{&lt;br /&gt;
		&lt;br /&gt;
			if(buffer_adr&amp;lt;i2c_buffer_size+1)&lt;br /&gt;
				{&lt;br /&gt;
						i2cdata[buffer_adr]=data; //Daten in Buffer schreibe	&lt;br /&gt;
				}&lt;br /&gt;
			buffer_adr++; //Buffer-Adresse weiterzählen für nächsten Schreibzugriff&lt;br /&gt;
			TWCR_ACK;	&lt;br /&gt;
		}&lt;br /&gt;
break;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Slave transmitter&lt;br /&gt;
&lt;br /&gt;
case TW_ST_SLA_ACK: //0xA8 Slave wurde im Lesemodus adressiert und hat ein ACK zurückgegeben.&lt;br /&gt;
	//Hier steht kein break! Es wird also der folgende Code ebenfalls ausgeführt!&lt;br /&gt;
	&lt;br /&gt;
case TW_ST_DATA_ACK: //0xB8 Slave Transmitter, Daten wurden angefordert&lt;br /&gt;
&lt;br /&gt;
	if (buffer_adr == 0xFF) //zuvor keine Leseadresse angegeben! &lt;br /&gt;
		{&lt;br /&gt;
			buffer_adr=0;&lt;br /&gt;
		}	&lt;br /&gt;
		&lt;br /&gt;
	if(buffer_adr&amp;lt;i2c_buffer_size+1)	&lt;br /&gt;
		{&lt;br /&gt;
			TWDR = i2cdata[buffer_adr]; //Datenbyte senden&lt;br /&gt;
			buffer_adr++; //bufferadresse für nächstes Byte weiterzählen&lt;br /&gt;
		}&lt;br /&gt;
	else&lt;br /&gt;
		{&lt;br /&gt;
			TWDR=0; //Kein Daten mehr im Buffer&lt;br /&gt;
		}&lt;br /&gt;
	TWCR_ACK;&lt;br /&gt;
break;&lt;br /&gt;
case TW_SR_STOP:&lt;br /&gt;
            TWCR_ACK;&lt;br /&gt;
        break;&lt;br /&gt;
case TW_ST_DATA_NACK: // 0xC0 Keine Daten mehr gefordert &lt;br /&gt;
case TW_SR_DATA_NACK: // 0x88 &lt;br /&gt;
case TW_ST_LAST_DATA: // 0xC8  Last data byte in TWDR has been transmitted (TWEA = “0”); ACK has been received&lt;br /&gt;
default: 	&lt;br /&gt;
    TWCR_RESET;&lt;br /&gt;
break;&lt;br /&gt;
	&lt;br /&gt;
} //end.switch (TW_STATUS)&lt;br /&gt;
} //end.ISR(TWI_vect)&lt;br /&gt;
&lt;br /&gt;
////Ende von twislave.c////&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Slave header ==&lt;br /&gt;
Die zugehörige Headerdatei twislave.h für den Slave. Stand: 05.09.2012&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#ifndef _TWISLAVE_H&lt;br /&gt;
#define _TWISLAVE_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;util/twi.h&amp;gt; 		  //enthaelt z.B. die Bezeichnungen fuer die Statuscodes in TWSR&lt;br /&gt;
#include &amp;lt;avr/interrupt.h&amp;gt;  //dient zur behandlung der Interrupts&lt;br /&gt;
#include &amp;lt;stdint.h&amp;gt; 		    //definiert den Datentyp uint8_t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/** &lt;br /&gt;
 *  @defgroup twislave TWI-Slave&lt;br /&gt;
 *  @code #include &amp;quot;twislave.h&amp;quot; @endcode&lt;br /&gt;
 * &lt;br /&gt;
 *  @brief Betrieb eines AVRs mit Hardware-TWI-Schnittstelle als Slave.&lt;br /&gt;
 *  Zu Beginn muss init_twi_slave mit der gewuenschten Slave-Adresse als&lt;br /&gt;
 *  Parameter aufgerufen werden.&lt;br /&gt;
 *&lt;br /&gt;
 * Der Datenaustausch mit dem Master erfolgt ueber den Buffer i2cdata, &lt;br /&gt;
 * auf den von Master und Slave zugegriffen werden kann. &lt;br /&gt;
 * Dies ist fuer den Slave eine globale Variable (Array aus uint8_t). &lt;br /&gt;
&lt;br /&gt;
 * Der Zugriff durch den Master erfolgt aehnlich wie bei einem&lt;br /&gt;
 * normalen I2C-EEPROM.&lt;br /&gt;
 * Man sendet zunaechst die Bufferposition, an die man schreiben will,&lt;br /&gt;
 * und dann die Daten. &lt;br /&gt;
 * Die Bufferposition wird automatisch hochgezaehlt, sodass man mehrere&lt;br /&gt;
 * Datenbytes hintereinander schreiben kann, ohne jedesmal die &lt;br /&gt;
 * Bufferadresse zu schreiben.&lt;br /&gt;
 *&lt;br /&gt;
 * Um vom Master aus zu lesen, uebertraegt man zunaechst in einem &lt;br /&gt;
 * Schreibzugriff die gewuenschte Bufferposition und liest dann nach&lt;br /&gt;
 * einem repeated start die Daten aus. Die Bufferposition wird &lt;br /&gt;
 * automatisch hochgezaehlt, sodass man mehrere Datenbytes&lt;br /&gt;
 * hintereinander lesen kann, ohne jedesmal die Bufferposition zu&lt;br /&gt;
 * schreiben.&lt;br /&gt;
 *&lt;br /&gt;
 * Abgefangene Fehlbedienung durch den Master:&lt;br /&gt;
 * - Lesen ueber die Grenze des txbuffers hinaus&lt;br /&gt;
 * - Schreiben ueber die Grenzen des rxbuffers hinaus&lt;br /&gt;
 * - Angabe einer ungueltigen Schreib/Lese-Adresse&lt;br /&gt;
 * - Lesezugriff, ohne vorher Leseadresse geschrieben zu haben&lt;br /&gt;
 * &lt;br /&gt;
 *  @author uwegw&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/*@{*/&lt;br /&gt;
&lt;br /&gt;
//%%%%%%%% von Benutzer konfigurierbare Einstellungen %%%%%%%%&lt;br /&gt;
/**@brief Groesse des Buffers in Byte (2..254) */&lt;br /&gt;
#define i2c_buffer_size 10// I2C_REG_ANZAHL 254 Hier kann eingestellt werden wieviele Register ausgegeben werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//%%%%%%%% Globale Variablen, die vom Hauptprogramm genutzt werden %%%%%%%%&lt;br /&gt;
/**@brief Der Buffer, in dem die Daten gespeichert werden.&lt;br /&gt;
 * Aus Sicht des Masters laeuft der Zugrif auf den Buffer genau wie&lt;br /&gt;
 *  bei einem I2C-EEPROm ab.&lt;br /&gt;
 * Fuer den Slave ist es eine globale Variable&lt;br /&gt;
*/&lt;br /&gt;
volatile uint8_t i2cdata[i2c_buffer_size];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/**@brief Initaliserung des TWI-Inteface. Muss zu Beginn aufgerufen werden, sowie bei einem Wechsel der Slave Adresse&lt;br /&gt;
 * @param adr gewuenschte Slave-Adresse */&lt;br /&gt;
void init_twi_slave(uint8_t adr);&lt;br /&gt;
&lt;br /&gt;
//%%%%%%%% ab hier sind normalerweise keine weiteren Aenderungen erforderlich! %%%%%%%%//&lt;br /&gt;
//____________________________________________________________________________________//&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Bei zu alten AVR-GCC-Versionen werden die Interrupts anders genutzt, daher in diesem Fall mit Fehlermeldung abbrechen&lt;br /&gt;
#if (__GNUC__ * 100 + __GNUC_MINOR__) &amp;lt; 304&lt;br /&gt;
	#error &amp;quot;This library requires AVR-GCC 3.4.5 or later, update to newer AVR-GCC compiler !&amp;quot;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
//Schutz vor unsinnigen Buffergroessen&lt;br /&gt;
#if (i2c_buffer_size &amp;gt; 254)&lt;br /&gt;
	#error Buffer zu gross gewaehlt! Maximal 254 Bytes erlaubt.&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#if (i2c_buffer_size &amp;lt; 2)&lt;br /&gt;
	#error Buffer muss mindestens zwei Byte gross sein!&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#endif //#ifdef _TWISLAVE_H&lt;br /&gt;
////Ende von twislave.h////&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Andere Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.jtronics.de/avr-projekte/library-i2c/twi-slave-avr http://www.jtronics.de/avr-projekte/library-i2c/twi-slave-avr]&lt;br /&gt;
* [http://www.ermicro.com/blog/?p=1239 http://www.ermicro.com/blog/?p=1239]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Microcontroller]]&lt;br /&gt;
[[Kategorie:Quellcode C]]&lt;/div&gt;</summary>
		<author><name>Chypsylon</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=TWI_Slave_mit_avr-gcc&amp;diff=18790</id>
		<title>TWI Slave mit avr-gcc</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=TWI_Slave_mit_avr-gcc&amp;diff=18790"/>
				<updated>2011-12-05T15:07:42Z</updated>
		
		<summary type="html">&lt;p&gt;Chypsylon: /* Andere Bibliotheken */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Programm für einen AVR mit [[TWI]] (Hardware-[[I2C]])-Schnittstelle als Slave.&lt;br /&gt;
Manchmal stellt sich die Aufgabe, mehrere AVRs per [[I2C]] zu vernetzen. Ein Beispiel ist die Erweiterung eines bestehenden Systems um einen leistungsstärkeren Controller. Dies ist etwa beim [[Asuro]] oder [[Yeti]] denkbar, um z.B. mehr Ein/Ausgänge oder Speicherplatz zu bekommen.&lt;br /&gt;
&lt;br /&gt;
Man kann aber beim Bau eines Roboters auch von Anfang an auf ein System von mehreren vernetzten Controllern setzen. So kann man verschiedene Aufgabe, die weitgehend unabhängig voneinader gleichzeitg erledigt werden müssen, besser verteilen. Denkbar ist z.B. ein Controller für die Motorsteuerung, einer für die Sensorik, einer für Ein-und Ausgabe (wie LCD und Bedientaster),... , und ein zentraler Controller, der die Richtung vorgibt und alle anderen Controller mit Befehlen versorgt. Ein konkretes Beispiel ist der Roboterbausatz Nibo (siehe: [http://www.nicai-systems.de/nibo.html]) von nicai-systems, der einen Atmel ATmega128 als Hauptcontroller und zwei Atmel ATtiny44 als Controller für die Motorsteuerung und die IR-Sensorik einsetzt. Die Kommunikation läuft mit 400 kHz über den I2C-Bus mit dem ATmega128 als Master. &lt;br /&gt;
Schließlich kann ein entsprechend programmierter AVR auch als Ersatz für handelsübliche I2C-Bauteile dienen. Der kleinste AVR mit Hardware-I2C, der ATmega48, ist mit 1,30€ (Reichelt) billiger als viele normale I2C-ICs. Er kann bei entsprechender Programmierung z.B. die Aufgaben von zwei PCF8574 (8bit-Portexpander, 1,25€) und einem PCF8591 (4fach AD-Wandler, 2,35€) übernehmen und außerdem noch als I2C-EEPROM mit 256 Bytes dienen. &lt;br /&gt;
&lt;br /&gt;
Das System ist als eine Art Dualport-RAM konzipiert, Master und Slave teilen sich also einen Speicherbereich und können darüber Daten austauschen. Die Ansteuerung läuft wie bei den bekannten I2C-EEPROMs. Der Master schreibt erst die Adresse, die er lesen bzw- schreiben will. Bei einem Schreibzugriff überträgt er nun die Daten. Bei einem Lesezugriff wird ein repeated start im Lesemodus durchgeführt, dann können die Daten byteweise eingelesen werden. Die Adressen werden dabei automatisch weitergezählt, sodass mehrere Bytes in Folge verarbeitet werden können.&lt;br /&gt;
&lt;br /&gt;
Getestet wurde der Code für zwei Mega32 mit dem AVR Studio. Beachte: im AVR-Studio ist default ein ATmega128 eingestellt, unter Projekt -&amp;gt; Configuration Options kann das Device geändert werden, außerdem ist die Taktfrequenz des Controllers einzustellen. Im Projekt wird für den Master die Dateien twimaster.c und i2cmaster.h hinzugefügt, und für den Slave die twislave.c und twislave.h. &lt;br /&gt;
Wenn stattdessen ein makefile verwendet wird, müssen dort unter SRC die c-Dateien eingetragen werden.&lt;br /&gt;
&lt;br /&gt;
Die Verbindung zwischen Master und Slave erfolgt über die Pins SCL und SDA, außerdem muss ein gemeinsamer GND vorhanden sein. Abschlusswiderstände (4,7kOhm) nicht vergessen, am besten beim Master, siehe auch I2C-Definitionen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das folgende Programm (twislave.c) steuert das TWI (Hardware-I2C)-Interface eines AVRs als Slave an. Es müsste auf allen AVRs der Mega-Reihe funktionieren, die über eine TWI-Schnittstelle verfügen. &lt;br /&gt;
&lt;br /&gt;
== Master ==&lt;br /&gt;
Ein Testprogramm für den Master. Es wird die [http://homepage.hispeed.ch/peterfleury/avr-software.html#libs I2C-Master-Bibliothek von Peter Fleury] verwendet.&lt;br /&gt;
Es wird geprüft, ob der Slave bereit ist, dann werden drei Bytes erst in den Slave geschrieben, und anschließend wieder ausgelesen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// I2C-Master-Routinen von Peter Fleury verwenden &lt;br /&gt;
// siehe http://homepage.hispeed.ch/peterfleury/avr-software.html#libs&lt;br /&gt;
// Hier sind auch die Dateien: i2cmaster.h und twimaster.c zu finden, die benötigt werden&lt;br /&gt;
// Letztes Update des Codes 5. April 2010 durch HannoHupmann&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
#include &amp;quot;i2cmaster.h&amp;quot;  &lt;br /&gt;
#define SLAVE_ADRESSE 0x50&lt;br /&gt;
&lt;br /&gt;
uint8_t byte1 = 42;&lt;br /&gt;
uint8_t byte2 = 43;&lt;br /&gt;
uint8_t byte3 = 44;&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
  i2c_init();         // init I2C interface&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if(!(i2c_start(SLAVE_ADRESSE+I2C_WRITE))) //Slave bereit zum schreiben?&lt;br /&gt;
{&lt;br /&gt;
  i2c_write(0x00);  // Buffer Startadresse setzen 	&lt;br /&gt;
  i2c_write(byte1); // Drei Bytes schreiben...&lt;br /&gt;
  i2c_write(byte2); &lt;br /&gt;
  i2c_write(byte3); &lt;br /&gt;
  i2c_stop();       // Zugriff beenden&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
  /* Hier könnte eine Fehlermeldung ausgegeben werden... */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if(!(i2c_start(SLAVE_ADRESSE+I2C_WRITE))) //Slave bereit zum lesen?&lt;br /&gt;
{&lt;br /&gt;
  i2c_write(0x00); //Buffer Startadresse zum Auslesen&lt;br /&gt;
  i2c_rep_start(SLAVE_ADRESSE+I2C_READ); //Lesen beginnen&lt;br /&gt;
&lt;br /&gt;
  byte1= i2c_readAck(); // Bytes lesen...&lt;br /&gt;
  byte2= i2c_readAck();&lt;br /&gt;
  byte3= i2c_readNak(); // letztes Byte lesen, darum kein ACK&lt;br /&gt;
  i2c_stop();           // Zugriff beenden&lt;br /&gt;
} &lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
  /* Hier könnte eine Fehlermeldung ausgegeben werden... */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if ((byte1 != 42)||(byte2 != 43)||(byte3 != 44))&lt;br /&gt;
{&lt;br /&gt;
  /* Die Bytes wurden nicht korrekt übertragen und wieder gelesen! */ &lt;br /&gt;
}&lt;br /&gt;
    for(;;);	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Code wurde von HannoHupmann auf einem Mega32 getestet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Slave == &lt;br /&gt;
Hier soll nun der Code behandelt werden der für den Slave-Controller notwendig ist. Der vorgestellte Code schreibt die Register des Slaves an die Serielle Schnittstelle, mit einem Terminal Programm kann man sich die Ausgabe ansehen und überprüfen ob alles korrekt funktioniert. &lt;br /&gt;
Der Code ist wieder an den von Peter Fleury angelehnt.&lt;br /&gt;
&lt;br /&gt;
Der Slave sollte ohne Master folgende Ausgabe liefern: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
i2cdata: &lt;br /&gt;
10&lt;br /&gt;
11&lt;br /&gt;
12&lt;br /&gt;
13&lt;br /&gt;
usw. &lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
Die Register werden der Reihe nach mit ihrem Wert angezeigt. Wird der Master hinzugefügt sollte nun folgende Ausgabe im Terminal erscheinen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
i2cdata: &lt;br /&gt;
42&lt;br /&gt;
43&lt;br /&gt;
44&lt;br /&gt;
13&lt;br /&gt;
usw. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Slave Testprogramm ==&lt;br /&gt;
Ein Testprogramm für den Slave. Es verwendet zur Ausgabe die UART-lib von P. Fleury, die auf derselben Homepage wie die TWI-Master-Lib zu finden ist.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
Testprogramm für den Slave &lt;br /&gt;
Der Buffer wird mit Werten gefüllt. Dann wird er fortlaufend über die serielle Schnittstelle ausgegeben.&lt;br /&gt;
Nun kann man dort sehen, wenn der Master einen Wert ändert&lt;br /&gt;
*/&lt;br /&gt;
#include &amp;lt;util/twi.h&amp;gt; 	    //enthält z.B. die Bezeichnungen für die Statuscodes in TWSR&lt;br /&gt;
#include &amp;lt;avr/interrupt.h&amp;gt;  //dient zur Behandlung der Interrupts&lt;br /&gt;
#include &amp;lt;stdint.h&amp;gt; 	    //definiert den Datentyp uint8_t&lt;br /&gt;
#include &amp;quot;twislave.h&amp;quot;&lt;br /&gt;
#include &amp;quot;uart.h&amp;quot;           //UART-Lib von P- Fleury&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;         //nötig für Zahlumwandlung mit itoa&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#define BAUD 9600 //Baudrate&lt;br /&gt;
#define SLAVE_ADRESSE 0x50 //Die Slave-Adresse&lt;br /&gt;
&lt;br /&gt;
//Hilfsfunktion, um Zahlen über das UART auszugeben&lt;br /&gt;
void uart_puti( const int val )&lt;br /&gt;
{&lt;br /&gt;
    char buffer[8];&lt;br /&gt;
    uart_puts( itoa(val, buffer, 10) );&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main (void)&lt;br /&gt;
{&lt;br /&gt;
//TWI als Slave mit Adresse slaveadr starten&lt;br /&gt;
init_twi_slave(SLAVE_ADRESSE);&lt;br /&gt;
&lt;br /&gt;
//i2cdatamit Werten füllen, die der Master auslesen und ändern kann&lt;br /&gt;
for(uint8_t i=0;i&amp;lt;i2c_buffer_size;i++)&lt;br /&gt;
	{&lt;br /&gt;
		i2cdata[i]=10+i;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
//Serielle Schnittstelle aktivieren&lt;br /&gt;
uart_init((UART_BAUD_SELECT((BAUD),F_CPU)));&lt;br /&gt;
uart_puts(&amp;quot;I2C-Test\r\n&amp;quot;);&lt;br /&gt;
uart_puts(&amp;quot;Teste I2C-Slave mit Adresse &amp;quot;); uart_puti(SLAVE_ADRESSE);&lt;br /&gt;
uart_puts(&amp;quot;\r\n&amp;quot;);&lt;br /&gt;
uart_puts(&amp;quot;\r\n&amp;quot;); //Leerzeile&lt;br /&gt;
&lt;br /&gt;
//in einer Endlosschleife den Inhalt der Buffer ausgeben&lt;br /&gt;
while(1) &lt;br /&gt;
{&lt;br /&gt;
	uart_puts(&amp;quot;i2cdata:\r\n&amp;quot;);&lt;br /&gt;
	for(uint8_t i=0;i&amp;lt;i2c_buffer_size;i++)&lt;br /&gt;
		{&lt;br /&gt;
			uart_puti(i2cdata[i]);&lt;br /&gt;
			uart_puts(&amp;quot;\r\n&amp;quot;);&lt;br /&gt;
		}&lt;br /&gt;
	uart_puts(&amp;quot;\r\n&amp;quot;);//leerzeile&lt;br /&gt;
_delay_ms(500);&lt;br /&gt;
} //end.while&lt;br /&gt;
} //end.main&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Slave sourcecode ==&lt;br /&gt;
Die twislave.c für den Slave. Stand: 12.4.2010 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;util/twi.h&amp;gt; 	    //enthält z.B. die Bezeichnungen für die Statuscodes in TWSR&lt;br /&gt;
#include &amp;lt;avr/interrupt.h&amp;gt;  //dient zur Behandlung der Interrupts&lt;br /&gt;
#include &amp;lt;stdint.h&amp;gt;         //definiert den Datentyp uint8_t       &lt;br /&gt;
#include &amp;quot;twislave.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
//%%%%%%%% Globale Variablen, die vom Hauptprogramm genutzt werden %%%%%%%%&lt;br /&gt;
/*Der Buffer, in dem die Daten gespeichert werden. &lt;br /&gt;
Aus Sicht des Masters läuft der Zugrif auf den Buffer genau wie bei einem I2C-EEPROm ab.&lt;br /&gt;
Für den Slave ist es eine globale Variable&lt;br /&gt;
*/&lt;br /&gt;
volatile uint8_t i2cdata[i2c_buffer_size+1];&lt;br /&gt;
volatile uint8_t buffer_adr; //&amp;quot;Adressregister&amp;quot; für den Buffer&lt;br /&gt;
&lt;br /&gt;
/*Initaliserung des TWI-Inteface. Muss zu Beginn aufgerufen werden, sowie bei einem Wechsel der Slave Adresse&lt;br /&gt;
Parameter adr: gewünschte Slave-Adresse&lt;br /&gt;
*/&lt;br /&gt;
void init_twi_slave(uint8_t adr)&lt;br /&gt;
{&lt;br /&gt;
	TWAR= adr; //Adresse setzen&lt;br /&gt;
	TWCR &amp;amp;= ~(1&amp;lt;&amp;lt;TWSTA)|(1&amp;lt;&amp;lt;TWSTO);&lt;br /&gt;
	TWCR|= (1&amp;lt;&amp;lt;TWEA) | (1&amp;lt;&amp;lt;TWEN)|(1&amp;lt;&amp;lt;TWIE); 	&lt;br /&gt;
	buffer_adr=0xFF;  &lt;br /&gt;
	sei();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Je nach Statuscode in TWSR müssen verschiedene Bitmuster in TWCR geschreiben werden(siehe Tabellen im Datenblatt!). &lt;br /&gt;
//Makros für die verwendeten Bitmuster:&lt;br /&gt;
&lt;br /&gt;
//ACK nach empfangenen Daten senden/ ACK nach gesendeten Daten erwarten&lt;br /&gt;
#define TWCR_ACK TWCR = (1&amp;lt;&amp;lt;TWEN)|(1&amp;lt;&amp;lt;TWIE)|(1&amp;lt;&amp;lt;TWINT)|(1&amp;lt;&amp;lt;TWEA)|(0&amp;lt;&amp;lt;TWSTA)|(0&amp;lt;&amp;lt;TWSTO)|(0&amp;lt;&amp;lt;TWWC);  &lt;br /&gt;
&lt;br /&gt;
//NACK nach empfangenen Daten senden/ NACK nach gesendeten Daten erwarten     &lt;br /&gt;
#define TWCR_NACK TWCR = (1&amp;lt;&amp;lt;TWEN)|(1&amp;lt;&amp;lt;TWIE)|(1&amp;lt;&amp;lt;TWINT)|(0&amp;lt;&amp;lt;TWEA)|(0&amp;lt;&amp;lt;TWSTA)|(0&amp;lt;&amp;lt;TWSTO)|(0&amp;lt;&amp;lt;TWWC);&lt;br /&gt;
&lt;br /&gt;
//switch to the non adressed slave mode...&lt;br /&gt;
#define TWCR_RESET TWCR = (1&amp;lt;&amp;lt;TWEN)|(1&amp;lt;&amp;lt;TWIE)|(1&amp;lt;&amp;lt;TWINT)|(1&amp;lt;&amp;lt;TWEA)|(0&amp;lt;&amp;lt;TWSTA)|(1&amp;lt;&amp;lt;TWSTO)|(0&amp;lt;&amp;lt;TWWC);  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/*ISR, die bei einem Ereignis auf dem Bus ausgelöst wird. Im Register TWSR befindet sich dann &lt;br /&gt;
ein Statuscode, anhand dessen die Situation festgestellt werden kann.&lt;br /&gt;
*/&lt;br /&gt;
ISR (TWI_vect)  &lt;br /&gt;
{&lt;br /&gt;
uint8_t data=0;&lt;br /&gt;
&lt;br /&gt;
switch (TW_STATUS) //TWI-Statusregister prüfen und nötige Aktion bestimmen &lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
// Slave Receiver &lt;br /&gt;
&lt;br /&gt;
case TW_SR_SLA_ACK: // 0x60 Slave Receiver, Slave wurde adressiert	&lt;br /&gt;
	TWCR_ACK; // nächstes Datenbyte empfangen, ACK danach senden&lt;br /&gt;
	buffer_adr=0xFF; //Bufferposition ist undefiniert&lt;br /&gt;
break;&lt;br /&gt;
	&lt;br /&gt;
case TW_SR_DATA_ACK: // 0x80 Slave Receiver, ein Datenbyte wurde empfangen&lt;br /&gt;
	data=TWDR; //Empfangene Daten auslesen&lt;br /&gt;
	if (buffer_adr == 0xFF) //erster Zugriff, Bufferposition setzen&lt;br /&gt;
		{&lt;br /&gt;
			//Kontrolle ob gewünschte Adresse im erlaubten bereich&lt;br /&gt;
			if(data&amp;lt;i2c_buffer_size)&lt;br /&gt;
				{&lt;br /&gt;
					buffer_adr= data; //Bufferposition wie adressiert setzen&lt;br /&gt;
				}&lt;br /&gt;
			else&lt;br /&gt;
				{&lt;br /&gt;
					buffer_adr=0; //Adresse auf Null setzen. Ist das sinnvoll? TO DO!&lt;br /&gt;
				}				&lt;br /&gt;
			TWCR_ACK;	// nächstes Datenbyte empfangen, ACK danach, um nächstes Byte anzufordern&lt;br /&gt;
		}&lt;br /&gt;
	else //weiterer Zugriff, nachdem die Position im Buffer gesetzt wurde. NUn die Daten empfangen und speichern&lt;br /&gt;
		{&lt;br /&gt;
		&lt;br /&gt;
			if(buffer_adr&amp;lt;i2c_buffer_size)&lt;br /&gt;
				{&lt;br /&gt;
						i2cdata[buffer_adr]=data; //Daten in Buffer schreibe	&lt;br /&gt;
				}&lt;br /&gt;
			buffer_adr++; //Buffer-Adresse weiterzählen für nächsten Schreibzugriff&lt;br /&gt;
			TWCR_ACK;	&lt;br /&gt;
		}&lt;br /&gt;
break;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Slave transmitter&lt;br /&gt;
&lt;br /&gt;
case TW_ST_SLA_ACK: //0xA8 Slave wurde im Lesemodus adressiert und hat ein ACK zurückgegeben.&lt;br /&gt;
	//Hier steht kein break! Es wird also der folgende Code ebenfalls ausgeführt!&lt;br /&gt;
	&lt;br /&gt;
case TW_ST_DATA_ACK: //0xB8 Slave Transmitter, Daten wurden angefordert&lt;br /&gt;
&lt;br /&gt;
	if (buffer_adr == 0xFF) //zuvor keine Leseadresse angegeben! &lt;br /&gt;
		{&lt;br /&gt;
			buffer_adr=0;&lt;br /&gt;
		}	&lt;br /&gt;
		&lt;br /&gt;
	if(buffer_adr&amp;lt;i2c_buffer_size)	&lt;br /&gt;
		{&lt;br /&gt;
			TWDR = i2cdata[buffer_adr]; //Datenbyte senden&lt;br /&gt;
			buffer_adr++; //bufferadresse für nächstes Byte weiterzählen&lt;br /&gt;
		}&lt;br /&gt;
	else&lt;br /&gt;
		{&lt;br /&gt;
			TWDR=0; //Kein Daten mehr im Buffer&lt;br /&gt;
		}&lt;br /&gt;
	TWCR_ACK;&lt;br /&gt;
break;&lt;br /&gt;
&lt;br /&gt;
case TW_ST_DATA_NACK: // 0xC0 Keine Daten mehr gefordert &lt;br /&gt;
case TW_SR_DATA_NACK: // 0x88 &lt;br /&gt;
case TW_ST_LAST_DATA: // 0xC8  Last data byte in TWDR has been transmitted (TWEA = “0”); ACK has been received&lt;br /&gt;
case TW_SR_STOP:      // 0xA0 STOP empfangen&lt;br /&gt;
default: 	&lt;br /&gt;
    TWCR_RESET;&lt;br /&gt;
break;&lt;br /&gt;
	&lt;br /&gt;
} //end.switch (TW_STATUS)&lt;br /&gt;
} //end.ISR(TWI_vect)&lt;br /&gt;
&lt;br /&gt;
////Ende von twislave.c////&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Slave header ==&lt;br /&gt;
Die zugehörige Headerdatei twislave.h für den Slave. Stand: 19.2.2010&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#ifndef _TWISLAVE_H&lt;br /&gt;
#define _TWISLAVE_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;util/twi.h&amp;gt; 		  //enthaelt z.B. die Bezeichnungen fuer die Statuscodes in TWSR&lt;br /&gt;
#include &amp;lt;avr/interrupt.h&amp;gt;  //dient zur behandlung der Interrupts&lt;br /&gt;
#include &amp;lt;stdint.h&amp;gt; 		    //definiert den Datentyp uint8_t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/** &lt;br /&gt;
 *  @defgroup twislave TWI-Slave&lt;br /&gt;
 *  @code #include &amp;quot;twislave.h&amp;quot; @endcode&lt;br /&gt;
 * &lt;br /&gt;
 *  @brief Betrieb eines AVRs mit Hardware-TWI-Schnittstelle als Slave.&lt;br /&gt;
 *  Zu Beginn muss init_twi_slave mit der gewuenschten Slave-Adresse als&lt;br /&gt;
 *  Parameter aufgerufen werden.&lt;br /&gt;
 *&lt;br /&gt;
 * Der Datenaustausch mit dem Master erfolgt ueber den Buffer i2cdata, &lt;br /&gt;
 * auf den von Master und Slave zugegriffen werden kann. &lt;br /&gt;
 * Dies ist fuer den Slave eine globale Variable (Array aus uint8_t). &lt;br /&gt;
&lt;br /&gt;
 * Der Zugriff durch den Master erfolgt aehnlich wie bei einem&lt;br /&gt;
 * normalen I2C-EEPROM.&lt;br /&gt;
 * Man sendet zunaechst die Bufferposition, an die man schreiben will,&lt;br /&gt;
 * und dann die Daten. &lt;br /&gt;
 * Die Bufferposition wird automatisch hochgezaehlt, sodass man mehrere&lt;br /&gt;
 * Datenbytes hintereinander schreiben kann, ohne jedesmal die &lt;br /&gt;
 * Bufferadresse zu schreiben.&lt;br /&gt;
 *&lt;br /&gt;
 * Um vom Master aus zu lesen, uebertraegt man zunaechst in einem &lt;br /&gt;
 * Schreibzugriff die gewuenschte Bufferposition und liest dann nach&lt;br /&gt;
 * einem repeated start die Daten aus. Die Bufferposition wird &lt;br /&gt;
 * automatisch hochgezaehlt, sodass man mehrere Datenbytes&lt;br /&gt;
 * hintereinander lesen kann, ohne jedesmal die Bufferposition zu&lt;br /&gt;
 * schreiben.&lt;br /&gt;
 *&lt;br /&gt;
 * Abgefangene Fehlbedienung durch den Master:&lt;br /&gt;
 * - Lesen ueber die Grenze des txbuffers hinaus&lt;br /&gt;
 * - Schreiben ueber die Grenzen des rxbuffers hinaus&lt;br /&gt;
 * - Angabe einer ungueltigen Schreib/Lese-Adresse&lt;br /&gt;
 * - Lesezugriff, ohne vorher Leseadresse geschrieben zu haben&lt;br /&gt;
 * &lt;br /&gt;
 *  @author uwegw&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/*@{*/&lt;br /&gt;
&lt;br /&gt;
//%%%%%%%% von Benutzer konfigurierbare Einstellungen %%%%%%%%&lt;br /&gt;
/**@brief Groesse des Buffers in Byte (2..254) */&lt;br /&gt;
#define i2c_buffer_size 10// I2C_REG_ANZAHL 254 Hier kann eingestellt werden wieviele Register ausgegeben werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//%%%%%%%% Globale Variablen, die vom Hauptprogramm genutzt werden %%%%%%%%&lt;br /&gt;
/**@brief Der Buffer, in dem die Daten gespeichert werden.&lt;br /&gt;
 * Aus Sicht des Masters laeuft der Zugrif auf den Buffer genau wie&lt;br /&gt;
 *  bei einem I2C-EEPROm ab.&lt;br /&gt;
 * Fuer den Slave ist es eine globale Variable&lt;br /&gt;
*/&lt;br /&gt;
volatile uint8_t i2cdata[i2c_buffer_size+1];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/**@brief Initaliserung des TWI-Inteface. Muss zu Beginn aufgerufen werden, sowie bei einem Wechsel der Slave Adresse&lt;br /&gt;
 * @param adr gewuenschte Slave-Adresse */&lt;br /&gt;
void init_twi_slave(uint8_t adr);&lt;br /&gt;
&lt;br /&gt;
//%%%%%%%% ab hier sind normalerweise keine weiteren Aenderungen erforderlich! %%%%%%%%//&lt;br /&gt;
//____________________________________________________________________________________//&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Bei zu alten AVR-GCC-Versionen werden die Interrupts anders genutzt, daher in diesem Fall mit Fehlermeldung abbrechen&lt;br /&gt;
#if (__GNUC__ * 100 + __GNUC_MINOR__) &amp;lt; 304&lt;br /&gt;
	#error &amp;quot;This library requires AVR-GCC 3.4.5 or later, update to newer AVR-GCC compiler !&amp;quot;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
//Schutz vor unsinnigen Buffergroessen&lt;br /&gt;
#if (i2c_buffer_size &amp;gt; 254)&lt;br /&gt;
	#error Buffer zu gross gewaehlt! Maximal 254 Bytes erlaubt.&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#if (i2c_buffer_size &amp;lt; 2)&lt;br /&gt;
	#error Buffer muss mindestens zwei Byte gross sein!&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#endif //#ifdef _TWISLAVE_H&lt;br /&gt;
////Ende von twislave.h////&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Andere Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.jtronics.de/avr-projekte/library-i2c/twi-slave-avr http://www.jtronics.de/avr-projekte/library-i2c/twi-slave-avr]&lt;br /&gt;
* [http://www.ermicro.com/blog/?p=1239 http://www.ermicro.com/blog/?p=1239]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Microcontroller]]&lt;br /&gt;
[[Kategorie:Quellcode C]]&lt;/div&gt;</summary>
		<author><name>Chypsylon</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=TWI_Slave_mit_avr-gcc&amp;diff=18789</id>
		<title>TWI Slave mit avr-gcc</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=TWI_Slave_mit_avr-gcc&amp;diff=18789"/>
				<updated>2011-12-05T15:06:55Z</updated>
		
		<summary type="html">&lt;p&gt;Chypsylon: Links zu alternativen Libraries hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Programm für einen AVR mit [[TWI]] (Hardware-[[I2C]])-Schnittstelle als Slave.&lt;br /&gt;
Manchmal stellt sich die Aufgabe, mehrere AVRs per [[I2C]] zu vernetzen. Ein Beispiel ist die Erweiterung eines bestehenden Systems um einen leistungsstärkeren Controller. Dies ist etwa beim [[Asuro]] oder [[Yeti]] denkbar, um z.B. mehr Ein/Ausgänge oder Speicherplatz zu bekommen.&lt;br /&gt;
&lt;br /&gt;
Man kann aber beim Bau eines Roboters auch von Anfang an auf ein System von mehreren vernetzten Controllern setzen. So kann man verschiedene Aufgabe, die weitgehend unabhängig voneinader gleichzeitg erledigt werden müssen, besser verteilen. Denkbar ist z.B. ein Controller für die Motorsteuerung, einer für die Sensorik, einer für Ein-und Ausgabe (wie LCD und Bedientaster),... , und ein zentraler Controller, der die Richtung vorgibt und alle anderen Controller mit Befehlen versorgt. Ein konkretes Beispiel ist der Roboterbausatz Nibo (siehe: [http://www.nicai-systems.de/nibo.html]) von nicai-systems, der einen Atmel ATmega128 als Hauptcontroller und zwei Atmel ATtiny44 als Controller für die Motorsteuerung und die IR-Sensorik einsetzt. Die Kommunikation läuft mit 400 kHz über den I2C-Bus mit dem ATmega128 als Master. &lt;br /&gt;
Schließlich kann ein entsprechend programmierter AVR auch als Ersatz für handelsübliche I2C-Bauteile dienen. Der kleinste AVR mit Hardware-I2C, der ATmega48, ist mit 1,30€ (Reichelt) billiger als viele normale I2C-ICs. Er kann bei entsprechender Programmierung z.B. die Aufgaben von zwei PCF8574 (8bit-Portexpander, 1,25€) und einem PCF8591 (4fach AD-Wandler, 2,35€) übernehmen und außerdem noch als I2C-EEPROM mit 256 Bytes dienen. &lt;br /&gt;
&lt;br /&gt;
Das System ist als eine Art Dualport-RAM konzipiert, Master und Slave teilen sich also einen Speicherbereich und können darüber Daten austauschen. Die Ansteuerung läuft wie bei den bekannten I2C-EEPROMs. Der Master schreibt erst die Adresse, die er lesen bzw- schreiben will. Bei einem Schreibzugriff überträgt er nun die Daten. Bei einem Lesezugriff wird ein repeated start im Lesemodus durchgeführt, dann können die Daten byteweise eingelesen werden. Die Adressen werden dabei automatisch weitergezählt, sodass mehrere Bytes in Folge verarbeitet werden können.&lt;br /&gt;
&lt;br /&gt;
Getestet wurde der Code für zwei Mega32 mit dem AVR Studio. Beachte: im AVR-Studio ist default ein ATmega128 eingestellt, unter Projekt -&amp;gt; Configuration Options kann das Device geändert werden, außerdem ist die Taktfrequenz des Controllers einzustellen. Im Projekt wird für den Master die Dateien twimaster.c und i2cmaster.h hinzugefügt, und für den Slave die twislave.c und twislave.h. &lt;br /&gt;
Wenn stattdessen ein makefile verwendet wird, müssen dort unter SRC die c-Dateien eingetragen werden.&lt;br /&gt;
&lt;br /&gt;
Die Verbindung zwischen Master und Slave erfolgt über die Pins SCL und SDA, außerdem muss ein gemeinsamer GND vorhanden sein. Abschlusswiderstände (4,7kOhm) nicht vergessen, am besten beim Master, siehe auch I2C-Definitionen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das folgende Programm (twislave.c) steuert das TWI (Hardware-I2C)-Interface eines AVRs als Slave an. Es müsste auf allen AVRs der Mega-Reihe funktionieren, die über eine TWI-Schnittstelle verfügen. &lt;br /&gt;
&lt;br /&gt;
== Master ==&lt;br /&gt;
Ein Testprogramm für den Master. Es wird die [http://homepage.hispeed.ch/peterfleury/avr-software.html#libs I2C-Master-Bibliothek von Peter Fleury] verwendet.&lt;br /&gt;
Es wird geprüft, ob der Slave bereit ist, dann werden drei Bytes erst in den Slave geschrieben, und anschließend wieder ausgelesen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// I2C-Master-Routinen von Peter Fleury verwenden &lt;br /&gt;
// siehe http://homepage.hispeed.ch/peterfleury/avr-software.html#libs&lt;br /&gt;
// Hier sind auch die Dateien: i2cmaster.h und twimaster.c zu finden, die benötigt werden&lt;br /&gt;
// Letztes Update des Codes 5. April 2010 durch HannoHupmann&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
#include &amp;quot;i2cmaster.h&amp;quot;  &lt;br /&gt;
#define SLAVE_ADRESSE 0x50&lt;br /&gt;
&lt;br /&gt;
uint8_t byte1 = 42;&lt;br /&gt;
uint8_t byte2 = 43;&lt;br /&gt;
uint8_t byte3 = 44;&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
  i2c_init();         // init I2C interface&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if(!(i2c_start(SLAVE_ADRESSE+I2C_WRITE))) //Slave bereit zum schreiben?&lt;br /&gt;
{&lt;br /&gt;
  i2c_write(0x00);  // Buffer Startadresse setzen 	&lt;br /&gt;
  i2c_write(byte1); // Drei Bytes schreiben...&lt;br /&gt;
  i2c_write(byte2); &lt;br /&gt;
  i2c_write(byte3); &lt;br /&gt;
  i2c_stop();       // Zugriff beenden&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
  /* Hier könnte eine Fehlermeldung ausgegeben werden... */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if(!(i2c_start(SLAVE_ADRESSE+I2C_WRITE))) //Slave bereit zum lesen?&lt;br /&gt;
{&lt;br /&gt;
  i2c_write(0x00); //Buffer Startadresse zum Auslesen&lt;br /&gt;
  i2c_rep_start(SLAVE_ADRESSE+I2C_READ); //Lesen beginnen&lt;br /&gt;
&lt;br /&gt;
  byte1= i2c_readAck(); // Bytes lesen...&lt;br /&gt;
  byte2= i2c_readAck();&lt;br /&gt;
  byte3= i2c_readNak(); // letztes Byte lesen, darum kein ACK&lt;br /&gt;
  i2c_stop();           // Zugriff beenden&lt;br /&gt;
} &lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
  /* Hier könnte eine Fehlermeldung ausgegeben werden... */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if ((byte1 != 42)||(byte2 != 43)||(byte3 != 44))&lt;br /&gt;
{&lt;br /&gt;
  /* Die Bytes wurden nicht korrekt übertragen und wieder gelesen! */ &lt;br /&gt;
}&lt;br /&gt;
    for(;;);	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Code wurde von HannoHupmann auf einem Mega32 getestet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Slave == &lt;br /&gt;
Hier soll nun der Code behandelt werden der für den Slave-Controller notwendig ist. Der vorgestellte Code schreibt die Register des Slaves an die Serielle Schnittstelle, mit einem Terminal Programm kann man sich die Ausgabe ansehen und überprüfen ob alles korrekt funktioniert. &lt;br /&gt;
Der Code ist wieder an den von Peter Fleury angelehnt.&lt;br /&gt;
&lt;br /&gt;
Der Slave sollte ohne Master folgende Ausgabe liefern: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
i2cdata: &lt;br /&gt;
10&lt;br /&gt;
11&lt;br /&gt;
12&lt;br /&gt;
13&lt;br /&gt;
usw. &lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
Die Register werden der Reihe nach mit ihrem Wert angezeigt. Wird der Master hinzugefügt sollte nun folgende Ausgabe im Terminal erscheinen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
i2cdata: &lt;br /&gt;
42&lt;br /&gt;
43&lt;br /&gt;
44&lt;br /&gt;
13&lt;br /&gt;
usw. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Slave Testprogramm ==&lt;br /&gt;
Ein Testprogramm für den Slave. Es verwendet zur Ausgabe die UART-lib von P. Fleury, die auf derselben Homepage wie die TWI-Master-Lib zu finden ist.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
Testprogramm für den Slave &lt;br /&gt;
Der Buffer wird mit Werten gefüllt. Dann wird er fortlaufend über die serielle Schnittstelle ausgegeben.&lt;br /&gt;
Nun kann man dort sehen, wenn der Master einen Wert ändert&lt;br /&gt;
*/&lt;br /&gt;
#include &amp;lt;util/twi.h&amp;gt; 	    //enthält z.B. die Bezeichnungen für die Statuscodes in TWSR&lt;br /&gt;
#include &amp;lt;avr/interrupt.h&amp;gt;  //dient zur Behandlung der Interrupts&lt;br /&gt;
#include &amp;lt;stdint.h&amp;gt; 	    //definiert den Datentyp uint8_t&lt;br /&gt;
#include &amp;quot;twislave.h&amp;quot;&lt;br /&gt;
#include &amp;quot;uart.h&amp;quot;           //UART-Lib von P- Fleury&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;         //nötig für Zahlumwandlung mit itoa&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#define BAUD 9600 //Baudrate&lt;br /&gt;
#define SLAVE_ADRESSE 0x50 //Die Slave-Adresse&lt;br /&gt;
&lt;br /&gt;
//Hilfsfunktion, um Zahlen über das UART auszugeben&lt;br /&gt;
void uart_puti( const int val )&lt;br /&gt;
{&lt;br /&gt;
    char buffer[8];&lt;br /&gt;
    uart_puts( itoa(val, buffer, 10) );&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main (void)&lt;br /&gt;
{&lt;br /&gt;
//TWI als Slave mit Adresse slaveadr starten&lt;br /&gt;
init_twi_slave(SLAVE_ADRESSE);&lt;br /&gt;
&lt;br /&gt;
//i2cdatamit Werten füllen, die der Master auslesen und ändern kann&lt;br /&gt;
for(uint8_t i=0;i&amp;lt;i2c_buffer_size;i++)&lt;br /&gt;
	{&lt;br /&gt;
		i2cdata[i]=10+i;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
//Serielle Schnittstelle aktivieren&lt;br /&gt;
uart_init((UART_BAUD_SELECT((BAUD),F_CPU)));&lt;br /&gt;
uart_puts(&amp;quot;I2C-Test\r\n&amp;quot;);&lt;br /&gt;
uart_puts(&amp;quot;Teste I2C-Slave mit Adresse &amp;quot;); uart_puti(SLAVE_ADRESSE);&lt;br /&gt;
uart_puts(&amp;quot;\r\n&amp;quot;);&lt;br /&gt;
uart_puts(&amp;quot;\r\n&amp;quot;); //Leerzeile&lt;br /&gt;
&lt;br /&gt;
//in einer Endlosschleife den Inhalt der Buffer ausgeben&lt;br /&gt;
while(1) &lt;br /&gt;
{&lt;br /&gt;
	uart_puts(&amp;quot;i2cdata:\r\n&amp;quot;);&lt;br /&gt;
	for(uint8_t i=0;i&amp;lt;i2c_buffer_size;i++)&lt;br /&gt;
		{&lt;br /&gt;
			uart_puti(i2cdata[i]);&lt;br /&gt;
			uart_puts(&amp;quot;\r\n&amp;quot;);&lt;br /&gt;
		}&lt;br /&gt;
	uart_puts(&amp;quot;\r\n&amp;quot;);//leerzeile&lt;br /&gt;
_delay_ms(500);&lt;br /&gt;
} //end.while&lt;br /&gt;
} //end.main&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Slave sourcecode ==&lt;br /&gt;
Die twislave.c für den Slave. Stand: 12.4.2010 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;util/twi.h&amp;gt; 	    //enthält z.B. die Bezeichnungen für die Statuscodes in TWSR&lt;br /&gt;
#include &amp;lt;avr/interrupt.h&amp;gt;  //dient zur Behandlung der Interrupts&lt;br /&gt;
#include &amp;lt;stdint.h&amp;gt;         //definiert den Datentyp uint8_t       &lt;br /&gt;
#include &amp;quot;twislave.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
//%%%%%%%% Globale Variablen, die vom Hauptprogramm genutzt werden %%%%%%%%&lt;br /&gt;
/*Der Buffer, in dem die Daten gespeichert werden. &lt;br /&gt;
Aus Sicht des Masters läuft der Zugrif auf den Buffer genau wie bei einem I2C-EEPROm ab.&lt;br /&gt;
Für den Slave ist es eine globale Variable&lt;br /&gt;
*/&lt;br /&gt;
volatile uint8_t i2cdata[i2c_buffer_size+1];&lt;br /&gt;
volatile uint8_t buffer_adr; //&amp;quot;Adressregister&amp;quot; für den Buffer&lt;br /&gt;
&lt;br /&gt;
/*Initaliserung des TWI-Inteface. Muss zu Beginn aufgerufen werden, sowie bei einem Wechsel der Slave Adresse&lt;br /&gt;
Parameter adr: gewünschte Slave-Adresse&lt;br /&gt;
*/&lt;br /&gt;
void init_twi_slave(uint8_t adr)&lt;br /&gt;
{&lt;br /&gt;
	TWAR= adr; //Adresse setzen&lt;br /&gt;
	TWCR &amp;amp;= ~(1&amp;lt;&amp;lt;TWSTA)|(1&amp;lt;&amp;lt;TWSTO);&lt;br /&gt;
	TWCR|= (1&amp;lt;&amp;lt;TWEA) | (1&amp;lt;&amp;lt;TWEN)|(1&amp;lt;&amp;lt;TWIE); 	&lt;br /&gt;
	buffer_adr=0xFF;  &lt;br /&gt;
	sei();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Je nach Statuscode in TWSR müssen verschiedene Bitmuster in TWCR geschreiben werden(siehe Tabellen im Datenblatt!). &lt;br /&gt;
//Makros für die verwendeten Bitmuster:&lt;br /&gt;
&lt;br /&gt;
//ACK nach empfangenen Daten senden/ ACK nach gesendeten Daten erwarten&lt;br /&gt;
#define TWCR_ACK TWCR = (1&amp;lt;&amp;lt;TWEN)|(1&amp;lt;&amp;lt;TWIE)|(1&amp;lt;&amp;lt;TWINT)|(1&amp;lt;&amp;lt;TWEA)|(0&amp;lt;&amp;lt;TWSTA)|(0&amp;lt;&amp;lt;TWSTO)|(0&amp;lt;&amp;lt;TWWC);  &lt;br /&gt;
&lt;br /&gt;
//NACK nach empfangenen Daten senden/ NACK nach gesendeten Daten erwarten     &lt;br /&gt;
#define TWCR_NACK TWCR = (1&amp;lt;&amp;lt;TWEN)|(1&amp;lt;&amp;lt;TWIE)|(1&amp;lt;&amp;lt;TWINT)|(0&amp;lt;&amp;lt;TWEA)|(0&amp;lt;&amp;lt;TWSTA)|(0&amp;lt;&amp;lt;TWSTO)|(0&amp;lt;&amp;lt;TWWC);&lt;br /&gt;
&lt;br /&gt;
//switch to the non adressed slave mode...&lt;br /&gt;
#define TWCR_RESET TWCR = (1&amp;lt;&amp;lt;TWEN)|(1&amp;lt;&amp;lt;TWIE)|(1&amp;lt;&amp;lt;TWINT)|(1&amp;lt;&amp;lt;TWEA)|(0&amp;lt;&amp;lt;TWSTA)|(1&amp;lt;&amp;lt;TWSTO)|(0&amp;lt;&amp;lt;TWWC);  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/*ISR, die bei einem Ereignis auf dem Bus ausgelöst wird. Im Register TWSR befindet sich dann &lt;br /&gt;
ein Statuscode, anhand dessen die Situation festgestellt werden kann.&lt;br /&gt;
*/&lt;br /&gt;
ISR (TWI_vect)  &lt;br /&gt;
{&lt;br /&gt;
uint8_t data=0;&lt;br /&gt;
&lt;br /&gt;
switch (TW_STATUS) //TWI-Statusregister prüfen und nötige Aktion bestimmen &lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
// Slave Receiver &lt;br /&gt;
&lt;br /&gt;
case TW_SR_SLA_ACK: // 0x60 Slave Receiver, Slave wurde adressiert	&lt;br /&gt;
	TWCR_ACK; // nächstes Datenbyte empfangen, ACK danach senden&lt;br /&gt;
	buffer_adr=0xFF; //Bufferposition ist undefiniert&lt;br /&gt;
break;&lt;br /&gt;
	&lt;br /&gt;
case TW_SR_DATA_ACK: // 0x80 Slave Receiver, ein Datenbyte wurde empfangen&lt;br /&gt;
	data=TWDR; //Empfangene Daten auslesen&lt;br /&gt;
	if (buffer_adr == 0xFF) //erster Zugriff, Bufferposition setzen&lt;br /&gt;
		{&lt;br /&gt;
			//Kontrolle ob gewünschte Adresse im erlaubten bereich&lt;br /&gt;
			if(data&amp;lt;i2c_buffer_size)&lt;br /&gt;
				{&lt;br /&gt;
					buffer_adr= data; //Bufferposition wie adressiert setzen&lt;br /&gt;
				}&lt;br /&gt;
			else&lt;br /&gt;
				{&lt;br /&gt;
					buffer_adr=0; //Adresse auf Null setzen. Ist das sinnvoll? TO DO!&lt;br /&gt;
				}				&lt;br /&gt;
			TWCR_ACK;	// nächstes Datenbyte empfangen, ACK danach, um nächstes Byte anzufordern&lt;br /&gt;
		}&lt;br /&gt;
	else //weiterer Zugriff, nachdem die Position im Buffer gesetzt wurde. NUn die Daten empfangen und speichern&lt;br /&gt;
		{&lt;br /&gt;
		&lt;br /&gt;
			if(buffer_adr&amp;lt;i2c_buffer_size)&lt;br /&gt;
				{&lt;br /&gt;
						i2cdata[buffer_adr]=data; //Daten in Buffer schreibe	&lt;br /&gt;
				}&lt;br /&gt;
			buffer_adr++; //Buffer-Adresse weiterzählen für nächsten Schreibzugriff&lt;br /&gt;
			TWCR_ACK;	&lt;br /&gt;
		}&lt;br /&gt;
break;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Slave transmitter&lt;br /&gt;
&lt;br /&gt;
case TW_ST_SLA_ACK: //0xA8 Slave wurde im Lesemodus adressiert und hat ein ACK zurückgegeben.&lt;br /&gt;
	//Hier steht kein break! Es wird also der folgende Code ebenfalls ausgeführt!&lt;br /&gt;
	&lt;br /&gt;
case TW_ST_DATA_ACK: //0xB8 Slave Transmitter, Daten wurden angefordert&lt;br /&gt;
&lt;br /&gt;
	if (buffer_adr == 0xFF) //zuvor keine Leseadresse angegeben! &lt;br /&gt;
		{&lt;br /&gt;
			buffer_adr=0;&lt;br /&gt;
		}	&lt;br /&gt;
		&lt;br /&gt;
	if(buffer_adr&amp;lt;i2c_buffer_size)	&lt;br /&gt;
		{&lt;br /&gt;
			TWDR = i2cdata[buffer_adr]; //Datenbyte senden&lt;br /&gt;
			buffer_adr++; //bufferadresse für nächstes Byte weiterzählen&lt;br /&gt;
		}&lt;br /&gt;
	else&lt;br /&gt;
		{&lt;br /&gt;
			TWDR=0; //Kein Daten mehr im Buffer&lt;br /&gt;
		}&lt;br /&gt;
	TWCR_ACK;&lt;br /&gt;
break;&lt;br /&gt;
&lt;br /&gt;
case TW_ST_DATA_NACK: // 0xC0 Keine Daten mehr gefordert &lt;br /&gt;
case TW_SR_DATA_NACK: // 0x88 &lt;br /&gt;
case TW_ST_LAST_DATA: // 0xC8  Last data byte in TWDR has been transmitted (TWEA = “0”); ACK has been received&lt;br /&gt;
case TW_SR_STOP:      // 0xA0 STOP empfangen&lt;br /&gt;
default: 	&lt;br /&gt;
    TWCR_RESET;&lt;br /&gt;
break;&lt;br /&gt;
	&lt;br /&gt;
} //end.switch (TW_STATUS)&lt;br /&gt;
} //end.ISR(TWI_vect)&lt;br /&gt;
&lt;br /&gt;
////Ende von twislave.c////&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Slave header ==&lt;br /&gt;
Die zugehörige Headerdatei twislave.h für den Slave. Stand: 19.2.2010&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#ifndef _TWISLAVE_H&lt;br /&gt;
#define _TWISLAVE_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;util/twi.h&amp;gt; 		  //enthaelt z.B. die Bezeichnungen fuer die Statuscodes in TWSR&lt;br /&gt;
#include &amp;lt;avr/interrupt.h&amp;gt;  //dient zur behandlung der Interrupts&lt;br /&gt;
#include &amp;lt;stdint.h&amp;gt; 		    //definiert den Datentyp uint8_t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/** &lt;br /&gt;
 *  @defgroup twislave TWI-Slave&lt;br /&gt;
 *  @code #include &amp;quot;twislave.h&amp;quot; @endcode&lt;br /&gt;
 * &lt;br /&gt;
 *  @brief Betrieb eines AVRs mit Hardware-TWI-Schnittstelle als Slave.&lt;br /&gt;
 *  Zu Beginn muss init_twi_slave mit der gewuenschten Slave-Adresse als&lt;br /&gt;
 *  Parameter aufgerufen werden.&lt;br /&gt;
 *&lt;br /&gt;
 * Der Datenaustausch mit dem Master erfolgt ueber den Buffer i2cdata, &lt;br /&gt;
 * auf den von Master und Slave zugegriffen werden kann. &lt;br /&gt;
 * Dies ist fuer den Slave eine globale Variable (Array aus uint8_t). &lt;br /&gt;
&lt;br /&gt;
 * Der Zugriff durch den Master erfolgt aehnlich wie bei einem&lt;br /&gt;
 * normalen I2C-EEPROM.&lt;br /&gt;
 * Man sendet zunaechst die Bufferposition, an die man schreiben will,&lt;br /&gt;
 * und dann die Daten. &lt;br /&gt;
 * Die Bufferposition wird automatisch hochgezaehlt, sodass man mehrere&lt;br /&gt;
 * Datenbytes hintereinander schreiben kann, ohne jedesmal die &lt;br /&gt;
 * Bufferadresse zu schreiben.&lt;br /&gt;
 *&lt;br /&gt;
 * Um vom Master aus zu lesen, uebertraegt man zunaechst in einem &lt;br /&gt;
 * Schreibzugriff die gewuenschte Bufferposition und liest dann nach&lt;br /&gt;
 * einem repeated start die Daten aus. Die Bufferposition wird &lt;br /&gt;
 * automatisch hochgezaehlt, sodass man mehrere Datenbytes&lt;br /&gt;
 * hintereinander lesen kann, ohne jedesmal die Bufferposition zu&lt;br /&gt;
 * schreiben.&lt;br /&gt;
 *&lt;br /&gt;
 * Abgefangene Fehlbedienung durch den Master:&lt;br /&gt;
 * - Lesen ueber die Grenze des txbuffers hinaus&lt;br /&gt;
 * - Schreiben ueber die Grenzen des rxbuffers hinaus&lt;br /&gt;
 * - Angabe einer ungueltigen Schreib/Lese-Adresse&lt;br /&gt;
 * - Lesezugriff, ohne vorher Leseadresse geschrieben zu haben&lt;br /&gt;
 * &lt;br /&gt;
 *  @author uwegw&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/*@{*/&lt;br /&gt;
&lt;br /&gt;
//%%%%%%%% von Benutzer konfigurierbare Einstellungen %%%%%%%%&lt;br /&gt;
/**@brief Groesse des Buffers in Byte (2..254) */&lt;br /&gt;
#define i2c_buffer_size 10// I2C_REG_ANZAHL 254 Hier kann eingestellt werden wieviele Register ausgegeben werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//%%%%%%%% Globale Variablen, die vom Hauptprogramm genutzt werden %%%%%%%%&lt;br /&gt;
/**@brief Der Buffer, in dem die Daten gespeichert werden.&lt;br /&gt;
 * Aus Sicht des Masters laeuft der Zugrif auf den Buffer genau wie&lt;br /&gt;
 *  bei einem I2C-EEPROm ab.&lt;br /&gt;
 * Fuer den Slave ist es eine globale Variable&lt;br /&gt;
*/&lt;br /&gt;
volatile uint8_t i2cdata[i2c_buffer_size+1];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/**@brief Initaliserung des TWI-Inteface. Muss zu Beginn aufgerufen werden, sowie bei einem Wechsel der Slave Adresse&lt;br /&gt;
 * @param adr gewuenschte Slave-Adresse */&lt;br /&gt;
void init_twi_slave(uint8_t adr);&lt;br /&gt;
&lt;br /&gt;
//%%%%%%%% ab hier sind normalerweise keine weiteren Aenderungen erforderlich! %%%%%%%%//&lt;br /&gt;
//____________________________________________________________________________________//&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Bei zu alten AVR-GCC-Versionen werden die Interrupts anders genutzt, daher in diesem Fall mit Fehlermeldung abbrechen&lt;br /&gt;
#if (__GNUC__ * 100 + __GNUC_MINOR__) &amp;lt; 304&lt;br /&gt;
	#error &amp;quot;This library requires AVR-GCC 3.4.5 or later, update to newer AVR-GCC compiler !&amp;quot;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
//Schutz vor unsinnigen Buffergroessen&lt;br /&gt;
#if (i2c_buffer_size &amp;gt; 254)&lt;br /&gt;
	#error Buffer zu gross gewaehlt! Maximal 254 Bytes erlaubt.&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
#if (i2c_buffer_size &amp;lt; 2)&lt;br /&gt;
	#error Buffer muss mindestens zwei Byte gross sein!&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#endif //#ifdef _TWISLAVE_H&lt;br /&gt;
////Ende von twislave.h////&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Andere Bibliotheken ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.jtronics.de/avr-projekte/library-i2c/twi-slave-avr]&lt;br /&gt;
* [http://www.ermicro.com/blog/?p=1239]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Microcontroller]]&lt;br /&gt;
[[Kategorie:Quellcode C]]&lt;/div&gt;</summary>
		<author><name>Chypsylon</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Terminals&amp;diff=18707</id>
		<title>Terminals</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Terminals&amp;diff=18707"/>
				<updated>2011-10-24T14:25:18Z</updated>
		
		<summary type="html">&lt;p&gt;Chypsylon: /* Hyperterm Terminal */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Allgemeines zu Terminals==&lt;br /&gt;
Ein Terminal dient dazu, Daten, die z.B. an einen COM-Port geschickt wurden, zu empfangen, oder Daten zu versenden. Die Daten sind meist in Textform (ASCII). Es gibt Terminals ohne GUI, diese laufen dann z.B. in einer Konsole, oder welche mit GUI. Siehe dazu &lt;br /&gt;
&lt;br /&gt;
Man kann ein Terminal u.a. für folgendes verwenden (neben dem simplen Senden und Empfangen):&lt;br /&gt;
* Debugginginformationen protokollieren&lt;br /&gt;
* Daten aufzeichnen (loggen)&lt;br /&gt;
* Daten auswerten&lt;br /&gt;
&lt;br /&gt;
Es sind einige Terminalprogramme für die unterschiedlichsten Betriebsysteme vorhanden (siehe [[Terminalprogramm|Terminalprogramme]]).&lt;br /&gt;
&lt;br /&gt;
Was hat ein Terminal mit Robotik zu tun? Eigentlich nichts. Aber wer nicht ein LCD-Display und eine Tastatur auf seinem Board eingebaut hat, ist darauf angewiesen, mit einer Terminal-Emulation Kontakt mit seinem Controllerboard aufzunehmen. &lt;br /&gt;
&lt;br /&gt;
Gleich vorweg: Da kaum ein Bastler mit einem richtigen &amp;quot;physischen&amp;quot; Terminal zu tun hat, werde ich den Zusatz &amp;quot;Emulation&amp;quot; in Zukunft streichen. Das verwirrt nur und bringt nichts.&lt;br /&gt;
Bei so einem Terminal sind ein paar Dinge einzustellen und auf die sollte man auch achten. Häufig verwendet werden&lt;br /&gt;
&lt;br /&gt;
==Terminalprogramme==&lt;br /&gt;
Es gibt einige bekannte Terminals mit einer GUI. Solche Programme für das Betriebssystem Windows sind u.a.:&lt;br /&gt;
* [[Terminals#Hyperterm Terminal|Hyperterm Terminal]]&lt;br /&gt;
* TTY&lt;br /&gt;
* [http://www.der-hammer.info/terminal/ HTerm]&lt;br /&gt;
&lt;br /&gt;
Entwicklungsumgebungen wie z.B. Bascom haben oft bereits ein Terminalprogramm (siehe [[Terminals#BasCom Terminal|BasCom Terminal]]) integriert. Dies erleichtert das Debuggen (Fehlersuche in eigenen Programmen) erheblich. Links sind im [[Terminals#Weblinks|Weblinks]] Bereich.&lt;br /&gt;
&lt;br /&gt;
==BasCom Terminal==&lt;br /&gt;
Die Entwicklungsumgebung Bascom bringt ein eigenes, in die Entwicklungsumgebung integriertes, Terminalprogramm mit - Bascom Terminal. Die Möglichkeiten des Programms beschränken sich auf das Wichtigste.&lt;br /&gt;
&lt;br /&gt;
Options » Communications&lt;br /&gt;
&lt;br /&gt;
http://www.roboternetz.de/wiki/uploads/Main/basterm1.jpg&lt;br /&gt;
&lt;br /&gt;
Es ist nicht viel einzustellen, die gezeigten Werte sind der Normalfall.&lt;br /&gt;
&lt;br /&gt;
==Hyperterm Terminal==&lt;br /&gt;
Das Hyperterm Terminal wird standardgemäß mit jeder Windowsversion bis Windows XP mitgeliefert. In Vista und Win7 müssen die Dateien &amp;quot;hypertrm.dll&amp;quot; und &amp;quot;hypertrm.exe&amp;quot; von einer XP-Installation kopiert bzw. downgeloadet werden. Es bietet auch nur Grundfunktionen, ist aber als einfaches Terminalprogramm mit GUI gut zu gebrauchen.&lt;br /&gt;
&lt;br /&gt;
Nach dem Programmstart erscheint:&lt;br /&gt;
&lt;br /&gt;
'''Neue Verbindung'''&lt;br /&gt;
&lt;br /&gt;
[[Bild:Hyper1_v2.png]]&lt;br /&gt;
&lt;br /&gt;
Da gibt man irgendeinen Namen für die Verbindung ein, z.B. &amp;quot;Roboternetz&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Es erscheint:&lt;br /&gt;
'''Verbinden mit''' &lt;br /&gt;
&lt;br /&gt;
[[Bild:Hyper2_v2.png]]&lt;br /&gt;
&lt;br /&gt;
Wir geben den COM-Port ein (der Port also, über den die Daten gesendet/empfangen werden sollen):&lt;br /&gt;
&lt;br /&gt;
Nun können wir einige COM-Port Einstellungen wählen. Damit es zu einer Verbindung kommt müssen die gewählten Einstellungen mit den Einstellungen des Endgeräts (das über eine COM-Port Schnittstelle am Computer hängt) übereinstimmen. Sonst empfängt man nur Datenmüll oder gar nichts.&lt;br /&gt;
&lt;br /&gt;
'''Anschlusseinstellungen'''&lt;br /&gt;
&lt;br /&gt;
[[Bild:Hyper3_v2.png]]&lt;br /&gt;
&lt;br /&gt;
* Baudrate (Bits pro Sekunde) - Beliebt ist 9600, dass muss aber mit den Einstellungen des Controllers übereinstimmen&lt;br /&gt;
* Datenbits - Normalerweise &amp;quot;8&amp;quot;&lt;br /&gt;
* Parität - Normalerweise &amp;quot;keine&amp;quot;&lt;br /&gt;
* Stoppbits - Normalerweise &amp;quot;1&amp;quot;&lt;br /&gt;
* Flusssteuerung - Normalerweise &amp;quot;kein&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Jetzt ist das Hyperterm soweit zufrieden, wir aber nicht.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Hyper4_v2.png]]&lt;br /&gt;
&lt;br /&gt;
Es geht weiter bei:&lt;br /&gt;
&lt;br /&gt;
===Einstellungen===&lt;br /&gt;
&lt;br /&gt;
Datei » Eigenschaften » Einstellungen&lt;br /&gt;
&lt;br /&gt;
[[Bild:Hyper5_v2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Interessant sind:&lt;br /&gt;
* Rücktaste sendet*&lt;br /&gt;
** CAN (Ctrl-H) --&amp;gt; Terminalsteuerung&lt;br /&gt;
** DEL --&amp;gt; Terminalsteuerung&lt;br /&gt;
&lt;br /&gt;
'''Emulation''' &lt;br /&gt;
wird hier Verschiedenes angeboten&lt;br /&gt;
* Auto Detect&lt;br /&gt;
* TTY&lt;br /&gt;
Solange man nur &amp;quot;print&amp;quot; und &amp;quot;input&amp;quot; sagt, ist dies völlig ausreichend.&lt;br /&gt;
&lt;br /&gt;
* VT100 / VT220 und evtl. andere&lt;br /&gt;
Diese Typen verstehen die normalen &amp;quot;ANSI-Steuersequenzen&amp;quot; und einige mehr ANSII-Sequenzen.&lt;br /&gt;
&lt;br /&gt;
Das reicht, um mit dem Roboter (oder einem anderen Endgerät) kommunizieren zu können.&lt;br /&gt;
&lt;br /&gt;
===ASCII-Konfiguration===&lt;br /&gt;
&lt;br /&gt;
Um das Interesse zu wecken, einmal ein Bild der Einstellungen. Beim Thema &amp;quot;Terminalsteuerung&amp;quot; gibt es dazu mehr Information.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Hyper6_v2.png]]&lt;br /&gt;
&lt;br /&gt;
==Terminalsteuerung ANSI==&lt;br /&gt;
&lt;br /&gt;
Ein Terminal bietet aber auch einiges mehr als das, was bei der allgemeinen Terminalsteuerung besprochen wurde. &lt;br /&gt;
&lt;br /&gt;
* Volle Kontrolle über den Bildschirm&lt;br /&gt;
* Alle Tasten können verwendet werden&lt;br /&gt;
&lt;br /&gt;
Dazu werden ANSI-Sequenzen verwendet (dass sind Zeichenfolgen mit ganz bestimmtem Aufbau). Und auch die werden noch von verschiedenen Herstellern um zusätzliche Funktionen erweitert. Besonders hervorgetan hat sich hier DEC (Digital Equipment Corporation) mit seinen VTxxx-Terminals. Viele Terminal-Emulationen bieten solche Typen an, wobei besonders die VT220 und aufwärts interessant sind. Aber auch schon VT100 ist ganz nett.&lt;br /&gt;
&lt;br /&gt;
Die ganzen Steuersequenzen sind auch im Internet zu finden und Power-User sind gebeten, sich dort über alle Feinheiten zu informieren.&lt;br /&gt;
&lt;br /&gt;
Für Mikrocontroller ist wohl einiges zu aufwendig, aber einige Möglichkeiten möchte ich hier darstellen, da man damit doch von den unleserlich schnell durchlaufenden Einzelzeilen wegkommen kann.&lt;br /&gt;
&lt;br /&gt;
Nicht jeder hat die Möglichkeit, und manchmal zahlt es sich auch gar nicht aus, eigens ein graphikfähiges PC-Programm zu schreiben, um mit seinem Microcontroller Dialog zu führen, oder ein bisschen Balkengraphik zu zeigen. &lt;br /&gt;
&lt;br /&gt;
Den Typ VT100 bieten BasCom und Hyperterm an, wollen wir mal sehen&lt;br /&gt;
&lt;br /&gt;
===VT100===&lt;br /&gt;
====Was sendet das Terminal? (Auszug)====&lt;br /&gt;
Bei der normalen Schreibmaschinen-Tastatur ändert sich nichts. Aber die anderen Blöcke werden nun lebendig.&lt;br /&gt;
&lt;br /&gt;
Nur das erste Zeichen eine Sequenz ist ein Kontrollzeichen, und zwar:&lt;br /&gt;
 &amp;lt;ESC&amp;gt;, Code 27, die anderen sind normal lesbare ASCII Zeichen&lt;br /&gt;
&lt;br /&gt;
'''Pfeiltasten'''&lt;br /&gt;
* Pfeil oben&lt;br /&gt;
 &amp;lt;ESC&amp;gt;[A&lt;br /&gt;
* Pfeil unten&lt;br /&gt;
 &amp;lt;ESC&amp;gt;[B&lt;br /&gt;
* Pfeil rechts&lt;br /&gt;
 &amp;lt;ESC&amp;gt;[C&lt;br /&gt;
* Pfeil links&lt;br /&gt;
 &amp;lt;ESC&amp;gt;[D&lt;br /&gt;
&lt;br /&gt;
'''EDIT Keys'''&lt;br /&gt;
* Pos 1 (Home)&lt;br /&gt;
 &amp;lt;ESC&amp;gt;[1~&lt;br /&gt;
* Bild rauf&lt;br /&gt;
 &amp;lt;ESC&amp;gt;[5~&lt;br /&gt;
* Bild runter&lt;br /&gt;
 &amp;lt;ESC&amp;gt;[6~&lt;br /&gt;
&lt;br /&gt;
====Was kann man senden? (Auszug)====&lt;br /&gt;
Wie beim Empfangen. Bei den &amp;quot;normalen&amp;quot; Zeichen ändert sich nichts. Ich will auch nur einige Beispiele aufzeigen, die einen auf den Geschmack bringen sollen. &lt;br /&gt;
&lt;br /&gt;
Freie Positionierung des Cursors irgendwo am Schirm:&lt;br /&gt;
 &amp;lt;ESC&amp;gt;[''nn'';''mm''H&lt;br /&gt;
dabei ist &lt;br /&gt;
* nn die Zeilennummer  1-24&lt;br /&gt;
* mm die Spalternummer 1-80 oder 1-132&lt;br /&gt;
&lt;br /&gt;
BasCom Beispiel, das auch der C-Programmierer versteht:&lt;br /&gt;
 PRINT chr(27);&amp;quot;[01;40H&amp;quot;;&lt;br /&gt;
Stellt den Cursor in die oberste Zeile, genau in die Mitte.'- (führende Nullen können sein, müssen aber nicht)-'&lt;br /&gt;
&lt;br /&gt;
'''Zeichen-Attribute:'''&lt;br /&gt;
 &amp;lt;ESC&amp;gt;[''param''m     '-(das ist ein kleines &amp;quot;m&amp;quot; am Schluß)-'&lt;br /&gt;
Mögliche &amp;quot;param&amp;quot; sind:&lt;br /&gt;
* 0 = Normal&lt;br /&gt;
* 1 = Heller (bold)&lt;br /&gt;
* 4 = Unterstrichen&lt;br /&gt;
* 5 = Blinkend&lt;br /&gt;
* 7 = Reverse (dunkel auf hell bzw. umgekehrt) &lt;br /&gt;
Dabei können mehrere Attribute angegeben werden, dann aber mit Semikolon getrennt:&lt;br /&gt;
 &amp;lt;ESC&amp;gt;[''param1'';''param2'';''param3''m &lt;br /&gt;
&lt;br /&gt;
'''Beispiel:''' &lt;br /&gt;
will man bei einer Eingabe den Aufforderungstext verkehrt darstellen, sendet man&lt;br /&gt;
 PRINT chr(27);&amp;quot;[7m&amp;quot;;   ' setzt attribut &amp;quot;revers&amp;quot;&lt;br /&gt;
 PRINT &amp;quot;VORNAME ?&amp;gt;&amp;quot;;    ' der Text&lt;br /&gt;
 PRINT chr(27);&amp;quot;[0m&amp;quot;;   ' Attribut wieder normal&lt;br /&gt;
&lt;br /&gt;
http://www.roboternetz.de/wiki/uploads/Main/Ansii_2.jpg&lt;br /&gt;
&lt;br /&gt;
(Das geht natürlich auch in einem Print-Befehl auf einmal.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lösch-Befehle:'''&lt;br /&gt;
* Rechts vom Cursor die Zeile löschen &lt;br /&gt;
 &amp;lt;ESC&amp;gt;[K&lt;br /&gt;
* Links vom Cursor die Zeile löschen &lt;br /&gt;
 &amp;lt;ESC&amp;gt;[1K&lt;br /&gt;
* Vom Cursor abwärts den ganzen Schirm löschen &lt;br /&gt;
 &amp;lt;ESC&amp;gt;[2J&lt;br /&gt;
* Oberhalb des Cursors den ganzen Schirm löschen &lt;br /&gt;
 &amp;lt;ESC&amp;gt;[J&lt;br /&gt;
&lt;br /&gt;
'''Beispiel:''' &lt;br /&gt;
Beim Programmstart als Erstes den gesamten Schirm löschen und eine Überschrift in der Mitte  &lt;br /&gt;
 PRINT chr(27);&amp;quot;[1;1f&amp;quot;;    ' Cursor ganz rauf&lt;br /&gt;
 PRINT chr(27);&amp;quot;[J&amp;quot;;       ' den ganzen Schirm löschen&lt;br /&gt;
 PRINT chr(27);&amp;quot;[1;38f&amp;quot;;   ' In die Mitte der ersten Zeile &lt;br /&gt;
 PRINT chr(27);&amp;quot;[7m&amp;quot;;      ' setzt attribut &amp;quot;revers&amp;quot;&lt;br /&gt;
 PRINT &amp;quot;START&amp;quot;;            ' Überschrift&lt;br /&gt;
 PRINT chr(27);&amp;quot;[0m&amp;quot;;      ' setzt attribut normal&lt;br /&gt;
 PRINT                     ' (=neue Zeile) Cursor am Anfang der zweiten Zeile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Anmerkung:'''&lt;br /&gt;
Man kann mit diesen Sequenzen einiges tun. Auch einige [[Terminal_Game_mit_BasCom|Spiele aus der Urzeit]] lassen sich damit programmieren, vor allem aber kann man z.B. Sensorwerte übersichtlich an verschiedenen Stellen des Schirms so platzieren, dass man mehrere im Auge behalten kann.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[Terminal_Game_mit_BasCom]]&lt;br /&gt;
* [[UART]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.der-hammer.info/terminal Terminalprogramm HTherm]&lt;br /&gt;
* [http://www.emtec.com/zoc/index.htm ZOC Terminal - Terminalprogramm für Windows und Mac OS] &lt;br /&gt;
* [http://www.elektronik-labor.de/RS232/2010Terminal.html einfaches Terminal, unterstützt auch USB-seriell-Adapter]&lt;br /&gt;
&lt;br /&gt;
==Autoren==&lt;br /&gt;
''Artikel von [[User:PicNick|PicNick]], bearbeitet von Luma''&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Praxis|Terminalsteuerung]]&lt;/div&gt;</summary>
		<author><name>Chypsylon</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Timer/Counter_(Avr)&amp;diff=18619</id>
		<title>Timer/Counter (Avr)</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Timer/Counter_(Avr)&amp;diff=18619"/>
				<updated>2011-09-04T13:33:54Z</updated>
		
		<summary type="html">&lt;p&gt;Chypsylon: /* Weblinks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die Mikrocontroller der AVR-Familie besitzen je nach Typ eine unterschiedliche Anzahl an programmierbaren [[Timer|Timern]]. Bei den aktuellen ATmegas sind das mindestens ein 8-Bit Timer und ein 16-Bit Timer. Die Timer werden immer Timerx benannt, wobei x für die Timernummer steht (also 0, 1, 2, usw.). &lt;br /&gt;
Die Konfigurationsmöglichkeiten sind von Timer zu Timer unterschiedlich.&lt;br /&gt;
&lt;br /&gt;
'''Hinweis:''' Die folgenden Code-Beispiele sind in C programmiert und wurden für einen [[ATMega32|ATmega32]] entwickelt. Sie lassen sich also ohne große Änderungen auch auf anderen Mikrocontrollern der AVR-Familie einsetzen.&lt;br /&gt;
&lt;br /&gt;
== Allgemeine Funktionsweise ==&lt;br /&gt;
Timer funktionieren nach dem allgemeinen Prinzip, dass sie eine Ganzzahl (im weiteren als Zähler bezeichnet) je nach Betriebsmodus auf- oder abwärtszählen, d.h. inkrementieren bzw. dekrementieren.&lt;br /&gt;
&lt;br /&gt;
Angenommen, der Timer arbeitet im einfachsten Betriebsmodus, dem [[Timer/Counter (Avr)#Normaler Modus (Normal Mode)|Normalen Modus]]. Die Zählrichtung des Timers ist aufsteigend gerichtet. Je nach Auflösung, also 8-Bit oder 16-Bit, folgt auf den maximalen Zählerstand wieder die Null. Wenn z.B. bei einem 8-Bit Timer der Wert 255 inkrementiert wird folgt die Null (siehe Grafik).&lt;br /&gt;
&lt;br /&gt;
[[Bild:AbstrakterZaehlvorgang.png]]&lt;br /&gt;
&lt;br /&gt;
== Der Prescaler ==&lt;br /&gt;
Der Prescaler (eng. = Vorteiler) kann der Takt für den Timer herunter geteilt werden. Oft hat man Faktoren von 1, 8, 64 ,256 oder 1024 zur Auswahl. Über das selbe Register kann der Timer auch ganz angehalten werden oder ein externer Takt ausgewählt werden. Ein externer Takt darf dabei höchstens halb so hoch wie der Prozezessortakt sein.&lt;br /&gt;
Hier eine Grafik die den Prescaler veranschaulicht:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Prescaler.png]]&lt;br /&gt;
&lt;br /&gt;
Das obere Diagramm zeigt den Betrieb ohne Prescaler, das untere mit Prescaler (:2). Die gestrichelte Linie zeigt, wann der Timer weiterzählt.&lt;br /&gt;
&lt;br /&gt;
Im Teil [[Timer/Counter (Avr)#Die Betriebsmodi|Die Betriebsmodi]] wird weiter auf die praktische Verwendung des Prescalers eingegangen.&lt;br /&gt;
&lt;br /&gt;
== Die Betriebsmodi ==&lt;br /&gt;
Die AVR-Timer können in unterschiedlichen Betriebsmodi betrieben werden. Diese sind:&lt;br /&gt;
* Normaler Modus&lt;br /&gt;
* CTC Modus&lt;br /&gt;
* PWM&lt;br /&gt;
&lt;br /&gt;
=== Normaler Modus (Normal Mode) ===&lt;br /&gt;
Der einfachste Betriebsmodus ist der normale Modus. Er funktioniert wie im Abschnitt  &amp;quot;[[Timer/Counter (Avr)#Allgemeine Funktionsweise|Allgemeine Funktionsweise]]&amp;quot; beschrieben. Die Zählrichtung des Timers ist immer aufsteigend, bis zum Überlauf - da fängt der Zähler wieder bei 0 an. Der Überlauf kann einen Interrupt (Timer-Overflow) auslösen. Im einfachsten Fall kann dieser Modus im folgendem Diagramm dargestellt werden:&lt;br /&gt;
&lt;br /&gt;
[[Bild:NormalerModus_1.png]]&lt;br /&gt;
&lt;br /&gt;
Der Zähler des Timers (im Diagramm oben, die aufsteigende und dann wieder zurückgesetzte Linie) ist in dem Register TCNTx gespeichert, wobei x für eine Zahl steht. Soll z.B. auf den Timer0 (siehe Datenblatt des jeweiligen Controllers) des Controllers zugegriffen werden, so ist an TCNT eine 0 anzuhängen, also TCNT0.&lt;br /&gt;
Wie lange es braucht, bis der Zähler einen Overflow auslöst, ist von der Taktfrequenz des Controllers, dem eingestellten Prescaler-Wert und von der Timerauflösung abhängig. Nun wäre es ja sehr unpraktisch, wenn wir den Zähler nicht anpassen könnten. Denn sonst müssten wir unsere Software, die den Timer benutzt, evtl. anpassen und viel rechnen, um z.B. für 1000 ms zu schlafen. Deswegen kann auf den Zähler zugegriffen werden und ihn vorladen, bevor dieser wieder vom eigentlichen Timer hochgezählt wird. Dies veranschaulicht folgendes Diagramm:&lt;br /&gt;
&lt;br /&gt;
[[Bild:NormalerModus_1_Vorladen.png]]&lt;br /&gt;
&lt;br /&gt;
Dadurch kann eingestellt werden, wie lange es dauert, bis ein Overflow auftritt. Um zu berechnen, welchen Wert wir vorladen müssen, kann auch ein Java-Applet genutzt werden, siehe unter [[Timer/Counter (Avr)#Weblinks|Weblinks Java Applet]].&lt;br /&gt;
&lt;br /&gt;
Natürlich kann das auch &amp;quot;von Hand&amp;quot; berechnet werden. Die Berechnung des Preloader- sowie Prescalerwerts bei Verwendung der Overflow-Interrupts, eines Prescalers von 64 (nicht alle Prescaler können verwendet werden) und eines Quarzes mit der Frequenz von 8 MHz sieht folgendermaßen aus (gesuchte Frequenz beträgt 1000 Hz unter der Verwendung des Timer0 eines ATmega32):&lt;br /&gt;
# &amp;lt;math&amp;gt;Prescale = Frequenz * 1000000 [Hz] = 8000000&amp;lt;/math&amp;gt;&lt;br /&gt;
# Wir definieren den maximalen Zählerwert. Dieser ist bei einem 8-Bit Timer 256, bei einem 16-Bit Timer 65536. In unserem Fall ist der maximale Zählerwert 256, weil Timer0 verwendet wird.&lt;br /&gt;
# Nun wird die Variable ''Prescale'' (s.o.) durch den verwendeten Prescaler (64) geteilt (&amp;lt;math&amp;gt;8000000 Hz / 64 = 125000&amp;lt;/math&amp;gt;).&lt;br /&gt;
# Als nächstes wird der im dritten Punkt errechnete Wert durch die gesuchte Frequenz geteilt &amp;lt;math&amp;gt;=125000 / 1000Hz = 125&amp;lt;/math&amp;gt;.&lt;br /&gt;
# Nun wird mathematisch überprüft, ob der errechnete Wert aus dem vierten Punkt kleiner als der maximale Zählerwert ist. Trifft dies zu, so wird der errechneten Wert vom maximalen Zählerwert subtrahiert(&amp;lt;math&amp;gt;= 256 - 125 = 131&amp;lt;/math&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Damit haben wir den Wert errechnet, der bei jedem Interrupt, den der Timer0 auslöst, in TCNTx (in diesem Fall TCNT0) nachgeladen werden muss, damit die Interrupts in dem gewünschten Zeitabstand von einer Millisekunde ausgelöst werden.&lt;br /&gt;
&lt;br /&gt;
Zwischen dem Timer Overflow und dem tatsächlichen Aufrufen der ISR mit dem Nachladen des Timers ergibt sich eine kleine Verzögerung, die nicht einmal immer gleich ist. Bei einem genügend großen Prescaler (z.B. 64) kommt durch die Verzögerung kein zusätzlicher Timerschritt zustande, und auch die Methode mit dem Nachladen liefert exacte Ergebnisse. Bei kleinen Prescalern kommt  es durch die Verzögerung zu längeren und nicht immer gleichen Zeitabständen.  Wenn möglich wird für die Erzeugung einer konstanten Interruptrate deshalb besser der CTC Moduls benutzt.&lt;br /&gt;
&lt;br /&gt;
Zusammenfassend ein Beispielprogramm:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* Es wird der Timer2 (8-Bit) eines ATmega32 verwendet, der mit einem Quarz mit 7,3728 MHz&lt;br /&gt;
betrieben wird. Im Abstand von etwa 0,1 ms erzeugt der Timer einen Interrupt, also eine&lt;br /&gt;
Frequenz von 10000 Hz. Der Timer wird auf einen Prescaler von 64 und&lt;br /&gt;
einem Preloader von 244 konfiguriert.*/&lt;br /&gt;
&lt;br /&gt;
volatile uint8_t countTimer2;	// Speichert den aktuellen Zählerwert&lt;br /&gt;
&lt;br /&gt;
// ISR zum auffangen der Interrupts:&lt;br /&gt;
SIGNAL(SIG_SIG_OVERFLOW2)&lt;br /&gt;
{&lt;br /&gt;
	TCNT2 = 244;		// Nachladen&lt;br /&gt;
	countTimer2++;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Initialisierung:&lt;br /&gt;
TCCR2 = (1&amp;lt;&amp;lt;CS22);		// Prescaler von 64&lt;br /&gt;
TCNT2  = 244;			// Vorladen&lt;br /&gt;
TIMSK |= (1&amp;lt;&amp;lt;TOIE2);		// Interrupts aktivieren und damit Timer starten&lt;br /&gt;
sei();&lt;br /&gt;
&lt;br /&gt;
// Funktionen zum benutzen der Timer:&lt;br /&gt;
/** Diese Funktion nicht aufrufen. Wird von sleep_millisec aufgerufen.&lt;br /&gt;
Bei t=10 schläft die Funktion 1 ms. */&lt;br /&gt;
inline void sleep (uint8_t t)&lt;br /&gt;
{&lt;br /&gt;
	// countTimer2 wird in der ISR oben inkrementiert&lt;br /&gt;
        countTimer2 = 0;         // 1 Byte Typ, daher kein cli()... sei() nötig&lt;br /&gt;
	while (countTimer2 &amp;lt; t);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Schläft x-Millisekunden. */&lt;br /&gt;
inline void sleep_millisec(uint16_t msec)&lt;br /&gt;
{&lt;br /&gt;
	uint16_t i;&lt;br /&gt;
	for(i=0; i&amp;lt;msec; i++) {&lt;br /&gt;
		sleep(10);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Viele Timer haben &amp;quot;Output-Compare&amp;quot; Register: OCRx oder OCRAx,OCRBx. Wenn der Zähler den darin eingestellten Wert erreicht hat, kann ein Interrupts ausgelöst werden. &lt;br /&gt;
&lt;br /&gt;
==== Input Capture ====&lt;br /&gt;
&lt;br /&gt;
Die 16 Bit Timer haben eine &amp;quot;Input Capture&amp;quot; Funktion. Dieser Hardwareteil dient zur genauen Zeitmessung. Außer in einigen PWM Betriebsarten, wo das ICP Register als TOP-wert für den Timer benutzt wird, ist die ICP-Funktion immer aktiv. Wenn am ICP Pin die über das Bit &amp;quot;ICESx&amp;quot; eingestellte Flanke auftritt, wird der aktuelle Zählerstand in das ICP Register kopiert. Außerdem kann ein Interrupt ausgelöst werden. Der Interrupt wird, wie die anderen Timer Interrupts, in den Registern TIMSK und TIFR an- oder abgestellt. Man kann zwar die ICP-Funktion selber nicht ohne weiteres abschalten, aber natürlich den dazugehörigen Interrupt.  Als eine spezielle Funktion (&amp;quot;Noise Cancler&amp;quot;) gibt es die Möglichkeit sehr kurze Pulse (unter 4 Zyklen) zu unterdrücken. In der Regel kann man diese Funktion angestellt lassen, denn so schnell kann man die Daten ohnehin nicht verarbeiten.&lt;br /&gt;
&lt;br /&gt;
Die typische Anwendung ist die Messung von kurze Zeiten, wie z.B. die Zeit für eine Motorumdrehung. Solange die 16 Bit des Timers ausreichen ist die Benutzung ganz einfach: Der Timer wird mit dem gewünschten Vorteiler im normalen Modus gestartet. Im ICP-Interrupt wird die Differenz aus zwei aufeinanderfolgenden Zeiten (Werte in ICP-Register) berechnet. Dazu wird jeweils die vorherige Zeit im RAM zwischengespeichert. Wenn man bei der Rechnung eventuelle Überläufe ignoriert, bekommt man die richtige Zeitdifferenz, auch wenn der Timer während der Messzeit einen Überlauf hatte. Das funktioniert so einfach, denn wenn noch weitere (höherwertige) Bytes vorhanden wären, damit es keinen Überlauf gibt, würde man genau so die unteren Bits berechnen.&lt;br /&gt;
&lt;br /&gt;
Etwas komplizierter wird es, wenn die 16 Bit Auflösung nicht mehr ausreicht. Dann kann der Timer-Überlauf benutzt werden, um auch längere Zeiten mit voller Auflösung zu messen. Die wesentliche Schwierigkeit ist es, den Fall zu berücksichtigen, dass ein Überlauf Interrupt und der ICP Interrupt fast gleichzeitig ausgelöst werden. Es kann passieren, dass der ICP-Interrupt aufgerufen wird, obwohl eigentlich erst der Overflow Interrupt dran gewesen wäre. Dieser seltene Fall läßt sich daran erkennen, dass das Overflow-Interrupt Flag gesetzt ist und der Wert im ICP Register klein ist (high Byte &amp;lt; 128, meistens 0).&lt;br /&gt;
&lt;br /&gt;
Beispielpropgramm (für GCC):&lt;br /&gt;
(Bisher nur im Simulator getestet)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Beispielprogramm für Zeitmessung mit ICP-Funktion&lt;br /&gt;
// Erweiterung des Timers auf 32 Bit durch Software&lt;br /&gt;
// Es wird die Periodendauer am ICP-Eingang gemessen und als ASCII via UART ausgegeben&lt;br /&gt;
// Code für Mega48 / Mega88 / Mega 168 / ...&lt;br /&gt;
// mit leichten Anpassungen auch für Tiny2313, Mega16, Mega32,...&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;         // für utoa&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;avr/interrupt.h&amp;gt;&lt;br /&gt;
#include &amp;lt;avr/sleep.h&amp;gt;      // Unterstützung für sleep mode&lt;br /&gt;
&lt;br /&gt;
// #define F_CPU  1000000UL      // Definition der Frequenz ist normal in makefile&lt;br /&gt;
#define BAUD        19200UL&lt;br /&gt;
#define UBRR_BAUD   ((F_CPU/(16UL*BAUD))-1)&lt;br /&gt;
&lt;br /&gt;
typedef union {  // union erlaubt einen effektiven, seperaten Zugriff auf Teile der Variable&lt;br /&gt;
        unsigned long i32;&lt;br /&gt;
        struct {uint8_t i8l;        // low&lt;br /&gt;
                uint8_t i8m;        // mid&lt;br /&gt;
		unsigned int high;  // high, soft timer                &lt;br /&gt;
               };&lt;br /&gt;
              } convert32to8;&lt;br /&gt;
&lt;br /&gt;
volatile unsigned long timestamp;    // volatile wegen Zugriff im Interrrupt&lt;br /&gt;
volatile unsigned int softtimer;&lt;br /&gt;
volatile unsigned long zeitdifferenz;&lt;br /&gt;
unsigned long zeit;&lt;br /&gt;
char puffer[12];           // puffer für Ausgabe als Ascii&lt;br /&gt;
&lt;br /&gt;
ISR(TIMER1_OVF_vect)   	   // Timer1 Überlauf&lt;br /&gt;
{ &lt;br /&gt;
  ++softtimer; 		   // zählen der Überläufe&lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
ISR(TIMER1_CAPT_vect)      //  Flanke an ICP pin&lt;br /&gt;
{ &lt;br /&gt;
  convert32to8 cap;        // Variablendeklaration&lt;br /&gt;
   &lt;br /&gt;
  cap.i8l = ICR1L;         // low Byte zuerst, high Byte wird gepuffert&lt;br /&gt;
  cap.i8m = ICR1H;  &lt;br /&gt;
  // overflow verpasst, wenn ICR1H klein und wartender Overflow Interrupt&lt;br /&gt;
  if ((cap.i8m &amp;lt; 128) &amp;amp;&amp;amp; (TIFR1 &amp;amp; (1&amp;lt;&amp;lt;TOV1)))&lt;br /&gt;
   {   // wartenden timer overflow Interrupt vorziehen&lt;br /&gt;
     ++softtimer;         &lt;br /&gt;
     TIFR1 = (1&amp;lt;&amp;lt;TOV1);    // timer overflow int. löschen, da schon hier ausgeführt&lt;br /&gt;
   }&lt;br /&gt;
  cap.high = softtimer;    // obere 16 Bit aus Software Zähler&lt;br /&gt;
  zeitdifferenz = cap.i32 - timestamp;&lt;br /&gt;
  timestamp = cap.i32;     // Zeit merken&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void uart_init(void)       // USART initialisieren (Mega48 etc.)&lt;br /&gt;
{&lt;br /&gt;
// Baudrate einstellen (Normaler Modus)&lt;br /&gt;
// kann bei älteren AVR Typen etwas anders sein (kein UBRR0H, dafür prescaler)&lt;br /&gt;
  UBRR0H = (uint8_t) (UBRR_BAUD&amp;gt;&amp;gt;8);             // bei Mega32  anders !&lt;br /&gt;
  UBRR0L = (uint8_t) (UBRR_BAUD &amp;amp; 0x0ff);        // bei Mega32 UBRRL&lt;br /&gt;
  UCSR0B = (1&amp;lt;&amp;lt;TXEN0);   // Aktivieren des Senders, bei Mega32 UCSRB&lt;br /&gt;
  UCSR0C = (1&amp;lt;&amp;lt;UCSZ01)|(1&amp;lt;&amp;lt;UCSZ00)|(1&amp;lt;&amp;lt;USBS0);   // bei Mega32 UCSRC&lt;br /&gt;
// Einstellen des Datenformats: 8 Datenbits, 2 Stoppbit:&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void putser(char c)  // sende ein Byte via UART&lt;br /&gt;
{&lt;br /&gt;
  while ( !( UCSR0A &amp;amp; (1&amp;lt;&amp;lt;UDRE0)) ) ; // Warten bis der Sendepuffer frei ist&lt;br /&gt;
  UDR0 = c;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void main(void)&lt;br /&gt;
{&lt;br /&gt;
 unsigned char i;&lt;br /&gt;
// Datenrichtungen:&lt;br /&gt;
 DDRB  = 0;  			  // Alles Eingänge, PB0 ist ICP&lt;br /&gt;
 PORTB = 0xFF - (1&amp;lt;&amp;lt;PB0);         // Pullups an Eingängen außer ICP&lt;br /&gt;
 DDRC  = 0;     		  // Eingänge&lt;br /&gt;
 PORTC = 0xFF;  		  // Pullups an Eingängen &lt;br /&gt;
 DDRD  = (1&amp;lt;&amp;lt;PD1);                // Eingänge, außer PD1 = Tx (UART)&lt;br /&gt;
 PORTC = 0xFF- (1&amp;lt;&amp;lt;PD1);          // Pullups an alle Eingängen (außer TX)&lt;br /&gt;
// Timer1 initialisieren:&lt;br /&gt;
 TCCR1A = 0;                      // normal mode, keine PWM Ausgänge&lt;br /&gt;
 TCCR1B = (1&amp;lt;&amp;lt; ICNC1) + (1&amp;lt;&amp;lt;CS10)    // start Timer mit Systemtakt&lt;br /&gt;
          + (1 &amp;lt;&amp;lt; ICES1);            // steigende Flanke auswählen&lt;br /&gt;
 TIMSK1 = (1&amp;lt;&amp;lt;TOIE1) + (1&amp;lt;&amp;lt;ICIE1);   // overflow und Input-capture aktivieren, Mega32: TIMSK&lt;br /&gt;
 TIFR1 = (1&amp;lt;&amp;lt;TOIE1) + (1&amp;lt;&amp;lt;ICIE1);    // Schon aktive Interrrupts löschen, Mega32: TIFR&lt;br /&gt;
// UART initialisieren:&lt;br /&gt;
 uart_init();                &lt;br /&gt;
&lt;br /&gt;
 zeitdifferenz = 0;&lt;br /&gt;
 softtimer = 0;      // wird für Zeitdifferenzmessung nicht mal gebraucht,&lt;br /&gt;
                     // denn Differenz geht auch über Überlauf bei Softtimer&lt;br /&gt;
 set_sleep_mode (SLEEP_MODE_IDLE);  // idle Mode: timer läuft weiter, int zum aufwachen&lt;br /&gt;
&lt;br /&gt;
 sei();              // Interrupts erlauben: Messung startet&lt;br /&gt;
 while (1)&lt;br /&gt;
 {&lt;br /&gt;
  sleep_enable ();     &lt;br /&gt;
  sei();&lt;br /&gt;
  sleep_cpu();          // wartet auf irgendeinen Interrupt, z.B. ICP, timer_ovr,...&lt;br /&gt;
  sleep_disable();      &lt;br /&gt;
  cli();		// Interrupt sperren wegen Zugriff auf volatile Variable&lt;br /&gt;
  zeit = zeitdifferenz;&lt;br /&gt;
  zeitdifferenz = 0;   	// als Markierung für ungültigen Wert&lt;br /&gt;
  sei();&lt;br /&gt;
  if (zeit &amp;gt; 0)&lt;br /&gt;
  { &lt;br /&gt;
    ultoa(zeit,puffer,10);   // nach ASCII umwandeln&lt;br /&gt;
    i = 0;&lt;br /&gt;
    while (puffer[i])&lt;br /&gt;
     {&lt;br /&gt;
      putser(puffer[i++]);  // Ausgabe&lt;br /&gt;
     }&lt;br /&gt;
    putser(13);             // Zeilenumbruch senden&lt;br /&gt;
    putser(10);&lt;br /&gt;
  }&lt;br /&gt;
 }  // Ende von While-schleife&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CTC Modus (Clear Timer on Compare Match mode) ===&lt;br /&gt;
Der CTC Modus ist eine Erweiterung des &amp;quot;Output-Compare&amp;quot;-Funktion. Der CTC Modus eignet sich besonders, um einen mit konstanter Frequenz wiederkehrenden Interrupt zu erzeugen. Wie im normalen Modus zählt der Timer hoch. Wenn der Wert im OCRx Register erreicht wird, wird zusätzlich zum möglichen Interrupt der Zähler wieder auf 0 gesetzt. Es kann also die maximalen Zählergrenze selber definiert werden.&lt;br /&gt;
Dieses Diagramm veranschaulicht den CTC Modus.&lt;br /&gt;
&lt;br /&gt;
[[Bild:NormalerModus_CompareMatch.png]]&lt;br /&gt;
&lt;br /&gt;
Beispielprogramm:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* Es wird der Timer2 (8-Bit) eines ATmega32 verwendet, der mit einem Quarz &lt;br /&gt;
   mit 7,3728 MHz betrieben wird. Im Abstand von 0,01 ms erzeugt der Timer &lt;br /&gt;
   einen Interrupt, also eine Frequenz von 100000 Hz (oder 100 kHz). &lt;br /&gt;
   Der Timer wird auf einen Prescaler von 1 und einem OCR2-Wert von 73 konfiguriert. */&lt;br /&gt;
&lt;br /&gt;
volatile uint8_t countTimer2;	// Speichert den aktuellen Zählerwert&lt;br /&gt;
&lt;br /&gt;
// ISR zum auffangen der Interrupts:&lt;br /&gt;
SIGNAL(SIG_OUTPUT_COMPARE2)&lt;br /&gt;
{&lt;br /&gt;
  countTimer2++;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Initialisierung:&lt;br /&gt;
TCCR2 = (1&amp;lt;&amp;lt;CS20) | (1&amp;lt;&amp;lt;WGM21);	// Prescaler von 1 | CTC-Modus (siehe unten für Beschreibung)&lt;br /&gt;
OCR2  = 73;			// Vergleichswert&lt;br /&gt;
TIMSK |= (1&amp;lt;&amp;lt;OCIE2);		// Interrupts aktivieren und damit Timer starten&lt;br /&gt;
sei();&lt;br /&gt;
&lt;br /&gt;
// Funktionen zum benutzen der Timer:&lt;br /&gt;
/** Diese Funktion nicht aufrufen. Wird von sleep_millisec aufgerufen.&lt;br /&gt;
Bei t=100 schläft die Funktion 1 ms. */&lt;br /&gt;
inline void sleep(uint8_t t)&lt;br /&gt;
{&lt;br /&gt;
	// countTimer2 wird in der ISR oben inkrementiert&lt;br /&gt;
	countTimer2 = 0;&lt;br /&gt;
	while (countTimer2 &amp;lt; t);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Schläft x-Millisekunden. */&lt;br /&gt;
inline void sleep_millisec(uint16_t msec)&lt;br /&gt;
{&lt;br /&gt;
	uint16_t i;&lt;br /&gt;
	for(i=0; i&amp;lt;msec; i++) {&lt;br /&gt;
		sleep(100);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== PWM ===&lt;br /&gt;
&lt;br /&gt;
Eine häufige Aufgabe für Mikrocontroller ist die Erzeugung von [[PWM]]-Signalen, zum Beispiel für Motorsteuerungen. Daher sind in den meisten [[AVR|AVRs]] PWM-Einheiten als Hardware vorhanden. Sie sind direkt mit den Timern verbunden und nutzen diese als Taktquelle. Die Hardware-PWM-Einheiten haben den Vorteil, sehr wenig Rechenzeit in Anspruch zu nehmen. Es muss nur die PWM aktiviert werden und bei Änderungen den gewünschten Wert in ein Register schreiben. Der Rest läuft automatisch und unabhängig vom restlichen Programm, ohne den AVR ständig zu beschäftigen wie bei einer PWM-Lösung in Software. Allerdings stehen meist nur zwei bis drei solcher PWM-Kanäle zur Verfügung, die außerdem an bestimmte Pins gebunden sind. Für die meisten Roboter mit zwei Antriebsmotoren reicht dies aber für gewöhnlich aus. &lt;br /&gt;
&lt;br /&gt;
==== nutzbare Pins am AVR ====&lt;br /&gt;
Die Hardware-PWM-Funktion steht nur an bestimmten Pins zur Verfügung. In der Pinbelegungsübersicht im Datenblatt ist erkenntbar, dass als Sonderfunktion in Klammern &amp;quot;OC...&amp;quot; angegeben ist. Beim Mega32 sind dies zb. OC0 an PB3, OC1A an PD5, OC1B an PD4 und OC2 an PD7. Der Mega32 hat also insgesamt vier Hardware-PWM-Kanäle. Die Zahl hinter dem &amp;quot;OC&amp;quot; gibt an, zu welchem der Timer dieser PWM-Kanal gehört. Wenn noch ein Buchstabe dahinter kommt, dann gehören mehrere PWMs zu diesem Timer. Beim Mega32 sind also OC1A und OC1B demselben Timer, nämlich Timer1, zugeordnet.&lt;br /&gt;
&lt;br /&gt;
'''Zu beachten ist, dass die für die PWM benutzten Pins zuvor explizit als Ausgang konfiguriert werden müssen! Ansonsten gelangt das PWM-Signal nicht nach draußen!'''&lt;br /&gt;
&lt;br /&gt;
==== Funktionsprinzip ====&lt;br /&gt;
Das &amp;quot;OC&amp;quot; in den Pinbezeichnungen steht für &amp;quot;Output Compare Unit&amp;quot;, also frei übersetzt Ausgangs-Vergleicher-Einheit. Dies beschreibt die Funktionsweise der PWM-Kanäle: der Zählerstand des Timers wird fortlaufend mit einen einstellbaren Referenzwert verglichen, und wenn beide Werte übereinstimmen, kann ein Ausgangspin des AVRs automatisch geschaltet werden (und ein Interrupt ausgelöst werden, was allerdings für die PWM-Funktion nicht relevant ist). Dies entspricht dem Verfahren im [[PWM#PWM_per_Software|Beispiel zur Software-PWM]]. Es läuft nun allerdings vollautomatisch im Hintergrund, sodass der Controller nicht damit belastet wird.&lt;br /&gt;
&lt;br /&gt;
==== Die verschiedenen PWM-Modi ====&lt;br /&gt;
Es gibt -je nach AVR und Timer- etliche Betriebsarten, in denen die PWM-Einheit betrieben werden kann. Sie unterscheiden sich vor allem darin, wie schnell und mit welchen Nebeneffekten sich Änderungen des Sollwertes auf das Ausgangssignal auswirken. Für den Anfang sind diese Unterschiede erst einmal nebensächlich, und für eine einfache Motorsteuerung meist auch irrelevant. Daher wird hier zunächst der &amp;quot;Fast PWM Mode&amp;quot; (&amp;quot;Schneller PWM Modus&amp;quot;, weil hier die größte Ausgangsfrequenz möglich ist) beschreiben, welcher der einfachste von allen ist.&lt;br /&gt;
&lt;br /&gt;
Hierbei zählt der Timer immer von Null an aufwärts, bis er den Maximalwert (teilweise einstellbar) erreicht hat. Dann läuft er über und fängt von vorne an. Wie schnell dies geschieht, wird, wie im normalen Modus, über den Prescaler eingestellt.&lt;br /&gt;
Der gewünschte PWM-Ausgangswert wird im &amp;quot;OCRn&amp;quot;-Register abgelegt. Er darf zwischen Null und dem Maximalwert des Timers liegen. Er wird nun mit dem Timer-Wert verglichen. Was dann passiert, regeln die &amp;quot;COM...&amp;quot;-Bits. Sie bestimmen, wie der Ausgang geschaltet wird. Die übliche Konfiguration ist, dass bei Erreichen des Sollwertes die Ausgänge auf high geschaltet werden, und beim Überlauf auf low. Damit ergibt sich ein nichtinvertiertes PWM-Signal. Schließt man (über einem passenden Motortreiber!) einen Motor an, dreht er sich bei einem Sollwert von 0 gar nicht und beim Maximalwert mit voller Geschwindigkeit.&lt;br /&gt;
&lt;br /&gt;
Beispielcode für den Timer1 des Mega16/32 (und vieler anderer AVRs): &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;
#include &amp;lt;util/delay.h&amp;gt; // Warteschleife für die Demo. Für die eigentliche PWM nicht benötigt!  &lt;br /&gt;
&lt;br /&gt;
/*  PWM-Beispiel für Mega16/32 (beiden haben den gleichen Timer)&lt;br /&gt;
	Benutzt wird Timer1 im Fast PWM Mode, 8 Bit Auflösung&lt;br /&gt;
	Die PWM-Signale liegen auf PD5/OC1A und PD4/OC1B&lt;br /&gt;
*/	&lt;br /&gt;
&lt;br /&gt;
// 1. Den Prescaler einstellen, der die Frequenz festlegt&lt;br /&gt;
	TCCR1B |= (1&amp;lt;&amp;lt;CS12); //Prescaler 256&lt;br /&gt;
	&lt;br /&gt;
// 2. Den Timer in den Fast PWM Mode, 8 Bit schalten&lt;br /&gt;
//    ACHTUNG: Die WGM-Bits sind auf beide Konfigurationsregister verteilt!&lt;br /&gt;
	TCCR1A |= (1&amp;lt;&amp;lt;WGM10);&lt;br /&gt;
	TCCR1B |= (1&amp;lt;&amp;lt;WGM12);&lt;br /&gt;
	&lt;br /&gt;
// 3. Compare Output mode einstellen: Pin geht auf high bei Compare match, auf low bei Überlauf. &lt;br /&gt;
//    Ergibt nichtinvertierte PWM.	&lt;br /&gt;
	TCCR1A |= (1&amp;lt;&amp;lt;COM1A1) | (1&amp;lt;&amp;lt;COM1B1) ;	&lt;br /&gt;
	&lt;br /&gt;
// In diesen Registern wird der gwünschte PWM-Wert abgelegt. Erlaubter Bereich: 0 bis 255.&lt;br /&gt;
	OCR1A =	0;&lt;br /&gt;
	OCR1B = 0;	&lt;br /&gt;
&lt;br /&gt;
// 4. Die Pins als Ausgänge konfigurieren. Erst jetzt liegt das PWM-Signal an den Pins an!	&lt;br /&gt;
	DDRD |= (1&amp;lt;&amp;lt;PD4) | (1&amp;lt;&amp;lt; PD5);&lt;br /&gt;
&lt;br /&gt;
/*Nun ist der PWM-Modus aktiv! Der Ausgangswert kann nun über die Register OCR1A und OCR1B&lt;br /&gt;
  vorgegeben werden. Man könnte ihnen per define noch einen Zweitnamen verpassen, zb */&lt;br /&gt;
#define MotorLinks OCR1A&lt;br /&gt;
#define MotorRechts OCR1B&lt;br /&gt;
//Und nun kann man per &lt;br /&gt;
MotorLinks = 127;&lt;br /&gt;
MotorRechts = 127;&lt;br /&gt;
//seinen Roboter mit halber Kraft vorwärts fahren lassen.&lt;br /&gt;
&lt;br /&gt;
/*PWM-Demo: Die PWM-Werte werden erst bis zum Maximalwert erhöht und dann wieder verringert. &lt;br /&gt;
Ein angeschlossener Motor wird beschleunigen und dann wieder abbremsen. */&lt;br /&gt;
	uint8_t wert;&lt;br /&gt;
	while(1)&lt;br /&gt;
	{&lt;br /&gt;
		for (wert=0; wert&amp;lt;255; wert++)&lt;br /&gt;
			{&lt;br /&gt;
				OCR1A =	wert;&lt;br /&gt;
				OCR1B = wert;&lt;br /&gt;
				_delay_ms(10);&lt;br /&gt;
			}&lt;br /&gt;
	&lt;br /&gt;
		for (wert=255; wert&amp;gt;0; wert--)&lt;br /&gt;
			{&lt;br /&gt;
				OCR1A =	wert;&lt;br /&gt;
				OCR1B = wert;&lt;br /&gt;
				_delay_ms(10);&lt;br /&gt;
			}	&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es sind also vier Einstellungen zu treffen:&lt;br /&gt;
# Takt anlegen per Prescaler&lt;br /&gt;
# PWM-Modus wählen&lt;br /&gt;
# Ausgangs-Aktion festlegen&lt;br /&gt;
# Pins als Ausgänge schalten&lt;br /&gt;
&lt;br /&gt;
Diese Schritte müssen bei jedem AVR-PWM-Kanal ausgeführt werden. Die genauen Registernamen und Werte können sich jedoch je nach Timer-Ausführung etwas unterscheiden.&lt;br /&gt;
&lt;br /&gt;
== Registerübersicht ==&lt;br /&gt;
''Hinweis: Diese Registertabellen wurden für den aktuellen [[Atmel Controller Mega16 und Mega32]] erstellt. Wenn Sie ein anderes Modell verwenden kann es sein, dass ein oder mehrere Register nicht existieren, oder sie eine andere Bezeichnung haben.''&lt;br /&gt;
&lt;br /&gt;
{| {{Blaueschmaltabelle}} width=100%&lt;br /&gt;
 |'''TIMSK'''&lt;br /&gt;
 |-&lt;br /&gt;
 |Mit diesem Register, der von allen Timern verwendet wird, lässt sich die Interruptausführung und Art des jeweiligen Timers bestimmen.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Registertabelle8Bit|OCIE2|TOIE2|TICIE1|OCIE1A|OCIE1B|TOIE1|OCIE0|TOIE0}}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
*'''OCIE2 (Timer/Counter2 Output Compare Match Interrupt Enable)'''&amp;lt;br/&amp;gt;Wenn dieses Bit gesetzt wird, wird der Timer/Counter2 Compare Match Interrupt aktiviert (vorrausgesetzt die Interrupts sind global aktiviert).&lt;br /&gt;
*'''TOIE2 (Timer/Counter2 Overflow Interrupt Enable)'''&amp;lt;br/&amp;gt;Wenn dieses Bit gesetzt wird, wird der Timer/Counter2 Overflow Interrupt aktiviert (vorrausgesetzt die Interrupts sind global aktiviert).&lt;br /&gt;
*'''TICIE1 (Timer/Counter1, Input Capture Interrupt Enable)'''&amp;lt;br/&amp;gt;Wenn dieses Bit gesetzt wird, wird der Timer/Counter1 Input Capture Interrupt aktiviert (vorrausgesetzt die Interrupts sind global aktiviert).&lt;br /&gt;
*'''OCIE1A (Timer/Counter1 Output Compare A Match Interrupt Enable)'''&amp;lt;br/&amp;gt;Wenn dieses Bit gesetzt wird, wird der Timer/Counter1 Output Compare A Match Interrupt aktiviert (vorrausgesetzt die Interrupts sind global aktiviert).&lt;br /&gt;
*'''OCIE1B (Timer/Counter1 Output Compare B Match Interrupt Enable)'''&amp;lt;br/&amp;gt;Wenn dieses Bit gesetzt wird, wird der Timer/Counter1 Output Compare B Match Interrupt aktiviert (vorrausgesetzt die Interrupts sind global aktiviert).&lt;br /&gt;
*'''TOIE1 (Timer/Counter1 Overflow Interrupt Enable)'''&amp;lt;br/&amp;gt;Wenn dieses Bit gesetzt wird, wird der Timer/Counter1 Overflow Interrupt aktiviert (vorrausgesetzt die Interrupts sind global aktiviert).&lt;br /&gt;
*'''OCIE0 (Timer/Counter0 Output Compare Match Interrupt Enable)'''&amp;lt;br/&amp;gt;Wenn dieses Bit gesetzt wird, so wird der Timer/Counter0 Compare Match Interrupt aktiviert (vorrausgesetzt die Interrupts sind global aktiviert).&lt;br /&gt;
*'''TOIE0 (Timer/Counter0 Overflow Interrupt Enable)'''&amp;lt;br/&amp;gt;Wenn dieses Bit gesetzt wird, so wird der Timer/Counter0 Overflow Interrupt aktiviert  (vorrausgesetzt die Interrupts sind global aktiviert).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
* [[Atmel]]&lt;br /&gt;
* [[HEX Beispiel-Dateien für AVR]]&lt;br /&gt;
* [[Bascom_und_Timer]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.atmel.com/dyn/products/devices.asp?family_id=607 Die Datenblätter zu Atmel Controllern]&lt;br /&gt;
* [http://frank.circleofcurrent.com/cache/avrtimercalc.htm  Javascript-Toll zur Timerberechnung]&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/dload.php?action=file&amp;amp;file_id=169 AvrTimer Windows Berechnungstool (für Bascom, nur nach Anmeldung)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Microcontroller]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;br /&gt;
[[Kategorie:Elektronik]]&lt;br /&gt;
[[Kategorie:Abkürzung|AVR]]&lt;br /&gt;
[[Kategorie:Quellcode C]]&lt;/div&gt;</summary>
		<author><name>Chypsylon</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Beispiel_Drehzahlmessung_mit_Drehgeber&amp;diff=17507</id>
		<title>Beispiel Drehzahlmessung mit Drehgeber</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Beispiel_Drehzahlmessung_mit_Drehgeber&amp;diff=17507"/>
				<updated>2011-06-20T17:57:56Z</updated>
		
		<summary type="html">&lt;p&gt;Chypsylon: /* Quelcode */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategorie:Sensoren]] &lt;br /&gt;
[[Kategorie:Praxis]]&lt;br /&gt;
[[Kategorie:Motoren]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ermitteln der Drehzahl und Wegstrecke in Abhängigkeit einer Winkeländerung oder Impulsfolge in einer Abgelaufenen Zeit&lt;br /&gt;
&lt;br /&gt;
* Messen der Drehzahl nach jedem Impuls, also in Abhängigkeit einer Winkeländerung.&lt;br /&gt;
* Messen der Drehzahl durch Zählen der Impulse nach Ablauf einer bestimmten Zeit. &lt;br /&gt;
* Richtung, Geschwindigkeit und Position mit Doppellichtschranke ermitteln&lt;br /&gt;
{{Ausbauwunsch|Mehr Grundlagen und vor allem mal praktische Programmbeispiele / Algorithmen etc.}}&lt;br /&gt;
= Messen der Drehzahl nach jedem Impuls =&lt;br /&gt;
&lt;br /&gt;
Dieser Teil beschäftigt sich vor allem mit der Optischen Drehzahlmessung mit Hilfe einer Lochscheibe und [[Gabellichtschranke]] berechnet über die Periodendauer ohne Drehrichtungserkennung.&lt;br /&gt;
[[Bild:GP1S23 Testaufbau.JPG|thumb| Testaufbau mit einer 32er Lochscheibe ]]&lt;br /&gt;
[[Bild:183015_LB_00_FB.EPS_250.jpg|thumb|GP1S23 Gabellichtschranke Bild: Conrad Electronic ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Einführung ==&lt;br /&gt;
&lt;br /&gt;
Am einfachsten ist Impulse direkt an einer Bürste eines Motors zu zählen. Siehe dazu: http://www.roboternetz.de/community/...einem-DC-Motor .&lt;br /&gt;
&lt;br /&gt;
Die [http://de.wikipedia.org/wiki/Winkelgeschwindigkeit Winkelgeschwindigkeit] ist die Winkeländerung pro Zeiteinheit. Mit der Lichtschranke und den geometrischen Daten der Lochscheibe kann man nun relativ einfach die Zeit für eine bestimmte Winkeländerung messen. &lt;br /&gt;
Die Lochscheibe gibt uns die Winkeländerung bei einer Periode vor, bei einer 32er Lochscheibe wären das 11,25° pro Periode , wie in den Bildern vom Oszilloskop zu sehen ändert sich natürlich bei Änderung der Drehzahl die Periodendauer, die Winkeländerung pro Periode ist aber konstant da diese durch die Lochscheibe vor gegeben ist. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Bild:GP1S23_signal_langsam.png|Signal der Lichtschranke bei langsamer Drehzahl &lt;br /&gt;
Bild:GP1S23_signal_schnell.PNG |Signal der Lichtschranke bei schneller Drehzahl &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Um die Periodendauer zu messen verwende ich den ICP1 (Input Capture Pin) eines Atmega8 der bei steigender Flanke den Timer1 ausliest und in das ICR1 Register schreibt. Läuft der Mikrocontroller auf 8Mhz und wir stellen den Vorteiler des Timers auf 8 so bekommen wir die Periodendauer in µs als Wert.&lt;br /&gt;
&lt;br /&gt;
== Auslegen der Lochscheibe ==&lt;br /&gt;
&lt;br /&gt;
In den meisten Fällen definieren der mechanische Aufbau den Durchmesser der Lochscheibe und die Drehzahl die Teilung (Anzahl der Löcher). Der µContoller und die Gabellichtschranke müssen die Impulse auch erfassen und verarbeiten können. Wenn man das Drehzahlband abschätzen kann ist es hilfreich, sich schon Gedanken um die Programmierung zu machen, denn bei hohen Drehzahlen springt der µC jedes mal in die Interrupt Service Routine rein, sofern man es so programmiert wie im Beispiel. Bei hohen Drehzahlen sollte die Teilung somit gröber, bei niedriger Drehzahl die Teilung feiner sein. &lt;br /&gt;
&lt;br /&gt;
[[Bild:Drehscheibe20mm.png|400px|thumb|left|Lochscheibe abgerollt mit idealisiertem Signal ]]&lt;br /&gt;
&lt;br /&gt;
== Berechnungen ==&lt;br /&gt;
&lt;br /&gt;
Hier folgt nun die Berechnung über die Periodendauer, beachten sollte man das im [http://de.wikipedia.org/wiki/Bogenma%C3%9F Bogenmaß] gerechnet wird, ein Winkel mit dem Bogenmaß 1 rad hat ein Gradmaß von ca. 57,3°. 11.25° sind also ca. 0,196 rad, das führt später natürlich zu unschönen Rechenoperationen im µC, Stichwort [http://www.mikrocontroller.net/articles/Festkommaarithmetik Festkommaarithmetik]. &lt;br /&gt;
&lt;br /&gt;
Nach dem Umstellen kommt man aber auf eine recht handliche Formel &amp;lt;math&amp;gt;n = \frac{\varphi }{dt \cdot 360}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es ist auch eine Überlegung wert, ob man die Drehzahl nicht umrechnet sondern mit der Periodendauer arbeitet. Das ist zwar nicht so geläufig aber das stört den µController nicht. Mit einem Kalkulationsprogramm kann man die Umrechnung von Periodendauer in Drehzahl auch extern vornehmen. &lt;br /&gt;
&lt;br /&gt;
Man sollte sich auch klar machen, das zumindest ein 8-Bit Prozessor am besten mit '''Ganzzahlen''' zwischen 0 und 255 oder 0 und 65535 zurechtkommt. Für die Teilung der Lochscheibe bieten sich deshalb Werte wie 90, 72, 45, 36, 30, 24, 20, 18, 15, 12, 10 und 8 an. Verwendet man an Stelle der dargestellten 32er Lochscheibe eine 30er oder 36er Scheibe, kann man zumindest mit ganzzahligen Gradzahlen rechnen. &amp;quot;Krumme Werte&amp;quot; wie [http://de.wikipedia.org/wiki/Kreiszahl Pi = 3,1415...], [http://de.wikipedia.org/wiki/Radiant_%28Einheit%29 Radiant = 57,29577...°] usw. sollten eine seltene Ausnahme in der Programmierung sein.&lt;br /&gt;
&lt;br /&gt;
= Messen der Drehzahl durch zählen der Impulse =&lt;br /&gt;
&lt;br /&gt;
Dieser Teil beschäftigt sich mit der Optischen Drehzahlmessung mit Hilfe einer Lochscheibe und [[Gabellichtschranke]] berechnet über die die Anzahl der Impulse in einer gewissen Zeit.&lt;br /&gt;
&lt;br /&gt;
== Einführung ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Berechnung==&lt;br /&gt;
&lt;br /&gt;
= Richtung, Geschwindigkeit und Position mit Doppellichtschranke ermitteln =&lt;br /&gt;
Dieser Teil beschäftigt sich mit der Optischen Drehzahl- und Geschwindigkeitsmessung sowie der Erfassung von Drehrichtung und zurückgelegter Position mit Hilfe einer Lochscheibe und 2 Gabellichtschranken. Hierfür werden Quadratursignale in definierten Zeitabständen ausgewertet.&lt;br /&gt;
 &lt;br /&gt;
== Einführung ==&lt;br /&gt;
&lt;br /&gt;
Für kontrollierte Bewegungen ist es mitunter wichtig, auch die Drehrichtung/Richtungswechsel und Position auszuwerten. Eine Lochscheibe mit einer Gabellichtschranke liefert lediglich Rechteckimpulse, egal wie rum sich die Lochscheibe bewegt. Bringt man eine zweite Gabellichtschranke an der gleichen Lochscheibe leicht versetzt an, bekommt man auch die Drehrichtung mit. Diese Methode ist altbekannt, simpel und leicht nachzubauen. Wenn man die Drehrichtung kennt, ist auch die Position kein Problem mehr. Ausgehend von einer Kalibrierposition können bei Vorwärtsbewegung Inkremente hochgezählt oder bei Rückwärtsbewegung runtergezählt werden. &lt;br /&gt;
&lt;br /&gt;
Interessierte nehmen dazu mal eine PC-Maus mit Kugelantrieb zur Hand. Darin findet man zwei kleine Lochscheiben, die für die X- und Y-Richtung die Impulse erzeugen. Durch spezielle Gabellichtschranken mit 2 phasenversetzten Ausgängen wird auch die Drehrichtung erkannt. &lt;br /&gt;
&lt;br /&gt;
Das selbe Prinzip ist in linearer Form auch in PC-Druckern zu finden: Entlang des Wagenrücklaufes ist ein transparentes Kunsstoffband gespannt, auf dem winzig kleine Streifenmuster aufgebracht sind. Diese werden von einer Gabellichtschranke mit 2 Ausgängen erkannt und so die Wagenposition gesteuert.&lt;br /&gt;
&lt;br /&gt;
Aber es geht natürlich noch einfacher...&lt;br /&gt;
&lt;br /&gt;
== Zwei Lichtschranken liefern vier Informationen ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:vorwaerts_.jpg|thumb|Zustandsfolge bei Vorwärtsbewegung]]&lt;br /&gt;
[[Bild:rueckwaerts_.jpg|thumb|Zustandsfolge bei Rückwärtsbewegung]]&lt;br /&gt;
[[Bild:2LSZustand.jpg|thumb|2 Lichtschranken (LSA und LSB) liefern phasenversetzte Rechtecksignale. In Vorwärts- und Rückwärtsrichtung ergeben sich unterschiedliche Zustandsfolgen]]&lt;br /&gt;
&lt;br /&gt;
Man nimmt 2 normale Gabellichtschranken und bringt sie so an, das sie im 1,5 fachen Lochabstand die Lochscheibe durchleuchten. Wenn sich Lichtschranke A in der Mitte des Lichtstreifens befindet, ist Lichtschranke B an der Grenze des Schattenstreifens. Nebenstehende Skizzen zeigen die möglichen Zustände beider Lichtschranken bei Vorwärts- und Rückwärtsbewgung der Lochscheibe. Wichtig ist hierbei, das die Lochscheibe in gleich breite Licht- und Schattensegmente eingeteilt ist und die Lichtschranke(n) einen möglichst haarfeinen Lichtstrahl besitzt. Die Signale der Fototransistoren sollten verstärkt und gegebenenfalls mit TTL-Bausteinen zu korrekten High- und Low-Pegeln aufbereitet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es ergeben sich nun folgende Kombinationen:&lt;br /&gt;
&lt;br /&gt;
* Zustand 1:    LSA =   hell und LSB =   hell&lt;br /&gt;
* Zustand 2:    LSA =   hell und LSB = dunkel&lt;br /&gt;
* Zustand 3:    LSA = dunkel und LSB = dunkel&lt;br /&gt;
* Zustand 4:    LSA = dunkel und LSB =   hell&lt;br /&gt;
&lt;br /&gt;
Dreht man die Lochscheibe weiter, wiederholt sich der Vorgang. Die Zustandsfolge ist 1 &amp;gt; 2 &amp;gt; 3 &amp;gt; 4 &amp;gt; 1 &amp;gt; 2 &amp;gt; 3 &amp;gt; 4 &amp;gt;  usw.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bei entgegengesetzter Drehrichtung ändert sich diese Reihenfolge. Betrachtet man wieder vom Zustand 1 ausgehend die Gegenrichtung, ergeben sich nun diese Kombinationen:&lt;br /&gt;
&lt;br /&gt;
* Zustand 1:    LSA =   hell und LSB =   hell&lt;br /&gt;
* Zustand 4:    LSA = dunkel und LSB =   hell&lt;br /&gt;
* Zustand 3:    LSA = dunkel und LSB = dunkel&lt;br /&gt;
* Zustand 2:    LSA =   hell und LSB = dunkel&lt;br /&gt;
&lt;br /&gt;
Die Zustandsfolge in Gegenrichtung lautet dann: 1 &amp;lt; 4 &amp;lt; 3 &amp;lt; 2 &amp;lt; 1 &amp;lt; 4 &amp;lt; 3 &amp;lt; 2 &amp;lt;  usw.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mit diesem Wissen ist es nun ein Kinderspiel, auch die Änderung der Drehrichtung festzustellen. Dazu muss der letzte Zustand in einer Variable gespeichert und mit dem neu erkannten Zustand verglichen werden. Folgt nach Zustand 1 der Zustand 2, so ist es eine Vorwärtsbewegung. Folgt dem Zustand 1 der Zustand 4, so ist es eine Rückwärtsbewegung. Gleiches Prinzip gilt auch für die restlichen Zustände 2, 3 und 4.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Positionsüberwachung ==&lt;br /&gt;
&lt;br /&gt;
Von jedem der 4 Zustände gibt es also zwei zu unterscheidende Fälle: Vorwärts und Rückwärts. Insgesamt müssen demzufolge 8 Bedingungen zyklisch abgetastet und ein Positionszähler entsprechend inkrementiert oder dekrementiert werden und schon hat man eine exakte Streckeninformation. In Worte gefasst ergibt sich folgende Logik:&lt;br /&gt;
&lt;br /&gt;
Ausgangszustand: Beide Lichtschranken sind aus (A=0 UND B=0) und Zustand =1&lt;br /&gt;
&lt;br /&gt;
* WENN (Zustand=1 UND A=0 UND B=1) DANN: Setze Zustand=2, Position inkrementieren, Vor&lt;br /&gt;
* WENN (Zustand=1 UND A=1 UND B=0) DANN: Setze Zustand=4, Position dekrementieren, Rück&lt;br /&gt;
* WENN (Zustand=2 UND A=1 UND B=1) DANN: Setze Zustand=3, Position inkrementieren, Vor&lt;br /&gt;
* WENN (Zustand=2 UND A=0 UND B=0) DANN: Setze Zustand=1, Position dekrementieren, Rück&lt;br /&gt;
* WENN (Zustand=3 UND A=1 UND B=0) DANN: Setze Zustand=4, Position inkrementieren, Vor&lt;br /&gt;
* WENN (Zustand=3 UND A=0 UND B=1) DANN: Setze Zustand=2, Position dekrementieren, Rück&lt;br /&gt;
* WENN (Zustand=4 UND A=0 UND B=0) DANN: Setze Zustand=1, Position inkrementieren, Vor&lt;br /&gt;
* WENN (Zustand=4 UND A=1 UND B=1) DANN: Setze Zustand=3, Position dekrementieren, Rück&lt;br /&gt;
[[Bild:Lochscheibe8.jpg|thumb|Lochscheibe 8 ]]&lt;br /&gt;
[[Bild:Lochscheibe10.jpg|thumb|Lochscheibe 10 ]]&lt;br /&gt;
[[Bild:Lochscheibe12.jpg|thumb|Lochscheibe 12 ]]&lt;br /&gt;
[[Bild:Lochscheibe15.jpg|thumb|Lochscheibe 15 ]]&lt;br /&gt;
[[Bild:Lochscheibe18.jpg|thumb|Lochscheibe 18 ]]&lt;br /&gt;
[[Bild:Lochscheibe20.jpg|thumb|Lochscheibe 20 ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Prüfung muss ständig wiederholt werden, damit alle Pegelwechsel der beiden Lichtschranken erfasst werden. Nur so ist es möglich, die exakte Position zu verfolgen. Dafür bieten sich 2 Möglichkeiten: Entweder die Prüfung wird im Hauptprogramm ständig durchlaufen (Polling) oder ein Timer-Interrupt tastet regelmäßig die Lichtschranken ab. Hier soll nur die zweite, also Interruptvariante betrachtet werden, weil sie mehr Vorteile bringt. Weiter unten im Artikel ist dazu ein Beispiel in Sprache C zu finden. &lt;br /&gt;
&lt;br /&gt;
Zuvor muss aber eine sinnvolle Auslegung von Lochscheibe, Drehzahl und Positionsbereich gefunden und in Einklang mit den Ressourcen des verwendeten µControlles gebracht werden. Dazu folgende Betrachtungen:&lt;br /&gt;
&lt;br /&gt;
Wenn 2 phasenversetzte  Lichtschranken je Hell-/ Dunkelzyklus bereits 4 Positionen liefern, benötigt die Lochscheibe nur halb so viel &amp;quot;Löcher&amp;quot; wie eine Lochscheibe bei Verwendung nur einer Lichtschranke. Eine 15er Lochscheibe liefert demzufolge 15x4 = 60 Positionen auf 360°, das sind 6° je erfasster Position. Entscheidend ist, an welchem Antriebsteil die Lochscheibe montiert ist und mit welcher Untersetzung zwischen Motor und Abtriebswelle(Rad) gearbeitet wird. Ist die Lochscheibe an der Motorwelle angebracht, würde bei einer angenommenen Untersetzung von 10:1 eine erfasste Position nur 0,6° an der Abtriebswelle ausmachen. &lt;br /&gt;
&lt;br /&gt;
Man muss sich klar machen, welche '''Positioniergenauigkeit''' nötig ist. Dabei gilt: Auslegung so genau wie nötig, nicht wie möglich. Weiter muss geklärt werden, wo man die Lochscheibe sinnvoll anbringt. Sie darf im Betrieb weder verschmutzt oder beschädigt werden. Fahrmodelle ziehen Staub, Haare etc. gern an, gut beraten ist man mit einer '''verkapselten Optomechanik'''. Ein weiterer Faktor ist die '''Drehzahl''' (im Leerlauf am höchsten) des Motors, weil diese die Frequenz der abzutastenden Signale beeinflusst. Zwischen Drehzahl n [U/min], Frequenz f [Hz] und Teilung T besteht folgender Zusammenhang:&lt;br /&gt;
&lt;br /&gt;
'''f = n * T / 60 s'''&lt;br /&gt;
&lt;br /&gt;
Beispiel: Ein Motor dreht im Leerlauf mit 2370 U/min und hat eine Lochscheibe mit Teilung = 12 an der Motorwelle. Die Frequenz der abzutastenden Signale einer Lichtschranke soll ermittelt werden. (oben im Osszillogramm dargestellt)&lt;br /&gt;
&lt;br /&gt;
'''f = 2370 * 12 / 60 s'''&lt;br /&gt;
&lt;br /&gt;
'''f = 474 Hz'''&lt;br /&gt;
&lt;br /&gt;
Eine Lichtschranke liefert also ein Rechtecksignal mit f = 474 Hz. Jetzt muss noch das Signal der zweiten Lichtschranke um 90° versetzt darübergelegt werden. Bei idealen Pegeln sind in einer Periode 4 Schaltzustände abzutasten, also muss die Abtastfrequenz mindestens 4-fach über der Grundfrequenz liegen. Da es in der Praxis aber keine idealen Pegel gibt, muss die Abtastfrequenz noch höher ausgelegt werden. Betrachten wir noch mal das Osszillogrammm weiter oben:&lt;br /&gt;
&lt;br /&gt;
Es fällt auf, das die Zeiten nicht exakt gleich sind, die Zustandszeiten 1 und 3 sind etwas länger als 2 und 4. Das liegt an der Einstellung des Abstandes beider Lichtschranken zueinander, die Phasenlage ist hier nicht genau 90°. Außerdem sind Lochscheibe und Lichtschranken mit kleinen Unregelmäßikeiten, Streuungen, Anstiegs- und Abfallzeiten behaftet, so dass es in einer Periode auch Zeiten gibt, die nicht eindeutig einem der 4 genannten Zustände entsprechen. Für eine sichere Abtastung ist deshalb von der kürzesten (= ungünstigsten) Schaltzeit auszugehen, hier sind es ca. 0,4 Millisekunden, das entspricht 2,5 kHz. Jeder Zustand sollte vom µController sicherheitshalber schon 3 bis 4 mal abgetastet werden, so das wir für das Beispiel mindestens ca. 10 kHz Abtastfrequenz einplanen müssen. Als Orientierungshilfe gilt:&lt;br /&gt;
&lt;br /&gt;
'''Abtastfrequenz &amp;gt;= 20 * Frequenz Lichtschranke'''&lt;br /&gt;
&lt;br /&gt;
Entsprechend der gewünschten Positioniergenauigkeit und Drehzahl kann nun die Teilung der Lochscheibe so gewählt werden, das die Lichtschrankensignale vom µController abgetastet werden können. Da Kaufteile aus dem Industriebereich oft eine recht hohe Teilung vorgeben, ist es manchmal besser, mit kleineren Teilungen anzufangen. Rechts sind Vorlagen, die man sich auf Folien ausdrucken kann.(Nähere Beschreibung im Praxis-Teil)&lt;br /&gt;
&lt;br /&gt;
Die Abtastung muss sicher sein, auch wenn das Hauptprogramm gerade mit anderen Dingen als der Lochscheibenauswertung beschäftigt ist. Man kann zwar die Lochscheibe vom Hauptprogramm durchaus mit abfragen lassen, aber dann sollten keine anderen zeitraubenden Prozeduren darin enthalten sein. Ist nur ein Zustandswechsel übersehen und ausgelassen wurden, geht es erst an der nachfolgenden gleichen Hell-/Dunkel-Kombination weiter und der Contoller verzählt sich um 4 Inkremente! Deshalb sollte die TimerInterrupt-Variante vorgezogen oder die Abtastung in einen separaten µController ausgelagert werden.&lt;br /&gt;
&lt;br /&gt;
Der Positionsbereich muss schließlich auch in einer Variablen dargestellt werden. Im Beispiel mit Teilung =12 wird der Positionzähler bei einer Motorumdrehung um 48 Inkremente hochgezählt. Bei 2370 U/min wäre eine 16Bit-Variable nach ca. 34 Sekunden übergelaufen. Demzufolge ist auch das Speichervolumen der Positionsvariablen dem tatsächlichen Fahrbereich anzupassen. Man kann auch Ober-/ Untergrenzen definieren, die bei Erreichen den Antrieb anhalten. Somit wird ein mechanisches Überfahren von Endlagen oder ein logisches Überlaufen von Variablen verhindert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Zusammenfassung:'''&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
|&lt;br /&gt;
# Welche Positionsgenauigkeit brauch ich?&lt;br /&gt;
# Sind Lochscheibe und Optik vor Störeinflüssen geschützt?&lt;br /&gt;
# Welche maximale Drehzahl muss noch sicher abgetastet werden?&lt;br /&gt;
# Frequenz Lichtschranke anpassen: Hohe Drehzahl mit kleiner Teilung / geringe Drehzahl mit großer Teilung&lt;br /&gt;
# Phasenlage richtig eingestellt? Optimal sind 90°&lt;br /&gt;
# Positionsvariable mit genügend Speichervolumen?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Kalibrierung ==&lt;br /&gt;
&lt;br /&gt;
Im einfachsten Fall fährt man seinem Antrieb auf eine Referenzmarke (Nonius, Paßstift o.ä.) und setzt dort den Positionszähler zurück. &lt;br /&gt;
&lt;br /&gt;
Wer es noch genauer will, muß auch noch die Lochscheibe in eine definierte Ausgangsstellung bringen. Dazu kann man die Lichtschrankensignale mit 2 LEDs optisch anzeigen. In der Kalibrierstellung müssen dann der Antrieb auf der Refernzmarke stehen und beide LEDs leuchten. Als Referenzmarke kann natürlich auch eine zusätzliche Lichtschranke dienen, die eine kleine Bohrung am Antrieb erkennt. Wichtig ist, dass die Referenzmarke nur einmal und eindeutig am Antrieb angebracht ist.&lt;br /&gt;
&lt;br /&gt;
== Geschwindigkeit und Beschleunigung ==&lt;br /&gt;
&lt;br /&gt;
Geschwindigkeit wird meist in [m/s], [km/h] oder [mph] ausgedrückt, also der Wegstrecke je Zeiteinheit. Im µController interessieren uns diese Einheiten erst mal nicht, hier werden Inkremente je Zeiteinheit gezählt. Die Zeitintervalle, in denen die Inkremente ausgewertet werden, liefert wieder ein TimerInterrupt. Dieser ist mit deutlich längeren Zyklen auszulegen, damit auch genügend Inkremente je Zyklus gezählt werden können. Im Code-Beispiel unten werden bei 16Mhz CPU-Takt die Vorteiler 1 und 1024 für die TimerInterrupt´s verwendet: Timer 0 mit Prescaler =1024 für die Geschwindigkeitsberechnung mit ca. 61 Hz und Timer 2 mit Prescaler =1 für die Abtastung der Lichtschranken mit 62,5 kHz. Die Geschwindigkeitsmessung wurde mit 12er, 15er und 18er Teilung getestet. In der ISR des Timer_0 Overflow wird die Differenz aus aktueller Position und der Position des vergangenen Zyklus gebildet. Da diese Wegdifferenz in definierten Zeitabständen ermittelt wird, hat man hier bereits die Geschwindigkeit in n Inkremente je 0,01638 Sekunden. Mit dieser etwas abstrakten Geschwindigkeitseinheit wird im Hauptprogramm der Motor gesteuert.&lt;br /&gt;
&lt;br /&gt;
Das gleiche Verfahren ist auch für die Beschleunigung anwendbar. Die Beschleunigung ist die Geschwindigkeitsänderung je Zeiteinheit. In der ISR des Timer_0 Overflow kann die Differenz aus aktueller Geschwindigkeit und der Geschwindigkeit des vergangenen Zyklus gebildet werden, um so die Beschleunigung zu erhalten. Die Einheit ist wieder etwas ungewohnt: Inkremente je 0,01638 Sekunden in 0,01638 Sekunden, also Inkremente/Quadratsekunden. Voraussetzung für eine vernünftige Beschleunigungsermittlung ist, das eine genügend hohe Auflösung der Geschwindigkeit vorliegt(=hohe Teilung der Lochscheibe). Ansonsten sind die ermittelten Werte zu klein und liegen, je nach Trägheit des Motors, fast immer bei 0, 1, 2 oder maximal 3.&lt;br /&gt;
&lt;br /&gt;
Vorteil der Differenzmethode ist, man kann die Geschwindigkeit in einer 8Bit-Variable mit Vorzeichen ausdrücken. Die Werte des Beispieles lagen je nach Teilung zwischen -50 und +50 und sind für die Motorsteuerung ausreichend. Bessere Auflösung erfordert höhere Teilung, höhere Abtastrate, höhere CPU-Frequenz.&lt;br /&gt;
&lt;br /&gt;
== Praxis==&lt;br /&gt;
&lt;br /&gt;
=== Herstellung der Lochscheibe ===&lt;br /&gt;
Für eigene Projekte ist es mitunter schwer, Lochscheiben in passender Größe und Teilung zu finden. Oft müssen dann Kompromisse in der Drehzahlsteuerung oder Positionierung gemacht werden, weil die vielleicht günstigere Teilung nicht zu beschaffen ist. &lt;br /&gt;
&lt;br /&gt;
Hier wird deshalb ein Selbstbau von preiswerten Lochscheiben vorgestellt: Man trägt in einer Excel-Tabelle z.B. 18 mal die Zahl 20 ein und markiert diesen Zellbereich. Anschließend erstellt man mit dem Diagramm-Assistent ein Ring-Diagramm. Darin muss man nun jeden Datenpunkt einzeln formatieren und abwechslend die Farbe schwarz und weiß zuordnen. Markiert man die komplette Datenreihe, kann man unter 'Formatieren'&amp;gt;'Optionen' auch die Innenringgröße einstellen. Dieses Ring-Diagramm kann nun beliebig kopiert und vergößert oder verkleinert werden, auch die Datenreihe kann auf z.B. 24x15 oder 30x12 angepasst werden. So lassen sich auf einer A4-Seite einige Dutzend Lochscheiben in allen Größen und Teilungen herstellen. Das fertige Arbeitsblatt muss nun noch mit geeigneter Tinte auf Folie ausgedruckt werden. Den Drucker muss man möglichst auf satte Farbe und kräftgen Kontrast einstellen. Zum Schluß wird die ausgedruckte Folie mit A4- Laminierfolie verstärkt, wer kein Laminiergerät hat, geht in einen Copy-Shop o.ä. &lt;br /&gt;
&lt;br /&gt;
Die so gewonnenen Lochscheiben werden nun ausgeschnitten und bei Bedarf mit einem Heißluftgerät noch etwas &amp;quot;nachgebacken&amp;quot;, bevor sie im eigenen Projekt mit Kraftkleber auf ein kleines Rad aufgeklebt werden. Hierbei auf gute Zentrierung achten, damit die Lochscheibe möglichst rund läuft. Sekundenkleber ist deshalb ungeeignet, weil kaum Zeit für Korrektur und Einstellung bleibt.&lt;br /&gt;
&lt;br /&gt;
=== Anpassen der Lichtschranke ===&lt;br /&gt;
&lt;br /&gt;
Baustelle:&lt;br /&gt;
&lt;br /&gt;
Fotos, Anregungen zum Nachbau, Beschaffung, Erfahrungen&lt;br /&gt;
&lt;br /&gt;
weiterführende Informationen:&lt;br /&gt;
[http://de.wikipedia.org/wiki/Inkrementalgeber Inkrementalgeber]&lt;br /&gt;
&lt;br /&gt;
=== Quellcode ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
//Deklaration global&lt;br /&gt;
volatile uint8_t Zust_Li;            //Zustandsmerker Position linker Motor&lt;br /&gt;
volatile uint16_t Li_Inkr;           //aktuelle Position linker Motor&lt;br /&gt;
volatile uint16_t old_Li_Inkr;       //Position im vorangegangenen Takt&lt;br /&gt;
volatile int8_t Speed_Li_Ist;        //Wegänderung je Takt, in ISR Timer 0&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
// Interrupt-Service-Routine  Timer_0 Overflow&lt;br /&gt;
SIGNAL (SIG_OVERFLOW0)&lt;br /&gt;
{&lt;br /&gt;
  // ISR-Code  61,035 Pro Sekunde&lt;br /&gt;
  Timeout++;&lt;br /&gt;
  Speed_Li_Ist = Li_Inkr - old_Li_Inkr;&lt;br /&gt;
  old_Li_Inkr = Li_Inkr;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Interrupt-Service-Routine  Timer_2 Overflow&lt;br /&gt;
SIGNAL (SIG_OVERFLOW2)&lt;br /&gt;
{&lt;br /&gt;
  // ISR-Code  62.5 kHz&lt;br /&gt;
  // 4 Zustaende durch jeweils 1 Bit repräsentiert (1,2,4,8)&lt;br /&gt;
  // Lichtschranke A liegt an Port A.0&lt;br /&gt;
  // Lichtschranke B liegt an Port A.1&lt;br /&gt;
&lt;br /&gt;
  if ( (Zust_Li == 1) &amp;amp;&amp;amp; ( !(PINA &amp;amp; (1&amp;lt;&amp;lt;PINA0)) )&amp;amp;&amp;amp; ( PINA &amp;amp; (1&amp;lt;&amp;lt;PINA1) ) ){&lt;br /&gt;
    Li_Inkr = Li_Inkr + 1;&lt;br /&gt;
    Zust_Li = 2;&lt;br /&gt;
  } /* end if */&lt;br /&gt;
&lt;br /&gt;
  if ( (Zust_Li == 1) &amp;amp;&amp;amp; (PINA &amp;amp; (1&amp;lt;&amp;lt;PINA0) )&amp;amp;&amp;amp; ( !( PINA &amp;amp; (1&amp;lt;&amp;lt;PINA1)) ) ){&lt;br /&gt;
    Li_Inkr = Li_Inkr - 1;&lt;br /&gt;
    Zust_Li = 8;&lt;br /&gt;
  } /* end if */&lt;br /&gt;
&lt;br /&gt;
  if ( (Zust_Li == 2) &amp;amp;&amp;amp; (PINA &amp;amp; (1&amp;lt;&amp;lt;PINA0) )&amp;amp;&amp;amp; ( PINA &amp;amp; (1&amp;lt;&amp;lt;PINA1) ) ){&lt;br /&gt;
    Li_Inkr = Li_Inkr + 1;&lt;br /&gt;
    Zust_Li = 4;&lt;br /&gt;
  } /* end if */&lt;br /&gt;
&lt;br /&gt;
  if ( (Zust_Li == 2) &amp;amp;&amp;amp; ( !(PINA &amp;amp; (1&amp;lt;&amp;lt;PINA0)) )&amp;amp;&amp;amp; ( !( PINA &amp;amp; (1&amp;lt;&amp;lt;PINA1)) ) ){&lt;br /&gt;
    Li_Inkr = Li_Inkr - 1;&lt;br /&gt;
    Zust_Li = 1;&lt;br /&gt;
  } /* end if */&lt;br /&gt;
&lt;br /&gt;
  if ( (Zust_Li == 4) &amp;amp;&amp;amp; (PINA &amp;amp; (1&amp;lt;&amp;lt;PINA0) )&amp;amp;&amp;amp; ( !( PINA &amp;amp; (1&amp;lt;&amp;lt;PINA1)) ) ){&lt;br /&gt;
    Li_Inkr = Li_Inkr + 1;&lt;br /&gt;
    Zust_Li = 8;&lt;br /&gt;
  } /* end if */&lt;br /&gt;
&lt;br /&gt;
  if ( (Zust_Li == 4) &amp;amp;&amp;amp; ( !(PINA &amp;amp; (1&amp;lt;&amp;lt;PINA0)) )&amp;amp;&amp;amp; ( PINA &amp;amp; (1&amp;lt;&amp;lt;PINA1) ) ){&lt;br /&gt;
    Li_Inkr = Li_Inkr - 1;&lt;br /&gt;
    Zust_Li = 2;&lt;br /&gt;
  } /* end if */&lt;br /&gt;
&lt;br /&gt;
  if ( (Zust_Li == 8) &amp;amp;&amp;amp; ( !(PINA &amp;amp; (1&amp;lt;&amp;lt;PINA0)) )&amp;amp;&amp;amp; ( !( PINA &amp;amp; (1&amp;lt;&amp;lt;PINA1)) ) ){&lt;br /&gt;
    Li_Inkr = Li_Inkr + 1;&lt;br /&gt;
    Zust_Li = 1;&lt;br /&gt;
  } /* end if */&lt;br /&gt;
&lt;br /&gt;
  if ( (Zust_Li == 8) &amp;amp;&amp;amp; (PINA &amp;amp; (1&amp;lt;&amp;lt;PINA0) )&amp;amp;&amp;amp; ( PINA &amp;amp; (1&amp;lt;&amp;lt;PINA1) ) ){&lt;br /&gt;
    Li_Inkr = Li_Inkr - 1;&lt;br /&gt;
    Zust_Li = 4;&lt;br /&gt;
  } /* end if */&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
int main (void)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
//Init&lt;br /&gt;
TCCR2 |= (1&amp;lt;&amp;lt;CS20);                  //Prescaler = 1 (16MHz/1 = 16000000) -&amp;gt;&lt;br /&gt;
                                     //16000000/256 -&amp;gt; 62500 Interrupts je Sekunde&lt;br /&gt;
&lt;br /&gt;
TCCR0 |= (1&amp;lt;&amp;lt;CS02)|(1&amp;lt;&amp;lt;CS00);        //Prescaler = 1024  (16000000 / 1024 = 15625) -&amp;gt;&lt;br /&gt;
                                     //15625/256 = 61,035  -&amp;gt; 61 Interrupts je Sekunde&lt;br /&gt;
&lt;br /&gt;
TIMSK |= (1&amp;lt;&amp;lt;TOIE0)|(1&amp;lt;&amp;lt;TOIE2);      //Timer Overflow Interrupt Enablae für Timer 0 und 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Li_Inkr = 32000;Zust_Li = 1;         // Kalibrierstellung bei 32000&lt;br /&gt;
sei();                               // Interrupts aktivieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  while(1)&lt;br /&gt;
  {&lt;br /&gt;
&lt;br /&gt;
  // hier kann Position und Geschwindigkeit ausgewertet werden&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Vor und Nachteile der Messmethoden=&lt;/div&gt;</summary>
		<author><name>Chypsylon</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Roboterwettbewerbe&amp;diff=17506</id>
		<title>Roboterwettbewerbe</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Roboterwettbewerbe&amp;diff=17506"/>
				<updated>2011-06-20T15:24:13Z</updated>
		
		<summary type="html">&lt;p&gt;Chypsylon: /* Überblick */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Auf diese Seite werden die bekanntesten nationalen und internationalen Roboterwettbewerbe kurz vorgestellt.&lt;br /&gt;
&lt;br /&gt;
==Überblick==&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |''' Wettbewerb primär für'''||Schüler ||Studenten || Hobbyrobotiker ||1 Person || bis 5 Personen || mehr als 5 Personen || nächster Termin || Ort&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#Robocup_Junior|Robocup Junior]] || X || (X) ||  ||  || X || || 5. bis 11.7.2011 , versch. Nationalbewerbe || WM in Istanbul, Nationale Bewerbe&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#Eurobot|Eurobot]] || X || X ||  ||  ||  || X || 22. bis 27.06.2011 || Russland&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#Carolo_Cup|Carolo Cup]] || || X || || || || X  || 07. / 08.02.2011  || Braunschweig&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#Field_Robot_Event|Field Robot Event]] || || X || || || || X  || 30.6. - 02.07.2011 || Dänemark&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#FIRST_Lego_League|FIRST LEGO Leaue]] || X ||  ||  || ||  || X || 4. - 30.11. in 52 Regionen(Zentraleuropa) ||   &lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RoboCup_Soccer|RoboCup Soccer]] || || X || X ||  ||  || X   || 04. - 10.07.2011 || Istanbul&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RobotChallenge|RobotChallenge]] || || || X || X || || || 12. / 13.03.2011 || Wien&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#SPURT|SPURT]] || X || || ||  || X ||  || 20.05.2011 || Rostock&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#ELROB|European Land Robot Trial (ELROB)]] ||  || X ||  || ||  || X  || 20. - 24.07.2011 || Leuven, Belgien&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#ROBOCOM|ROBOCOM]] || X ||  ||  ||  || X || || 15.07.2011 || Gelsenkirchen&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RobotLiga|RobotLiga]] || || || X || X || || || keine nach 2007 bekannt ||&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RoboTest|RoboTest]] || || || X || X || || || keine nach 2008 bekannt ||&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RoboKing|RoboKing]] || X || || || || X || || keine nach 2008 bekannt ||&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#GSF_Robot_Contest|GSF Robot Contest]] ||  ||  || X ||X || X ||   || keine nach 2007 bekannt ||&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
= Aktuelle Wettbewerbe =&lt;br /&gt;
&lt;br /&gt;
==Robocup Junior==&lt;br /&gt;
&amp;quot;RoboCupJunior ist eine international organisierte Bildungsinitiative. Sie soll jungen Menschen spielerisch den Umgang mit Robotern näher bringen, soll die Lust auf Naturwissenschaften und Technik wecken und einen spannenden Wissenserwerb im Unterricht ermöglichen. Wichtig bei RoboCupJunior ist die hands-on Komponente. Deshalb bauen und programmieren die Teilnehmerinnen  und Teilnehmer kleine Roboter für spezielle Aufgaben und zeigen diese dann in Präsentationen und Wettbewerben.&lt;br /&gt;
&lt;br /&gt;
Damit das Ganze nicht zu theoretisch behandelt wird, werden auch jedes Jahr nationale und internationale Bewerbe veranstaltet, wo sich die unterschiedlichen Teams messen, aber auch andere Schulen, Länder und Kulturen kennen lernen können.(Zitat robocupjunior.at)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Unterteilt ist das ganze in drei Kategorien:&lt;br /&gt;
*Soccer&lt;br /&gt;
*Rescue&lt;br /&gt;
*Dance&lt;br /&gt;
&lt;br /&gt;
sowie in in zwei Altersgruppen - 10-14 (Primary) sowie unter 19 Jahre (Secondary).&lt;br /&gt;
&lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* Allgemein:&lt;br /&gt;
# [http://www.robocupjunior.org www.robocupjunior.org]&lt;br /&gt;
# [http://www.rcjrescue.com/ www.rcjrescue.com]&lt;br /&gt;
* Weltmeisterschaften:&lt;br /&gt;
# [http://www.robocup2009.org www.robocup2009.org]&lt;br /&gt;
# [http://www.robocup2010.org www.robocup2010.org]&lt;br /&gt;
# [http://www.robocup2011.org www.robocup2011.org]&lt;br /&gt;
* Nationale Seiten:&lt;br /&gt;
# [http://robocupjunior.at robocupjunior.at]&lt;br /&gt;
# [http://www.robocupgermanopen.de www.robocupgermanopen.de]&lt;br /&gt;
# [http://www.robocupjunior.it/ www.robocupjunior.it]&lt;br /&gt;
# [http://www.robocupjunior.org.au/ www.robocupjunior.org.au]&lt;br /&gt;
&lt;br /&gt;
==Eurobot==&lt;br /&gt;
&amp;quot;Seit 1998 ist Eurobot ein internationaler Roboterwettbewerb für Teams von Jugendlichen, Studenten und sonstigen an Robotern interessierten Menschen.&lt;br /&gt;
Eurobot findet stets in Europa statt, ist aber für alle Länder aller Kontinente zugänglich. Im Jahre 2004 nahmen insgesamt 250 Teams aus 21 Länder an diesem technisch/wissenschaftlichen Wettbewerb teil.&amp;quot; (zitiert von www.eurobot.org)&lt;br /&gt;
Aus jedem Land dürfen maximal drei Teams zu den internationalen Finalen fahren. Diese drei Mannschaften müssen sich in nationalen Vorausscheiden qualifizieren. Die Aufgabe wird jedes Jahr neu gestellt. Nur die Rahmenbedingungen bleiben gleich: Ein Match dauert nur 90 Sekunden, es ist also sowohl Schnelligkeit als auch eine intelligente Taktik und Sicherheit gefragt. Die Spielfläche ist etwa 2x3 Meter groß.&lt;br /&gt;
Eurobot findet seit 2005 jedes Jahr in einem anderen Land statt. Der Wettbewerb wird von einer großen Rahmenveranstaltung inklusive Vorträgen und vielen Attraktionen für die zahlreichen Zuschauer ergänzt.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* [http://www.eurobot.org www.eurobot.org]&lt;br /&gt;
* [http://www.eurobot-deutschland.de www.eurobot-deutschland.de]&lt;br /&gt;
&lt;br /&gt;
==Carolo Cup==&lt;br /&gt;
Dieser Wettbewerb für Studenten findet an der TU Braunschweig statt. &lt;br /&gt;
Es treten autonome Modellfahrzeuge im Maßstab 1:10 gegeneinander an. Aufgaben sind das Fahren auf einem Rundkurs (dabei muss die Fahrbahnmarkierung z.B. mit Kameras erkannt werden) und das seitliche Einparken in einer vorgegebenen Parklücke.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* [http://www.carolo-cup.de www.carolo-cup.de]&lt;br /&gt;
&lt;br /&gt;
==Field Robot Event==&lt;br /&gt;
Dieser Wettbewerb für Studenten findet auf einem Maisfeld statt. Die Roboter müssen den Maisreihen folgen und &amp;quot;Unkraut&amp;quot; erkennen, wobei es mehrere Schwierigkeitsgrade gibt (z.B. können einzelne Pflanzen fehlen, oder es gibt größere Unebenheiten im Boden).&lt;br /&gt;
2011 wird der Wettbewerb in Dänemark ausgetragen.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* [http://www.fre2011.dk/ http://www.fre2011.dk/]&lt;br /&gt;
&lt;br /&gt;
==FIRST Lego League==&lt;br /&gt;
Bei der FIRST LEGO League (FLL) handelt es sich um einen internationalen Wettbewerb der von der Firma LEGO und der amerikanischen Stiftung FIRST (For Inspiration and Recognition of Science and Technology) veranstalltet wird. Er findet jährlich auf der ganzen Welt mit regionalen Runden statt und steht jedes Jahr unter einem neuen Motto. &lt;br /&gt;
&lt;br /&gt;
Der Wettbewerb beschäftigt sich immer mit aktuellen naturwissenschaftlichen Problemen, die gesellschaftlich relevant sind. Dabei sollen die Kinder nicht nur einen Roboter programmieren, der Aufgaben auf dem vorgegebenen Spielfeld erfüllt, sondern sich auch tiefgründig mit dem Wettbewerbsthema auseinandersetzen. Die Teilnehmer sollen einen Lösungsansatz für ein aktuelles Probleme erarbeiten, dass mit dem Wettbewerbsthema in Verbindung steht. 2010 heißt das Thema von FLL &amp;quot;Body Forward&amp;quot; und dabei dreht sich alles um Biomedizin.&lt;br /&gt;
&lt;br /&gt;
Bei diesem Wettbewerb dürfen nur Roboter eingesetzt werden, die aus dem LEGO Mindstorms System bestehen. Der Wettbewerb richtet sich vornehmlich an junge Schüler, wie auch das gesamte Mindstorms System. Deshalb dürfen die Teilnehmer maximal 16 Jahre alt sein. Jedes Team wird von einem volljährigen Coach bei der Bewältigung der Aufgaben angeleitet. &lt;br /&gt;
&lt;br /&gt;
Die Wettbewerbsaufgaben werden immer Anfang September veröffentlicht, danach hat jedes Team ca. 8 Wochen Zeit seinen Roboter zu programmieren und den Forschungsauftrag zu erfüllen, um die Ergebnisse dann bei einem der Regionalwettbewerbe zu präsentieren.&lt;br /&gt;
 &lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* [http://www.firstlegoleague.org/ www.firstlegoleague.org]&lt;br /&gt;
* [http://www.firstlegoleague.de/ www.firstlegoleague.de]&lt;br /&gt;
&lt;br /&gt;
==RoboCup Soccer==&lt;br /&gt;
Die Komplexität und Beliebtheit von Fußball (soccer) spielten wesentliche Rollen bei der Motivation der ersten RoboCupspiele Mitte der 90er Jahre. Die Dynamik und die Komplexität von Fußball birgt enorme Herausforderungen für Wissenschaftler, die sich mit der Entwicklung von autonomen Robotern in diesem Bereich beschäftigen: &lt;br /&gt;
&lt;br /&gt;
Individuelle Herausforderungen: jeder Agent/Roboter muss Objekte erkennen, sich selbst lokalisieren, navigieren und den Ball bewegen können. Zu klären sind Fragen wie: was ist in diesem Moment wichtig in meiner Wahrnehmung? Ist meine Position und die der anderen Mitspieler bekannt? &lt;br /&gt;
Kooperation von Agenten: in einer dynamischen Echtzeitumgebung kommt es nicht auf einen einzelnen Spieler an, sondern besonders auf das kooperative Spiel, bei dem auch die Kommunikation eine große Rolle spielt.&lt;br /&gt;
&lt;br /&gt;
Dynamische Echtzeitumgebung mit sich bewegenden Objekten, von denen einige intelligente Agenten sind, die gegen einen spielen. Diese Art von Umgebung ist z.B. auch im Straßenverkehr zu beobachten, wobei die anderen Verkehrsteilnehmer zwar keine Gegner sind, die meine Pläne durchkreuzen wollen, wo aber die Situationen beliebig komplex werden können.&lt;br /&gt;
RoboCupSoccer besteht aus fünf Ligen: der Simulationsliga, der Small-Size Liga, der Middle-Size Liga, der Sony Legged Liga, und der Humanoidliga. &lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.robocup.org www.robocup.org]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==RobotChallenge==&lt;br /&gt;
Die RobotChallenge ist ein österreichischer Wettbewerb für selbstgebaute, autonome Roboter, dessen Ziel es ist für den kreativen Umgang mit innovativen Technologien zu begeistern. Experimente und praktische Erfahrungen lassen Teilnehmer und Zuschauer Wissenschaft hautnah erleben. Dieser Wettbewerb soll zeigen, wie man mit einfachen Mitteln, aber offenem Geiste und Phantasie spannende, zukunftstaugliche Lösungen finden kann. &lt;br /&gt;
Folgende Disiplienen wurden dort schon ausgetragen:&lt;br /&gt;
&lt;br /&gt;
'''Parallel-Slalom'''&amp;lt;br&amp;gt;&lt;br /&gt;
Möglichst schnell muss einer schwarzen Linie auf weißem Untergrund entlang gefahren werden. Reglement im Wesentlichen wie bei RC'05. &lt;br /&gt;
&lt;br /&gt;
'''Parallel-Slalom Enhanced'''&amp;lt;br&amp;gt;&lt;br /&gt;
Wie Parallel-Slalom, jedoch mit Erschwernissen: ein Tunnel, eine kurze Unterbrechung der Linie und ein Hindernis auf der Linie, das umfahren werden muss. &lt;br /&gt;
&lt;br /&gt;
'''Robot-Sumo'''&amp;lt;br&amp;gt;&lt;br /&gt;
Je zwei Roboter treten gegeneinander an und versuchen den jeweils anderen von einer runden Platte zu schieben. Die Platte ist schwarz, der Rand ist durch einen weissen Streifen markiert. Die Regeln entsprechen der internationalen Norm für autonomes Roboter-Sumo. &lt;br /&gt;
&lt;br /&gt;
'''Hindernislauf'''&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Infrarot-Leuchtturm mit definiertem Signal am Ende des Parcours ist möglichst rasch zu erreichen. Auf dem Weg befindliche Hindernisse müssen umfahren werden. Jedes Team kann alternativ auch einen eigenen Leuchtturm als Orientierungshilfe mitbringen. Reglement im Wesentlichen wie bei RC'05, jedoch sind auch komplexere Hindernisse (z.B. Sackgassen) möglich. &lt;br /&gt;
&lt;br /&gt;
'''Puck Collect'''&amp;lt;br&amp;gt;&lt;br /&gt;
Je zwei Roboter - von denen einem die Farbe rot, dem anderen blau zugeteilt wird - treten gegeneinander an. Auf dem Spielfeld sind kleine rote und blaue Scheiben (Pucks) verteilt. Ziel ist es, möglichst schnell alle Pucks der eigenen Farbe einzusammeln und zur eigenen, farblich gekennzeichneten Homebase zu bringen. &lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.robotchallenge.at/ RobotChallenge]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SPURT==&lt;br /&gt;
Der Wettbewerb SPURT (die Abkürzung steht für &amp;quot;Schüler-Projekte um Roboter-Technik&amp;quot;) wird jährlich von der Universität Rostock veranstaltet. SPURT richtet sich an technikinteressierte Schüler. Die zu lösende Aufgabe ist eine Linienverfolgung. Wer am schnellsten die herzförmige Linie abfährt, hat gewonnen.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://spurt.uni-rostock.de/ Wettbewerb SPURT]&lt;br /&gt;
&lt;br /&gt;
==ELROB==&lt;br /&gt;
Die deutsche Bundeswehr läd Firmen und Privatpersonen ein, am European Land-Robot Trial teilzunehmen (findet 2010 zum fünften Mal statt). Die ELROB wird veranstaltet, um einen Überblick über den europäischen State-of-the-art auf dem Gebiet von UGVs (unmanned ground vehicles) mit Fokus auf kurzfristig realisierbare Robotersystemen zu liefern. Hinsichtlich der vorhandenen Fähigkeiten versuchen die Organisatoren, technische Lösungen zu fördern, die den Betrieb unbemannter Fahrzeuge (UGV) verbessern. Repräsentanten aus Militär, Grenzschutz, Spezialkräften, Polizei, Feuerwehr, und Zivilschutzagenturen aus vielen europäischen Ländern werden anwesend sein. Die ELROB wird von einer Ausstellung begleitet, welche eine breite Vielzahl an Robotikaspekten umfasst.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.elrob.org/ Homepage von ELROB]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ROBOCOM==&lt;br /&gt;
Bei diesem Wettbewerb soll eine vorgegebene Aufgabe mit LEGO MINDSTORMS NXT Robotern autonom, d.h. ohne Eingriffe von außen bewältigt werden. Mit diesem Wettbewerb möchte die Fachhochschule Gelsenkirchen in den Schulen den Einsatz moderner Techniken fördern und Schülerinnen und Schüler für ein naturwissenschaftliches Studium interessieren.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* http://www2.fh-gelsenkirchen.de/FH-Sites/FB1/index.php?id=791&lt;br /&gt;
&lt;br /&gt;
= Derzeit nicht regelmäßig stattfindende Wettbewerbe =&lt;br /&gt;
&lt;br /&gt;
==RobotLiga==&lt;br /&gt;
Die RobotLiga fand bis 2007 in Kaiserslautern statt, neuere Termine sind nicht bekannt. Teilnehmen konnten alle interessierten Roboterbastler.&lt;br /&gt;
&lt;br /&gt;
'''LINE SEARCH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke ohne Abzweigungen. Die Linie ist 2cm breit.&lt;br /&gt;
&lt;br /&gt;
'''LABYRINTH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke mit Abzweigungen und Kreuzungen. Die Linie ist 2cm breit.&lt;br /&gt;
&lt;br /&gt;
'''ROBOT COLLECT'''&amp;lt;br&amp;gt;&lt;br /&gt;
Auf einem Spielfeld von 3x3m sind 30 Objekte in der Größe von Teelichtern verteilt. Zwei Roboter treten gegeneinander an und versuchen, möglichst viele der Objekte in ihre eigene Heimatecke des Spielfeldes zu bringen. &lt;br /&gt;
&lt;br /&gt;
''' ROBOT VOLLEY'''&amp;lt;br&amp;gt;&lt;br /&gt;
Das Spielfeld ist 2x4m groß und wird durch eine Wand (als &amp;quot;Netz&amp;quot;) in zwei Hälfte geteilt, in denen je ein Roboter positioniert wird. In jeder Hälfte befinden sich am Anfang zehn Bälle. Die Roboter müssen nun innerhalb von fünf Minuten versuchen, möglichst viele der Bälle einzusammeln und in die gegnerische Hälfte zu befördern. &lt;br /&gt;
&lt;br /&gt;
'''MINI SUMO'''&amp;lt;br&amp;gt;&lt;br /&gt;
Zwei Roboter treten gegeneinander an und versuchen, sich aus dem Ring zu schieben.&lt;br /&gt;
&lt;br /&gt;
'''WALKING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Eine Disziplin nur für Laufroboter. Der Roboter muss schnellstmöglich eine Strecke von 75cm zurücklegen, wenden, und die Strecke zurück laufen. &lt;br /&gt;
&lt;br /&gt;
'''FIRE FIGHTING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Es geht darum, eine brennende Kerze in einem durch mehrere Wände angedeuteten Gebäude zu finden und zu löschen. &lt;br /&gt;
&lt;br /&gt;
'''FREE ROBOTS'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können eigene Roboter dem Publikum vorgestellt werden. &lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.robotliga.de/ RobotLiga]&lt;br /&gt;
&lt;br /&gt;
==RoboTest==&lt;br /&gt;
'''LINE SEARCH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke ohne Abzweigungen. Die Linie ist 2 bis 3cm breit. Es starten immer zwei Roboter gleichzeitig in einem Parallelslalom. Der Wettbewerb läuft in mehreren Runden nach dem KO-System. &lt;br /&gt;
&lt;br /&gt;
'''BLOCKED LINE'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke ohne Abzweigungen. Auf der Strecke stehen Hindernisse, die umfahren werden müssen. &lt;br /&gt;
&lt;br /&gt;
'''LABYRINTH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke mit Abzweigungen und Kreuzungen. Die Linie ist 2 bis 5cm breit.&lt;br /&gt;
&lt;br /&gt;
'''ROBOT COLLECT'''&amp;lt;br&amp;gt;&lt;br /&gt;
Auf einem Spielfeld von 3x3m sind 30 Objekte in der Größe von Teelichtern verteilt. Zwei Roboter treten gegeneinander an und versuchen, innerhalb von drei Minuten möglichst viele der Objekte in ihre eigene Heimatecke des Spielfeldes zu bringen. &lt;br /&gt;
&lt;br /&gt;
''' ROBOT VOLLEY'''&amp;lt;br&amp;gt;&lt;br /&gt;
Das Spielfeld ist 2x4m groß und wird durch eine Wand (als &amp;quot;Netz&amp;quot;) in zwei Hälfte geteilt, in denen je ein Roboter positioniert wird. In jeder Hälfte befinden sich am Anfang zehn Bälle. Die Roboter müssen nun innerhalb von fünf Minuten versuchen, möglichst viele der Bälle einzusammeln und in die gegnerische Hälfte zu befördern. &lt;br /&gt;
&lt;br /&gt;
'''MICRO LINE'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen für sehr kleine Roboter. Die maximale Größe liegt bei 8x8x8cm und 200g. Je kleiner und leichter der Roboter ist, desto mehr Bonuspunkte gibt es.  &lt;br /&gt;
&lt;br /&gt;
'''FIRE FIGHTING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Es geht darum, eine brennende Kerze in einem durch mehrere Wände angedeuteten Gebäude zu finden und zu löschen. &lt;br /&gt;
&lt;br /&gt;
'''MINI SUMO'''&amp;lt;br&amp;gt;&lt;br /&gt;
Zwei Roboter treten gegeneinander an und versuchen, sich aus dem Ring zu schieben.&lt;br /&gt;
&lt;br /&gt;
'''JUST WALK'''&amp;lt;br&amp;gt;&lt;br /&gt;
Eine Disziplin nur für Laufroboter. Der Roboter muss schnellstmöglich eine Strecke von 1m zurücklegen, wenden, und die Strecke zurück laufen. &lt;br /&gt;
&lt;br /&gt;
'''FREE ROBOTS'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können eigene Roboter dem Publikum vorgestellt werden. &lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://WWW.ROBOTEST.DE/ RoboTest]&lt;br /&gt;
&lt;br /&gt;
==GSF Robot Contest==&lt;br /&gt;
Ein neuer Wettbewerb für Hobbyrobotiker. Er findet am 19.5.07 erstmals statt. Austragungsort ist Fröndenberg (Raum Dortmund/Unna).&lt;br /&gt;
Die Aufgaben sind teilweise angelehnt an die der RobotLiga.&lt;br /&gt;
&lt;br /&gt;
'''LABYRINTH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke mit Abzweigungen und Kreuzungen. Die Linie ist 2cm breit.&lt;br /&gt;
&lt;br /&gt;
'''ROBOT COLLECT'''&amp;lt;br&amp;gt;&lt;br /&gt;
Auf einem Spielfeld von 3x3m sind 30 Objekte in der Größe von Teelichtern verteilt. Zwei Roboter treten gegeneinander an und versuchen, möglichst viele der Objekte in ihre eigene Heimatecke des Spielfeldes zu bringen. &lt;br /&gt;
&lt;br /&gt;
''' ROBOT VOLLEY'''&amp;lt;br&amp;gt;&lt;br /&gt;
Das Spielfeld ist 2x4m groß und wird durch eine Wand (als &amp;quot;Netz&amp;quot;) in zwei Hälfte geteilt, in denen je ein Roboter positioniert wird. In jeder Hälfte befinden sich am Anfang zehn Bälle. Die Roboter müssen nun innerhalb von fünf Minuten versuchen, möglichst viele der Bälle einzusammeln und in die gegenrische Hälfte zu befördern. &lt;br /&gt;
&lt;br /&gt;
'''FIRE FIGHTING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Naqch einem akustischen &amp;quot;Feueralarm&amp;quot; muss eine brennende Kerze in einem durch mehrere Wände angedeuteten Gebäude gefunden und gelöscht werden. &lt;br /&gt;
&lt;br /&gt;
'''MINI SUMO'''&amp;lt;br&amp;gt;&lt;br /&gt;
Zwei Roboter treten gegeneinader an und versuchen, sich aus dem Ring zu schieben.&lt;br /&gt;
&lt;br /&gt;
'''WALKING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Eine Disziplin nur für Laufroboter. Der Roboter muss schnellstmöglich eine Strecke von 100cm zurücklegen, wenden, und die Strecke zurück laufen. &lt;br /&gt;
&lt;br /&gt;
'''FREESTYLE'''&amp;lt;br&amp;gt;&lt;br /&gt;
In dieser Disziplin hat jeder Teilnehmer die Möglichkeit seinen Roboter vorzustellen und zu zeigen was dieser kann.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* http://www.gsf-robot-contest.de/&lt;br /&gt;
&lt;br /&gt;
==RoboKing==&lt;br /&gt;
RoboKing ist ein Wettbewerb für technikinteressierte Schüler, der jährlich von der TU Chemnitz organisiert wird. Jedes Team besteht aus 3 bis 5 Schülern und einem erwachsenem Teamleiter. RoboKing richtet sich ausdrücklich auch an Schülergruppen ohne große Vorkenntnisse. Ziel der Initiative ist, Schüler für ein Studium ingenieurwissenschaftlicher Fächer zu begeistern und zu zeigen, dass auch Schulfächer wie Physik und Informatik eine Menge Spaß machen können. Das Durchschnittsalter der Teilnehmer liegt bei etwa 16 Jahren. Die jüngsten Teilnehmer waren 10 Jahre alt. &lt;br /&gt;
&lt;br /&gt;
Besonderes Highlight des Wettberwebs RoboKing ist zweifellos eine Gutschrift, von denen die Teilnehmer alle Materialien die zum Bau des Roboters benötigt werden, bezahlen können. Dadurch unterscheidet sich dieser Wettbewerb von allen vergleichbaren, denn auf die teilnehmenden Schüler kommen keine Kosten für Material zu. Jedes Jahr werden 25 Teams mit dieser Gutschrift finanziell unterstützt. Ab dem Wettbewerb RoboKing 2007 (startet im Frühjahr 2006) können zusätzlich auch alle Teams teilnehmen, die sich selbst finanzieren.&lt;br /&gt;
&lt;br /&gt;
Die Endrunde des Wettbewerbs wurde 2004 und auf der Hannover Messe ausgetragen. 2006 fand das Finale auf der digital living / CeBIT statt.&lt;br /&gt;
Eine weitere Besonderheit des Wettbewerbs: Jedes Jahr müssen die Teilnehmer eine andere Aufgabenstellung lösen.  Bei den vergangenen Wettbewerben mussten die Roboter sicher durch ein großes Labyrinth navigieren, Tennisbälle einsammeln und in die eigene Basis bringen oder Bauklötzchen durch einen Hindernisparcours mit Graben, Brücke und Schlucht transportieren. Die Teilnehmer haben nach Bekanntgabe der Spielregeln etwa 8 Monate Zeit, die Aufgabe zu lösen.&lt;br /&gt;
&lt;br /&gt;
RoboKing finanziert sich ausschließlich über Spenden von zahlreichen Sponsoren. Verantwortlich für die Organisation sind die Mitarbeiter und Studenten der Professur Prozessautomatisierung der TU Chemnitz.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.roboking.de www.roboking.de]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Praxis]]&lt;/div&gt;</summary>
		<author><name>Chypsylon</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Roboterwettbewerbe&amp;diff=17505</id>
		<title>Roboterwettbewerbe</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Roboterwettbewerbe&amp;diff=17505"/>
				<updated>2011-06-20T15:24:01Z</updated>
		
		<summary type="html">&lt;p&gt;Chypsylon: /* Überblick */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Auf diese Seite werden die bekanntesten nationalen und internationalen Roboterwettbewerbe kurz vorgestellt.&lt;br /&gt;
&lt;br /&gt;
==Überblick==&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |''' Wettbewerb primär für'''||Schüler ||Studenten || Hobbyrobotiker ||1 Person || bis 5 Personen || mehr als 5 Personen || nächster Termin || Ort&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#Robocup_Junior|Robocup Junior]] || X || (X) ||  ||  || X || || 5. bis 11.7.2011 , versch. Nationalbewerbe || WM in Istanbul, Nationale Bewerbe&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#Eurobot|Eurobot]] || X || X ||  ||  ||  || X || 22. bis 27.06.2011 || Russland&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#Carolo_Cup|Carolo Cup]] || || X || || || || X  || 07. / 08.02.2011  || Braunschweig&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#Field_Robot_Event|Field Robot Event]] || || X || || || || X  || 30.6. - 02.07.2011 || Dänemark&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#FIRST_Lego_League|FIRST LEGO Leaue]] || X ||  ||  || ||  || X || 4. - 30.11. in 52 Regionen(Zentraleuropa) ||   &lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RoboCup_Soccer|RoboCup Soccer]] || || X || (X) ||  ||  || X   || 04. - 10.07.2011 || Istanbul&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RobotChallenge|RobotChallenge]] || || || X || X || || || 12. / 13.03.2011 || Wien&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#SPURT|SPURT]] || X || || ||  || X ||  || 20.05.2011 || Rostock&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#ELROB|European Land Robot Trial (ELROB)]] ||  || X ||  || ||  || X  || 20. - 24.07.2011 || Leuven, Belgien&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#ROBOCOM|ROBOCOM]] || X ||  ||  ||  || X || || 15.07.2011 || Gelsenkirchen&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RobotLiga|RobotLiga]] || || || X || X || || || keine nach 2007 bekannt ||&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RoboTest|RoboTest]] || || || X || X || || || keine nach 2008 bekannt ||&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RoboKing|RoboKing]] || X || || || || X || || keine nach 2008 bekannt ||&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#GSF_Robot_Contest|GSF Robot Contest]] ||  ||  || X ||X || X ||   || keine nach 2007 bekannt ||&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
= Aktuelle Wettbewerbe =&lt;br /&gt;
&lt;br /&gt;
==Robocup Junior==&lt;br /&gt;
&amp;quot;RoboCupJunior ist eine international organisierte Bildungsinitiative. Sie soll jungen Menschen spielerisch den Umgang mit Robotern näher bringen, soll die Lust auf Naturwissenschaften und Technik wecken und einen spannenden Wissenserwerb im Unterricht ermöglichen. Wichtig bei RoboCupJunior ist die hands-on Komponente. Deshalb bauen und programmieren die Teilnehmerinnen  und Teilnehmer kleine Roboter für spezielle Aufgaben und zeigen diese dann in Präsentationen und Wettbewerben.&lt;br /&gt;
&lt;br /&gt;
Damit das Ganze nicht zu theoretisch behandelt wird, werden auch jedes Jahr nationale und internationale Bewerbe veranstaltet, wo sich die unterschiedlichen Teams messen, aber auch andere Schulen, Länder und Kulturen kennen lernen können.(Zitat robocupjunior.at)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Unterteilt ist das ganze in drei Kategorien:&lt;br /&gt;
*Soccer&lt;br /&gt;
*Rescue&lt;br /&gt;
*Dance&lt;br /&gt;
&lt;br /&gt;
sowie in in zwei Altersgruppen - 10-14 (Primary) sowie unter 19 Jahre (Secondary).&lt;br /&gt;
&lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* Allgemein:&lt;br /&gt;
# [http://www.robocupjunior.org www.robocupjunior.org]&lt;br /&gt;
# [http://www.rcjrescue.com/ www.rcjrescue.com]&lt;br /&gt;
* Weltmeisterschaften:&lt;br /&gt;
# [http://www.robocup2009.org www.robocup2009.org]&lt;br /&gt;
# [http://www.robocup2010.org www.robocup2010.org]&lt;br /&gt;
# [http://www.robocup2011.org www.robocup2011.org]&lt;br /&gt;
* Nationale Seiten:&lt;br /&gt;
# [http://robocupjunior.at robocupjunior.at]&lt;br /&gt;
# [http://www.robocupgermanopen.de www.robocupgermanopen.de]&lt;br /&gt;
# [http://www.robocupjunior.it/ www.robocupjunior.it]&lt;br /&gt;
# [http://www.robocupjunior.org.au/ www.robocupjunior.org.au]&lt;br /&gt;
&lt;br /&gt;
==Eurobot==&lt;br /&gt;
&amp;quot;Seit 1998 ist Eurobot ein internationaler Roboterwettbewerb für Teams von Jugendlichen, Studenten und sonstigen an Robotern interessierten Menschen.&lt;br /&gt;
Eurobot findet stets in Europa statt, ist aber für alle Länder aller Kontinente zugänglich. Im Jahre 2004 nahmen insgesamt 250 Teams aus 21 Länder an diesem technisch/wissenschaftlichen Wettbewerb teil.&amp;quot; (zitiert von www.eurobot.org)&lt;br /&gt;
Aus jedem Land dürfen maximal drei Teams zu den internationalen Finalen fahren. Diese drei Mannschaften müssen sich in nationalen Vorausscheiden qualifizieren. Die Aufgabe wird jedes Jahr neu gestellt. Nur die Rahmenbedingungen bleiben gleich: Ein Match dauert nur 90 Sekunden, es ist also sowohl Schnelligkeit als auch eine intelligente Taktik und Sicherheit gefragt. Die Spielfläche ist etwa 2x3 Meter groß.&lt;br /&gt;
Eurobot findet seit 2005 jedes Jahr in einem anderen Land statt. Der Wettbewerb wird von einer großen Rahmenveranstaltung inklusive Vorträgen und vielen Attraktionen für die zahlreichen Zuschauer ergänzt.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* [http://www.eurobot.org www.eurobot.org]&lt;br /&gt;
* [http://www.eurobot-deutschland.de www.eurobot-deutschland.de]&lt;br /&gt;
&lt;br /&gt;
==Carolo Cup==&lt;br /&gt;
Dieser Wettbewerb für Studenten findet an der TU Braunschweig statt. &lt;br /&gt;
Es treten autonome Modellfahrzeuge im Maßstab 1:10 gegeneinander an. Aufgaben sind das Fahren auf einem Rundkurs (dabei muss die Fahrbahnmarkierung z.B. mit Kameras erkannt werden) und das seitliche Einparken in einer vorgegebenen Parklücke.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* [http://www.carolo-cup.de www.carolo-cup.de]&lt;br /&gt;
&lt;br /&gt;
==Field Robot Event==&lt;br /&gt;
Dieser Wettbewerb für Studenten findet auf einem Maisfeld statt. Die Roboter müssen den Maisreihen folgen und &amp;quot;Unkraut&amp;quot; erkennen, wobei es mehrere Schwierigkeitsgrade gibt (z.B. können einzelne Pflanzen fehlen, oder es gibt größere Unebenheiten im Boden).&lt;br /&gt;
2011 wird der Wettbewerb in Dänemark ausgetragen.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* [http://www.fre2011.dk/ http://www.fre2011.dk/]&lt;br /&gt;
&lt;br /&gt;
==FIRST Lego League==&lt;br /&gt;
Bei der FIRST LEGO League (FLL) handelt es sich um einen internationalen Wettbewerb der von der Firma LEGO und der amerikanischen Stiftung FIRST (For Inspiration and Recognition of Science and Technology) veranstalltet wird. Er findet jährlich auf der ganzen Welt mit regionalen Runden statt und steht jedes Jahr unter einem neuen Motto. &lt;br /&gt;
&lt;br /&gt;
Der Wettbewerb beschäftigt sich immer mit aktuellen naturwissenschaftlichen Problemen, die gesellschaftlich relevant sind. Dabei sollen die Kinder nicht nur einen Roboter programmieren, der Aufgaben auf dem vorgegebenen Spielfeld erfüllt, sondern sich auch tiefgründig mit dem Wettbewerbsthema auseinandersetzen. Die Teilnehmer sollen einen Lösungsansatz für ein aktuelles Probleme erarbeiten, dass mit dem Wettbewerbsthema in Verbindung steht. 2010 heißt das Thema von FLL &amp;quot;Body Forward&amp;quot; und dabei dreht sich alles um Biomedizin.&lt;br /&gt;
&lt;br /&gt;
Bei diesem Wettbewerb dürfen nur Roboter eingesetzt werden, die aus dem LEGO Mindstorms System bestehen. Der Wettbewerb richtet sich vornehmlich an junge Schüler, wie auch das gesamte Mindstorms System. Deshalb dürfen die Teilnehmer maximal 16 Jahre alt sein. Jedes Team wird von einem volljährigen Coach bei der Bewältigung der Aufgaben angeleitet. &lt;br /&gt;
&lt;br /&gt;
Die Wettbewerbsaufgaben werden immer Anfang September veröffentlicht, danach hat jedes Team ca. 8 Wochen Zeit seinen Roboter zu programmieren und den Forschungsauftrag zu erfüllen, um die Ergebnisse dann bei einem der Regionalwettbewerbe zu präsentieren.&lt;br /&gt;
 &lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* [http://www.firstlegoleague.org/ www.firstlegoleague.org]&lt;br /&gt;
* [http://www.firstlegoleague.de/ www.firstlegoleague.de]&lt;br /&gt;
&lt;br /&gt;
==RoboCup Soccer==&lt;br /&gt;
Die Komplexität und Beliebtheit von Fußball (soccer) spielten wesentliche Rollen bei der Motivation der ersten RoboCupspiele Mitte der 90er Jahre. Die Dynamik und die Komplexität von Fußball birgt enorme Herausforderungen für Wissenschaftler, die sich mit der Entwicklung von autonomen Robotern in diesem Bereich beschäftigen: &lt;br /&gt;
&lt;br /&gt;
Individuelle Herausforderungen: jeder Agent/Roboter muss Objekte erkennen, sich selbst lokalisieren, navigieren und den Ball bewegen können. Zu klären sind Fragen wie: was ist in diesem Moment wichtig in meiner Wahrnehmung? Ist meine Position und die der anderen Mitspieler bekannt? &lt;br /&gt;
Kooperation von Agenten: in einer dynamischen Echtzeitumgebung kommt es nicht auf einen einzelnen Spieler an, sondern besonders auf das kooperative Spiel, bei dem auch die Kommunikation eine große Rolle spielt.&lt;br /&gt;
&lt;br /&gt;
Dynamische Echtzeitumgebung mit sich bewegenden Objekten, von denen einige intelligente Agenten sind, die gegen einen spielen. Diese Art von Umgebung ist z.B. auch im Straßenverkehr zu beobachten, wobei die anderen Verkehrsteilnehmer zwar keine Gegner sind, die meine Pläne durchkreuzen wollen, wo aber die Situationen beliebig komplex werden können.&lt;br /&gt;
RoboCupSoccer besteht aus fünf Ligen: der Simulationsliga, der Small-Size Liga, der Middle-Size Liga, der Sony Legged Liga, und der Humanoidliga. &lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.robocup.org www.robocup.org]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==RobotChallenge==&lt;br /&gt;
Die RobotChallenge ist ein österreichischer Wettbewerb für selbstgebaute, autonome Roboter, dessen Ziel es ist für den kreativen Umgang mit innovativen Technologien zu begeistern. Experimente und praktische Erfahrungen lassen Teilnehmer und Zuschauer Wissenschaft hautnah erleben. Dieser Wettbewerb soll zeigen, wie man mit einfachen Mitteln, aber offenem Geiste und Phantasie spannende, zukunftstaugliche Lösungen finden kann. &lt;br /&gt;
Folgende Disiplienen wurden dort schon ausgetragen:&lt;br /&gt;
&lt;br /&gt;
'''Parallel-Slalom'''&amp;lt;br&amp;gt;&lt;br /&gt;
Möglichst schnell muss einer schwarzen Linie auf weißem Untergrund entlang gefahren werden. Reglement im Wesentlichen wie bei RC'05. &lt;br /&gt;
&lt;br /&gt;
'''Parallel-Slalom Enhanced'''&amp;lt;br&amp;gt;&lt;br /&gt;
Wie Parallel-Slalom, jedoch mit Erschwernissen: ein Tunnel, eine kurze Unterbrechung der Linie und ein Hindernis auf der Linie, das umfahren werden muss. &lt;br /&gt;
&lt;br /&gt;
'''Robot-Sumo'''&amp;lt;br&amp;gt;&lt;br /&gt;
Je zwei Roboter treten gegeneinander an und versuchen den jeweils anderen von einer runden Platte zu schieben. Die Platte ist schwarz, der Rand ist durch einen weissen Streifen markiert. Die Regeln entsprechen der internationalen Norm für autonomes Roboter-Sumo. &lt;br /&gt;
&lt;br /&gt;
'''Hindernislauf'''&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Infrarot-Leuchtturm mit definiertem Signal am Ende des Parcours ist möglichst rasch zu erreichen. Auf dem Weg befindliche Hindernisse müssen umfahren werden. Jedes Team kann alternativ auch einen eigenen Leuchtturm als Orientierungshilfe mitbringen. Reglement im Wesentlichen wie bei RC'05, jedoch sind auch komplexere Hindernisse (z.B. Sackgassen) möglich. &lt;br /&gt;
&lt;br /&gt;
'''Puck Collect'''&amp;lt;br&amp;gt;&lt;br /&gt;
Je zwei Roboter - von denen einem die Farbe rot, dem anderen blau zugeteilt wird - treten gegeneinander an. Auf dem Spielfeld sind kleine rote und blaue Scheiben (Pucks) verteilt. Ziel ist es, möglichst schnell alle Pucks der eigenen Farbe einzusammeln und zur eigenen, farblich gekennzeichneten Homebase zu bringen. &lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.robotchallenge.at/ RobotChallenge]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SPURT==&lt;br /&gt;
Der Wettbewerb SPURT (die Abkürzung steht für &amp;quot;Schüler-Projekte um Roboter-Technik&amp;quot;) wird jährlich von der Universität Rostock veranstaltet. SPURT richtet sich an technikinteressierte Schüler. Die zu lösende Aufgabe ist eine Linienverfolgung. Wer am schnellsten die herzförmige Linie abfährt, hat gewonnen.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://spurt.uni-rostock.de/ Wettbewerb SPURT]&lt;br /&gt;
&lt;br /&gt;
==ELROB==&lt;br /&gt;
Die deutsche Bundeswehr läd Firmen und Privatpersonen ein, am European Land-Robot Trial teilzunehmen (findet 2010 zum fünften Mal statt). Die ELROB wird veranstaltet, um einen Überblick über den europäischen State-of-the-art auf dem Gebiet von UGVs (unmanned ground vehicles) mit Fokus auf kurzfristig realisierbare Robotersystemen zu liefern. Hinsichtlich der vorhandenen Fähigkeiten versuchen die Organisatoren, technische Lösungen zu fördern, die den Betrieb unbemannter Fahrzeuge (UGV) verbessern. Repräsentanten aus Militär, Grenzschutz, Spezialkräften, Polizei, Feuerwehr, und Zivilschutzagenturen aus vielen europäischen Ländern werden anwesend sein. Die ELROB wird von einer Ausstellung begleitet, welche eine breite Vielzahl an Robotikaspekten umfasst.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.elrob.org/ Homepage von ELROB]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ROBOCOM==&lt;br /&gt;
Bei diesem Wettbewerb soll eine vorgegebene Aufgabe mit LEGO MINDSTORMS NXT Robotern autonom, d.h. ohne Eingriffe von außen bewältigt werden. Mit diesem Wettbewerb möchte die Fachhochschule Gelsenkirchen in den Schulen den Einsatz moderner Techniken fördern und Schülerinnen und Schüler für ein naturwissenschaftliches Studium interessieren.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* http://www2.fh-gelsenkirchen.de/FH-Sites/FB1/index.php?id=791&lt;br /&gt;
&lt;br /&gt;
= Derzeit nicht regelmäßig stattfindende Wettbewerbe =&lt;br /&gt;
&lt;br /&gt;
==RobotLiga==&lt;br /&gt;
Die RobotLiga fand bis 2007 in Kaiserslautern statt, neuere Termine sind nicht bekannt. Teilnehmen konnten alle interessierten Roboterbastler.&lt;br /&gt;
&lt;br /&gt;
'''LINE SEARCH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke ohne Abzweigungen. Die Linie ist 2cm breit.&lt;br /&gt;
&lt;br /&gt;
'''LABYRINTH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke mit Abzweigungen und Kreuzungen. Die Linie ist 2cm breit.&lt;br /&gt;
&lt;br /&gt;
'''ROBOT COLLECT'''&amp;lt;br&amp;gt;&lt;br /&gt;
Auf einem Spielfeld von 3x3m sind 30 Objekte in der Größe von Teelichtern verteilt. Zwei Roboter treten gegeneinander an und versuchen, möglichst viele der Objekte in ihre eigene Heimatecke des Spielfeldes zu bringen. &lt;br /&gt;
&lt;br /&gt;
''' ROBOT VOLLEY'''&amp;lt;br&amp;gt;&lt;br /&gt;
Das Spielfeld ist 2x4m groß und wird durch eine Wand (als &amp;quot;Netz&amp;quot;) in zwei Hälfte geteilt, in denen je ein Roboter positioniert wird. In jeder Hälfte befinden sich am Anfang zehn Bälle. Die Roboter müssen nun innerhalb von fünf Minuten versuchen, möglichst viele der Bälle einzusammeln und in die gegnerische Hälfte zu befördern. &lt;br /&gt;
&lt;br /&gt;
'''MINI SUMO'''&amp;lt;br&amp;gt;&lt;br /&gt;
Zwei Roboter treten gegeneinander an und versuchen, sich aus dem Ring zu schieben.&lt;br /&gt;
&lt;br /&gt;
'''WALKING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Eine Disziplin nur für Laufroboter. Der Roboter muss schnellstmöglich eine Strecke von 75cm zurücklegen, wenden, und die Strecke zurück laufen. &lt;br /&gt;
&lt;br /&gt;
'''FIRE FIGHTING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Es geht darum, eine brennende Kerze in einem durch mehrere Wände angedeuteten Gebäude zu finden und zu löschen. &lt;br /&gt;
&lt;br /&gt;
'''FREE ROBOTS'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können eigene Roboter dem Publikum vorgestellt werden. &lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.robotliga.de/ RobotLiga]&lt;br /&gt;
&lt;br /&gt;
==RoboTest==&lt;br /&gt;
'''LINE SEARCH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke ohne Abzweigungen. Die Linie ist 2 bis 3cm breit. Es starten immer zwei Roboter gleichzeitig in einem Parallelslalom. Der Wettbewerb läuft in mehreren Runden nach dem KO-System. &lt;br /&gt;
&lt;br /&gt;
'''BLOCKED LINE'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke ohne Abzweigungen. Auf der Strecke stehen Hindernisse, die umfahren werden müssen. &lt;br /&gt;
&lt;br /&gt;
'''LABYRINTH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke mit Abzweigungen und Kreuzungen. Die Linie ist 2 bis 5cm breit.&lt;br /&gt;
&lt;br /&gt;
'''ROBOT COLLECT'''&amp;lt;br&amp;gt;&lt;br /&gt;
Auf einem Spielfeld von 3x3m sind 30 Objekte in der Größe von Teelichtern verteilt. Zwei Roboter treten gegeneinander an und versuchen, innerhalb von drei Minuten möglichst viele der Objekte in ihre eigene Heimatecke des Spielfeldes zu bringen. &lt;br /&gt;
&lt;br /&gt;
''' ROBOT VOLLEY'''&amp;lt;br&amp;gt;&lt;br /&gt;
Das Spielfeld ist 2x4m groß und wird durch eine Wand (als &amp;quot;Netz&amp;quot;) in zwei Hälfte geteilt, in denen je ein Roboter positioniert wird. In jeder Hälfte befinden sich am Anfang zehn Bälle. Die Roboter müssen nun innerhalb von fünf Minuten versuchen, möglichst viele der Bälle einzusammeln und in die gegnerische Hälfte zu befördern. &lt;br /&gt;
&lt;br /&gt;
'''MICRO LINE'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen für sehr kleine Roboter. Die maximale Größe liegt bei 8x8x8cm und 200g. Je kleiner und leichter der Roboter ist, desto mehr Bonuspunkte gibt es.  &lt;br /&gt;
&lt;br /&gt;
'''FIRE FIGHTING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Es geht darum, eine brennende Kerze in einem durch mehrere Wände angedeuteten Gebäude zu finden und zu löschen. &lt;br /&gt;
&lt;br /&gt;
'''MINI SUMO'''&amp;lt;br&amp;gt;&lt;br /&gt;
Zwei Roboter treten gegeneinander an und versuchen, sich aus dem Ring zu schieben.&lt;br /&gt;
&lt;br /&gt;
'''JUST WALK'''&amp;lt;br&amp;gt;&lt;br /&gt;
Eine Disziplin nur für Laufroboter. Der Roboter muss schnellstmöglich eine Strecke von 1m zurücklegen, wenden, und die Strecke zurück laufen. &lt;br /&gt;
&lt;br /&gt;
'''FREE ROBOTS'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können eigene Roboter dem Publikum vorgestellt werden. &lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://WWW.ROBOTEST.DE/ RoboTest]&lt;br /&gt;
&lt;br /&gt;
==GSF Robot Contest==&lt;br /&gt;
Ein neuer Wettbewerb für Hobbyrobotiker. Er findet am 19.5.07 erstmals statt. Austragungsort ist Fröndenberg (Raum Dortmund/Unna).&lt;br /&gt;
Die Aufgaben sind teilweise angelehnt an die der RobotLiga.&lt;br /&gt;
&lt;br /&gt;
'''LABYRINTH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke mit Abzweigungen und Kreuzungen. Die Linie ist 2cm breit.&lt;br /&gt;
&lt;br /&gt;
'''ROBOT COLLECT'''&amp;lt;br&amp;gt;&lt;br /&gt;
Auf einem Spielfeld von 3x3m sind 30 Objekte in der Größe von Teelichtern verteilt. Zwei Roboter treten gegeneinander an und versuchen, möglichst viele der Objekte in ihre eigene Heimatecke des Spielfeldes zu bringen. &lt;br /&gt;
&lt;br /&gt;
''' ROBOT VOLLEY'''&amp;lt;br&amp;gt;&lt;br /&gt;
Das Spielfeld ist 2x4m groß und wird durch eine Wand (als &amp;quot;Netz&amp;quot;) in zwei Hälfte geteilt, in denen je ein Roboter positioniert wird. In jeder Hälfte befinden sich am Anfang zehn Bälle. Die Roboter müssen nun innerhalb von fünf Minuten versuchen, möglichst viele der Bälle einzusammeln und in die gegenrische Hälfte zu befördern. &lt;br /&gt;
&lt;br /&gt;
'''FIRE FIGHTING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Naqch einem akustischen &amp;quot;Feueralarm&amp;quot; muss eine brennende Kerze in einem durch mehrere Wände angedeuteten Gebäude gefunden und gelöscht werden. &lt;br /&gt;
&lt;br /&gt;
'''MINI SUMO'''&amp;lt;br&amp;gt;&lt;br /&gt;
Zwei Roboter treten gegeneinader an und versuchen, sich aus dem Ring zu schieben.&lt;br /&gt;
&lt;br /&gt;
'''WALKING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Eine Disziplin nur für Laufroboter. Der Roboter muss schnellstmöglich eine Strecke von 100cm zurücklegen, wenden, und die Strecke zurück laufen. &lt;br /&gt;
&lt;br /&gt;
'''FREESTYLE'''&amp;lt;br&amp;gt;&lt;br /&gt;
In dieser Disziplin hat jeder Teilnehmer die Möglichkeit seinen Roboter vorzustellen und zu zeigen was dieser kann.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* http://www.gsf-robot-contest.de/&lt;br /&gt;
&lt;br /&gt;
==RoboKing==&lt;br /&gt;
RoboKing ist ein Wettbewerb für technikinteressierte Schüler, der jährlich von der TU Chemnitz organisiert wird. Jedes Team besteht aus 3 bis 5 Schülern und einem erwachsenem Teamleiter. RoboKing richtet sich ausdrücklich auch an Schülergruppen ohne große Vorkenntnisse. Ziel der Initiative ist, Schüler für ein Studium ingenieurwissenschaftlicher Fächer zu begeistern und zu zeigen, dass auch Schulfächer wie Physik und Informatik eine Menge Spaß machen können. Das Durchschnittsalter der Teilnehmer liegt bei etwa 16 Jahren. Die jüngsten Teilnehmer waren 10 Jahre alt. &lt;br /&gt;
&lt;br /&gt;
Besonderes Highlight des Wettberwebs RoboKing ist zweifellos eine Gutschrift, von denen die Teilnehmer alle Materialien die zum Bau des Roboters benötigt werden, bezahlen können. Dadurch unterscheidet sich dieser Wettbewerb von allen vergleichbaren, denn auf die teilnehmenden Schüler kommen keine Kosten für Material zu. Jedes Jahr werden 25 Teams mit dieser Gutschrift finanziell unterstützt. Ab dem Wettbewerb RoboKing 2007 (startet im Frühjahr 2006) können zusätzlich auch alle Teams teilnehmen, die sich selbst finanzieren.&lt;br /&gt;
&lt;br /&gt;
Die Endrunde des Wettbewerbs wurde 2004 und auf der Hannover Messe ausgetragen. 2006 fand das Finale auf der digital living / CeBIT statt.&lt;br /&gt;
Eine weitere Besonderheit des Wettbewerbs: Jedes Jahr müssen die Teilnehmer eine andere Aufgabenstellung lösen.  Bei den vergangenen Wettbewerben mussten die Roboter sicher durch ein großes Labyrinth navigieren, Tennisbälle einsammeln und in die eigene Basis bringen oder Bauklötzchen durch einen Hindernisparcours mit Graben, Brücke und Schlucht transportieren. Die Teilnehmer haben nach Bekanntgabe der Spielregeln etwa 8 Monate Zeit, die Aufgabe zu lösen.&lt;br /&gt;
&lt;br /&gt;
RoboKing finanziert sich ausschließlich über Spenden von zahlreichen Sponsoren. Verantwortlich für die Organisation sind die Mitarbeiter und Studenten der Professur Prozessautomatisierung der TU Chemnitz.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.roboking.de www.roboking.de]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Praxis]]&lt;/div&gt;</summary>
		<author><name>Chypsylon</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Roboterwettbewerbe&amp;diff=17503</id>
		<title>Roboterwettbewerbe</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Roboterwettbewerbe&amp;diff=17503"/>
				<updated>2011-06-20T15:21:50Z</updated>
		
		<summary type="html">&lt;p&gt;Chypsylon: /* Aktuelle Wettbewerbe */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Auf diese Seite werden die bekanntesten nationalen und internationalen Roboterwettbewerbe kurz vorgestellt.&lt;br /&gt;
&lt;br /&gt;
==Überblick==&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |''' Wettbewerb primär für'''||Schüler ||Studenten || Hobbyrobotiker ||1 Person || bis 5 Personen || mehr als 5 Personen || nächster Termin || Ort&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#Robocup_Junior|Robocup Junior]] || X || (X) ||  ||  || X || || 5. bis 11.7.2011 , versch. Nationalbewerbe || WM in Istanbul, Nationale Bewerbe&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#Eurobot|Eurobot]] || X || X ||  ||  ||  || X || 22. bis 27.06.2011 || Russland&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#Carolo_Cup|Carolo Cup]] || || X || || || || X  || 07. / 08.02.2011  || Braunschweig&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#Field_Robot_Event|Field Robot Event]] || || X || || || || X  || 30.6. - 02.07.2011 || Dänemark&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#FIRST_Lego_League|FIRST LEGO Leaue]] || X ||  ||  || ||  || X || 4. - 30.11. in 52 Regionen(Zentraleuropa) ||   &lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RoboCup_Soccer|RoboCup Soccer]] || || X ||  ||  ||  || X   || 04. - 10.07.2011 || Istanbul&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RobotChallenge|RobotChallenge]] || || || X || X || || || 12. / 13.03.2011 || Wien&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#SPURT|SPURT]] || X || || ||  || X ||  || 20.05.2011 || Rostock&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#ELROB|European Land Robot Trial (ELROB)]] ||  || X ||  || ||  || X  || 20. - 24.07.2011 || Leuven, Belgien&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#ROBOCOM|ROBOCOM]] || X ||  ||  ||  || X || || 15.07.2011 || Gelsenkirchen&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RobotLiga|RobotLiga]] || || || X || X || || || keine nach 2007 bekannt ||&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RoboTest|RoboTest]] || || || X || X || || || keine nach 2008 bekannt ||&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RoboKing|RoboKing]] || X || || || || X || || keine nach 2008 bekannt ||&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#GSF_Robot_Contest|GSF Robot Contest]] ||  ||  || X ||X || X ||   || keine nach 2007 bekannt ||&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
= Aktuelle Wettbewerbe =&lt;br /&gt;
&lt;br /&gt;
==Robocup Junior==&lt;br /&gt;
&amp;quot;RoboCupJunior ist eine international organisierte Bildungsinitiative. Sie soll jungen Menschen spielerisch den Umgang mit Robotern näher bringen, soll die Lust auf Naturwissenschaften und Technik wecken und einen spannenden Wissenserwerb im Unterricht ermöglichen. Wichtig bei RoboCupJunior ist die hands-on Komponente. Deshalb bauen und programmieren die Teilnehmerinnen  und Teilnehmer kleine Roboter für spezielle Aufgaben und zeigen diese dann in Präsentationen und Wettbewerben.&lt;br /&gt;
&lt;br /&gt;
Damit das Ganze nicht zu theoretisch behandelt wird, werden auch jedes Jahr nationale und internationale Bewerbe veranstaltet, wo sich die unterschiedlichen Teams messen, aber auch andere Schulen, Länder und Kulturen kennen lernen können.(Zitat robocupjunior.at)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Unterteilt ist das ganze in drei Kategorien:&lt;br /&gt;
*Soccer&lt;br /&gt;
*Rescue&lt;br /&gt;
*Dance&lt;br /&gt;
&lt;br /&gt;
sowie in in zwei Altersgruppen - 10-14 (Primary) sowie unter 19 Jahre (Secondary).&lt;br /&gt;
&lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* Allgemein:&lt;br /&gt;
# [http://www.robocupjunior.org www.robocupjunior.org]&lt;br /&gt;
# [http://www.rcjrescue.com/ www.rcjrescue.com]&lt;br /&gt;
* Weltmeisterschaften:&lt;br /&gt;
# [http://www.robocup2009.org www.robocup2009.org]&lt;br /&gt;
# [http://www.robocup2010.org www.robocup2010.org]&lt;br /&gt;
# [http://www.robocup2011.org www.robocup2011.org]&lt;br /&gt;
* Nationale Seiten:&lt;br /&gt;
# [http://robocupjunior.at robocupjunior.at]&lt;br /&gt;
# [http://www.robocupgermanopen.de www.robocupgermanopen.de]&lt;br /&gt;
# [http://www.robocupjunior.it/ www.robocupjunior.it]&lt;br /&gt;
# [http://www.robocupjunior.org.au/ www.robocupjunior.org.au]&lt;br /&gt;
&lt;br /&gt;
==Eurobot==&lt;br /&gt;
&amp;quot;Seit 1998 ist Eurobot ein internationaler Roboterwettbewerb für Teams von Jugendlichen, Studenten und sonstigen an Robotern interessierten Menschen.&lt;br /&gt;
Eurobot findet stets in Europa statt, ist aber für alle Länder aller Kontinente zugänglich. Im Jahre 2004 nahmen insgesamt 250 Teams aus 21 Länder an diesem technisch/wissenschaftlichen Wettbewerb teil.&amp;quot; (zitiert von www.eurobot.org)&lt;br /&gt;
Aus jedem Land dürfen maximal drei Teams zu den internationalen Finalen fahren. Diese drei Mannschaften müssen sich in nationalen Vorausscheiden qualifizieren. Die Aufgabe wird jedes Jahr neu gestellt. Nur die Rahmenbedingungen bleiben gleich: Ein Match dauert nur 90 Sekunden, es ist also sowohl Schnelligkeit als auch eine intelligente Taktik und Sicherheit gefragt. Die Spielfläche ist etwa 2x3 Meter groß.&lt;br /&gt;
Eurobot findet seit 2005 jedes Jahr in einem anderen Land statt. Der Wettbewerb wird von einer großen Rahmenveranstaltung inklusive Vorträgen und vielen Attraktionen für die zahlreichen Zuschauer ergänzt.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* [http://www.eurobot.org www.eurobot.org]&lt;br /&gt;
* [http://www.eurobot-deutschland.de www.eurobot-deutschland.de]&lt;br /&gt;
&lt;br /&gt;
==Carolo Cup==&lt;br /&gt;
Dieser Wettbewerb für Studenten findet an der TU Braunschweig statt. &lt;br /&gt;
Es treten autonome Modellfahrzeuge im Maßstab 1:10 gegeneinander an. Aufgaben sind das Fahren auf einem Rundkurs (dabei muss die Fahrbahnmarkierung z.B. mit Kameras erkannt werden) und das seitliche Einparken in einer vorgegebenen Parklücke.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* [http://www.carolo-cup.de www.carolo-cup.de]&lt;br /&gt;
&lt;br /&gt;
==Field Robot Event==&lt;br /&gt;
Dieser Wettbewerb für Studenten findet auf einem Maisfeld statt. Die Roboter müssen den Maisreihen folgen und &amp;quot;Unkraut&amp;quot; erkennen, wobei es mehrere Schwierigkeitsgrade gibt (z.B. können einzelne Pflanzen fehlen, oder es gibt größere Unebenheiten im Boden).&lt;br /&gt;
2011 wird der Wettbewerb in Dänemark ausgetragen.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* [http://www.fre2011.dk/ http://www.fre2011.dk/]&lt;br /&gt;
&lt;br /&gt;
==FIRST Lego League==&lt;br /&gt;
Bei der FIRST LEGO League (FLL) handelt es sich um einen internationalen Wettbewerb der von der Firma LEGO und der amerikanischen Stiftung FIRST (For Inspiration and Recognition of Science and Technology) veranstalltet wird. Er findet jährlich auf der ganzen Welt mit regionalen Runden statt und steht jedes Jahr unter einem neuen Motto. &lt;br /&gt;
&lt;br /&gt;
Der Wettbewerb beschäftigt sich immer mit aktuellen naturwissenschaftlichen Problemen, die gesellschaftlich relevant sind. Dabei sollen die Kinder nicht nur einen Roboter programmieren, der Aufgaben auf dem vorgegebenen Spielfeld erfüllt, sondern sich auch tiefgründig mit dem Wettbewerbsthema auseinandersetzen. Die Teilnehmer sollen einen Lösungsansatz für ein aktuelles Probleme erarbeiten, dass mit dem Wettbewerbsthema in Verbindung steht. 2010 heißt das Thema von FLL &amp;quot;Body Forward&amp;quot; und dabei dreht sich alles um Biomedizin.&lt;br /&gt;
&lt;br /&gt;
Bei diesem Wettbewerb dürfen nur Roboter eingesetzt werden, die aus dem LEGO Mindstorms System bestehen. Der Wettbewerb richtet sich vornehmlich an junge Schüler, wie auch das gesamte Mindstorms System. Deshalb dürfen die Teilnehmer maximal 16 Jahre alt sein. Jedes Team wird von einem volljährigen Coach bei der Bewältigung der Aufgaben angeleitet. &lt;br /&gt;
&lt;br /&gt;
Die Wettbewerbsaufgaben werden immer Anfang September veröffentlicht, danach hat jedes Team ca. 8 Wochen Zeit seinen Roboter zu programmieren und den Forschungsauftrag zu erfüllen, um die Ergebnisse dann bei einem der Regionalwettbewerbe zu präsentieren.&lt;br /&gt;
 &lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* [http://www.firstlegoleague.org/ www.firstlegoleague.org]&lt;br /&gt;
* [http://www.firstlegoleague.de/ www.firstlegoleague.de]&lt;br /&gt;
&lt;br /&gt;
==RoboCup Soccer==&lt;br /&gt;
Die Komplexität und Beliebtheit von Fußball (soccer) spielten wesentliche Rollen bei der Motivation der ersten RoboCupspiele Mitte der 90er Jahre. Die Dynamik und die Komplexität von Fußball birgt enorme Herausforderungen für Wissenschaftler, die sich mit der Entwicklung von autonomen Robotern in diesem Bereich beschäftigen: &lt;br /&gt;
&lt;br /&gt;
Individuelle Herausforderungen: jeder Agent/Roboter muss Objekte erkennen, sich selbst lokalisieren, navigieren und den Ball bewegen können. Zu klären sind Fragen wie: was ist in diesem Moment wichtig in meiner Wahrnehmung? Ist meine Position und die der anderen Mitspieler bekannt? &lt;br /&gt;
Kooperation von Agenten: in einer dynamischen Echtzeitumgebung kommt es nicht auf einen einzelnen Spieler an, sondern besonders auf das kooperative Spiel, bei dem auch die Kommunikation eine große Rolle spielt.&lt;br /&gt;
&lt;br /&gt;
Dynamische Echtzeitumgebung mit sich bewegenden Objekten, von denen einige intelligente Agenten sind, die gegen einen spielen. Diese Art von Umgebung ist z.B. auch im Straßenverkehr zu beobachten, wobei die anderen Verkehrsteilnehmer zwar keine Gegner sind, die meine Pläne durchkreuzen wollen, wo aber die Situationen beliebig komplex werden können.&lt;br /&gt;
RoboCupSoccer besteht aus fünf Ligen: der Simulationsliga, der Small-Size Liga, der Middle-Size Liga, der Sony Legged Liga, und der Humanoidliga. &lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.robocup.org www.robocup.org]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==RobotChallenge==&lt;br /&gt;
Die RobotChallenge ist ein österreichischer Wettbewerb für selbstgebaute, autonome Roboter, dessen Ziel es ist für den kreativen Umgang mit innovativen Technologien zu begeistern. Experimente und praktische Erfahrungen lassen Teilnehmer und Zuschauer Wissenschaft hautnah erleben. Dieser Wettbewerb soll zeigen, wie man mit einfachen Mitteln, aber offenem Geiste und Phantasie spannende, zukunftstaugliche Lösungen finden kann. &lt;br /&gt;
Folgende Disiplienen wurden dort schon ausgetragen:&lt;br /&gt;
&lt;br /&gt;
'''Parallel-Slalom'''&amp;lt;br&amp;gt;&lt;br /&gt;
Möglichst schnell muss einer schwarzen Linie auf weißem Untergrund entlang gefahren werden. Reglement im Wesentlichen wie bei RC'05. &lt;br /&gt;
&lt;br /&gt;
'''Parallel-Slalom Enhanced'''&amp;lt;br&amp;gt;&lt;br /&gt;
Wie Parallel-Slalom, jedoch mit Erschwernissen: ein Tunnel, eine kurze Unterbrechung der Linie und ein Hindernis auf der Linie, das umfahren werden muss. &lt;br /&gt;
&lt;br /&gt;
'''Robot-Sumo'''&amp;lt;br&amp;gt;&lt;br /&gt;
Je zwei Roboter treten gegeneinander an und versuchen den jeweils anderen von einer runden Platte zu schieben. Die Platte ist schwarz, der Rand ist durch einen weissen Streifen markiert. Die Regeln entsprechen der internationalen Norm für autonomes Roboter-Sumo. &lt;br /&gt;
&lt;br /&gt;
'''Hindernislauf'''&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Infrarot-Leuchtturm mit definiertem Signal am Ende des Parcours ist möglichst rasch zu erreichen. Auf dem Weg befindliche Hindernisse müssen umfahren werden. Jedes Team kann alternativ auch einen eigenen Leuchtturm als Orientierungshilfe mitbringen. Reglement im Wesentlichen wie bei RC'05, jedoch sind auch komplexere Hindernisse (z.B. Sackgassen) möglich. &lt;br /&gt;
&lt;br /&gt;
'''Puck Collect'''&amp;lt;br&amp;gt;&lt;br /&gt;
Je zwei Roboter - von denen einem die Farbe rot, dem anderen blau zugeteilt wird - treten gegeneinander an. Auf dem Spielfeld sind kleine rote und blaue Scheiben (Pucks) verteilt. Ziel ist es, möglichst schnell alle Pucks der eigenen Farbe einzusammeln und zur eigenen, farblich gekennzeichneten Homebase zu bringen. &lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.robotchallenge.at/ RobotChallenge]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SPURT==&lt;br /&gt;
Der Wettbewerb SPURT (die Abkürzung steht für &amp;quot;Schüler-Projekte um Roboter-Technik&amp;quot;) wird jährlich von der Universität Rostock veranstaltet. SPURT richtet sich an technikinteressierte Schüler. Die zu lösende Aufgabe ist eine Linienverfolgung. Wer am schnellsten die herzförmige Linie abfährt, hat gewonnen.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://spurt.uni-rostock.de/ Wettbewerb SPURT]&lt;br /&gt;
&lt;br /&gt;
==ELROB==&lt;br /&gt;
Die deutsche Bundeswehr läd Firmen und Privatpersonen ein, am European Land-Robot Trial teilzunehmen (findet 2010 zum fünften Mal statt). Die ELROB wird veranstaltet, um einen Überblick über den europäischen State-of-the-art auf dem Gebiet von UGVs (unmanned ground vehicles) mit Fokus auf kurzfristig realisierbare Robotersystemen zu liefern. Hinsichtlich der vorhandenen Fähigkeiten versuchen die Organisatoren, technische Lösungen zu fördern, die den Betrieb unbemannter Fahrzeuge (UGV) verbessern. Repräsentanten aus Militär, Grenzschutz, Spezialkräften, Polizei, Feuerwehr, und Zivilschutzagenturen aus vielen europäischen Ländern werden anwesend sein. Die ELROB wird von einer Ausstellung begleitet, welche eine breite Vielzahl an Robotikaspekten umfasst.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.elrob.org/ Homepage von ELROB]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ROBOCOM==&lt;br /&gt;
Bei diesem Wettbewerb soll eine vorgegebene Aufgabe mit LEGO MINDSTORMS NXT Robotern autonom, d.h. ohne Eingriffe von außen bewältigt werden. Mit diesem Wettbewerb möchte die Fachhochschule Gelsenkirchen in den Schulen den Einsatz moderner Techniken fördern und Schülerinnen und Schüler für ein naturwissenschaftliches Studium interessieren.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* http://www2.fh-gelsenkirchen.de/FH-Sites/FB1/index.php?id=791&lt;br /&gt;
&lt;br /&gt;
= Derzeit nicht regelmäßig stattfindende Wettbewerbe =&lt;br /&gt;
&lt;br /&gt;
==RobotLiga==&lt;br /&gt;
Die RobotLiga fand bis 2007 in Kaiserslautern statt, neuere Termine sind nicht bekannt. Teilnehmen konnten alle interessierten Roboterbastler.&lt;br /&gt;
&lt;br /&gt;
'''LINE SEARCH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke ohne Abzweigungen. Die Linie ist 2cm breit.&lt;br /&gt;
&lt;br /&gt;
'''LABYRINTH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke mit Abzweigungen und Kreuzungen. Die Linie ist 2cm breit.&lt;br /&gt;
&lt;br /&gt;
'''ROBOT COLLECT'''&amp;lt;br&amp;gt;&lt;br /&gt;
Auf einem Spielfeld von 3x3m sind 30 Objekte in der Größe von Teelichtern verteilt. Zwei Roboter treten gegeneinander an und versuchen, möglichst viele der Objekte in ihre eigene Heimatecke des Spielfeldes zu bringen. &lt;br /&gt;
&lt;br /&gt;
''' ROBOT VOLLEY'''&amp;lt;br&amp;gt;&lt;br /&gt;
Das Spielfeld ist 2x4m groß und wird durch eine Wand (als &amp;quot;Netz&amp;quot;) in zwei Hälfte geteilt, in denen je ein Roboter positioniert wird. In jeder Hälfte befinden sich am Anfang zehn Bälle. Die Roboter müssen nun innerhalb von fünf Minuten versuchen, möglichst viele der Bälle einzusammeln und in die gegnerische Hälfte zu befördern. &lt;br /&gt;
&lt;br /&gt;
'''MINI SUMO'''&amp;lt;br&amp;gt;&lt;br /&gt;
Zwei Roboter treten gegeneinander an und versuchen, sich aus dem Ring zu schieben.&lt;br /&gt;
&lt;br /&gt;
'''WALKING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Eine Disziplin nur für Laufroboter. Der Roboter muss schnellstmöglich eine Strecke von 75cm zurücklegen, wenden, und die Strecke zurück laufen. &lt;br /&gt;
&lt;br /&gt;
'''FIRE FIGHTING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Es geht darum, eine brennende Kerze in einem durch mehrere Wände angedeuteten Gebäude zu finden und zu löschen. &lt;br /&gt;
&lt;br /&gt;
'''FREE ROBOTS'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können eigene Roboter dem Publikum vorgestellt werden. &lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.robotliga.de/ RobotLiga]&lt;br /&gt;
&lt;br /&gt;
==RoboTest==&lt;br /&gt;
'''LINE SEARCH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke ohne Abzweigungen. Die Linie ist 2 bis 3cm breit. Es starten immer zwei Roboter gleichzeitig in einem Parallelslalom. Der Wettbewerb läuft in mehreren Runden nach dem KO-System. &lt;br /&gt;
&lt;br /&gt;
'''BLOCKED LINE'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke ohne Abzweigungen. Auf der Strecke stehen Hindernisse, die umfahren werden müssen. &lt;br /&gt;
&lt;br /&gt;
'''LABYRINTH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke mit Abzweigungen und Kreuzungen. Die Linie ist 2 bis 5cm breit.&lt;br /&gt;
&lt;br /&gt;
'''ROBOT COLLECT'''&amp;lt;br&amp;gt;&lt;br /&gt;
Auf einem Spielfeld von 3x3m sind 30 Objekte in der Größe von Teelichtern verteilt. Zwei Roboter treten gegeneinander an und versuchen, innerhalb von drei Minuten möglichst viele der Objekte in ihre eigene Heimatecke des Spielfeldes zu bringen. &lt;br /&gt;
&lt;br /&gt;
''' ROBOT VOLLEY'''&amp;lt;br&amp;gt;&lt;br /&gt;
Das Spielfeld ist 2x4m groß und wird durch eine Wand (als &amp;quot;Netz&amp;quot;) in zwei Hälfte geteilt, in denen je ein Roboter positioniert wird. In jeder Hälfte befinden sich am Anfang zehn Bälle. Die Roboter müssen nun innerhalb von fünf Minuten versuchen, möglichst viele der Bälle einzusammeln und in die gegnerische Hälfte zu befördern. &lt;br /&gt;
&lt;br /&gt;
'''MICRO LINE'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen für sehr kleine Roboter. Die maximale Größe liegt bei 8x8x8cm und 200g. Je kleiner und leichter der Roboter ist, desto mehr Bonuspunkte gibt es.  &lt;br /&gt;
&lt;br /&gt;
'''FIRE FIGHTING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Es geht darum, eine brennende Kerze in einem durch mehrere Wände angedeuteten Gebäude zu finden und zu löschen. &lt;br /&gt;
&lt;br /&gt;
'''MINI SUMO'''&amp;lt;br&amp;gt;&lt;br /&gt;
Zwei Roboter treten gegeneinander an und versuchen, sich aus dem Ring zu schieben.&lt;br /&gt;
&lt;br /&gt;
'''JUST WALK'''&amp;lt;br&amp;gt;&lt;br /&gt;
Eine Disziplin nur für Laufroboter. Der Roboter muss schnellstmöglich eine Strecke von 1m zurücklegen, wenden, und die Strecke zurück laufen. &lt;br /&gt;
&lt;br /&gt;
'''FREE ROBOTS'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können eigene Roboter dem Publikum vorgestellt werden. &lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://WWW.ROBOTEST.DE/ RoboTest]&lt;br /&gt;
&lt;br /&gt;
==GSF Robot Contest==&lt;br /&gt;
Ein neuer Wettbewerb für Hobbyrobotiker. Er findet am 19.5.07 erstmals statt. Austragungsort ist Fröndenberg (Raum Dortmund/Unna).&lt;br /&gt;
Die Aufgaben sind teilweise angelehnt an die der RobotLiga.&lt;br /&gt;
&lt;br /&gt;
'''LABYRINTH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke mit Abzweigungen und Kreuzungen. Die Linie ist 2cm breit.&lt;br /&gt;
&lt;br /&gt;
'''ROBOT COLLECT'''&amp;lt;br&amp;gt;&lt;br /&gt;
Auf einem Spielfeld von 3x3m sind 30 Objekte in der Größe von Teelichtern verteilt. Zwei Roboter treten gegeneinander an und versuchen, möglichst viele der Objekte in ihre eigene Heimatecke des Spielfeldes zu bringen. &lt;br /&gt;
&lt;br /&gt;
''' ROBOT VOLLEY'''&amp;lt;br&amp;gt;&lt;br /&gt;
Das Spielfeld ist 2x4m groß und wird durch eine Wand (als &amp;quot;Netz&amp;quot;) in zwei Hälfte geteilt, in denen je ein Roboter positioniert wird. In jeder Hälfte befinden sich am Anfang zehn Bälle. Die Roboter müssen nun innerhalb von fünf Minuten versuchen, möglichst viele der Bälle einzusammeln und in die gegenrische Hälfte zu befördern. &lt;br /&gt;
&lt;br /&gt;
'''FIRE FIGHTING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Naqch einem akustischen &amp;quot;Feueralarm&amp;quot; muss eine brennende Kerze in einem durch mehrere Wände angedeuteten Gebäude gefunden und gelöscht werden. &lt;br /&gt;
&lt;br /&gt;
'''MINI SUMO'''&amp;lt;br&amp;gt;&lt;br /&gt;
Zwei Roboter treten gegeneinader an und versuchen, sich aus dem Ring zu schieben.&lt;br /&gt;
&lt;br /&gt;
'''WALKING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Eine Disziplin nur für Laufroboter. Der Roboter muss schnellstmöglich eine Strecke von 100cm zurücklegen, wenden, und die Strecke zurück laufen. &lt;br /&gt;
&lt;br /&gt;
'''FREESTYLE'''&amp;lt;br&amp;gt;&lt;br /&gt;
In dieser Disziplin hat jeder Teilnehmer die Möglichkeit seinen Roboter vorzustellen und zu zeigen was dieser kann.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* http://www.gsf-robot-contest.de/&lt;br /&gt;
&lt;br /&gt;
==RoboKing==&lt;br /&gt;
RoboKing ist ein Wettbewerb für technikinteressierte Schüler, der jährlich von der TU Chemnitz organisiert wird. Jedes Team besteht aus 3 bis 5 Schülern und einem erwachsenem Teamleiter. RoboKing richtet sich ausdrücklich auch an Schülergruppen ohne große Vorkenntnisse. Ziel der Initiative ist, Schüler für ein Studium ingenieurwissenschaftlicher Fächer zu begeistern und zu zeigen, dass auch Schulfächer wie Physik und Informatik eine Menge Spaß machen können. Das Durchschnittsalter der Teilnehmer liegt bei etwa 16 Jahren. Die jüngsten Teilnehmer waren 10 Jahre alt. &lt;br /&gt;
&lt;br /&gt;
Besonderes Highlight des Wettberwebs RoboKing ist zweifellos eine Gutschrift, von denen die Teilnehmer alle Materialien die zum Bau des Roboters benötigt werden, bezahlen können. Dadurch unterscheidet sich dieser Wettbewerb von allen vergleichbaren, denn auf die teilnehmenden Schüler kommen keine Kosten für Material zu. Jedes Jahr werden 25 Teams mit dieser Gutschrift finanziell unterstützt. Ab dem Wettbewerb RoboKing 2007 (startet im Frühjahr 2006) können zusätzlich auch alle Teams teilnehmen, die sich selbst finanzieren.&lt;br /&gt;
&lt;br /&gt;
Die Endrunde des Wettbewerbs wurde 2004 und auf der Hannover Messe ausgetragen. 2006 fand das Finale auf der digital living / CeBIT statt.&lt;br /&gt;
Eine weitere Besonderheit des Wettbewerbs: Jedes Jahr müssen die Teilnehmer eine andere Aufgabenstellung lösen.  Bei den vergangenen Wettbewerben mussten die Roboter sicher durch ein großes Labyrinth navigieren, Tennisbälle einsammeln und in die eigene Basis bringen oder Bauklötzchen durch einen Hindernisparcours mit Graben, Brücke und Schlucht transportieren. Die Teilnehmer haben nach Bekanntgabe der Spielregeln etwa 8 Monate Zeit, die Aufgabe zu lösen.&lt;br /&gt;
&lt;br /&gt;
RoboKing finanziert sich ausschließlich über Spenden von zahlreichen Sponsoren. Verantwortlich für die Organisation sind die Mitarbeiter und Studenten der Professur Prozessautomatisierung der TU Chemnitz.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.roboking.de www.roboking.de]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Praxis]]&lt;/div&gt;</summary>
		<author><name>Chypsylon</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Roboterwettbewerbe&amp;diff=17502</id>
		<title>Roboterwettbewerbe</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Roboterwettbewerbe&amp;diff=17502"/>
				<updated>2011-06-20T15:08:04Z</updated>
		
		<summary type="html">&lt;p&gt;Chypsylon: /* Überblick */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Auf diese Seite werden die bekanntesten nationalen und internationalen Roboterwettbewerbe kurz vorgestellt.&lt;br /&gt;
&lt;br /&gt;
==Überblick==&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |''' Wettbewerb primär für'''||Schüler ||Studenten || Hobbyrobotiker ||1 Person || bis 5 Personen || mehr als 5 Personen || nächster Termin || Ort&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#Robocup_Junior|Robocup Junior]] || X || (X) ||  ||  || X || || 5. bis 11.7.2011 , versch. Nationalbewerbe || WM in Istanbul, Nationale Bewerbe&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#Eurobot|Eurobot]] || X || X ||  ||  ||  || X || 22. bis 27.06.2011 || Russland&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#Carolo_Cup|Carolo Cup]] || || X || || || || X  || 07. / 08.02.2011  || Braunschweig&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#Field_Robot_Event|Field Robot Event]] || || X || || || || X  || 30.6. - 02.07.2011 || Dänemark&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#FIRST_Lego_League|FIRST LEGO Leaue]] || X ||  ||  || ||  || X || 4. - 30.11. in 52 Regionen(Zentraleuropa) ||   &lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RoboCup_Soccer|RoboCup Soccer]] || || X ||  ||  ||  || X   || 04. - 10.07.2011 || Istanbul&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RobotChallenge|RobotChallenge]] || || || X || X || || || 12. / 13.03.2011 || Wien&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#SPURT|SPURT]] || X || || ||  || X ||  || 20.05.2011 || Rostock&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#ELROB|European Land Robot Trial (ELROB)]] ||  || X ||  || ||  || X  || 20. - 24.07.2011 || Leuven, Belgien&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#ROBOCOM|ROBOCOM]] || X ||  ||  ||  || X || || 15.07.2011 || Gelsenkirchen&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RobotLiga|RobotLiga]] || || || X || X || || || keine nach 2007 bekannt ||&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RoboTest|RoboTest]] || || || X || X || || || keine nach 2008 bekannt ||&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RoboKing|RoboKing]] || X || || || || X || || keine nach 2008 bekannt ||&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#GSF_Robot_Contest|GSF Robot Contest]] ||  ||  || X ||X || X ||   || keine nach 2007 bekannt ||&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
= Aktuelle Wettbewerbe =&lt;br /&gt;
&lt;br /&gt;
==Robocup Junior==&lt;br /&gt;
&amp;quot;RoboCupJunior ist eine international organisierte Bildungsinitiative. Sie soll jungen Menschen spielerisch den Umgang mit Robotern näher bringen, soll die Lust auf Naturwissenschaften und Technik wecken und einen spannenden Wissenserwerb im Unterricht ermöglichen. Wichtig bei RoboCupJunior ist die hands-on Komponente. Deshalb bauen und programmieren die Teilnehmerinnen  und Teilnehmer kleine Roboter für spezielle Aufgaben und zeigen diese dann in Präsentationen und Wettbewerben.&lt;br /&gt;
&lt;br /&gt;
Damit das Ganze nicht zu theoretisch behandelt wird, werden auch jedes Jahr nationale und internationale Bewerbe veranstaltet, wo sich die unterschiedlichen Teams messen, aber auch andere Schulen, Länder und Kulturen kennen lernen können.(Zitat robocupjunior.at)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Unterteilt ist das ganze in drei Kategorien:&lt;br /&gt;
*Soccer&lt;br /&gt;
*Rescue&lt;br /&gt;
*Dance&lt;br /&gt;
&lt;br /&gt;
sowie in in zwei Altersgruppen - 10-14 (Primary) sowie unter 19 Jahre (Secondary).&lt;br /&gt;
&lt;br /&gt;
==Eurobot==&lt;br /&gt;
&amp;quot;Seit 1998 ist Eurobot ein internationaler Roboterwettbewerb für Teams von Jugendlichen, Studenten und sonstigen an Robotern interessierten Menschen.&lt;br /&gt;
Eurobot findet stets in Europa statt, ist aber für alle Länder aller Kontinente zugänglich. Im Jahre 2004 nahmen insgesamt 250 Teams aus 21 Länder an diesem technisch/wissenschaftlichen Wettbewerb teil.&amp;quot; (zitiert von www.eurobot.org)&lt;br /&gt;
Aus jedem Land dürfen maximal drei Teams zu den internationalen Finalen fahren. Diese drei Mannschaften müssen sich in nationalen Vorausscheiden qualifizieren. Die Aufgabe wird jedes Jahr neu gestellt. Nur die Rahmenbedingungen bleiben gleich: Ein Match dauert nur 90 Sekunden, es ist also sowohl Schnelligkeit als auch eine intelligente Taktik und Sicherheit gefragt. Die Spielfläche ist etwa 2x3 Meter groß.&lt;br /&gt;
Eurobot findet seit 2005 jedes Jahr in einem anderen Land statt. Der Wettbewerb wird von einer großen Rahmenveranstaltung inklusive Vorträgen und vielen Attraktionen für die zahlreichen Zuschauer ergänzt.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* [http://www.eurobot.org www.eurobot.org]&lt;br /&gt;
* [http://www.eurobot-deutschland.de www.eurobot-deutschland.de]&lt;br /&gt;
&lt;br /&gt;
==Carolo Cup==&lt;br /&gt;
Dieser Wettbewerb für Studenten findet an der TU Braunschweig statt. &lt;br /&gt;
Es treten autonome Modellfahrzeuge im Maßstab 1:10 gegeneinander an. Aufgaben sind das Fahren auf einem Rundkurs (dabei muss die Fahrbahnmarkierung z.B. mit Kameras erkannt werden) und das seitliche Einparken in einer vorgegebenen Parklücke.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* [http://www.carolo-cup.de www.carolo-cup.de]&lt;br /&gt;
&lt;br /&gt;
==Field Robot Event==&lt;br /&gt;
Dieser Wettbewerb für Studenten findet auf einem Maisfeld statt. Die Roboter müssen den Maisreihen folgen und &amp;quot;Unkraut&amp;quot; erkennen, wobei es mehrere Schwierigkeitsgrade gibt (z.B. können einzelne Pflanzen fehlen, oder es gibt größere Unebenheiten im Boden).&lt;br /&gt;
2011 wird der Wettbewerb in Dänemark ausgetragen.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* [http://www.fre2011.dk/ http://www.fre2011.dk/]&lt;br /&gt;
&lt;br /&gt;
==FIRST Lego League==&lt;br /&gt;
Bei der FIRST LEGO League (FLL) handelt es sich um einen internationalen Wettbewerb der von der Firma LEGO und der amerikanischen Stiftung FIRST (For Inspiration and Recognition of Science and Technology) veranstalltet wird. Er findet jährlich auf der ganzen Welt mit regionalen Runden statt und steht jedes Jahr unter einem neuen Motto. &lt;br /&gt;
&lt;br /&gt;
Der Wettbewerb beschäftigt sich immer mit aktuellen naturwissenschaftlichen Problemen, die gesellschaftlich relevant sind. Dabei sollen die Kinder nicht nur einen Roboter programmieren, der Aufgaben auf dem vorgegebenen Spielfeld erfüllt, sondern sich auch tiefgründig mit dem Wettbewerbsthema auseinandersetzen. Die Teilnehmer sollen einen Lösungsansatz für ein aktuelles Probleme erarbeiten, dass mit dem Wettbewerbsthema in Verbindung steht. 2010 heißt das Thema von FLL &amp;quot;Body Forward&amp;quot; und dabei dreht sich alles um Biomedizin.&lt;br /&gt;
&lt;br /&gt;
Bei diesem Wettbewerb dürfen nur Roboter eingesetzt werden, die aus dem LEGO Mindstorms System bestehen. Der Wettbewerb richtet sich vornehmlich an junge Schüler, wie auch das gesamte Mindstorms System. Deshalb dürfen die Teilnehmer maximal 16 Jahre alt sein. Jedes Team wird von einem volljährigen Coach bei der Bewältigung der Aufgaben angeleitet. &lt;br /&gt;
&lt;br /&gt;
Die Wettbewerbsaufgaben werden immer Anfang September veröffentlicht, danach hat jedes Team ca. 8 Wochen Zeit seinen Roboter zu programmieren und den Forschungsauftrag zu erfüllen, um die Ergebnisse dann bei einem der Regionalwettbewerbe zu präsentieren.&lt;br /&gt;
 &lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* [http://www.firstlegoleague.org/ www.firstlegoleague.org]&lt;br /&gt;
* [http://www.firstlegoleague.de/ www.firstlegoleague.de]&lt;br /&gt;
&lt;br /&gt;
==RoboCup Soccer==&lt;br /&gt;
Die Komplexität und Beliebtheit von Fußball (soccer) spielten wesentliche Rollen bei der Motivation der ersten RoboCupspiele Mitte der 90er Jahre. Die Dynamik und die Komplexität von Fußball birgt enorme Herausforderungen für Wissenschaftler, die sich mit der Entwicklung von autonomen Robotern in diesem Bereich beschäftigen: &lt;br /&gt;
&lt;br /&gt;
Individuelle Herausforderungen: jeder Agent/Roboter muss Objekte erkennen, sich selbst lokalisieren, navigieren und den Ball bewegen können. Zu klären sind Fragen wie: was ist in diesem Moment wichtig in meiner Wahrnehmung? Ist meine Position und die der anderen Mitspieler bekannt? &lt;br /&gt;
Kooperation von Agenten: in einer dynamischen Echtzeitumgebung kommt es nicht auf einen einzelnen Spieler an, sondern besonders auf das kooperative Spiel, bei dem auch die Kommunikation eine große Rolle spielt.&lt;br /&gt;
&lt;br /&gt;
Dynamische Echtzeitumgebung mit sich bewegenden Objekten, von denen einige intelligente Agenten sind, die gegen einen spielen. Diese Art von Umgebung ist z.B. auch im Straßenverkehr zu beobachten, wobei die anderen Verkehrsteilnehmer zwar keine Gegner sind, die meine Pläne durchkreuzen wollen, wo aber die Situationen beliebig komplex werden können.&lt;br /&gt;
RoboCupSoccer besteht aus fünf Ligen: der Simulationsliga, der Small-Size Liga, der Middle-Size Liga, der Sony Legged Liga, und der Humanoidliga. &lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.robocup.org www.robocup.org]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==RobotChallenge==&lt;br /&gt;
Die RobotChallenge ist ein österreichischer Wettbewerb für selbstgebaute, autonome Roboter, dessen Ziel es ist für den kreativen Umgang mit innovativen Technologien zu begeistern. Experimente und praktische Erfahrungen lassen Teilnehmer und Zuschauer Wissenschaft hautnah erleben. Dieser Wettbewerb soll zeigen, wie man mit einfachen Mitteln, aber offenem Geiste und Phantasie spannende, zukunftstaugliche Lösungen finden kann. &lt;br /&gt;
Folgende Disiplienen wurden dort schon ausgetragen:&lt;br /&gt;
&lt;br /&gt;
'''Parallel-Slalom'''&amp;lt;br&amp;gt;&lt;br /&gt;
Möglichst schnell muss einer schwarzen Linie auf weißem Untergrund entlang gefahren werden. Reglement im Wesentlichen wie bei RC'05. &lt;br /&gt;
&lt;br /&gt;
'''Parallel-Slalom Enhanced'''&amp;lt;br&amp;gt;&lt;br /&gt;
Wie Parallel-Slalom, jedoch mit Erschwernissen: ein Tunnel, eine kurze Unterbrechung der Linie und ein Hindernis auf der Linie, das umfahren werden muss. &lt;br /&gt;
&lt;br /&gt;
'''Robot-Sumo'''&amp;lt;br&amp;gt;&lt;br /&gt;
Je zwei Roboter treten gegeneinander an und versuchen den jeweils anderen von einer runden Platte zu schieben. Die Platte ist schwarz, der Rand ist durch einen weissen Streifen markiert. Die Regeln entsprechen der internationalen Norm für autonomes Roboter-Sumo. &lt;br /&gt;
&lt;br /&gt;
'''Hindernislauf'''&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Infrarot-Leuchtturm mit definiertem Signal am Ende des Parcours ist möglichst rasch zu erreichen. Auf dem Weg befindliche Hindernisse müssen umfahren werden. Jedes Team kann alternativ auch einen eigenen Leuchtturm als Orientierungshilfe mitbringen. Reglement im Wesentlichen wie bei RC'05, jedoch sind auch komplexere Hindernisse (z.B. Sackgassen) möglich. &lt;br /&gt;
&lt;br /&gt;
'''Puck Collect'''&amp;lt;br&amp;gt;&lt;br /&gt;
Je zwei Roboter - von denen einem die Farbe rot, dem anderen blau zugeteilt wird - treten gegeneinander an. Auf dem Spielfeld sind kleine rote und blaue Scheiben (Pucks) verteilt. Ziel ist es, möglichst schnell alle Pucks der eigenen Farbe einzusammeln und zur eigenen, farblich gekennzeichneten Homebase zu bringen. &lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.robotchallenge.at/ RobotChallenge]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SPURT==&lt;br /&gt;
Der Wettbewerb SPURT (die Abkürzung steht für &amp;quot;Schüler-Projekte um Roboter-Technik&amp;quot;) wird jährlich von der Universität Rostock veranstaltet. SPURT richtet sich an technikinteressierte Schüler. Die zu lösende Aufgabe ist eine Linienverfolgung. Wer am schnellsten die herzförmige Linie abfährt, hat gewonnen.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://spurt.uni-rostock.de/ Wettbewerb SPURT]&lt;br /&gt;
&lt;br /&gt;
==ELROB==&lt;br /&gt;
Die deutsche Bundeswehr läd Firmen und Privatpersonen ein, am European Land-Robot Trial teilzunehmen (findet 2010 zum fünften Mal statt). Die ELROB wird veranstaltet, um einen Überblick über den europäischen State-of-the-art auf dem Gebiet von UGVs (unmanned ground vehicles) mit Fokus auf kurzfristig realisierbare Robotersystemen zu liefern. Hinsichtlich der vorhandenen Fähigkeiten versuchen die Organisatoren, technische Lösungen zu fördern, die den Betrieb unbemannter Fahrzeuge (UGV) verbessern. Repräsentanten aus Militär, Grenzschutz, Spezialkräften, Polizei, Feuerwehr, und Zivilschutzagenturen aus vielen europäischen Ländern werden anwesend sein. Die ELROB wird von einer Ausstellung begleitet, welche eine breite Vielzahl an Robotikaspekten umfasst.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.elrob.org/ Homepage von ELROB]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ROBOCOM==&lt;br /&gt;
Bei diesem Wettbewerb soll eine vorgegebene Aufgabe mit LEGO MINDSTORMS NXT Robotern autonom, d.h. ohne Eingriffe von außen bewältigt werden. Mit diesem Wettbewerb möchte die Fachhochschule Gelsenkirchen in den Schulen den Einsatz moderner Techniken fördern und Schülerinnen und Schüler für ein naturwissenschaftliches Studium interessieren.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* http://www2.fh-gelsenkirchen.de/FH-Sites/FB1/index.php?id=791&lt;br /&gt;
&lt;br /&gt;
= Derzeit nicht regelmäßig stattfindende Wettbewerbe =&lt;br /&gt;
&lt;br /&gt;
==RobotLiga==&lt;br /&gt;
Die RobotLiga fand bis 2007 in Kaiserslautern statt, neuere Termine sind nicht bekannt. Teilnehmen konnten alle interessierten Roboterbastler.&lt;br /&gt;
&lt;br /&gt;
'''LINE SEARCH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke ohne Abzweigungen. Die Linie ist 2cm breit.&lt;br /&gt;
&lt;br /&gt;
'''LABYRINTH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke mit Abzweigungen und Kreuzungen. Die Linie ist 2cm breit.&lt;br /&gt;
&lt;br /&gt;
'''ROBOT COLLECT'''&amp;lt;br&amp;gt;&lt;br /&gt;
Auf einem Spielfeld von 3x3m sind 30 Objekte in der Größe von Teelichtern verteilt. Zwei Roboter treten gegeneinander an und versuchen, möglichst viele der Objekte in ihre eigene Heimatecke des Spielfeldes zu bringen. &lt;br /&gt;
&lt;br /&gt;
''' ROBOT VOLLEY'''&amp;lt;br&amp;gt;&lt;br /&gt;
Das Spielfeld ist 2x4m groß und wird durch eine Wand (als &amp;quot;Netz&amp;quot;) in zwei Hälfte geteilt, in denen je ein Roboter positioniert wird. In jeder Hälfte befinden sich am Anfang zehn Bälle. Die Roboter müssen nun innerhalb von fünf Minuten versuchen, möglichst viele der Bälle einzusammeln und in die gegnerische Hälfte zu befördern. &lt;br /&gt;
&lt;br /&gt;
'''MINI SUMO'''&amp;lt;br&amp;gt;&lt;br /&gt;
Zwei Roboter treten gegeneinander an und versuchen, sich aus dem Ring zu schieben.&lt;br /&gt;
&lt;br /&gt;
'''WALKING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Eine Disziplin nur für Laufroboter. Der Roboter muss schnellstmöglich eine Strecke von 75cm zurücklegen, wenden, und die Strecke zurück laufen. &lt;br /&gt;
&lt;br /&gt;
'''FIRE FIGHTING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Es geht darum, eine brennende Kerze in einem durch mehrere Wände angedeuteten Gebäude zu finden und zu löschen. &lt;br /&gt;
&lt;br /&gt;
'''FREE ROBOTS'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können eigene Roboter dem Publikum vorgestellt werden. &lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.robotliga.de/ RobotLiga]&lt;br /&gt;
&lt;br /&gt;
==RoboTest==&lt;br /&gt;
'''LINE SEARCH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke ohne Abzweigungen. Die Linie ist 2 bis 3cm breit. Es starten immer zwei Roboter gleichzeitig in einem Parallelslalom. Der Wettbewerb läuft in mehreren Runden nach dem KO-System. &lt;br /&gt;
&lt;br /&gt;
'''BLOCKED LINE'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke ohne Abzweigungen. Auf der Strecke stehen Hindernisse, die umfahren werden müssen. &lt;br /&gt;
&lt;br /&gt;
'''LABYRINTH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke mit Abzweigungen und Kreuzungen. Die Linie ist 2 bis 5cm breit.&lt;br /&gt;
&lt;br /&gt;
'''ROBOT COLLECT'''&amp;lt;br&amp;gt;&lt;br /&gt;
Auf einem Spielfeld von 3x3m sind 30 Objekte in der Größe von Teelichtern verteilt. Zwei Roboter treten gegeneinander an und versuchen, innerhalb von drei Minuten möglichst viele der Objekte in ihre eigene Heimatecke des Spielfeldes zu bringen. &lt;br /&gt;
&lt;br /&gt;
''' ROBOT VOLLEY'''&amp;lt;br&amp;gt;&lt;br /&gt;
Das Spielfeld ist 2x4m groß und wird durch eine Wand (als &amp;quot;Netz&amp;quot;) in zwei Hälfte geteilt, in denen je ein Roboter positioniert wird. In jeder Hälfte befinden sich am Anfang zehn Bälle. Die Roboter müssen nun innerhalb von fünf Minuten versuchen, möglichst viele der Bälle einzusammeln und in die gegnerische Hälfte zu befördern. &lt;br /&gt;
&lt;br /&gt;
'''MICRO LINE'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen für sehr kleine Roboter. Die maximale Größe liegt bei 8x8x8cm und 200g. Je kleiner und leichter der Roboter ist, desto mehr Bonuspunkte gibt es.  &lt;br /&gt;
&lt;br /&gt;
'''FIRE FIGHTING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Es geht darum, eine brennende Kerze in einem durch mehrere Wände angedeuteten Gebäude zu finden und zu löschen. &lt;br /&gt;
&lt;br /&gt;
'''MINI SUMO'''&amp;lt;br&amp;gt;&lt;br /&gt;
Zwei Roboter treten gegeneinander an und versuchen, sich aus dem Ring zu schieben.&lt;br /&gt;
&lt;br /&gt;
'''JUST WALK'''&amp;lt;br&amp;gt;&lt;br /&gt;
Eine Disziplin nur für Laufroboter. Der Roboter muss schnellstmöglich eine Strecke von 1m zurücklegen, wenden, und die Strecke zurück laufen. &lt;br /&gt;
&lt;br /&gt;
'''FREE ROBOTS'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können eigene Roboter dem Publikum vorgestellt werden. &lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://WWW.ROBOTEST.DE/ RoboTest]&lt;br /&gt;
&lt;br /&gt;
==GSF Robot Contest==&lt;br /&gt;
Ein neuer Wettbewerb für Hobbyrobotiker. Er findet am 19.5.07 erstmals statt. Austragungsort ist Fröndenberg (Raum Dortmund/Unna).&lt;br /&gt;
Die Aufgaben sind teilweise angelehnt an die der RobotLiga.&lt;br /&gt;
&lt;br /&gt;
'''LABYRINTH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke mit Abzweigungen und Kreuzungen. Die Linie ist 2cm breit.&lt;br /&gt;
&lt;br /&gt;
'''ROBOT COLLECT'''&amp;lt;br&amp;gt;&lt;br /&gt;
Auf einem Spielfeld von 3x3m sind 30 Objekte in der Größe von Teelichtern verteilt. Zwei Roboter treten gegeneinander an und versuchen, möglichst viele der Objekte in ihre eigene Heimatecke des Spielfeldes zu bringen. &lt;br /&gt;
&lt;br /&gt;
''' ROBOT VOLLEY'''&amp;lt;br&amp;gt;&lt;br /&gt;
Das Spielfeld ist 2x4m groß und wird durch eine Wand (als &amp;quot;Netz&amp;quot;) in zwei Hälfte geteilt, in denen je ein Roboter positioniert wird. In jeder Hälfte befinden sich am Anfang zehn Bälle. Die Roboter müssen nun innerhalb von fünf Minuten versuchen, möglichst viele der Bälle einzusammeln und in die gegenrische Hälfte zu befördern. &lt;br /&gt;
&lt;br /&gt;
'''FIRE FIGHTING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Naqch einem akustischen &amp;quot;Feueralarm&amp;quot; muss eine brennende Kerze in einem durch mehrere Wände angedeuteten Gebäude gefunden und gelöscht werden. &lt;br /&gt;
&lt;br /&gt;
'''MINI SUMO'''&amp;lt;br&amp;gt;&lt;br /&gt;
Zwei Roboter treten gegeneinader an und versuchen, sich aus dem Ring zu schieben.&lt;br /&gt;
&lt;br /&gt;
'''WALKING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Eine Disziplin nur für Laufroboter. Der Roboter muss schnellstmöglich eine Strecke von 100cm zurücklegen, wenden, und die Strecke zurück laufen. &lt;br /&gt;
&lt;br /&gt;
'''FREESTYLE'''&amp;lt;br&amp;gt;&lt;br /&gt;
In dieser Disziplin hat jeder Teilnehmer die Möglichkeit seinen Roboter vorzustellen und zu zeigen was dieser kann.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* http://www.gsf-robot-contest.de/&lt;br /&gt;
&lt;br /&gt;
==RoboKing==&lt;br /&gt;
RoboKing ist ein Wettbewerb für technikinteressierte Schüler, der jährlich von der TU Chemnitz organisiert wird. Jedes Team besteht aus 3 bis 5 Schülern und einem erwachsenem Teamleiter. RoboKing richtet sich ausdrücklich auch an Schülergruppen ohne große Vorkenntnisse. Ziel der Initiative ist, Schüler für ein Studium ingenieurwissenschaftlicher Fächer zu begeistern und zu zeigen, dass auch Schulfächer wie Physik und Informatik eine Menge Spaß machen können. Das Durchschnittsalter der Teilnehmer liegt bei etwa 16 Jahren. Die jüngsten Teilnehmer waren 10 Jahre alt. &lt;br /&gt;
&lt;br /&gt;
Besonderes Highlight des Wettberwebs RoboKing ist zweifellos eine Gutschrift, von denen die Teilnehmer alle Materialien die zum Bau des Roboters benötigt werden, bezahlen können. Dadurch unterscheidet sich dieser Wettbewerb von allen vergleichbaren, denn auf die teilnehmenden Schüler kommen keine Kosten für Material zu. Jedes Jahr werden 25 Teams mit dieser Gutschrift finanziell unterstützt. Ab dem Wettbewerb RoboKing 2007 (startet im Frühjahr 2006) können zusätzlich auch alle Teams teilnehmen, die sich selbst finanzieren.&lt;br /&gt;
&lt;br /&gt;
Die Endrunde des Wettbewerbs wurde 2004 und auf der Hannover Messe ausgetragen. 2006 fand das Finale auf der digital living / CeBIT statt.&lt;br /&gt;
Eine weitere Besonderheit des Wettbewerbs: Jedes Jahr müssen die Teilnehmer eine andere Aufgabenstellung lösen.  Bei den vergangenen Wettbewerben mussten die Roboter sicher durch ein großes Labyrinth navigieren, Tennisbälle einsammeln und in die eigene Basis bringen oder Bauklötzchen durch einen Hindernisparcours mit Graben, Brücke und Schlucht transportieren. Die Teilnehmer haben nach Bekanntgabe der Spielregeln etwa 8 Monate Zeit, die Aufgabe zu lösen.&lt;br /&gt;
&lt;br /&gt;
RoboKing finanziert sich ausschließlich über Spenden von zahlreichen Sponsoren. Verantwortlich für die Organisation sind die Mitarbeiter und Studenten der Professur Prozessautomatisierung der TU Chemnitz.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.roboking.de www.roboking.de]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Praxis]]&lt;/div&gt;</summary>
		<author><name>Chypsylon</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Roboterwettbewerbe&amp;diff=17501</id>
		<title>Roboterwettbewerbe</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Roboterwettbewerbe&amp;diff=17501"/>
				<updated>2011-06-20T15:06:19Z</updated>
		
		<summary type="html">&lt;p&gt;Chypsylon: /* Robocup Junior */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Auf diese Seite werden die bekanntesten nationalen und internationalen Roboterwettbewerbe kurz vorgestellt.&lt;br /&gt;
&lt;br /&gt;
==Überblick==&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |''' Wettbewerb primär für'''||Schüler ||Studenten || Hobbyrobotiker ||1 Person || bis 5 Personen || mehr als 5 Personen || nächster Termin || Ort&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#Robocup_Junior|Robocup Junior]] || X ||  ||  ||  || X || || 5. bis 11.7.2011 , versch. Nationalbewerbe || WM in Istanbul, Nationale Bewerbe&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#Eurobot|Eurobot]] || X || X ||  ||  ||  || X || 22. bis 27.06.2011 || Russland&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#Carolo_Cup|Carolo Cup]] || || X || || || || X  || 07. / 08.02.2011  || Braunschweig&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#Field_Robot_Event|Field Robot Event]] || || X || || || || X  || 30.6. - 02.07.2011 || Dänemark&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#FIRST_Lego_League|FIRST LEGO Leaue]] || X ||  ||  || ||  || X || 4. - 30.11. in 52 Regionen(Zentraleuropa) ||   &lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RoboCup_Soccer|RoboCup Soccer]] || || X ||  ||  ||  || X   || 04. - 10.07.2011 || Istanbul&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RobotChallenge|RobotChallenge]] || || || X || X || || || 12. / 13.03.2011 || Wien&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#SPURT|SPURT]] || X || || ||  || X ||  || 20.05.2011 || Rostock&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#ELROB|European Land Robot Trial (ELROB)]] ||  || X ||  || ||  || X  || 20. - 24.07.2011 || Leuven, Belgien&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#ROBOCOM|ROBOCOM]] || X ||  ||  ||  || X || || 15.07.2011 || Gelsenkirchen&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RobotLiga|RobotLiga]] || || || X || X || || || keine nach 2007 bekannt ||&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RoboTest|RoboTest]] || || || X || X || || || keine nach 2008 bekannt ||&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RoboKing|RoboKing]] || X || || || || X || || keine nach 2008 bekannt ||&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#GSF_Robot_Contest|GSF Robot Contest]] ||  ||  || X ||X || X ||   || keine nach 2007 bekannt ||&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
= Aktuelle Wettbewerbe =&lt;br /&gt;
&lt;br /&gt;
==Robocup Junior==&lt;br /&gt;
&amp;quot;RoboCupJunior ist eine international organisierte Bildungsinitiative. Sie soll jungen Menschen spielerisch den Umgang mit Robotern näher bringen, soll die Lust auf Naturwissenschaften und Technik wecken und einen spannenden Wissenserwerb im Unterricht ermöglichen. Wichtig bei RoboCupJunior ist die hands-on Komponente. Deshalb bauen und programmieren die Teilnehmerinnen  und Teilnehmer kleine Roboter für spezielle Aufgaben und zeigen diese dann in Präsentationen und Wettbewerben.&lt;br /&gt;
&lt;br /&gt;
Damit das Ganze nicht zu theoretisch behandelt wird, werden auch jedes Jahr nationale und internationale Bewerbe veranstaltet, wo sich die unterschiedlichen Teams messen, aber auch andere Schulen, Länder und Kulturen kennen lernen können.(Zitat robocupjunior.at)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Unterteilt ist das ganze in drei Kategorien:&lt;br /&gt;
*Soccer&lt;br /&gt;
*Rescue&lt;br /&gt;
*Dance&lt;br /&gt;
&lt;br /&gt;
sowie in in zwei Altersgruppen - 10-14 (Primary) sowie unter 19 Jahre (Secondary).&lt;br /&gt;
&lt;br /&gt;
==Eurobot==&lt;br /&gt;
&amp;quot;Seit 1998 ist Eurobot ein internationaler Roboterwettbewerb für Teams von Jugendlichen, Studenten und sonstigen an Robotern interessierten Menschen.&lt;br /&gt;
Eurobot findet stets in Europa statt, ist aber für alle Länder aller Kontinente zugänglich. Im Jahre 2004 nahmen insgesamt 250 Teams aus 21 Länder an diesem technisch/wissenschaftlichen Wettbewerb teil.&amp;quot; (zitiert von www.eurobot.org)&lt;br /&gt;
Aus jedem Land dürfen maximal drei Teams zu den internationalen Finalen fahren. Diese drei Mannschaften müssen sich in nationalen Vorausscheiden qualifizieren. Die Aufgabe wird jedes Jahr neu gestellt. Nur die Rahmenbedingungen bleiben gleich: Ein Match dauert nur 90 Sekunden, es ist also sowohl Schnelligkeit als auch eine intelligente Taktik und Sicherheit gefragt. Die Spielfläche ist etwa 2x3 Meter groß.&lt;br /&gt;
Eurobot findet seit 2005 jedes Jahr in einem anderen Land statt. Der Wettbewerb wird von einer großen Rahmenveranstaltung inklusive Vorträgen und vielen Attraktionen für die zahlreichen Zuschauer ergänzt.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* [http://www.eurobot.org www.eurobot.org]&lt;br /&gt;
* [http://www.eurobot-deutschland.de www.eurobot-deutschland.de]&lt;br /&gt;
&lt;br /&gt;
==Carolo Cup==&lt;br /&gt;
Dieser Wettbewerb für Studenten findet an der TU Braunschweig statt. &lt;br /&gt;
Es treten autonome Modellfahrzeuge im Maßstab 1:10 gegeneinander an. Aufgaben sind das Fahren auf einem Rundkurs (dabei muss die Fahrbahnmarkierung z.B. mit Kameras erkannt werden) und das seitliche Einparken in einer vorgegebenen Parklücke.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* [http://www.carolo-cup.de www.carolo-cup.de]&lt;br /&gt;
&lt;br /&gt;
==Field Robot Event==&lt;br /&gt;
Dieser Wettbewerb für Studenten findet auf einem Maisfeld statt. Die Roboter müssen den Maisreihen folgen und &amp;quot;Unkraut&amp;quot; erkennen, wobei es mehrere Schwierigkeitsgrade gibt (z.B. können einzelne Pflanzen fehlen, oder es gibt größere Unebenheiten im Boden).&lt;br /&gt;
2011 wird der Wettbewerb in Dänemark ausgetragen.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* [http://www.fre2011.dk/ http://www.fre2011.dk/]&lt;br /&gt;
&lt;br /&gt;
==FIRST Lego League==&lt;br /&gt;
Bei der FIRST LEGO League (FLL) handelt es sich um einen internationalen Wettbewerb der von der Firma LEGO und der amerikanischen Stiftung FIRST (For Inspiration and Recognition of Science and Technology) veranstalltet wird. Er findet jährlich auf der ganzen Welt mit regionalen Runden statt und steht jedes Jahr unter einem neuen Motto. &lt;br /&gt;
&lt;br /&gt;
Der Wettbewerb beschäftigt sich immer mit aktuellen naturwissenschaftlichen Problemen, die gesellschaftlich relevant sind. Dabei sollen die Kinder nicht nur einen Roboter programmieren, der Aufgaben auf dem vorgegebenen Spielfeld erfüllt, sondern sich auch tiefgründig mit dem Wettbewerbsthema auseinandersetzen. Die Teilnehmer sollen einen Lösungsansatz für ein aktuelles Probleme erarbeiten, dass mit dem Wettbewerbsthema in Verbindung steht. 2010 heißt das Thema von FLL &amp;quot;Body Forward&amp;quot; und dabei dreht sich alles um Biomedizin.&lt;br /&gt;
&lt;br /&gt;
Bei diesem Wettbewerb dürfen nur Roboter eingesetzt werden, die aus dem LEGO Mindstorms System bestehen. Der Wettbewerb richtet sich vornehmlich an junge Schüler, wie auch das gesamte Mindstorms System. Deshalb dürfen die Teilnehmer maximal 16 Jahre alt sein. Jedes Team wird von einem volljährigen Coach bei der Bewältigung der Aufgaben angeleitet. &lt;br /&gt;
&lt;br /&gt;
Die Wettbewerbsaufgaben werden immer Anfang September veröffentlicht, danach hat jedes Team ca. 8 Wochen Zeit seinen Roboter zu programmieren und den Forschungsauftrag zu erfüllen, um die Ergebnisse dann bei einem der Regionalwettbewerbe zu präsentieren.&lt;br /&gt;
 &lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* [http://www.firstlegoleague.org/ www.firstlegoleague.org]&lt;br /&gt;
* [http://www.firstlegoleague.de/ www.firstlegoleague.de]&lt;br /&gt;
&lt;br /&gt;
==RoboCup Soccer==&lt;br /&gt;
Die Komplexität und Beliebtheit von Fußball (soccer) spielten wesentliche Rollen bei der Motivation der ersten RoboCupspiele Mitte der 90er Jahre. Die Dynamik und die Komplexität von Fußball birgt enorme Herausforderungen für Wissenschaftler, die sich mit der Entwicklung von autonomen Robotern in diesem Bereich beschäftigen: &lt;br /&gt;
&lt;br /&gt;
Individuelle Herausforderungen: jeder Agent/Roboter muss Objekte erkennen, sich selbst lokalisieren, navigieren und den Ball bewegen können. Zu klären sind Fragen wie: was ist in diesem Moment wichtig in meiner Wahrnehmung? Ist meine Position und die der anderen Mitspieler bekannt? &lt;br /&gt;
Kooperation von Agenten: in einer dynamischen Echtzeitumgebung kommt es nicht auf einen einzelnen Spieler an, sondern besonders auf das kooperative Spiel, bei dem auch die Kommunikation eine große Rolle spielt.&lt;br /&gt;
&lt;br /&gt;
Dynamische Echtzeitumgebung mit sich bewegenden Objekten, von denen einige intelligente Agenten sind, die gegen einen spielen. Diese Art von Umgebung ist z.B. auch im Straßenverkehr zu beobachten, wobei die anderen Verkehrsteilnehmer zwar keine Gegner sind, die meine Pläne durchkreuzen wollen, wo aber die Situationen beliebig komplex werden können.&lt;br /&gt;
RoboCupSoccer besteht aus fünf Ligen: der Simulationsliga, der Small-Size Liga, der Middle-Size Liga, der Sony Legged Liga, und der Humanoidliga. &lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.robocup.org www.robocup.org]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==RobotChallenge==&lt;br /&gt;
Die RobotChallenge ist ein österreichischer Wettbewerb für selbstgebaute, autonome Roboter, dessen Ziel es ist für den kreativen Umgang mit innovativen Technologien zu begeistern. Experimente und praktische Erfahrungen lassen Teilnehmer und Zuschauer Wissenschaft hautnah erleben. Dieser Wettbewerb soll zeigen, wie man mit einfachen Mitteln, aber offenem Geiste und Phantasie spannende, zukunftstaugliche Lösungen finden kann. &lt;br /&gt;
Folgende Disiplienen wurden dort schon ausgetragen:&lt;br /&gt;
&lt;br /&gt;
'''Parallel-Slalom'''&amp;lt;br&amp;gt;&lt;br /&gt;
Möglichst schnell muss einer schwarzen Linie auf weißem Untergrund entlang gefahren werden. Reglement im Wesentlichen wie bei RC'05. &lt;br /&gt;
&lt;br /&gt;
'''Parallel-Slalom Enhanced'''&amp;lt;br&amp;gt;&lt;br /&gt;
Wie Parallel-Slalom, jedoch mit Erschwernissen: ein Tunnel, eine kurze Unterbrechung der Linie und ein Hindernis auf der Linie, das umfahren werden muss. &lt;br /&gt;
&lt;br /&gt;
'''Robot-Sumo'''&amp;lt;br&amp;gt;&lt;br /&gt;
Je zwei Roboter treten gegeneinander an und versuchen den jeweils anderen von einer runden Platte zu schieben. Die Platte ist schwarz, der Rand ist durch einen weissen Streifen markiert. Die Regeln entsprechen der internationalen Norm für autonomes Roboter-Sumo. &lt;br /&gt;
&lt;br /&gt;
'''Hindernislauf'''&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Infrarot-Leuchtturm mit definiertem Signal am Ende des Parcours ist möglichst rasch zu erreichen. Auf dem Weg befindliche Hindernisse müssen umfahren werden. Jedes Team kann alternativ auch einen eigenen Leuchtturm als Orientierungshilfe mitbringen. Reglement im Wesentlichen wie bei RC'05, jedoch sind auch komplexere Hindernisse (z.B. Sackgassen) möglich. &lt;br /&gt;
&lt;br /&gt;
'''Puck Collect'''&amp;lt;br&amp;gt;&lt;br /&gt;
Je zwei Roboter - von denen einem die Farbe rot, dem anderen blau zugeteilt wird - treten gegeneinander an. Auf dem Spielfeld sind kleine rote und blaue Scheiben (Pucks) verteilt. Ziel ist es, möglichst schnell alle Pucks der eigenen Farbe einzusammeln und zur eigenen, farblich gekennzeichneten Homebase zu bringen. &lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.robotchallenge.at/ RobotChallenge]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SPURT==&lt;br /&gt;
Der Wettbewerb SPURT (die Abkürzung steht für &amp;quot;Schüler-Projekte um Roboter-Technik&amp;quot;) wird jährlich von der Universität Rostock veranstaltet. SPURT richtet sich an technikinteressierte Schüler. Die zu lösende Aufgabe ist eine Linienverfolgung. Wer am schnellsten die herzförmige Linie abfährt, hat gewonnen.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://spurt.uni-rostock.de/ Wettbewerb SPURT]&lt;br /&gt;
&lt;br /&gt;
==ELROB==&lt;br /&gt;
Die deutsche Bundeswehr läd Firmen und Privatpersonen ein, am European Land-Robot Trial teilzunehmen (findet 2010 zum fünften Mal statt). Die ELROB wird veranstaltet, um einen Überblick über den europäischen State-of-the-art auf dem Gebiet von UGVs (unmanned ground vehicles) mit Fokus auf kurzfristig realisierbare Robotersystemen zu liefern. Hinsichtlich der vorhandenen Fähigkeiten versuchen die Organisatoren, technische Lösungen zu fördern, die den Betrieb unbemannter Fahrzeuge (UGV) verbessern. Repräsentanten aus Militär, Grenzschutz, Spezialkräften, Polizei, Feuerwehr, und Zivilschutzagenturen aus vielen europäischen Ländern werden anwesend sein. Die ELROB wird von einer Ausstellung begleitet, welche eine breite Vielzahl an Robotikaspekten umfasst.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.elrob.org/ Homepage von ELROB]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ROBOCOM==&lt;br /&gt;
Bei diesem Wettbewerb soll eine vorgegebene Aufgabe mit LEGO MINDSTORMS NXT Robotern autonom, d.h. ohne Eingriffe von außen bewältigt werden. Mit diesem Wettbewerb möchte die Fachhochschule Gelsenkirchen in den Schulen den Einsatz moderner Techniken fördern und Schülerinnen und Schüler für ein naturwissenschaftliches Studium interessieren.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* http://www2.fh-gelsenkirchen.de/FH-Sites/FB1/index.php?id=791&lt;br /&gt;
&lt;br /&gt;
= Derzeit nicht regelmäßig stattfindende Wettbewerbe =&lt;br /&gt;
&lt;br /&gt;
==RobotLiga==&lt;br /&gt;
Die RobotLiga fand bis 2007 in Kaiserslautern statt, neuere Termine sind nicht bekannt. Teilnehmen konnten alle interessierten Roboterbastler.&lt;br /&gt;
&lt;br /&gt;
'''LINE SEARCH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke ohne Abzweigungen. Die Linie ist 2cm breit.&lt;br /&gt;
&lt;br /&gt;
'''LABYRINTH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke mit Abzweigungen und Kreuzungen. Die Linie ist 2cm breit.&lt;br /&gt;
&lt;br /&gt;
'''ROBOT COLLECT'''&amp;lt;br&amp;gt;&lt;br /&gt;
Auf einem Spielfeld von 3x3m sind 30 Objekte in der Größe von Teelichtern verteilt. Zwei Roboter treten gegeneinander an und versuchen, möglichst viele der Objekte in ihre eigene Heimatecke des Spielfeldes zu bringen. &lt;br /&gt;
&lt;br /&gt;
''' ROBOT VOLLEY'''&amp;lt;br&amp;gt;&lt;br /&gt;
Das Spielfeld ist 2x4m groß und wird durch eine Wand (als &amp;quot;Netz&amp;quot;) in zwei Hälfte geteilt, in denen je ein Roboter positioniert wird. In jeder Hälfte befinden sich am Anfang zehn Bälle. Die Roboter müssen nun innerhalb von fünf Minuten versuchen, möglichst viele der Bälle einzusammeln und in die gegnerische Hälfte zu befördern. &lt;br /&gt;
&lt;br /&gt;
'''MINI SUMO'''&amp;lt;br&amp;gt;&lt;br /&gt;
Zwei Roboter treten gegeneinander an und versuchen, sich aus dem Ring zu schieben.&lt;br /&gt;
&lt;br /&gt;
'''WALKING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Eine Disziplin nur für Laufroboter. Der Roboter muss schnellstmöglich eine Strecke von 75cm zurücklegen, wenden, und die Strecke zurück laufen. &lt;br /&gt;
&lt;br /&gt;
'''FIRE FIGHTING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Es geht darum, eine brennende Kerze in einem durch mehrere Wände angedeuteten Gebäude zu finden und zu löschen. &lt;br /&gt;
&lt;br /&gt;
'''FREE ROBOTS'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können eigene Roboter dem Publikum vorgestellt werden. &lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.robotliga.de/ RobotLiga]&lt;br /&gt;
&lt;br /&gt;
==RoboTest==&lt;br /&gt;
'''LINE SEARCH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke ohne Abzweigungen. Die Linie ist 2 bis 3cm breit. Es starten immer zwei Roboter gleichzeitig in einem Parallelslalom. Der Wettbewerb läuft in mehreren Runden nach dem KO-System. &lt;br /&gt;
&lt;br /&gt;
'''BLOCKED LINE'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke ohne Abzweigungen. Auf der Strecke stehen Hindernisse, die umfahren werden müssen. &lt;br /&gt;
&lt;br /&gt;
'''LABYRINTH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke mit Abzweigungen und Kreuzungen. Die Linie ist 2 bis 5cm breit.&lt;br /&gt;
&lt;br /&gt;
'''ROBOT COLLECT'''&amp;lt;br&amp;gt;&lt;br /&gt;
Auf einem Spielfeld von 3x3m sind 30 Objekte in der Größe von Teelichtern verteilt. Zwei Roboter treten gegeneinander an und versuchen, innerhalb von drei Minuten möglichst viele der Objekte in ihre eigene Heimatecke des Spielfeldes zu bringen. &lt;br /&gt;
&lt;br /&gt;
''' ROBOT VOLLEY'''&amp;lt;br&amp;gt;&lt;br /&gt;
Das Spielfeld ist 2x4m groß und wird durch eine Wand (als &amp;quot;Netz&amp;quot;) in zwei Hälfte geteilt, in denen je ein Roboter positioniert wird. In jeder Hälfte befinden sich am Anfang zehn Bälle. Die Roboter müssen nun innerhalb von fünf Minuten versuchen, möglichst viele der Bälle einzusammeln und in die gegnerische Hälfte zu befördern. &lt;br /&gt;
&lt;br /&gt;
'''MICRO LINE'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen für sehr kleine Roboter. Die maximale Größe liegt bei 8x8x8cm und 200g. Je kleiner und leichter der Roboter ist, desto mehr Bonuspunkte gibt es.  &lt;br /&gt;
&lt;br /&gt;
'''FIRE FIGHTING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Es geht darum, eine brennende Kerze in einem durch mehrere Wände angedeuteten Gebäude zu finden und zu löschen. &lt;br /&gt;
&lt;br /&gt;
'''MINI SUMO'''&amp;lt;br&amp;gt;&lt;br /&gt;
Zwei Roboter treten gegeneinander an und versuchen, sich aus dem Ring zu schieben.&lt;br /&gt;
&lt;br /&gt;
'''JUST WALK'''&amp;lt;br&amp;gt;&lt;br /&gt;
Eine Disziplin nur für Laufroboter. Der Roboter muss schnellstmöglich eine Strecke von 1m zurücklegen, wenden, und die Strecke zurück laufen. &lt;br /&gt;
&lt;br /&gt;
'''FREE ROBOTS'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können eigene Roboter dem Publikum vorgestellt werden. &lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://WWW.ROBOTEST.DE/ RoboTest]&lt;br /&gt;
&lt;br /&gt;
==GSF Robot Contest==&lt;br /&gt;
Ein neuer Wettbewerb für Hobbyrobotiker. Er findet am 19.5.07 erstmals statt. Austragungsort ist Fröndenberg (Raum Dortmund/Unna).&lt;br /&gt;
Die Aufgaben sind teilweise angelehnt an die der RobotLiga.&lt;br /&gt;
&lt;br /&gt;
'''LABYRINTH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke mit Abzweigungen und Kreuzungen. Die Linie ist 2cm breit.&lt;br /&gt;
&lt;br /&gt;
'''ROBOT COLLECT'''&amp;lt;br&amp;gt;&lt;br /&gt;
Auf einem Spielfeld von 3x3m sind 30 Objekte in der Größe von Teelichtern verteilt. Zwei Roboter treten gegeneinander an und versuchen, möglichst viele der Objekte in ihre eigene Heimatecke des Spielfeldes zu bringen. &lt;br /&gt;
&lt;br /&gt;
''' ROBOT VOLLEY'''&amp;lt;br&amp;gt;&lt;br /&gt;
Das Spielfeld ist 2x4m groß und wird durch eine Wand (als &amp;quot;Netz&amp;quot;) in zwei Hälfte geteilt, in denen je ein Roboter positioniert wird. In jeder Hälfte befinden sich am Anfang zehn Bälle. Die Roboter müssen nun innerhalb von fünf Minuten versuchen, möglichst viele der Bälle einzusammeln und in die gegenrische Hälfte zu befördern. &lt;br /&gt;
&lt;br /&gt;
'''FIRE FIGHTING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Naqch einem akustischen &amp;quot;Feueralarm&amp;quot; muss eine brennende Kerze in einem durch mehrere Wände angedeuteten Gebäude gefunden und gelöscht werden. &lt;br /&gt;
&lt;br /&gt;
'''MINI SUMO'''&amp;lt;br&amp;gt;&lt;br /&gt;
Zwei Roboter treten gegeneinader an und versuchen, sich aus dem Ring zu schieben.&lt;br /&gt;
&lt;br /&gt;
'''WALKING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Eine Disziplin nur für Laufroboter. Der Roboter muss schnellstmöglich eine Strecke von 100cm zurücklegen, wenden, und die Strecke zurück laufen. &lt;br /&gt;
&lt;br /&gt;
'''FREESTYLE'''&amp;lt;br&amp;gt;&lt;br /&gt;
In dieser Disziplin hat jeder Teilnehmer die Möglichkeit seinen Roboter vorzustellen und zu zeigen was dieser kann.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* http://www.gsf-robot-contest.de/&lt;br /&gt;
&lt;br /&gt;
==RoboKing==&lt;br /&gt;
RoboKing ist ein Wettbewerb für technikinteressierte Schüler, der jährlich von der TU Chemnitz organisiert wird. Jedes Team besteht aus 3 bis 5 Schülern und einem erwachsenem Teamleiter. RoboKing richtet sich ausdrücklich auch an Schülergruppen ohne große Vorkenntnisse. Ziel der Initiative ist, Schüler für ein Studium ingenieurwissenschaftlicher Fächer zu begeistern und zu zeigen, dass auch Schulfächer wie Physik und Informatik eine Menge Spaß machen können. Das Durchschnittsalter der Teilnehmer liegt bei etwa 16 Jahren. Die jüngsten Teilnehmer waren 10 Jahre alt. &lt;br /&gt;
&lt;br /&gt;
Besonderes Highlight des Wettberwebs RoboKing ist zweifellos eine Gutschrift, von denen die Teilnehmer alle Materialien die zum Bau des Roboters benötigt werden, bezahlen können. Dadurch unterscheidet sich dieser Wettbewerb von allen vergleichbaren, denn auf die teilnehmenden Schüler kommen keine Kosten für Material zu. Jedes Jahr werden 25 Teams mit dieser Gutschrift finanziell unterstützt. Ab dem Wettbewerb RoboKing 2007 (startet im Frühjahr 2006) können zusätzlich auch alle Teams teilnehmen, die sich selbst finanzieren.&lt;br /&gt;
&lt;br /&gt;
Die Endrunde des Wettbewerbs wurde 2004 und auf der Hannover Messe ausgetragen. 2006 fand das Finale auf der digital living / CeBIT statt.&lt;br /&gt;
Eine weitere Besonderheit des Wettbewerbs: Jedes Jahr müssen die Teilnehmer eine andere Aufgabenstellung lösen.  Bei den vergangenen Wettbewerben mussten die Roboter sicher durch ein großes Labyrinth navigieren, Tennisbälle einsammeln und in die eigene Basis bringen oder Bauklötzchen durch einen Hindernisparcours mit Graben, Brücke und Schlucht transportieren. Die Teilnehmer haben nach Bekanntgabe der Spielregeln etwa 8 Monate Zeit, die Aufgabe zu lösen.&lt;br /&gt;
&lt;br /&gt;
RoboKing finanziert sich ausschließlich über Spenden von zahlreichen Sponsoren. Verantwortlich für die Organisation sind die Mitarbeiter und Studenten der Professur Prozessautomatisierung der TU Chemnitz.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.roboking.de www.roboking.de]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Praxis]]&lt;/div&gt;</summary>
		<author><name>Chypsylon</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Roboterwettbewerbe&amp;diff=17500</id>
		<title>Roboterwettbewerbe</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Roboterwettbewerbe&amp;diff=17500"/>
				<updated>2011-06-20T15:03:36Z</updated>
		
		<summary type="html">&lt;p&gt;Chypsylon: /* Aktuelle Wettbewerbe */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Auf diese Seite werden die bekanntesten nationalen und internationalen Roboterwettbewerbe kurz vorgestellt.&lt;br /&gt;
&lt;br /&gt;
==Überblick==&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |''' Wettbewerb primär für'''||Schüler ||Studenten || Hobbyrobotiker ||1 Person || bis 5 Personen || mehr als 5 Personen || nächster Termin || Ort&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#Robocup_Junior|Robocup Junior]] || X ||  ||  ||  || X || || 5. bis 11.7.2011 , versch. Nationalbewerbe || WM in Istanbul, Nationale Bewerbe&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#Eurobot|Eurobot]] || X || X ||  ||  ||  || X || 22. bis 27.06.2011 || Russland&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#Carolo_Cup|Carolo Cup]] || || X || || || || X  || 07. / 08.02.2011  || Braunschweig&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#Field_Robot_Event|Field Robot Event]] || || X || || || || X  || 30.6. - 02.07.2011 || Dänemark&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#FIRST_Lego_League|FIRST LEGO Leaue]] || X ||  ||  || ||  || X || 4. - 30.11. in 52 Regionen(Zentraleuropa) ||   &lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RoboCup_Soccer|RoboCup Soccer]] || || X ||  ||  ||  || X   || 04. - 10.07.2011 || Istanbul&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RobotChallenge|RobotChallenge]] || || || X || X || || || 12. / 13.03.2011 || Wien&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#SPURT|SPURT]] || X || || ||  || X ||  || 20.05.2011 || Rostock&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#ELROB|European Land Robot Trial (ELROB)]] ||  || X ||  || ||  || X  || 20. - 24.07.2011 || Leuven, Belgien&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#ROBOCOM|ROBOCOM]] || X ||  ||  ||  || X || || 15.07.2011 || Gelsenkirchen&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RobotLiga|RobotLiga]] || || || X || X || || || keine nach 2007 bekannt ||&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RoboTest|RoboTest]] || || || X || X || || || keine nach 2008 bekannt ||&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RoboKing|RoboKing]] || X || || || || X || || keine nach 2008 bekannt ||&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#GSF_Robot_Contest|GSF Robot Contest]] ||  ||  || X ||X || X ||   || keine nach 2007 bekannt ||&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
= Aktuelle Wettbewerbe =&lt;br /&gt;
&lt;br /&gt;
==Robocup Junior==&lt;br /&gt;
&amp;quot;RoboCupJunior ist eine international organisierte Bildungsinitiative. Sie soll jungen Menschen spielerisch den Umgang mit Robotern näher bringen, soll die Lust auf Naturwissenschaften und Technik wecken und einen spannenden Wissenserwerb im Unterricht ermöglichen. Wichtig bei RoboCupJunior ist die hands-on Komponente. Deshalb bauen und programmieren die Teilnehmerinnen  und Teilnehmer kleine Roboter für spezielle Aufgaben und zeigen diese dann in Präsentationen und Wettbewerben.&lt;br /&gt;
&lt;br /&gt;
Damit das Ganze nicht zu theoretisch behandelt wird, werden auch jedes Jahr nationale und internationale Bewerbe veranstaltet, wo sich die unterschiedlichen Teams messen, aber auch andere Schulen, Länder und Kulturen kennen lernen können.(Zitat robocupjunior.at)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Unterteilt ist das ganze in drei Kategorien:&lt;br /&gt;
*Soccer&lt;br /&gt;
*Rescue&lt;br /&gt;
*Dance&lt;br /&gt;
&lt;br /&gt;
sowie in in zwei Altersgruppen.&lt;br /&gt;
&lt;br /&gt;
==Eurobot==&lt;br /&gt;
&amp;quot;Seit 1998 ist Eurobot ein internationaler Roboterwettbewerb für Teams von Jugendlichen, Studenten und sonstigen an Robotern interessierten Menschen.&lt;br /&gt;
Eurobot findet stets in Europa statt, ist aber für alle Länder aller Kontinente zugänglich. Im Jahre 2004 nahmen insgesamt 250 Teams aus 21 Länder an diesem technisch/wissenschaftlichen Wettbewerb teil.&amp;quot; (zitiert von www.eurobot.org)&lt;br /&gt;
Aus jedem Land dürfen maximal drei Teams zu den internationalen Finalen fahren. Diese drei Mannschaften müssen sich in nationalen Vorausscheiden qualifizieren. Die Aufgabe wird jedes Jahr neu gestellt. Nur die Rahmenbedingungen bleiben gleich: Ein Match dauert nur 90 Sekunden, es ist also sowohl Schnelligkeit als auch eine intelligente Taktik und Sicherheit gefragt. Die Spielfläche ist etwa 2x3 Meter groß.&lt;br /&gt;
Eurobot findet seit 2005 jedes Jahr in einem anderen Land statt. Der Wettbewerb wird von einer großen Rahmenveranstaltung inklusive Vorträgen und vielen Attraktionen für die zahlreichen Zuschauer ergänzt.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* [http://www.eurobot.org www.eurobot.org]&lt;br /&gt;
* [http://www.eurobot-deutschland.de www.eurobot-deutschland.de]&lt;br /&gt;
&lt;br /&gt;
==Carolo Cup==&lt;br /&gt;
Dieser Wettbewerb für Studenten findet an der TU Braunschweig statt. &lt;br /&gt;
Es treten autonome Modellfahrzeuge im Maßstab 1:10 gegeneinander an. Aufgaben sind das Fahren auf einem Rundkurs (dabei muss die Fahrbahnmarkierung z.B. mit Kameras erkannt werden) und das seitliche Einparken in einer vorgegebenen Parklücke.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* [http://www.carolo-cup.de www.carolo-cup.de]&lt;br /&gt;
&lt;br /&gt;
==Field Robot Event==&lt;br /&gt;
Dieser Wettbewerb für Studenten findet auf einem Maisfeld statt. Die Roboter müssen den Maisreihen folgen und &amp;quot;Unkraut&amp;quot; erkennen, wobei es mehrere Schwierigkeitsgrade gibt (z.B. können einzelne Pflanzen fehlen, oder es gibt größere Unebenheiten im Boden).&lt;br /&gt;
2011 wird der Wettbewerb in Dänemark ausgetragen.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* [http://www.fre2011.dk/ http://www.fre2011.dk/]&lt;br /&gt;
&lt;br /&gt;
==FIRST Lego League==&lt;br /&gt;
Bei der FIRST LEGO League (FLL) handelt es sich um einen internationalen Wettbewerb der von der Firma LEGO und der amerikanischen Stiftung FIRST (For Inspiration and Recognition of Science and Technology) veranstalltet wird. Er findet jährlich auf der ganzen Welt mit regionalen Runden statt und steht jedes Jahr unter einem neuen Motto. &lt;br /&gt;
&lt;br /&gt;
Der Wettbewerb beschäftigt sich immer mit aktuellen naturwissenschaftlichen Problemen, die gesellschaftlich relevant sind. Dabei sollen die Kinder nicht nur einen Roboter programmieren, der Aufgaben auf dem vorgegebenen Spielfeld erfüllt, sondern sich auch tiefgründig mit dem Wettbewerbsthema auseinandersetzen. Die Teilnehmer sollen einen Lösungsansatz für ein aktuelles Probleme erarbeiten, dass mit dem Wettbewerbsthema in Verbindung steht. 2010 heißt das Thema von FLL &amp;quot;Body Forward&amp;quot; und dabei dreht sich alles um Biomedizin.&lt;br /&gt;
&lt;br /&gt;
Bei diesem Wettbewerb dürfen nur Roboter eingesetzt werden, die aus dem LEGO Mindstorms System bestehen. Der Wettbewerb richtet sich vornehmlich an junge Schüler, wie auch das gesamte Mindstorms System. Deshalb dürfen die Teilnehmer maximal 16 Jahre alt sein. Jedes Team wird von einem volljährigen Coach bei der Bewältigung der Aufgaben angeleitet. &lt;br /&gt;
&lt;br /&gt;
Die Wettbewerbsaufgaben werden immer Anfang September veröffentlicht, danach hat jedes Team ca. 8 Wochen Zeit seinen Roboter zu programmieren und den Forschungsauftrag zu erfüllen, um die Ergebnisse dann bei einem der Regionalwettbewerbe zu präsentieren.&lt;br /&gt;
 &lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* [http://www.firstlegoleague.org/ www.firstlegoleague.org]&lt;br /&gt;
* [http://www.firstlegoleague.de/ www.firstlegoleague.de]&lt;br /&gt;
&lt;br /&gt;
==RoboCup Soccer==&lt;br /&gt;
Die Komplexität und Beliebtheit von Fußball (soccer) spielten wesentliche Rollen bei der Motivation der ersten RoboCupspiele Mitte der 90er Jahre. Die Dynamik und die Komplexität von Fußball birgt enorme Herausforderungen für Wissenschaftler, die sich mit der Entwicklung von autonomen Robotern in diesem Bereich beschäftigen: &lt;br /&gt;
&lt;br /&gt;
Individuelle Herausforderungen: jeder Agent/Roboter muss Objekte erkennen, sich selbst lokalisieren, navigieren und den Ball bewegen können. Zu klären sind Fragen wie: was ist in diesem Moment wichtig in meiner Wahrnehmung? Ist meine Position und die der anderen Mitspieler bekannt? &lt;br /&gt;
Kooperation von Agenten: in einer dynamischen Echtzeitumgebung kommt es nicht auf einen einzelnen Spieler an, sondern besonders auf das kooperative Spiel, bei dem auch die Kommunikation eine große Rolle spielt.&lt;br /&gt;
&lt;br /&gt;
Dynamische Echtzeitumgebung mit sich bewegenden Objekten, von denen einige intelligente Agenten sind, die gegen einen spielen. Diese Art von Umgebung ist z.B. auch im Straßenverkehr zu beobachten, wobei die anderen Verkehrsteilnehmer zwar keine Gegner sind, die meine Pläne durchkreuzen wollen, wo aber die Situationen beliebig komplex werden können.&lt;br /&gt;
RoboCupSoccer besteht aus fünf Ligen: der Simulationsliga, der Small-Size Liga, der Middle-Size Liga, der Sony Legged Liga, und der Humanoidliga. &lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.robocup.org www.robocup.org]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==RobotChallenge==&lt;br /&gt;
Die RobotChallenge ist ein österreichischer Wettbewerb für selbstgebaute, autonome Roboter, dessen Ziel es ist für den kreativen Umgang mit innovativen Technologien zu begeistern. Experimente und praktische Erfahrungen lassen Teilnehmer und Zuschauer Wissenschaft hautnah erleben. Dieser Wettbewerb soll zeigen, wie man mit einfachen Mitteln, aber offenem Geiste und Phantasie spannende, zukunftstaugliche Lösungen finden kann. &lt;br /&gt;
Folgende Disiplienen wurden dort schon ausgetragen:&lt;br /&gt;
&lt;br /&gt;
'''Parallel-Slalom'''&amp;lt;br&amp;gt;&lt;br /&gt;
Möglichst schnell muss einer schwarzen Linie auf weißem Untergrund entlang gefahren werden. Reglement im Wesentlichen wie bei RC'05. &lt;br /&gt;
&lt;br /&gt;
'''Parallel-Slalom Enhanced'''&amp;lt;br&amp;gt;&lt;br /&gt;
Wie Parallel-Slalom, jedoch mit Erschwernissen: ein Tunnel, eine kurze Unterbrechung der Linie und ein Hindernis auf der Linie, das umfahren werden muss. &lt;br /&gt;
&lt;br /&gt;
'''Robot-Sumo'''&amp;lt;br&amp;gt;&lt;br /&gt;
Je zwei Roboter treten gegeneinander an und versuchen den jeweils anderen von einer runden Platte zu schieben. Die Platte ist schwarz, der Rand ist durch einen weissen Streifen markiert. Die Regeln entsprechen der internationalen Norm für autonomes Roboter-Sumo. &lt;br /&gt;
&lt;br /&gt;
'''Hindernislauf'''&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Infrarot-Leuchtturm mit definiertem Signal am Ende des Parcours ist möglichst rasch zu erreichen. Auf dem Weg befindliche Hindernisse müssen umfahren werden. Jedes Team kann alternativ auch einen eigenen Leuchtturm als Orientierungshilfe mitbringen. Reglement im Wesentlichen wie bei RC'05, jedoch sind auch komplexere Hindernisse (z.B. Sackgassen) möglich. &lt;br /&gt;
&lt;br /&gt;
'''Puck Collect'''&amp;lt;br&amp;gt;&lt;br /&gt;
Je zwei Roboter - von denen einem die Farbe rot, dem anderen blau zugeteilt wird - treten gegeneinander an. Auf dem Spielfeld sind kleine rote und blaue Scheiben (Pucks) verteilt. Ziel ist es, möglichst schnell alle Pucks der eigenen Farbe einzusammeln und zur eigenen, farblich gekennzeichneten Homebase zu bringen. &lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.robotchallenge.at/ RobotChallenge]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SPURT==&lt;br /&gt;
Der Wettbewerb SPURT (die Abkürzung steht für &amp;quot;Schüler-Projekte um Roboter-Technik&amp;quot;) wird jährlich von der Universität Rostock veranstaltet. SPURT richtet sich an technikinteressierte Schüler. Die zu lösende Aufgabe ist eine Linienverfolgung. Wer am schnellsten die herzförmige Linie abfährt, hat gewonnen.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://spurt.uni-rostock.de/ Wettbewerb SPURT]&lt;br /&gt;
&lt;br /&gt;
==ELROB==&lt;br /&gt;
Die deutsche Bundeswehr läd Firmen und Privatpersonen ein, am European Land-Robot Trial teilzunehmen (findet 2010 zum fünften Mal statt). Die ELROB wird veranstaltet, um einen Überblick über den europäischen State-of-the-art auf dem Gebiet von UGVs (unmanned ground vehicles) mit Fokus auf kurzfristig realisierbare Robotersystemen zu liefern. Hinsichtlich der vorhandenen Fähigkeiten versuchen die Organisatoren, technische Lösungen zu fördern, die den Betrieb unbemannter Fahrzeuge (UGV) verbessern. Repräsentanten aus Militär, Grenzschutz, Spezialkräften, Polizei, Feuerwehr, und Zivilschutzagenturen aus vielen europäischen Ländern werden anwesend sein. Die ELROB wird von einer Ausstellung begleitet, welche eine breite Vielzahl an Robotikaspekten umfasst.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.elrob.org/ Homepage von ELROB]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ROBOCOM==&lt;br /&gt;
Bei diesem Wettbewerb soll eine vorgegebene Aufgabe mit LEGO MINDSTORMS NXT Robotern autonom, d.h. ohne Eingriffe von außen bewältigt werden. Mit diesem Wettbewerb möchte die Fachhochschule Gelsenkirchen in den Schulen den Einsatz moderner Techniken fördern und Schülerinnen und Schüler für ein naturwissenschaftliches Studium interessieren.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* http://www2.fh-gelsenkirchen.de/FH-Sites/FB1/index.php?id=791&lt;br /&gt;
&lt;br /&gt;
= Derzeit nicht regelmäßig stattfindende Wettbewerbe =&lt;br /&gt;
&lt;br /&gt;
==RobotLiga==&lt;br /&gt;
Die RobotLiga fand bis 2007 in Kaiserslautern statt, neuere Termine sind nicht bekannt. Teilnehmen konnten alle interessierten Roboterbastler.&lt;br /&gt;
&lt;br /&gt;
'''LINE SEARCH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke ohne Abzweigungen. Die Linie ist 2cm breit.&lt;br /&gt;
&lt;br /&gt;
'''LABYRINTH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke mit Abzweigungen und Kreuzungen. Die Linie ist 2cm breit.&lt;br /&gt;
&lt;br /&gt;
'''ROBOT COLLECT'''&amp;lt;br&amp;gt;&lt;br /&gt;
Auf einem Spielfeld von 3x3m sind 30 Objekte in der Größe von Teelichtern verteilt. Zwei Roboter treten gegeneinander an und versuchen, möglichst viele der Objekte in ihre eigene Heimatecke des Spielfeldes zu bringen. &lt;br /&gt;
&lt;br /&gt;
''' ROBOT VOLLEY'''&amp;lt;br&amp;gt;&lt;br /&gt;
Das Spielfeld ist 2x4m groß und wird durch eine Wand (als &amp;quot;Netz&amp;quot;) in zwei Hälfte geteilt, in denen je ein Roboter positioniert wird. In jeder Hälfte befinden sich am Anfang zehn Bälle. Die Roboter müssen nun innerhalb von fünf Minuten versuchen, möglichst viele der Bälle einzusammeln und in die gegnerische Hälfte zu befördern. &lt;br /&gt;
&lt;br /&gt;
'''MINI SUMO'''&amp;lt;br&amp;gt;&lt;br /&gt;
Zwei Roboter treten gegeneinander an und versuchen, sich aus dem Ring zu schieben.&lt;br /&gt;
&lt;br /&gt;
'''WALKING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Eine Disziplin nur für Laufroboter. Der Roboter muss schnellstmöglich eine Strecke von 75cm zurücklegen, wenden, und die Strecke zurück laufen. &lt;br /&gt;
&lt;br /&gt;
'''FIRE FIGHTING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Es geht darum, eine brennende Kerze in einem durch mehrere Wände angedeuteten Gebäude zu finden und zu löschen. &lt;br /&gt;
&lt;br /&gt;
'''FREE ROBOTS'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können eigene Roboter dem Publikum vorgestellt werden. &lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.robotliga.de/ RobotLiga]&lt;br /&gt;
&lt;br /&gt;
==RoboTest==&lt;br /&gt;
'''LINE SEARCH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke ohne Abzweigungen. Die Linie ist 2 bis 3cm breit. Es starten immer zwei Roboter gleichzeitig in einem Parallelslalom. Der Wettbewerb läuft in mehreren Runden nach dem KO-System. &lt;br /&gt;
&lt;br /&gt;
'''BLOCKED LINE'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke ohne Abzweigungen. Auf der Strecke stehen Hindernisse, die umfahren werden müssen. &lt;br /&gt;
&lt;br /&gt;
'''LABYRINTH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke mit Abzweigungen und Kreuzungen. Die Linie ist 2 bis 5cm breit.&lt;br /&gt;
&lt;br /&gt;
'''ROBOT COLLECT'''&amp;lt;br&amp;gt;&lt;br /&gt;
Auf einem Spielfeld von 3x3m sind 30 Objekte in der Größe von Teelichtern verteilt. Zwei Roboter treten gegeneinander an und versuchen, innerhalb von drei Minuten möglichst viele der Objekte in ihre eigene Heimatecke des Spielfeldes zu bringen. &lt;br /&gt;
&lt;br /&gt;
''' ROBOT VOLLEY'''&amp;lt;br&amp;gt;&lt;br /&gt;
Das Spielfeld ist 2x4m groß und wird durch eine Wand (als &amp;quot;Netz&amp;quot;) in zwei Hälfte geteilt, in denen je ein Roboter positioniert wird. In jeder Hälfte befinden sich am Anfang zehn Bälle. Die Roboter müssen nun innerhalb von fünf Minuten versuchen, möglichst viele der Bälle einzusammeln und in die gegnerische Hälfte zu befördern. &lt;br /&gt;
&lt;br /&gt;
'''MICRO LINE'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen für sehr kleine Roboter. Die maximale Größe liegt bei 8x8x8cm und 200g. Je kleiner und leichter der Roboter ist, desto mehr Bonuspunkte gibt es.  &lt;br /&gt;
&lt;br /&gt;
'''FIRE FIGHTING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Es geht darum, eine brennende Kerze in einem durch mehrere Wände angedeuteten Gebäude zu finden und zu löschen. &lt;br /&gt;
&lt;br /&gt;
'''MINI SUMO'''&amp;lt;br&amp;gt;&lt;br /&gt;
Zwei Roboter treten gegeneinander an und versuchen, sich aus dem Ring zu schieben.&lt;br /&gt;
&lt;br /&gt;
'''JUST WALK'''&amp;lt;br&amp;gt;&lt;br /&gt;
Eine Disziplin nur für Laufroboter. Der Roboter muss schnellstmöglich eine Strecke von 1m zurücklegen, wenden, und die Strecke zurück laufen. &lt;br /&gt;
&lt;br /&gt;
'''FREE ROBOTS'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können eigene Roboter dem Publikum vorgestellt werden. &lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://WWW.ROBOTEST.DE/ RoboTest]&lt;br /&gt;
&lt;br /&gt;
==GSF Robot Contest==&lt;br /&gt;
Ein neuer Wettbewerb für Hobbyrobotiker. Er findet am 19.5.07 erstmals statt. Austragungsort ist Fröndenberg (Raum Dortmund/Unna).&lt;br /&gt;
Die Aufgaben sind teilweise angelehnt an die der RobotLiga.&lt;br /&gt;
&lt;br /&gt;
'''LABYRINTH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke mit Abzweigungen und Kreuzungen. Die Linie ist 2cm breit.&lt;br /&gt;
&lt;br /&gt;
'''ROBOT COLLECT'''&amp;lt;br&amp;gt;&lt;br /&gt;
Auf einem Spielfeld von 3x3m sind 30 Objekte in der Größe von Teelichtern verteilt. Zwei Roboter treten gegeneinander an und versuchen, möglichst viele der Objekte in ihre eigene Heimatecke des Spielfeldes zu bringen. &lt;br /&gt;
&lt;br /&gt;
''' ROBOT VOLLEY'''&amp;lt;br&amp;gt;&lt;br /&gt;
Das Spielfeld ist 2x4m groß und wird durch eine Wand (als &amp;quot;Netz&amp;quot;) in zwei Hälfte geteilt, in denen je ein Roboter positioniert wird. In jeder Hälfte befinden sich am Anfang zehn Bälle. Die Roboter müssen nun innerhalb von fünf Minuten versuchen, möglichst viele der Bälle einzusammeln und in die gegenrische Hälfte zu befördern. &lt;br /&gt;
&lt;br /&gt;
'''FIRE FIGHTING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Naqch einem akustischen &amp;quot;Feueralarm&amp;quot; muss eine brennende Kerze in einem durch mehrere Wände angedeuteten Gebäude gefunden und gelöscht werden. &lt;br /&gt;
&lt;br /&gt;
'''MINI SUMO'''&amp;lt;br&amp;gt;&lt;br /&gt;
Zwei Roboter treten gegeneinader an und versuchen, sich aus dem Ring zu schieben.&lt;br /&gt;
&lt;br /&gt;
'''WALKING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Eine Disziplin nur für Laufroboter. Der Roboter muss schnellstmöglich eine Strecke von 100cm zurücklegen, wenden, und die Strecke zurück laufen. &lt;br /&gt;
&lt;br /&gt;
'''FREESTYLE'''&amp;lt;br&amp;gt;&lt;br /&gt;
In dieser Disziplin hat jeder Teilnehmer die Möglichkeit seinen Roboter vorzustellen und zu zeigen was dieser kann.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* http://www.gsf-robot-contest.de/&lt;br /&gt;
&lt;br /&gt;
==RoboKing==&lt;br /&gt;
RoboKing ist ein Wettbewerb für technikinteressierte Schüler, der jährlich von der TU Chemnitz organisiert wird. Jedes Team besteht aus 3 bis 5 Schülern und einem erwachsenem Teamleiter. RoboKing richtet sich ausdrücklich auch an Schülergruppen ohne große Vorkenntnisse. Ziel der Initiative ist, Schüler für ein Studium ingenieurwissenschaftlicher Fächer zu begeistern und zu zeigen, dass auch Schulfächer wie Physik und Informatik eine Menge Spaß machen können. Das Durchschnittsalter der Teilnehmer liegt bei etwa 16 Jahren. Die jüngsten Teilnehmer waren 10 Jahre alt. &lt;br /&gt;
&lt;br /&gt;
Besonderes Highlight des Wettberwebs RoboKing ist zweifellos eine Gutschrift, von denen die Teilnehmer alle Materialien die zum Bau des Roboters benötigt werden, bezahlen können. Dadurch unterscheidet sich dieser Wettbewerb von allen vergleichbaren, denn auf die teilnehmenden Schüler kommen keine Kosten für Material zu. Jedes Jahr werden 25 Teams mit dieser Gutschrift finanziell unterstützt. Ab dem Wettbewerb RoboKing 2007 (startet im Frühjahr 2006) können zusätzlich auch alle Teams teilnehmen, die sich selbst finanzieren.&lt;br /&gt;
&lt;br /&gt;
Die Endrunde des Wettbewerbs wurde 2004 und auf der Hannover Messe ausgetragen. 2006 fand das Finale auf der digital living / CeBIT statt.&lt;br /&gt;
Eine weitere Besonderheit des Wettbewerbs: Jedes Jahr müssen die Teilnehmer eine andere Aufgabenstellung lösen.  Bei den vergangenen Wettbewerben mussten die Roboter sicher durch ein großes Labyrinth navigieren, Tennisbälle einsammeln und in die eigene Basis bringen oder Bauklötzchen durch einen Hindernisparcours mit Graben, Brücke und Schlucht transportieren. Die Teilnehmer haben nach Bekanntgabe der Spielregeln etwa 8 Monate Zeit, die Aufgabe zu lösen.&lt;br /&gt;
&lt;br /&gt;
RoboKing finanziert sich ausschließlich über Spenden von zahlreichen Sponsoren. Verantwortlich für die Organisation sind die Mitarbeiter und Studenten der Professur Prozessautomatisierung der TU Chemnitz.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.roboking.de www.roboking.de]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Praxis]]&lt;/div&gt;</summary>
		<author><name>Chypsylon</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Roboterwettbewerbe&amp;diff=17499</id>
		<title>Roboterwettbewerbe</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Roboterwettbewerbe&amp;diff=17499"/>
				<updated>2011-06-20T14:52:31Z</updated>
		
		<summary type="html">&lt;p&gt;Chypsylon: /* Überblick */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Auf diese Seite werden die bekanntesten nationalen und internationalen Roboterwettbewerbe kurz vorgestellt.&lt;br /&gt;
&lt;br /&gt;
==Überblick==&lt;br /&gt;
{| {{Blauetabelle}}&lt;br /&gt;
 |''' Wettbewerb primär für'''||Schüler ||Studenten || Hobbyrobotiker ||1 Person || bis 5 Personen || mehr als 5 Personen || nächster Termin || Ort&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#Robocup_Junior|Robocup Junior]] || X ||  ||  ||  || X || || 5. bis 11.7.2011 , versch. Nationalbewerbe || WM in Istanbul, Nationale Bewerbe&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#Eurobot|Eurobot]] || X || X ||  ||  ||  || X || 22. bis 27.06.2011 || Russland&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#Carolo_Cup|Carolo Cup]] || || X || || || || X  || 07. / 08.02.2011  || Braunschweig&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#Field_Robot_Event|Field Robot Event]] || || X || || || || X  || 30.6. - 02.07.2011 || Dänemark&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#FIRST_Lego_League|FIRST LEGO Leaue]] || X ||  ||  || ||  || X || 4. - 30.11. in 52 Regionen(Zentraleuropa) ||   &lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RoboCup_Soccer|RoboCup Soccer]] || || X ||  ||  ||  || X   || 04. - 10.07.2011 || Istanbul&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RobotChallenge|RobotChallenge]] || || || X || X || || || 12. / 13.03.2011 || Wien&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#SPURT|SPURT]] || X || || ||  || X ||  || 20.05.2011 || Rostock&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#ELROB|European Land Robot Trial (ELROB)]] ||  || X ||  || ||  || X  || 20. - 24.07.2011 || Leuven, Belgien&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#ROBOCOM|ROBOCOM]] || X ||  ||  ||  || X || || 15.07.2011 || Gelsenkirchen&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RobotLiga|RobotLiga]] || || || X || X || || || keine nach 2007 bekannt ||&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RoboTest|RoboTest]] || || || X || X || || || keine nach 2008 bekannt ||&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#RoboKing|RoboKing]] || X || || || || X || || keine nach 2008 bekannt ||&lt;br /&gt;
 |-&lt;br /&gt;
 |[[#GSF_Robot_Contest|GSF Robot Contest]] ||  ||  || X ||X || X ||   || keine nach 2007 bekannt ||&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
= Aktuelle Wettbewerbe =&lt;br /&gt;
&lt;br /&gt;
==Eurobot==&lt;br /&gt;
&amp;quot;Seit 1998 ist Eurobot ein internationaler Roboterwettbewerb für Teams von Jugendlichen, Studenten und sonstigen an Robotern interessierten Menschen.&lt;br /&gt;
Eurobot findet stets in Europa statt, ist aber für alle Länder aller Kontinente zugänglich. Im Jahre 2004 nahmen insgesamt 250 Teams aus 21 Länder an diesem technisch/wissenschaftlichen Wettbewerb teil.&amp;quot; (zitiert von www.eurobot.org)&lt;br /&gt;
Aus jedem Land dürfen maximal drei Teams zu den internationalen Finalen fahren. Diese drei Mannschaften müssen sich in nationalen Vorausscheiden qualifizieren. Die Aufgabe wird jedes Jahr neu gestellt. Nur die Rahmenbedingungen bleiben gleich: Ein Match dauert nur 90 Sekunden, es ist also sowohl Schnelligkeit als auch eine intelligente Taktik und Sicherheit gefragt. Die Spielfläche ist etwa 2x3 Meter groß.&lt;br /&gt;
Eurobot findet seit 2005 jedes Jahr in einem anderen Land statt. Der Wettbewerb wird von einer großen Rahmenveranstaltung inklusive Vorträgen und vielen Attraktionen für die zahlreichen Zuschauer ergänzt.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* [http://www.eurobot.org www.eurobot.org]&lt;br /&gt;
* [http://www.eurobot-deutschland.de www.eurobot-deutschland.de]&lt;br /&gt;
&lt;br /&gt;
==Carolo Cup==&lt;br /&gt;
Dieser Wettbewerb für Studenten findet an der TU Braunschweig statt. &lt;br /&gt;
Es treten autonome Modellfahrzeuge im Maßstab 1:10 gegeneinander an. Aufgaben sind das Fahren auf einem Rundkurs (dabei muss die Fahrbahnmarkierung z.B. mit Kameras erkannt werden) und das seitliche Einparken in einer vorgegebenen Parklücke.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* [http://www.carolo-cup.de www.carolo-cup.de]&lt;br /&gt;
&lt;br /&gt;
==Field Robot Event==&lt;br /&gt;
Dieser Wettbewerb für Studenten findet auf einem Maisfeld statt. Die Roboter müssen den Maisreihen folgen und &amp;quot;Unkraut&amp;quot; erkennen, wobei es mehrere Schwierigkeitsgrade gibt (z.B. können einzelne Pflanzen fehlen, oder es gibt größere Unebenheiten im Boden).&lt;br /&gt;
2011 wird der Wettbewerb in Dänemark ausgetragen.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* [http://www.fre2011.dk/ http://www.fre2011.dk/]&lt;br /&gt;
&lt;br /&gt;
==FIRST Lego League==&lt;br /&gt;
Bei der FIRST LEGO League (FLL) handelt es sich um einen internationalen Wettbewerb der von der Firma LEGO und der amerikanischen Stiftung FIRST (For Inspiration and Recognition of Science and Technology) veranstalltet wird. Er findet jährlich auf der ganzen Welt mit regionalen Runden statt und steht jedes Jahr unter einem neuen Motto. &lt;br /&gt;
&lt;br /&gt;
Der Wettbewerb beschäftigt sich immer mit aktuellen naturwissenschaftlichen Problemen, die gesellschaftlich relevant sind. Dabei sollen die Kinder nicht nur einen Roboter programmieren, der Aufgaben auf dem vorgegebenen Spielfeld erfüllt, sondern sich auch tiefgründig mit dem Wettbewerbsthema auseinandersetzen. Die Teilnehmer sollen einen Lösungsansatz für ein aktuelles Probleme erarbeiten, dass mit dem Wettbewerbsthema in Verbindung steht. 2010 heißt das Thema von FLL &amp;quot;Body Forward&amp;quot; und dabei dreht sich alles um Biomedizin.&lt;br /&gt;
&lt;br /&gt;
Bei diesem Wettbewerb dürfen nur Roboter eingesetzt werden, die aus dem LEGO Mindstorms System bestehen. Der Wettbewerb richtet sich vornehmlich an junge Schüler, wie auch das gesamte Mindstorms System. Deshalb dürfen die Teilnehmer maximal 16 Jahre alt sein. Jedes Team wird von einem volljährigen Coach bei der Bewältigung der Aufgaben angeleitet. &lt;br /&gt;
&lt;br /&gt;
Die Wettbewerbsaufgaben werden immer Anfang September veröffentlicht, danach hat jedes Team ca. 8 Wochen Zeit seinen Roboter zu programmieren und den Forschungsauftrag zu erfüllen, um die Ergebnisse dann bei einem der Regionalwettbewerbe zu präsentieren.&lt;br /&gt;
 &lt;br /&gt;
'''Weblinks''':&lt;br /&gt;
* [http://www.firstlegoleague.org/ www.firstlegoleague.org]&lt;br /&gt;
* [http://www.firstlegoleague.de/ www.firstlegoleague.de]&lt;br /&gt;
&lt;br /&gt;
==RoboCup Soccer==&lt;br /&gt;
Die Komplexität und Beliebtheit von Fußball (soccer) spielten wesentliche Rollen bei der Motivation der ersten RoboCupspiele Mitte der 90er Jahre. Die Dynamik und die Komplexität von Fußball birgt enorme Herausforderungen für Wissenschaftler, die sich mit der Entwicklung von autonomen Robotern in diesem Bereich beschäftigen: &lt;br /&gt;
&lt;br /&gt;
Individuelle Herausforderungen: jeder Agent/Roboter muss Objekte erkennen, sich selbst lokalisieren, navigieren und den Ball bewegen können. Zu klären sind Fragen wie: was ist in diesem Moment wichtig in meiner Wahrnehmung? Ist meine Position und die der anderen Mitspieler bekannt? &lt;br /&gt;
Kooperation von Agenten: in einer dynamischen Echtzeitumgebung kommt es nicht auf einen einzelnen Spieler an, sondern besonders auf das kooperative Spiel, bei dem auch die Kommunikation eine große Rolle spielt.&lt;br /&gt;
&lt;br /&gt;
Dynamische Echtzeitumgebung mit sich bewegenden Objekten, von denen einige intelligente Agenten sind, die gegen einen spielen. Diese Art von Umgebung ist z.B. auch im Straßenverkehr zu beobachten, wobei die anderen Verkehrsteilnehmer zwar keine Gegner sind, die meine Pläne durchkreuzen wollen, wo aber die Situationen beliebig komplex werden können.&lt;br /&gt;
RoboCupSoccer besteht aus fünf Ligen: der Simulationsliga, der Small-Size Liga, der Middle-Size Liga, der Sony Legged Liga, und der Humanoidliga. &lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.robocup.org www.robocup.org]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==RobotChallenge==&lt;br /&gt;
Die RobotChallenge ist ein österreichischer Wettbewerb für selbstgebaute, autonome Roboter, dessen Ziel es ist für den kreativen Umgang mit innovativen Technologien zu begeistern. Experimente und praktische Erfahrungen lassen Teilnehmer und Zuschauer Wissenschaft hautnah erleben. Dieser Wettbewerb soll zeigen, wie man mit einfachen Mitteln, aber offenem Geiste und Phantasie spannende, zukunftstaugliche Lösungen finden kann. &lt;br /&gt;
Folgende Disiplienen wurden dort schon ausgetragen:&lt;br /&gt;
&lt;br /&gt;
'''Parallel-Slalom'''&amp;lt;br&amp;gt;&lt;br /&gt;
Möglichst schnell muss einer schwarzen Linie auf weißem Untergrund entlang gefahren werden. Reglement im Wesentlichen wie bei RC'05. &lt;br /&gt;
&lt;br /&gt;
'''Parallel-Slalom Enhanced'''&amp;lt;br&amp;gt;&lt;br /&gt;
Wie Parallel-Slalom, jedoch mit Erschwernissen: ein Tunnel, eine kurze Unterbrechung der Linie und ein Hindernis auf der Linie, das umfahren werden muss. &lt;br /&gt;
&lt;br /&gt;
'''Robot-Sumo'''&amp;lt;br&amp;gt;&lt;br /&gt;
Je zwei Roboter treten gegeneinander an und versuchen den jeweils anderen von einer runden Platte zu schieben. Die Platte ist schwarz, der Rand ist durch einen weissen Streifen markiert. Die Regeln entsprechen der internationalen Norm für autonomes Roboter-Sumo. &lt;br /&gt;
&lt;br /&gt;
'''Hindernislauf'''&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Infrarot-Leuchtturm mit definiertem Signal am Ende des Parcours ist möglichst rasch zu erreichen. Auf dem Weg befindliche Hindernisse müssen umfahren werden. Jedes Team kann alternativ auch einen eigenen Leuchtturm als Orientierungshilfe mitbringen. Reglement im Wesentlichen wie bei RC'05, jedoch sind auch komplexere Hindernisse (z.B. Sackgassen) möglich. &lt;br /&gt;
&lt;br /&gt;
'''Puck Collect'''&amp;lt;br&amp;gt;&lt;br /&gt;
Je zwei Roboter - von denen einem die Farbe rot, dem anderen blau zugeteilt wird - treten gegeneinander an. Auf dem Spielfeld sind kleine rote und blaue Scheiben (Pucks) verteilt. Ziel ist es, möglichst schnell alle Pucks der eigenen Farbe einzusammeln und zur eigenen, farblich gekennzeichneten Homebase zu bringen. &lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.robotchallenge.at/ RobotChallenge]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SPURT==&lt;br /&gt;
Der Wettbewerb SPURT (die Abkürzung steht für &amp;quot;Schüler-Projekte um Roboter-Technik&amp;quot;) wird jährlich von der Universität Rostock veranstaltet. SPURT richtet sich an technikinteressierte Schüler. Die zu lösende Aufgabe ist eine Linienverfolgung. Wer am schnellsten die herzförmige Linie abfährt, hat gewonnen.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://spurt.uni-rostock.de/ Wettbewerb SPURT]&lt;br /&gt;
&lt;br /&gt;
==ELROB==&lt;br /&gt;
Die deutsche Bundeswehr läd Firmen und Privatpersonen ein, am European Land-Robot Trial teilzunehmen (findet 2010 zum fünften Mal statt). Die ELROB wird veranstaltet, um einen Überblick über den europäischen State-of-the-art auf dem Gebiet von UGVs (unmanned ground vehicles) mit Fokus auf kurzfristig realisierbare Robotersystemen zu liefern. Hinsichtlich der vorhandenen Fähigkeiten versuchen die Organisatoren, technische Lösungen zu fördern, die den Betrieb unbemannter Fahrzeuge (UGV) verbessern. Repräsentanten aus Militär, Grenzschutz, Spezialkräften, Polizei, Feuerwehr, und Zivilschutzagenturen aus vielen europäischen Ländern werden anwesend sein. Die ELROB wird von einer Ausstellung begleitet, welche eine breite Vielzahl an Robotikaspekten umfasst.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.elrob.org/ Homepage von ELROB]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ROBOCOM==&lt;br /&gt;
Bei diesem Wettbewerb soll eine vorgegebene Aufgabe mit LEGO MINDSTORMS NXT Robotern autonom, d.h. ohne Eingriffe von außen bewältigt werden. Mit diesem Wettbewerb möchte die Fachhochschule Gelsenkirchen in den Schulen den Einsatz moderner Techniken fördern und Schülerinnen und Schüler für ein naturwissenschaftliches Studium interessieren.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* http://www2.fh-gelsenkirchen.de/FH-Sites/FB1/index.php?id=791&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Derzeit nicht regelmäßig stattfindende Wettbewerbe =&lt;br /&gt;
&lt;br /&gt;
==RobotLiga==&lt;br /&gt;
Die RobotLiga fand bis 2007 in Kaiserslautern statt, neuere Termine sind nicht bekannt. Teilnehmen konnten alle interessierten Roboterbastler.&lt;br /&gt;
&lt;br /&gt;
'''LINE SEARCH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke ohne Abzweigungen. Die Linie ist 2cm breit.&lt;br /&gt;
&lt;br /&gt;
'''LABYRINTH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke mit Abzweigungen und Kreuzungen. Die Linie ist 2cm breit.&lt;br /&gt;
&lt;br /&gt;
'''ROBOT COLLECT'''&amp;lt;br&amp;gt;&lt;br /&gt;
Auf einem Spielfeld von 3x3m sind 30 Objekte in der Größe von Teelichtern verteilt. Zwei Roboter treten gegeneinander an und versuchen, möglichst viele der Objekte in ihre eigene Heimatecke des Spielfeldes zu bringen. &lt;br /&gt;
&lt;br /&gt;
''' ROBOT VOLLEY'''&amp;lt;br&amp;gt;&lt;br /&gt;
Das Spielfeld ist 2x4m groß und wird durch eine Wand (als &amp;quot;Netz&amp;quot;) in zwei Hälfte geteilt, in denen je ein Roboter positioniert wird. In jeder Hälfte befinden sich am Anfang zehn Bälle. Die Roboter müssen nun innerhalb von fünf Minuten versuchen, möglichst viele der Bälle einzusammeln und in die gegnerische Hälfte zu befördern. &lt;br /&gt;
&lt;br /&gt;
'''MINI SUMO'''&amp;lt;br&amp;gt;&lt;br /&gt;
Zwei Roboter treten gegeneinander an und versuchen, sich aus dem Ring zu schieben.&lt;br /&gt;
&lt;br /&gt;
'''WALKING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Eine Disziplin nur für Laufroboter. Der Roboter muss schnellstmöglich eine Strecke von 75cm zurücklegen, wenden, und die Strecke zurück laufen. &lt;br /&gt;
&lt;br /&gt;
'''FIRE FIGHTING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Es geht darum, eine brennende Kerze in einem durch mehrere Wände angedeuteten Gebäude zu finden und zu löschen. &lt;br /&gt;
&lt;br /&gt;
'''FREE ROBOTS'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können eigene Roboter dem Publikum vorgestellt werden. &lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.robotliga.de/ RobotLiga]&lt;br /&gt;
&lt;br /&gt;
==RoboTest==&lt;br /&gt;
'''LINE SEARCH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke ohne Abzweigungen. Die Linie ist 2 bis 3cm breit. Es starten immer zwei Roboter gleichzeitig in einem Parallelslalom. Der Wettbewerb läuft in mehreren Runden nach dem KO-System. &lt;br /&gt;
&lt;br /&gt;
'''BLOCKED LINE'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke ohne Abzweigungen. Auf der Strecke stehen Hindernisse, die umfahren werden müssen. &lt;br /&gt;
&lt;br /&gt;
'''LABYRINTH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke mit Abzweigungen und Kreuzungen. Die Linie ist 2 bis 5cm breit.&lt;br /&gt;
&lt;br /&gt;
'''ROBOT COLLECT'''&amp;lt;br&amp;gt;&lt;br /&gt;
Auf einem Spielfeld von 3x3m sind 30 Objekte in der Größe von Teelichtern verteilt. Zwei Roboter treten gegeneinander an und versuchen, innerhalb von drei Minuten möglichst viele der Objekte in ihre eigene Heimatecke des Spielfeldes zu bringen. &lt;br /&gt;
&lt;br /&gt;
''' ROBOT VOLLEY'''&amp;lt;br&amp;gt;&lt;br /&gt;
Das Spielfeld ist 2x4m groß und wird durch eine Wand (als &amp;quot;Netz&amp;quot;) in zwei Hälfte geteilt, in denen je ein Roboter positioniert wird. In jeder Hälfte befinden sich am Anfang zehn Bälle. Die Roboter müssen nun innerhalb von fünf Minuten versuchen, möglichst viele der Bälle einzusammeln und in die gegnerische Hälfte zu befördern. &lt;br /&gt;
&lt;br /&gt;
'''MICRO LINE'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen für sehr kleine Roboter. Die maximale Größe liegt bei 8x8x8cm und 200g. Je kleiner und leichter der Roboter ist, desto mehr Bonuspunkte gibt es.  &lt;br /&gt;
&lt;br /&gt;
'''FIRE FIGHTING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Es geht darum, eine brennende Kerze in einem durch mehrere Wände angedeuteten Gebäude zu finden und zu löschen. &lt;br /&gt;
&lt;br /&gt;
'''MINI SUMO'''&amp;lt;br&amp;gt;&lt;br /&gt;
Zwei Roboter treten gegeneinander an und versuchen, sich aus dem Ring zu schieben.&lt;br /&gt;
&lt;br /&gt;
'''JUST WALK'''&amp;lt;br&amp;gt;&lt;br /&gt;
Eine Disziplin nur für Laufroboter. Der Roboter muss schnellstmöglich eine Strecke von 1m zurücklegen, wenden, und die Strecke zurück laufen. &lt;br /&gt;
&lt;br /&gt;
'''FREE ROBOTS'''&amp;lt;br&amp;gt;&lt;br /&gt;
Hier können eigene Roboter dem Publikum vorgestellt werden. &lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://WWW.ROBOTEST.DE/ RoboTest]&lt;br /&gt;
&lt;br /&gt;
==GSF Robot Contest==&lt;br /&gt;
Ein neuer Wettbewerb für Hobbyrobotiker. Er findet am 19.5.07 erstmals statt. Austragungsort ist Fröndenberg (Raum Dortmund/Unna).&lt;br /&gt;
Die Aufgaben sind teilweise angelehnt an die der RobotLiga.&lt;br /&gt;
&lt;br /&gt;
'''LABYRINTH'''&amp;lt;br&amp;gt;&lt;br /&gt;
Linienfolgen auf einer Strecke mit Abzweigungen und Kreuzungen. Die Linie ist 2cm breit.&lt;br /&gt;
&lt;br /&gt;
'''ROBOT COLLECT'''&amp;lt;br&amp;gt;&lt;br /&gt;
Auf einem Spielfeld von 3x3m sind 30 Objekte in der Größe von Teelichtern verteilt. Zwei Roboter treten gegeneinander an und versuchen, möglichst viele der Objekte in ihre eigene Heimatecke des Spielfeldes zu bringen. &lt;br /&gt;
&lt;br /&gt;
''' ROBOT VOLLEY'''&amp;lt;br&amp;gt;&lt;br /&gt;
Das Spielfeld ist 2x4m groß und wird durch eine Wand (als &amp;quot;Netz&amp;quot;) in zwei Hälfte geteilt, in denen je ein Roboter positioniert wird. In jeder Hälfte befinden sich am Anfang zehn Bälle. Die Roboter müssen nun innerhalb von fünf Minuten versuchen, möglichst viele der Bälle einzusammeln und in die gegenrische Hälfte zu befördern. &lt;br /&gt;
&lt;br /&gt;
'''FIRE FIGHTING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Naqch einem akustischen &amp;quot;Feueralarm&amp;quot; muss eine brennende Kerze in einem durch mehrere Wände angedeuteten Gebäude gefunden und gelöscht werden. &lt;br /&gt;
&lt;br /&gt;
'''MINI SUMO'''&amp;lt;br&amp;gt;&lt;br /&gt;
Zwei Roboter treten gegeneinader an und versuchen, sich aus dem Ring zu schieben.&lt;br /&gt;
&lt;br /&gt;
'''WALKING'''&amp;lt;br&amp;gt;&lt;br /&gt;
Eine Disziplin nur für Laufroboter. Der Roboter muss schnellstmöglich eine Strecke von 100cm zurücklegen, wenden, und die Strecke zurück laufen. &lt;br /&gt;
&lt;br /&gt;
'''FREESTYLE'''&amp;lt;br&amp;gt;&lt;br /&gt;
In dieser Disziplin hat jeder Teilnehmer die Möglichkeit seinen Roboter vorzustellen und zu zeigen was dieser kann.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* http://www.gsf-robot-contest.de/&lt;br /&gt;
&lt;br /&gt;
==RoboKing==&lt;br /&gt;
RoboKing ist ein Wettbewerb für technikinteressierte Schüler, der jährlich von der TU Chemnitz organisiert wird. Jedes Team besteht aus 3 bis 5 Schülern und einem erwachsenem Teamleiter. RoboKing richtet sich ausdrücklich auch an Schülergruppen ohne große Vorkenntnisse. Ziel der Initiative ist, Schüler für ein Studium ingenieurwissenschaftlicher Fächer zu begeistern und zu zeigen, dass auch Schulfächer wie Physik und Informatik eine Menge Spaß machen können. Das Durchschnittsalter der Teilnehmer liegt bei etwa 16 Jahren. Die jüngsten Teilnehmer waren 10 Jahre alt. &lt;br /&gt;
&lt;br /&gt;
Besonderes Highlight des Wettberwebs RoboKing ist zweifellos eine Gutschrift, von denen die Teilnehmer alle Materialien die zum Bau des Roboters benötigt werden, bezahlen können. Dadurch unterscheidet sich dieser Wettbewerb von allen vergleichbaren, denn auf die teilnehmenden Schüler kommen keine Kosten für Material zu. Jedes Jahr werden 25 Teams mit dieser Gutschrift finanziell unterstützt. Ab dem Wettbewerb RoboKing 2007 (startet im Frühjahr 2006) können zusätzlich auch alle Teams teilnehmen, die sich selbst finanzieren.&lt;br /&gt;
&lt;br /&gt;
Die Endrunde des Wettbewerbs wurde 2004 und auf der Hannover Messe ausgetragen. 2006 fand das Finale auf der digital living / CeBIT statt.&lt;br /&gt;
Eine weitere Besonderheit des Wettbewerbs: Jedes Jahr müssen die Teilnehmer eine andere Aufgabenstellung lösen.  Bei den vergangenen Wettbewerben mussten die Roboter sicher durch ein großes Labyrinth navigieren, Tennisbälle einsammeln und in die eigene Basis bringen oder Bauklötzchen durch einen Hindernisparcours mit Graben, Brücke und Schlucht transportieren. Die Teilnehmer haben nach Bekanntgabe der Spielregeln etwa 8 Monate Zeit, die Aufgabe zu lösen.&lt;br /&gt;
&lt;br /&gt;
RoboKing finanziert sich ausschließlich über Spenden von zahlreichen Sponsoren. Verantwortlich für die Organisation sind die Mitarbeiter und Studenten der Professur Prozessautomatisierung der TU Chemnitz.&lt;br /&gt;
&lt;br /&gt;
'''Weblinks:'''&lt;br /&gt;
* [http://www.roboking.de www.roboking.de]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Praxis]]&lt;/div&gt;</summary>
		<author><name>Chypsylon</name></author>	</entry>

	</feed>