<?xml version="1.0" encoding="ISO-8859-1"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Roboternetz - Robby RP6</title>
		<link>http://www.roboternetz.de/community/</link>
		<description>Hier gehts um das Roboter Modell Robby RP6 (dem Nachfolger von CCRP5)</description>
		<language>de</language>
		<lastBuildDate>Thu, 17 May 2012 08:05:43 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>30</ttl>
		<image>
			<url>http://www.roboternetz.de/community/images/misc/rss.png</url>
			<title>Roboternetz - Robby RP6</title>
			<link>http://www.roboternetz.de/community/</link>
		</image>
		<item>
			<title><![CDATA[[ERLEDIGT] PA0, PA1 benutzen]]></title>
			<link>http://www.roboternetz.de/community/threads/57803-PA0-PA1-benutzen?goto=newpost</link>
			<pubDate>Wed, 09 May 2012 11:55:32 GMT</pubDate>
			<description>Hallo Forumgemeinde, 
 
ich habe vor, die Ports ADC0 und ADC1 der Base als Augänge zu verwenden um eine LED anzusteuern. Da diese 30mA zieht habe ich...</description>
			<content:encoded><![CDATA[<div>Hallo Forumgemeinde,<br />
<br />
ich habe vor, die Ports ADC0 und ADC1 der Base als Augänge zu verwenden um eine LED anzusteuern. Da diese 30mA zieht habe ich schonmal eine entsprechende Treiberschaltung auf einer kleinen PLatine mit ienem BC547C realisiert.<br />
Meine Frage an euch: welche Register muss ich nun genau beschreiben und wo ? Ich vermute die <a href="http://www.rn-wissen.de/index.php/RP6" target="_blank"  >RP6</a> Base header Datei, wo ich die Ports als Ausgänge definieren muss um dann anschließend im Code mit einem Befehl diese auf 1 setzen zu können. Ich habe im Forum gesucht, gegoogelt usw. bin aber nicht so richtig schlau aus dem ganzen geworden. Danke im Vorraus.<br />
<br />
Gruß Christian</div>

]]></content:encoded>
			<category domain="http://www.roboternetz.de/community/forums/58-Robby-RP6">Robby RP6</category>
			<dc:creator>Mr.Deepbass</dc:creator>
			<guid isPermaLink="true">http://www.roboternetz.de/community/threads/57803-PA0-PA1-benutzen</guid>
		</item>
		<item>
			<title>RP6v2 M256 WiFi !?</title>
			<link>http://www.roboternetz.de/community/threads/57787-RP6v2-M256-WiFi-%21?goto=newpost</link>
			<pubDate>Tue, 08 May 2012 13:15:06 GMT</pubDate>
			<description><![CDATA[Hallo Leute, 
 
auf der Verpackung des RP6v2 ist ein neues (?) Erweiterungsmodul "RP6v2 M256 WiFi" abgebildet. Auf der Abbildung kann man auch eine...]]></description>
			<content:encoded><![CDATA[<div>Hallo Leute,<br />
<br />
auf der Verpackung des RP6v2 ist ein neues (?) Erweiterungsmodul &quot;RP6v2 M256 WiFi&quot; abgebildet. Auf der Abbildung kann man auch eine WLAN-Kurzantenne erkennen.<br />
<br />
Wer weiss etwas darüber? Wird es bald ein Modul mit einem Atmel ARM-Prozessor und WLAN geben?<br />
<br />
Gibts Infos/Spekulationen/Preise/Auslieferungs-&quot;Roadmap&quot;/Bezugsquelle?</div>

]]></content:encoded>
			<category domain="http://www.roboternetz.de/community/forums/58-Robby-RP6">Robby RP6</category>
			<dc:creator>Dirk</dc:creator>
			<guid isPermaLink="true">http://www.roboternetz.de/community/threads/57787-RP6v2-M256-WiFi-%21</guid>
		</item>
		<item>
			<title><![CDATA[[ERLEDIGT] ADC0/1 Eingänge umändern]]></title>
			<link>http://www.roboternetz.de/community/threads/57706-ADC0-1-Eing%C3%A4nge-um%C3%A4ndern?goto=newpost</link>
			<pubDate>Tue, 01 May 2012 10:41:05 GMT</pubDate>
			<description>Brauche auch Hilfe. 
 
Ich habe vor die Eingänge ADC0/1 als Ausgänge zu beschalten, um etwas anzusteuern. Eine Logik Schaltung. 
Was muss ich dort...</description>
			<content:encoded><![CDATA[<div>Brauche auch Hilfe.<br />
<br />
Ich habe vor die Eingänge ADC0/1 als Ausgänge zu beschalten, um etwas anzusteuern. Eine Logik Schaltung.<br />
Was muss ich dort umschreiben? Weiß das jemand?<br />
<br />
Vielen Dank.<br />
<br />
Hier ist ein auszug aus der Base.h<br />
<br />
#define UBAT 			(1 &lt;&lt; PINA7) // ADC7 (Input)<br />
#define MCURRENT_L 		(1 &lt;&lt; PINA6) // ADC6 (Input)<br />
#define MCURRENT_R 		(1 &lt;&lt; PINA5) // ADC5 (Input)<br />
#define E_INT1 			(1 &lt;&lt; PINA4) // INT1 (input per default... can be output)<br />
#define LS_L 			(1 &lt;&lt; PINA3) // ADC3 (Input)<br />
#define LS_R 			(1 &lt;&lt; PINA2) // ADC2 (Input)<br />
#define ADC1 			(1 &lt;&lt; PINA1) // ADC1 (Input)<br />
#define ADC0 			(1 &lt;&lt; PINA0) // ADC0 (Input)<br />
<br />
// Initial value of port and direction registers.<br />
#define INIT_DDRA 0b00000000<br />
#define INIT_PRTA 0b00000000<br />
<br />
// ---------------------------------------------------<br />
// PORTA A/D Convertor channels<br />
<br />
#define ADC_BAT 			7<br />
#define ADC_MCURRENT_L 		6<br />
#define ADC_MCURRENT_R 		5<br />
#define ADC_LS_L 			3<br />
#define ADC_LS_R 			2<br />
#define ADC_ADC1 			1<br />
#define ADC_ADC0 			0</div>

]]></content:encoded>
			<category domain="http://www.roboternetz.de/community/forums/58-Robby-RP6">Robby RP6</category>
			<dc:creator>wenckstar</dc:creator>
			<guid isPermaLink="true">http://www.roboternetz.de/community/threads/57706-ADC0-1-Eing%C3%A4nge-um%C3%A4ndern</guid>
		</item>
		<item>
			<title>RP6 Stop Funktion</title>
			<link>http://www.roboternetz.de/community/threads/57687-RP6-Stop-Funktion?goto=newpost</link>
			<pubDate>Sun, 29 Apr 2012 12:27:33 GMT</pubDate>
			<description>Hallo! 
Brauche hilfe! 
 
Ich steuere meinen Rp6 über ein WiFly Modul fom Laptop aus! 
Nun wollte ich noch ein paar anpassungen machen... aber...</description>
			<content:encoded><![CDATA[<div>Hallo!<br />
Brauche hilfe!<br />
<br />
Ich steuere meinen <a href="http://www.rn-wissen.de/index.php/RP6" target="_blank"  >Rp6</a> über ein WiFly Modul fom Laptop aus!<br />
Nun wollte ich noch ein paar anpassungen machen... aber verzweifle nun an kleinen problemen!<br />
<br />
Die Funktion Stop verstehe ich nicht!<br />
<br />
Um sie anzuwenden hab ich auf die schnelle ein einfaches Programm geschrieben..<br />
<br />
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br />
<br />
void anhalten (void);<br />
<br />
int main (void)<br />
{<br />
	int i;<br />
	int lese_wert;<br />
	initRobotBase(); <br />
	powerON();<br />
	while(1)<br />
	{<br />
		<br />
		for (i = 0; i&lt;=1000; i++)<br />
		{<br />
				changeDirection(FWD);<br />
				task_motionControl();<br />
				moveAtSpeed(180,180);<br />
				mSleep(5);<br />
		}<br />
		<br />
		anhalten();<br />
                mSleep(2000);<br />
<br />
		for (i = 0; i&lt;=1000; i++)<br />
		{<br />
				changeDirection(BWD);<br />
				task_motionControl();<br />
				moveAtSpeed(180,180);<br />
				mSleep(5);<br />
		}<br />
<br />
<br />
void anhalten(void)<br />
{<br />
	stop();<br />
	setStopwatch1(0);<br />
	while(getStopwatch1()&lt;300)<br />
	{<br />
		task_motionControl();<br />
	}	<br />
	<br />
}<br />
<br />
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br />
<br />
<br />
Das problem ist, dass der Roboter sich nach der Stopfunktion aufhäng....<br />
<br />
Kann mir jemand das erklären?</div>

]]></content:encoded>
			<category domain="http://www.roboternetz.de/community/forums/58-Robby-RP6">Robby RP6</category>
			<dc:creator>Corsin Obrist</dc:creator>
			<guid isPermaLink="true">http://www.roboternetz.de/community/threads/57687-RP6-Stop-Funktion</guid>
		</item>
		<item>
			<title><![CDATA[[ERLEDIGT] Stopwatch wird ignoriert/ falsch interpretiert]]></title>
			<link>http://www.roboternetz.de/community/threads/57610-Stopwatch-wird-ignoriert-falsch-interpretiert?goto=newpost</link>
			<pubDate>Fri, 20 Apr 2012 20:49:53 GMT</pubDate>
			<description>Hallo, ich bin wieder auf ein neues Problem gestoßen. 
Der Roboter soll bei der ACS links+rechts Erkennung eine kurze Pause einlegen (ca 5000ms) und...</description>
			<content:encoded><![CDATA[<div>Hallo, ich bin wieder auf ein neues Problem gestoßen.<br />
Der Roboter soll bei der ACS links+rechts Erkennung eine kurze Pause einlegen (ca 5000ms) und danach weiterfahren, laut Programm. Ich habe hier den nur den Base als Master.<br />
<br />
Mein Code-Ausschnitt (aus Examples Base Move 5):<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code">#define AVOID_SPEED_L_ARC_LEFT&nbsp; 30<br />
#define AVOID_SPEED_L_ARC_RIGHT 40 // 90<br />
#define AVOID_SPEED_R_ARC_LEFT&nbsp; 40 // 90<br />
#define AVOID_SPEED_R_ARC_RIGHT 30<br />
#define AVOID_SPEED_ROTATE&nbsp; &nbsp; &nbsp; &nbsp;  30&nbsp; &nbsp;  // 60<br />
#define AVOID_SPEED_WAIT 0&nbsp;  //Motoren halt<br />
<br />
// States for the Avoid FSM:<br />
#define AVOID_OBSTACLE_RIGHT&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  1<br />
#define AVOID_OBSTACLE_LEFT&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  2<br />
#define AVOID_OBSTACLE_MIDDLE&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 3<br />
#define AVOID_OBSTACLE_MIDDLE_WAIT&nbsp; &nbsp; &nbsp; &nbsp;  4<br />
#define AVOID_END&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  5<br />
behaviour_command_t avoid = {0, 0, FWD, false, false, 0, IDLE};<br />
<br />
void behaviour_avoid(void)<br />
{<br />
&nbsp; &nbsp; &nbsp; &nbsp; static uint8_t last_obstacle = LEFT;<br />
&nbsp; &nbsp; &nbsp; &nbsp; static uint8_t obstacle_counter = 0;<br />
&nbsp; &nbsp; &nbsp; &nbsp; switch(avoid.state)<br />
&nbsp; &nbsp; &nbsp; &nbsp; {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case IDLE: <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(obstacle_right &amp;&amp; obstacle_left) // left AND right sensor have detected something...<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; avoid.state = AVOID_OBSTACLE_MIDDLE;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else if(obstacle_left)&nbsp; // Left &quot;sensor&quot; has detected something<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; avoid.state = AVOID_OBSTACLE_LEFT;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else if(obstacle_right) // Right &quot;sensor&quot; has detected something<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; avoid.state = AVOID_OBSTACLE_RIGHT;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case AVOID_OBSTACLE_MIDDLE:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; avoid.dir = last_obstacle;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; avoid.speed_left = AVOID_SPEED_WAIT;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; avoid.speed_right = AVOID_SPEED_WAIT;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; setStopwatch4(0);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; startStopwatch4();<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; while(getStopwatch4() &gt;= 4990){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // Die while Schleife verursacht nur Probleme....<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (getStopwatch4() &gt;=5000)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; setStopwatch4(0);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }}<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; avoid.speed_left = AVOID_SPEED_ROTATE;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; avoid.speed_right = AVOID_SPEED_ROTATE;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //else<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!(obstacle_left || obstacle_right))<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(obstacle_counter &gt; 3)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; obstacle_counter = 0;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; setStopwatch4(0);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; setStopwatch4(400);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; startStopwatch4();<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; avoid.state = AVOID_END;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case AVOID_OBSTACLE_RIGHT:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; avoid.dir = FWD;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; avoid.speed_left = AVOID_SPEED_L_ARC_LEFT;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; avoid.speed_right = AVOID_SPEED_L_ARC_RIGHT;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(obstacle_right &amp;&amp; obstacle_left)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; avoid.state = AVOID_OBSTACLE_MIDDLE;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!obstacle_right)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; setStopwatch4(500);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; startStopwatch4();<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; avoid.state = AVOID_END;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; last_obstacle = RIGHT;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; obstacle_counter++;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case AVOID_OBSTACLE_LEFT:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; avoid.dir = FWD;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; avoid.speed_left = AVOID_SPEED_R_ARC_LEFT;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; avoid.speed_right = AVOID_SPEED_R_ARC_RIGHT;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(obstacle_right &amp;&amp; obstacle_left)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; avoid.state = AVOID_OBSTACLE_MIDDLE;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!obstacle_left)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; setStopwatch4(500); <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; startStopwatch4();<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; avoid.state = AVOID_END;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; last_obstacle = LEFT;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; obstacle_counter++;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case AVOID_END:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(getStopwatch4() &gt; 1000) // We used timing based movement here!<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; stopStopwatch4();<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; setStopwatch4(0);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; avoid.state = IDLE;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
}</code><hr />
</div><br />
Die Wartezeit soll nur einmal aufgerufen werden pro Ausweichmanöver.<br />
Ich habe da verschieden Schleifenvariationen ausprobiert und der <a href="http://www.rn-wissen.de/index.php/RP6" target="_blank"  >RP6</a> ignoriert die Erkennung oder bleibt stehen. Ohne Schleife wird immer ein Teil übersprungen.<br />
Wäre es sinnvoller den Timer in einem weiteren case z.B. AVOID_OBSTACLE_MIDDLE_WAIT einzurichten und mit einem &quot;avoid.state = AVOID_OBSTACLE_MIDDLE;&quot; überzuleiten? Oder läuft es auf das selbe Ergebnis heraus?<br />
<br />
Wer sieht meinen Fehler?</div>

]]></content:encoded>
			<category domain="http://www.roboternetz.de/community/forums/58-Robby-RP6">Robby RP6</category>
			<dc:creator>Mac80</dc:creator>
			<guid isPermaLink="true">http://www.roboternetz.de/community/threads/57610-Stopwatch-wird-ignoriert-falsch-interpretiert</guid>
		</item>
		<item>
			<title>RP6 Gleichlauf der Motoren</title>
			<link>http://www.roboternetz.de/community/threads/57561-RP6-Gleichlauf-der-Motoren?goto=newpost</link>
			<pubDate>Tue, 17 Apr 2012 12:03:19 GMT</pubDate>
			<description>Hallo Community, 
 
ich habe mir vor einem Monat den RP6 zugelegt. Im Moment passe ich mir die RP6 Library an, und hier vor allem die...</description>
			<content:encoded><![CDATA[<div>Hallo Community,<br />
<br />
ich habe mir vor einem Monat den RP6 zugelegt. Im Moment passe ich mir die RP6 Library an, und hier vor allem die Antriebsfunktionen. <br />
Und zwar habe ich selbst einen PI-Regler programmiert. Er funktioniert sehr gut, beim freien Geradeausfahren habe ich eine Abweichung von ca. 5mm/m. Damit kann ich leben. Jedoch beim Starten habe ich das Problem, dass einer der beiden Motoren früher zu drehen beginnt und sich daraus natürlich gleich von Anfang an eine falsche Richtung ergibt. <br />
<br />
Meine Ansätze wären Folgende:<br />
1.) Einen zweiten Regler, der die Drehzahldifferenz auf 0 hält.<br />
2.) Einen Distanzregler laufen lassen, der die Distanzdifferenz der beiden Motoren auf 0 hält, und den Geschwindigkeitssollwert anpasst.<br />
<br />
Daraus ergeben sich jetzt zwei Fragen:<br />
1.) Haben diese Ansätze Erfolgsaussichten?<br />
2.) Habt ihr selbst Ideen, wie man das mach bzw. hat sich schon jemand damit befasst und eine Lösung gefunden?<br />
<br />
<br />
Mit freundlichen Grüßen<br />
<br />
Schwammi</div>

]]></content:encoded>
			<category domain="http://www.roboternetz.de/community/forums/58-Robby-RP6">Robby RP6</category>
			<dc:creator>Schwammi</dc:creator>
			<guid isPermaLink="true">http://www.roboternetz.de/community/threads/57561-RP6-Gleichlauf-der-Motoren</guid>
		</item>
	</channel>
</rss>

