<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>http://www.nibo-roboter.de/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Motorcontroller-Firmware</id>
		<title>Motorcontroller-Firmware - Versionsgeschichte</title>
		<link rel="self" type="application/atom+xml" href="http://www.nibo-roboter.de/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Motorcontroller-Firmware"/>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=Motorcontroller-Firmware&amp;action=history"/>
		<updated>2026-05-07T11:11:26Z</updated>
		<subtitle>Versionsgeschichte dieser Seite in Nibo Wiki</subtitle>
		<generator>MediaWiki 1.29.2</generator>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=Motorcontroller-Firmware&amp;diff=71&amp;oldid=prev</id>
		<title>Workwind am 1. Juli 2008 um 21:16 Uhr</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=Motorcontroller-Firmware&amp;diff=71&amp;oldid=prev"/>
				<updated>2008-07-01T21:16:22Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='de'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version vom 1. Juli 2008, 21:16 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l81&quot; &gt;Zeile 81:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 81:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Software]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Software]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Weblinks ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[wikipedia:Regler#PID-Regler|Wikipedia]] - PID-Regler&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	<entry>
		<id>http://www.nibo-roboter.de/mediawiki/index.php?title=Motorcontroller-Firmware&amp;diff=43&amp;oldid=prev</id>
		<title>Workwind: Die Seite wurde neu angelegt: ==PID Regler== Zur Regelung der Motoren dient folgender, modifizierter PID Regler:  image:Regler.png  Der Regelungsalgorithmus ist optimiert für Ganzahlen und wird...</title>
		<link rel="alternate" type="text/html" href="http://www.nibo-roboter.de/mediawiki/index.php?title=Motorcontroller-Firmware&amp;diff=43&amp;oldid=prev"/>
				<updated>2008-06-08T11:13:41Z</updated>
		
		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: ==PID Regler== Zur Regelung der Motoren dient folgender, modifizierter PID Regler:  &lt;a href=&quot;/wiki/Datei:Regler.png&quot; title=&quot;Datei:Regler.png&quot;&gt;image:Regler.png&lt;/a&gt;  Der Regelungsalgorithmus ist optimiert für Ganzahlen und wird...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==PID Regler==&lt;br /&gt;
Zur Regelung der Motoren dient folgender, modifizierter PID Regler:&lt;br /&gt;
&lt;br /&gt;
[[image:Regler.png]]&lt;br /&gt;
&lt;br /&gt;
Der Regelungsalgorithmus ist optimiert für Ganzahlen und wird 100 mal pro Sekunde (alle 10 ms) aufgerufen. Der Wertebereich des Ausgangssignals lieg im Intervall [-32768 ... +32768]. Der Soll- und der Ist-Wert werden als Ticks/Sekunde angegeben, ein Tick ist 1/20 einer kompletten Radumdrehung.&lt;br /&gt;
&lt;br /&gt;
==Odometrie==&lt;br /&gt;
Die Werte der vier IR-Phototransistoren werden mit einer Frequenz von ca. 8 kHz abgetastet. Die gemessenen Analogwerte werden aufbereitet und durch einen Zustandsautomaten in Schritte umgewandelt.&lt;br /&gt;
&lt;br /&gt;
==Kommandos==&lt;br /&gt;
Die folgenden Kommandos können über die TWI Schnittstelle zum Motorcontroller geschickt werden.&lt;br /&gt;
{| {{BlueTable}}&lt;br /&gt;
! Kommando !! Größe !! Byte0 !! Byte1 !! Byte2 !! Byte3 !! Byte4&lt;br /&gt;
|-&lt;br /&gt;
!Stop &lt;br /&gt;
| 1 &lt;br /&gt;
| 0x00&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
!SetPWM &lt;br /&gt;
| 5 &lt;br /&gt;
| 0x01 &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | PWM links&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | PWM rechts&lt;br /&gt;
|-&lt;br /&gt;
!SetSpeed &lt;br /&gt;
| 5 &lt;br /&gt;
| 0x02 &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Soll links&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Soll rechts&lt;br /&gt;
|-&lt;br /&gt;
!SetParameters &lt;br /&gt;
| 4 &lt;br /&gt;
| 0x03 &lt;br /&gt;
| Ki &lt;br /&gt;
| Kp &lt;br /&gt;
| Kd &lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
!ResetOdometry &lt;br /&gt;
| 5 &lt;br /&gt;
| 0x04 &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Odo links&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Odo rechts&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Stop===&lt;br /&gt;
Die beiden Motoren werden sofort abgeschaltet. Der Motorcontroller befindet sich nach dem Einschalten oder nach einem reset in diesem Zustand.&lt;br /&gt;
===SetPWM===&lt;br /&gt;
Das Puls/Pause-Verhältnis wird für die beiden Motoren auf die übertragenen Werte festgesetzt. Die Wertebereich liegt im Interval -1024 (-100%) bis +1024 (+100%).&lt;br /&gt;
===SetSpeed===&lt;br /&gt;
Der PID Regler versucht die angegebenen Soll-Drehzahlen für die Motoren zu halten. Die Geschwindigkeit wird in Ticks/Sekunde angegeben, wobei 20 Ticks einer Radumdrehung entsprechen.&lt;br /&gt;
===SetParameters===&lt;br /&gt;
Mit diesem Befehl werden die Konstanten für den PID-Regler in das EEPROM des Motorcontrollers übertragen. Sie bleiben auch nach einem Ausschalten des Roboters erhalten.&lt;br /&gt;
===ResetOdometry===&lt;br /&gt;
Dieser Befehl setzt die internen Odometriezähler auf die übertragenen Werte zurück.&lt;br /&gt;
&lt;br /&gt;
==Zustand==&lt;br /&gt;
Das folgende Datenpaket kann über die TWI Schnittstelle vom Motorcontroller abgefragt werden und beschreibt den aktuellen Zustand:&lt;br /&gt;
{| {{BlueTable}}&lt;br /&gt;
! Größe !! Byte0 !! Byte1 !! Byte2 !! Byte3 !! Byte4 !! Byte5 !! Byte6 !! Byte7&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Odo links&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Odo rechts&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Geschw. links&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Geschw. rechts&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==16-Bit Werte==&lt;br /&gt;
16-Bit Werte werden immer folgendermaßen übertragen:&lt;br /&gt;
{| {{BlueTable}}&lt;br /&gt;
! Byte0 !! Byte1&lt;br /&gt;
|-&lt;br /&gt;
| Hi-Byte&lt;br /&gt;
| Lo-Byte&lt;br /&gt;
|}&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Workwind</name></author>	</entry>

	</feed>