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

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=RN-MiniControl&amp;diff=14011</id>
		<title>RN-MiniControl</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=RN-MiniControl&amp;diff=14011"/>
				<updated>2008-09-22T20:04:42Z</updated>
		
		<summary type="html">&lt;p&gt;Momomu: /* Die Leistungsmerkmale */ typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieses Board zeichnet sich durch kompakte Größe (5cm x 7,8cm) und sehr geringen Strombedarf aus. Besonders viel Wert wurde auch auf die Anschlüsse gelegt. Nahezu alle Ports stehen somit dem Anwender zur Verfügung. Besonders günstig sind die wichtigen AD-Ports, Interrupt, Timer und PWM Anschlüsse auf die Stiftleisten verteilt worden. So lassen sich Servos, Drehgeber, RC-Empfänger aber auch Motortreiber (Doppel H-Brücken wie [[RN-VNH2Dualmotor]]) oder LCD direkt anschließen. Natürlich steht auch der [[I2C]]-Bus zur Verfügung. Alle Stecker sind zudem kompatibel zu den [[RN-Definitionen]]). &lt;br /&gt;
&lt;br /&gt;
Obwohl das Board sicher auch wie der große Bruder [[RN-Control]] zum Experimentieren als Hauptboard verwendet werden kann, ist es eigentlich in erster Linie als praktisch einsetzbares Zusatzboard für Projekte gedacht. Es ist daher kein Ersatz zu [[RN-Control]] das ja durch LEDs,Motortreiber und Steckbuchsen zum experimentieren günstiger ist.&lt;br /&gt;
Nein RN-MiniControl ist als kostengünstiges CoControllerBoard ideal als Zweit oder Drittboard in Projekten (wie Robotern etc.).&lt;br /&gt;
Ein besonderes Feature sind zwei Stiftleisten die sich auf der Unterseite einlöten lassen. Dadurch kann das Board auf andere Board wie [[RN-VNH2Dualmotor]] oder Experimentierplatinen aufgesteckt werden. &lt;br /&gt;
&lt;br /&gt;
In der Regel ist als Controller ein [[ATMega168]] als Controller vorhanden. Dieser ist weitgehend kompatibel zum [[ATMega8]], daher kann wahlweise auch ein [[ATMega8]] bestückt werden. Der [[ATMega168]] bietet jedoch weit mehr Features (6x [[PWM]] ,3 [[Timer]], 16Kbyte Speicher und [[Interrupt]] an jedem Pin)&lt;br /&gt;
&lt;br /&gt;
[[Bild:rnmincontrolfoto.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Die Leistungsmerkmale==&lt;br /&gt;
&lt;br /&gt;
*Leistungsstarker Controller  ATMega168 (kann auch durch ATMega8 ersetzt werden) &lt;br /&gt;
*6x PWM , 3 Timer, 16Kbyte Speicher und Interrupt an jedem Pin) &lt;br /&gt;
*16 Mhz Taktfrequenz &lt;br /&gt;
*Geringer Strombedarf  ca. 30 mA (im Sleepmodus natürlich noch stark reduzierbar)&lt;br /&gt;
*Universalanschluss (RN-Definition) für doppelten Motortreiber oder LCD (oder anderes)&lt;br /&gt;
*I2C-Bus (für diverse Erweiterungen z.B. Sprachausgabe RN-Speak, Relaisboard RN-Relais, Servoboards, LCD´s, SRF10 Ultraschallsensoren uvm.) oder für Ansteuerung als Slave Board)&lt;br /&gt;
* Vier dreipole Standard Stiftleisten für (Servos, Sensoren etc.)&lt;br /&gt;
* Zwei 5 polige Stiftleisten für Drehgeber, Sensoren, Aktoren&lt;br /&gt;
* RS232 TTL Pegel&lt;br /&gt;
* RS232 V24/PC Pegel&lt;br /&gt;
* Spannungsversorung wahlweise zwischen 7,2 und 18 Volt (ideal 7,2 bis 13V)&lt;br /&gt;
* 5V für externe Verbraucher herausgeführt&lt;br /&gt;
* Wichtige PWM-Ports können über Jumper auf andere Buchsen gelegt werden&lt;br /&gt;
* zwei Buchsenleisten auf der Unterseite bestückbar, dadurch läßt sich board auf andere Boards (z.B. RN-VN2Dualmotor) oder Lochrasterplatinen aufstecken&lt;br /&gt;
* [[ISP]] – Programmierschnittstelle für übliche AVR-Programmieradapter (10polig)&lt;br /&gt;
* Sehr kompakt, nur ca. 5 x 8 cm (RN-Miniformat)&lt;br /&gt;
* Programmierbar in zahlreichen Sprachen, z.B. Basic (BASCOM Compiler, eingeschränkt bis 4K wird mitgeliefert), C (C-Compiler GCC wird mitgeliefert), Assembler, Pascal&lt;br /&gt;
* Deutsche Doku &lt;br /&gt;
* Preiswerter Bausatz / Fertigmodul erhältlich – einfacher Aufbau&lt;br /&gt;
* Kein Starter- oder Applikationsboard notwendig – bereits alles notwendige integriert!&lt;br /&gt;
&lt;br /&gt;
==Diagramm und Beschreibung der Anschlüsse==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Rnmincontroldiagramm.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:rnmincontrolvonunten.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
== Portbelegung==&lt;br /&gt;
&lt;br /&gt;
[[Bild:rnmincontrolaufportbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Aufbau und Anwendung==&lt;br /&gt;
&lt;br /&gt;
Der Aufbau der Schaltung ist durch die vorgefertigte Platine und die überschaubare Anzahl an Bauelementen eigentlich völlig problemlos auch von Elektronik-Einsteigern zu bewerkstelligen. Durch den Bestückungsdruck und die Bestückungsliste, etwas weiter hinten in dieser Dokumentation, ist der Aufbau unkritisch. Auf schwierig zu lötende und schwierig reparierbare SMD Teile wurde absichtlich verzichtet. Die Schaltung ist je nach Erfahrung in ca. 30 bis 60 Minuten aufgebaut.&lt;br /&gt;
&lt;br /&gt;
Dennoch einige Anmerkungen zu kleinen Hürden für Einsteiger:&lt;br /&gt;
&lt;br /&gt;
# Möchte man die Stiftleisten zum Aufstecken auf andere Boards verwenden, so sollte man diese als erstes bestücken da diese von unten eingesteckt und von oben gelötet werden. Wenn noch keine anderen Bauteile auf der Oberseite sind, erleichtert das das Löten. Zu beachten ist, das die kurze Seite der Stiftleiste von unten eingesteckt wird. Die Stiftleisten schauen dann auf der Oberseite kaum heraus, es reicht jedoch völlig um es von oben zu verlöten.&lt;br /&gt;
&lt;br /&gt;
# Bei den Kondensatoren (Elkos) die Polung beim einlöten beachten. Diese ist auf Bauelementen und Platine aufgedruckt.&lt;br /&gt;
&lt;br /&gt;
# Den 16 Mhz Quarz mit ca. 2 mm Abstand zur Platinenoberfläche einlöten damit das Metallgehäuse keine Leiterbahnen verbindet.&lt;br /&gt;
&lt;br /&gt;
# Nicht vergessen das die zwei IC´s gesockelt werden. Also erst Sockel einlöten und dann IC einsetzen.&lt;br /&gt;
&lt;br /&gt;
# Stiftleisten möglichst gerade einlöten damit Jumper bequem gesteckt werden können&lt;br /&gt;
&lt;br /&gt;
Das waren eigentlich schon die besonderen Punkte die zu beachten sind. Ansonsten natürlich sauber mit einem 10 – 25 W Lötkolben alles auf der Unterseite verlöten. Grundkenntnisse beim Löten werden empfohlen.&lt;br /&gt;
&lt;br /&gt;
Nach dem Aufbau sollten Sie noch mal alle Lötpunkte kontrollieren. Wenn Sie dann Spannung anlegen, dann sollten deutlich weniger als 50mA Strom fließen. Ist der Strom höher, dann deutet das auf ein Lötfehler hin. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:rnmincontrolauflochraster.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
==Erläuterung der Anschlüsse, Regler und Kurzschlussbrücken==&lt;br /&gt;
&lt;br /&gt;
{| {{Blaueschmaltabelle}}&lt;br /&gt;
|'''Anschluss-Bezeichnung'''&lt;br /&gt;
|'''Erläuterung'''&lt;br /&gt;
|-&lt;br /&gt;
|JP1&lt;br /&gt;
|Dreipoliger Standard- Anschluß für beliebige Verwendung &lt;br /&gt;
&lt;br /&gt;
Belegung:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Pin 1  GND&lt;br /&gt;
Pin 2  5 Volt&lt;br /&gt;
Pin 3  Datenport (PD2 / INT0 / PCINT18)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Geeignet zum Beispiel für Servos, , RC-Empfangskanal und vieles mehr. Sehr nützlich ist das dieser Port auch voll interruptfähig ist. &lt;br /&gt;
|-&lt;br /&gt;
|JP2&lt;br /&gt;
|Dreipoliger Standard- Anschluß für beliebige Verwendung &lt;br /&gt;
&lt;br /&gt;
Belegung:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Pin 1  GND&lt;br /&gt;
Pin 2  5 Volt&lt;br /&gt;
Pin 3  Datenport (PB1 / OC1A / PCINT1) oder  (PB3 / MOSI /OC2A / PCINT3)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Geeignet zum Beispiel für Servos, , RC-Empfangskanal und vieles mehr. Sehr nützlich ist das dieser Port auch PWM (Pulsweitenmudulation) fähigvoll ist.&lt;br /&gt;
Wie ober erkennbar kann die Belegung dieses Anschlusses durch den Jumper JP10 verändert werden (wahlweise müssen zwei Jumper quer oder längs in JP10 gesteckt werden). Dadurch können unterschiedliche Timer das PWM-Signal generieren.&lt;br /&gt;
|-&lt;br /&gt;
|JP3&lt;br /&gt;
|Dreipoliger Standard- Anschluß für beliebige Verwendung &lt;br /&gt;
&lt;br /&gt;
Belegung:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Pin 1  GND&lt;br /&gt;
Pin 2  5 Volt&lt;br /&gt;
Pin 3  Datenport (PC1 / ADC1 / PCINT9)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Geeignet zum Beispiel für Servos, Sharp Entfernungssensoren, RC-Empfangskanal und vieles mehr da Port  sowohl Digital als auch Analog genutzt werden kann.&lt;br /&gt;
|-&lt;br /&gt;
|JP4&lt;br /&gt;
|Dreipoliger Standard- Anschluß für beliebige Verwendung &lt;br /&gt;
&lt;br /&gt;
Belegung:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Pin 1  GND&lt;br /&gt;
Pin 2  5 Volt&lt;br /&gt;
Pin 3  Datenport (PC0 / ADC0 / PCINT8)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Geeignet zum Beispiel für Servos, Sharp Entfernungssensoren, RC-Empfangskanal und vieles mehr da Port  sowohl Digital als auch Analog genutzt werden kann.&lt;br /&gt;
|-&lt;br /&gt;
|JP5&lt;br /&gt;
|Fünfpoliger Standard- Anschluß für beliebige Verwendung &lt;br /&gt;
&lt;br /&gt;
Belegung:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Pin 1  Batteriespannung (max. 12 V)&lt;br /&gt;
Pin 2  GND&lt;br /&gt;
Pin 3  +5V&lt;br /&gt;
Pin 4  Datenport  (PB4 / MISO / PCINT4) &lt;br /&gt;
Pin 5  Datenport  (PD4 / T0 / XCK / PCINT20)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Geeignet zum Beispiel für Sensoren und Aktoren die zwei Ports benötigen. Wegen des Timer-Ports ideal auch zum Anschluß von Drehgebern zur Wegstreckenmessung/Drehzahlmessung. &lt;br /&gt;
|-&lt;br /&gt;
|JP6&lt;br /&gt;
|Fünfpoliger Standard- Anschluß für beliebige Verwendung &lt;br /&gt;
&lt;br /&gt;
Belegung:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Pin 1  Batteriespannung (max. 12 V)&lt;br /&gt;
Pin 2  GND&lt;br /&gt;
Pin 3  +5V&lt;br /&gt;
Pin 4  Datenport  (PB2 / SS / OC1B / PCINT2) oder (PD3 / OC2B / INT1) &lt;br /&gt;
Pin 5  Datenport  (PD5 / T1 / OC0B / PCINT21)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Geeignet zum Beispiel für Sensoren und Aktoren die zwei Ports benötigen. Wegen des Timer-Ports ideal auch zum Anschluß von Drehgebern zur Wegstreckenmessung/Drehzahlmessung.&lt;br /&gt;
Aber auch Interrupt und PWM-Port ist hier verfügbar.&lt;br /&gt;
Wie ober erkennbar kann die Belegung  des Pin4 durch den Jumper JP9 verändert werden (wahlweise müssen zwei Jumper quer oder längs in JP9 gesteckt werden). Dadurch können unterschiedliche Timer das PWM-Signal generieren bzw. ein Interrupt bereitgestellt werden..&lt;br /&gt;
|-&lt;br /&gt;
|JP7&lt;br /&gt;
|Eine Stiftleiste (wird gewöhnlich von unten eingelötet) zum Aufstecken des Boards auf andere Boards oder Lochrasterplatinen. &lt;br /&gt;
&lt;br /&gt;
Belegung:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Pin 1  Datenport (PD6 / AIN0 / OC0A / PCINT22)&lt;br /&gt;
Pin 2  Datenport (PD7 / AIN1 / PCINT23)&lt;br /&gt;
Pin 3  Datenport (PB0 / ICP1 / CLKO)&lt;br /&gt;
Pin 4  Datenport (PB5 / SCK / PCINT5)&lt;br /&gt;
Pin 5  Datenport (PC3 / ADC3 / PCINT11)&lt;br /&gt;
Pin 6  Datenport (PB1 / OC1A / PCINT1) oder (PB3 / MOSI / OC2A / PCINT3)&lt;br /&gt;
Pin 7  Datenport (PB2 / SS / OC1B / PCINT2)  oder (PD3 / OC2B / INT1 / PCINT19)&lt;br /&gt;
Pin 8  Datenport (PC2 / ADC2 / PCINT10)&lt;br /&gt;
Pin 9    GND &lt;br /&gt;
Pin 10  +5V&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Über diese Stiftleiste werden gleich 8 Ports bereitgestellt. Sowohl digital, PWM, Interrupt und AD-Ports. Die Anwendungen sind dementsprechend vielfältig. So könnte beispielsweise eine komplette doppelte H-Bridge inkl. Stromüberwachung angesteuert werden (z.B. RN-Dualmotor). Die gleichen Ports stehen auch über die Wannenbuchse CTRL zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Wie ober erkennbar kann die Belegung  des Pin6 und Pin 7 durch den Jumper JP10 (Pin6) und Jumper P9 (Pin7) verändert werden (wahlweise müssen zwei Jumper quer oder längs gesteckt werden). Dadurch können unterschiedliche Timer das PWM-Signal generieren bzw. ein Interrupt bereitgestellt werden..&lt;br /&gt;
|-&lt;br /&gt;
|JP8&lt;br /&gt;
|Eine Stiftleiste (wird gewöhnlich von unten eingelötet) zum Aufstecken des Boards auf andere Boards oder Lochrasterplatinen. &lt;br /&gt;
&lt;br /&gt;
Belegung:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Pin 1   Volle Betriebsspannung (kann zur Versorgung des Boards dienen)&lt;br /&gt;
Pin 2   Volle Betriebsspannung (kann zur Versorgung des Boards dienen)&lt;br /&gt;
Pin 3   Volle Betriebsspannung (kann zur Versorgung des Boards dienen)&lt;br /&gt;
Pin 4   Nicht belegt&lt;br /&gt;
Pin 5   Nicht belegt&lt;br /&gt;
Pin 6   GND&lt;br /&gt;
Pin 7   GND&lt;br /&gt;
Pin 8   GND&lt;br /&gt;
Pin 9   GND &lt;br /&gt;
Pin 10  PC0 (ADC0 / PCINT8) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Stiftleiste dient also vornehmlich zur Versorung des Boards mit einer Betriebsspannung von 7,2 bis 18 Volt. Man kann sich so die Versorgung über die Schraubklemmen ersparen (Schraublemmen sind parallel geschaltet). Beim Board RNVN2Dualmotor wird davon Gebrauch gemacht, dort fehlt die Verkabelung weg.  &lt;br /&gt;
|-&lt;br /&gt;
|JP9&lt;br /&gt;
|Pinbelegung ändern&lt;br /&gt;
Durch 2 Jumper die hier längs oder quer gesteckt  werden können, kann die Belegung der Anschlüsse JP6 Pin 4 und JP7 Pin 7 vertauscht werden. Die Vertauschung kann je nach Verwendung der Timer und PWM Ports sinnvoll sein. &lt;br /&gt;
Siehe auch unter JP6 und JP7!&lt;br /&gt;
|-&lt;br /&gt;
|JP10&lt;br /&gt;
|Pinbelegung ändern&lt;br /&gt;
Durch 2 Jumper die hier längs oder quer gesteckt  werden können, kann die Belegung der Anschlüsse JP2 Pin 3 und JP7 Pin 6 vertauscht werden. Die Vertauschung kann je nach Verwendung der Timer und PWM Ports sinnvoll sein. &lt;br /&gt;
Siehe auch unter JP2 und JP7!&lt;br /&gt;
|-&lt;br /&gt;
|JP11&lt;br /&gt;
|Pinbelegung ändern&lt;br /&gt;
Durch 2 Jumper die hier längs oder quer gesteckt  werden können, kann die Belegung der Pins 8 und Pin 7 der Universalbuchse CTRL verstauscht werden.&lt;br /&gt;
Wird RN-VNH2Dualmotor V1.11 über die  Wannenbuchse angeschlossen, so ist eine etwas andere Belegung, als es die RN-Motorbuchsen Definition vorschreibt, notwendig. Daher kann durch die Jumper die RNVN2 Dualmotor Belegung als auch die Standard RN-Definitionsbelegung gewählt werden.!&lt;br /&gt;
JP5V	Falls das Board mit einer extern stabilisierten 5V Betriebsspannung versorgt wird (z.B. über I2C-Bus) darf dieser Jumper nicht gesteckt sein. &lt;br /&gt;
Wird das Board über die Schraubklemmen oder über JP8 mit Spannung versorgt, so muss der Jumper gesteckt werden.&lt;br /&gt;
|-&lt;br /&gt;
|I2CBATT&lt;br /&gt;
|Wird der Jumper gesteckt, so wird die Batteriespannung auf den I2C-Bus geleitet oder vom I2C-Bus zur Versorgung des Boards genutzt. Im letzteren Fall darf das Board nicht zusätzlich noch über JP8 oder die Schraubklemme Power versorgt werden.&lt;br /&gt;
|-&lt;br /&gt;
|5VEXT&lt;br /&gt;
|5V&lt;br /&gt;
Über diese zweipolige Stiftleiste können andere Boards, Sensoren, Aktoren mit 5V Spannung versorgt werden. Bei höherer Stromentnahme oder sehr hoher Eingangspannung sollte man den Spannungsregler kühlen.&lt;br /&gt;
|-	&lt;br /&gt;
|I2C-Bus&lt;br /&gt;
|I2C-Bus&lt;br /&gt;
Über diesen Bus lassen sich zahlreiche Erweiterungen an dieses Board anschließen. Zum Beispiel werden auf der Seite robotikhardware.de passende Boards mit Sprachausgabe, Relais, Schrittmotorsteuerung etc. angeboten.&lt;br /&gt;
Aber auch dieses Board kann selbst als Slave-Board, also als Erweiterung an ein anderes Hauptboard angeschlossen werden.&lt;br /&gt;
Der I2C-Bus benötig nur 2 Leitungen für alle Funktionen. Entsprechend der Roboternetz-Norm wird hier ein 2x5 poliger Stecker angeschlossen. Die Belegung entspricht exakt der anderer Roboternetz Boards.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Pin 1  SCL (Taktleitung)&lt;br /&gt;
Pin 2  GND&lt;br /&gt;
Pin 3  SDA (Datenleitung)&lt;br /&gt;
Pin 4  GND&lt;br /&gt;
Pin 5  +5V&lt;br /&gt;
Pin 6  GND&lt;br /&gt;
Pin 7  +5V&lt;br /&gt;
Pin 8  GND&lt;br /&gt;
Pin 9   Batteriespannung&lt;br /&gt;
Pin 10  Wird hier nicht genutzt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die PIN´s 5,7 können über Jumper I2C5V mit den 5V des Boards verbunden werden. Pin 9 kann über Jumper I2CBATT genutzt werden.&lt;br /&gt;
|-&lt;br /&gt;
|ISP&lt;br /&gt;
|ISP – IN SYSTEM PROGRAMMING&lt;br /&gt;
Über diesen Anschluß kann der  Controller auf dem Sprachboard mit einem Standard ISP-Kabel direkt an einen Parallelport des PC´s angeschlossen und programmiert werden.&lt;br /&gt;
Die Belegung des ISP-Anschlusses ist zu dem weit verbreitetet STK200 Programmier Dongle kompatibel. Ein entsprechender Dongle kann man sich entweder selber basteln (siehe Artikel „ARV Einstieg leicht gemacht“ unter www.roboternetz.de) oder fertig bestellen (z.B. www.robotikhardware.de). &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Pin 1 MOSI&lt;br /&gt;
Pin 2 VCC&lt;br /&gt;
Pin 3 Nicht belegt&lt;br /&gt;
Pin 4 GND&lt;br /&gt;
Pin 5 RESET&lt;br /&gt;
Pin 6 GND&lt;br /&gt;
Pin 7 SCK&lt;br /&gt;
Pin 8 GND&lt;br /&gt;
Pin 9 MISO&lt;br /&gt;
Pin 10 GND &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Power&lt;br /&gt;
|Spannungsversorgung&lt;br /&gt;
Über diese Schraubklemme wird das Board mit Spannung versorgt. Es reicht eine unstabilisierte Gleichspannung von 7,2 bis 14V aus (max. 18V wenn Kühlkörper verwendet wird)&lt;br /&gt;
+ und – sind auf der Platine markiert. Die Verpolung zerstört das Board! &lt;br /&gt;
|-&lt;br /&gt;
|CTRL&lt;br /&gt;
|Universeller Datenportstecker&lt;br /&gt;
Kann für vielfältige Dinge genutzt werden, zum Beispiel als Motor-Endstufenstecker:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Pin 1 Motor 1 IN 1 &lt;br /&gt;
Pin 2 Motor 1 IN 2 &lt;br /&gt;
Pin 3 Motor 2 IN 1 &lt;br /&gt;
Pin 4 Motor 2 IN 2 &lt;br /&gt;
Pin 5 AD Port der Strom messen kann&lt;br /&gt;
Pin 6 Enable Motor1 ein (eventuell PWM) &lt;br /&gt;
Pin 7 AD Port der Strom messen kann&lt;br /&gt;
Pin 8 Enable Motor2 ein (eventuell PWM) &lt;br /&gt;
Pin 9 GND &lt;br /&gt;
Pin 10 Logikspannung 5V &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
oder als LCD-Buchse:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Pin 1 DB7 &lt;br /&gt;
Pin 2 DB6 &lt;br /&gt;
Pin 3 DB5 &lt;br /&gt;
Pin 4 DB4 &lt;br /&gt;
Pin 5 EN2 (wird nur bei manchen LCDs benötigt)&lt;br /&gt;
Pin 6 EN &lt;br /&gt;
Pin 7 R/W &lt;br /&gt;
Pin 8 RS &lt;br /&gt;
Pin 9 GND &lt;br /&gt;
Pin 10 +5V &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Bitte beachten das über Jumper JP11 die Pin´s 7 und 8 vertauscht werden können.&lt;br /&gt;
|-&lt;br /&gt;
|RS232&lt;br /&gt;
|PC kompatible RS232 Schnittstelle&lt;br /&gt;
Über ein Adapterkabel kann die serielle Schnittstelle des PC direkt mit dem Board verbunden werden. Dies ist dann sinnvoll, wenn Fehler in Programmen gesucht . Einfache PRINT Anweisungen werden von einem Terminalprogramm angezeigt.&lt;br /&gt;
Hier kann Hyperterminal von Windows oder das eingebaute Terminalprogramm von Bascom empfohlen werden.&lt;br /&gt;
&lt;br /&gt;
Die Belegung ist kompatibel zum Conrad Roboter CCRP5:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Pin 1 RX&lt;br /&gt;
Pin 2 GND&lt;br /&gt;
Pin 3 TX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ein geeignetes Anschlußkabel kann schnell selbst angefertigt werden oder gibt  es bei robotikhardware.de bereits fertig&lt;br /&gt;
|-&lt;br /&gt;
|RS232_TTL&lt;br /&gt;
|Die serielle Schnittstelle (RS232) im 5V-TTL-Pegel. Diese Schnittstelle ist vor allem dann interessant, wenn mehrere Controller miteinander verbunden werden. Die Stiftleiste ist 4-polig ausgelegt, um Verwechslungen mit der RS232 und dem PC-Pegel (+/-12V) zu vermeiden. Zudem lässt sich so ein Pegelwandler-Schaltkreis (z.B. Max232) anschließen und mit Spannung versorgen).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Pin 1   RX&lt;br /&gt;
Pin 2   TX&lt;br /&gt;
Pin 3   GND&lt;br /&gt;
Pin 4   5V&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn diese Buchse genutzt werden soll, muss das IC3 (MAX232) aus der Fassung entfernt werden.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Schaltplan==&lt;br /&gt;
&lt;br /&gt;
[[Bild:rnminicontrolschaltplan.gif|thumb|center|Anklicken um zu vergrößern]]&lt;br /&gt;
&lt;br /&gt;
==Bestückungsplan==&lt;br /&gt;
&lt;br /&gt;
[[Bild:rnmincontrolbestueckungsplan.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:platineminicontrol.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
==Bestückungsliste für RN-MiniControl==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bauteil Wert       Beschreibung                   Best.Nr.&lt;br /&gt;
&lt;br /&gt;
C1     100n        Keramik Kondensator            KERKO100N&lt;br /&gt;
C2     22p         22pF Kondensator               KERKO-500 22p&lt;br /&gt;
C3     22p         22pF Kondensator               KERKO-500 22p&lt;br /&gt;
C4     100n        100nF Keramik Kondensator      KERKO100N&lt;br /&gt;
C5     4,7uF       Elko                           SM 4,7/50RAD&lt;br /&gt;
C6     4,7uF       Elko                           SM 4,7/50RAD&lt;br /&gt;
C7     4,7uF       Elko                           SM 4,7/50RAD&lt;br /&gt;
C8     4,7uF       Elko                           SM 4,7/50RAD&lt;br /&gt;
C9     100n        Keramik Kondensator            KERKO100N&lt;br /&gt;
C10    100n        Keramik Kondensator            KERKO100N&lt;br /&gt;
C11    220uF       Elko                           RAD 220/35&lt;br /&gt;
C12    100n        Keramik Kondensator            KERKO100N&lt;br /&gt;
C13    10uF        Elko 10 uF                     RAD 105 10/63&lt;br /&gt;
C14    100n        Keramik Kondensator            KERKO100N&lt;br /&gt;
C15    100n        Keramik Kondensator            KERKO100N&lt;br /&gt;
I2C                Wannenstecker 10pol            WSL10G&lt;br /&gt;
I2C5V   ;          Stiftleiste 2polig             LU2,5MS2&lt;br /&gt;
I2CBATT            Stiftleiste 2polig             LU2,5MS2&lt;br /&gt;
IC1                Spannungsregler 78S05          78S05&lt;br /&gt;
IC2                28 polige IC Fassung &lt;br /&gt;
IC2                MEGA8 Controller oder besser ATMega168 &lt;br /&gt;
IC3                16 polige IC Fassung &lt;br /&gt;
IC3                MAX232 RS232 Treiber DIP       MAX 232&lt;br /&gt;
ISP                Wannenbuchse 10pol             WSL10G&lt;br /&gt;
JP1                Stiftleiste 3 polig            LU 2,5 MS3&lt;br /&gt;
JP2                Stiftleiste 3 polig            LU 2,5 MS3&lt;br /&gt;
JP3                Stiftleiste 3 polig            LU 2,5 MS3&lt;br /&gt;
JP4                Stiftleiste 3 polig            LU 2,5 MS3&lt;br /&gt;
JP5                Stiftleiste 5 polig            LU 2,5 MS5&lt;br /&gt;
JP5V               Stiftleiste 2polig             LU 2,5 MS2&lt;br /&gt;
JP6                Stiftleiste 5 polig            LU 2,5 MS5&lt;br /&gt;
JP7                Stiftleiste 10 polig von unten bestücken (siehe Doku)&lt;br /&gt;
JP8                Stiftleiste 10 polig von unten bestücken (siehe Doku)&lt;br /&gt;
JP9                Stiftleiste 2x2polig&lt;br /&gt;
&lt;br /&gt;
L1                 Induktivität 10uH              smcc 10u&lt;br /&gt;
MOTORTREIBER       Wannenbuchse 10 pol            WSL10G&lt;br /&gt;
POWER              Schraubklemme 2 polig          AKL 101-02&lt;br /&gt;
Q1     16 Mhz      Quarz 16 Mhz                   16-HC49U-S&lt;br /&gt;
R1                 Metallschichtwiderstand 10k    Conrad 408280-12&lt;br /&gt;
R2                 Metallschichtwiderstand 10k    Conrad 408280-12&lt;br /&gt;
R3                 Metallschichtwiderstand 10k    Conrad 408280-12&lt;br /&gt;
RS232              Stiftleiste 3 polig            LU 2,5 MS3&lt;br /&gt;
RS232_TTL          Stiftleiste 4 polig            LU 2,5 MS4&lt;br /&gt;
&lt;br /&gt;
                   10 Stück Jumper vergoldet&lt;br /&gt;
                   4 Stück Befestigungsbolzen 12mm&lt;br /&gt;
                   1 Stück RN-MiniControl Platine   &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Der erste Test==&lt;br /&gt;
&lt;br /&gt;
Nachdem Board aufgebaut ist, können wir daran gehen und das Board testen. Zunächst sollten noch einmal alle Jumper (Kurzschlussbrücken) überprüft werden.&lt;br /&gt;
Danach ein möglichst ein Netzteil mit 7,2 bis 13 V anschließen, für höhere Spannungen benötigt man noch keinen Kühlkörper. Günstige Akkus gibt’s auch bei robotikhardware.de.  Wir empfehlen ein 9,6V oder 12V Akku.&lt;br /&gt;
&lt;br /&gt;
Hat das Netzteil den falschen Stecker, einfach abschneiden und Drähte so in die Schraubklemmen einfügen. Auf Polung achten (Verpolung zerstört das Board).&lt;br /&gt;
Falls Sie ein Messgerät haben, können Sie auch den Strombedarf des Boards checken. Wenn alles korrekt zusammengebaut wurde, muss dieser deutlich niedriger als 50 mA liegen. Ein wesentlich höherer Strom würde auf Lötfehler hin deuten.&lt;br /&gt;
Ein weiterer Test wäre das anfassen des Spannungsreglers 78S05. Er darf warm bis sehr warm werden, aber man darf sich nicht dran verbrennen. Er ist im übrigen gegen Überlastung geschützt!&lt;br /&gt;
&lt;br /&gt;
[[Bild:Avrtutorial_ispkabel.jpeg|thumb|Programmierkabel]]Stimmt das alles, dann kann man den ISP-Programmieradpapter anschließen. Es eignet sich jeder gängige ISP Dongle der STK200 / STK300 kompatibel ist. Bei 16 Mhz machen allerdings billig Lösungen manchmal sehr viele Übertragungsfehler. Hier empfehle ich den [[AVR-ISP Programmierkabel]]. &lt;br /&gt;
&lt;br /&gt;
Über den Programmieradapter wird nun das Board mit der Druckerschnittstelle ihres PC verbunden. Dabei ist darauf zu achten das der ISP-Stecker auch in die richtige Wannenbuchse auf dem Board gesteckt wird. &lt;br /&gt;
&lt;br /&gt;
''Eine Verwechslung kann den ISP-Programmer oder den Controller zerstören.''&lt;br /&gt;
&lt;br /&gt;
Also unbedingt auf die Beschriftung achten! Falschrum kann man ihn nicht aufstecken.&lt;br /&gt;
 &lt;br /&gt;
Ist man kein AVR-Profi, so empfehle ich für den Test des Board´s die Entwicklungsumgebung und Programmiersprache [[Bascom]]. Ein schneller Basic-Compiler mit  hervorragender Benutzeroberfläche.&lt;br /&gt;
&lt;br /&gt;
==Testprogramm==&lt;br /&gt;
&lt;br /&gt;
Das nachfolgende Testprogramm definiert alle Ports als Eingabeports und zeigt dessen Zustand (Pegel) über die RS232 Schnittstelle an. Damit das Programm korrekt läuft müsse die Fusebits zuvor korrekt eingestellt werden (siehe Doku etwas weiter hinten). Zudem muss der PC über ein RS232 Kabel mit dem Board verbunden werden.&lt;br /&gt;
Über ein Terminalprogramm (das auf 9800 Baud / 8 Bit) eingestellt ist, kann man dann den Zustand der Ports auf dem PC sehen. Es bietet sich an das in Bascom eingebaute Terminalprogramm zu nutzen. Das Ergebnis sieht dann in etwa so auf dem PC-Monitor aus: &lt;br /&gt;
&lt;br /&gt;
[[Bild:rnminicontrolterminal.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Einige Ports haben im Bild Low Pegel. Dies liegt abe rnur daran das während der Aufnahme des Bildes ein Zusatzboard (RN-VH2Dualmotor) angeschlossen war. Wenn dies bei ihnen nicht der Fall ist, so werden bis auf TX (PD1) alle Ports High Pegel besitzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hier das zuständige Testprogramm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'###################################################&lt;br /&gt;
'rn_minicontrol_porttest.bas&lt;br /&gt;
'Dieses Programm ist für das universelle und kompakte&lt;br /&gt;
'Controllerboard RN-MINICONTROL ab Version 1.3&lt;br /&gt;
'Boardbeschreibung Roboternetz.de oder robotikhardware.de&lt;br /&gt;
'Verwendeter Compiler Bascom V 1.11.7.9&lt;br /&gt;
'&lt;br /&gt;
'Aufgabe:&lt;br /&gt;
'&lt;br /&gt;
'Die Ausgabe erfolgt über Bascom Terminalprogramm. PC muss&lt;br /&gt;
'somit über RS232 Kabel verbunden sein&lt;br /&gt;
'Es wird der Zustand aller Ports angezeigt&lt;br /&gt;
'&lt;br /&gt;
'Autor: Frank&lt;br /&gt;
'Weitere Beispiele und Beschreibung der Hardware&lt;br /&gt;
'unter http://www.Roboternetz.de bzw. robotikhardware.de&lt;br /&gt;
'###################################################&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'Die üblichen Definitionen bei Standardprogrammen auf Miniboard&lt;br /&gt;
$regfile = &amp;quot;m168def.dat&amp;quot;&lt;br /&gt;
$crystal = 16000000                                         'Quarzfrequenz&lt;br /&gt;
$baud = 9600&lt;br /&gt;
$hwstack = 32&lt;br /&gt;
$framesize = 32&lt;br /&gt;
$swstack = 32&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Declare Sub Showadport()&lt;br /&gt;
Declare Sub Showdigitalports()&lt;br /&gt;
&lt;br /&gt;
Wait 1&lt;br /&gt;
Print &amp;quot;Warte ich boote ...&amp;quot;&lt;br /&gt;
Wait 2&lt;br /&gt;
Print&lt;br /&gt;
Print &amp;quot;**** RN-MINICONTROL 1.3 *****&amp;quot;&lt;br /&gt;
Print &amp;quot;Das neue kleine Controllerboard&amp;quot;&lt;br /&gt;
Print &amp;quot;RN-MiniControl, der kleine Bruder von RN-Control&amp;quot;&lt;br /&gt;
Print &amp;quot;Nach RN-Definition vom www.roboternetz.de&amp;quot;&lt;br /&gt;
Print&lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
  Showdigitalports&lt;br /&gt;
  Showadport&lt;br /&gt;
  Print&lt;br /&gt;
  Print &amp;quot;Viel Spass mit dem Board!&amp;quot;&lt;br /&gt;
  Wait 10&lt;br /&gt;
  Print&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'Zeigt Die Analogen Messwerte An Port A An&lt;br /&gt;
Sub Showadport()&lt;br /&gt;
Local Ws As Word&lt;br /&gt;
Local I As Integer&lt;br /&gt;
&lt;br /&gt;
   Config Adc = Single , Prescaler = Auto , Reference = Avcc       'Internal&lt;br /&gt;
   Config Portc = Input&lt;br /&gt;
   For I = 0 To 5                         ' Alle internen Pullup Widerständ abschalten&lt;br /&gt;
      Portc.i = 0&lt;br /&gt;
   Next I&lt;br /&gt;
&lt;br /&gt;
   Print&lt;br /&gt;
   Print &amp;quot;Ermittelte Messwerte an Port C:&amp;quot;&lt;br /&gt;
   For I = 0 To 5                        ' Alle Eingäne inkl.messen&lt;br /&gt;
      Start Adc&lt;br /&gt;
      Ws = Getadc(i)&lt;br /&gt;
      Print &amp;quot;Pin&amp;quot; ; I ; &amp;quot; ADC-Wert= &amp;quot; ; Ws&lt;br /&gt;
   Next I&lt;br /&gt;
End Sub&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'Zeigt den Zustand der Ports an&lt;br /&gt;
Sub Showdigitalports()&lt;br /&gt;
Local Zustand As String * 6&lt;br /&gt;
Local I As Integer&lt;br /&gt;
&lt;br /&gt;
   Config Portb = Input&lt;br /&gt;
   For I = 0 To 5                        ' Alle internen Pullup Widerständ ein&lt;br /&gt;
      Portb.i = 1&lt;br /&gt;
   Next I&lt;br /&gt;
   Print&lt;br /&gt;
   Print &amp;quot;Ermittelter I/O Zustand Port B:&amp;quot;&lt;br /&gt;
   For I = 0 To 5                        ' Alle Eingäne inkl.messen&lt;br /&gt;
      If Pinb.i = 1 Then&lt;br /&gt;
         Zustand = &amp;quot;H&amp;quot;&lt;br /&gt;
      Else&lt;br /&gt;
         Zustand = &amp;quot;L&amp;quot;&lt;br /&gt;
      End If&lt;br /&gt;
      Print &amp;quot;Pin&amp;quot; ; I ; &amp;quot;=&amp;quot; ; Pinb.i ; &amp;quot;(&amp;quot; ; Zustand ; &amp;quot;)  &amp;quot;;&lt;br /&gt;
   Next I&lt;br /&gt;
   Print&lt;br /&gt;
&lt;br /&gt;
   Config Portc = Input&lt;br /&gt;
   For I = 0 To 5                        ' Alle internen Pullup Widerständ ein&lt;br /&gt;
      Portc.i = 1&lt;br /&gt;
   Next I&lt;br /&gt;
   Print&lt;br /&gt;
   Print &amp;quot;Ermittelter I/O Zustand Port C:&amp;quot;&lt;br /&gt;
   For I = 0 To 5                           ' Alle Eingäne inkl.messen&lt;br /&gt;
      If Pinc.i = 1 Then&lt;br /&gt;
         Zustand = &amp;quot;H&amp;quot;&lt;br /&gt;
      Else&lt;br /&gt;
         Zustand = &amp;quot;L&amp;quot;&lt;br /&gt;
      End If&lt;br /&gt;
      Print &amp;quot;Pin&amp;quot; ; I ; &amp;quot;=&amp;quot; ; Pinc.i ; &amp;quot;(&amp;quot; ; Zustand ; &amp;quot;)  &amp;quot;;&lt;br /&gt;
   Next I&lt;br /&gt;
   Print&lt;br /&gt;
&lt;br /&gt;
   Config Portd = Input&lt;br /&gt;
   For I = 0 To 7                           ' Alle internen Pullup Widerständ ein&lt;br /&gt;
      Portd.i = 1&lt;br /&gt;
   Next I&lt;br /&gt;
   Print&lt;br /&gt;
   Print &amp;quot;Ermittelter I/O Zustand Port D:&amp;quot;&lt;br /&gt;
   For I = 0 To 5                           ' Alle Eingäne inkl.messen&lt;br /&gt;
      If Pind.i = 1 Then&lt;br /&gt;
         Zustand = &amp;quot;H&amp;quot;&lt;br /&gt;
      Else&lt;br /&gt;
         Zustand = &amp;quot;L&amp;quot;&lt;br /&gt;
      End If&lt;br /&gt;
      Print &amp;quot;Pin&amp;quot; ; I ; &amp;quot;=&amp;quot; ; Pind.i ; &amp;quot;(&amp;quot; ; Zustand ; &amp;quot;)  &amp;quot;;&lt;br /&gt;
   Next I&lt;br /&gt;
   Print&lt;br /&gt;
&lt;br /&gt;
End Sub&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Beispielanwendung mit Ultraschall==&lt;br /&gt;
Passender Quellcode [[Ultraschall SRF05 an RN-MiniControl|hier]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf05minicontrol.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Bascom]]&lt;br /&gt;
*[[Bascom - Erstes Programm in den AVR Controller übertragen]]&lt;br /&gt;
* [[Ultraschall SRF05 an RN-MiniControl]]&lt;br /&gt;
*[[RN-Definitionen]]&lt;br /&gt;
*[[RN-Board FAQ-Seite]]&lt;br /&gt;
*[[Avr]]&lt;br /&gt;
*[[RN-Mega8]] &lt;br /&gt;
*[[RN-Control]]&lt;br /&gt;
*[[RNBFRA-Board]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/dload.php?action=file&amp;amp;file_id=315 Noch ausführliche Anleitung und Bauplan als PDF-Datei]&lt;br /&gt;
&lt;br /&gt;
{{Platinenservice|http://www.robotikhardware.de}}&lt;br /&gt;
{{Bausatzservice|http://www.robotikhardware.de}}&lt;br /&gt;
{{Fertigservice|http://www.robotikhardware.de}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Elektronik]]&lt;br /&gt;
[[Category:Projekte]]&lt;br /&gt;
[[Category:Microcontroller]]&lt;br /&gt;
[[Kategorie:Quellcode Bascom]]&lt;/div&gt;</summary>
		<author><name>Momomu</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=RN-Digi&amp;diff=14007</id>
		<title>RN-Digi</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=RN-Digi&amp;diff=14007"/>
				<updated>2008-09-21T04:28:08Z</updated>
		
		<summary type="html">&lt;p&gt;Momomu: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:rndigi.gif|thumb|RN-Digi I2C Digitalanzeige]]Dieses Board wurde als Erweiterung zu den Roboternetz-Controllerboards (RNBFRA,RN-Control,MinControl usw.) entworfen, eignet sich aber für alle Controllerboards mit I2C-Bus Anschluß.&lt;br /&gt;
Es dient zum Anzeigen von 4 stelligen Zahlen. Dabei werden optisch ansprechende und extra große 7-Segmentanzeigen bereitgestellt (ca. 25mm Ziffernhöhe, Anzeige rot, wahlweise auch kleinere). Die Ansteuerung erfolgt sehr einfach per I2C-Bus mit einfachen Kommandos.&lt;br /&gt;
Die Anwendungsmöglichkeiten sind dem Programmierer vorbehalten. Denkbar wäre das Board für den Aufbau von Uhren, Funkuhren, Zählern, Lottozahlgeneratoren, Würfeln, Temperaturanzeigen, Kompass usw., welche von weitem erkennbar sein müssen. In Kombination mit RN-Speak und RN-Control wäre zum Beispiel ein sprechender Wecker denkbar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Als hier die Leistungsmerkmale auf einen Blick==&lt;br /&gt;
&lt;br /&gt;
* Sehr einfache Ansteuerung per [[I2C]] Bus&lt;br /&gt;
* Keine extra Spannungszuführung notwendig da Board über das [[I2C]]-Bus Kabel mit Strom verorgt wird&lt;br /&gt;
* Programmierbare Helligkeit&lt;br /&gt;
* Jedes einzelne Segment der 7-Segmentanzeige kann angesteuert werden&lt;br /&gt;
* 4 Dezimalpunkte möglich&lt;br /&gt;
* Controller wird nicht belastet. Die Ziffern werden solange angezeigt, bis neue Ziffer gesendet wird. Keine Interrupts oder Bus-Belastung!&lt;br /&gt;
* Preisgünstig und schneller Aufbau in wenigen Minuten möglich&lt;br /&gt;
* 4 verschiedene Slave Adressen per Jumper wählbar &lt;br /&gt;
* Kleines Lochraster Experimentierfeld für Erweiterungen Taster, I2C-Baustein (Funkuhr etc.) etc.&lt;br /&gt;
* Kompakt, Roboternetz-Standard-Format 100x78 (halbes Euroformat), Huckepack mit anderen Boards kombinierbar&lt;br /&gt;
* Wahlweise mit großen oder kleineren Segmenten bestückbar (Bausatz inkl. Große)&lt;br /&gt;
* Platinen und Bausatzervice&lt;br /&gt;
* Deutsche Doku mit Programmbeispielen für [[RN-Control]] und [[RNBFRA-Board]]&lt;br /&gt;
&lt;br /&gt;
==Aufbau und Anwendung==&lt;br /&gt;
&lt;br /&gt;
Der Aufbau der Schaltung ist durch die vorgefertigte Platine bzw. den Bausatz eigentlich völlig problemlos auch von Elektronik-Einsteigern zu bewerkstelligen. Durch den Bestückungsdruck und die Bestückungsliste, etwas weiter hinten in dieser Dokumentation, ist der Aufbau unkritisch. Aufgrund moderner Bauteile (7 Segment Controller) ist es gelungen, das dieses Board nur sehr wenig Bauteile benötigt. Auf Logikbausteine konnte verzichtet werden, da das Board über ein Spezial-IC für die Ansteuerung von 7 Segmentanzeigen verfügt. &lt;br /&gt;
&lt;br /&gt;
Die Schaltung benötig in der Regel eine Aufbauzeit von ca. 30 – 60 Minuten.&lt;br /&gt;
&lt;br /&gt;
Dennoch einige Anmerkungen zu kleinen Hürden:&lt;br /&gt;
&lt;br /&gt;
# Beim Einlöten der Segmentanzeigen darauf achten das diese richtig rum eingesetzt werden. Der Dezimalpunkt muss nach unten zum IC zeigen.&lt;br /&gt;
# Auf dem I2C-Bus muss die Batteriespannung liegen (entsprechend der [[RN-Definitionen|Roboternetz-Definition]]). Bei einigen Controllerboards muss dazu ein Jumper auf dem jeweiligen Controllerboard eingesteckt werden. Näheres dazu steht bei der Beschreibung der I2C-Buchse ihres Controllerboards.&lt;br /&gt;
Die Batteriespannung darf 7V nicht unterschreiten, falls die großen Segmentanzeigen eingesetzt werden. Ist die Batteriespannung höher als 10V, so muss der im Bestückungsplan eingezeichnete Spannungsregler auch eingelötet werden. Bei 7 bis 10 V Batteriespannung kann dieser wahlweise weggelassen werden. Bei den kleineren Segmentanzeigen reicht bereits 5V aus.&lt;br /&gt;
&lt;br /&gt;
Das waren eigentlich schon die besonderen Punkte die zu beachten sind. Ansonsten natürlich sauber mit einem 15–25 W [[löten|Lötkolben]] alles auf der Unterseite verlöten. Grundkenntnisse beim Löten werden empfohlen.&lt;br /&gt;
Nach dem Aufbau sollten Sie nochmals alle Lötpunkte kontrollieren.&lt;br /&gt;
 &lt;br /&gt;
Nach dem Aufbau können Sie das Baord übe rein 10 poliges Kabel mit ihrem Controllerboard verbinden. Eine Funktion ist jedoch erst dann zu ersehen, wenn Sie das Testprogramm auf Ihrem Controller starten.&lt;br /&gt;
&lt;br /&gt;
==Erläuterung der Anschlüsse, Regler und Kurzschlussbrücken==&lt;br /&gt;
&lt;br /&gt;
{|{{Blaueschmaltabelle}}&lt;br /&gt;
|'''Anschlussbezeichnung'''&lt;br /&gt;
|'''Erläuterung'''&lt;br /&gt;
|-&lt;br /&gt;
|'''ADR1'''&lt;br /&gt;
|Slave Adresse einstellen &lt;br /&gt;
Über  diesen Jumper wird die Slave Adresse eingestellt. Über diese Adresse wird das Board später vom Controller angewählt.&lt;br /&gt;
&lt;br /&gt;
In dieser Stellung ist die Slave Adresse auf  Hex 70 gesetzt&lt;br /&gt;
&lt;br /&gt;
[[Bild:rndigijumpperstellung1.gif]] &lt;br /&gt;
&lt;br /&gt;
In dieser Stellung ist die Slave Adresse auf  Hex 76 gesetzt&lt;br /&gt;
&lt;br /&gt;
[[Bild:rndigijumpperstellung2.gif]] &lt;br /&gt;
 &lt;br /&gt;
Durch diese Stellung wird bestimmt, das die Slave Adresse über den Jumper ADR2 gewählt wird (siehe ADR2)&lt;br /&gt;
&lt;br /&gt;
[[Bild:rndigijumpperstellung3.gif]] &lt;br /&gt;
|- &lt;br /&gt;
|'''ADR2'''&lt;br /&gt;
|Slave Adresse einstellen &lt;br /&gt;
Dieser Jumper hat nur dann eine Bedeutung, wenn ADR1 entsprechend eingestellt ist (siehe ADR1)&lt;br /&gt;
&lt;br /&gt;
In dieser Stellung ist die Slave Adresse auf  Hex 72 gesetzt&lt;br /&gt;
&lt;br /&gt;
[[Bild:rndigijumpperstellung3.gif]] &lt;br /&gt;
 &lt;br /&gt;
In dieser Stellung ist die Slave Adresse auf  Hex 74 gesetzt&lt;br /&gt;
&lt;br /&gt;
[[Bild:rndigijumpperstellung5.gif]] &lt;br /&gt;
|- &lt;br /&gt;
|'''JP1'''&lt;br /&gt;
|Spannungsregler aktiv&lt;br /&gt;
Das Board verfügt über einen 8 bzw. 9 V Spannungsregler welcher über das I2C-Buskabel mit der Eingangsspannung (Batteriespannung) versorgt wird. Ist die Batteriespannung unter 10V, so kann der Spannungsregler hiermit überbrückt und weggelassen werden. &lt;br /&gt;
Der Kurzschlusstecker muss jedoch entfernt werden, wenn die Spannung über 10V liegt.&lt;br /&gt;
I2C-Bus&lt;br /&gt;
|-&lt;br /&gt;
|'''I2C-Bus'''&lt;br /&gt;
|Wenn Sie die I2C-version des Boards gebaut haben, also den entsprechenden Controller eingesteckt haben, dann ist diese I2C-Buchse für die Steuerung zuständig. &lt;br /&gt;
Der I2C-Bus benötig nur 2 Leitungen für alle Funktionen. Entsprechend der Roboternetz-Norm wird hier ein 2x5 poliger Stecker angeschlossen. Die Belegung entspricht exakt der von allen Roboternetz-Boards: &lt;br /&gt;
&lt;br /&gt;
 Pin 1 SCL (Taktleitung)&lt;br /&gt;
 Pin 3 SDA (Datenleitung)&lt;br /&gt;
 Pin 5 +5V  (Wird nur ab Version 1.1 der Platine für Experimentierfeld benutzt)&lt;br /&gt;
 Pin 7 +5V  (Wird nur ab Version 1.1 der Platine für Experimentierfeld benutzt)&lt;br /&gt;
 Pin 9  Batteriespannung Diese Leitung wird zur Spannungsversorgung benutzt &lt;br /&gt;
 Pin 2,4,6,8 GND&lt;br /&gt;
 Pin 10  INT  Diese Leitung wird bei RN-Digi nicht benutzt&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Bestückungsplan==&lt;br /&gt;
&lt;br /&gt;
[[Bild:rndigiBestueckungsplan_rt.gif|center|framed|RN-Digi Bestückungsplan (verschiedene Segentanzeigen einsetzbar)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Bauteile Bestückungsliste==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Bauteil Wert                Beschreibung                &lt;br /&gt;
----------------------------------------------------------------------------&lt;br /&gt;
ADR1                        Stiftleiste 3 polig            LU 2,5 MS3&lt;br /&gt;
ADR2                        Stiftleiste                    LU 2,5 MS2&lt;br /&gt;
C1        100n              Keramik Kondensator            KERKO100N&lt;br /&gt;
C2        100n              Keramik Kondensator            KERKO100N&lt;br /&gt;
C3        2,7n              Keramik Kondensator            KERKO 2,7N&lt;br /&gt;
C4        220uF             Elko                           RAD 220/35&lt;br /&gt;
I2C-BUS                     Wannebuchse Gewinkelt          WSL 10W&lt;br /&gt;
IC1       SAA1064           IC SAA1064   LED Ansteuerung   SAA 1064&lt;br /&gt;
IC2       7808T             Spannungsregler 8V             7808&lt;br /&gt;
JP1                         Stiftleiste 2polig             LU 2,5 MS2&lt;br /&gt;
LEDSA10-1 SIEBENSEGMENTSC10 Siebensegmentanzeige 21mm hoch Conrad 160032-U0&lt;br /&gt;
LEDSA10-2 SIEBENSEGMENTSC10 Siebensegmentanzeige 21mm hoch Conrad 160032-U0&lt;br /&gt;
LEDSA10-3 SIEBENSEGMENTSC10 Siebensegmentanzeige 21mm hoch Conrad 160032-U0&lt;br /&gt;
LEDSA10-4 SIEBENSEGMENTSC10 Siebensegmentanzeige 21mm hoch Conrad 160032-U0&lt;br /&gt;
R1        22k               Metallschichtwiderstand 22k    METALL 22K &lt;br /&gt;
R3        10k               Metallschichtwiderstand 10k    Metall 10,0k&lt;br /&gt;
R2        18k               Metallschichtwiderstand 18k    METALL 18,0K&lt;br /&gt;
T1        BC338-40          Transistor BC 338-40           BC 338-40&lt;br /&gt;
T2        BC338-40          Transistor BC 338-40           BC 338-40&lt;br /&gt;
3 Stück                     Befestigungsbolzen&lt;br /&gt;
1 Stück                     Bedruckte Platine              Robotikhardware.de&lt;br /&gt;
2 Stück                     Jumper&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Schaltplan==&lt;br /&gt;
&lt;br /&gt;
[[Bild:rndigischaltplan.gif|thumb|center|Zum vergrößern anklicken]]&lt;br /&gt;
&lt;br /&gt;
==Inbetriebnahme  der Digitalanzeige==&lt;br /&gt;
&lt;br /&gt;
Nachdem Board aufgebaut bzw. ein Fertigboard erworben haben, wird hier kurz erläutert wie Sie das Board in Betrieb nehmen.&lt;br /&gt;
&lt;br /&gt;
# Zunächst vergewissern Sie sich das alle Jumper korrekt entsprechend der vorhergehenden Beschreibung gesteckt sind. Beachte Sie bei der Slave Adresse, das sich diese nicht mit anderen Boards überscheidet. Insbesondere RNBFRA-Besitzer sollten darauf achten das die PCF-Bausteine auf dem [[RNBFRA-Board]] eine andere Slave Adresse besitzen.&lt;br /&gt;
# Verbinden Sie das Board über ein 10 poliges I2C-Kabel mit ihrem Controllerboard (passende Kabel gibt es bei robotikhardware.de bzw. lassen sich sehr schnell selbst anfertigen). Achten Sie auch darauf das ihr Controllerboard die Batteriespannung auf den I2C-Bus legt. Bei [[RN-Control]]  erfolgt dies über einen Jumper, welcher standardmäßig bereits richtig eingesteckt ist.&lt;br /&gt;
# Laden Sie das nachfolgende Testprogramm in Ihren Controller und betätigen Sie Taster 2&lt;br /&gt;
&lt;br /&gt;
''Das war´s!''&lt;br /&gt;
&lt;br /&gt;
==Beispielprogramm für RN-Control==&lt;br /&gt;
[[Bild:rndigicontrol.jpg|thumb|Digitalanzeige an RN-Control]]&lt;br /&gt;
Wie einfach das Board angesteuert wird, kann dem Beispielprogramm entnommen werden. Es ist empfehlenswert die Unterfunktionen einfach in ein eigenes Programm zu übernehmen. Einfacher geht’s nicht mehr!&lt;br /&gt;
Wer noch mehr Infos zu der Ansteuerung benötigt kann auch in das Datenblatt des IC´s SAA1064 schaun, dieses ist auf der CD (die dem Bausatz beiliegt) enthalten. &lt;br /&gt;
&lt;br /&gt;
Tastenbelegung im Demo&lt;br /&gt;
&lt;br /&gt;
'''Taste 1''' Zeigt auf allen 4 Ziffern eine 0 &lt;br /&gt;
&lt;br /&gt;
'''Taste 2'''	Zählt nacheinander alle 4 Ziffern von 0 auf 9 hoch &lt;br /&gt;
&lt;br /&gt;
'''Taste 3'''	In dem Demo nicht verwendet&lt;br /&gt;
&lt;br /&gt;
'''Taste 4'''	In dem Demo nicht verwendet&lt;br /&gt;
&lt;br /&gt;
'''Taste 5'''	In dem Demo nicht verwendet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'###################################################&lt;br /&gt;
'rncontrol_digitest.BAS   Demo zu RN-Digi&lt;br /&gt;
'für&lt;br /&gt;
'RoboterNetz Board RN-CONTROL ab Version 1.1 und&lt;br /&gt;
'Zusatzboard RN-DIGI (vierstellig großes LED-Display per I2C)&lt;br /&gt;
&lt;br /&gt;
'&lt;br /&gt;
'Aufgabe:&lt;br /&gt;
' Dieses Testprogramm demonstriert die Ansteuerung von RN-Digi&lt;br /&gt;
&lt;br /&gt;
' Den verschiedenen Tasten sind bestimmte Funktionen zugeordnet&lt;br /&gt;
' Taste 1: Alle Ziffern auf 0 stellen (genau wie bei Reset)&lt;br /&gt;
' Taste 2: Nacheinander alle Ziffern von 0 bis 9 zählen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'Autor: Frank&lt;br /&gt;
'Weitere Beispiele und Beschreibung der Hardware&lt;br /&gt;
'unter http://www.Roboternetz.de oder robotikhardware.de&lt;br /&gt;
'Eigene Programmbeispiele sind im Roboternetz gerne willkommen!&lt;br /&gt;
'##############################################################&lt;br /&gt;
&lt;br /&gt;
Declare Function Tastenabfrage() As Byte&lt;br /&gt;
Declare Sub Led_display_init()&lt;br /&gt;
Declare Sub Led_display(byval Ziffer As Byte , Byval Zahl As Byte)&lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;m16def.dat&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Const Rn_digi_slave_write = &amp;amp;H70&lt;br /&gt;
Const Rn_digi_slave_read = &amp;amp;H71&lt;br /&gt;
Const Dezimalpunktziffer = 2                                'Segment wo Dezimalpunkt leuchten soll (0=keinen)&lt;br /&gt;
&lt;br /&gt;
Dim Segmente As Byte&lt;br /&gt;
Dim Z As Byte&lt;br /&gt;
Dim I As Byte&lt;br /&gt;
Dim N As Integer&lt;br /&gt;
Dim Ton As Integer&lt;br /&gt;
&lt;br /&gt;
$crystal = 16000000                                         'Quarzfrequenz&lt;br /&gt;
$baud = 9600&lt;br /&gt;
&lt;br /&gt;
Config Adc = Single , Prescaler = Auto                      'Für Tastenabfrage und Spannungsmessung&lt;br /&gt;
Config Pina.7 = Input                                       'Für Tastenabfrage&lt;br /&gt;
Porta.7 = 1                                                 'Pullup Widerstand ein&lt;br /&gt;
Dim Taste As Byte&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I2cinit&lt;br /&gt;
Led_display_init&lt;br /&gt;
&lt;br /&gt;
I = 0&lt;br /&gt;
Sound Portd.7 , 400 , 450                                   'BEEP&lt;br /&gt;
Sound Portd.7 , 400 , 250                                   'BEEP&lt;br /&gt;
Sound Portd.7 , 400 , 450                                   'BEEP&lt;br /&gt;
Print&lt;br /&gt;
Print &amp;quot;**** RN-CONTROL  V1.4 *****&amp;quot;&lt;br /&gt;
Print &amp;quot;Das neue Experimentier- und Roboterboard&amp;quot;&lt;br /&gt;
Print&lt;br /&gt;
Do&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Taste = Tastenabfrage()&lt;br /&gt;
   If Taste &amp;lt;&amp;gt; 0 Then&lt;br /&gt;
&lt;br /&gt;
      Select Case Taste&lt;br /&gt;
         Case 1&lt;br /&gt;
            For Z = 1 To 4&lt;br /&gt;
              Led_display Z , 0&lt;br /&gt;
            Next Z&lt;br /&gt;
&lt;br /&gt;
         Case 2&lt;br /&gt;
            For Z = 1 To 4&lt;br /&gt;
               For I = 0 To 9&lt;br /&gt;
                   Led_display Z , I&lt;br /&gt;
                   Waitms 300&lt;br /&gt;
               Next I&lt;br /&gt;
            Next Z&lt;br /&gt;
&lt;br /&gt;
         Case 3&lt;br /&gt;
&lt;br /&gt;
         Case 4&lt;br /&gt;
&lt;br /&gt;
         Case 5&lt;br /&gt;
&lt;br /&gt;
      End Select&lt;br /&gt;
      Sound Portd.7 , 400 , 500                             'BEEP&lt;br /&gt;
   End If&lt;br /&gt;
&lt;br /&gt;
   Waitms 100&lt;br /&gt;
Loop&lt;br /&gt;
&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'Diese Unterfunktion fragt die Tastatur am analogen Port ab&lt;br /&gt;
Function Tastenabfrage() As Byte&lt;br /&gt;
Local Ws As Word&lt;br /&gt;
&lt;br /&gt;
   Tastenabfrage = 0&lt;br /&gt;
   Ton = 600&lt;br /&gt;
   Start Adc&lt;br /&gt;
   Ws = Getadc(7)&lt;br /&gt;
   If Ws &amp;lt; 1010 Then&lt;br /&gt;
      Select Case Ws&lt;br /&gt;
         Case 410 To 450&lt;br /&gt;
            Tastenabfrage = 1&lt;br /&gt;
            Ton = 550&lt;br /&gt;
         Case 340 To 380&lt;br /&gt;
            Tastenabfrage = 2&lt;br /&gt;
            Ton = 500&lt;br /&gt;
         Case 265 To 305&lt;br /&gt;
            Tastenabfrage = 3&lt;br /&gt;
            Ton = 450&lt;br /&gt;
         Case 180 To 220&lt;br /&gt;
            Tastenabfrage = 4&lt;br /&gt;
            Ton = 400&lt;br /&gt;
         Case 100 To 130&lt;br /&gt;
            Tastenabfrage = 5&lt;br /&gt;
            Ton = 350&lt;br /&gt;
      End Select&lt;br /&gt;
      Sound Portd.7 , 400 , Ton                             'BEEP&lt;br /&gt;
   End If&lt;br /&gt;
&lt;br /&gt;
End Function&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sub Led_display_init()&lt;br /&gt;
  I2cstart&lt;br /&gt;
  I2cwbyte Rn_digi_slave_write&lt;br /&gt;
  I2cwbyte 0                                                'Control Byte&lt;br /&gt;
&lt;br /&gt;
  'Dynamic Alternative Mode und Helligkeit&lt;br /&gt;
  'Die oberen 3 Bits bestimmen die Helligkeit&lt;br /&gt;
  'Wenn es dunkler sein soll dann z.b. &amp;amp;B0110111&lt;br /&gt;
  I2cwbyte &amp;amp;B1110111&lt;br /&gt;
&lt;br /&gt;
  I2cstop&lt;br /&gt;
&lt;br /&gt;
  'Alle Ziffern auf 0&lt;br /&gt;
  For Z = 1 To 4&lt;br /&gt;
       Led_display Z , 0&lt;br /&gt;
  Next Z&lt;br /&gt;
&lt;br /&gt;
End Sub&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sub Led_display(ziffer An Byte , Zahl As Byte)&lt;br /&gt;
     I2cstart&lt;br /&gt;
     I2cwbyte Rn_digi_slave_write&lt;br /&gt;
     I2cwbyte Ziffer&lt;br /&gt;
&lt;br /&gt;
     Select Case Zahl&lt;br /&gt;
         Case 0:&lt;br /&gt;
               Segmente = &amp;amp;H3F&lt;br /&gt;
         Case 1:&lt;br /&gt;
                Segmente = &amp;amp;H06&lt;br /&gt;
         Case 2:&lt;br /&gt;
                Segmente = &amp;amp;H5B&lt;br /&gt;
         Case 3:&lt;br /&gt;
                Segmente = &amp;amp;H4F&lt;br /&gt;
         Case 4:&lt;br /&gt;
                Segmente = &amp;amp;H66&lt;br /&gt;
         Case 5:&lt;br /&gt;
                Segmente = &amp;amp;H6D&lt;br /&gt;
         Case 6:&lt;br /&gt;
                Segmente = &amp;amp;H7D&lt;br /&gt;
         Case 7:&lt;br /&gt;
                Segmente = &amp;amp;H07&lt;br /&gt;
         Case 8:&lt;br /&gt;
                Segmente = &amp;amp;H7F&lt;br /&gt;
         Case 9:&lt;br /&gt;
                Segmente = &amp;amp;H67&lt;br /&gt;
         Case Else :&lt;br /&gt;
                Segmente = &amp;amp;H80                             'Ansonsten Dezimalpunkt&lt;br /&gt;
&lt;br /&gt;
     End Select&lt;br /&gt;
&lt;br /&gt;
     If Dezimalpunktziffer = Ziffer Then Segmente = Segmente Or &amp;amp;H80&lt;br /&gt;
     I2cwbyte Segmente&lt;br /&gt;
     I2cstop&lt;br /&gt;
End Sub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit haben Sie den ersten Einstieg erfolgreich abgeschlossen. &lt;br /&gt;
Wenn Sie das Demoprogramm gründlich studieren werden Sie viele Sachen davon ableiten und in eigenen Programmen verwenden können.&lt;br /&gt;
&lt;br /&gt;
==Autor==&lt;br /&gt;
* [[Benutzer:Frank|Frank]]&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[I2C]]&lt;br /&gt;
* [[Bascom]]&lt;br /&gt;
* [[RN-Definitionen]]&lt;br /&gt;
* [[RN-Board FAQ-Seite]]&lt;br /&gt;
* [[RN-Control]]&lt;br /&gt;
* [[RNBFRA-Board]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
[http://www.roboternetz.de/phpBB2/dload.php?action=file&amp;amp;file_id=170 Komplette Anleitung als PDF-Datei]&lt;br /&gt;
&lt;br /&gt;
{{Platinenservice|http://www.robotikhardware.de}}&lt;br /&gt;
{{Bausatzservice|http://www.robotikhardware.de}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Elektronik]]&lt;br /&gt;
[[Category:Kommunikation]]&lt;br /&gt;
[[Category:Projekte]]&lt;br /&gt;
[[Category:Microcontroller]]&lt;/div&gt;</summary>
		<author><name>Momomu</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Spinnenbeine_(Hexapods)&amp;diff=14006</id>
		<title>Spinnenbeine (Hexapods)</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Spinnenbeine_(Hexapods)&amp;diff=14006"/>
				<updated>2008-09-21T04:22:12Z</updated>
		
		<summary type="html">&lt;p&gt;Momomu: /* geradeaus 3:3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Einleitung und grundsätzliche Anmerkungen==&lt;br /&gt;
Da z.Zt. immer mehr Hobbyrobotiker auf den Geschmack kommen sich einen Hexapod (oder andere Beinzahl) selbst zu bauen, möchte ich einige grundsätzliche Tipps geben und Hindernisse aufzeigen. Laufroboter gehören von der mechanischen Seite und der Programmierung zu den schwersten Hobbyroboterprojekten. Ein Hexabot ist demnach kein Roboter für: &amp;quot;so eben schnell&amp;quot; sondern will wohl durchdacht und geplant werden. In den meisten Hobbyanwendungen hat ein Hexabot einen Durchmesser von etwa 500mm und ein Gewicht zwischen 1kg und 3kg. Da mit höherem Gewicht die Kosten für passende Servos enorm ansteigen, durchbrechen Hexabots ab 3kg sehr schnell die 1000€-Marke. Auch Hexabots mit einem Gewicht zwischen 1kg bis 2kg können leicht einige Hundert Euro kosten. Konsequenter Leichtbau ist also eine der Herausforderungen und zugleich ein wichtiger Tipp. &lt;br /&gt;
Für die Energieversorgung empfehlen sich leichte Lithium-Polymer-Akkus; aus Kostengründen kann auch mit (deutlich schwereren) RC-Akkus gearbeitet werden. Falls Bleiakkus zum Einsatz kommen sollen, übersteigen im Regelfall die daraus resultierenden mechanischen Probleme weit den Nutzfaktor.&lt;br /&gt;
&lt;br /&gt;
Bemerkung zu Laufrobotern mit deutlich mehr als 3kg: &lt;br /&gt;
Sobald auf Modellbauservos verzichtet wird und Getriebemotoren zum Einsatz kommen sollen, gilt es einige Dinge besonders zu beachten. Ein Servo verfügt im allgemeinen über Getriebemotor, Potentiometer und eine integrierte Schaltung zur Ansteuerung. Wird nun nur ein Getriebemotor verwendet, müssen Potentiometer und integrierte Schaltung auf andere Weise bereitgestellt werden. Dies führt zu zusätzlichen Kosten. Des Weiteren sind die meisten Getriebemotoren auf Drehzahl ausgelegt und nicht auf Halten der Kräfte. Für ein Roboterbein sind die Bewegungswege sehr kurz und lediglich kleine Stellbewegung nötig, so dass die Motoren hauptsächlich auf Halten beansprucht werden. Bei ungünstiger Wahl der Motoren können sich diese erhitzen und dadurch zerstört werden. Auch sollte ab 5kg jede Achse bzw. jedes Knickelement kugelgelagert werden um die Reibungsverluste zu minimieren. &lt;br /&gt;
Bei 18 Achsen und somit 18-36 Kugellagern werden die Kosten enorm. &lt;br /&gt;
Als Fazit kann somit gesagt werden: Eine vernünftige Lösung über 10kg ist mit enormen Kosten verbunden, daher ist sie als Hobbyprojekt nicht mehr geeignet.&lt;br /&gt;
&lt;br /&gt;
==Spinnenbeine, Hexapods, Quadropods und Polypods==&lt;br /&gt;
&lt;br /&gt;
Wenn man sich erstmal nicht damit zufriedengibt, einfach mit den Beinen irgendwie herumzurudern (&amp;quot;Hauptsache, es bewegt sich&amp;quot;), sind Beinbewegungen gar nicht so ohne. Die Profis verwenden hier für die exakte Berechnung der Beine das Verfahren der inversen Kinematik. Da es sich bei diesem Thema jedoch um sehr spezielle mathematische Verfahren und aufwendige Berechnungen handelt, beschränken wir uns auf die einfachere und etwas ungenauere Lösung mit fest programmierten Positionen für die einzelnen Schritte.&lt;br /&gt;
&lt;br /&gt;
Schauen wir uns mal die häufigste Variante an, das sind die echsen- oder spinnenartigen Bauformen. Hauptmerkmal ist, dass die Beine seitlich am Körper angebracht sind.&lt;br /&gt;
&lt;br /&gt;
Dabei können folgende Anordnungen und Beine unterschieden werden: &lt;br /&gt;
Die auf dem Bild gezeigte Anordnung von 3 Beinen links so wie rechts ist die gängigste für Hexabots. Alternativ können die Beine auch in einem Sechseck angeordnet werden (siehe auch Bild weiter unten). Diese Anordnung hat den Vorteil, dass sie etwas wendiger ist, dies erkauft man sich durch eine etwas komplizierte Programmierung. Denn die Beinstellungen sind hier aufwendiger. &lt;br /&gt;
&lt;br /&gt;
Roboter mit nur 4 Beinen werden gemeinhin als Quadropods bezeichnet. &lt;br /&gt;
Roboter mit mehr als 6 Beinen werden als Polypod bezeichnet.&lt;br /&gt;
&lt;br /&gt;
==Ein Beinpaar im Querschnitt==&lt;br /&gt;
Das hier dargestellte Bein hat 3 Gelenke (jedoch sind nur 2 sichtbar). Einmal ein Gelenk an der Schulter und eines am Knie, das nicht sichtbare ist in der ansicht von Oben dafür verantwortlich das Bein vor und zurück zu bewegen. &lt;br /&gt;
Somit hat diese Bein 3 Freiheitsgrade (1x Knie, 1x Schulter (auf und ab) und 1x Schulter (vor zurück) dies wird oft auch als 3DOF (Degree of Freedom) bezeichnet. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Podlegside.jpg]]&lt;br /&gt;
&lt;br /&gt;
(Die Beinhaltung ist hier ganz allgemein gehalten, tatsächlich sind da große Unterschiede, je nach Bauart.)&lt;br /&gt;
*Z ist die vertikale Drehachse des &amp;quot;Schulter&amp;quot;-Gelenks&lt;br /&gt;
*h ist die Höhe des Körpers über dem Boden&lt;br /&gt;
*a ist der Oberschenkel&lt;br /&gt;
*&amp;amp;beta; der Winkel des Oberschenkels&lt;br /&gt;
*K ist das Knie&lt;br /&gt;
*b ist der Unterschenkel &lt;br /&gt;
*&amp;amp;alpha; der Winkel im Knie &lt;br /&gt;
*F ist der Fußpunkt&lt;br /&gt;
*&amp;amp;gamma; der Winkel, den der Unterschenkel mit dem Boden einnimmt&lt;br /&gt;
*r ist der resultierende Radius des Fußpunktes um die Schulter&lt;br /&gt;
*M der Schwerpunkt unseres Roboters &lt;br /&gt;
*br der Abstand des Schwerpunkts bis zur Schulter&lt;br /&gt;
&lt;br /&gt;
==Variante &amp;quot;Lynxmotion&amp;quot;==&lt;br /&gt;
[[Bild:Podlynx.jpg]]&lt;br /&gt;
&lt;br /&gt;
Hier ist der Oberschenkel gewissermaßen geteilt. Der vertikal bewegliche Teil davon ist sehr kurz und als Parallelogramm ausgeführt, um den Unterschenkel senkrecht halten zu können. Dieser kann aktiv nur gehoben und gesenkt werden, durch Federn hat er aber ein gewisses seitliches Spiel.&lt;br /&gt;
&lt;br /&gt;
Der Zweck dieser Konstruktion ist es, das Schultergelenk mit nur einem Freiheitsgrad sehr robust ausführen zu können.&lt;br /&gt;
Diese Variante der Beine hat also insgesammt nur 2 Freiheitsgrade (Schulter und heben, senken) und wird oft auch als DOF2 bezeichnet.&lt;br /&gt;
&lt;br /&gt;
==Ein (linkes) Bein von oben==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Podlegtop.jpg]]&lt;br /&gt;
&lt;br /&gt;
man findet die Werte aus der seitlichen Ansicht&lt;br /&gt;
*Z die vertikale Drehachse der Schulter (bleiben wir mal bei &amp;quot;Schulter&amp;quot;)&lt;br /&gt;
*r&amp;lt;sup&amp;gt;min&amp;lt;/sup&amp;gt; als kleinstmöglicher Radius, den der Fußpunkt beschreiben kann (wenn der Unterschenkel maximal angezogen ist = kleines &amp;amp;alpha;)&lt;br /&gt;
*r&amp;lt;sup&amp;gt;max&amp;lt;/sup&amp;gt; als größtmöglicher Radius (= großes &amp;amp;alpha;)&lt;br /&gt;
*&amp;amp;delta;&amp;lt;sup&amp;gt;max&amp;lt;/sup&amp;gt; das ist der größtmögliche Drehwinkel des Schultergelenks&lt;br /&gt;
&lt;br /&gt;
schraffiert ist der Bereich, in dem sich die &amp;quot;Fußspitze&amp;quot; bewegen kann. &lt;br /&gt;
&lt;br /&gt;
 '''s''' ist somit die größtmögliche Schrittweite (bei gerader Fortbewegung)&lt;br /&gt;
&lt;br /&gt;
und dann noch&lt;br /&gt;
*M ist der Schwerpunkt (oder Mittelpunkt) des gesamten Fahrzeuges&lt;br /&gt;
*br die halbe Breite&lt;br /&gt;
*f der Abstand dieses Beines von der Querachse&lt;br /&gt;
&lt;br /&gt;
==Beinbewegung==&lt;br /&gt;
===Geradeaus===&lt;br /&gt;
Wird das Bein nun für einen Schritt von vorne nach hinten gedreht (durch Drehung des &amp;quot;Schulter&amp;quot;-Servos), würde sich die Fußspitze in einem Kreisbogen bewegen. Unterwegs würde allerdings die Fußspitze nach außen wegrutschen. Am schlimmsten daran ist der Verlust der Haftreibung, von der noch zu sprechen ist.&lt;br /&gt;
&lt;br /&gt;
Das Bein muß also unterwegs so verkürzt werden, daß sich die Fußspitze entlang der geraden Sehne '''s''' bewegt. Und dann muss noch die Winkelgeschwindigkeit des Schultergelenks angepasst werden, da ja auch der Radius kontinuierlich verändert wird.&lt;br /&gt;
===In einer Kurve===&lt;br /&gt;
Um irgendein Fahrzeug in eine Kurve nach rechts zu bringen, kann man z.B. die Räder links schneller drehen lassen. Sowas geht bei Beinen natürlich nicht. Hier muß die Schrittweite variiert werden. &lt;br /&gt;
Und noch eine Tücke in der Kurve: Der Schreitweg '''s''' muss um den Kurvenradius-Mittelpunkt einen Bogen machen. &lt;br /&gt;
&lt;br /&gt;
[[Bild:Podtopc.jpg]]&lt;br /&gt;
&lt;br /&gt;
*P Kurven-Mittelpunkt&lt;br /&gt;
*M Fahrzeugmittelpunkt&lt;br /&gt;
*r&amp;lt;sub&amp;gt;fzg&amp;lt;/sub&amp;gt;Radius des Fahrzeuges um P&lt;br /&gt;
&lt;br /&gt;
==Anordnung der Beine==&lt;br /&gt;
===Hexapods===&lt;br /&gt;
[[Bild:Hextop1.jpg]]&lt;br /&gt;
[[Bild:Hextop2.jpg]]&lt;br /&gt;
&lt;br /&gt;
das sind zwei Möglichkeiten, bei einem Hexpod die Beine anzuordnen. Die linke Variante hat den Vorteil, dass beim Geradeauslauf die Bewegungen der Beine identisch sein können, allerdings den Nachteil, dass der Rumpf länger sein muss (damit sich die Beine nicht in die Quere kommen). Die rechte Bauart hat diesen Nachteil nicht, aber dafür sind die erforderlichen Schrittbewegungen komplizierter.&lt;br /&gt;
&lt;br /&gt;
==Schrittfolge==&lt;br /&gt;
Es ist ja klar, daß wir nicht alle sechs Beine gleichzeitig bewegen können. Man braucht also eine Schrittfolge.&lt;br /&gt;
Hier können mehrere Varianten unterschieden werden. Da ein Spinnenroboter 6 Beine hat und zum stehen 3 Stück (ein Dreieck bildend) ausreichen gibt es: 3:3. Wir können aber auch nur 2 Beine bewegen und 4 auf dem Boden stehen lassen also 2:4 oder alternativ nur ein Bein bewegen und mit den restlichen 5 auf dem Boden stehen, also 5:1. In Kurven ist das ganze noch etwas komplizierter daher beschäftigen wir uns als erstes mit: &lt;br /&gt;
&lt;br /&gt;
===geradeaus 3:3===&lt;br /&gt;
Die folgende Methode wird gerne angewandt, weil sie recht einfach und auch rein mechanisch gemacht werden kann, allerdings ist die Belastung für die Servos bei dieser Variante am grössten, denn nur 3 Beine teilen sich das gesamte Gewicht des Roboters. Die Beine 1, 4 u. 5  bzw. 2, 3 u. 6  werden jeweils gleich angesteuert, phasenmäßig aber um 180 Grad versetzt. &lt;br /&gt;
&lt;br /&gt;
Im linken Bild sind die Beine 2, 3 u. 6 gerade ganz vorne, die anderen Beine 1, 4 u. 5 ganz hinten&lt;br /&gt;
&lt;br /&gt;
[[Bild:Podstp1.jpg]]&lt;br /&gt;
[[Bild:Podstp2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Im rechten Bild sind 2, 3 u. 6 mit ihrer Bewegung fertig, sie haben das Fahrzeug fortbewegt, jetzt kehrt sich die Sache um&lt;br /&gt;
&lt;br /&gt;
'''Schwerpunkt ?'''&lt;br /&gt;
&lt;br /&gt;
Unterstützt wird das ganze Gerät immer an den Fußpunkten der Beine. Verbindet man diese jeweils drei Punkte, ergeben sich zwei Dreiecke, die in den beiden Zeichnungen gestrichelt angedeutet sind. Teilweise überlappen sie sich, das ist der Bereich, wo sich der Schwerpunkt des ganzen Fahrzeuges befinden darf.&lt;br /&gt;
&lt;br /&gt;
 Und man sieht, dass diese Fläche bemerkenswert klein ist.&lt;br /&gt;
&lt;br /&gt;
Für 3:3 laufen benötigt jedes Bein 2 Stellungen einmal vorn (A) und einmal hinten (B). Zuerst befinden sich die Beine 2,3 u 6 in Stellung A und werden auf dem Boden gleichzeitig in Stellung B bewegt. Dadurch schiebt sich der Roboter um das Stück A zu B nach vorn. Die Beine 1, 4 u 5 bewegen sich in der selben Zeit von Stellung B nach A, jedoch ohne Bodenkontakt. Wird nun diese Sequenz, im wechsel mit 1, 4 u 5 am Boden und 2, 3 u 6 in der Luft, zyklisch ausgeführt, hat man schon ein passables Laufprogramm für gerade aus.&lt;br /&gt;
&lt;br /&gt;
===geradeaus 2:4===&lt;br /&gt;
Bei dieser Variante wird jeweils ein Beinpaar gleichzeitig bewegt. Diese sind günstigerweise:&lt;br /&gt;
1 und 4 (Paar 1); 3 und 6 (Paar 2); 2 und 5 (Paar 3)&lt;br /&gt;
Jedes Beinpaar benötigt jedoch 3 Stellungen: A, B, C. Der Algoritmus teilt sich daher auch in drei Schritte auf I, II und III. &lt;br /&gt;
&lt;br /&gt;
Für Schritt I bringen wir Paar 1 in Stellung A, Paar 2 in Stellung C und Paar 3 in Stellung B. &lt;br /&gt;
Für Schritt II bewegt sich Paar 1 in Stellung B, Paar 2 in Stellung A (diese Bewegung muss ohne Bodenkontakt erfolgen) und Paar 3 in Stellung C. &lt;br /&gt;
Für Schritt III bewegt sich Paar 1 in Stellung C, Paar 2 in Stellung B und Paar 3 in Stellung A (auch wieder in der Luft) &lt;br /&gt;
Ab hier wiederholt sich das Programm&lt;br /&gt;
&lt;br /&gt;
Fazit: Die Bewegungn sind etwas aufwendiger sich zu überlegen und zu programmieren, der Roboter gewinnt aber insgesammt an Stabilität und ist nur etwas langsamer als bei 3:3. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===geradeaus 1:5===&lt;br /&gt;
Diese Variante ist die langsamste, aber dafür am stabilsten, denn das Gewicht verteilt sich auf 5 Standbeine. &lt;br /&gt;
Es werden 6 Stellungen pro Bein benötigt (A, B, C, D, E, F) und 6 Schritte. &lt;br /&gt;
Es gibt mehrere Möglichkeiten der Startaufstellung ich will hier eine kurz Darstellen: &lt;br /&gt;
Bein 1: A -&amp;gt; B  -&amp;gt; C  usw. &amp;lt;br&amp;gt;&lt;br /&gt;
Bein 2: D -&amp;gt; E  -&amp;gt; F &amp;lt;br&amp;gt;&lt;br /&gt;
Bein 3: E -&amp;gt; F  --&amp;gt; A &amp;lt;br&amp;gt;&lt;br /&gt;
Bein 4: B -&amp;gt; C  -&amp;gt; D &amp;lt;br&amp;gt;&lt;br /&gt;
Bein 5: C -&amp;gt; D  -&amp;gt; E &amp;lt;br&amp;gt;&lt;br /&gt;
Bein 6: F --&amp;gt; A -&amp;gt; B &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Pfeile geben an in Welche Stellung sich die Beine als nächstes bewegen, Bein 6 wird sich in die Stellung A bewegen. Dieser Rückstellvorgang muss immer in der Luft erfolgen. So wird sich der Roboter kontinuierlich vorwärts bewegen.&lt;br /&gt;
&lt;br /&gt;
==Hexapods in der Kurve==&lt;br /&gt;
&lt;br /&gt;
Nochmals das Bild von oben &lt;br /&gt;
&lt;br /&gt;
[[Bild:Hextop1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Die effektiven Beinwege '''s''' können auch wie die Räder von einem sechsrädrigen Fahrzeug verstanden werden.&lt;br /&gt;
&lt;br /&gt;
Wenn wir nun eine Kurve beschreiben wollen, verkürzen wir die Wege '''s''' auf einer Seite, dadurch ergibt sich ein Drehpunkt '''P'''&lt;br /&gt;
&lt;br /&gt;
[[Bild:Hexcurv1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Was man sieht: Es muss eigentlich jedes Bein eine individuelle Bewegung machen.&lt;br /&gt;
UND: jedes Bein muss seinen eigenen [[Spinnenbeine#Beinbewegung|Kurvenradius einhalten]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Hexapods drehen===&lt;br /&gt;
Alternativ, etwas einfacher zu programmieren, weil die Stellungen von Oben weiter verwendet werden können ist das Panzer Modell. &lt;br /&gt;
Konkret heisst es, die rechte Seite der Beine bewegt sich weiter nach oben, wärend die linke Seite der Beine sich nach unten bewegt. Dadurch wird der Roboter auf der Stelle gedreht. D.h. die Bewegungsrichtung der Beine ist insgesammt links zu rechts gegenläufig.&lt;br /&gt;
&lt;br /&gt;
==Kräfte am Spinnenbein==&lt;br /&gt;
Da eine genaue Berechnung recht aufwendig ist und von vielen Faktoren zusätzlich stark beeinflusst wird (Dynamik und äußere Einflüsse), soll hier nur eine qualifizierende Betrachtung erfolgen. &lt;br /&gt;
&lt;br /&gt;
Für Beine gibt es zwei völlig unterschiedliche Situationen: &lt;br /&gt;
===Ohne Bodenhaftung===&lt;br /&gt;
(Glatteis)&lt;br /&gt;
[[Bild:Podvec1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Die Beine werden auseinandergedrückt. Das Kniegelenk muß versuchen, Ober- und Unterschenkel beisammenzuhalten, und in der Schulter muss das anteilige Gewicht des Fahrzeuges getragen werden. Durch die langen Hebel wird da, je nach Beinstellung, eine beachtliche Kraft erforderlich.&lt;br /&gt;
&lt;br /&gt;
===Mit Bodenhaftung===&lt;br /&gt;
(Teppich)&lt;br /&gt;
[[Bild:Podvec2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Ganz anders bei ausreichender Haftung: Da die Füße ja nicht wegrutschen, zieht das Gewicht des Fahrzeuges über die Oberschenkel die Knie nach innen. Hier müssen die Oberschenkel nach außen stemmen, um dem entgegenzuwirken. &lt;br /&gt;
&lt;br /&gt;
''Bitte beachten, die Beine können auch günstiger als auf dem Bild dargestellt, eingerichtet werden. Wenn der Oberschenkel waagrecht zum Roboterkörper ist. Muss das Schultergelenk zwar das gesammte Gewicht des Roboters tragen, aber das Kniegelenk wird praktisch vollständig entlastet. Auch bei Eis als Untergrund würde ein Wegrutschen der Beine so verhindert werden. ''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Ein Rechenbeispiel====&lt;br /&gt;
Des weiteren ist es wichtig zu erwähnen, dass je nach Bauart des Beines, also welche die sich weiter an der Seite vom Bot befinden, enorme Hebelkräfte auftreten. Um die passenden Servos für seinen Roboter heraus zu suchen hier ein Rechenbeispiel: &lt;br /&gt;
&lt;br /&gt;
[[Bild:Beine65.jpg]]&lt;br /&gt;
&lt;br /&gt;
Gegeben sei &amp;quot;a&amp;quot; als größtmöglicher Abstand zum Körper (blau).&lt;br /&gt;
Je nach Bauart des Roboters und der Wahl der Bewegung sind entweder 3 oder 4 oder gar 5 Beine gleichzeit am Boden. Auf diese wird das gesammte Gewicht des Roboter verteilt. Uns interessiert an dieser Stelle wieviel Ncm im Schultergelenk notwendig sind um den Roboter hochzudrücken. Aus der Zeichnung wird wieder deutlich warum es sinnvoll ist den Unterschenkel möglichst senkrecht zu halten und den Oberschenkel waagrecht. Unter dieser Positionierung muss das Kniegelenk nämlich kein Drehmoment übertragen. &lt;br /&gt;
&lt;br /&gt;
Aber zurück zur Rechnung. &lt;br /&gt;
&lt;br /&gt;
das Drehmoment in der Schulter wird wie folgt berechnet: &lt;br /&gt;
(Gewicht /Anzahl der Beine)* Hebelarm = Drehmoment in der Schulter&lt;br /&gt;
&lt;br /&gt;
in unserem Beispielt &lt;br /&gt;
a=10cm; G=1kg--&amp;gt; 1kg * 9,81m/s² = 9,81N ~ 10N; 3Beine am Boden&lt;br /&gt;
&lt;br /&gt;
(10N / 3)* 10cm = 33,3Ncm&lt;br /&gt;
    &lt;br /&gt;
Wir benötigen also in der Schulter Servos welche mindestens 33,3Ncm schaffen, zur Sicherheit wären 35Ncm sinnvoller. &lt;br /&gt;
Die Rechnung lässt sich natürlich auch so umstellen, dass anhand der Servos das Gesamtgewicht ermittelt werden kann: &lt;br /&gt;
&lt;br /&gt;
(Drehmoment der Servos / Hebelarm)* Anzahl der Beine = Gewicht des Roboters&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dasselbe gilt natürlich auch für Quadropods. Nur muss man die Faktoren der Anzahl der Beine ändern&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[Servos]]&lt;br /&gt;
&lt;br /&gt;
* [[Technische Mechanik ( Statik / Elastomechanik )]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Mechanik]]&lt;br /&gt;
[[Kategorie:Praxis]]&lt;br /&gt;
&lt;br /&gt;
[http://www.lynxmotion.com Lynxmotion, Referenz für Roboter mit Beinen]&lt;/div&gt;</summary>
		<author><name>Momomu</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Spinnenbeine_(Hexapods)&amp;diff=14005</id>
		<title>Spinnenbeine (Hexapods)</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Spinnenbeine_(Hexapods)&amp;diff=14005"/>
				<updated>2008-09-21T04:13:06Z</updated>
		
		<summary type="html">&lt;p&gt;Momomu: /* Einleitung und grundsätzliche Anmerkungen */ typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Einleitung und grundsätzliche Anmerkungen==&lt;br /&gt;
Da z.Zt. immer mehr Hobbyrobotiker auf den Geschmack kommen sich einen Hexapod (oder andere Beinzahl) selbst zu bauen, möchte ich einige grundsätzliche Tipps geben und Hindernisse aufzeigen. Laufroboter gehören von der mechanischen Seite und der Programmierung zu den schwersten Hobbyroboterprojekten. Ein Hexabot ist demnach kein Roboter für: &amp;quot;so eben schnell&amp;quot; sondern will wohl durchdacht und geplant werden. In den meisten Hobbyanwendungen hat ein Hexabot einen Durchmesser von etwa 500mm und ein Gewicht zwischen 1kg und 3kg. Da mit höherem Gewicht die Kosten für passende Servos enorm ansteigen, durchbrechen Hexabots ab 3kg sehr schnell die 1000€-Marke. Auch Hexabots mit einem Gewicht zwischen 1kg bis 2kg können leicht einige Hundert Euro kosten. Konsequenter Leichtbau ist also eine der Herausforderungen und zugleich ein wichtiger Tipp. &lt;br /&gt;
Für die Energieversorgung empfehlen sich leichte Lithium-Polymer-Akkus; aus Kostengründen kann auch mit (deutlich schwereren) RC-Akkus gearbeitet werden. Falls Bleiakkus zum Einsatz kommen sollen, übersteigen im Regelfall die daraus resultierenden mechanischen Probleme weit den Nutzfaktor.&lt;br /&gt;
&lt;br /&gt;
Bemerkung zu Laufrobotern mit deutlich mehr als 3kg: &lt;br /&gt;
Sobald auf Modellbauservos verzichtet wird und Getriebemotoren zum Einsatz kommen sollen, gilt es einige Dinge besonders zu beachten. Ein Servo verfügt im allgemeinen über Getriebemotor, Potentiometer und eine integrierte Schaltung zur Ansteuerung. Wird nun nur ein Getriebemotor verwendet, müssen Potentiometer und integrierte Schaltung auf andere Weise bereitgestellt werden. Dies führt zu zusätzlichen Kosten. Des Weiteren sind die meisten Getriebemotoren auf Drehzahl ausgelegt und nicht auf Halten der Kräfte. Für ein Roboterbein sind die Bewegungswege sehr kurz und lediglich kleine Stellbewegung nötig, so dass die Motoren hauptsächlich auf Halten beansprucht werden. Bei ungünstiger Wahl der Motoren können sich diese erhitzen und dadurch zerstört werden. Auch sollte ab 5kg jede Achse bzw. jedes Knickelement kugelgelagert werden um die Reibungsverluste zu minimieren. &lt;br /&gt;
Bei 18 Achsen und somit 18-36 Kugellagern werden die Kosten enorm. &lt;br /&gt;
Als Fazit kann somit gesagt werden: Eine vernünftige Lösung über 10kg ist mit enormen Kosten verbunden, daher ist sie als Hobbyprojekt nicht mehr geeignet.&lt;br /&gt;
&lt;br /&gt;
==Spinnenbeine, Hexapods, Quadropods und Polypods==&lt;br /&gt;
&lt;br /&gt;
Wenn man sich erstmal nicht damit zufriedengibt, einfach mit den Beinen irgendwie herumzurudern (&amp;quot;Hauptsache, es bewegt sich&amp;quot;), sind Beinbewegungen gar nicht so ohne. Die Profis verwenden hier für die exakte Berechnung der Beine das Verfahren der inversen Kinematik. Da es sich bei diesem Thema jedoch um sehr spezielle mathematische Verfahren und aufwendige Berechnungen handelt, beschränken wir uns auf die einfachere und etwas ungenauere Lösung mit fest programmierten Positionen für die einzelnen Schritte.&lt;br /&gt;
&lt;br /&gt;
Schauen wir uns mal die häufigste Variante an, das sind die echsen- oder spinnenartigen Bauformen. Hauptmerkmal ist, dass die Beine seitlich am Körper angebracht sind.&lt;br /&gt;
&lt;br /&gt;
Dabei können folgende Anordnungen und Beine unterschieden werden: &lt;br /&gt;
Die auf dem Bild gezeigte Anordnung von 3 Beinen links so wie rechts ist die gängigste für Hexabots. Alternativ können die Beine auch in einem Sechseck angeordnet werden (siehe auch Bild weiter unten). Diese Anordnung hat den Vorteil, dass sie etwas wendiger ist, dies erkauft man sich durch eine etwas komplizierte Programmierung. Denn die Beinstellungen sind hier aufwendiger. &lt;br /&gt;
&lt;br /&gt;
Roboter mit nur 4 Beinen werden gemeinhin als Quadropods bezeichnet. &lt;br /&gt;
Roboter mit mehr als 6 Beinen werden als Polypod bezeichnet.&lt;br /&gt;
&lt;br /&gt;
==Ein Beinpaar im Querschnitt==&lt;br /&gt;
Das hier dargestellte Bein hat 3 Gelenke (jedoch sind nur 2 sichtbar). Einmal ein Gelenk an der Schulter und eines am Knie, das nicht sichtbare ist in der ansicht von Oben dafür verantwortlich das Bein vor und zurück zu bewegen. &lt;br /&gt;
Somit hat diese Bein 3 Freiheitsgrade (1x Knie, 1x Schulter (auf und ab) und 1x Schulter (vor zurück) dies wird oft auch als 3DOF (Degree of Freedom) bezeichnet. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Podlegside.jpg]]&lt;br /&gt;
&lt;br /&gt;
(Die Beinhaltung ist hier ganz allgemein gehalten, tatsächlich sind da große Unterschiede, je nach Bauart.)&lt;br /&gt;
*Z ist die vertikale Drehachse des &amp;quot;Schulter&amp;quot;-Gelenks&lt;br /&gt;
*h ist die Höhe des Körpers über dem Boden&lt;br /&gt;
*a ist der Oberschenkel&lt;br /&gt;
*&amp;amp;beta; der Winkel des Oberschenkels&lt;br /&gt;
*K ist das Knie&lt;br /&gt;
*b ist der Unterschenkel &lt;br /&gt;
*&amp;amp;alpha; der Winkel im Knie &lt;br /&gt;
*F ist der Fußpunkt&lt;br /&gt;
*&amp;amp;gamma; der Winkel, den der Unterschenkel mit dem Boden einnimmt&lt;br /&gt;
*r ist der resultierende Radius des Fußpunktes um die Schulter&lt;br /&gt;
*M der Schwerpunkt unseres Roboters &lt;br /&gt;
*br der Abstand des Schwerpunkts bis zur Schulter&lt;br /&gt;
&lt;br /&gt;
==Variante &amp;quot;Lynxmotion&amp;quot;==&lt;br /&gt;
[[Bild:Podlynx.jpg]]&lt;br /&gt;
&lt;br /&gt;
Hier ist der Oberschenkel gewissermaßen geteilt. Der vertikal bewegliche Teil davon ist sehr kurz und als Parallelogramm ausgeführt, um den Unterschenkel senkrecht halten zu können. Dieser kann aktiv nur gehoben und gesenkt werden, durch Federn hat er aber ein gewisses seitliches Spiel.&lt;br /&gt;
&lt;br /&gt;
Der Zweck dieser Konstruktion ist es, das Schultergelenk mit nur einem Freiheitsgrad sehr robust ausführen zu können.&lt;br /&gt;
Diese Variante der Beine hat also insgesammt nur 2 Freiheitsgrade (Schulter und heben, senken) und wird oft auch als DOF2 bezeichnet.&lt;br /&gt;
&lt;br /&gt;
==Ein (linkes) Bein von oben==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Podlegtop.jpg]]&lt;br /&gt;
&lt;br /&gt;
man findet die Werte aus der seitlichen Ansicht&lt;br /&gt;
*Z die vertikale Drehachse der Schulter (bleiben wir mal bei &amp;quot;Schulter&amp;quot;)&lt;br /&gt;
*r&amp;lt;sup&amp;gt;min&amp;lt;/sup&amp;gt; als kleinstmöglicher Radius, den der Fußpunkt beschreiben kann (wenn der Unterschenkel maximal angezogen ist = kleines &amp;amp;alpha;)&lt;br /&gt;
*r&amp;lt;sup&amp;gt;max&amp;lt;/sup&amp;gt; als größtmöglicher Radius (= großes &amp;amp;alpha;)&lt;br /&gt;
*&amp;amp;delta;&amp;lt;sup&amp;gt;max&amp;lt;/sup&amp;gt; das ist der größtmögliche Drehwinkel des Schultergelenks&lt;br /&gt;
&lt;br /&gt;
schraffiert ist der Bereich, in dem sich die &amp;quot;Fußspitze&amp;quot; bewegen kann. &lt;br /&gt;
&lt;br /&gt;
 '''s''' ist somit die größtmögliche Schrittweite (bei gerader Fortbewegung)&lt;br /&gt;
&lt;br /&gt;
und dann noch&lt;br /&gt;
*M ist der Schwerpunkt (oder Mittelpunkt) des gesamten Fahrzeuges&lt;br /&gt;
*br die halbe Breite&lt;br /&gt;
*f der Abstand dieses Beines von der Querachse&lt;br /&gt;
&lt;br /&gt;
==Beinbewegung==&lt;br /&gt;
===Geradeaus===&lt;br /&gt;
Wird das Bein nun für einen Schritt von vorne nach hinten gedreht (durch Drehung des &amp;quot;Schulter&amp;quot;-Servos), würde sich die Fußspitze in einem Kreisbogen bewegen. Unterwegs würde allerdings die Fußspitze nach außen wegrutschen. Am schlimmsten daran ist der Verlust der Haftreibung, von der noch zu sprechen ist.&lt;br /&gt;
&lt;br /&gt;
Das Bein muß also unterwegs so verkürzt werden, daß sich die Fußspitze entlang der geraden Sehne '''s''' bewegt. Und dann muss noch die Winkelgeschwindigkeit des Schultergelenks angepasst werden, da ja auch der Radius kontinuierlich verändert wird.&lt;br /&gt;
===In einer Kurve===&lt;br /&gt;
Um irgendein Fahrzeug in eine Kurve nach rechts zu bringen, kann man z.B. die Räder links schneller drehen lassen. Sowas geht bei Beinen natürlich nicht. Hier muß die Schrittweite variiert werden. &lt;br /&gt;
Und noch eine Tücke in der Kurve: Der Schreitweg '''s''' muss um den Kurvenradius-Mittelpunkt einen Bogen machen. &lt;br /&gt;
&lt;br /&gt;
[[Bild:Podtopc.jpg]]&lt;br /&gt;
&lt;br /&gt;
*P Kurven-Mittelpunkt&lt;br /&gt;
*M Fahrzeugmittelpunkt&lt;br /&gt;
*r&amp;lt;sub&amp;gt;fzg&amp;lt;/sub&amp;gt;Radius des Fahrzeuges um P&lt;br /&gt;
&lt;br /&gt;
==Anordnung der Beine==&lt;br /&gt;
===Hexapods===&lt;br /&gt;
[[Bild:Hextop1.jpg]]&lt;br /&gt;
[[Bild:Hextop2.jpg]]&lt;br /&gt;
&lt;br /&gt;
das sind zwei Möglichkeiten, bei einem Hexpod die Beine anzuordnen. Die linke Variante hat den Vorteil, dass beim Geradeauslauf die Bewegungen der Beine identisch sein können, allerdings den Nachteil, dass der Rumpf länger sein muss (damit sich die Beine nicht in die Quere kommen). Die rechte Bauart hat diesen Nachteil nicht, aber dafür sind die erforderlichen Schrittbewegungen komplizierter.&lt;br /&gt;
&lt;br /&gt;
==Schrittfolge==&lt;br /&gt;
Es ist ja klar, daß wir nicht alle sechs Beine gleichzeitig bewegen können. Man braucht also eine Schrittfolge.&lt;br /&gt;
Hier können mehrere Varianten unterschieden werden. Da ein Spinnenroboter 6 Beine hat und zum stehen 3 Stück (ein Dreieck bildend) ausreichen gibt es: 3:3. Wir können aber auch nur 2 Beine bewegen und 4 auf dem Boden stehen lassen also 2:4 oder alternativ nur ein Bein bewegen und mit den restlichen 5 auf dem Boden stehen, also 5:1. In Kurven ist das ganze noch etwas komplizierter daher beschäftigen wir uns als erstes mit: &lt;br /&gt;
&lt;br /&gt;
===geradeaus 3:3===&lt;br /&gt;
Die folgende Methode wird gerne angewandt, weil sie recht einfach und auch rein mechanisch gemacht werden kann, allerdings ist die Belastung für die Servos bei dieser Variante am grössten, denn nur 3 Beine teilen sich das gesamte Gewicht des Roboters. Die Beine 1, 4 u. 5  bzw. 2, 3 u. 6  werden jeweils gleich angesteuert, phasenmäßig aber um 180 Grad versetzt. &lt;br /&gt;
&lt;br /&gt;
Im linken Bild sind die Beine 2, 3 u. 6 gerade ganz vorne, die anderen Beine 1, 4 u. 5 ganz hinten&lt;br /&gt;
&lt;br /&gt;
[[Bild:Podstp1.jpg]]&lt;br /&gt;
[[Bild:Podstp2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Im rechten Bild sind 2, 3 u. 6 mit ihrer Bewegung fertig, sie haben das Fahrzeug fortbewegt, jetzt kehrt sich die Sache um&lt;br /&gt;
&lt;br /&gt;
'''Schwerpunkt ?'''&lt;br /&gt;
&lt;br /&gt;
Unterstützt wird das ganze Gerät immer an den Fußpunkten der Beine. Verbindet man diese jeweils drei Punkte, ergeben sich zwei Dreiecke, die in den beiden Zeichnungen strichliert angedeutet sind. Teilweise überlappen sie sich, das ist der Bereich, wo sich der Schwerpunkt des ganzen Fahrzeuges befinden darf.&lt;br /&gt;
&lt;br /&gt;
 Und man sieht, dass diese Fläche bemerkenswert klein ist.&lt;br /&gt;
&lt;br /&gt;
Für 3:3 laufen benötigt jedes Bein 2 Stellungen einmal vorn (A) und einmal hinten (B). Zuerst befinden sich die Beine 2,3 u 6 in Stellung A und werden auf dem Boden gleichzeitig in Stellung B bewegt. Dadurch schiebt sich der Roboter um das Stück A zu B nach vorn. Die Beine 1, 4 u 5 bewegen sich in der selben Zeit von Stellung B nach A, jedoch ohne Bodenkontakt. Wird nun diese Sequenz, im wechsel mit 1, 4 u 5 am Boden und 2, 3 u 6 in der Luft, zyklisch ausgeführt, hat man schon ein passables Laufprogramm für gerade aus. &lt;br /&gt;
&lt;br /&gt;
===geradeaus 2:4===&lt;br /&gt;
Bei dieser Variante wird jeweils ein Beinpaar gleichzeitig bewegt. Diese sind günstigerweise:&lt;br /&gt;
1 und 4 (Paar 1); 3 und 6 (Paar 2); 2 und 5 (Paar 3)&lt;br /&gt;
Jedes Beinpaar benötigt jedoch 3 Stellungen: A, B, C. Der Algoritmus teilt sich daher auch in drei Schritte auf I, II und III. &lt;br /&gt;
&lt;br /&gt;
Für Schritt I bringen wir Paar 1 in Stellung A, Paar 2 in Stellung C und Paar 3 in Stellung B. &lt;br /&gt;
Für Schritt II bewegt sich Paar 1 in Stellung B, Paar 2 in Stellung A (diese Bewegung muss ohne Bodenkontakt erfolgen) und Paar 3 in Stellung C. &lt;br /&gt;
Für Schritt III bewegt sich Paar 1 in Stellung C, Paar 2 in Stellung B und Paar 3 in Stellung A (auch wieder in der Luft) &lt;br /&gt;
Ab hier wiederholt sich das Programm&lt;br /&gt;
&lt;br /&gt;
Fazit: Die Bewegungn sind etwas aufwendiger sich zu überlegen und zu programmieren, der Roboter gewinnt aber insgesammt an Stabilität und ist nur etwas langsamer als bei 3:3. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===geradeaus 1:5===&lt;br /&gt;
Diese Variante ist die langsamste, aber dafür am stabilsten, denn das Gewicht verteilt sich auf 5 Standbeine. &lt;br /&gt;
Es werden 6 Stellungen pro Bein benötigt (A, B, C, D, E, F) und 6 Schritte. &lt;br /&gt;
Es gibt mehrere Möglichkeiten der Startaufstellung ich will hier eine kurz Darstellen: &lt;br /&gt;
Bein 1: A -&amp;gt; B  -&amp;gt; C  usw. &amp;lt;br&amp;gt;&lt;br /&gt;
Bein 2: D -&amp;gt; E  -&amp;gt; F &amp;lt;br&amp;gt;&lt;br /&gt;
Bein 3: E -&amp;gt; F  --&amp;gt; A &amp;lt;br&amp;gt;&lt;br /&gt;
Bein 4: B -&amp;gt; C  -&amp;gt; D &amp;lt;br&amp;gt;&lt;br /&gt;
Bein 5: C -&amp;gt; D  -&amp;gt; E &amp;lt;br&amp;gt;&lt;br /&gt;
Bein 6: F --&amp;gt; A -&amp;gt; B &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Pfeile geben an in Welche Stellung sich die Beine als nächstes bewegen, Bein 6 wird sich in die Stellung A bewegen. Dieser Rückstellvorgang muss immer in der Luft erfolgen. So wird sich der Roboter kontinuierlich vorwärts bewegen.&lt;br /&gt;
&lt;br /&gt;
==Hexapods in der Kurve==&lt;br /&gt;
&lt;br /&gt;
Nochmals das Bild von oben &lt;br /&gt;
&lt;br /&gt;
[[Bild:Hextop1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Die effektiven Beinwege '''s''' können auch wie die Räder von einem sechsrädrigen Fahrzeug verstanden werden.&lt;br /&gt;
&lt;br /&gt;
Wenn wir nun eine Kurve beschreiben wollen, verkürzen wir die Wege '''s''' auf einer Seite, dadurch ergibt sich ein Drehpunkt '''P'''&lt;br /&gt;
&lt;br /&gt;
[[Bild:Hexcurv1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Was man sieht: Es muss eigentlich jedes Bein eine individuelle Bewegung machen.&lt;br /&gt;
UND: jedes Bein muss seinen eigenen [[Spinnenbeine#Beinbewegung|Kurvenradius einhalten]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Hexapods drehen===&lt;br /&gt;
Alternativ, etwas einfacher zu programmieren, weil die Stellungen von Oben weiter verwendet werden können ist das Panzer Modell. &lt;br /&gt;
Konkret heisst es, die rechte Seite der Beine bewegt sich weiter nach oben, wärend die linke Seite der Beine sich nach unten bewegt. Dadurch wird der Roboter auf der Stelle gedreht. D.h. die Bewegungsrichtung der Beine ist insgesammt links zu rechts gegenläufig.&lt;br /&gt;
&lt;br /&gt;
==Kräfte am Spinnenbein==&lt;br /&gt;
Da eine genaue Berechnung recht aufwendig ist und von vielen Faktoren zusätzlich stark beeinflusst wird (Dynamik und äußere Einflüsse), soll hier nur eine qualifizierende Betrachtung erfolgen. &lt;br /&gt;
&lt;br /&gt;
Für Beine gibt es zwei völlig unterschiedliche Situationen: &lt;br /&gt;
===Ohne Bodenhaftung===&lt;br /&gt;
(Glatteis)&lt;br /&gt;
[[Bild:Podvec1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Die Beine werden auseinandergedrückt. Das Kniegelenk muß versuchen, Ober- und Unterschenkel beisammenzuhalten, und in der Schulter muss das anteilige Gewicht des Fahrzeuges getragen werden. Durch die langen Hebel wird da, je nach Beinstellung, eine beachtliche Kraft erforderlich.&lt;br /&gt;
&lt;br /&gt;
===Mit Bodenhaftung===&lt;br /&gt;
(Teppich)&lt;br /&gt;
[[Bild:Podvec2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Ganz anders bei ausreichender Haftung: Da die Füße ja nicht wegrutschen, zieht das Gewicht des Fahrzeuges über die Oberschenkel die Knie nach innen. Hier müssen die Oberschenkel nach außen stemmen, um dem entgegenzuwirken. &lt;br /&gt;
&lt;br /&gt;
''Bitte beachten, die Beine können auch günstiger als auf dem Bild dargestellt, eingerichtet werden. Wenn der Oberschenkel waagrecht zum Roboterkörper ist. Muss das Schultergelenk zwar das gesammte Gewicht des Roboters tragen, aber das Kniegelenk wird praktisch vollständig entlastet. Auch bei Eis als Untergrund würde ein Wegrutschen der Beine so verhindert werden. ''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Ein Rechenbeispiel====&lt;br /&gt;
Des weiteren ist es wichtig zu erwähnen, dass je nach Bauart des Beines, also welche die sich weiter an der Seite vom Bot befinden, enorme Hebelkräfte auftreten. Um die passenden Servos für seinen Roboter heraus zu suchen hier ein Rechenbeispiel: &lt;br /&gt;
&lt;br /&gt;
[[Bild:Beine65.jpg]]&lt;br /&gt;
&lt;br /&gt;
Gegeben sei &amp;quot;a&amp;quot; als größtmöglicher Abstand zum Körper (blau).&lt;br /&gt;
Je nach Bauart des Roboters und der Wahl der Bewegung sind entweder 3 oder 4 oder gar 5 Beine gleichzeit am Boden. Auf diese wird das gesammte Gewicht des Roboter verteilt. Uns interessiert an dieser Stelle wieviel Ncm im Schultergelenk notwendig sind um den Roboter hochzudrücken. Aus der Zeichnung wird wieder deutlich warum es sinnvoll ist den Unterschenkel möglichst senkrecht zu halten und den Oberschenkel waagrecht. Unter dieser Positionierung muss das Kniegelenk nämlich kein Drehmoment übertragen. &lt;br /&gt;
&lt;br /&gt;
Aber zurück zur Rechnung. &lt;br /&gt;
&lt;br /&gt;
das Drehmoment in der Schulter wird wie folgt berechnet: &lt;br /&gt;
(Gewicht /Anzahl der Beine)* Hebelarm = Drehmoment in der Schulter&lt;br /&gt;
&lt;br /&gt;
in unserem Beispielt &lt;br /&gt;
a=10cm; G=1kg--&amp;gt; 1kg * 9,81m/s² = 9,81N ~ 10N; 3Beine am Boden&lt;br /&gt;
&lt;br /&gt;
(10N / 3)* 10cm = 33,3Ncm&lt;br /&gt;
    &lt;br /&gt;
Wir benötigen also in der Schulter Servos welche mindestens 33,3Ncm schaffen, zur Sicherheit wären 35Ncm sinnvoller. &lt;br /&gt;
Die Rechnung lässt sich natürlich auch so umstellen, dass anhand der Servos das Gesamtgewicht ermittelt werden kann: &lt;br /&gt;
&lt;br /&gt;
(Drehmoment der Servos / Hebelarm)* Anzahl der Beine = Gewicht des Roboters&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dasselbe gilt natürlich auch für Quadropods. Nur muss man die Faktoren der Anzahl der Beine ändern&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[Servos]]&lt;br /&gt;
&lt;br /&gt;
* [[Technische Mechanik ( Statik / Elastomechanik )]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Mechanik]]&lt;br /&gt;
[[Kategorie:Praxis]]&lt;br /&gt;
&lt;br /&gt;
[http://www.lynxmotion.com Lynxmotion, Referenz für Roboter mit Beinen]&lt;/div&gt;</summary>
		<author><name>Momomu</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Sensorarten&amp;diff=9952</id>
		<title>Sensorarten</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Sensorarten&amp;diff=9952"/>
				<updated>2007-01-06T17:23:23Z</updated>
		
		<summary type="html">&lt;p&gt;Momomu: /* Welche Sensorarten gibt es */ typo (damits -&amp;gt; damit es)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Welche Sensorarten gibt es==&lt;br /&gt;
Damit sich ein Roboter in seiner Umgebung bewegen kann, ohne an Hindernisse anzustoßen, und damit er ein Ziel finden und ansteuern kann, muß er irgendwie seine Umwelt &amp;quot;wahrnehmen&amp;quot;. &lt;br /&gt;
Hauptanwendung für diese Informationen aus der Umwelt ist die [[Navigation]].&lt;br /&gt;
Auf dieser Seite werden die wichtigsten Sensorarten und damit es praktischer wird auch zugleich die populärsten Robotik- und Modellbau-Sensortypen vorgestellt. Auch die Pinbelegung und Anschlussmöglichkeiten dieser Sensoren werden kurz erläutert.&lt;br /&gt;
&lt;br /&gt;
==Bumpers==&lt;br /&gt;
Als Bumpers bezeichnet man eine Art Stoßstange, die einen Mikro-Switch auslöst. &lt;br /&gt;
&lt;br /&gt;
[[Bild:microschalter.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Die Auswertung erfolgt am besten digital an einem Pin mit Pull-up Widerstand. Man kann den Eingang pollen (abfragen), aber auch einen Interrupt auslösen lassen. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Whiskers (Fühler)==&lt;br /&gt;
Das sind flexible Kunststoff-Streifen von ca. 10 cm Länge, eigentlich für Datenhandschuhe vorgesehen. Aber man kann sie auch als Fühler einsetzen, und daher auch für die Kollisions-Sensorik verwenden. Beim Verbiegen steigt der Widerstand an.  &lt;br /&gt;
&lt;br /&gt;
[[Bild:flexs_200.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Um zu messen, wird mit einem zweiten Widerstand ein Spannungsteiler aufgebaut, der dann mit einem Analog-Eingang einen Grad der Verbiegung erkennen läßt. Sie werden häufig auch Flexsensoren genannt. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Incremental-Geber==&lt;br /&gt;
Dienen zur Erfassung von Drehzahl bzw. der Messung von Wegstrecken&lt;br /&gt;
===Drehgeber Sharp GP1A30 und GP1A38===&lt;br /&gt;
&lt;br /&gt;
[[Bild:gp1a30.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Beim Sharp GP1A30 und GP1A38 handelt es sich um Gabellichtschranken mit inkrementaler Drehgeberfunktion. Beide sind im Grunde von den Anschlüssen identisch, lediglich kann GP1A38 noch etwas höhere Drehzahlen messen. Im Gegensatz zu herkömmlichen Gabellichtschranken können mit dieser sowohl Drehzahl als auch Drehrichtung ermittelt werden. Notwendig sind dafür nur 2 digitale Ports. Verzichtet man auf die Auswertung der Drehrichtung, reicht nur ein Port.&lt;br /&gt;
Der Sensor hat den Vorteil das die Signale bereits TTL kompatibel sind und direkt an ein Controllerboard angeschlossen werden können. Ein Beispielprogramm zu [[RN-Control]] findet man hier&lt;br /&gt;
&lt;br /&gt;
* [[Beispiel Drehzahlmessung mit RN-Control]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:GP1A30.gif|center]]&lt;br /&gt;
&lt;br /&gt;
Die Auswertung inkrementaler Drehgeber ist recht einfach. Ein Ausgang liefert einen Impuls pro Markierung (Scheibe auf der Welle). Prüft man bei jedem Impuls (Flanke) noch gleichzeitig den aktuellen Pegel des zweiten Ausganges, so kann daraus die Drehrichtung abgeleitet werden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Signalverlauf an den Sensorausgängen ist phasenversetzt:&lt;br /&gt;
&lt;br /&gt;
[[Bild:inkremental1.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:drehgeber_an_rncontrol.gif|center|framed|Beispielschaltung wenn man lediglich die Drehzahl ohne Drehrichtung auswerten möchte. Als Widerstand hat sich 330 Ohm als gut erwiesen.]]&lt;br /&gt;
&lt;br /&gt;
==Optische Sensoren==&lt;br /&gt;
===Helligkeit=== &lt;br /&gt;
Die Hauptanwendung solcher Sensoren ist, den hellsten Fleck im Raum zu finden.&lt;br /&gt;
Dies ist auch Teil vieler Roboterwettbewerbe. (Robo Callenge (2002 sic!), 'Ein Platz an der Sonne')&lt;br /&gt;
&lt;br /&gt;
Solche Sensoren können einfache [[LDR]]s oder [[Photodioden]] bzw. [[Phototransistoren]] sein.&lt;br /&gt;
LDRs haben den Vorteil, dass sie relativ hoch aussteuern, der große Nachteil ist aber, dass diese Sensoren ziemlich Wärmeempfindlich und etwas träge.&lt;br /&gt;
Photodioden und Phototransistoren haben den Vorteil, dass sie sehr genau sind, aber nicht besonders hoch aussteuern. Diese sollte man evtl. über einen OpAmp verstärken.&lt;br /&gt;
&lt;br /&gt;
[[Bild:fotowiderstand.jpg|center|framed|Ein typischer Fotowiderstand]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:SFH300.jpg|center|framed|SFH300, ein typischer Phototransistor]]&lt;br /&gt;
&lt;br /&gt;
Die Suche nach dem hellsten Fleck im Raum ist wie ich finde ein gutes Einsteigerthema!&lt;br /&gt;
&lt;br /&gt;
===CNY70===&lt;br /&gt;
&lt;br /&gt;
Der CNY70 ist ein Foto-Reflex Optokoppler. In einem würfelförmigem Gehäuse befindet sich eine Infrarot LED als Sender und ein Infrarot Fototransistor als Empfänger. Damit kann auf kurze Entfernung (wenige Millimeter) das reflektierte Licht der IR-LED durch den IR-Fototransistor gemessen werden.  &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Bild:cny70.jpg|thumb|200px|CNY70]]&lt;br /&gt;
|[[Bild:cny70_pinout.jpg|framed|CNY70 Vishay Pinout]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Achtung:''' Es existiert auch noch ein CNY70 von Temic mit anderer Pinbelegung, dort ist der Fototransistor verdreht eingebaut.&lt;br /&gt;
&lt;br /&gt;
Der CNY70 eignet sich für eine Vielzahl von Sensoren. Z.B. als Liniensensor, Radencoder, Abgrunddetektor und Lichtschranke. Allerdings ist er empfindlich gegen Streulicht, da  das Licht der IR-LED nicht moduliert ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:cny70_schem1.gif|thumb|center|600px|CNY70 als Liniensensor]]&lt;br /&gt;
&lt;br /&gt;
Der Liniensensor benötigt 2 A/D Wandler Eingänge des Prozessors. Die CNY70 sollten so nah wie möglich in Bodennähe angebracht sein (1..3mm). Der P-Kanal FET BS250 dient als Schalter für die IR LEDs des CNY70. Damit spart man Strom, wenn der Liniensensor nicht benötigt wird. Allerdings wird dafür ein weiterer Prozessor Ausgang als Enable Signal benötigt. HIGH Pegel schaltet die Sensor LEDs aus, LOW Pegel ein.  Wird keine Enable Funktion gewünscht, läßt man den BS250 einfach weg und hängt die Vorwiderstände der Sensor LEDs direkt an VCC.&lt;br /&gt;
&lt;br /&gt;
[[Bild:cny70_schem2.gif|thumb|center|600px|CNY70 als Radencoder mit Schmitt-Trigger]]&lt;br /&gt;
&lt;br /&gt;
Die Radencoder benötigen zwei digitale Eingangsports des Prozessors. A/D Wandler sind nicht nötig, da die Schmitt-Trigger Gatter für saubere Logik Signale sorgen. Die CNY70 sollten so nah wie möglch an den Rädern sitzen (1..2mm). Die gewählten Widerstandswerte für R17/R19 bzw. R18/R20 sind optimiert für Radencoder die auf Transparentfolie gedruckt und auf Aluminium Räder aufgeklebt werden. Für Radencoder die auf Papier ausgedruckt werden, sind andere Widerstandswerte notwendig.&lt;br /&gt;
Der P-Kanal FET BS250 dient als Schalter für die IR LEDs des CNY70. Damit spart man Strom, wenn der Radencoder nicht benötigt wird. Allerdings wird dafür ein weiterer Prozessor Ausgang als Enable Signal benötigt. HIGH Pegel schaltet die Sensor LEDs aus, LOW Pegel ein. Wird keine Enable Funktion gewünscht, läßt man den BS250 einfach weg und hängt die Vorwiderstände der Sensor LEDs direkt an VCC.&lt;br /&gt;
&lt;br /&gt;
===Distanzsensor IS471F===&lt;br /&gt;
&lt;br /&gt;
IS471F - Hindernisserkennung mit Infrarot Distanzsensor&lt;br /&gt;
&lt;br /&gt;
Das hier vorgestellte IC IS471F erlaubt eine einfach und sogar recht preisgünstige Hinternisserkennung per Infarot. Dazu muß im wesentlichen nur noch eine Infrarot-Diode an das IC angeschlossen werden. Das modulierte Licht wird von einem Gegenstand direkt auf das IC zurückgeworfen und somit das Hinterniss erkannt. Tageslicht/Fremdlicht stört den IS471 überhaupt nicht, da das Licht mit einer bestimmten Frequenz moduliert wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:is471.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der normale Schaltungsaufbau sieht also wie oben abgebildet aus! In der Praxis kann das dann in etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:is471beispiel.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das englische Datenblatt findet man im Roboternetz-Download-Bereich&lt;br /&gt;
&lt;br /&gt;
Die normale Reichweite ist in gewissen Grenzen abhängig von der Farbe des Hinternisses. In der Regel reicht es jedoch durchaus einige cm so das langsame Roboter durchaus sehr gut damit zurecht kommen. Durch besonders helle Infrarot LED´s und durch zusätzlich LED-Fassungen kann man die Reichweite erhöhen. Wem das noch nicht reicht, der kann über einen zusätzlichen Transistor die Strahlungsleistung der LED noch weiter erhöhen. &lt;br /&gt;
&lt;br /&gt;
[[Bild:is471verstaerkung.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
http://www.roboternetz.de/bilder/mehrereis471.gif&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sharp Infrarotsensoren===&lt;br /&gt;
&lt;br /&gt;
Sharp hat eine ganz interessante Serie von Bausteinen herausgebracht mit denen ein Roboter sogar recht genau Entfernungen messen kann. Das Messergebnis ist nahezu unabhängig von der Farbe und Helligkeit des gemessenen Objektes. Die Ansteuerung ist sehr einfach, der Sensorausgang kann zum Beispiel direkt an einen analogen Eingang eines Mikrocontrollers angeschlossen werden. Die Sensoren sind unter den Roboter-Bastlern weit verbreitet. &lt;br /&gt;
Bei vielen Händlern erhältlich kosten die Sensoren derzeit je nach Typ und Händlerspanne zwischen 13 bis 25 Euro.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Bild:Sharpentfernungssensor.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oft werden selbst in kleinen Roboter-Projekten mehrere dieser Sensoren genutzt da sie nur einen äußerst engen Erfassungsbereich haben. Sie eignen sich daher sehr gut zur Vermessung einer Umgebung, insbesondere dann wenn Sie drehbar auf einem Servo montiert werden. Als Kollisionsschutz sind sie wegen dem engen Winkel nur bedingt geeignet, zu diesem Zweck eignen sich zum Beispiel Ultraschallsensoren besser.&lt;br /&gt;
Das Funktionsprinzip der Sensoren ist einfach. Der Sensor besteht aus Sender und Empfänger. Der Sender sendet einen Infrarot-Strahl aus, der vom Hindernis reflektiert wird. Je nach Entfernung trifft der reflektierte Strahl an einer unterschiedlichen Stelle auf den Empfänger (ein sog. Position Sensitive Device, PSD). Der Empfänger setzt den Auftreffpunkt in einen analogen Spannungswert um. Eine schöne Skizze dazu:  &lt;br /&gt;
&lt;br /&gt;
[[Bild:sharpfunktion.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Einige der beliebtesten Bausteine sind:'''&lt;br /&gt;
&lt;br /&gt;
====Sharp GP2D12==== &lt;br /&gt;
Distanz 10 - 80 cm - Entfernung wird durch analoge Spannung am Ausgang übermittelt&lt;br /&gt;
Dies ist der am häufigsten eingesetzte Sharp Typ bei mobilen Robotern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:GP2D12anschluss.gif|center]]&lt;br /&gt;
&lt;br /&gt;
====Sharp GP2YA21YK==== &lt;br /&gt;
Distanz 10 - 80 cm - Entfernung wird durch analoge Spannung am Ausgang übermittelt &lt;br /&gt;
&lt;br /&gt;
====Sharp GP2D120====&lt;br /&gt;
Distanz 4 - 30 cm - Entfernung wird durch analoge Spannung am Ausgang übermittelt&lt;br /&gt;
&lt;br /&gt;
====Sharp GP2Y0A02YK====&lt;br /&gt;
Distanz 20 - 150 cm - Entfernung wird durch analoge Spannung am Ausgang übermittelt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
http://www.shop.robotikhardware.de/shop/catalog/images/artikelbilder/sensoren/gp2y0a02yk_diagramm.gif&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Sharp GP2D02====&lt;br /&gt;
Distanz 10 - 80 cm - Entfernung wird durch 8 Bit Digitalausgang übermittelt&lt;br /&gt;
&lt;br /&gt;
====Sharp GP2D150====&lt;br /&gt;
Distanz 3-30 cm - 1 Bit Schaltausgang  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Datenblätter zu den oberen Sensoren findet man im Download-Bereich des Roboternetz, siehe unter [[#Weblinks]].&lt;br /&gt;
 &lt;br /&gt;
Um die analogen Spannung der Sensoren in eine Entfernung umzurechnen, kann man sich mit Hilfe des Datenblattes oder einfacher Probemessungen Tabellen erstellen, welche dann vom Controller zur Umsetzung genutzt werden.&lt;br /&gt;
Bequemer ist allerdings eine Näherungsformel:&lt;br /&gt;
&lt;br /&gt;
====Formel zur Entfernungsberechnung==== &lt;br /&gt;
 D = A/(X-B) &lt;br /&gt;
&lt;br /&gt;
 D ist die Entfernung &lt;br /&gt;
 X ist der Ausgabewert des Sensors &lt;br /&gt;
 A ist die Steigung der Kurve A/X &lt;br /&gt;
 B ist der Offset der Kurve &lt;br /&gt;
&lt;br /&gt;
Die Konstanten A und B ermittelt man am besten über zwei Probemessungen: &lt;br /&gt;
&lt;br /&gt;
D und X sind die Entfernung und der Ausgabewert der ersten Messung (z.B. bei 20 cm) &lt;br /&gt;
D' und X' sind die Entfernung und der Ausgabewert der zweiten Messung (z.B. bei 60 cm) &lt;br /&gt;
&lt;br /&gt;
 A = ((X' - X) * D' * D) /(D - D' ) &lt;br /&gt;
 B = (D' * X' - D * X) /(D' - D) &lt;br /&gt;
&lt;br /&gt;
====GP2D12 Messkurve====&lt;br /&gt;
&lt;br /&gt;
[[Bild:gpd12kurve.gif|center]]&lt;br /&gt;
&lt;br /&gt;
====GPD120 Messkurve====&lt;br /&gt;
&lt;br /&gt;
[[Bild:gpd120kurve.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Ultraschall Sensoren== &lt;br /&gt;
===Ultraschallsensoren SRF04===&lt;br /&gt;
Die Firma '''Devantech''' hat eine Serie von sehr günstigen und kleinen Ultraschallsensoren entwickelt, die sich im Bereich &amp;quot;autonome Robotersysteme&amp;quot; durchgesetzt haben. Sie sind sehr verbreitet, da sie auch für &amp;quot;Hobby-Robotiker&amp;quot; erschwinglich sind und es sich nicht lohnen würde vergleichbare Module selber zu bauen, da diese meistens ungenauer und teurer wären.&lt;br /&gt;
&lt;br /&gt;
Bekannt wurde die Serie durch den '''SRF04'''. Mit seinen kleinen Abmessungen, der niedrigen Stromaufnahme und der hohen Genauigkeit ist er für kleine Messaufgaben im Entfernungsbereich von 3cm bis 3m gut geeignet. Der SRF04 kann einen 3cm dicken Besenstiel in 2m Entfernung erkennen und wird durch ein [[PWM]]-Signal ausgewertet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf_04a.jpg]] [[Bild:srf_04.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Ultraschallsensor SRF05===&lt;br /&gt;
Der Nachfolger des SRF04 ist der neuer SRF05. Er besitzt noch eine etwas höhere Reichweite bis 4 Meter. Zudem besitzt er neben dem kompatibel Mode zu SRF04 noch eine Betriebsart bei der er über einen einzigen Port (Pin) gesteuert wird. Das heißt sowohl der Start der Messung und das Ergebnis wird über die gleiche Leitung übertragen. [[Ultraschall SRF05 an RN-MiniControl|Programmbeispiel in Bascom]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:Srf05mode1.jpg|center]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf05mode2.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf05mode2diagram.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SRF08===&lt;br /&gt;
Die Alternative zu SRF04 und SRF05 ist der beliebte  '''SRF08''' und dessen Nachfolger '''SRF10''', der nun über den [[I2C]]-Bus ausgewertet werden kann und über eine Reichweite von 3cm bis 6m verfügt. Er hat eine noch kleinere Stromaufnahme und zusätzlich befindet sich auf der Platinenfront ein Fotowiderstand(LDR) dessen Lichtmesswerte sich ebenfalls über den [[I2C]]-Bus auswerten lassen. Durch den SRF08 wird es möglich auch bis zu 16 Mehrfachechos, von weiter hinten gelegenen Gegenständen, auszuwerten, die bei dem SRF04 ignoriert wurden. Über den [[I2C]]-Bus kann man die Messwerte in cm, zoll und in der Laufzeit µs auslesen und spart sich somit die externe Auswertung der Laufzeit, wie bei dem SRF04. Weiterhin können insgesamt 16 SRF08-Module an einen [[I2C]]-Bus angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf08_a.jpg]]  [[Bild:srf08_b.jpg]]&lt;br /&gt;
&lt;br /&gt;
===SRF08 Programmbeispiel===&lt;br /&gt;
SFR08 Programm Beispiel mit [[Bascom]]&lt;br /&gt;
Über die grundsätzliche Behandlung des [[I2C]]-Bus mit [[Bascom]] kann man [[I2C|hier]] nachlesen. &lt;br /&gt;
&lt;br /&gt;
 Const Sf08_adr_0 = &amp;amp;HE0             ' I2C Adresse&lt;br /&gt;
 Const Sf08_c_range = 100            ' Reichweite&lt;br /&gt;
 Const Sf08_c_gain = 1               ' Empfindlichkeit&lt;br /&gt;
&lt;br /&gt;
Die Adresse ist der Default-Wert für den Sensor, und kann eingestellt werden. &lt;br /&gt;
Range und Gain sind anzupassen, die angegeben Werte sind aber mal grundsätzlich verwendbar.&lt;br /&gt;
&lt;br /&gt;
'''Setup'''&lt;br /&gt;
Nach dem Reset sind einmal Range und Gain zu setzen.&lt;br /&gt;
&lt;br /&gt;
'''Setzen Range'''&lt;br /&gt;
&lt;br /&gt;
      I2cstart&lt;br /&gt;
      I2cwbyte Sf08_adr_0   ' Device I2C Adresse&lt;br /&gt;
      I2cwbyte 2            ' register &amp;quot;range&amp;quot;&lt;br /&gt;
      I2cwbyte Sf08_c_range  &lt;br /&gt;
      I2cstop&lt;br /&gt;
 &lt;br /&gt;
'''Setzen Gain'''&lt;br /&gt;
&lt;br /&gt;
      I2cstart&lt;br /&gt;
      I2cwbyte Sf08_adr_0   ' Device I2C Adresse&lt;br /&gt;
      I2cwbyte 1            ' register &amp;quot;gain&amp;quot;&lt;br /&gt;
      I2cwbyte Sf08_c_gain    &lt;br /&gt;
      I2cstop&lt;br /&gt;
&lt;br /&gt;
'''Abfrage Trigger'''&lt;br /&gt;
&lt;br /&gt;
Die Abfrage soll laut Beschreibung in zwei Schritten erfolgen, zwischen denen ca 70 mS gewartet werden soll. Diese Zeit braucht das Gerät zum Messen. &lt;br /&gt;
&lt;br /&gt;
'''Trigger'''  &lt;br /&gt;
      I2cstart&lt;br /&gt;
      I2cwbyte Sf08_adr_0   ' Device I2C Adresse&lt;br /&gt;
      I2cwbyte 0            ' register &amp;quot;Trigger&amp;quot;&lt;br /&gt;
      I2cwbyte 81           ' Meßwert in Zentimetern&lt;br /&gt;
&lt;br /&gt;
      Waitms 70 &lt;br /&gt;
&lt;br /&gt;
'''Ergebnis abholen'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 DIM Lsb as Byte&lt;br /&gt;
 DIM Msb as Byte&lt;br /&gt;
 DIM IVal as word&lt;br /&gt;
&lt;br /&gt;
      I2cstart              ' Repeated Start&lt;br /&gt;
      I2cwbyte Sf08_adr_0   ' Device I2C Adresse&lt;br /&gt;
      I2cwbyte 2            ' Meßwert US&lt;br /&gt;
&lt;br /&gt;
      I2cstart                 ' repeated Start&lt;br /&gt;
      I2cwbyte Sf08_adr_0 + 1  ' Device I2C Adresse READ!&lt;br /&gt;
      I2crbyte Msb , Ack      ' Bit 8-15&lt;br /&gt;
      I2crbyte Lsb , Nack     ' Bit 0-7&lt;br /&gt;
      I2cstop&lt;br /&gt;
&lt;br /&gt;
      Ival = Makeint(lsb , Msb) ' umwandeln in Word (16 Bit)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SRF10 Ultraschallsensor ===&lt;br /&gt;
SRF10 ist quasi der Nachfolger von SRF08. Er bietet die gleiche Leistung und ist sogar gegenüber Spannungschankungen noch etwas unempfindlicher als der Vorgänger. Der größte Vorteil besteht jedoch darin das er ca. 1/3 kleiner als sein Vorgänger ist.   &lt;br /&gt;
&lt;br /&gt;
[[Bild:srf10foto1.jpg]] [[Bild:srf10foto2.gif]]&lt;br /&gt;
&lt;br /&gt;
Die technischen Daten sind ähnlich:&lt;br /&gt;
* Betriebsspannung: 5V &lt;br /&gt;
* Stromaufnahme: ca. 3mA Standby, ca. 15mA während des Messens Frequenz: 40KHz &lt;br /&gt;
* Maximale Reichweite: 6 m &lt;br /&gt;
* Minimale Reichweite: 4 cm &lt;br /&gt;
* Messwerterfassung: intern, kein externer Controller zur Zeitmessung notwendig &lt;br /&gt;
* Interface: Standard – I2C (passend zu zahlreichen Controllerboards, z.B. RN-Control) &lt;br /&gt;
* Ausgabeformat: µs, cm oder Zoll &lt;br /&gt;
* Feature: Analogverstärkung 40 - 700 (einstellbar, 16 Stufen) &lt;br /&gt;
* Abmessungen: 32mm x 15mm x 10mm &lt;br /&gt;
* Hersteller: Devantech Ltd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Ultraschall_SRF10_an_RN-Control|Programmbeispiel in Bascom]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf10ausbreitung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SRF02 Ultraschallsensor===&lt;br /&gt;
Der erste Sensor aus der SRF-Reihe der mit nur einem Ultraschallwandler auskommt. Dennoch können sich die Leistungen zeigen. Vorallem die Tatsache das sowohl RS232 und I2C-Bus Schnittstelle vorhanden ist dürfte viele Bastler erfreuen.&lt;br /&gt;
&lt;br /&gt;
* Betriebsspannung 5V (stabilisiert) &lt;br /&gt;
* Stromaufnahme nur 4mA (typisch) &lt;br /&gt;
* Ultraschallfrequenz 40khz &lt;br /&gt;
* Reichweite 15cm bis 6 Meter &lt;br /&gt;
* Schnittstelle RS232 (TTL) und I2C-Bus &lt;br /&gt;
* Ausgabeeinheit wahlweise mm, inch oder uS &lt;br /&gt;
* Einfachste Verwendung, keine Kalibration/Justierung notwendig&lt;br /&gt;
* Größe 24mm x 20mm x 17mm &lt;br /&gt;
&lt;br /&gt;
[[Bild:srf02_germany.jpg]]&lt;br /&gt;
&lt;br /&gt;
Einige Bascom Programmbeispiele zum SRF02 findet man unter [[Ultraschallsensor SRF02 am RN-Board]]&lt;br /&gt;
&lt;br /&gt;
=== Vergleichstabelle ===&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{|{{Blaueschmaltabelle}}&lt;br /&gt;
 |&lt;br /&gt;
 |'''SRF10'''&lt;br /&gt;
 |'''SRF08'''&lt;br /&gt;
 |'''SRF05'''&lt;br /&gt;
 |'''SRF04'''&lt;br /&gt;
 |'''SRF02'''&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Betr. Spannung'''&lt;br /&gt;
 |5V&lt;br /&gt;
 |5V&lt;br /&gt;
 |5V&lt;br /&gt;
 |5V&lt;br /&gt;
 |5V&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Stromaufnahme'''&lt;br /&gt;
 |3mA typ.,&amp;lt;br&amp;gt; 15mA max.&lt;br /&gt;
 |3mA typ.,&amp;lt;br&amp;gt; 15mA max.&lt;br /&gt;
 |4mA typ.,&amp;lt;br&amp;gt; 30mA max.&lt;br /&gt;
 |30mA typ.,&amp;lt;br&amp;gt; 50mA max.&lt;br /&gt;
 |4mA typ.&amp;lt;br&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
 |-&lt;br /&gt;
 |'''US Leistung'''&lt;br /&gt;
 |100 – 150mW&lt;br /&gt;
 |100 – 150mW&lt;br /&gt;
 |100 – 150mW&lt;br /&gt;
 |100 – 150mW&lt;br /&gt;
 |?? mW&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Frequenz'''&lt;br /&gt;
 |40kHz&lt;br /&gt;
 |40kHz&lt;br /&gt;
 |40kHz&lt;br /&gt;
 |40kHz&lt;br /&gt;
 |40kHz&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Bereich'''&lt;br /&gt;
 |72&amp;amp;ordm;&lt;br /&gt;
 |55&amp;amp;ordm;&lt;br /&gt;
 |55&amp;amp;ordm;&lt;br /&gt;
 |55&amp;amp;ordm;&lt;br /&gt;
 |55&amp;amp;ordm;&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Reichweite'''&lt;br /&gt;
 |4cm - 6m&lt;br /&gt;
 |3cm - 6m&lt;br /&gt;
 |3cm - 4m&lt;br /&gt;
 |3cm - 3m&lt;br /&gt;
 |15cm - 6m&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Triggerimpuls'''&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |10µs min.&lt;br /&gt;
 |10µs min.&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Abmessung in mm'''&lt;br /&gt;
 |32 x 15 x 10&lt;br /&gt;
 |43 x 20 x 17&lt;br /&gt;
 |43 x 20 x 17&lt;br /&gt;
 |43 x 20 x 17&lt;br /&gt;
 |24 x 20 x 17&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Interface'''&lt;br /&gt;
 |I2C&lt;br /&gt;
 |I2C&lt;br /&gt;
 |TTL Impuls&lt;br /&gt;
 |TTL Impuls&lt;br /&gt;
 |I2C o. RS232 TTL&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Feature'''&lt;br /&gt;
 |Minimodul&lt;br /&gt;
 |Lichtsensor&lt;br /&gt;
 |SRF04 Modus&lt;br /&gt;
 |&lt;br /&gt;
 |nur 1 US-Kapsel&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Preis ca. *'''&lt;br /&gt;
 |44,00 €&lt;br /&gt;
 |44,00 €&lt;br /&gt;
 |22,00 €&lt;br /&gt;
 |25,00 €&lt;br /&gt;
 |19,00 €&lt;br /&gt;
 |}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''*''' Der Preis dient nur zum vergleich untereinander, nicht als Referenz !&lt;br /&gt;
&lt;br /&gt;
==Kompaß== &lt;br /&gt;
===Kompaß-Modul CMPS03===&lt;br /&gt;
Laut der Doku ist diese Modul speziell für die Bedürnisse von Robotern gestaltet worden. Es mißt seine Lage relativ zum Erdmagnetfeld und liefert diesen Wert&lt;br /&gt;
* Als PWM-Signal &lt;br /&gt;
* Über I2C entweder 0-255 als Byte oder&lt;br /&gt;
* 0-3599 als 16-Bit Wert (MSB first)&lt;br /&gt;
&lt;br /&gt;
In der vorliegenden Doku ist eine fixe I2C-Adresse von 0xC0 angegeben. Was leider noch fehlt, sind Angaben, ob und wie diese Adresse geändert werden kann.&lt;br /&gt;
&lt;br /&gt;
Bei waagrechter(!) Montage ist das also ein Kompaß, bei senkrechter Montage dieser Module kann man auch die Neigung in Nord-Süd-Richtung messen. Hierzu sind 2 Module nötig, die zueinander um 90° gedreht angeordnet sein müssen. Die Neigung in Ost-West-Richtung zu messen, ist dagegen leider nicht möglich. Wenn ein CMPS03 als Kompass verwendet werden soll, sind zwei Dinge zu beachten: &lt;br /&gt;
* Mindestens 20 cm Abstand von Eisen(Motore)&lt;br /&gt;
* Exakte horizontale Ausrichtung.&lt;br /&gt;
Eine Montage an einem langen Stab aus Holz oder Kuststoff hoch über dem Roboter ist sinnvoll. &lt;br /&gt;
&lt;br /&gt;
Das Ganze ist eine Anwendung des Philips-KMZ51 Magnet-Feld-Sensors mittels eines PIC16F872&lt;br /&gt;
&lt;br /&gt;
Gelegentlich sollte das Modul kalibriert werden. Das kann über den I2C-Bus, aber auch mittels einen Pins am Modul initiiert werden. Dafür muß am Pin6 für jede Himmelsrichtung einmal kurz GND angelegt werden. Diese 4 Meßpunkte nimmt das Modul auf und speichert sie im EEPROM. &lt;br /&gt;
&lt;br /&gt;
Ein Beispielprogramm findet man hier:&lt;br /&gt;
* [[Bascom und Kompass CMPS03]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:cmps3pin.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
==Beschleunigung==&lt;br /&gt;
&lt;br /&gt;
Beschleunigungssensoren messen die Beschleunigung, die auf sie wirkt - wenn sie auf dem Tisch liegen, messen sie beispielsweise die Erdbeschleunigung von 1g. In einem Auto können weitere Beschleunigungen hinzukommen: Zur Seite beim Kurvenfahren, nach vorne oder hinten beim Beschleunigen, oder bei zügiger Fahrt über eine Bergkuppe auch mal welche in vertikaler Richtung.&amp;lt;br&amp;gt;&lt;br /&gt;
Beschleunigungssensoren sind meist mehrdimensional ausgelegt, so dass für mehrere Achsen ein Sensor verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
Anwendungen finden sie in ESP-Systemen in Autos, die u.a. über die Querbeschleunigung ausrechnen können, ob das Fahrzeug seitlich driftet oder gar schleudert.&amp;lt;br&amp;gt;&lt;br /&gt;
Eine andere wichtige Aufgabe übernehmen sie zusammen mit Gyroskopen in Trägheitsnavigationssystemen, die dann sowohl die Lage im Raum als auch die Bewegung feststellen können.&lt;br /&gt;
&lt;br /&gt;
Moderne Piezo-Sensoren sind nur noch Chip-gross und können direkt in Schaltungen integriert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiele für solche Chips ist die Chipfamilie [[ADXL]] von Analog Devices. Sie umfaßt 1- und 2-Achs Accelerometer in verschiedenen Empfindlichkleiten. Der Test eines solchen Sensors ist hier beschrieben. http://www.roboternetz.de/phpBB2/viewtopic.php?t=8525&lt;br /&gt;
&lt;br /&gt;
==Drehung==&lt;br /&gt;
&lt;br /&gt;
Um Drehungen zu messen, werden sogenannte Gyroskope, kurz &amp;quot;Gyros&amp;quot; verwendet. Typische Vertreter sind hier die [[ADXRS]]-Familie von Analog Devices. Diese sind allerdings, anders als die Beschleunigungssensoren, meistens nur für eine Achse ausgelegt. Die Ausgabe erfolgt meist analog, jede Ausgangsspannung entspricht einer bestimmten Drehrate in °/Sekunde.&lt;br /&gt;
&lt;br /&gt;
Gemessen wird die Auswirkung der Corioleskraft auf zwei gleiche, in Bewegung gehaltene Massen. Diese schwingen radial, d.h. 90° verdreht zu der Achse, auf der die Drehung gemessen werden soll. Wird der Sensor um die Achse gedreht, ändert sich die Geschwindigkeit dieser Massen, da sie auf einer gedachten Scheibe abwechselnd nach innen und außen wandern. Je weiter sie außen sind, desto höher ist ihre Geschwindigkeit, je weiter innen, desto langsamer sind sie. Bei der Bewegung nach außen müssen sie also beschleunigt werden, andersherum genauso. Die dabei auftretenden Beschleunigungen werden mittels einiger Fühler gemessen, die einen Plattenkondensator bilden.&lt;br /&gt;
&lt;br /&gt;
Eine Anwendung sind im Flugmodellbau Gyro-&amp;quot;Taillocks&amp;quot;, die in Hubschraubern die Heckstabilität verbessern und ESP-Systeme in Autos, die u.a. durch die Messung der Gierrate, also der Drehung des Fahrzeugs um die Hochachse, feststellen können, ob das Fahrzeug seitlich driftet oder sogar schleudert.&lt;br /&gt;
&lt;br /&gt;
==Geschwindigkeit==&lt;br /&gt;
&lt;br /&gt;
Geschwindigkeit kann unterschiedlich erfasst werden.&lt;br /&gt;
* Direkt am Rad oder Antrieb. Diese Methode wird häufig auch in KFZ verwendet, stößt jedoch an ihre Grenzen wenn die Räder viel Schlupf haben. &lt;br /&gt;
* Gegenüber der Luft mittels [[Pitot-Tube]]. Das wird bei Flugzeugen so gemacht, oder z.B. in der Formel 1. Bei niedriegen Geschwindigkeiten nicht zu gebrauchen&lt;br /&gt;
* Mittels eines optischen Sensors gegenüber dem Untergrund. Dafür kann ein [[Maussensor]] aus einer optischen Maus verwendent werden, evtl. mit einer Anpassung der Optik für einen geänderten Abstand.&lt;br /&gt;
* Mittels GPS-Empfang. Funktioniert nur unter freiem Himmel.&lt;br /&gt;
&lt;br /&gt;
==Temperatur== &lt;br /&gt;
===NTCs===&lt;br /&gt;
NTCs (Negative Temperature Coefficient)oder Heißleiter sind stromleitende Materialien, die bei hohen Temperaturen Strom besser leiten als bei tiefen, das heißt, mit steigender Temperatur sinkt ihr elektrischer Widerstand. Siehe auch unter [[NTC]]. Ein großer Vorteil ist die leichte Anwendung und der geringe Preis. Nachteil ist das der Widerstandswert sich nicht linear mit der Temperatur verändert.&lt;br /&gt;
&lt;br /&gt;
[[Bild:ntc.gif]]&lt;br /&gt;
&lt;br /&gt;
===PTCs===&lt;br /&gt;
&lt;br /&gt;
PTCs sind Temperatursensoren, deren Widerstand sich mit steigender Temperatur erhöht. Dazu gehören&lt;br /&gt;
&lt;br /&gt;
*PT100, PT1000 etc.&lt;br /&gt;
*Die KTYxx-xxx Reihe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== KTY: Silizium Temperatursensoren ====&lt;br /&gt;
&lt;br /&gt;
Die KTY-Temperatursensoren sind verglichen mit anderen Temperatursensoren verhältnismäßig günstig, haben dafür aber auch mehr Nachteile.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Genauigkeit ist ziemlich eingeschränkt, weshalb die KTY-Temperatursensoren zuerst kalibriert werden sollten. Dies muss Schaltungstechnisch oder in Software erfolgen, eine eingebaute Kalibrierung gibt es nicht.&amp;lt;br&amp;gt;&lt;br /&gt;
Andererseits lassen sich mittels Oversampling sehr hoch aufgelöst Temperaturen messen, was aufgrund mittelmäßiger Linearität (auch nach der Linearisierung) aber nur bei der Messung kleiner Temperaturunterschiede empfehlenswert ist.&amp;lt;br&amp;gt;&lt;br /&gt;
Linearisiert werden die KTY an 5 Volt mit einem Reihenwiderstand von etwa 2,7 kOhm bis 3,3 kOhm.&lt;br /&gt;
&lt;br /&gt;
===Temperatur-Sensor LM75===&lt;br /&gt;
&lt;br /&gt;
[[Bild:lm75.gif|center]]&lt;br /&gt;
&lt;br /&gt;
Dieser Chip von National Semiconductors kann die Umgebungstemperatur mit einer Genauigkeit von 0.5&amp;lt;sup&amp;gt;o&amp;lt;/sup&amp;gt; Grad Celsius messen. Das angegebene Bereich ist -25&amp;lt;sup&amp;gt;o&amp;lt;/sup&amp;gt; bis 100&amp;lt;sup&amp;gt;o&amp;lt;/sup&amp;gt; C. Es wird zweierlei geboten:&lt;br /&gt;
* Ein Schaltausgang - Wenn man also z.B. einen Ventilator einschalten möchte&lt;br /&gt;
* I2C - Der obere Teil der Adresse ist fix 0x9n, die Bits 1-3 kann man mit Jumper einstellbar machen oder fest verdrahten. &lt;br /&gt;
&lt;br /&gt;
Durch einen einfachen I2C-Lesebefehl kann man die Temperatur einlesen (16-Bit), das Format ist allerdings etwas tricky. Das erste Byte (8-Bit) ist die Temperatur in ganzen Grad, als normales signed char, vom zweiten Byte gibt das MSB an, ob noch 0.5&amp;lt;sup&amp;gt;o&amp;lt;/sup&amp;gt; '''dazuzuzählen''' sind (also auch, wenn vorne eine negative Zahl steht)  &lt;br /&gt;
&lt;br /&gt;
Der Grund ist der: die vorzeichenbehaftete 9-Bit Zahl, die da linksbündig in zwei Datenbytes übertragen wird, gibt eigentlich an, wieviel 0.5 Grad - Einheiten gemessen wurden. Rein rechnerisch wäre also Temperatur = Wert * 0.5, das müßte man aber als float durchführen oder erweitern&lt;br /&gt;
&lt;br /&gt;
===Programm-Beispiel für LM75===&lt;br /&gt;
Der LM75 wird über den [[I2C]]-Bus angesprochen&lt;br /&gt;
In BasCom, wo es ja keine signed char gibt, wird das Interpretieren auf sehr unterschiedliche Art empfohlen. &lt;br /&gt;
&lt;br /&gt;
Ich empfehle:&lt;br /&gt;
&lt;br /&gt;
 dim Ival as integer&lt;br /&gt;
 dim Msb as byte&lt;br /&gt;
 dim Lsb as byte&lt;br /&gt;
         I2cstart&lt;br /&gt;
         I2cwbyte &amp;amp;H91   ' Lese-adresse !  &lt;br /&gt;
         If Err = 1 Then&lt;br /&gt;
            I2cstop       ' kein ACK vom LM75 --&amp;gt; irgendein Fehler&lt;br /&gt;
            Ival = 9999   ' Zeichen, daß der Wert ungültig ist !&lt;br /&gt;
         Else&lt;br /&gt;
            I2crbyte Msb , Ack&lt;br /&gt;
            I2crbyte Lsb , Nack&lt;br /&gt;
            I2cstop&lt;br /&gt;
            If Msb.7 = 1 Then&lt;br /&gt;
               Ival = Makeint(msb , &amp;amp;HFF)   ' auffüllen mit den Vorzeichen bits&lt;br /&gt;
            Else&lt;br /&gt;
               Ival = Makeint(msb , &amp;amp;H00)   ' positiv, also bleibt es so&lt;br /&gt;
            End If&lt;br /&gt;
            Ival = Ival * 10                ' erweitern &lt;br /&gt;
            If Lsb.7 = 1 Then&lt;br /&gt;
              Ival = Ival + 5               ' fünf Zehntel Grad dazu &lt;br /&gt;
            End If&lt;br /&gt;
         End if&lt;br /&gt;
&lt;br /&gt;
das ergibt die Temperatur in Zehntel-Grad (Natürlich nur, wenn's keine Fehler gab).&lt;br /&gt;
&lt;br /&gt;
==Resistive Sensoren==&lt;br /&gt;
...&lt;br /&gt;
==Kapazitive Sensoren==&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für kapazitive Sensoren sind Luftfeuchtigkeitsmesser, die ihre Kapazität entsprechend der Luftfeuchtigkeit ändern. Das Auslesen der Kapazität kann prinzipiell über das Ausmessen von Ladekurven geschehen. Dies ist jedoch bei kleinen Kapazitäten nicht praktisch durchführbar, weshalb man in diesem Falle meist einen Schwingkreis baut, dessen Frequenz man dann misst und so dann zusammen mit der bekannten Induktivität der Spule die Kapazität des Kondensators ausrechnen kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:feuchtesensor.gif|framed|center|Valvo Feuchtigkeitssensor 10-90% (Kapazität: 122 pF bei TU = 25 °)]]&lt;br /&gt;
&lt;br /&gt;
==Induktive Sensoren==&lt;br /&gt;
Induktiver Näherungsschalter&lt;br /&gt;
&lt;br /&gt;
Sensoren die ihre Induktivität entsprechend der Messgröße ändern können auch mit Hilfe eines Schwingkreises mit bekannter Kapazität ausgemessen werden.&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
==Piezoelektrische Sensoren==&lt;br /&gt;
Hier ist ein Experiment dargestellt das die Funktion von Piezowandlern demonstriert.&lt;br /&gt;
&lt;br /&gt;
Drückt man auf eine längliche Glasplatte (Mikroskopträger Länge 76mm), die an den Enden auf je einem Piezo Wandler gelagert ist, dann ergeben sich Signale, die von den Kräften auf die Wandler abhängig sind. &lt;br /&gt;
&lt;br /&gt;
Die Summe der beiden Kräfte entspricht der Gesamtkraft. Das Verhältnis der beiden Kräfte entspricht dem Verhältnis der Abstände des Druckpunktes zum Wandler. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Piezowandler.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Versuch wurde mit der Frequenz von ca. 4Hz (0,5s/div) von einem Ende bis zum anderen auf die Platte gedrückt. (Tonleiter). Die Signale der beiden Wandler sind im Oszillogramm aufgetragen und die Folge der Druck-Positionen ist auf den ersten Blick schon mal nachvollziehbar.&lt;br /&gt;
&lt;br /&gt;
==PIR Passiv Infrarot Sensoren==&lt;br /&gt;
Hier handelt es sich um Passiv-Infrarot-Bewegungsmelder. Bewegungsmelder regieren beim Eintritt einer Person (Tier) in das Erfassungsfeld des Sensors. Die Anwendungsmöglichkeiten sind nahezu unbegrenzt, man kennt die Technik ja von vielen Terrassenlampen, welche sich beim vorbeigehen automatisch einschalten.&lt;br /&gt;
Reagiert wird also auf die Körperwärme einer sich im Erfassungsfeld bewegenden Person.&lt;br /&gt;
[[Bild:pir.jpg|right]]&lt;br /&gt;
Zum Prinzip: &lt;br /&gt;
Wärmestrahlen, die einen Erfassungsvorgang auslösen, liegen im Infrarot-Bereich des Wellenspektrums. In diesem Bereich gibt der menschliche Körper seine Wärmestrahlung ab. Leuchtmittel wie Glüh- , Halogen- und Entladungslampen, die für eine Strahlung im sichtbaren Bereich um 0,555 μm entwickelt wurden, geben jedoch auch einen erheblichen Teil an Wärmestrahlung im Infrarot-Bereich ab.&lt;br /&gt;
Im Spektrum oberhalb des sichtbaren Licht, ab 0,780 μm, beginnt der Infrarot-Bereich. Die Wellenlänge&lt;br /&gt;
dieser IR-Strahlung ist abhängig von der Temperatur eines Körpers. Die Wärmestrahlung&lt;br /&gt;
des Menschen hat ihr Maximum zwischen 9 und 10 μm im Infrarot-Bereich.&lt;br /&gt;
Diese Tatsache nutzt der PIR Sensor mittels sogenannter pyroelektrischer IRDetektoren, welche eine hohe Empfindlichkeit im langwelligen Infrarot-Bereich aufweisen. Die Infrarot-&lt;br /&gt;
Strahlung verhält sich ähnlich wie sichtbares Licht. Sie kann reflektiert und durch Linsen&lt;br /&gt;
gebündelt werden.&lt;br /&gt;
Basis eines solchen IR-Detektors (Sensors) sind Lithium-Tantalatkristalle. Diese Kristalle erzeugen,&lt;br /&gt;
bei Wärmeänderung (positive oder negative Temperaturänderung), eine elektrische Spannung.&lt;br /&gt;
Die von den Kristallen abgegebene Spannung liegt im Bereich von einigen μV (μV = millionstel Volt) und ist von folgenden Bedingungen abhängig: &lt;br /&gt;
* Der Intensität der Wärmequelle (Temperatur und Größe)&lt;br /&gt;
* Dem Umgebungsmedium (Temperatur, unterschiedliche Luftfeuchtigkeit)&lt;br /&gt;
* Der Entfernung zwischen Wärmequelle und IR-Sensor&lt;br /&gt;
* Der Bewegungsgeschwindigkeit und Bewegungsrichtung der Wärmequelle&lt;br /&gt;
* Der Empfindlichkeit des PIR-Elementes (frequenzabhängiges Bandpaßverhalten mit Maximum bei ca. 0,1 Hz)&lt;br /&gt;
&lt;br /&gt;
Zur Unterdrückung von Einflüssen aus der Umgebung (übliche wetterbedingte Temperaturänderungen), sind in jedem Sensor 2 Kristalle antiparallel geschaltet. &lt;br /&gt;
Einer der Kristalle gibt, bei Auftreffen von Wärmestrahlung einen positiven, der andere einen negativen Spannungsimpuls ab. Wärmeänderungen die gleichzeitig und mit gleicher Intensität auf beide Kristalle einwirken lösen so keinen Erfassungsvorgang aus, denn die beiden Impulse heben sich gegenseitig auf. Dadurch ist ein Auslösen bei Wärmeänderungen der Umgebung weitgehend ausgeschlossen.&lt;br /&gt;
Anders verhält es sich bei schnellen Bewegungen. Die Lithiumtantalat-Kristalle geben, entsprechend&lt;br /&gt;
der Bewegung und der dadurch hervorgerufenen Wärmeänderung im Erfassungsfeld, ihre&lt;br /&gt;
Impulse zeitversetzt ab. Die beiden Impulse addieren sich zu einer Wechselgröße mit höherer&lt;br /&gt;
Signalamplitude. Dieses elektrische Ausgangssignal ist proportional der Wärmeänderung und führt zur Meldung einer Bewegung.&lt;br /&gt;
&lt;br /&gt;
==Autoren==&lt;br /&gt;
* [[Benutzer:PicNick|PicNick]]&lt;br /&gt;
* [[Benutzer:Frank|Frank]] &lt;br /&gt;
* [[Benutzer:Dennis.strehl|Dennis.strehl]]&lt;br /&gt;
* [[Benutzer:Florian|Florian]]&lt;br /&gt;
* Topic&lt;br /&gt;
* [[Benutzer:Manf|Manf]]&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[Navigation]]&lt;br /&gt;
* [[Sensoren]]&lt;br /&gt;
* [[Graycode]]&lt;br /&gt;
* [[Ultraschall SRF10 an RN-Control]]&lt;br /&gt;
* [[Ultraschall SRF05 an RN-MiniControl]]&lt;br /&gt;
* [[Ultraschallsensor SRF02 am RN-Board]]&lt;br /&gt;
* [[Bascom und Kompass CMPS03]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
*[http://www.ikm.uni-karlsruhe.de/forschung/pzt_webseiten/de/grundlagen/pyro.html Piezoelektrische Sensoren]&lt;br /&gt;
*[http://www.roboternetz.de/phpBB2/dload.php?action=category&amp;amp;cat_id=2 Datenblätter im Download-Bereich des Roboternetz]&lt;br /&gt;
*[http://www.nxp.com/acrobat_download/various/SC17_GENERAL_TEMP_1996_3.pdf KDY Sensor Datenblatt]&lt;br /&gt;
*[http://www.tranzistoare.ro/datasheets2/83/83853_1.pdf NTC Datenblatt]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Elektronik]]&lt;br /&gt;
[[Category:Sensoren]]&lt;/div&gt;</summary>
		<author><name>Momomu</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Sensorarten&amp;diff=9951</id>
		<title>Sensorarten</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Sensorarten&amp;diff=9951"/>
				<updated>2007-01-06T17:22:32Z</updated>
		
		<summary type="html">&lt;p&gt;Momomu: /* Welche Sensorarten gibt es */ typo (. nach Navigation)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Welche Sensorarten gibt es==&lt;br /&gt;
Damit sich ein Roboter in seiner Umgebung bewegen kann, ohne an Hindernisse anzustoßen, und damit er ein Ziel finden und ansteuern kann, muß er irgendwie seine Umwelt &amp;quot;wahrnehmen&amp;quot;. &lt;br /&gt;
Hauptanwendung für diese Informationen aus der Umwelt ist die [[Navigation]].&lt;br /&gt;
Auf dieser Seite werden die wichtigsten Sensorarten und damits praktischer wird auch zugleich die populärsten Robotik- und Modellbau-Sensortypen vorgestellt. Auch die Pinbelegung und Anschlussmöglichkeiten dieser Sensoren werden kurz erläutert.&lt;br /&gt;
&lt;br /&gt;
==Bumpers==&lt;br /&gt;
Als Bumpers bezeichnet man eine Art Stoßstange, die einen Mikro-Switch auslöst. &lt;br /&gt;
&lt;br /&gt;
[[Bild:microschalter.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Die Auswertung erfolgt am besten digital an einem Pin mit Pull-up Widerstand. Man kann den Eingang pollen (abfragen), aber auch einen Interrupt auslösen lassen. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Whiskers (Fühler)==&lt;br /&gt;
Das sind flexible Kunststoff-Streifen von ca. 10 cm Länge, eigentlich für Datenhandschuhe vorgesehen. Aber man kann sie auch als Fühler einsetzen, und daher auch für die Kollisions-Sensorik verwenden. Beim Verbiegen steigt der Widerstand an.  &lt;br /&gt;
&lt;br /&gt;
[[Bild:flexs_200.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Um zu messen, wird mit einem zweiten Widerstand ein Spannungsteiler aufgebaut, der dann mit einem Analog-Eingang einen Grad der Verbiegung erkennen läßt. Sie werden häufig auch Flexsensoren genannt. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Incremental-Geber==&lt;br /&gt;
Dienen zur Erfassung von Drehzahl bzw. der Messung von Wegstrecken&lt;br /&gt;
===Drehgeber Sharp GP1A30 und GP1A38===&lt;br /&gt;
&lt;br /&gt;
[[Bild:gp1a30.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Beim Sharp GP1A30 und GP1A38 handelt es sich um Gabellichtschranken mit inkrementaler Drehgeberfunktion. Beide sind im Grunde von den Anschlüssen identisch, lediglich kann GP1A38 noch etwas höhere Drehzahlen messen. Im Gegensatz zu herkömmlichen Gabellichtschranken können mit dieser sowohl Drehzahl als auch Drehrichtung ermittelt werden. Notwendig sind dafür nur 2 digitale Ports. Verzichtet man auf die Auswertung der Drehrichtung, reicht nur ein Port.&lt;br /&gt;
Der Sensor hat den Vorteil das die Signale bereits TTL kompatibel sind und direkt an ein Controllerboard angeschlossen werden können. Ein Beispielprogramm zu [[RN-Control]] findet man hier&lt;br /&gt;
&lt;br /&gt;
* [[Beispiel Drehzahlmessung mit RN-Control]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:GP1A30.gif|center]]&lt;br /&gt;
&lt;br /&gt;
Die Auswertung inkrementaler Drehgeber ist recht einfach. Ein Ausgang liefert einen Impuls pro Markierung (Scheibe auf der Welle). Prüft man bei jedem Impuls (Flanke) noch gleichzeitig den aktuellen Pegel des zweiten Ausganges, so kann daraus die Drehrichtung abgeleitet werden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Signalverlauf an den Sensorausgängen ist phasenversetzt:&lt;br /&gt;
&lt;br /&gt;
[[Bild:inkremental1.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:drehgeber_an_rncontrol.gif|center|framed|Beispielschaltung wenn man lediglich die Drehzahl ohne Drehrichtung auswerten möchte. Als Widerstand hat sich 330 Ohm als gut erwiesen.]]&lt;br /&gt;
&lt;br /&gt;
==Optische Sensoren==&lt;br /&gt;
===Helligkeit=== &lt;br /&gt;
Die Hauptanwendung solcher Sensoren ist, den hellsten Fleck im Raum zu finden.&lt;br /&gt;
Dies ist auch Teil vieler Roboterwettbewerbe. (Robo Callenge (2002 sic!), 'Ein Platz an der Sonne')&lt;br /&gt;
&lt;br /&gt;
Solche Sensoren können einfache [[LDR]]s oder [[Photodioden]] bzw. [[Phototransistoren]] sein.&lt;br /&gt;
LDRs haben den Vorteil, dass sie relativ hoch aussteuern, der große Nachteil ist aber, dass diese Sensoren ziemlich Wärmeempfindlich und etwas träge.&lt;br /&gt;
Photodioden und Phototransistoren haben den Vorteil, dass sie sehr genau sind, aber nicht besonders hoch aussteuern. Diese sollte man evtl. über einen OpAmp verstärken.&lt;br /&gt;
&lt;br /&gt;
[[Bild:fotowiderstand.jpg|center|framed|Ein typischer Fotowiderstand]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:SFH300.jpg|center|framed|SFH300, ein typischer Phototransistor]]&lt;br /&gt;
&lt;br /&gt;
Die Suche nach dem hellsten Fleck im Raum ist wie ich finde ein gutes Einsteigerthema!&lt;br /&gt;
&lt;br /&gt;
===CNY70===&lt;br /&gt;
&lt;br /&gt;
Der CNY70 ist ein Foto-Reflex Optokoppler. In einem würfelförmigem Gehäuse befindet sich eine Infrarot LED als Sender und ein Infrarot Fototransistor als Empfänger. Damit kann auf kurze Entfernung (wenige Millimeter) das reflektierte Licht der IR-LED durch den IR-Fototransistor gemessen werden.  &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Bild:cny70.jpg|thumb|200px|CNY70]]&lt;br /&gt;
|[[Bild:cny70_pinout.jpg|framed|CNY70 Vishay Pinout]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Achtung:''' Es existiert auch noch ein CNY70 von Temic mit anderer Pinbelegung, dort ist der Fototransistor verdreht eingebaut.&lt;br /&gt;
&lt;br /&gt;
Der CNY70 eignet sich für eine Vielzahl von Sensoren. Z.B. als Liniensensor, Radencoder, Abgrunddetektor und Lichtschranke. Allerdings ist er empfindlich gegen Streulicht, da  das Licht der IR-LED nicht moduliert ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:cny70_schem1.gif|thumb|center|600px|CNY70 als Liniensensor]]&lt;br /&gt;
&lt;br /&gt;
Der Liniensensor benötigt 2 A/D Wandler Eingänge des Prozessors. Die CNY70 sollten so nah wie möglich in Bodennähe angebracht sein (1..3mm). Der P-Kanal FET BS250 dient als Schalter für die IR LEDs des CNY70. Damit spart man Strom, wenn der Liniensensor nicht benötigt wird. Allerdings wird dafür ein weiterer Prozessor Ausgang als Enable Signal benötigt. HIGH Pegel schaltet die Sensor LEDs aus, LOW Pegel ein.  Wird keine Enable Funktion gewünscht, läßt man den BS250 einfach weg und hängt die Vorwiderstände der Sensor LEDs direkt an VCC.&lt;br /&gt;
&lt;br /&gt;
[[Bild:cny70_schem2.gif|thumb|center|600px|CNY70 als Radencoder mit Schmitt-Trigger]]&lt;br /&gt;
&lt;br /&gt;
Die Radencoder benötigen zwei digitale Eingangsports des Prozessors. A/D Wandler sind nicht nötig, da die Schmitt-Trigger Gatter für saubere Logik Signale sorgen. Die CNY70 sollten so nah wie möglch an den Rädern sitzen (1..2mm). Die gewählten Widerstandswerte für R17/R19 bzw. R18/R20 sind optimiert für Radencoder die auf Transparentfolie gedruckt und auf Aluminium Räder aufgeklebt werden. Für Radencoder die auf Papier ausgedruckt werden, sind andere Widerstandswerte notwendig.&lt;br /&gt;
Der P-Kanal FET BS250 dient als Schalter für die IR LEDs des CNY70. Damit spart man Strom, wenn der Radencoder nicht benötigt wird. Allerdings wird dafür ein weiterer Prozessor Ausgang als Enable Signal benötigt. HIGH Pegel schaltet die Sensor LEDs aus, LOW Pegel ein. Wird keine Enable Funktion gewünscht, läßt man den BS250 einfach weg und hängt die Vorwiderstände der Sensor LEDs direkt an VCC.&lt;br /&gt;
&lt;br /&gt;
===Distanzsensor IS471F===&lt;br /&gt;
&lt;br /&gt;
IS471F - Hindernisserkennung mit Infrarot Distanzsensor&lt;br /&gt;
&lt;br /&gt;
Das hier vorgestellte IC IS471F erlaubt eine einfach und sogar recht preisgünstige Hinternisserkennung per Infarot. Dazu muß im wesentlichen nur noch eine Infrarot-Diode an das IC angeschlossen werden. Das modulierte Licht wird von einem Gegenstand direkt auf das IC zurückgeworfen und somit das Hinterniss erkannt. Tageslicht/Fremdlicht stört den IS471 überhaupt nicht, da das Licht mit einer bestimmten Frequenz moduliert wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:is471.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der normale Schaltungsaufbau sieht also wie oben abgebildet aus! In der Praxis kann das dann in etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:is471beispiel.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das englische Datenblatt findet man im Roboternetz-Download-Bereich&lt;br /&gt;
&lt;br /&gt;
Die normale Reichweite ist in gewissen Grenzen abhängig von der Farbe des Hinternisses. In der Regel reicht es jedoch durchaus einige cm so das langsame Roboter durchaus sehr gut damit zurecht kommen. Durch besonders helle Infrarot LED´s und durch zusätzlich LED-Fassungen kann man die Reichweite erhöhen. Wem das noch nicht reicht, der kann über einen zusätzlichen Transistor die Strahlungsleistung der LED noch weiter erhöhen. &lt;br /&gt;
&lt;br /&gt;
[[Bild:is471verstaerkung.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
http://www.roboternetz.de/bilder/mehrereis471.gif&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sharp Infrarotsensoren===&lt;br /&gt;
&lt;br /&gt;
Sharp hat eine ganz interessante Serie von Bausteinen herausgebracht mit denen ein Roboter sogar recht genau Entfernungen messen kann. Das Messergebnis ist nahezu unabhängig von der Farbe und Helligkeit des gemessenen Objektes. Die Ansteuerung ist sehr einfach, der Sensorausgang kann zum Beispiel direkt an einen analogen Eingang eines Mikrocontrollers angeschlossen werden. Die Sensoren sind unter den Roboter-Bastlern weit verbreitet. &lt;br /&gt;
Bei vielen Händlern erhältlich kosten die Sensoren derzeit je nach Typ und Händlerspanne zwischen 13 bis 25 Euro.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Bild:Sharpentfernungssensor.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oft werden selbst in kleinen Roboter-Projekten mehrere dieser Sensoren genutzt da sie nur einen äußerst engen Erfassungsbereich haben. Sie eignen sich daher sehr gut zur Vermessung einer Umgebung, insbesondere dann wenn Sie drehbar auf einem Servo montiert werden. Als Kollisionsschutz sind sie wegen dem engen Winkel nur bedingt geeignet, zu diesem Zweck eignen sich zum Beispiel Ultraschallsensoren besser.&lt;br /&gt;
Das Funktionsprinzip der Sensoren ist einfach. Der Sensor besteht aus Sender und Empfänger. Der Sender sendet einen Infrarot-Strahl aus, der vom Hindernis reflektiert wird. Je nach Entfernung trifft der reflektierte Strahl an einer unterschiedlichen Stelle auf den Empfänger (ein sog. Position Sensitive Device, PSD). Der Empfänger setzt den Auftreffpunkt in einen analogen Spannungswert um. Eine schöne Skizze dazu:  &lt;br /&gt;
&lt;br /&gt;
[[Bild:sharpfunktion.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Einige der beliebtesten Bausteine sind:'''&lt;br /&gt;
&lt;br /&gt;
====Sharp GP2D12==== &lt;br /&gt;
Distanz 10 - 80 cm - Entfernung wird durch analoge Spannung am Ausgang übermittelt&lt;br /&gt;
Dies ist der am häufigsten eingesetzte Sharp Typ bei mobilen Robotern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:GP2D12anschluss.gif|center]]&lt;br /&gt;
&lt;br /&gt;
====Sharp GP2YA21YK==== &lt;br /&gt;
Distanz 10 - 80 cm - Entfernung wird durch analoge Spannung am Ausgang übermittelt &lt;br /&gt;
&lt;br /&gt;
====Sharp GP2D120====&lt;br /&gt;
Distanz 4 - 30 cm - Entfernung wird durch analoge Spannung am Ausgang übermittelt&lt;br /&gt;
&lt;br /&gt;
====Sharp GP2Y0A02YK====&lt;br /&gt;
Distanz 20 - 150 cm - Entfernung wird durch analoge Spannung am Ausgang übermittelt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
http://www.shop.robotikhardware.de/shop/catalog/images/artikelbilder/sensoren/gp2y0a02yk_diagramm.gif&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Sharp GP2D02====&lt;br /&gt;
Distanz 10 - 80 cm - Entfernung wird durch 8 Bit Digitalausgang übermittelt&lt;br /&gt;
&lt;br /&gt;
====Sharp GP2D150====&lt;br /&gt;
Distanz 3-30 cm - 1 Bit Schaltausgang  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Datenblätter zu den oberen Sensoren findet man im Download-Bereich des Roboternetz, siehe unter [[#Weblinks]].&lt;br /&gt;
 &lt;br /&gt;
Um die analogen Spannung der Sensoren in eine Entfernung umzurechnen, kann man sich mit Hilfe des Datenblattes oder einfacher Probemessungen Tabellen erstellen, welche dann vom Controller zur Umsetzung genutzt werden.&lt;br /&gt;
Bequemer ist allerdings eine Näherungsformel:&lt;br /&gt;
&lt;br /&gt;
====Formel zur Entfernungsberechnung==== &lt;br /&gt;
 D = A/(X-B) &lt;br /&gt;
&lt;br /&gt;
 D ist die Entfernung &lt;br /&gt;
 X ist der Ausgabewert des Sensors &lt;br /&gt;
 A ist die Steigung der Kurve A/X &lt;br /&gt;
 B ist der Offset der Kurve &lt;br /&gt;
&lt;br /&gt;
Die Konstanten A und B ermittelt man am besten über zwei Probemessungen: &lt;br /&gt;
&lt;br /&gt;
D und X sind die Entfernung und der Ausgabewert der ersten Messung (z.B. bei 20 cm) &lt;br /&gt;
D' und X' sind die Entfernung und der Ausgabewert der zweiten Messung (z.B. bei 60 cm) &lt;br /&gt;
&lt;br /&gt;
 A = ((X' - X) * D' * D) /(D - D' ) &lt;br /&gt;
 B = (D' * X' - D * X) /(D' - D) &lt;br /&gt;
&lt;br /&gt;
====GP2D12 Messkurve====&lt;br /&gt;
&lt;br /&gt;
[[Bild:gpd12kurve.gif|center]]&lt;br /&gt;
&lt;br /&gt;
====GPD120 Messkurve====&lt;br /&gt;
&lt;br /&gt;
[[Bild:gpd120kurve.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Ultraschall Sensoren== &lt;br /&gt;
===Ultraschallsensoren SRF04===&lt;br /&gt;
Die Firma '''Devantech''' hat eine Serie von sehr günstigen und kleinen Ultraschallsensoren entwickelt, die sich im Bereich &amp;quot;autonome Robotersysteme&amp;quot; durchgesetzt haben. Sie sind sehr verbreitet, da sie auch für &amp;quot;Hobby-Robotiker&amp;quot; erschwinglich sind und es sich nicht lohnen würde vergleichbare Module selber zu bauen, da diese meistens ungenauer und teurer wären.&lt;br /&gt;
&lt;br /&gt;
Bekannt wurde die Serie durch den '''SRF04'''. Mit seinen kleinen Abmessungen, der niedrigen Stromaufnahme und der hohen Genauigkeit ist er für kleine Messaufgaben im Entfernungsbereich von 3cm bis 3m gut geeignet. Der SRF04 kann einen 3cm dicken Besenstiel in 2m Entfernung erkennen und wird durch ein [[PWM]]-Signal ausgewertet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf_04a.jpg]] [[Bild:srf_04.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Ultraschallsensor SRF05===&lt;br /&gt;
Der Nachfolger des SRF04 ist der neuer SRF05. Er besitzt noch eine etwas höhere Reichweite bis 4 Meter. Zudem besitzt er neben dem kompatibel Mode zu SRF04 noch eine Betriebsart bei der er über einen einzigen Port (Pin) gesteuert wird. Das heißt sowohl der Start der Messung und das Ergebnis wird über die gleiche Leitung übertragen. [[Ultraschall SRF05 an RN-MiniControl|Programmbeispiel in Bascom]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:Srf05mode1.jpg|center]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf05mode2.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf05mode2diagram.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SRF08===&lt;br /&gt;
Die Alternative zu SRF04 und SRF05 ist der beliebte  '''SRF08''' und dessen Nachfolger '''SRF10''', der nun über den [[I2C]]-Bus ausgewertet werden kann und über eine Reichweite von 3cm bis 6m verfügt. Er hat eine noch kleinere Stromaufnahme und zusätzlich befindet sich auf der Platinenfront ein Fotowiderstand(LDR) dessen Lichtmesswerte sich ebenfalls über den [[I2C]]-Bus auswerten lassen. Durch den SRF08 wird es möglich auch bis zu 16 Mehrfachechos, von weiter hinten gelegenen Gegenständen, auszuwerten, die bei dem SRF04 ignoriert wurden. Über den [[I2C]]-Bus kann man die Messwerte in cm, zoll und in der Laufzeit µs auslesen und spart sich somit die externe Auswertung der Laufzeit, wie bei dem SRF04. Weiterhin können insgesamt 16 SRF08-Module an einen [[I2C]]-Bus angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf08_a.jpg]]  [[Bild:srf08_b.jpg]]&lt;br /&gt;
&lt;br /&gt;
===SRF08 Programmbeispiel===&lt;br /&gt;
SFR08 Programm Beispiel mit [[Bascom]]&lt;br /&gt;
Über die grundsätzliche Behandlung des [[I2C]]-Bus mit [[Bascom]] kann man [[I2C|hier]] nachlesen. &lt;br /&gt;
&lt;br /&gt;
 Const Sf08_adr_0 = &amp;amp;HE0             ' I2C Adresse&lt;br /&gt;
 Const Sf08_c_range = 100            ' Reichweite&lt;br /&gt;
 Const Sf08_c_gain = 1               ' Empfindlichkeit&lt;br /&gt;
&lt;br /&gt;
Die Adresse ist der Default-Wert für den Sensor, und kann eingestellt werden. &lt;br /&gt;
Range und Gain sind anzupassen, die angegeben Werte sind aber mal grundsätzlich verwendbar.&lt;br /&gt;
&lt;br /&gt;
'''Setup'''&lt;br /&gt;
Nach dem Reset sind einmal Range und Gain zu setzen.&lt;br /&gt;
&lt;br /&gt;
'''Setzen Range'''&lt;br /&gt;
&lt;br /&gt;
      I2cstart&lt;br /&gt;
      I2cwbyte Sf08_adr_0   ' Device I2C Adresse&lt;br /&gt;
      I2cwbyte 2            ' register &amp;quot;range&amp;quot;&lt;br /&gt;
      I2cwbyte Sf08_c_range  &lt;br /&gt;
      I2cstop&lt;br /&gt;
 &lt;br /&gt;
'''Setzen Gain'''&lt;br /&gt;
&lt;br /&gt;
      I2cstart&lt;br /&gt;
      I2cwbyte Sf08_adr_0   ' Device I2C Adresse&lt;br /&gt;
      I2cwbyte 1            ' register &amp;quot;gain&amp;quot;&lt;br /&gt;
      I2cwbyte Sf08_c_gain    &lt;br /&gt;
      I2cstop&lt;br /&gt;
&lt;br /&gt;
'''Abfrage Trigger'''&lt;br /&gt;
&lt;br /&gt;
Die Abfrage soll laut Beschreibung in zwei Schritten erfolgen, zwischen denen ca 70 mS gewartet werden soll. Diese Zeit braucht das Gerät zum Messen. &lt;br /&gt;
&lt;br /&gt;
'''Trigger'''  &lt;br /&gt;
      I2cstart&lt;br /&gt;
      I2cwbyte Sf08_adr_0   ' Device I2C Adresse&lt;br /&gt;
      I2cwbyte 0            ' register &amp;quot;Trigger&amp;quot;&lt;br /&gt;
      I2cwbyte 81           ' Meßwert in Zentimetern&lt;br /&gt;
&lt;br /&gt;
      Waitms 70 &lt;br /&gt;
&lt;br /&gt;
'''Ergebnis abholen'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 DIM Lsb as Byte&lt;br /&gt;
 DIM Msb as Byte&lt;br /&gt;
 DIM IVal as word&lt;br /&gt;
&lt;br /&gt;
      I2cstart              ' Repeated Start&lt;br /&gt;
      I2cwbyte Sf08_adr_0   ' Device I2C Adresse&lt;br /&gt;
      I2cwbyte 2            ' Meßwert US&lt;br /&gt;
&lt;br /&gt;
      I2cstart                 ' repeated Start&lt;br /&gt;
      I2cwbyte Sf08_adr_0 + 1  ' Device I2C Adresse READ!&lt;br /&gt;
      I2crbyte Msb , Ack      ' Bit 8-15&lt;br /&gt;
      I2crbyte Lsb , Nack     ' Bit 0-7&lt;br /&gt;
      I2cstop&lt;br /&gt;
&lt;br /&gt;
      Ival = Makeint(lsb , Msb) ' umwandeln in Word (16 Bit)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SRF10 Ultraschallsensor ===&lt;br /&gt;
SRF10 ist quasi der Nachfolger von SRF08. Er bietet die gleiche Leistung und ist sogar gegenüber Spannungschankungen noch etwas unempfindlicher als der Vorgänger. Der größte Vorteil besteht jedoch darin das er ca. 1/3 kleiner als sein Vorgänger ist.   &lt;br /&gt;
&lt;br /&gt;
[[Bild:srf10foto1.jpg]] [[Bild:srf10foto2.gif]]&lt;br /&gt;
&lt;br /&gt;
Die technischen Daten sind ähnlich:&lt;br /&gt;
* Betriebsspannung: 5V &lt;br /&gt;
* Stromaufnahme: ca. 3mA Standby, ca. 15mA während des Messens Frequenz: 40KHz &lt;br /&gt;
* Maximale Reichweite: 6 m &lt;br /&gt;
* Minimale Reichweite: 4 cm &lt;br /&gt;
* Messwerterfassung: intern, kein externer Controller zur Zeitmessung notwendig &lt;br /&gt;
* Interface: Standard – I2C (passend zu zahlreichen Controllerboards, z.B. RN-Control) &lt;br /&gt;
* Ausgabeformat: µs, cm oder Zoll &lt;br /&gt;
* Feature: Analogverstärkung 40 - 700 (einstellbar, 16 Stufen) &lt;br /&gt;
* Abmessungen: 32mm x 15mm x 10mm &lt;br /&gt;
* Hersteller: Devantech Ltd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Ultraschall_SRF10_an_RN-Control|Programmbeispiel in Bascom]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf10ausbreitung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SRF02 Ultraschallsensor===&lt;br /&gt;
Der erste Sensor aus der SRF-Reihe der mit nur einem Ultraschallwandler auskommt. Dennoch können sich die Leistungen zeigen. Vorallem die Tatsache das sowohl RS232 und I2C-Bus Schnittstelle vorhanden ist dürfte viele Bastler erfreuen.&lt;br /&gt;
&lt;br /&gt;
* Betriebsspannung 5V (stabilisiert) &lt;br /&gt;
* Stromaufnahme nur 4mA (typisch) &lt;br /&gt;
* Ultraschallfrequenz 40khz &lt;br /&gt;
* Reichweite 15cm bis 6 Meter &lt;br /&gt;
* Schnittstelle RS232 (TTL) und I2C-Bus &lt;br /&gt;
* Ausgabeeinheit wahlweise mm, inch oder uS &lt;br /&gt;
* Einfachste Verwendung, keine Kalibration/Justierung notwendig&lt;br /&gt;
* Größe 24mm x 20mm x 17mm &lt;br /&gt;
&lt;br /&gt;
[[Bild:srf02_germany.jpg]]&lt;br /&gt;
&lt;br /&gt;
Einige Bascom Programmbeispiele zum SRF02 findet man unter [[Ultraschallsensor SRF02 am RN-Board]]&lt;br /&gt;
&lt;br /&gt;
=== Vergleichstabelle ===&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{|{{Blaueschmaltabelle}}&lt;br /&gt;
 |&lt;br /&gt;
 |'''SRF10'''&lt;br /&gt;
 |'''SRF08'''&lt;br /&gt;
 |'''SRF05'''&lt;br /&gt;
 |'''SRF04'''&lt;br /&gt;
 |'''SRF02'''&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Betr. Spannung'''&lt;br /&gt;
 |5V&lt;br /&gt;
 |5V&lt;br /&gt;
 |5V&lt;br /&gt;
 |5V&lt;br /&gt;
 |5V&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Stromaufnahme'''&lt;br /&gt;
 |3mA typ.,&amp;lt;br&amp;gt; 15mA max.&lt;br /&gt;
 |3mA typ.,&amp;lt;br&amp;gt; 15mA max.&lt;br /&gt;
 |4mA typ.,&amp;lt;br&amp;gt; 30mA max.&lt;br /&gt;
 |30mA typ.,&amp;lt;br&amp;gt; 50mA max.&lt;br /&gt;
 |4mA typ.&amp;lt;br&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
 |-&lt;br /&gt;
 |'''US Leistung'''&lt;br /&gt;
 |100 – 150mW&lt;br /&gt;
 |100 – 150mW&lt;br /&gt;
 |100 – 150mW&lt;br /&gt;
 |100 – 150mW&lt;br /&gt;
 |?? mW&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Frequenz'''&lt;br /&gt;
 |40kHz&lt;br /&gt;
 |40kHz&lt;br /&gt;
 |40kHz&lt;br /&gt;
 |40kHz&lt;br /&gt;
 |40kHz&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Bereich'''&lt;br /&gt;
 |72&amp;amp;ordm;&lt;br /&gt;
 |55&amp;amp;ordm;&lt;br /&gt;
 |55&amp;amp;ordm;&lt;br /&gt;
 |55&amp;amp;ordm;&lt;br /&gt;
 |55&amp;amp;ordm;&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Reichweite'''&lt;br /&gt;
 |4cm - 6m&lt;br /&gt;
 |3cm - 6m&lt;br /&gt;
 |3cm - 4m&lt;br /&gt;
 |3cm - 3m&lt;br /&gt;
 |15cm - 6m&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Triggerimpuls'''&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |10µs min.&lt;br /&gt;
 |10µs min.&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Abmessung in mm'''&lt;br /&gt;
 |32 x 15 x 10&lt;br /&gt;
 |43 x 20 x 17&lt;br /&gt;
 |43 x 20 x 17&lt;br /&gt;
 |43 x 20 x 17&lt;br /&gt;
 |24 x 20 x 17&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Interface'''&lt;br /&gt;
 |I2C&lt;br /&gt;
 |I2C&lt;br /&gt;
 |TTL Impuls&lt;br /&gt;
 |TTL Impuls&lt;br /&gt;
 |I2C o. RS232 TTL&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Feature'''&lt;br /&gt;
 |Minimodul&lt;br /&gt;
 |Lichtsensor&lt;br /&gt;
 |SRF04 Modus&lt;br /&gt;
 |&lt;br /&gt;
 |nur 1 US-Kapsel&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Preis ca. *'''&lt;br /&gt;
 |44,00 €&lt;br /&gt;
 |44,00 €&lt;br /&gt;
 |22,00 €&lt;br /&gt;
 |25,00 €&lt;br /&gt;
 |19,00 €&lt;br /&gt;
 |}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''*''' Der Preis dient nur zum vergleich untereinander, nicht als Referenz !&lt;br /&gt;
&lt;br /&gt;
==Kompaß== &lt;br /&gt;
===Kompaß-Modul CMPS03===&lt;br /&gt;
Laut der Doku ist diese Modul speziell für die Bedürnisse von Robotern gestaltet worden. Es mißt seine Lage relativ zum Erdmagnetfeld und liefert diesen Wert&lt;br /&gt;
* Als PWM-Signal &lt;br /&gt;
* Über I2C entweder 0-255 als Byte oder&lt;br /&gt;
* 0-3599 als 16-Bit Wert (MSB first)&lt;br /&gt;
&lt;br /&gt;
In der vorliegenden Doku ist eine fixe I2C-Adresse von 0xC0 angegeben. Was leider noch fehlt, sind Angaben, ob und wie diese Adresse geändert werden kann.&lt;br /&gt;
&lt;br /&gt;
Bei waagrechter(!) Montage ist das also ein Kompaß, bei senkrechter Montage dieser Module kann man auch die Neigung in Nord-Süd-Richtung messen. Hierzu sind 2 Module nötig, die zueinander um 90° gedreht angeordnet sein müssen. Die Neigung in Ost-West-Richtung zu messen, ist dagegen leider nicht möglich. Wenn ein CMPS03 als Kompass verwendet werden soll, sind zwei Dinge zu beachten: &lt;br /&gt;
* Mindestens 20 cm Abstand von Eisen(Motore)&lt;br /&gt;
* Exakte horizontale Ausrichtung.&lt;br /&gt;
Eine Montage an einem langen Stab aus Holz oder Kuststoff hoch über dem Roboter ist sinnvoll. &lt;br /&gt;
&lt;br /&gt;
Das Ganze ist eine Anwendung des Philips-KMZ51 Magnet-Feld-Sensors mittels eines PIC16F872&lt;br /&gt;
&lt;br /&gt;
Gelegentlich sollte das Modul kalibriert werden. Das kann über den I2C-Bus, aber auch mittels einen Pins am Modul initiiert werden. Dafür muß am Pin6 für jede Himmelsrichtung einmal kurz GND angelegt werden. Diese 4 Meßpunkte nimmt das Modul auf und speichert sie im EEPROM. &lt;br /&gt;
&lt;br /&gt;
Ein Beispielprogramm findet man hier:&lt;br /&gt;
* [[Bascom und Kompass CMPS03]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:cmps3pin.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
==Beschleunigung==&lt;br /&gt;
&lt;br /&gt;
Beschleunigungssensoren messen die Beschleunigung, die auf sie wirkt - wenn sie auf dem Tisch liegen, messen sie beispielsweise die Erdbeschleunigung von 1g. In einem Auto können weitere Beschleunigungen hinzukommen: Zur Seite beim Kurvenfahren, nach vorne oder hinten beim Beschleunigen, oder bei zügiger Fahrt über eine Bergkuppe auch mal welche in vertikaler Richtung.&amp;lt;br&amp;gt;&lt;br /&gt;
Beschleunigungssensoren sind meist mehrdimensional ausgelegt, so dass für mehrere Achsen ein Sensor verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
Anwendungen finden sie in ESP-Systemen in Autos, die u.a. über die Querbeschleunigung ausrechnen können, ob das Fahrzeug seitlich driftet oder gar schleudert.&amp;lt;br&amp;gt;&lt;br /&gt;
Eine andere wichtige Aufgabe übernehmen sie zusammen mit Gyroskopen in Trägheitsnavigationssystemen, die dann sowohl die Lage im Raum als auch die Bewegung feststellen können.&lt;br /&gt;
&lt;br /&gt;
Moderne Piezo-Sensoren sind nur noch Chip-gross und können direkt in Schaltungen integriert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiele für solche Chips ist die Chipfamilie [[ADXL]] von Analog Devices. Sie umfaßt 1- und 2-Achs Accelerometer in verschiedenen Empfindlichkleiten. Der Test eines solchen Sensors ist hier beschrieben. http://www.roboternetz.de/phpBB2/viewtopic.php?t=8525&lt;br /&gt;
&lt;br /&gt;
==Drehung==&lt;br /&gt;
&lt;br /&gt;
Um Drehungen zu messen, werden sogenannte Gyroskope, kurz &amp;quot;Gyros&amp;quot; verwendet. Typische Vertreter sind hier die [[ADXRS]]-Familie von Analog Devices. Diese sind allerdings, anders als die Beschleunigungssensoren, meistens nur für eine Achse ausgelegt. Die Ausgabe erfolgt meist analog, jede Ausgangsspannung entspricht einer bestimmten Drehrate in °/Sekunde.&lt;br /&gt;
&lt;br /&gt;
Gemessen wird die Auswirkung der Corioleskraft auf zwei gleiche, in Bewegung gehaltene Massen. Diese schwingen radial, d.h. 90° verdreht zu der Achse, auf der die Drehung gemessen werden soll. Wird der Sensor um die Achse gedreht, ändert sich die Geschwindigkeit dieser Massen, da sie auf einer gedachten Scheibe abwechselnd nach innen und außen wandern. Je weiter sie außen sind, desto höher ist ihre Geschwindigkeit, je weiter innen, desto langsamer sind sie. Bei der Bewegung nach außen müssen sie also beschleunigt werden, andersherum genauso. Die dabei auftretenden Beschleunigungen werden mittels einiger Fühler gemessen, die einen Plattenkondensator bilden.&lt;br /&gt;
&lt;br /&gt;
Eine Anwendung sind im Flugmodellbau Gyro-&amp;quot;Taillocks&amp;quot;, die in Hubschraubern die Heckstabilität verbessern und ESP-Systeme in Autos, die u.a. durch die Messung der Gierrate, also der Drehung des Fahrzeugs um die Hochachse, feststellen können, ob das Fahrzeug seitlich driftet oder sogar schleudert.&lt;br /&gt;
&lt;br /&gt;
==Geschwindigkeit==&lt;br /&gt;
&lt;br /&gt;
Geschwindigkeit kann unterschiedlich erfasst werden.&lt;br /&gt;
* Direkt am Rad oder Antrieb. Diese Methode wird häufig auch in KFZ verwendet, stößt jedoch an ihre Grenzen wenn die Räder viel Schlupf haben. &lt;br /&gt;
* Gegenüber der Luft mittels [[Pitot-Tube]]. Das wird bei Flugzeugen so gemacht, oder z.B. in der Formel 1. Bei niedriegen Geschwindigkeiten nicht zu gebrauchen&lt;br /&gt;
* Mittels eines optischen Sensors gegenüber dem Untergrund. Dafür kann ein [[Maussensor]] aus einer optischen Maus verwendent werden, evtl. mit einer Anpassung der Optik für einen geänderten Abstand.&lt;br /&gt;
* Mittels GPS-Empfang. Funktioniert nur unter freiem Himmel.&lt;br /&gt;
&lt;br /&gt;
==Temperatur== &lt;br /&gt;
===NTCs===&lt;br /&gt;
NTCs (Negative Temperature Coefficient)oder Heißleiter sind stromleitende Materialien, die bei hohen Temperaturen Strom besser leiten als bei tiefen, das heißt, mit steigender Temperatur sinkt ihr elektrischer Widerstand. Siehe auch unter [[NTC]]. Ein großer Vorteil ist die leichte Anwendung und der geringe Preis. Nachteil ist das der Widerstandswert sich nicht linear mit der Temperatur verändert.&lt;br /&gt;
&lt;br /&gt;
[[Bild:ntc.gif]]&lt;br /&gt;
&lt;br /&gt;
===PTCs===&lt;br /&gt;
&lt;br /&gt;
PTCs sind Temperatursensoren, deren Widerstand sich mit steigender Temperatur erhöht. Dazu gehören&lt;br /&gt;
&lt;br /&gt;
*PT100, PT1000 etc.&lt;br /&gt;
*Die KTYxx-xxx Reihe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== KTY: Silizium Temperatursensoren ====&lt;br /&gt;
&lt;br /&gt;
Die KTY-Temperatursensoren sind verglichen mit anderen Temperatursensoren verhältnismäßig günstig, haben dafür aber auch mehr Nachteile.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Genauigkeit ist ziemlich eingeschränkt, weshalb die KTY-Temperatursensoren zuerst kalibriert werden sollten. Dies muss Schaltungstechnisch oder in Software erfolgen, eine eingebaute Kalibrierung gibt es nicht.&amp;lt;br&amp;gt;&lt;br /&gt;
Andererseits lassen sich mittels Oversampling sehr hoch aufgelöst Temperaturen messen, was aufgrund mittelmäßiger Linearität (auch nach der Linearisierung) aber nur bei der Messung kleiner Temperaturunterschiede empfehlenswert ist.&amp;lt;br&amp;gt;&lt;br /&gt;
Linearisiert werden die KTY an 5 Volt mit einem Reihenwiderstand von etwa 2,7 kOhm bis 3,3 kOhm.&lt;br /&gt;
&lt;br /&gt;
===Temperatur-Sensor LM75===&lt;br /&gt;
&lt;br /&gt;
[[Bild:lm75.gif|center]]&lt;br /&gt;
&lt;br /&gt;
Dieser Chip von National Semiconductors kann die Umgebungstemperatur mit einer Genauigkeit von 0.5&amp;lt;sup&amp;gt;o&amp;lt;/sup&amp;gt; Grad Celsius messen. Das angegebene Bereich ist -25&amp;lt;sup&amp;gt;o&amp;lt;/sup&amp;gt; bis 100&amp;lt;sup&amp;gt;o&amp;lt;/sup&amp;gt; C. Es wird zweierlei geboten:&lt;br /&gt;
* Ein Schaltausgang - Wenn man also z.B. einen Ventilator einschalten möchte&lt;br /&gt;
* I2C - Der obere Teil der Adresse ist fix 0x9n, die Bits 1-3 kann man mit Jumper einstellbar machen oder fest verdrahten. &lt;br /&gt;
&lt;br /&gt;
Durch einen einfachen I2C-Lesebefehl kann man die Temperatur einlesen (16-Bit), das Format ist allerdings etwas tricky. Das erste Byte (8-Bit) ist die Temperatur in ganzen Grad, als normales signed char, vom zweiten Byte gibt das MSB an, ob noch 0.5&amp;lt;sup&amp;gt;o&amp;lt;/sup&amp;gt; '''dazuzuzählen''' sind (also auch, wenn vorne eine negative Zahl steht)  &lt;br /&gt;
&lt;br /&gt;
Der Grund ist der: die vorzeichenbehaftete 9-Bit Zahl, die da linksbündig in zwei Datenbytes übertragen wird, gibt eigentlich an, wieviel 0.5 Grad - Einheiten gemessen wurden. Rein rechnerisch wäre also Temperatur = Wert * 0.5, das müßte man aber als float durchführen oder erweitern&lt;br /&gt;
&lt;br /&gt;
===Programm-Beispiel für LM75===&lt;br /&gt;
Der LM75 wird über den [[I2C]]-Bus angesprochen&lt;br /&gt;
In BasCom, wo es ja keine signed char gibt, wird das Interpretieren auf sehr unterschiedliche Art empfohlen. &lt;br /&gt;
&lt;br /&gt;
Ich empfehle:&lt;br /&gt;
&lt;br /&gt;
 dim Ival as integer&lt;br /&gt;
 dim Msb as byte&lt;br /&gt;
 dim Lsb as byte&lt;br /&gt;
         I2cstart&lt;br /&gt;
         I2cwbyte &amp;amp;H91   ' Lese-adresse !  &lt;br /&gt;
         If Err = 1 Then&lt;br /&gt;
            I2cstop       ' kein ACK vom LM75 --&amp;gt; irgendein Fehler&lt;br /&gt;
            Ival = 9999   ' Zeichen, daß der Wert ungültig ist !&lt;br /&gt;
         Else&lt;br /&gt;
            I2crbyte Msb , Ack&lt;br /&gt;
            I2crbyte Lsb , Nack&lt;br /&gt;
            I2cstop&lt;br /&gt;
            If Msb.7 = 1 Then&lt;br /&gt;
               Ival = Makeint(msb , &amp;amp;HFF)   ' auffüllen mit den Vorzeichen bits&lt;br /&gt;
            Else&lt;br /&gt;
               Ival = Makeint(msb , &amp;amp;H00)   ' positiv, also bleibt es so&lt;br /&gt;
            End If&lt;br /&gt;
            Ival = Ival * 10                ' erweitern &lt;br /&gt;
            If Lsb.7 = 1 Then&lt;br /&gt;
              Ival = Ival + 5               ' fünf Zehntel Grad dazu &lt;br /&gt;
            End If&lt;br /&gt;
         End if&lt;br /&gt;
&lt;br /&gt;
das ergibt die Temperatur in Zehntel-Grad (Natürlich nur, wenn's keine Fehler gab).&lt;br /&gt;
&lt;br /&gt;
==Resistive Sensoren==&lt;br /&gt;
...&lt;br /&gt;
==Kapazitive Sensoren==&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für kapazitive Sensoren sind Luftfeuchtigkeitsmesser, die ihre Kapazität entsprechend der Luftfeuchtigkeit ändern. Das Auslesen der Kapazität kann prinzipiell über das Ausmessen von Ladekurven geschehen. Dies ist jedoch bei kleinen Kapazitäten nicht praktisch durchführbar, weshalb man in diesem Falle meist einen Schwingkreis baut, dessen Frequenz man dann misst und so dann zusammen mit der bekannten Induktivität der Spule die Kapazität des Kondensators ausrechnen kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:feuchtesensor.gif|framed|center|Valvo Feuchtigkeitssensor 10-90% (Kapazität: 122 pF bei TU = 25 °)]]&lt;br /&gt;
&lt;br /&gt;
==Induktive Sensoren==&lt;br /&gt;
Induktiver Näherungsschalter&lt;br /&gt;
&lt;br /&gt;
Sensoren die ihre Induktivität entsprechend der Messgröße ändern können auch mit Hilfe eines Schwingkreises mit bekannter Kapazität ausgemessen werden.&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
==Piezoelektrische Sensoren==&lt;br /&gt;
Hier ist ein Experiment dargestellt das die Funktion von Piezowandlern demonstriert.&lt;br /&gt;
&lt;br /&gt;
Drückt man auf eine längliche Glasplatte (Mikroskopträger Länge 76mm), die an den Enden auf je einem Piezo Wandler gelagert ist, dann ergeben sich Signale, die von den Kräften auf die Wandler abhängig sind. &lt;br /&gt;
&lt;br /&gt;
Die Summe der beiden Kräfte entspricht der Gesamtkraft. Das Verhältnis der beiden Kräfte entspricht dem Verhältnis der Abstände des Druckpunktes zum Wandler. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Piezowandler.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Versuch wurde mit der Frequenz von ca. 4Hz (0,5s/div) von einem Ende bis zum anderen auf die Platte gedrückt. (Tonleiter). Die Signale der beiden Wandler sind im Oszillogramm aufgetragen und die Folge der Druck-Positionen ist auf den ersten Blick schon mal nachvollziehbar.&lt;br /&gt;
&lt;br /&gt;
==PIR Passiv Infrarot Sensoren==&lt;br /&gt;
Hier handelt es sich um Passiv-Infrarot-Bewegungsmelder. Bewegungsmelder regieren beim Eintritt einer Person (Tier) in das Erfassungsfeld des Sensors. Die Anwendungsmöglichkeiten sind nahezu unbegrenzt, man kennt die Technik ja von vielen Terrassenlampen, welche sich beim vorbeigehen automatisch einschalten.&lt;br /&gt;
Reagiert wird also auf die Körperwärme einer sich im Erfassungsfeld bewegenden Person.&lt;br /&gt;
[[Bild:pir.jpg|right]]&lt;br /&gt;
Zum Prinzip: &lt;br /&gt;
Wärmestrahlen, die einen Erfassungsvorgang auslösen, liegen im Infrarot-Bereich des Wellenspektrums. In diesem Bereich gibt der menschliche Körper seine Wärmestrahlung ab. Leuchtmittel wie Glüh- , Halogen- und Entladungslampen, die für eine Strahlung im sichtbaren Bereich um 0,555 μm entwickelt wurden, geben jedoch auch einen erheblichen Teil an Wärmestrahlung im Infrarot-Bereich ab.&lt;br /&gt;
Im Spektrum oberhalb des sichtbaren Licht, ab 0,780 μm, beginnt der Infrarot-Bereich. Die Wellenlänge&lt;br /&gt;
dieser IR-Strahlung ist abhängig von der Temperatur eines Körpers. Die Wärmestrahlung&lt;br /&gt;
des Menschen hat ihr Maximum zwischen 9 und 10 μm im Infrarot-Bereich.&lt;br /&gt;
Diese Tatsache nutzt der PIR Sensor mittels sogenannter pyroelektrischer IRDetektoren, welche eine hohe Empfindlichkeit im langwelligen Infrarot-Bereich aufweisen. Die Infrarot-&lt;br /&gt;
Strahlung verhält sich ähnlich wie sichtbares Licht. Sie kann reflektiert und durch Linsen&lt;br /&gt;
gebündelt werden.&lt;br /&gt;
Basis eines solchen IR-Detektors (Sensors) sind Lithium-Tantalatkristalle. Diese Kristalle erzeugen,&lt;br /&gt;
bei Wärmeänderung (positive oder negative Temperaturänderung), eine elektrische Spannung.&lt;br /&gt;
Die von den Kristallen abgegebene Spannung liegt im Bereich von einigen μV (μV = millionstel Volt) und ist von folgenden Bedingungen abhängig: &lt;br /&gt;
* Der Intensität der Wärmequelle (Temperatur und Größe)&lt;br /&gt;
* Dem Umgebungsmedium (Temperatur, unterschiedliche Luftfeuchtigkeit)&lt;br /&gt;
* Der Entfernung zwischen Wärmequelle und IR-Sensor&lt;br /&gt;
* Der Bewegungsgeschwindigkeit und Bewegungsrichtung der Wärmequelle&lt;br /&gt;
* Der Empfindlichkeit des PIR-Elementes (frequenzabhängiges Bandpaßverhalten mit Maximum bei ca. 0,1 Hz)&lt;br /&gt;
&lt;br /&gt;
Zur Unterdrückung von Einflüssen aus der Umgebung (übliche wetterbedingte Temperaturänderungen), sind in jedem Sensor 2 Kristalle antiparallel geschaltet. &lt;br /&gt;
Einer der Kristalle gibt, bei Auftreffen von Wärmestrahlung einen positiven, der andere einen negativen Spannungsimpuls ab. Wärmeänderungen die gleichzeitig und mit gleicher Intensität auf beide Kristalle einwirken lösen so keinen Erfassungsvorgang aus, denn die beiden Impulse heben sich gegenseitig auf. Dadurch ist ein Auslösen bei Wärmeänderungen der Umgebung weitgehend ausgeschlossen.&lt;br /&gt;
Anders verhält es sich bei schnellen Bewegungen. Die Lithiumtantalat-Kristalle geben, entsprechend&lt;br /&gt;
der Bewegung und der dadurch hervorgerufenen Wärmeänderung im Erfassungsfeld, ihre&lt;br /&gt;
Impulse zeitversetzt ab. Die beiden Impulse addieren sich zu einer Wechselgröße mit höherer&lt;br /&gt;
Signalamplitude. Dieses elektrische Ausgangssignal ist proportional der Wärmeänderung und führt zur Meldung einer Bewegung.&lt;br /&gt;
&lt;br /&gt;
==Autoren==&lt;br /&gt;
* [[Benutzer:PicNick|PicNick]]&lt;br /&gt;
* [[Benutzer:Frank|Frank]] &lt;br /&gt;
* [[Benutzer:Dennis.strehl|Dennis.strehl]]&lt;br /&gt;
* [[Benutzer:Florian|Florian]]&lt;br /&gt;
* Topic&lt;br /&gt;
* [[Benutzer:Manf|Manf]]&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[Navigation]]&lt;br /&gt;
* [[Sensoren]]&lt;br /&gt;
* [[Graycode]]&lt;br /&gt;
* [[Ultraschall SRF10 an RN-Control]]&lt;br /&gt;
* [[Ultraschall SRF05 an RN-MiniControl]]&lt;br /&gt;
* [[Ultraschallsensor SRF02 am RN-Board]]&lt;br /&gt;
* [[Bascom und Kompass CMPS03]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
*[http://www.ikm.uni-karlsruhe.de/forschung/pzt_webseiten/de/grundlagen/pyro.html Piezoelektrische Sensoren]&lt;br /&gt;
*[http://www.roboternetz.de/phpBB2/dload.php?action=category&amp;amp;cat_id=2 Datenblätter im Download-Bereich des Roboternetz]&lt;br /&gt;
*[http://www.nxp.com/acrobat_download/various/SC17_GENERAL_TEMP_1996_3.pdf KDY Sensor Datenblatt]&lt;br /&gt;
*[http://www.tranzistoare.ro/datasheets2/83/83853_1.pdf NTC Datenblatt]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Elektronik]]&lt;br /&gt;
[[Category:Sensoren]]&lt;/div&gt;</summary>
		<author><name>Momomu</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Diskussion:Sensorarten&amp;diff=9894</id>
		<title>Diskussion:Sensorarten</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Diskussion:Sensorarten&amp;diff=9894"/>
				<updated>2006-12-21T20:23:41Z</updated>
		
		<summary type="html">&lt;p&gt;Momomu: SHARP IR-Sensor GP2D12&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Vorschlag zur Diskussion:'''&lt;br /&gt;
&lt;br /&gt;
Wäre es nicht besser auf die einzelnen Sensorarten in eigenen Unterseiten einzugehen?&lt;br /&gt;
Die Übersichtsseite verweist dann auf diese Unterseiten.&lt;br /&gt;
&lt;br /&gt;
Die Unterseiten enthalten die Bilder, Ansteuerschaltung zum Controller, Beispiel Quellcode in C und Bascom, Links etc.&lt;br /&gt;
Ähnlich wie es SprinterSB in seinem [[RC5-Decoder_f%C3%BCr_ATMega|RC5 Beispiel]] gemacht hat.&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:M a r v i n|M a r v i n]] 11:15, 8. Dez 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
Ich denke solange die Artikel zu den einzelnen Sensorarten noch nicht einen besonders großen Umfang erreicht haben, ist das aufsplitten weniger sinnvoll. Sowas kann man ja später noch machen, wobei man es nicht zu stark zersplittern sollte. Es hat auch Vorteile wenn alles auf einer Seite ist, zum Beispiel wenn User sich Informationen ausdrucken wollen. &lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Frank|Frank]] 11:37, 8. Dez 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
IS471F - Fehler&lt;br /&gt;
&lt;br /&gt;
Sagt mal, bin ich jetzt völlig bekloppt und steh auf der Leitung oder kann es sein, dass der Schaltplan für die stärkere IR-LED beim IS471F einen Fehler hat?&lt;br /&gt;
&lt;br /&gt;
Die mit dem Transistor verstärkte IR-LED ist meiner Meinung nach falschherum eingezeichnet. Der Strich zeigt doch immer die Kathode an und dann sollte er ja wohl kaum in Sperrrichtung zu den 5 Volt hin betrieben werden, oder?&lt;br /&gt;
&lt;br /&gt;
[[Benutzer:Andun|Andun]] - 26.1.06 &lt;br /&gt;
&lt;br /&gt;
P.S.: Wie mach ich dass, das mein Eintrag hier so aussieht wie eurer???&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Du hast natürlich Recht, danke für Hinweis.  Werds gleich mal korrigieren. &lt;br /&gt;
Du musst für Unterschrift den Unterschriftsbutton über Dialog nutzen. Ist der nicht da, dann musst du ihn über &amp;quot;EInstellungen&amp;quot; aktivieren (Rechts oben).&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Frank|Frank]] 11:29, 27. Jan 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Kompass-Modul - Horizontale Neigung messen?'''&lt;br /&gt;
&lt;br /&gt;
Beim durchlesen ist mir gerade ein kleiner Fehler aufgefallen: Im Artikel über das Kompass-Modul ist angegeben, dass man mit diesem die Neigung gegenüber der horizontalen messen könnte, wenn man es senkrecht montiert.&lt;br /&gt;
&lt;br /&gt;
Das ist (leider) nur teilweise korrekt: Man kann zwar die Neigung in Nord-Süd Richtung (also um die Achse von Ost nach West) messen, solange die Inklination bekannt ist.&lt;br /&gt;
&lt;br /&gt;
Was nicht funktioniert, ist, die Neigung in Ost-West Richtung, also um die Achse von Nord nach Süd mit diesem Verfahren zu messen, da eine Drehung um die Feldlinien sich überhaupt nicht auf den Sensor auswirkt.&lt;br /&gt;
&lt;br /&gt;
Wenn das gehen würde dann bräuchte man endlich keine Kreisel für teures Geld mehr.&lt;br /&gt;
&lt;br /&gt;
Sollte man IMHO ein wenig abändern.&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Dennis.strehl|Dennis.strehl]] 00:11, 24. Feb 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Bessere es ruhig aus wenn Du Fehler entdeckst&lt;br /&gt;
--[[Benutzer:Frank|Frank]] 17:27, 24. Feb 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ist geändert.&lt;br /&gt;
--[[Benutzer:Dennis.strehl|Dennis.strehl]] 18:06, 24. Feb 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
== SHARP IR-Sensor GP2D12 ==&lt;br /&gt;
&lt;br /&gt;
Ist bei der Entfernungsmessung dieses Sensors die Vorderkante oder die Montagefläche maßgebend ? (macht 15mm Unterschied aus)&lt;br /&gt;
&lt;br /&gt;
[[Benutzer:Momomu|Momomu]] 21:23, 21. Dez 2006 (CET)&lt;/div&gt;</summary>
		<author><name>Momomu</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=RN-Board_FAQ-Seite&amp;diff=9878</id>
		<title>RN-Board FAQ-Seite</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=RN-Board_FAQ-Seite&amp;diff=9878"/>
				<updated>2006-12-19T21:07:49Z</updated>
		
		<summary type="html">&lt;p&gt;Momomu: typo (Baord -&amp;gt; Board)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Fragen und Antworten zu RN-Boards (Roboternetz-Boards) und AVR-Grundfragen'''&lt;br /&gt;
Dieser Artikel soll immer wiederkehrende Fragen zu RN-Boards beantworten und Einsteigern etwas die ersten Schritte erleichtern. Dieser Beitrag wird ständig ergänzt, also ab und zu mal reinschauen. Ich fasse hier wichtige Einsteiger-Infos, die in verschiedenen Beiträgen hier im Forum gesagt wurden, kurz und knapp zusammen.&lt;br /&gt;
&lt;br /&gt;
===Wie werden RN-Boards wie [[RN-Control]], RN-Mega, RNBFRA und ähnliche programmiert?===&lt;br /&gt;
Die Programmierung erfolgt über ein sogenanntes [[AVR-ISP Programmierkabel]] (auch ISP-Dongle genannt). Dieses Kabel wird in eine 10-polige Wannenbuchse (verpolungssicher) in das Board gesteckt. Das andere Ende wird in den normalen Druckerport des PCs eingesteckt.&lt;br /&gt;
Programmiersprachen wie Basic ([[Bascom]]-Compiler) können dann per Knopfdruck ein compiliertes Programm direkt in den Chip übertragen. Anschließend kann das Kabel entfernt werden und das Board arbeitet unabhängig das Programm ab. Beim Test kann das Kabel auch eingesteckt bleiben. Hier wird es bei Verwendung von Bascom Basic und [[RN-Control]] gezeigt: [[Bascom - Erstes Programm in den AVR Controller übertragen]]&lt;br /&gt;
&lt;br /&gt;
===Was braucht man für den Start mit einem RN-Board?===&lt;br /&gt;
[[Bild:avrtutorial_ispkabel.jpg|thumb|ISP Programmierkabel]]Neben dem eigentlichen Board braucht man wie schon zuvor angesprochen ein [[AVR-ISP Programmierkabel]]. Da das Selbstbauen kaum billiger ist, ist zu empfehlen, ein solches mitzubestellen. Als zweites braucht man natürlich eine Stromversorgung. Ideal sind Gleichspannungsnetzgeräte, die zwischen 9 und 12V liefern. Man kann hier ein normales Steckernetzteil oder ein komfortables Labornetzteil nehmen. Um etwas Reserve zu haben wäre es gut, wenn das Netzteil einen Strom von mindestens 1 A liefern würde. Alternativ kann man auch Akkupacks oder Batterien nutzen, allerdings mindestens 7,2 V sollten die schon liefern, sicherer sind 8,4-, 9,6- oder 12-V-Akkus. [[Bild:avrtutorial_netzgerät.jpg|thumb|Beispiel eines Netzgerätes]]&lt;br /&gt;
Das wäre eigentlich schon das Wichtigste, um das Board in Betrieb zu nehmen. Allerdings ein [[RS232]] Kabel ist ebenfalls noch sehr empfehlenswert. Dieses erlaubt die Ausgabe von Texten, Variablen auf dem PC. Das ist sehr hilfreich, um ein Programm debuggen zu können. Dazu wird auf dem PC ein [[Terminalprogramm]] gestartet und über die [[RS232]] Schnittstelle mit dem PC verbunden. Bei manchen Boards ist sowieso ein [[RS232]] Kabel unerläßlich, wie z.B. RN-Motor, RN-Speak etc. Nützlich ist es überall. Man kann ein solches Kabel selbst bauen oder gleich beim Kauf eines Boardes mitbestellen.&lt;br /&gt;
Also nochmal die Zusammenfassung für den Einstieg:&lt;br /&gt;
* Controllerboard&lt;br /&gt;
* [[AVR-ISP Programmierkabel]] oder anderer Programmer wie Bascom USBISP-Programmer&lt;br /&gt;
* RS-232 Kabel (mit 3 poligem Adapter)&lt;br /&gt;
* Netzgerät oder Akku ('''ideal 9 bis 12V''' notfalls auch etwas niedriger oder höher, Hauptsache zwischen 7,2 bis 20 V)&lt;br /&gt;
* [[Bascom]] Compiler Vollversion ist nur nötig, wenn man gleich größere Programme anstrebt, ansonsten reicht das Demo, das genauso wie ein vollwertiger[[Avr-gcc]]-Compiler beim Board- oder Platinenkauf sowieso mitgeliefert wird)&lt;br /&gt;
* Ein gutes Buch ist immer gut, siehe [[Buchvorstellungen]]&lt;br /&gt;
&lt;br /&gt;
===Wie muss Bascom eingestellt werden, damit der ISP-Programmierdongle richtig funktioniert?===&lt;br /&gt;
Die üblichen Dongles ([[AVR-ISP Programmierkabel]] wie z.B. von Robotikhardware) arbeiten alle gleich. Hier sollte im Dialog von [[Bascom]] folgende Einstellung erfolgen:&lt;br /&gt;
&lt;br /&gt;
http://www.roboternetz.de/phpBB2/album_pic.php?pic_id=194.gif&lt;br /&gt;
&lt;br /&gt;
Weitere Infos dazu auch hier [[Bascom - Erstes Programm in den AVR Controller übertragen|Einstellungen unter Bascom]]&lt;br /&gt;
&lt;br /&gt;
===Mit welcher Programmiersprache werden die RN-Controllerboards programmiert?===&lt;br /&gt;
Bei den meisten RN-Boards handelt es sich um [[AVR]]-Boards. Diese können in Basic, C, Assembler und zum Teil in Pascal programmiert werden. &lt;br /&gt;
Am beliebtesten ist derzeit der Basic-Compiler [[Bascom]] und der C-Compiler [[Avr-gcc]]. Für den schnellen Einstieg aber durchaus auch für professionelle Programme empfehle ich Bascom. Zu dieser Programmiersprache gibt es auch mehrere deutschsprachige Bücher. Siehe auch unter [[Buchvorstellungen]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Mein Programm wird nicht mit Parallel ISP übertragen bzw. der Controller wird nicht erkannt! Welche Ursachen kann das haben?===&lt;br /&gt;
ISP-Kabel sind generell etwas empfindlich gegenüber Störungen. Das ISP-Kabel sollte möglichst nicht andere Kabel (Netzzuleitung usw.) kreuzen. Das kann manchmal auch zu unterschiedlichsten Fehlermeldungen führen.&lt;br /&gt;
&lt;br /&gt;
Generell sollten folgende Dinge geprüft werden:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Stimmen die Einstellungen z.B. in Bascom [[Bascom - Erstes Programm in den AVR Controller übertragen|Einstellungen unter Bascom]]?====&lt;br /&gt;
&lt;br /&gt;
====Ist ISP-Stecker richtig rum aufgesteckt?====&lt;br /&gt;
Bei den meisten Boards, wie auch RN-Control, kann man es nicht falschrum aufstecken. Aber beim [[RNBFRA-Board]] kann dies passieren, da dort aus Platzgründen kompatible Stiftleisten statt Wannenstecker genutzt wurden. Dort darauf achten, dass farbliche Markierung zum Boardrand zeigt&lt;br /&gt;
&lt;br /&gt;
====Nicht die I2C-Buchse mit der ISP-Buchse verwechseln====&lt;br /&gt;
Beide haben den gleichen Stecker, also unbedingt auf die Platinenbeschriftung achten. Eine Verwechslung kann Dongle oder Port beschädigen, was dann auch zu Fehlermeldungen führt.&lt;br /&gt;
&lt;br /&gt;
====Kabel mal etwas anders verlegen und Störquellen wie Handy etc. entfernen====&lt;br /&gt;
&lt;br /&gt;
====Einfach prüfen, ob auch Spannung am Board anliegt====&lt;br /&gt;
Simpler Tipp, aber nicht selten wird es vergessen, wenn das Board keine LED hat :-)&lt;br /&gt;
&lt;br /&gt;
====Wackelkontakt in irgendeiner Steckverbindung====&lt;br /&gt;
Stecker nochmal rein und rausziehen (am Dongle, am PC)&lt;br /&gt;
&lt;br /&gt;
====Aktuelle Bascom Version?====&lt;br /&gt;
Im About-Window von [[Bascom]] nachschauen, ob ihr die aktuelle Bascom- Version habt. Bei älteren Versionen soll es insbesondere beim Mega 32 zu Problemen mit den Dongles ([[AVR-ISP Programmierkabel]] kommen. Also unbedingt prüfen ob die aktuelle Version installiert ist. Wenn nicht, unbedingt noch runterladen, dann geht's problemlos.&lt;br /&gt;
&lt;br /&gt;
====Quarz ok?====&lt;br /&gt;
Es ist schon vorgekommen, dass ein Quarz diese Fehler verursacht. Tauscht den Quarz mal gegen einen anderen aus. Im Test waren einmal bei gleichem Quarz des gleichen Herstellers alle ISP-Probleme weg. Und das, obwohl beide Quarze im Betrieb funktionierten.&lt;br /&gt;
&lt;br /&gt;
====Binary File eingestellt?====&lt;br /&gt;
Prüfe, ob in Bascom unter Optionen / Chip / Output auch das Binary File aktiviert ist. Dies ist wichtig, da sonst ebenfalls ein Fehler bei der Übertragung angezeigt wird.&lt;br /&gt;
&lt;br /&gt;
====Störungen durch andere Programme?====&lt;br /&gt;
Schalte deinen Rechner mal komplett an und aus und starte, wenn möglich, keine anderen Anwendungen, sondern nur die Übertragungssoftware bzw. Bascom. Es ist schon vorgekommen, dass andere Programme die Übertragung behindert haben. &lt;br /&gt;
&lt;br /&gt;
====Störungen durch Drucker oder Druckertreiber?====&lt;br /&gt;
Auch wenn es selten vorkommt, dennoch wurde schon von einigen Usern berichtet das auch bestimmmte Druckertreiber die ISP-Übertragung stören können. Also wenn alle anderen hier genannten Punkte nicht helfen, dann einfach mal den Druckertreiber deaktivieren oder einen anderen wählen.&lt;br /&gt;
&lt;br /&gt;
====Im PC Bios Bidirectional auf ECP umstellen====&lt;br /&gt;
In sehr seltenen Fällen kann es notwendig sein das im PC Bios die Druckerport Einstellung geändert werden muss. Es hat sich gezeigt das es besser klappen kann wenn im PC-BIOS der Parallelport von bidirectional auf ECP umgestellt wird. Auch die LPT Adresse prüfen. Üblich ist 378, gegebenenfalls in Bascom beim Programmer eine andere eintragen (steht im Bios.&lt;br /&gt;
&lt;br /&gt;
====Kabel defekt?====&lt;br /&gt;
Dongle-Kabel überprüfen. Es kommt zwar selten vor, dass ein Kabel defekt ist, aber es ist auch schonmal vorgekommen, dass ein Stecker nicht korrekt in die Adern geschnitten hat. Also möglichst mit Multimeter/Ohmmeter jeden Kontakt durchmessen. Auch mal benachbarte Kontakte auf Kurzschluss prüfen. Stecker müssen beim [[AVR-ISP Programmierkabel|RN-ISP Dongle]] so montiert sein: &lt;br /&gt;
&lt;br /&gt;
http://www.robotikhardware.de/bilder/isp/ispstecker.jpg&lt;br /&gt;
&lt;br /&gt;
====Programm zu lang?====&lt;br /&gt;
Überprüfe mal, ob der Programmcode überhaupt in den Controller passt. Leider kommt da von Bascom auch keine eindeutige Fehlermeldung, so dass man oft lange nach Übertragungsfehlern sucht und in Wirklichkeit nur der Programmcode zu lang ist. Klicke mal auf das Symbol &amp;quot;Show Compile Result&amp;quot;. Wenn der Code in den Chip passt, dann sollte dort folgender Satz zu finden sein:&lt;br /&gt;
 ROMIMAGE     : 1FD0 hex  -&amp;gt; Will fit into ROM&lt;br /&gt;
&lt;br /&gt;
Ein Defekt an Dongle oder Board ist wirklich sehr selten. Wenn man die Möglichkeit hat, sollte man durch CoController oder ein anderes Board/Dongle einen Test machen, um die Fehlerquelle einzukreisen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Wie installiere ich Treiber für den neuen Bascom USB-Programmer?===&lt;br /&gt;
[[Bild:BascomUsbProgrammer.jpg|thumb]]&lt;br /&gt;
Hierzu findet man auch in der Hilfe von Bascom selbst schon Tipps. Wichtig ist das man nei neuste Bascom version installiert, mindestens die Version 1.11.8.0.&lt;br /&gt;
Also hier Schritt für Schritt:&lt;br /&gt;
&lt;br /&gt;
;Schritt 1: Stets die aktuellste Bascom Vollversion oder Demo installieren. Bascom installiert im Unterverzeichnis bereits den aktuellen Treiber für den &amp;quot;Bascom Programmer USB-ISP&amp;quot; mit. (''in C:\Programme\MCS Electronics\BASCOM-AVR\usb'')&lt;br /&gt;
;Schritt 2: Programmer an USB anschließen / anstecken&lt;br /&gt;
;Schritt 3: Wenn nach Treiberdatei gefragt wird, wählen Sie das Verzeichnis C:\Programme\MCS Electronics\BASCOM-AVR\usb an&lt;br /&gt;
;Schritt 4: In den Bascom-Optionen Programmer wählen Sie &amp;quot;USB-ISP PROGRAMMER&amp;quot; &lt;br /&gt;
[[Bild:UsbProgrammerKonfig.jpg]]&lt;br /&gt;
;Schritt 5: Fertig - Sie können programmieren. Wenn das zu programmierende Board keine eigene Spannung besitzt, nur dann den Jumper am Programmer zur Stromversorgung des Boards einstecken (max. 100 mA)&lt;br /&gt;
&lt;br /&gt;
===Wie aktiviert man den Quarz beim Mega 16 / Mega 32 ?===&lt;br /&gt;
Falls man das Board fertig bezieht ist dies bereits erledigt. Auch die Fusebits stimmen dann schon. Zumindest ist das bei rn-Control so der Fall. Ansonsten kann man den internen 1-Mhz-Takt jederzeit mit dem Bascomcompiler oder dem Programm Pony auf die Quarzfrequenz umschalten.&lt;br /&gt;
&lt;br /&gt;
Unter Bascom geht dies so im Programmer-Dialogfenster:&lt;br /&gt;
&lt;br /&gt;
http://www.roboternetz.de/bilder/bascom/bascomquarz550_f.gif&lt;br /&gt;
&lt;br /&gt;
In Pony sieht die Einstellung der Fusebits bei Quarz-Aktivierung so aus:&lt;br /&gt;
&lt;br /&gt;
http://www.roboternetz.de/phpBB2/album_pic.php?pic_id=152.gif&lt;br /&gt;
&lt;br /&gt;
Siehe auch [[Bascom - Erstes Programm in den AVR Controller übertragen|Einstellungen unter Bascom]]&lt;br /&gt;
&lt;br /&gt;
===Wie muss man Fusebits beim Board RN_Mega128Funk (ATMEGA128) einstellen?===&lt;br /&gt;
Auch hier muss der Quarz über eine Einstellung aktiviert werden. Gleichzeitig ist zu empfehlen den Kompatiblitätsmodus auf den Mega128 Modus zu stellen und JTAG zu deaktivieren. Um das alles zu ändern sollte man in Bascom Basic die EInstellungen so vornehmen wie Sie im unteren Bild zu sehen sind. In der Doku des Boardes wird´s auch beschrieben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:avarnmega128fusebits.gif]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Fusebits bequem im Quelltext festlegen===&lt;br /&gt;
Wie die Einstellung der Fusebits im Dialog erfolgt, wurde ja zuvor schon für eine Boards aufgezeigt. Es gibt jedoch ab der Bascom Version 1.11.8.3 noch eine wesentlich einfachere Möglichkeit. Man nimmt einfach eine Programmzeile mit in den Quellcode auf. Wenn man diese an an den Anfang des Programmes schreibt, so werden beim programmieren (flashen) mit dem Bascom Programmer automatisch die Fusebits korrekt gesetzt. In den Fusebit Dialog muss man dann garnicht mehr wechseln, was für Einsteiger eine enorme Erleichterung ist. Diese neue Methode funktioniert jedoch nicht mit allen Programmern, unterstützt wird es von dem Standard ISP nach unserer [[AVR-ISP Programmierkabel|Programmer-Bauanleitung]] und von dem &amp;quot;BASCOM USB ISP-Programmer&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Hier ein paar Beispiele für beliebte RN-Boards:'''&lt;br /&gt;
&lt;br /&gt;
bei [[RN-Mega8]], RN-Mega8Plus  lautet die Zeile:&lt;br /&gt;
 $prog &amp;amp;B111111 , 255 , &amp;amp;B11011001 ,     'Quarz an / Kein Leseschutz&lt;br /&gt;
&lt;br /&gt;
bei RN-Mega2560Modul  lautet die Zeile:&lt;br /&gt;
 $prog , 255 , &amp;amp;B11011001 ,              'Quarz an / Taktteiler aus / Jtag aus&lt;br /&gt;
&lt;br /&gt;
bei [[RN-MiniControl]], RN-MotorControl  mit Mega168 lautet die Zeile:&lt;br /&gt;
 $prog &amp;amp;B111111 , 255 , &amp;amp;B11011111 ,     'Quarz an / Taktteiler aus&lt;br /&gt;
&lt;br /&gt;
bei  [[RN-Speak]], [[RN-KeyLCD]], RN-Motor (falls man eigene Firmware schreibt) lautet die Zeile:&lt;br /&gt;
 $prog &amp;amp;B111111 , 255 , &amp;amp;B11011001 ,     'Quarz an / Kein Leseschutz&lt;br /&gt;
&lt;br /&gt;
===Wie sieht ein Grundprogramm in Basic aus, welche Angaben müssen im Code vorhanden sein??===&lt;br /&gt;
Ein Basic-Programm, das mit Bascom geschrieben wird, muss in jeden Fall als erstes die Taktfrequenz über den Befehl $crystal festlegen, ansonsten funktionieren einige Funktionen nicht korrekt oder garnicht. Da man fast immer auch die RS232-Schnittstelle nutzt, um mit Print Infos auszugeben, sollte man sich angewöhnen auch den $baud Befehl zum Festlegen der Übertragungsrate zu nutzen. Möchte man den I2C-Bus nutzen, so müssen auch diese Ports mit Config definiert werden.&lt;br /&gt;
Ein einfaches Grundprogramm sollte wie auf Seite [[Bascom - Erstes Programm in den AVR Controller übertragen]] beschrieben aussehen&lt;br /&gt;
&lt;br /&gt;
===Einige Portleitungen am Port C scheinen nicht zu funktionieren!===&lt;br /&gt;
Das kann an den Fuse-Bits liegen. Bei der Auslieferung von Controllern ist normalerweise ein sogenanntes JTAG-Interface aktiviert. Dieses Interface wird von professionellen Programmierern mit zusätzlicher Hardware zur Fehlersuche genutzt. Dadurch sind allerdings einige Ports nicht verwendbar.&lt;br /&gt;
In der Regel sollte man dieses JTAG-Interface deaktivieren, damit wieder alle Ports verfügbar sind. Dies erfolgt über die sogenannten Fusebits (Einstellungsparameter innerhalb des Controllers).&lt;br /&gt;
Wird der Controller zusammen mit einem Roboternetz-Board erworben, so ist JTAG in den meisten Fällen bereits ausgeschaltet, so das nix weiter gemacht werden muss.&lt;br /&gt;
Ansonsten kann man dies auch sehr einfach über die Tools PONY oder BASCOM erledigen. Besonders bequem ist es in Bascom. Hier sehen die Einstellungen so aus:&lt;br /&gt;
&lt;br /&gt;
http://www.roboternetz.de/bilder/bascom/bascomquarz550_f.gif&lt;br /&gt;
&lt;br /&gt;
===Ich bin Basic-Neueinsteiger! Wie kommt mein Programm in den Controller?===&lt;br /&gt;
Dies ist mit Bascom-Basic recht einfach, da dieser Compiler ein eingebautes Übertragungsprogramm besitzt. Eine genaue Beschreibung findest du hier [[Bascom - Erstes Programm in den AVR Controller übertragen|ISP und Bascom]]&lt;br /&gt;
Wo man Bascom, passende Bücher und Beispiele findet, steht unter [[Buchvorstellungen]]&lt;br /&gt;
&lt;br /&gt;
===Board führt RESET aus, wenn ich ISP einstecke!===&lt;br /&gt;
Beim Einstecken des ISP-Steckers kann es durchaus zu einem RESET kommen, insbesondere, wenn das Programmierkabel noch nicht im PC steckt. In diesem Fall sind einige Leitungen noch nicht auf richtigem Potential, so dass es zu Störungen kommen kann. Dies ist weg, sobald das Kabel richtig angeschlossen ist.&lt;br /&gt;
&lt;br /&gt;
===Board arbeitet nicht, wenn ich ISP einstecke!===&lt;br /&gt;
Über das ISP Kabel wird auch die RESET-Leitung gesteuert. Es gibt einige Programme auf dem PC, die diese RESET-Leitung dauerhaft auf LOW schalten, wodurch das Board nicht mehr reagiert. Auch beim ausgeschalteten PC kann diese Blockade eintreten.&lt;br /&gt;
Wenn das richtige Programm geladen wird, zum Beispiel [[Bascom]] Compiler, wird der Druckerport entsprechend richtig konfiguriert und der Blockadeeffekt ist weg, wenn das richtige ISP-Programm in der Bascomkonfiguration eingetragen ist. Eine genaue Beschreibung findest du hier [[Bascom - Erstes Programm in den AVR Controller übertragen|ISP und Bascom]]&lt;br /&gt;
&lt;br /&gt;
===RN-Control: Der Spannungswandler wird schön warm, wenn ich Servos anschließe. Ist das normal?===&lt;br /&gt;
Ja, ein Servo benötigt sehr viel Strom für die Motoren. Der Spannungsregler dürfte bei guter Kühlung (extra Kühlkörper) jedoch durchaus ein bis zwei Servos verkraften. Da ein Servo nicht unbedingt stabilisierte 5V benötigt, sondern durchaus auch mit ca. 4 bis 7V funktioniert, kann man auch einfach die Plusleitung des Servos direkt an das Batteriepack anschließen. Dadurch wird der Spannungsregler umgangen und man kann sogar viel mehr Servos anschließen.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch== &lt;br /&gt;
* [[Buchvorstellungen]]&lt;br /&gt;
* [[Bascom - Erstes Programm in den AVR Controller übertragen]] &lt;br /&gt;
* [[Bascom]]&lt;br /&gt;
* [[Avr]]&lt;br /&gt;
* [[AVR-Einstieg leicht gemacht]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Praxis]]&lt;br /&gt;
[[Kategorie:Elektronik]]&lt;br /&gt;
[[Kategorie:Robotikeinstieg]]&lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:Microcontroller]]&lt;/div&gt;</summary>
		<author><name>Momomu</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Navigation&amp;diff=9796</id>
		<title>Navigation</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Navigation&amp;diff=9796"/>
				<updated>2006-12-10T16:09:17Z</updated>
		
		<summary type="html">&lt;p&gt;Momomu: /* Trägheitsnavigation */ typo (nämich-&amp;gt;nämlich)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Unter Navigation bezeichnet man das Sichzurechtfinden in einem geografischen Raum, um einen bestimmten Ort zu erreichen. Die Tätigkeit des Navigierens besteht aus drei Teilbereichen:&lt;br /&gt;
&lt;br /&gt;
* Bestimmen der geografischen Position durch Ortung nach verschiedensten Methoden &lt;br /&gt;
* Berechnen des Weges zum Ziel und &lt;br /&gt;
* Führung des Fahrzeugs zu diesem Ziel, also vor allem das Halten des optimalen Kurses&lt;br /&gt;
&lt;br /&gt;
Es ist also eine zentrale Aufgabe beim Bau von Robotern. Es ist sogar das Thema, das einen besonders großen Reiz auf die Bastler ausübt.&lt;br /&gt;
&lt;br /&gt;
==Orientierung und Navigation==&lt;br /&gt;
Ein mobiler Roboter, der durch Bewegung mit seiner Umgebung in Kontakt tritt, braucht Sensoren zur Orientierung und er wird auch eine einfache Navigation durchführen.&lt;br /&gt;
&lt;br /&gt;
==Orientierung in natürlicher Umgebung== &lt;br /&gt;
Im einfachsten Fall werden es Berührungssensoren sein, mit denen der Roboter feststellt, ob ein Hindernis direkt vor ihm oder in seiner Reichweite ist. &lt;br /&gt;
Auch beim Einsatz von komplexeren Sensoren zum berührungslosen Orten von natürlichen Hindernissen sind einfache Kontaktsensoren zur Unterstützung sinnvoll. &lt;br /&gt;
Mit diesen Sensoren kann eine Orientierung aufgebaut werden, wenn Objekte der natürlichen Umgebung erkannt und in der Position registriert werden. Sie können beispielsweise in eine Karte eingetragen werden. &lt;br /&gt;
Die sogenannte natürliche Umgebung ist dabei in vielen Fällen speziell im Indoor-Bereich kaum von der Natur geschaffen, es sind hier vor allem Wände, Türen, Möbel. Sie wird nur so genannt, weil sie andererseits nicht zur Orientierung geschaffen wurde. &lt;br /&gt;
&lt;br /&gt;
===Ortung durch Berührung===&lt;br /&gt;
&lt;br /&gt;
Üblicherweise sind das Mikro-Schalter, die über eine Stoßstange (BUMPER) den passiven oder aktiven Kontakt mit einem Hindernis erkennen.&lt;br /&gt;
* Aktiver Kontakt - der Robby ist beim Fahren drangestoßen (Tischbein)&lt;br /&gt;
* Passiver Kontakt - Irgendwas hat den Robby berührt, z.B. die Hauskatze&lt;br /&gt;
&lt;br /&gt;
Den Unterschied kann der Roboter nur feststellen, wenn er seine momentane Bewegungsrichtung weiss und berücksichtigt. &lt;br /&gt;
&lt;br /&gt;
Bei einfachen Systemen wird meist so vorgegangen: &lt;br /&gt;
:Bumper rechts: etwas nach links drehen&lt;br /&gt;
:Bumper links: etwas nach rechts drehen&lt;br /&gt;
:Beide Bumper: umdrehen&lt;br /&gt;
&lt;br /&gt;
Dass man so ein primitives Verfahren nicht als Orientierung und kaum als Ortung bezeichnen kann, zeigt folgender einfache Vergleich: Stellen Sie sich vor, sie werden mit verbundenen Augen in einen Raum eingesperrt und sollen diesen durch einen Ausgang verlassen oder an einer vorgegebenen Stelle halten. Sie werden recht planlos an den Wänden entlanggehen und wahrscheinlich nicht merken, dass sie an der gleichen Stelle schon sechsmal vorbeikamen. Wenn der Raum um eine dicke Säule gebaut ist und Sie dort entlangehen, werden Sie die Türen an der Aussenwand kaum finden. Trotzdem arbeiten viele Roboter nach diesem Prinzip.&lt;br /&gt;
&lt;br /&gt;
===Berührungslose Ortung===&lt;br /&gt;
&lt;br /&gt;
Zur berührungslosen Orientierung an Objekten in der Umgebung kann der Roboter selbst ein akustisches oder optisches Testsignal aussenden und damit die Umgebung abtasten oder er kann sich am Bild der Umgebung orientieren. Es ist allerdings nicht ganz einfach, aus den empfangenen Signalen eine &amp;quot;innere&amp;quot; Landkarte zusammenzustellen und sich darin zurechtzufinden. Ohne so eine Landkarte ist die berührungslosen Orientierung nicht besser als ein verlängerter Arm der einfachen Kontaktschalter.&lt;br /&gt;
&lt;br /&gt;
====1. Akustische Abtastung====&lt;br /&gt;
&lt;br /&gt;
1.a. Akustischer Reflexkoppler&lt;br /&gt;
&lt;br /&gt;
Bei der akustischen Abtastung des Raumes stellt die &amp;quot;Einparkhilfe&amp;quot; die einfachste Lösung dar. Hier wird eine Sende- und eine Empfangskapsel über einen Verstärker gekoppelt und wenn im Bereich des Sensors ein Hindernis die Kopplung zwischen beiden erhöht, dann kommt es zum Anschwingen und damit zur Anzeige eines Hindernisses. Das Verfahren ist einfach, billig und lässt allenfalls senkrecht vor einer glatten Wand eine Bestimmung des Abstands zu. &lt;br /&gt;
Beispiel: Einparkhilfe Bild&lt;br /&gt;
&lt;br /&gt;
1.b. Akustische Laufzeitmessung (Echolot)&lt;br /&gt;
[[Bild:srf08.jpeg|right|200px|Beispiel SFR08]]&lt;br /&gt;
Etwas aufwendiger und genauer arbeiten die Ultraschallsensoren mit Laufzeitmessung. Hier wird ein Ultraschall-Impuls von 8-16 Perioden Dauer ausgesendet und es wird die Zeit gemessen, bis das Echo eintrifft. Mit diesem Verfahren kann die Zeit bis zum ersten Echo gemessen und über die Schallgeschwindigkeit der Abstand bestimmt werden. Die Genauigkeit liegt dabei im cm-Bereich. Es gibt Systeme mit anderen Verfahren: Kurz nach dem ersten Echo wird der Empfänger wieder empfindlich gemacht und dann werden weitere (maximal sieben) Echos registriert. Auf diese Weise kann man erkennen, ob hinter einem kleinen Hindernis (Ball) noch ein anderes (Wand) vorhanden ist. Bei ungünstiger Montage der Sensoren kann es auch vorkommen, dass der Sendepuls am eigenen Roboter reflektiert wird. Ein &amp;quot;normales&amp;quot; Echolot liefert dann keine brauchbaren Ergebnisse mehr - denkbar wäre das man einfach alle Ergebnisse weg läßt, die kleiner als 10 cm sind.&lt;br /&gt;
&lt;br /&gt;
====2. Optische Abtastung==== &lt;br /&gt;
&lt;br /&gt;
2.a. Optischer Reflexkoppler&lt;br /&gt;
&lt;br /&gt;
Bei den optischen Verfahren gibt es auch den einfachen Fall des Reflexsensors. Ein integriertes Sensor-IC gibt Stromimpulse für eine IR-LED aus und detektiert die Echos, die diesem Impulsmuster entsprechen. Man erreicht damit eine gute Unterdrückung der Umgebungshelligkeit, aber - wie auch im akustischen Fall - ist das Verfahren sehr von den Reflexionseigenschaften des Objektes abhängig und lässt kaum eine Bestimmung des Abstandes zu. &lt;br /&gt;
Beispiel IRF471 Bild &lt;br /&gt;
&lt;br /&gt;
2.b. Optische Triangulation&lt;br /&gt;
&lt;br /&gt;
Sehr viel genauer arbeiten die Sensoren, die den Abstand bis zu einem Hindernis trigonometrisch vermessen. Sie bestehen aus einer IR-Diode und einem Empfänger, die zusammen mit einer Steuerung in einem Modul integriert sind. Die Impulse werden wieder nach einem Schema zur Unterdrückung der Umgebungshelligkeit ausgesendet und detektiert. Hier aber handelt es sich um einen gebündelten Lichtstrahl, der auf das Hindernis trifft und der seitlich versetzte Empfänger - eine Position Sensitive Device (PSD) - misst, aus welchem Winkel das Licht reflektiert wird und setzt den Winkel in einen Spannungswert um. Leider ist der Zusammenhang Entfernung - Spannung recht nichtlinear. Über entsprechende Formeln oder Tabellen ist eine einfache Umrechnung möglich.&lt;br /&gt;
&lt;br /&gt;
Beispiel Sharp [[Sensorarten|GP2D12]]  &lt;br /&gt;
&lt;br /&gt;
http://www.roboternetz.de/bilder/gp2d12-nb.jpg&lt;br /&gt;
&lt;br /&gt;
http://www.roboternetz.de/wiki/uploads/Main/gp2d12diagram_a.jpeg&lt;br /&gt;
&lt;br /&gt;
2.c. Optische Laufzeitmessung&lt;br /&gt;
&lt;br /&gt;
Auch bei den optischen Verfahren gibt es Sensoren, die nach dem Laufzeitprinzip arbeiten. Sie sind allerdings bis heute Messgeräte, die noch so groß sind, dass sie kaum als Sensoren in Robotern eingesetzt werden. Ein vielversprechender Ansatz, einen Sensor als Modul zu realisieren, wurde vor ein paar Monaten von einem Fraunhofer Institut vorgestellt.&lt;br /&gt;
&lt;br /&gt;
Eine sehr hohe Genauigkeit der Abtastung der Umgebung liefern Laserscanner. Diese Sensoren tasten auf einer Ebene in einem Öffnungswinkel von 180 Grad die Entfernung bis zu den Hindernissen ab. Die Genauigkeit geht bis zu 1mm. Laserscanner sind sehr teuer.&lt;br /&gt;
&lt;br /&gt;
====3. Bildverarbeitung====&lt;br /&gt;
&lt;br /&gt;
Das Beispiel der optischen Abtastung mit trigonometrischer Messung funktioniert nicht nur mit einem PSD, sondern auch mit einer Kamera, mit der man den Winkel misst, unter dem der Teststrahl auf dem Objekt erscheint. &lt;br /&gt;
Darüber hinaus ist es natürlich auch möglich, das Bild der Umgebung mit zwei Kameras stereoskopisch aufzunehmen und durch Bildverarbeitung die Abstände zu den einzelnen Objekten zu bestimmen.&lt;br /&gt;
&lt;br /&gt;
==Orientierung an künstlichen Markierungen==&lt;br /&gt;
&lt;br /&gt;
===1. Passive Markierungen===&lt;br /&gt;
Künstliche Markierungen sind solche, die speziell zur Markierung geschaffen oder zur Orientierung ausgewählt und beschrieben sind. Ein typisches Beispiel für künstliche Markierungen sind Reflexmarken am Ende eines Gangs, durch den ein Roboter fahren soll. Er kann sich zunächst leicht am Verlauf des Gangs orientieren, zur Bestätigung, dass genau an einer bestimmten Stelle abgebogen werden soll, wird man zusätzlich eine Reflexmarke anbringen. Vorteilhaft ist eine passive Marke, die nicht mit Energie versorgt werden muss, denn die geringe Energie, die Marke zu finden, kann der autonom fahrende Roboter leicht selbst aufbringen. &lt;br /&gt;
&lt;br /&gt;
Viel häufiger als einzelne Reflexmarken sind noch dunkle Linien anzutreffen, denen ein Roboter folgen soll. Viele Einsteiger-Modelle, wie die Modelle von Lego und natürlich auch ASURO, sind dafür ausgerüstet. Am vorderen Ende des Fahrzeugs ist dazu eine Beleuchtung angebracht, die auf den Boden vor dem Fahrzeug gerichtet ist. Es reichen dann zwei lichtempfindliche Sensoren rechts und links von der Linie aus, um die Spurverfolgung zu kontrollieren und Abweichungen zu melden. Bei breiten Linien genügt ein einziger Sensor, der an einen ADC angeschlossen ist:&lt;br /&gt;
* Mittlere Helligkeit heisst : Geradeaus fahren.&lt;br /&gt;
* Zu dunkel: nach rechts fahren.&lt;br /&gt;
* Zu hell: nach links fahren. &lt;br /&gt;
Der Roboter fährt dann an einer Kante entlang, die andere intessiert nicht. Der Abstand vom Drehpunkt des Fahrzeugs im Zusammenspiel mit der Fahrtregelung ermöglicht dann unterschiedlich schnelle und sichere Aktionen zum Halten der Spur bei rascher Verfolgung der Linie.&lt;br /&gt;
&lt;br /&gt;
===2. Aktive Markierungen===&lt;br /&gt;
&lt;br /&gt;
* Infrarotbake - 1&lt;br /&gt;
Ein noch recht einfach umzusetzendes Prinzip für eine aktive Bake. Über IR-LEDs wird ein codiertes Signal ausgestrahlt. Der Roboter besitzt einen Infrarotempfänger mit relativ geringem Öffnungswinkel mit nachgeschaltetem Decoder für das Signal. Hiermit kann der Roboter feststellen, ob der Empfänger gerade in Richtung der Bake zeigt. Da durch die Codierung des Signals (und evtl mehrere Trägerfrequenzen) mehr als einen Bake gleichzeitig aktiv sein darf, kann man mit mehreren Baken, die man nacheinader anpeilt und dabei die Winkel misst, auch die absolute Position feststellen.&lt;br /&gt;
&lt;br /&gt;
* Infrarotbake - 2 &lt;br /&gt;
Deutlich einfacher geht es mit LEDs an unterschiedlichen Ecken des Spielfeldes, die jeweils von einem NE555 getaktet werden. Jede Bake hat eine eigene, feste Frequenz. Es gibt Projekte wo  man unterschiedliche Frequenzfilter einschalten und mit einem IR-Empfänger auf einem Servo suchen kann, aus welcher Richtung welche Bake blinkt. Durch dieses Frequenzfilter ist der Roboter immun gegen andere Lichtquellen. Drei Baken genügen theoretisch.&lt;br /&gt;
&lt;br /&gt;
* Transponder&lt;br /&gt;
Als sehr sicher haben sich - wie im Flugverkehr - aktive Transponder erwiesen. Diese werden durch einen Impuls abgefragt und antworten individuell. Dazu erzeugt der Roboter einen kurzen Ultraschallimpuls. Entweder mit Zielrichtung zum vermuteten Transponder oder ungerichtet. Sobald ein Transponder den Abfrageimpuls registriert, antwortet er mit einem oder mehreren Lichtblitzen, die auch unterschiedliche Farbe besitzen können. Aus der zwischenzeitlich vergangenen Zeit und der Empfangsrichtung lässt sich bei mehreren Transpondern der Standort berechnen. Beim [http://www.roboprogy.de ROBOprogy] lässt sich das eingebaute Programm für das Echolot sehr gut für diesen Zweck verwenden.&lt;br /&gt;
&lt;br /&gt;
* induktive Begrenzungsschleifen&lt;br /&gt;
Dieses Verfahren wird vor allem bei einigen Rasenmäher-Robotern benutzt. Ein Draht wird am Rand der für den Roboter zulässigen Fläche ausgelegt (oder eingegraben). Über den Draht wird ein Signal gesendet, das von einem Empänger im Roboter empfangen wird, falls sich der Roboter dem Draht nähert.&lt;br /&gt;
&lt;br /&gt;
==Koppelnavigation== &lt;br /&gt;
Als Koppelnavigation wird die fortlaufende Ortsbestimmung aus momentanem Kurs und Geschwindigkeit bezeichnet. Die so bestimmte Position wird dann auch als Koppelort bezeichnet. &lt;br /&gt;
&lt;br /&gt;
Ausgehend von Position &lt;br /&gt;
Richtung, Geschwindigkeit und Dauer festlegen. &lt;br /&gt;
&lt;br /&gt;
Gezielte Vorgaben &lt;br /&gt;
Kontrolle&lt;br /&gt;
&lt;br /&gt;
===Odometrie===&lt;br /&gt;
Erfassung der Richtung und Weg/Geschwindigkeit durch &lt;br /&gt;
*die Einschaltdauer des Antriebs&lt;br /&gt;
*zählen der getätigten Steps von Schrittmotoren&lt;br /&gt;
*sensorisch durch [[Sensorarten#Drehgeber_Sharp_GP1A30_und_GP1A38|spezielle Encoder]], aber auch Kugel-, Rad- und optische Mäuse&lt;br /&gt;
&lt;br /&gt;
==Trägheitsnavigation== &lt;br /&gt;
Beschleunigung &lt;br /&gt;
Winkelbeschleunigung &lt;br /&gt;
&lt;br /&gt;
Die Trägheitsnavigation ist eine Art der Koppelnavigation.&lt;br /&gt;
Die Position wird hierbei durch Messung von Beschleunigungen und Drehungen bestimmt. Um zu wissen, welcher Beschleunigungssensor für welche Richtung im Raum zuständig ist, muss aber erstmal bestimmt werden, in welcher Lage sich der Roboter (vornehmlich Flugroboter, bei anderen Arten macht Trägheitsnavigation wenig Sinn) befindet. Ist nämlich z.B. die Nase, beispielsweise bei einem Luftschiff, angehoben, misst der Beschleunigungssensor, der in Längsrichtung montiert ist, auch einen Teil der vertikalen Beschleunigung.&lt;br /&gt;
Die Bestimmung der Lage erfolgt meist über Gyrometer. Diese geben die Drehung des Objekts um eine bestimmte Achse aus. Dieser Wert wird aufsummiert (integriert), der integrierte Wert ist dann die Drehung des Objekts um eine bestimmte Achse.&lt;br /&gt;
Der Wert, den die Beschleunigungsensoren ausgeben, wird je nach Lage aufgeteilt und auf verschiedene Achsen aufsummiert, als Ergebnis hat man dann die Geschwindigkeit. Ein weiteres Aufsummieren ergibt den Weg, den das Objekt zurückgelegt hat - fertig.&lt;br /&gt;
&lt;br /&gt;
===Globale Orientierung===&lt;br /&gt;
Globale Felder Erdmagnetfeld Luftdruck &lt;br /&gt;
GPS&lt;br /&gt;
&lt;br /&gt;
===Kompass Höhenmesser===&lt;br /&gt;
natürliche Felder zur globalen Orientierung &lt;br /&gt;
Erdmagnetfeld, barometrischer Luftdruck&lt;br /&gt;
&lt;br /&gt;
===GPS===&lt;br /&gt;
Globales Positions System. (siehe [http://de.wikipedia.org/wiki/Global_Positioning_System Wikipedia]) Ultimatives Navigationssystem mit Genauigkeit im Meterbereich und weltweiter Verwendbarkeit. Es ist aber für kleine Roboter und auch in geschlossenen Räumen nur bedingt zu verwenden, da der Satellitenempfang in Gebäuden schlecht ist und die Module weder klein noch preiswert sind.&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[Sensorarten]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
* [http://www.robotmaker.de/fernbed.html Eine beliebte Schaltung für eine solche IR-Bake] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [[Kategorie:Robotikeinstieg]]&lt;br /&gt;
 [[Kategorie:Microcontroller]]&lt;br /&gt;
 [[Kategorie:Elektronik]]&lt;br /&gt;
 [[Kategorie:Grundlagen]]&lt;br /&gt;
 [[Kategorie:Praxis]]&lt;br /&gt;
 [[Kategorie:Sensoren]]&lt;/div&gt;</summary>
		<author><name>Momomu</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Schrittmotoren&amp;diff=9783</id>
		<title>Schrittmotoren</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Schrittmotoren&amp;diff=9783"/>
				<updated>2006-12-08T18:46:31Z</updated>
		
		<summary type="html">&lt;p&gt;Momomu: /* Weniger oft notwendige Daten */ typo (ohmische-&amp;gt;ohmsche)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Was ist ein Schrittmotor==&lt;br /&gt;
&lt;br /&gt;
Ein Schrittmotor (oft auch ''Stepper'' genannt) ist ein Gleichstrommotor, bei dem der Rotor (drehbares Motorteil mit der Welle) bei geschickter Wahl der angesteuerten Statorspulen (nichtdrehbarer Motorteil) gezielt um einen Winkel gedreht werden kann. Auf diese Weise kann man in mehreren Schritten jeden Drehwinkel, wenn er ein Vielfaches des minimalen Drehwinkels ist, anfahren.&lt;br /&gt;
&lt;br /&gt;
==Wie unterscheidet man Schrittmotoren==&lt;br /&gt;
Man unterscheidet den Schrittmotor nach seiner Bauform in Reluktanz- und Permanentmagnetmotor, wobei man beide Formen auch zu einem Hybridschrittmotor kombinieren kann. &lt;br /&gt;
Beim Reluktanzschrittmotor besteht der Rotor aus einem gezahnten Weicheisenkern. Dieses Material gewährleistet nach dem Ausschalten des Statorstromes das Verschwinden jedes Rest-Magnetfeldes. Dadurch kann der magnetische Fluss bei eingeschaltetem Strom ungehindert durch den Weicheisenkern fließen. Die Drehbewegung des Rotors kommt zustande, weil so der Abstand zwischen dem nächstliegendem Zahn des Rotors und dem Stator verringert werden kann und der magnetische Widerstand verringert wird. &lt;br /&gt;
&lt;br /&gt;
Beim Permanentmagnetschrittmotor besteht der Stator aus Weicheisen und der Rotor aus Dauermagneten, die abwechselnd einen Nord- und einen Südpol aufweisen. Mit dem Stator-Magnetfeld richtet man den dauermagnetischen Rotor so aus, dass eine Drehbewegung entsteht. &lt;br /&gt;
&lt;br /&gt;
Da der Reluktanzschrittmotor keine Permanentmagnete enthält, hat er daher im Gegensatz zum Permanentmagnetschrittmotor auch kein Rastmoment bei ausgeschaltetem Strom. Beim Permanentmagnetschrittmotor ist die Anzahl der Pole (und damit die Auflösung) begrenzt. Der Hybridschrittmotor vereint die Eigenschaften beider Bauformen, in dem auf den Permanentmagneten noch ein gezahnter Weicheisenkranz eingefügt wird. Nahezu alle heute erhältlichen Schrittmotoren sind Hybridmotoren. Als High-Torque Motoren (=hohes Drehmoment) werden häufig Typen bezeichnet, bei denen für den Rotor besonders starke Seltenerdenmagnete verwendet werden. So lässt sich eine besonders hohe Kraftdichte erzielen. &lt;br /&gt;
&lt;br /&gt;
Typische Anwendungsgebiete sind Drucker, vor allem Matrixdrucker, oder der Antrieb des Schreib-/Lesekopfes in einem Diskettenlaufwerk. Da Schrittmotoren (solange sie nicht überlastet werden) exakt dem außen angelegten Feld folgen, können sie ohne Sensoren zur Positionsrückmeldung (Encoder, Drehgeber oder ähnliches) betrieben werden (Synchronmotorverhalten). Daher können sie im Gegensatz zu Servomotoren gesteuert betrieben werden. Servos müssen auf Position geregelt werden. &lt;br /&gt;
&lt;br /&gt;
Schrittmotoren existieren auch in Form von Linearmotoren. Schrittmotoren können bis ca. 1 kW wirtschaftlich eingesetzt werden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Schrittmotoren in Bezug auf Roboter==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Schrittmotor.jpg|right]]&lt;br /&gt;
Schrittmotoren eignen sich vorzüglich für Roboter. Insbesondere für Roboter, die sich nur im Haus bewegen und weniger als 20 kg wiegen, halte ich persönlich Schrittmotoren für die 1. Wahl. Sie zeichnen sich dadurch aus, dass die Steuerung besonders leicht und präzise per Software möglich ist. Oft hört man in Foren, dass Schrittmotoren im Vergleich zu Getriebemotoren recht schwach seien. Dazu ist zu sagen, dass dieser Vergleich etwas hinkt. Ein Schrittmotor könnte ja auch mit einem Getriebe versehen werden. Also wenn man Getriebemotoren schon mit Schrittmotoren vergleicht, dann müssten beide über ein Getriebe verfügen. Natürlich gibt es auch Schrittmotoren mit Getriebe. Allerdings braucht man bei Schrittmotoren oft gar kein Getriebe, denn die Kraft ohne Getriebe ist nämlich in der Regel wesentlich höher als bei den Gleichstrommotoren. Auch niedrige Drehzahlen sind bei Schrittmotoren kein Problem, sogar von Vorteil. Je niedriger die Drehzahl, desto höher ist bei Schrittmotoren das Drehmoment.&lt;br /&gt;
Dass es trotzdem immer wieder bei Einsteigern Probleme mit der Wahl des richtigen Schrittmotors gibt, liegt vorwiegend am mangelnden Wissen über das Stromverhalten dieser Motoren. Dazu später ein paar Tipps, die zeigen, dass man auch schwere Roboter durchaus mit recht kleinen Motoren bewegen kann. Zuvor aber ein paar Grundlagen für Einsteiger. Anwender, die sich schon etwas mit Schrittmotoren auskennen, können den nächsten Absatz überspringen&lt;br /&gt;
&lt;br /&gt;
==Prinzip der Schrittmotoren==&lt;br /&gt;
&lt;br /&gt;
Schrittmotoren arbeiten völlig anders als Gleichstrommotoren. Das ist schon daran zu erkennen, dass diese keine zwei, sondern meist 4, 6 oder 8 Anschlüsse (bipolare oder unipolare Motoren) besitzen. Demzufolge ist es also nicht damit getan, irgendwo Spannung anzulegen, um den Motor zum Drehen zu bewegen. Aber keine Sorge, sehr kompliziert ist es dennoch nicht. Der bipolare Motor besitzt zwei Spulen, und da jede Spule nun mal zwei Enden hat, also 4 Anschlüsse. Der unipolare Motor ist ebenfalls so aufgebaut, jedoch wird hier noch jede Spule in der Mitte durch eine Anschlussleitung angezapft (siehe Bild)&lt;br /&gt;
&lt;br /&gt;
[[Bild:schrittmotorprinzip.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um den Motor nun in Bewegung zu bringen, muss an den Spulen eine Spannung angelegt werden. Legt man die Mittelanzapfung auf Masse, so hat man also noch 4 Anschlüsse. Legt  man nun an zwei dieser Anschlüsse die Spannung an, bewegt sich der Motor - allerdings nur einen winzigen kaum sichtbaren Schritt. Wie groß ein Schritt ist, hängt vom jeweiligen Motor ab. Bei den meisten Motoren beträgt der Schrittwinkel 1,8 Grad. Das bedeutet, dass 200 Schritte notwendig sind, um die Achse einmal rund zu drehen. Nachdem der Motor nun einen Schritt gemacht hat, muss die Spannung an einer anderen Kombination von Anschlüssen eingeschaltet werden. Es gibt somit 4 Kombinationen, wobei immer zwei Anschlüsse an die Spannung und zwei andere auf 0 V gelegt werden. Dies ist die sogenannte unipolare Ansteuerung. Wechselt man ständig diese verschiedenen Anschlussbelegungen, so würde sich der Motor mit jeder Änderung einen Schritt drehen.&lt;br /&gt;
&lt;br /&gt;
==Schrittmotoransteuerung==&lt;br /&gt;
Um dies zu erreichen, benötigt man entweder eine elektronische Schaltung oder man verbindet die einzelnen Spulenenden jeweils mit einem Port eines Microcontrollers. Vorsicht, natürlich nicht direkt verbinden. Die Leistung eines Ports reicht natürlich niemals aus, um einen Motor zu bewegen. Ein Motortreiber (Verstärker) muß also schon dazwischen geschaltet werden. Zum Beispiel der Schaltkreis L293D, siehe Zeichnung. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:schrittmotorprinzip2.gif|center]]&lt;br /&gt;
&lt;br /&gt;
oder aber der stärkere L6205:&lt;br /&gt;
&lt;br /&gt;
[[Bild:l6205.gif|center]]&lt;br /&gt;
&lt;br /&gt;
Nun müsste der Microcontroller also nur noch eine 4 stellige Bitfolge ausgeben, um den Motor an den 4 Anschlüssen ständig in einer bestimmten Kombination mit Spannung zu versorgen.. Bei jeder Portausgabe würde sich somit der Schrittmotor einen Schritt bewegen. Das Ganze könnte natürlich in der Software in einer Schleife gemacht werden. Der Schleifenindex würde somit die Zahl der Schritte angeben. Der große Vorteil bei Schrittmotoren ist, dass man durch diese Methode ganz genau festlegen kann, wie weit sich ein Schrittmotor dreht. Man kann somit auch genau ausrechnen, wieviel Schritte pro Radumdrehung notwendig sind. Nutzt man keine Untersetzung (was ich allerdings noch zusätzlich empfehlen würde) so bräuchte man bei den meisten Motoren wie schon erwähnt 200 Schritte pro Radumdrehung. Berechnet man dann den Umfang des Rades, so kann man genau ausrechnen, wie viele Schritte pro cm Fahrtstrecke notwendig sind. So könnte man schnell eine Routine schreiben, welche als Parameter die Fahrtstrecke entgegennimmt und dann daraus die Schritte errechnet und in einer Schleife an die Ports weitergibt. &lt;br /&gt;
&lt;br /&gt;
Genauer lässt sich ein Roboter eigentlich kaum steuern. Ein Schrittmotor bewegt sich nur bei einem Schritt, ansonsten sorgt das Haltemoment dafür, dass er sich nicht weiter bewegt. Nachteil ist nur, dass der Motor auch im Stand mit Strom versorgt wird, damit er sich nicht bei unebenen Böden oder an Steigungen bewegt. Bei Robotern, die sich nur in der Wohnung bewegen, kann man oft auch in der Praxis die Spannung abschalten, ohne dass sich der Motor bewegt, insbesondere wenn man vielleicht durch einen Zahnriemen noch eine Untersetzung von 4:1 oder 6:1 eingebaut hat.&lt;br /&gt;
&lt;br /&gt;
In der Tat werden viele Roboter schon auf diese Weise gesteuert. Optimal ist diese Methode allerdings nicht, insbesondere bei schweren Robotern reicht die Kraft bei dieser Art Steuerung nicht aus, dies wird leider in vielen Artikeln zu diesem Thema verschwiegen. Wenn ein Motor zu schwach ist, können auch Schritte verloren gehen, wenn die Kraft nicht ausreicht um z.B. einen höheren Teppichrand zu überfahren. Dadurch würde die genaue Positionierung wieder gestört.&lt;br /&gt;
&lt;br /&gt;
Gleich dazu mehr. Erwähnen möchte ich erst noch kurz die bipolaren Motoren mit 4 Anschlüssen (also ohne Mittelanzapfung). Diese sind im Prinzip nicht anders aufgebaut als die unipolaren. Da sie jedoch keine Mittelanzapfung besitzen, wird das unterschiedliche Magnetfeld dadurch erreicht, dass man die Spannung an den Spulenenden immer umpolt. Lange Zeit galt das für Bastler als etwas zu kompliziert, daher wurde die unipolare Ansteuerung oft vorgezogen. Durch neue integrierte Schaltkreise wie den L298 ist das aber auch kein Problem mehr. Erwähnen möchte ich noch die Motoren mit 8 Anschlüssen. Im Prinzip sind das Motoren, in denen die beiden Spulen in der Mitte aufgetrennt und herausgeführt wurden. Diese Motoren erlauben wahlweise eine bipolare oder unipolare Ansteuerung. Man kann die Leistung und Anschlusswerte auch verändern, indem man hier die 4 Spulen (sind ja nun quasi 4 durch die Auftrennung) entweder parallel oder in Serie schaltet.&lt;br /&gt;
&lt;br /&gt;
Hier alle denkbaren Ansteuerungsmöglichkeiten bei den unterschiedlichen Motoren (die Farbangaben können bei den Motoren sehr unterschiedlich sein):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:schrittmotorprinzip3.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Fehler, die bei der Motorwahl oft gemacht werden==&lt;br /&gt;
&lt;br /&gt;
Bei der Auswahl eines Schrittmotors sollte man sorgfältig vorgehen. Kleine Motoren, wie sie in Druckern oder Floppys stecken, reichen in der Regel wirklich nur für Roboter der Fliegengewichtsklasse aus. Wenn ein Roboter ein paar kg wiegt, dann braucht man schon etwas mehr Power. Hier sollte man immer auf das Haltemoment achten, dies entspricht fast dem Drehmoment. Mit einem Motor, der 40 Ncm Haltemoment besitzt kann man schon einiges anfangen. Bei einigen Versuchen hab ich durchaus Roboter mit 10 kg ohne Schrittverlust damit bewegt. Allerdings hab ich noch eine Untersetzung 6:1 über Riemen eingebaut. Wenn man sicher gehen will, dann nimmt man immer einen etwas stärkeren Motor. Ein 100 Ncm Motor kommt oft noch mit 6 oder 7 VA (Watt) aus.&lt;br /&gt;
Es ist ein Irrtum, dass sich die Größe des Motors linear mit der Kraft ändert. Es gibt zahlreiche Motoren, welche die gleiche Größe aufweisen und dennoch ganz unterschiedlich stark sind. Ein Standardmaß ist 56 x 56 mm. In der Regel findet man in dieser Größe schon starke Motoren, die keine Wünsche mehr offen lassen.&lt;br /&gt;
&lt;br /&gt;
Ein Fehler, der bei der Auswahl des Motors oft gemacht wird, ist die Betriebsspannung. Auch ich habe am Anfang gedacht, dass man bei einer vorhandenen Spannung von 12 V am besten einen Motortyp mit 12 V kaufen muss. Dies ist zwar nicht ganz falsch, aber wird nie zu großer Leistung führen. Wichtig für den Motor ist, dass der angegebene Strom fließt. Ein Motor, bei dem beispielsweise 12 V und 0,5 A angegeben sind, wird in der Praxis nur bei wirklich sehr niedrigen Drehzahlen seine Kraft, also sein Drehmoment, erreichen. Je höher die Drehzahl, desto schwächer wird der Motor. Das kann soweit gehen, dass schon das geringste Hindernis den Motor Schritte verlieren lässt oder dass der Motor bei höheren Drehzahlen gar nicht mehr anläuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:stepperdrehmoment.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Woran liegt dies? Ganz einfach: Ein Schrittmotor hat auch eine Induktivität. Da der Motor ständig umgepolt wird, wird durch diese Induktivität eine Art Gegenstrom erzeugt. Dies hat zur Folge, dass der eigentliche Strom bei höheren Drehzahlen nicht mehr erreicht wird. Je schneller sich der Motor dreht, desto weniger Strom fließt. Verständlich, dass dadurch die Leistung reduziert wird.&lt;br /&gt;
&lt;br /&gt;
Wie kann man diesem Verhalten entgegenwirken? Ganz einfach mit einer wesentlich höheren Spannung als auf dem Motor angegeben. Doch Vorsicht, so einfach geht es nicht. Wenn der Motor steht oder sich langsam dreht, dann würde der Motor ja sofort durchbrennen. Die Lösung ist eine stromgeregelte Steuerung!  Die Regelung wird mit einer hohen Spannung (oft bis zu 30 oder 40 Volt) versorgt. Aber die Regelung sorgt dafür, dass immer nur der eingestellte Nennstrom, in unserem Beispiel 0,5 A, zum Motor gelangt. Auf diese Art und Weise wird der Motor, ohne Schaden zu nehmen, immer mit der optimalen Spannung versorgt.&lt;br /&gt;
&lt;br /&gt;
In der Tat werden heute alle Schrittmotoren, die etwas Leistung bringen müssen, z.B. bei Drehmaschinen, auf diese Art angesteuert. Das Ganze klingt nun recht kompliziert und aufwendig für einen Roboter-Hobbybastler. Ist es aber nicht, denn es gibt heute zwei integrierte Schaltkreise, die einen das Ganze recht einfach machen. Die hier abgebildete Schaltung ist quasi der Standard für Schrittmotoren. Auch bei Drehmaschinen wird diese Schaltung oft eingesetzt: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:l298standard.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Widerstand RS1, RS2: 1 oder 0,5 Ohm (bei größerer Belastung)&lt;br /&gt;
 Dioden: schnelle Dioden z.B. BYV27-200&lt;br /&gt;
&lt;br /&gt;
Die Schaltung läßt sich recht einfach auf einer Experimentierplatine  aufbauen. Bedenkt man, dass auch bei einem Gleichstrommotor ein Motortreiber notwendig ist, dann ist diese Schaltung auch nicht viel komplexer. Die einzelnen Steuerleitungen können direkt mit den Ports eines Microcontrollers ([[Controllerboard]]) oder mit dem Parallelport eines PCs verbunden werden. Hier die Bedeutung (fett sind die wichtigen Anschlüsse):&lt;br /&gt;
&lt;br /&gt;
'''CW/CCW:'''&lt;br /&gt;
Gibt die Richtung an, in die der Motor bewegt werden soll &lt;br /&gt;
(CW = ClockWise = im Uhrzeigersinn, CCW = CounterClockWise = gegen den Uhrzeigersinn)&lt;br /&gt;
 &lt;br /&gt;
'''Clock:'''&lt;br /&gt;
Durch einen kurzen Impuls auf diese Leitung wird der Motor einen Schritt bewegt. &lt;br /&gt;
In einer Schleife braucht mal also nur diese Leitung kurz ein- und auszuschalten. &lt;br /&gt;
 &lt;br /&gt;
'''Half/Full:'''&lt;br /&gt;
Gewöhnlich legt man den Anschluss auf Masse. Legt man ihn auf 5 V, dann werden  &lt;br /&gt;
immer halbe Schritte durchgeführt, also doppelt soviele Schritte pro Umdrehung&lt;br /&gt;
 &lt;br /&gt;
'''Enable:'''&lt;br /&gt;
Wenn man diesen Anschluss auf Masse legt, wird die Motorspannung ausgeschaltet&lt;br /&gt;
 &lt;br /&gt;
'''Vref:'''&lt;br /&gt;
Hier muß eine Spannung zwischen 0 und 3 Volt angelegt werden. Die Spannung &lt;br /&gt;
legt den maximalen Motorstom fest.&lt;br /&gt;
&lt;br /&gt;
 VRef berechnet sich nach folgender Formel:&lt;br /&gt;
 Vref=I motorstrom * Rs (bei uns 1 Ohm) &lt;br /&gt;
 Angenommen, Sie haben einen Motor, der 0,5 A Strom verträgt, in diesem Fall &lt;br /&gt;
 würde die Rechnung so aussehen Vref=0,5*1 &lt;br /&gt;
 Ergebnis: Vref=0,5 V&lt;br /&gt;
&lt;br /&gt;
Man muß also an Vref eine Spannung von 0,5 V anlegen. Am Einfachsten geht das, indem man zwischen 5 V und Masse ein 10-k-Poti und den Schleifer an Vref legt. Damit man die 3 Volt nicht überschreitet kann man zwischen 5 V und Poti noch einen 6 kOhm Widerstand legen.&lt;br /&gt;
 &lt;br /&gt;
'''RESET:'''&lt;br /&gt;
Bringt Schrittmotor in Grundstellung (dieser Anschluss muss auf +5 V gelegt werden, damit die Schaltung funktioniert [http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=16449&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=22 Quelle])&lt;br /&gt;
 &lt;br /&gt;
'''Control, Sync, Home:'''&lt;br /&gt;
Diese Anschlüsse kann man meist vernachlässigen und unbelegt lassen&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Wie Sie sehen, braucht man also nur 3 Port-Pins, um einen Schrittmotor in beliebige Richtungen und in beliebiger Geschwindigkeit bewegen zu können. Kommt noch ein Motor hinzu, dann könnte man die Enable-Leitung beider verbinden, sodass dann zwei Motoren mit 5 Ports-Pins optimal gesteuert werden können. Ich habe mit einer solchen Schaltung auf einer Experimentierplatine schon einen 15-kg-Roboter problemlos mit einer C-Control gesteuert. Ich kann die Schaltung nur empfehlen. &lt;br /&gt;
Ein interessanter Forum Thread zu oberer Schaltung findet man unter [[#Weblinks]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:l298eigenbau.jpeg|center|framed|Meine erste Schrittmotoransteuerung. Nicht schön - aber es funktionierte :-)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:schaltungstep298.gif|thumb|Ansteuerung mit L298]]&lt;br /&gt;
&lt;br /&gt;
Hier nochmal ein größerer Schaltplan mit eingezeichnetem Annchlussstecker und Spannungsteiler.&lt;br /&gt;
   &lt;br /&gt;
Ein interessanter Forum Thread zu oberer Schaltung findet man unter [[#Weblinks]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wichtig ist halt nur, dass man diese Schaltung mit einer möglichst hohen Spannung versorgt und einen Schrittmotor mit möglichst niedriger Spannung auswählt. Man sollte sich nicht davor abschrecken lassen, dass Schrittmotoren mit niedriger Spannung höhere Ströme z.B. 1 bis 2 A benötigen. Die Leistung berechnet sich ja bekanntlich mit der Formel P=U*I. Somit brauchen auch diese Motoren nicht mehr Energie als Motoren mit höherer Spannung und niedrigem Strombedarf. Hat man bei einem Roboter nur 12 V zur Verfügung, so ist es empfehlenswert z.B. einen 3- oder 4-Volt-Motor zu kaufen. Der Widerstand sollte jedenfalls deutlich unter 10 Ohm liegen. In diesem Fall könnte man dann die obige Schaltung auch mit 12 V betreiben. Allerdings bei höheren Drehzahlen würde die Spannung wegen der Induktivität meist immer noch nicht ausreichen, um die volle Leistung des Motors zu nutzen. Daher wäre zu überlegen, ob man nicht zwei 12-V-Batterien in Serie schaltet oder eine Spannungsverdopplerschaltung einsetzt. Ich habe mich für letzteres entschieden. Mit ein paar Kondensatoren und Dioden kann man recht einfach die Spannung von 12 auf ca. 21 V erhöhen. In der Praxis bricht dieses Spannung bei hohen Strömen ein paar Volt ein, aber das tut der Leistung keinen Abbruch. Mit Spannungsverdoppler war der Motor jedenfalls deutlich stärker und hatte mit 15 kg in der Wohnung keinerlei Probleme. Schwieriger wird es mit Motoren, die schwerer als 15 kg sind, denn hier wird der Strombedarf einfach zu groß und die Akku-Kapazität ist zu schnell erschöpft.     &lt;br /&gt;
&lt;br /&gt;
[[Bild:icrnst01schaltplan.gif|thumb|Schrittmotorsteuerung mit RS232 oder I2C]]&lt;br /&gt;
&lt;br /&gt;
Fazit: Roboter, die sehr genau gesteuert werden müssen und deutlich weniger als 10 kg wiegen, kann man sehr gut mit Schrittmotoren steuern. Bei Robotern, die schwerer sind, sich sehr schnell bewegen müssen oder deren Steuergenauigkeit nicht so wichtig ist, sind Getriebemotoren oft sinnvoller. &lt;br /&gt;
&lt;br /&gt;
Als Alternative eine Ansteuerung für 2 Schrittmotoren per Befehl über I2C oder RS232 &lt;br /&gt;
speziell für Roboter Bastler (ebenfalls mit Stromregelung und L298). Das Board RN-Motor beruht auf dieser Schaltung &lt;br /&gt;
&lt;br /&gt;
Ein interessanter Forum Thread zu dieser Schaltung findet man unter [[#Weblinks]]&lt;br /&gt;
&lt;br /&gt;
Neben dem Motortreiber L298 gibt es aber auch Alternative Motortreiber die sich sehr gut für die Schrittmotorsteuerung eignen. Sehr gut eignen sich zum Beispiel auch L293D oder der neuere L6205. Diese Treiber werden auf unserer Seite [[Getriebemotoren Ansteuerung]] näher beschrieben.&lt;br /&gt;
&lt;br /&gt;
==Wie identifiziert man die Leitungen wenn man kein Datenblatt zum Motor hat?==&lt;br /&gt;
&lt;br /&gt;
Ein Schrittmotor ist aus zwei Spulen aufgebaut:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:stepperspulen.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mit einem Ohmmeter kann man die Anschlüsse einfach identifizieren: Von Spule 1 - a nach Spule 1 - Common ist der Widerstand halb so groß wie der Widerstand von Spule 1 - a nach Spule 1 - b. Der Widerstand nach den Anschlüssen von Spule 2 sollte unendlich sein. &lt;br /&gt;
&lt;br /&gt;
Dass die Anschlüsse a und b voneinander nicht zu unterscheiden sind, ist unwichtig. Falls Sie sie vertauschen, dreht sich der Motor andersherum. Wichtig ist allenfalls, dass sie bei mehreren Motoren gleichen Typs die Anschlüsse gleich legen, um voraussagen zu können, in welche Richtung der Motor sich drehen wird.&lt;br /&gt;
&lt;br /&gt;
Um den Motor bipolar anzusteuern, werden übrigens die Common-Anschlüsse nicht benötigt.&lt;br /&gt;
&lt;br /&gt;
==Hier nochmal die genaue Phasenbeschreibung der Ansteuerung==&lt;br /&gt;
&lt;br /&gt;
Zur Beschreibung verwenden wir wieder das folgende Schema der Spulen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:stepperspulen.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:schrittmotorphasentabelle.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Schrittmotorphasen bildlich dargestellt===&lt;br /&gt;
&lt;br /&gt;
[[Bild:schrittmotorphasenzeichnung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Motoren mit 5 Anschlüssen?==&lt;br /&gt;
Es gibt auch Schrittmotoren mit 5 Drähten. In diesem Fall sind die mittleren Spulenanzapfungen miteinander verbunden und nur als einzige Leitung herausgeführt (also beide Common-Anschlüsse /siehe Skizze). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:stepper5draehte.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Fall kann man den Motor nicht bipolar ansteuern, sondern muss ihn unipolar ansteuern. Mit L297/L298 bzw. RN-Motor usw. wird ein Schrittmotor immer bipolar angesteuert, also kann dafür kein Motor mit 5 Drähten verwendet werden.&lt;br /&gt;
Da heutzutage Schrittmotoren bevorzugt bipolar angesteuert werden um maximales Drehmoment (Kraft) zu erreichen, sollte man daher beim Kauf möglichst Motoren mit 4, 6 oder 8 Drähten kaufen. &lt;br /&gt;
&lt;br /&gt;
{|{{Blaueschmaltabelle}}&lt;br /&gt;
|'''Merke:'''&lt;br /&gt;
Motoren mit 4 Drähten kann man immer nur bipolar ansteuern. &lt;br /&gt;
Motoren mit 6 oder 8 Drähten kann man sowohl bipolar als auch unipolar  ansteuern. Gewöhnlich werden Motoren heute bevorzugt bipolar angesteuert, weil diese Ansteuerung ein größeres Drehmoment erzeugt. &lt;br /&gt;
Bei der bipolaren Ansteuerung in Verbindung mit Stromregelung (wie bei L297/L298  oder RN-Motor etc.) kann die Nennspannung des Motors weit unter der Betriebsspannung liegen.&lt;br /&gt;
Bei einer Ansteuerung ohne Stromregelung muss die Nennspannung des Motors in  etwa der Betriebsspannung entsprechen (egal ob unipolar oder bipolar Ansteuerung).  In diesem Fall ist jedoch das Drehmoment (Kraft) erheblich (deutlich spürbar) geringer.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Die wichtigsten Daten bei einem Schrittmotor==&lt;br /&gt;
Zum besseren Verständnis habe ich die Daten in die Klassen ''Unverzichtbar'', ''Hilfreich'' und ''weniger notwendig'' unterteilt. Diese Unterteilung habe ich vorwiegend im Blick auf Hobby-Anwender und Robotik-Bastler vorgenommen. Es versteht sich von selbst das je nach Vorhaben oder bei industrieller Anwendung eines Motors alle Daten wichtig sein könnten. &lt;br /&gt;
&lt;br /&gt;
===Unverzichtbare Daten===&lt;br /&gt;
&lt;br /&gt;
;Nennstrom: Maximal zulässiger Strom pro Wicklung (Phase). Bei Motoren mit mehreren Wicklungen (also Motoren mit 6 oder 8 Anschlüssen) bezieht sich die Stromangabe auf nur eine Wicklung (unipolare Ansteuerung). Siehe dazu auch das Rechenbeispiel im nächsten Abschnitt.&lt;br /&gt;
[[Bild:stepperdaten.png|framed|So sehen die Daten auf einem Motor aus, Hier wird Nennstrom, Nennspannung und Schrittwinkel angegeben]]&lt;br /&gt;
;Haltemoment: Bis zu diesem Moment ([[Drehmoment]], also dieser Kraft) kann ein Schrittmotor belastet werden, bis sich die Achse um einen oder mehrere Schritte durch die Belastung verdreht. Diese Angabe gilt für einen stehenden Schrittmotor der unter voller Betriebsspannung steht. Die Angabe gibt somit quasi an wieviel Kraft der Motor besitzt, eine sehr wichtige Angabe.&lt;br /&gt;
&lt;br /&gt;
;Schrittwinkel: Der Schrittwinkel gibt an um wieviel Grad sich die Achse bei einem Vollschritt bewegt. Dadurch wird also gleichzeitig angegeben, wie viele Schritte ein Motor für eine volle Drehung benötigt. Man teilt einfach 360 Grad durch den Schrittwinkel und erhält die Schrittanzahl. Bei guten Industriemotoren beträgt der Schrittwinkel oft 1,8 Grad, das ergibt also 200 Vollschritte pro Umdrehung. Nutzt man das Halbschrittverfahren zur Ansteuerung, also 400 Schritte. Je mehr Schritte ein Motor besitzt desto genauer kann er natürlich bestimmte Positionen anfahren, zugleich läuft er ruhiger und leiser. Nachteil von hohen Schrittzahlen ist allerdings, dass oft nicht so hohe Drehzahlen erreicht werden können wie bei großen Schrittwinkeln. &lt;br /&gt;
&lt;br /&gt;
;Nennspannung: Die Betriebsspannung, die notwendig ist, um den Nennstrom zu erreichen. Die Nennspanung gilt in der Regel für den stehenden Schrittmotor. Bei drehenden Motoren reduziert sich der Strom durch die Induktivität des Motors, daher könnte dann die Nennspannung mit steigender Drehzahl höher werden. Genau das machen auch moderne Schrittmotoransteuerungen. Darüber haben wir aber oben im Artikel schon ausgiebig gelesen. Steuert man einen Schrittmotor mit konstanter Spannung, so sollte man den Nennspannung verwenden damit der Motor nicht überhitzt.&lt;br /&gt;
&lt;br /&gt;
;Anschlussbelegung: Schrittmotoren haben 4, 6 oder 8 Anschlussdrähte. Daher gehört zu jedem Schrittmotor ein Plan, der Auskunft über interne Verdrahtung der Spulen gibt. Notfalls kann man dieses auch mit Hilfe eines Ohmmeters ermitteln, auch dies wurde oben schon geschildert.&lt;br /&gt;
&lt;br /&gt;
===Hilfreiche Daten===&lt;br /&gt;
&lt;br /&gt;
;Start-Stop Frequenz (fs): Die maximale Frequenz (Geschwindigkeit der Schrittfolge), bei der ein nicht belasteter Schrittmotor anläuft ohne Schritte zu verlieren. Leider findet man auch diese Angabe wohl nur bei etwas teureren Markenmotoren. &lt;br /&gt;
&lt;br /&gt;
;Betriebsmoment: Ähnlich wie das Haltemoment, jedoch wird hier das Moment für den drehenden Schrittmotor angegeben. Da bei Schrittmotoren das Drehmoment mit steigender Drehzahl abnimmt, reicht hier also kein einzelnen Wert. Daher wird diese Angabe in Form einer Kennlinie, oft mit verschiedenen Betriebsspannungen, dargestellt. Eine solche Kennline haben wir schon im Artikel weiter oben kennengelernt. Sie ist sehr hilfreich um den richtigen Motor für ein Vorhaben zu finden. Man sollte insbesondere darauf achten, dass das Drehmoment bei der maximalen geplanten Drehzahl auch wirklich noch für die Aufgabe ausreichend ist. Leider wird das Betriebsmoment (also diese Kennlinie) bei vielen Motoren (insbesondere bei Angeboten, kleineren Motoren usw.) nicht angegeben. Da der Kennlienienverlauf der Schrittmotoren jedoch eine gewisse Grundähnlichkeit aufweist, kann man in der Praxis deshalb oft auch mit der Angabe des Haltemoments auskommen.&lt;br /&gt;
&lt;br /&gt;
===Weniger oft notwendige Daten===&lt;br /&gt;
&lt;br /&gt;
;Widerstand: Manchmal wird der ohmsche Widerstand der Spule angegeben, allerdings nicht immer. Wenn die Nennspannung und der Nennstrom angebenen sind, so kann man sich den Widerstand nach dem ohmschen Gesetz selbst berechnen (R=U/I). Sind nur die Nennspannung und der Widerstand angegeben, was auch vorkommt, so muss man sich dagegen den Nennstrom selbst ausrechnen (I=U/R). Die Leistungsaufnahme der Wicklung kann man natürlich ebenfalls durch diese Angaben bestimmen (P=I²*R)&lt;br /&gt;
&lt;br /&gt;
;Rastmoment: Das Rastmoment kennt man bei Permanentmagnet- und Hybrid-Schrittmotoren. Es ist beim Drehen des Motors (ohne Spannung) spürbar. Wenn man die Wicklungen kurzschließt, wird dieses erheblich stärker. Dieser Sachverhalt kann auch für eine Bremse ausgenutzt werden.&lt;br /&gt;
&lt;br /&gt;
;Rotorträgheit: Das Massenträgheitsmoment des Rotors. Je größer und schwerer ein Motor bzw. eine Achse wird, desto größer wird die Masse des Rotors, der zusammen mit der Nutzlast beschleunigt werden muss. Je niedriger dieser Wert ist, desto schneller und dynamischer verhält sich der Motor bei Beschleunigungen. Da die Masse des Rotors und der Last ein schwingungsfähiges System bilden, sollte das auf die Motorwelle reduzierte Trägheitsmoment der Last in der selben Größenordnung liegen wie die Rotorträgheit.&lt;br /&gt;
&lt;br /&gt;
==Praxisbeispiel für Stromberechnung==&lt;br /&gt;
Soll ein Schrittmotor mit 8 Anschlüssen (4 Wicklungen) bipolaren angesteuertet werden, so hat man die Wahl jeweils zwei Spulen parallel oder in Reihe zu schalten. Die Stromangaben auf dem Motor beziehen sich in der Regel auf eine Phase, also eine Wicklung. Angenommen wir haben einen Motor mit folgender Beschriftung:&lt;br /&gt;
&lt;br /&gt;
[[Bild:stepperdaten.png|framed|Auf einem Foto könnte das so aussehen]]&lt;br /&gt;
&lt;br /&gt;
* Nennspannung: 5,1 V &lt;br /&gt;
* Phasenstrom:  1,0 A &lt;br /&gt;
* Anschluß: 8 Drähte = wahlweise unipolar oder bipolar &lt;br /&gt;
* Schrittwinkel 1,8 Grad / 200 Schritte pro Umdrehung &lt;br /&gt;
* Haltekraft: ca. 50 Ncm &lt;br /&gt;
* Wellendurchmesser: 6 mm &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Möchte man die Spulen in Reihe schalten, so muss der Strom in etwas um den Faktor 1,41 (Wurzel aus 2) verringert werden damit der Motor nicht zu heiß wird. &lt;br /&gt;
In unserem Beispiel müsste also 1A / 1,41 = '''0,792A''' fließen. Bei einer Chopper-Regelung (Stromregelung) müsste man somit 0,79A einstellen. Da sich der ohmische Widerstand durch die Reihenschaltung verdoppelt, benötigt man auch eine höhere Spannung. Anhand des ohmischen Widerstandes, der sich messen oder berechnen läßt, kann man in etwa die notwendige Mindestspannung berechnen.  Wenn bei 5,1V ein Strom von 1 A fließt, so müsste der ohmische Widerstand R=U/i = 5,1V / 1 = '''5,1 Ohm''' betragen. Der Gesamtwiderstand der Reihenschaltung wäre demnach 10,2 Ohm. Wenn wir den Strom von 0,79A erreichen wollen, so müsste U=I*R  = 0,79*10,2 = '''8,06V''' vorhanden sein. Das wäre aber nur die Mindestspannung, also die Spannung die man ohne Stromregelung auch konstant anlegen könnte. Nutzt man jedoch eine Stromregelung so müssen natürlich Regelreserven vorhanden sein. Zudem müssten die Schaltungsverluste der Chopperregelung berücksichtigt werden. Daher verwendet man eine deutlich höhere Spannung. 12V bis 24 V wären in dem Beispiel durchaus angebracht. Je höher desto besser, denn so kann bei hohen Drehzahlen der Strom schneller dem induktiven Widerstand entgegenwirken und das Drehmoment fällt nicht mehr so stark bei steigenden Drehzahlen ab. Das Drehmoment erhöht sich im übrigen bei der Reihenschaltung ebenfalls in etwa um den Faktor 1,41 (Wurzel aus 2).&lt;br /&gt;
&lt;br /&gt;
Bei der Parallelschaltung von zwei Spulen ist es genau umgekehrt. Hier muss der Strom in etwas um den Faktor 1,41 erhöht werden. Also 1A * 1,41 = 1,41 A sollten hier fließen. Da sich der ohmische Widerstand durch die Parallelschaltung halbiert, also in unserem Fall auf 2,55 Ohm, ist natürlich auch eine niedrigere Spannung notwendig. Die Berechnung wäre also U=I*R  = 1,41A * 2,55 = 3,6V&lt;br /&gt;
Auch da sist wieder die Mindestspannung die auch als Konstantspannung angelegt werden darf. Auch hier muss bei der Chopper-Regelung (Stromregelung) eine höhere Spannung angelegt werden. Mit Werten zwischen ca. 8 und 16V würde man jetzt aber schon sehr gute Ergebnisse erzielen. Auch in diesem Beispiel würde sich das Drehmoment in etwa um den Faktor 1,41 erhöhen.&lt;br /&gt;
&lt;br /&gt;
Problematisch kann bei der Parallelschaltung mancher Motoren der niedrige ohmsche Widerstand werden. Nicht jede Motorregelung/Motortreiber macht das mit. Aus diesem Grund werden sicherlich Reihenschaltungen in der Praxis bevorzugt eingesetzt.&lt;br /&gt;
&lt;br /&gt;
==Autor==&lt;br /&gt;
* Frank&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[Chopper Betrieb]]&lt;br /&gt;
* [[Getriebemotoren Ansteuerung]]&lt;br /&gt;
* [[Getriebemotoren]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
Hier noch ein paar Links, wenn ihr euch noch eingehender mit dem Thema befassen wollt:&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/dload.php?action=category&amp;amp;cat_id=2 L298 un L297 Datenblatt]&lt;br /&gt;
* [http://www.roboternetz.de/robotertutorial.html Robotertutorial (Projekt mit Schrittmotor)]&lt;br /&gt;
* [http://www.shop.robotikhardware.de/shop/catalog/index.php?cPath=65&amp;amp;osC L297/L298 Bauteilesortiment + Schrittmotoren]&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/viewtopic.php?t=2741 Bequeme Schrittmotoransteuerung über RS232 oder I2C]&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=21730 800mA I2C Schrittmotorsteuerung mit Trinamic TMC222]&lt;br /&gt;
* [http://www.nanotec.de/ Nanotec]&lt;br /&gt;
* [http://www-users.rwth-aachen.de/thorsten.ostermann/schritt/sm_faq.htm Schrittmotor_Faq]&lt;br /&gt;
* [http://www.wolfgang-back.com/schrittmotor_demo.php Wolfgang Back´s Seite]&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/motordrehmoment.php Automatische Berechnung der Robotergeschwindigkeit und Drehmoment bei unterschiedlichen Motoren]&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/dload.php?action=file&amp;amp;file_id=284 Schaltung mit L297/L298 Protobed_StepM_297-298]&lt;br /&gt;
&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=733 Roboternetz-Forum Thread L297/L298]&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=2741 Roboternetz-Forum Thread zum RNST01/RN-Motor]&lt;br /&gt;
&lt;br /&gt;
'''Englische Links'''&lt;br /&gt;
* [http://www.cs.uiowa.edu/~jones/step/ Control of stepping motors (gutes Tutorial)]&lt;br /&gt;
* [http://library.solarbotics.net/pdflib/pdf/drive.pdf Drive motor circuit basics] &lt;br /&gt;
* [http://www.njr.co.jp/pdf/ee/ee05004.pdf Half stepping techniques] &lt;br /&gt;
* [http://www.njr.co.jp/pdf/ee/ee05005.pdf Microstepping ]&lt;br /&gt;
* [http://www.compumotor.com/catalog/cataloga/A29-A30.pdf Microstepping drive technology]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;br /&gt;
[[Category:Elektronik]]&lt;/div&gt;</summary>
		<author><name>Momomu</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Schrittmotoren&amp;diff=9782</id>
		<title>Schrittmotoren</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Schrittmotoren&amp;diff=9782"/>
				<updated>2006-12-08T18:44:47Z</updated>
		
		<summary type="html">&lt;p&gt;Momomu: /* Unverzichtbare Daten */ type (ode rmehrere-&amp;gt;oder mehrere)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Was ist ein Schrittmotor==&lt;br /&gt;
&lt;br /&gt;
Ein Schrittmotor (oft auch ''Stepper'' genannt) ist ein Gleichstrommotor, bei dem der Rotor (drehbares Motorteil mit der Welle) bei geschickter Wahl der angesteuerten Statorspulen (nichtdrehbarer Motorteil) gezielt um einen Winkel gedreht werden kann. Auf diese Weise kann man in mehreren Schritten jeden Drehwinkel, wenn er ein Vielfaches des minimalen Drehwinkels ist, anfahren.&lt;br /&gt;
&lt;br /&gt;
==Wie unterscheidet man Schrittmotoren==&lt;br /&gt;
Man unterscheidet den Schrittmotor nach seiner Bauform in Reluktanz- und Permanentmagnetmotor, wobei man beide Formen auch zu einem Hybridschrittmotor kombinieren kann. &lt;br /&gt;
Beim Reluktanzschrittmotor besteht der Rotor aus einem gezahnten Weicheisenkern. Dieses Material gewährleistet nach dem Ausschalten des Statorstromes das Verschwinden jedes Rest-Magnetfeldes. Dadurch kann der magnetische Fluss bei eingeschaltetem Strom ungehindert durch den Weicheisenkern fließen. Die Drehbewegung des Rotors kommt zustande, weil so der Abstand zwischen dem nächstliegendem Zahn des Rotors und dem Stator verringert werden kann und der magnetische Widerstand verringert wird. &lt;br /&gt;
&lt;br /&gt;
Beim Permanentmagnetschrittmotor besteht der Stator aus Weicheisen und der Rotor aus Dauermagneten, die abwechselnd einen Nord- und einen Südpol aufweisen. Mit dem Stator-Magnetfeld richtet man den dauermagnetischen Rotor so aus, dass eine Drehbewegung entsteht. &lt;br /&gt;
&lt;br /&gt;
Da der Reluktanzschrittmotor keine Permanentmagnete enthält, hat er daher im Gegensatz zum Permanentmagnetschrittmotor auch kein Rastmoment bei ausgeschaltetem Strom. Beim Permanentmagnetschrittmotor ist die Anzahl der Pole (und damit die Auflösung) begrenzt. Der Hybridschrittmotor vereint die Eigenschaften beider Bauformen, in dem auf den Permanentmagneten noch ein gezahnter Weicheisenkranz eingefügt wird. Nahezu alle heute erhältlichen Schrittmotoren sind Hybridmotoren. Als High-Torque Motoren (=hohes Drehmoment) werden häufig Typen bezeichnet, bei denen für den Rotor besonders starke Seltenerdenmagnete verwendet werden. So lässt sich eine besonders hohe Kraftdichte erzielen. &lt;br /&gt;
&lt;br /&gt;
Typische Anwendungsgebiete sind Drucker, vor allem Matrixdrucker, oder der Antrieb des Schreib-/Lesekopfes in einem Diskettenlaufwerk. Da Schrittmotoren (solange sie nicht überlastet werden) exakt dem außen angelegten Feld folgen, können sie ohne Sensoren zur Positionsrückmeldung (Encoder, Drehgeber oder ähnliches) betrieben werden (Synchronmotorverhalten). Daher können sie im Gegensatz zu Servomotoren gesteuert betrieben werden. Servos müssen auf Position geregelt werden. &lt;br /&gt;
&lt;br /&gt;
Schrittmotoren existieren auch in Form von Linearmotoren. Schrittmotoren können bis ca. 1 kW wirtschaftlich eingesetzt werden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Schrittmotoren in Bezug auf Roboter==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Schrittmotor.jpg|right]]&lt;br /&gt;
Schrittmotoren eignen sich vorzüglich für Roboter. Insbesondere für Roboter, die sich nur im Haus bewegen und weniger als 20 kg wiegen, halte ich persönlich Schrittmotoren für die 1. Wahl. Sie zeichnen sich dadurch aus, dass die Steuerung besonders leicht und präzise per Software möglich ist. Oft hört man in Foren, dass Schrittmotoren im Vergleich zu Getriebemotoren recht schwach seien. Dazu ist zu sagen, dass dieser Vergleich etwas hinkt. Ein Schrittmotor könnte ja auch mit einem Getriebe versehen werden. Also wenn man Getriebemotoren schon mit Schrittmotoren vergleicht, dann müssten beide über ein Getriebe verfügen. Natürlich gibt es auch Schrittmotoren mit Getriebe. Allerdings braucht man bei Schrittmotoren oft gar kein Getriebe, denn die Kraft ohne Getriebe ist nämlich in der Regel wesentlich höher als bei den Gleichstrommotoren. Auch niedrige Drehzahlen sind bei Schrittmotoren kein Problem, sogar von Vorteil. Je niedriger die Drehzahl, desto höher ist bei Schrittmotoren das Drehmoment.&lt;br /&gt;
Dass es trotzdem immer wieder bei Einsteigern Probleme mit der Wahl des richtigen Schrittmotors gibt, liegt vorwiegend am mangelnden Wissen über das Stromverhalten dieser Motoren. Dazu später ein paar Tipps, die zeigen, dass man auch schwere Roboter durchaus mit recht kleinen Motoren bewegen kann. Zuvor aber ein paar Grundlagen für Einsteiger. Anwender, die sich schon etwas mit Schrittmotoren auskennen, können den nächsten Absatz überspringen&lt;br /&gt;
&lt;br /&gt;
==Prinzip der Schrittmotoren==&lt;br /&gt;
&lt;br /&gt;
Schrittmotoren arbeiten völlig anders als Gleichstrommotoren. Das ist schon daran zu erkennen, dass diese keine zwei, sondern meist 4, 6 oder 8 Anschlüsse (bipolare oder unipolare Motoren) besitzen. Demzufolge ist es also nicht damit getan, irgendwo Spannung anzulegen, um den Motor zum Drehen zu bewegen. Aber keine Sorge, sehr kompliziert ist es dennoch nicht. Der bipolare Motor besitzt zwei Spulen, und da jede Spule nun mal zwei Enden hat, also 4 Anschlüsse. Der unipolare Motor ist ebenfalls so aufgebaut, jedoch wird hier noch jede Spule in der Mitte durch eine Anschlussleitung angezapft (siehe Bild)&lt;br /&gt;
&lt;br /&gt;
[[Bild:schrittmotorprinzip.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um den Motor nun in Bewegung zu bringen, muss an den Spulen eine Spannung angelegt werden. Legt man die Mittelanzapfung auf Masse, so hat man also noch 4 Anschlüsse. Legt  man nun an zwei dieser Anschlüsse die Spannung an, bewegt sich der Motor - allerdings nur einen winzigen kaum sichtbaren Schritt. Wie groß ein Schritt ist, hängt vom jeweiligen Motor ab. Bei den meisten Motoren beträgt der Schrittwinkel 1,8 Grad. Das bedeutet, dass 200 Schritte notwendig sind, um die Achse einmal rund zu drehen. Nachdem der Motor nun einen Schritt gemacht hat, muss die Spannung an einer anderen Kombination von Anschlüssen eingeschaltet werden. Es gibt somit 4 Kombinationen, wobei immer zwei Anschlüsse an die Spannung und zwei andere auf 0 V gelegt werden. Dies ist die sogenannte unipolare Ansteuerung. Wechselt man ständig diese verschiedenen Anschlussbelegungen, so würde sich der Motor mit jeder Änderung einen Schritt drehen.&lt;br /&gt;
&lt;br /&gt;
==Schrittmotoransteuerung==&lt;br /&gt;
Um dies zu erreichen, benötigt man entweder eine elektronische Schaltung oder man verbindet die einzelnen Spulenenden jeweils mit einem Port eines Microcontrollers. Vorsicht, natürlich nicht direkt verbinden. Die Leistung eines Ports reicht natürlich niemals aus, um einen Motor zu bewegen. Ein Motortreiber (Verstärker) muß also schon dazwischen geschaltet werden. Zum Beispiel der Schaltkreis L293D, siehe Zeichnung. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:schrittmotorprinzip2.gif|center]]&lt;br /&gt;
&lt;br /&gt;
oder aber der stärkere L6205:&lt;br /&gt;
&lt;br /&gt;
[[Bild:l6205.gif|center]]&lt;br /&gt;
&lt;br /&gt;
Nun müsste der Microcontroller also nur noch eine 4 stellige Bitfolge ausgeben, um den Motor an den 4 Anschlüssen ständig in einer bestimmten Kombination mit Spannung zu versorgen.. Bei jeder Portausgabe würde sich somit der Schrittmotor einen Schritt bewegen. Das Ganze könnte natürlich in der Software in einer Schleife gemacht werden. Der Schleifenindex würde somit die Zahl der Schritte angeben. Der große Vorteil bei Schrittmotoren ist, dass man durch diese Methode ganz genau festlegen kann, wie weit sich ein Schrittmotor dreht. Man kann somit auch genau ausrechnen, wieviel Schritte pro Radumdrehung notwendig sind. Nutzt man keine Untersetzung (was ich allerdings noch zusätzlich empfehlen würde) so bräuchte man bei den meisten Motoren wie schon erwähnt 200 Schritte pro Radumdrehung. Berechnet man dann den Umfang des Rades, so kann man genau ausrechnen, wie viele Schritte pro cm Fahrtstrecke notwendig sind. So könnte man schnell eine Routine schreiben, welche als Parameter die Fahrtstrecke entgegennimmt und dann daraus die Schritte errechnet und in einer Schleife an die Ports weitergibt. &lt;br /&gt;
&lt;br /&gt;
Genauer lässt sich ein Roboter eigentlich kaum steuern. Ein Schrittmotor bewegt sich nur bei einem Schritt, ansonsten sorgt das Haltemoment dafür, dass er sich nicht weiter bewegt. Nachteil ist nur, dass der Motor auch im Stand mit Strom versorgt wird, damit er sich nicht bei unebenen Böden oder an Steigungen bewegt. Bei Robotern, die sich nur in der Wohnung bewegen, kann man oft auch in der Praxis die Spannung abschalten, ohne dass sich der Motor bewegt, insbesondere wenn man vielleicht durch einen Zahnriemen noch eine Untersetzung von 4:1 oder 6:1 eingebaut hat.&lt;br /&gt;
&lt;br /&gt;
In der Tat werden viele Roboter schon auf diese Weise gesteuert. Optimal ist diese Methode allerdings nicht, insbesondere bei schweren Robotern reicht die Kraft bei dieser Art Steuerung nicht aus, dies wird leider in vielen Artikeln zu diesem Thema verschwiegen. Wenn ein Motor zu schwach ist, können auch Schritte verloren gehen, wenn die Kraft nicht ausreicht um z.B. einen höheren Teppichrand zu überfahren. Dadurch würde die genaue Positionierung wieder gestört.&lt;br /&gt;
&lt;br /&gt;
Gleich dazu mehr. Erwähnen möchte ich erst noch kurz die bipolaren Motoren mit 4 Anschlüssen (also ohne Mittelanzapfung). Diese sind im Prinzip nicht anders aufgebaut als die unipolaren. Da sie jedoch keine Mittelanzapfung besitzen, wird das unterschiedliche Magnetfeld dadurch erreicht, dass man die Spannung an den Spulenenden immer umpolt. Lange Zeit galt das für Bastler als etwas zu kompliziert, daher wurde die unipolare Ansteuerung oft vorgezogen. Durch neue integrierte Schaltkreise wie den L298 ist das aber auch kein Problem mehr. Erwähnen möchte ich noch die Motoren mit 8 Anschlüssen. Im Prinzip sind das Motoren, in denen die beiden Spulen in der Mitte aufgetrennt und herausgeführt wurden. Diese Motoren erlauben wahlweise eine bipolare oder unipolare Ansteuerung. Man kann die Leistung und Anschlusswerte auch verändern, indem man hier die 4 Spulen (sind ja nun quasi 4 durch die Auftrennung) entweder parallel oder in Serie schaltet.&lt;br /&gt;
&lt;br /&gt;
Hier alle denkbaren Ansteuerungsmöglichkeiten bei den unterschiedlichen Motoren (die Farbangaben können bei den Motoren sehr unterschiedlich sein):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:schrittmotorprinzip3.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Fehler, die bei der Motorwahl oft gemacht werden==&lt;br /&gt;
&lt;br /&gt;
Bei der Auswahl eines Schrittmotors sollte man sorgfältig vorgehen. Kleine Motoren, wie sie in Druckern oder Floppys stecken, reichen in der Regel wirklich nur für Roboter der Fliegengewichtsklasse aus. Wenn ein Roboter ein paar kg wiegt, dann braucht man schon etwas mehr Power. Hier sollte man immer auf das Haltemoment achten, dies entspricht fast dem Drehmoment. Mit einem Motor, der 40 Ncm Haltemoment besitzt kann man schon einiges anfangen. Bei einigen Versuchen hab ich durchaus Roboter mit 10 kg ohne Schrittverlust damit bewegt. Allerdings hab ich noch eine Untersetzung 6:1 über Riemen eingebaut. Wenn man sicher gehen will, dann nimmt man immer einen etwas stärkeren Motor. Ein 100 Ncm Motor kommt oft noch mit 6 oder 7 VA (Watt) aus.&lt;br /&gt;
Es ist ein Irrtum, dass sich die Größe des Motors linear mit der Kraft ändert. Es gibt zahlreiche Motoren, welche die gleiche Größe aufweisen und dennoch ganz unterschiedlich stark sind. Ein Standardmaß ist 56 x 56 mm. In der Regel findet man in dieser Größe schon starke Motoren, die keine Wünsche mehr offen lassen.&lt;br /&gt;
&lt;br /&gt;
Ein Fehler, der bei der Auswahl des Motors oft gemacht wird, ist die Betriebsspannung. Auch ich habe am Anfang gedacht, dass man bei einer vorhandenen Spannung von 12 V am besten einen Motortyp mit 12 V kaufen muss. Dies ist zwar nicht ganz falsch, aber wird nie zu großer Leistung führen. Wichtig für den Motor ist, dass der angegebene Strom fließt. Ein Motor, bei dem beispielsweise 12 V und 0,5 A angegeben sind, wird in der Praxis nur bei wirklich sehr niedrigen Drehzahlen seine Kraft, also sein Drehmoment, erreichen. Je höher die Drehzahl, desto schwächer wird der Motor. Das kann soweit gehen, dass schon das geringste Hindernis den Motor Schritte verlieren lässt oder dass der Motor bei höheren Drehzahlen gar nicht mehr anläuft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:stepperdrehmoment.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Woran liegt dies? Ganz einfach: Ein Schrittmotor hat auch eine Induktivität. Da der Motor ständig umgepolt wird, wird durch diese Induktivität eine Art Gegenstrom erzeugt. Dies hat zur Folge, dass der eigentliche Strom bei höheren Drehzahlen nicht mehr erreicht wird. Je schneller sich der Motor dreht, desto weniger Strom fließt. Verständlich, dass dadurch die Leistung reduziert wird.&lt;br /&gt;
&lt;br /&gt;
Wie kann man diesem Verhalten entgegenwirken? Ganz einfach mit einer wesentlich höheren Spannung als auf dem Motor angegeben. Doch Vorsicht, so einfach geht es nicht. Wenn der Motor steht oder sich langsam dreht, dann würde der Motor ja sofort durchbrennen. Die Lösung ist eine stromgeregelte Steuerung!  Die Regelung wird mit einer hohen Spannung (oft bis zu 30 oder 40 Volt) versorgt. Aber die Regelung sorgt dafür, dass immer nur der eingestellte Nennstrom, in unserem Beispiel 0,5 A, zum Motor gelangt. Auf diese Art und Weise wird der Motor, ohne Schaden zu nehmen, immer mit der optimalen Spannung versorgt.&lt;br /&gt;
&lt;br /&gt;
In der Tat werden heute alle Schrittmotoren, die etwas Leistung bringen müssen, z.B. bei Drehmaschinen, auf diese Art angesteuert. Das Ganze klingt nun recht kompliziert und aufwendig für einen Roboter-Hobbybastler. Ist es aber nicht, denn es gibt heute zwei integrierte Schaltkreise, die einen das Ganze recht einfach machen. Die hier abgebildete Schaltung ist quasi der Standard für Schrittmotoren. Auch bei Drehmaschinen wird diese Schaltung oft eingesetzt: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:l298standard.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Widerstand RS1, RS2: 1 oder 0,5 Ohm (bei größerer Belastung)&lt;br /&gt;
 Dioden: schnelle Dioden z.B. BYV27-200&lt;br /&gt;
&lt;br /&gt;
Die Schaltung läßt sich recht einfach auf einer Experimentierplatine  aufbauen. Bedenkt man, dass auch bei einem Gleichstrommotor ein Motortreiber notwendig ist, dann ist diese Schaltung auch nicht viel komplexer. Die einzelnen Steuerleitungen können direkt mit den Ports eines Microcontrollers ([[Controllerboard]]) oder mit dem Parallelport eines PCs verbunden werden. Hier die Bedeutung (fett sind die wichtigen Anschlüsse):&lt;br /&gt;
&lt;br /&gt;
'''CW/CCW:'''&lt;br /&gt;
Gibt die Richtung an, in die der Motor bewegt werden soll &lt;br /&gt;
(CW = ClockWise = im Uhrzeigersinn, CCW = CounterClockWise = gegen den Uhrzeigersinn)&lt;br /&gt;
 &lt;br /&gt;
'''Clock:'''&lt;br /&gt;
Durch einen kurzen Impuls auf diese Leitung wird der Motor einen Schritt bewegt. &lt;br /&gt;
In einer Schleife braucht mal also nur diese Leitung kurz ein- und auszuschalten. &lt;br /&gt;
 &lt;br /&gt;
'''Half/Full:'''&lt;br /&gt;
Gewöhnlich legt man den Anschluss auf Masse. Legt man ihn auf 5 V, dann werden  &lt;br /&gt;
immer halbe Schritte durchgeführt, also doppelt soviele Schritte pro Umdrehung&lt;br /&gt;
 &lt;br /&gt;
'''Enable:'''&lt;br /&gt;
Wenn man diesen Anschluss auf Masse legt, wird die Motorspannung ausgeschaltet&lt;br /&gt;
 &lt;br /&gt;
'''Vref:'''&lt;br /&gt;
Hier muß eine Spannung zwischen 0 und 3 Volt angelegt werden. Die Spannung &lt;br /&gt;
legt den maximalen Motorstom fest.&lt;br /&gt;
&lt;br /&gt;
 VRef berechnet sich nach folgender Formel:&lt;br /&gt;
 Vref=I motorstrom * Rs (bei uns 1 Ohm) &lt;br /&gt;
 Angenommen, Sie haben einen Motor, der 0,5 A Strom verträgt, in diesem Fall &lt;br /&gt;
 würde die Rechnung so aussehen Vref=0,5*1 &lt;br /&gt;
 Ergebnis: Vref=0,5 V&lt;br /&gt;
&lt;br /&gt;
Man muß also an Vref eine Spannung von 0,5 V anlegen. Am Einfachsten geht das, indem man zwischen 5 V und Masse ein 10-k-Poti und den Schleifer an Vref legt. Damit man die 3 Volt nicht überschreitet kann man zwischen 5 V und Poti noch einen 6 kOhm Widerstand legen.&lt;br /&gt;
 &lt;br /&gt;
'''RESET:'''&lt;br /&gt;
Bringt Schrittmotor in Grundstellung (dieser Anschluss muss auf +5 V gelegt werden, damit die Schaltung funktioniert [http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=16449&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;start=22 Quelle])&lt;br /&gt;
 &lt;br /&gt;
'''Control, Sync, Home:'''&lt;br /&gt;
Diese Anschlüsse kann man meist vernachlässigen und unbelegt lassen&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Wie Sie sehen, braucht man also nur 3 Port-Pins, um einen Schrittmotor in beliebige Richtungen und in beliebiger Geschwindigkeit bewegen zu können. Kommt noch ein Motor hinzu, dann könnte man die Enable-Leitung beider verbinden, sodass dann zwei Motoren mit 5 Ports-Pins optimal gesteuert werden können. Ich habe mit einer solchen Schaltung auf einer Experimentierplatine schon einen 15-kg-Roboter problemlos mit einer C-Control gesteuert. Ich kann die Schaltung nur empfehlen. &lt;br /&gt;
Ein interessanter Forum Thread zu oberer Schaltung findet man unter [[#Weblinks]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:l298eigenbau.jpeg|center|framed|Meine erste Schrittmotoransteuerung. Nicht schön - aber es funktionierte :-)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:schaltungstep298.gif|thumb|Ansteuerung mit L298]]&lt;br /&gt;
&lt;br /&gt;
Hier nochmal ein größerer Schaltplan mit eingezeichnetem Annchlussstecker und Spannungsteiler.&lt;br /&gt;
   &lt;br /&gt;
Ein interessanter Forum Thread zu oberer Schaltung findet man unter [[#Weblinks]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wichtig ist halt nur, dass man diese Schaltung mit einer möglichst hohen Spannung versorgt und einen Schrittmotor mit möglichst niedriger Spannung auswählt. Man sollte sich nicht davor abschrecken lassen, dass Schrittmotoren mit niedriger Spannung höhere Ströme z.B. 1 bis 2 A benötigen. Die Leistung berechnet sich ja bekanntlich mit der Formel P=U*I. Somit brauchen auch diese Motoren nicht mehr Energie als Motoren mit höherer Spannung und niedrigem Strombedarf. Hat man bei einem Roboter nur 12 V zur Verfügung, so ist es empfehlenswert z.B. einen 3- oder 4-Volt-Motor zu kaufen. Der Widerstand sollte jedenfalls deutlich unter 10 Ohm liegen. In diesem Fall könnte man dann die obige Schaltung auch mit 12 V betreiben. Allerdings bei höheren Drehzahlen würde die Spannung wegen der Induktivität meist immer noch nicht ausreichen, um die volle Leistung des Motors zu nutzen. Daher wäre zu überlegen, ob man nicht zwei 12-V-Batterien in Serie schaltet oder eine Spannungsverdopplerschaltung einsetzt. Ich habe mich für letzteres entschieden. Mit ein paar Kondensatoren und Dioden kann man recht einfach die Spannung von 12 auf ca. 21 V erhöhen. In der Praxis bricht dieses Spannung bei hohen Strömen ein paar Volt ein, aber das tut der Leistung keinen Abbruch. Mit Spannungsverdoppler war der Motor jedenfalls deutlich stärker und hatte mit 15 kg in der Wohnung keinerlei Probleme. Schwieriger wird es mit Motoren, die schwerer als 15 kg sind, denn hier wird der Strombedarf einfach zu groß und die Akku-Kapazität ist zu schnell erschöpft.     &lt;br /&gt;
&lt;br /&gt;
[[Bild:icrnst01schaltplan.gif|thumb|Schrittmotorsteuerung mit RS232 oder I2C]]&lt;br /&gt;
&lt;br /&gt;
Fazit: Roboter, die sehr genau gesteuert werden müssen und deutlich weniger als 10 kg wiegen, kann man sehr gut mit Schrittmotoren steuern. Bei Robotern, die schwerer sind, sich sehr schnell bewegen müssen oder deren Steuergenauigkeit nicht so wichtig ist, sind Getriebemotoren oft sinnvoller. &lt;br /&gt;
&lt;br /&gt;
Als Alternative eine Ansteuerung für 2 Schrittmotoren per Befehl über I2C oder RS232 &lt;br /&gt;
speziell für Roboter Bastler (ebenfalls mit Stromregelung und L298). Das Board RN-Motor beruht auf dieser Schaltung &lt;br /&gt;
&lt;br /&gt;
Ein interessanter Forum Thread zu dieser Schaltung findet man unter [[#Weblinks]]&lt;br /&gt;
&lt;br /&gt;
Neben dem Motortreiber L298 gibt es aber auch Alternative Motortreiber die sich sehr gut für die Schrittmotorsteuerung eignen. Sehr gut eignen sich zum Beispiel auch L293D oder der neuere L6205. Diese Treiber werden auf unserer Seite [[Getriebemotoren Ansteuerung]] näher beschrieben.&lt;br /&gt;
&lt;br /&gt;
==Wie identifiziert man die Leitungen wenn man kein Datenblatt zum Motor hat?==&lt;br /&gt;
&lt;br /&gt;
Ein Schrittmotor ist aus zwei Spulen aufgebaut:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:stepperspulen.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mit einem Ohmmeter kann man die Anschlüsse einfach identifizieren: Von Spule 1 - a nach Spule 1 - Common ist der Widerstand halb so groß wie der Widerstand von Spule 1 - a nach Spule 1 - b. Der Widerstand nach den Anschlüssen von Spule 2 sollte unendlich sein. &lt;br /&gt;
&lt;br /&gt;
Dass die Anschlüsse a und b voneinander nicht zu unterscheiden sind, ist unwichtig. Falls Sie sie vertauschen, dreht sich der Motor andersherum. Wichtig ist allenfalls, dass sie bei mehreren Motoren gleichen Typs die Anschlüsse gleich legen, um voraussagen zu können, in welche Richtung der Motor sich drehen wird.&lt;br /&gt;
&lt;br /&gt;
Um den Motor bipolar anzusteuern, werden übrigens die Common-Anschlüsse nicht benötigt.&lt;br /&gt;
&lt;br /&gt;
==Hier nochmal die genaue Phasenbeschreibung der Ansteuerung==&lt;br /&gt;
&lt;br /&gt;
Zur Beschreibung verwenden wir wieder das folgende Schema der Spulen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:stepperspulen.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:schrittmotorphasentabelle.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Schrittmotorphasen bildlich dargestellt===&lt;br /&gt;
&lt;br /&gt;
[[Bild:schrittmotorphasenzeichnung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Motoren mit 5 Anschlüssen?==&lt;br /&gt;
Es gibt auch Schrittmotoren mit 5 Drähten. In diesem Fall sind die mittleren Spulenanzapfungen miteinander verbunden und nur als einzige Leitung herausgeführt (also beide Common-Anschlüsse /siehe Skizze). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:stepper5draehte.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In dem Fall kann man den Motor nicht bipolar ansteuern, sondern muss ihn unipolar ansteuern. Mit L297/L298 bzw. RN-Motor usw. wird ein Schrittmotor immer bipolar angesteuert, also kann dafür kein Motor mit 5 Drähten verwendet werden.&lt;br /&gt;
Da heutzutage Schrittmotoren bevorzugt bipolar angesteuert werden um maximales Drehmoment (Kraft) zu erreichen, sollte man daher beim Kauf möglichst Motoren mit 4, 6 oder 8 Drähten kaufen. &lt;br /&gt;
&lt;br /&gt;
{|{{Blaueschmaltabelle}}&lt;br /&gt;
|'''Merke:'''&lt;br /&gt;
Motoren mit 4 Drähten kann man immer nur bipolar ansteuern. &lt;br /&gt;
Motoren mit 6 oder 8 Drähten kann man sowohl bipolar als auch unipolar  ansteuern. Gewöhnlich werden Motoren heute bevorzugt bipolar angesteuert, weil diese Ansteuerung ein größeres Drehmoment erzeugt. &lt;br /&gt;
Bei der bipolaren Ansteuerung in Verbindung mit Stromregelung (wie bei L297/L298  oder RN-Motor etc.) kann die Nennspannung des Motors weit unter der Betriebsspannung liegen.&lt;br /&gt;
Bei einer Ansteuerung ohne Stromregelung muss die Nennspannung des Motors in  etwa der Betriebsspannung entsprechen (egal ob unipolar oder bipolar Ansteuerung).  In diesem Fall ist jedoch das Drehmoment (Kraft) erheblich (deutlich spürbar) geringer.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Die wichtigsten Daten bei einem Schrittmotor==&lt;br /&gt;
Zum besseren Verständnis habe ich die Daten in die Klassen ''Unverzichtbar'', ''Hilfreich'' und ''weniger notwendig'' unterteilt. Diese Unterteilung habe ich vorwiegend im Blick auf Hobby-Anwender und Robotik-Bastler vorgenommen. Es versteht sich von selbst das je nach Vorhaben oder bei industrieller Anwendung eines Motors alle Daten wichtig sein könnten. &lt;br /&gt;
&lt;br /&gt;
===Unverzichtbare Daten===&lt;br /&gt;
&lt;br /&gt;
;Nennstrom: Maximal zulässiger Strom pro Wicklung (Phase). Bei Motoren mit mehreren Wicklungen (also Motoren mit 6 oder 8 Anschlüssen) bezieht sich die Stromangabe auf nur eine Wicklung (unipolare Ansteuerung). Siehe dazu auch das Rechenbeispiel im nächsten Abschnitt.&lt;br /&gt;
[[Bild:stepperdaten.png|framed|So sehen die Daten auf einem Motor aus, Hier wird Nennstrom, Nennspannung und Schrittwinkel angegeben]]&lt;br /&gt;
;Haltemoment: Bis zu diesem Moment ([[Drehmoment]], also dieser Kraft) kann ein Schrittmotor belastet werden, bis sich die Achse um einen oder mehrere Schritte durch die Belastung verdreht. Diese Angabe gilt für einen stehenden Schrittmotor der unter voller Betriebsspannung steht. Die Angabe gibt somit quasi an wieviel Kraft der Motor besitzt, eine sehr wichtige Angabe.&lt;br /&gt;
&lt;br /&gt;
;Schrittwinkel: Der Schrittwinkel gibt an um wieviel Grad sich die Achse bei einem Vollschritt bewegt. Dadurch wird also gleichzeitig angegeben, wie viele Schritte ein Motor für eine volle Drehung benötigt. Man teilt einfach 360 Grad durch den Schrittwinkel und erhält die Schrittanzahl. Bei guten Industriemotoren beträgt der Schrittwinkel oft 1,8 Grad, das ergibt also 200 Vollschritte pro Umdrehung. Nutzt man das Halbschrittverfahren zur Ansteuerung, also 400 Schritte. Je mehr Schritte ein Motor besitzt desto genauer kann er natürlich bestimmte Positionen anfahren, zugleich läuft er ruhiger und leiser. Nachteil von hohen Schrittzahlen ist allerdings, dass oft nicht so hohe Drehzahlen erreicht werden können wie bei großen Schrittwinkeln. &lt;br /&gt;
&lt;br /&gt;
;Nennspannung: Die Betriebsspannung, die notwendig ist, um den Nennstrom zu erreichen. Die Nennspanung gilt in der Regel für den stehenden Schrittmotor. Bei drehenden Motoren reduziert sich der Strom durch die Induktivität des Motors, daher könnte dann die Nennspannung mit steigender Drehzahl höher werden. Genau das machen auch moderne Schrittmotoransteuerungen. Darüber haben wir aber oben im Artikel schon ausgiebig gelesen. Steuert man einen Schrittmotor mit konstanter Spannung, so sollte man den Nennspannung verwenden damit der Motor nicht überhitzt.&lt;br /&gt;
&lt;br /&gt;
;Anschlussbelegung: Schrittmotoren haben 4, 6 oder 8 Anschlussdrähte. Daher gehört zu jedem Schrittmotor ein Plan, der Auskunft über interne Verdrahtung der Spulen gibt. Notfalls kann man dieses auch mit Hilfe eines Ohmmeters ermitteln, auch dies wurde oben schon geschildert.&lt;br /&gt;
&lt;br /&gt;
===Hilfreiche Daten===&lt;br /&gt;
&lt;br /&gt;
;Start-Stop Frequenz (fs): Die maximale Frequenz (Geschwindigkeit der Schrittfolge), bei der ein nicht belasteter Schrittmotor anläuft ohne Schritte zu verlieren. Leider findet man auch diese Angabe wohl nur bei etwas teureren Markenmotoren. &lt;br /&gt;
&lt;br /&gt;
;Betriebsmoment: Ähnlich wie das Haltemoment, jedoch wird hier das Moment für den drehenden Schrittmotor angegeben. Da bei Schrittmotoren das Drehmoment mit steigender Drehzahl abnimmt, reicht hier also kein einzelnen Wert. Daher wird diese Angabe in Form einer Kennlinie, oft mit verschiedenen Betriebsspannungen, dargestellt. Eine solche Kennline haben wir schon im Artikel weiter oben kennengelernt. Sie ist sehr hilfreich um den richtigen Motor für ein Vorhaben zu finden. Man sollte insbesondere darauf achten, dass das Drehmoment bei der maximalen geplanten Drehzahl auch wirklich noch für die Aufgabe ausreichend ist. Leider wird das Betriebsmoment (also diese Kennlinie) bei vielen Motoren (insbesondere bei Angeboten, kleineren Motoren usw.) nicht angegeben. Da der Kennlienienverlauf der Schrittmotoren jedoch eine gewisse Grundähnlichkeit aufweist, kann man in der Praxis deshalb oft auch mit der Angabe des Haltemoments auskommen.&lt;br /&gt;
&lt;br /&gt;
===Weniger oft notwendige Daten===&lt;br /&gt;
&lt;br /&gt;
;Widerstand: Manchmal wird der ohmische Widerstand der Spule angegeben, allerdings nicht immer. Wenn die Nennspannung und der Nennstrom angebenen sind, so kann man sich den Widerstand nach dem ohmschen Gesetz selbst berechnen (R=U/I). Sind nur die Nennspannung und der Widerstand angegeben, was auch vorkommt, so muss man sich dagegen den Nennstrom selbst ausrechnen (I=U/R). Die Leistungsaufnahme der Wicklung kann man natürlich ebenfalls durch diese Angaben bestimmen (P=I²*R)&lt;br /&gt;
&lt;br /&gt;
;Rastmoment: Das Rastmoment kennt man bei Permanentmagnet- und Hybrid-Schrittmotoren. Es ist beim Drehen des Motors (ohne Spannung) spürbar. Wenn man die Wicklungen kurzschließt, wird dieses erheblich stärker. Dieser Sachverhalt kann auch für eine Bremse ausgenutzt werden.&lt;br /&gt;
&lt;br /&gt;
;Rotorträgheit: Das Massenträgheitsmoment des Rotors. Je größer und schwerer ein Motor bzw. eine Achse wird, desto größer wird die Masse des Rotors, der zusammen mit der Nutzlast beschleunigt werden muss. Je niedriger dieser Wert ist, desto schneller und dynamischer verhält sich der Motor bei Beschleunigungen. Da die Masse des Rotors und der Last ein schwingungsfähiges System bilden, sollte das auf die Motorwelle reduzierte Trägheitsmoment der Last in der selben Größenordnung liegen wie die Rotorträgheit.&lt;br /&gt;
&lt;br /&gt;
==Praxisbeispiel für Stromberechnung==&lt;br /&gt;
Soll ein Schrittmotor mit 8 Anschlüssen (4 Wicklungen) bipolaren angesteuertet werden, so hat man die Wahl jeweils zwei Spulen parallel oder in Reihe zu schalten. Die Stromangaben auf dem Motor beziehen sich in der Regel auf eine Phase, also eine Wicklung. Angenommen wir haben einen Motor mit folgender Beschriftung:&lt;br /&gt;
&lt;br /&gt;
[[Bild:stepperdaten.png|framed|Auf einem Foto könnte das so aussehen]]&lt;br /&gt;
&lt;br /&gt;
* Nennspannung: 5,1 V &lt;br /&gt;
* Phasenstrom:  1,0 A &lt;br /&gt;
* Anschluß: 8 Drähte = wahlweise unipolar oder bipolar &lt;br /&gt;
* Schrittwinkel 1,8 Grad / 200 Schritte pro Umdrehung &lt;br /&gt;
* Haltekraft: ca. 50 Ncm &lt;br /&gt;
* Wellendurchmesser: 6 mm &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Möchte man die Spulen in Reihe schalten, so muss der Strom in etwas um den Faktor 1,41 (Wurzel aus 2) verringert werden damit der Motor nicht zu heiß wird. &lt;br /&gt;
In unserem Beispiel müsste also 1A / 1,41 = '''0,792A''' fließen. Bei einer Chopper-Regelung (Stromregelung) müsste man somit 0,79A einstellen. Da sich der ohmische Widerstand durch die Reihenschaltung verdoppelt, benötigt man auch eine höhere Spannung. Anhand des ohmischen Widerstandes, der sich messen oder berechnen läßt, kann man in etwa die notwendige Mindestspannung berechnen.  Wenn bei 5,1V ein Strom von 1 A fließt, so müsste der ohmische Widerstand R=U/i = 5,1V / 1 = '''5,1 Ohm''' betragen. Der Gesamtwiderstand der Reihenschaltung wäre demnach 10,2 Ohm. Wenn wir den Strom von 0,79A erreichen wollen, so müsste U=I*R  = 0,79*10,2 = '''8,06V''' vorhanden sein. Das wäre aber nur die Mindestspannung, also die Spannung die man ohne Stromregelung auch konstant anlegen könnte. Nutzt man jedoch eine Stromregelung so müssen natürlich Regelreserven vorhanden sein. Zudem müssten die Schaltungsverluste der Chopperregelung berücksichtigt werden. Daher verwendet man eine deutlich höhere Spannung. 12V bis 24 V wären in dem Beispiel durchaus angebracht. Je höher desto besser, denn so kann bei hohen Drehzahlen der Strom schneller dem induktiven Widerstand entgegenwirken und das Drehmoment fällt nicht mehr so stark bei steigenden Drehzahlen ab. Das Drehmoment erhöht sich im übrigen bei der Reihenschaltung ebenfalls in etwa um den Faktor 1,41 (Wurzel aus 2).&lt;br /&gt;
&lt;br /&gt;
Bei der Parallelschaltung von zwei Spulen ist es genau umgekehrt. Hier muss der Strom in etwas um den Faktor 1,41 erhöht werden. Also 1A * 1,41 = 1,41 A sollten hier fließen. Da sich der ohmische Widerstand durch die Parallelschaltung halbiert, also in unserem Fall auf 2,55 Ohm, ist natürlich auch eine niedrigere Spannung notwendig. Die Berechnung wäre also U=I*R  = 1,41A * 2,55 = 3,6V&lt;br /&gt;
Auch da sist wieder die Mindestspannung die auch als Konstantspannung angelegt werden darf. Auch hier muss bei der Chopper-Regelung (Stromregelung) eine höhere Spannung angelegt werden. Mit Werten zwischen ca. 8 und 16V würde man jetzt aber schon sehr gute Ergebnisse erzielen. Auch in diesem Beispiel würde sich das Drehmoment in etwa um den Faktor 1,41 erhöhen.&lt;br /&gt;
&lt;br /&gt;
Problematisch kann bei der Parallelschaltung mancher Motoren der niedrige ohmsche Widerstand werden. Nicht jede Motorregelung/Motortreiber macht das mit. Aus diesem Grund werden sicherlich Reihenschaltungen in der Praxis bevorzugt eingesetzt.&lt;br /&gt;
&lt;br /&gt;
==Autor==&lt;br /&gt;
* Frank&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[Chopper Betrieb]]&lt;br /&gt;
* [[Getriebemotoren Ansteuerung]]&lt;br /&gt;
* [[Getriebemotoren]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
Hier noch ein paar Links, wenn ihr euch noch eingehender mit dem Thema befassen wollt:&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/dload.php?action=category&amp;amp;cat_id=2 L298 un L297 Datenblatt]&lt;br /&gt;
* [http://www.roboternetz.de/robotertutorial.html Robotertutorial (Projekt mit Schrittmotor)]&lt;br /&gt;
* [http://www.shop.robotikhardware.de/shop/catalog/index.php?cPath=65&amp;amp;osC L297/L298 Bauteilesortiment + Schrittmotoren]&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/viewtopic.php?t=2741 Bequeme Schrittmotoransteuerung über RS232 oder I2C]&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=21730 800mA I2C Schrittmotorsteuerung mit Trinamic TMC222]&lt;br /&gt;
* [http://www.nanotec.de/ Nanotec]&lt;br /&gt;
* [http://www-users.rwth-aachen.de/thorsten.ostermann/schritt/sm_faq.htm Schrittmotor_Faq]&lt;br /&gt;
* [http://www.wolfgang-back.com/schrittmotor_demo.php Wolfgang Back´s Seite]&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/motordrehmoment.php Automatische Berechnung der Robotergeschwindigkeit und Drehmoment bei unterschiedlichen Motoren]&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/dload.php?action=file&amp;amp;file_id=284 Schaltung mit L297/L298 Protobed_StepM_297-298]&lt;br /&gt;
&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=733 Roboternetz-Forum Thread L297/L298]&lt;br /&gt;
* [http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=2741 Roboternetz-Forum Thread zum RNST01/RN-Motor]&lt;br /&gt;
&lt;br /&gt;
'''Englische Links'''&lt;br /&gt;
* [http://www.cs.uiowa.edu/~jones/step/ Control of stepping motors (gutes Tutorial)]&lt;br /&gt;
* [http://library.solarbotics.net/pdflib/pdf/drive.pdf Drive motor circuit basics] &lt;br /&gt;
* [http://www.njr.co.jp/pdf/ee/ee05004.pdf Half stepping techniques] &lt;br /&gt;
* [http://www.njr.co.jp/pdf/ee/ee05005.pdf Microstepping ]&lt;br /&gt;
* [http://www.compumotor.com/catalog/cataloga/A29-A30.pdf Microstepping drive technology]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Motoren]]&lt;br /&gt;
[[Category:Elektronik]]&lt;/div&gt;</summary>
		<author><name>Momomu</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=RN-Definitionen&amp;diff=9781</id>
		<title>RN-Definitionen</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=RN-Definitionen&amp;diff=9781"/>
				<updated>2006-12-06T20:56:37Z</updated>
		
		<summary type="html">&lt;p&gt;Momomu: /* Platinenmaße / Bohrlöcher */  typo (spieziell -&amp;gt; speziell)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Steckerbelegungen für den Bereich Robotik- und Mikrocontroller== &lt;br /&gt;
Empfohlen und erarbeitet im RoboterNetz.de, um Schaltungen kompatibler zueinander zu gestalten. Alle Boards mit dem Kürzel RN-... halten sich an die hier festgelegten Definitionen. &lt;br /&gt;
Es wird empfohlen sich bei der Entwicklung eigener Schaltungen möglichst an diese Vereinbarung zu halten. Dadurch ist sichergestellt, dass auch andere Komponenten anderer Mitglieder oder Firmen in eurer Projekt integriert werden können. Und umgekehrt habt ihr dann auch die Möglichkeit, eigene Platinen-Entwürfe steckerkompatibel im RoboterNetz oder an anderer Stelle zu veröffentlichen. &lt;br /&gt;
&lt;br /&gt;
Einheitliche Stecker vereinfachen einfach das Handling!&lt;br /&gt;
&lt;br /&gt;
Die Steckerdefinitionen können auch als PDF geladen werden:&lt;br /&gt;
http://www.roboternetz.de/phpBB2/dload.php?action=file&amp;amp;file_id=81&lt;br /&gt;
&lt;br /&gt;
==Die verschiedenen Steckerarten==&lt;br /&gt;
&lt;br /&gt;
===RN-Busstecker===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====I2C-Bus Stecker====&lt;br /&gt;
Ein universeller serieller Bus, mit dem sich sehr einfach verschiedene Boards ansteuern lassen. Der Bus hat den Vorteil, dass zwei Leitungen ausreichen und keine festen Taktraten und Zyklen beachtet werden müssen. Zahlreiche integrierte Schaltkreise (wie Porterweiterungen, LCD-Treiber, usw.) sowie fast alle RN-Boards nutzen diesen Bus. Am [[I2C]]-Bus können mehrere Boards/Bausteine angeschlossen werden, da jeder Baustein seine Slave-Adresse besitzt. &lt;br /&gt;
&lt;br /&gt;
Dieser Bus (Stecker) sollte auf jedem Controllerboard vorhanden sein, dadurch sind den Erweiterungen kaum Grenzen gesetzt. &lt;br /&gt;
&lt;br /&gt;
Der hier definierte Standard ist nicht nur zu allen RN-Boards kompatibel, sondern auch  zu vielen Schaltungen diverser Hersteller. Auch die Zeitschrift Elektor hat diesen Bus bereits genutzt (Elektor nutzt nur den Pin 10 nicht).&lt;br /&gt;
&lt;br /&gt;
[[Bild:rndefinition_wannenstecker.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:stecker_10pol_i2c.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Pin 1        SCL (Taktleitung)&lt;br /&gt;
 Pin 3        SDA (Datenleitung)&lt;br /&gt;
 Pin 5        +5V&lt;br /&gt;
 Pin 7        +5V&lt;br /&gt;
 Pin 9        Batteriespannung max. +12V&lt;br /&gt;
 Pin 2,4,6,8  GND&lt;br /&gt;
 Pin 10  INT  Diese Leitung kann von allen I2C-Bus Erweiterungen genutzt&lt;br /&gt;
              werden, um den Hauptcontroller darüber zu informieren, dass &lt;br /&gt;
              sich Daten (z.B. von Sensoren) verändert haben. In diesem Fall&lt;br /&gt;
              wird die Leitung solange auf Masse gelegt bis der entsprechende &lt;br /&gt;
              I2C-Baustein ausgelesen wird.&lt;br /&gt;
              Der Controller muss also immer alle I2C-Bausteine auslesen &lt;br /&gt;
              solange diese Leitung auf Masse liegt. Bei einem Hauptboard&lt;br /&gt;
              (wie z.B. RN-Control oder RNBFRA) kann diese Leitung auf einen&lt;br /&gt;
              interruptfähigen Port geleitet werden. &lt;br /&gt;
              Beim Elektor-Standard gibt es diese Leitung nicht, hier liegt &lt;br /&gt;
              dieses Signal immer auf Masse! &lt;br /&gt;
&lt;br /&gt;
Empfehlenswert ist es, dass die Spannungen an Pin 5,7 und 9 über Jumper auf einem Board deaktivierbar sind. Dadurch lassen sich identische Boards mit eigenen Stromversorgungen ebenfalls über I2C verbinden, denn nur ein Board darf diese Spannungen bereitstellen. Bei [[RN-Control]] ist dies bereits ab Version 1,4 über Jumper wählbar.&lt;br /&gt;
&lt;br /&gt;
 Bezugsmöglichkeit für passende Wannenbuchse:&lt;br /&gt;
 z.B. Reichelt (Best.Nr. WSL10G)&lt;br /&gt;
 Conrad-Elektronik (Best.Nr. 742512-12)&lt;br /&gt;
 Robotikhardware.de Kabelset&lt;br /&gt;
 Passender Stecker:&lt;br /&gt;
 z.B. Reichelt: &amp;quot;Pfostenbuchse&amp;quot; (Best.Nr. PFL 10)&lt;br /&gt;
&lt;br /&gt;
====SPI-Bus Stecker====&lt;br /&gt;
Ein universeller Stecker für den [[SPI]]-Bus. Der SPI-Bus eignet sich ähnlich wie der [[I2C]]-Bus zur Vernetzung mehrere Microcontroller oder spezieller Schaltkreise. Genau wie für den I2C-Bus gibt es auch für den SPI-Bus speziele IC´s wie LCD-Treiber, Porterweiterungen usw. &lt;br /&gt;
Vortei des SPI-Busses ist die höhere Geschwindigkeit. Nachteil ist das mindestens 3 Leitungen notwendig sind (MISO,MOSI und SCK). Wenn mehr als ein Teilnehmer angeschlossen wird, so ist für jeden Teilnehmer noch eine Zusatzleitung zum selektieren des SLAVE (Empfangsboardes) notwendig. Um auch die Verwendung des [[SPI]]-Busses für Roboternetz-User zu standardisieren und möglichst leicht zugänglich zu machen, wird folgende Steckerbelegung empfohlen:&lt;br /&gt;
&lt;br /&gt;
 Pinbelegung&lt;br /&gt;
 Pin 1 Port (kann zur Auswahl anderer Slave genutzt werden) &lt;br /&gt;
 Pin 2 Port (kann zur Auswahl anderer Slave genutzt werden) &lt;br /&gt;
 Pin 3 Port (kann zur Auswahl anderer Slave genutzt werden) &lt;br /&gt;
 Pin 4 Port (kann zur Auswahl anderer Slave genutzt werden) &lt;br /&gt;
 Pin 5 SS (Standard Slave) &lt;br /&gt;
 Pin 6 MISO &lt;br /&gt;
 Pin 7 MOSI &lt;br /&gt;
 Pin 8 SCK &lt;br /&gt;
 Pin 9 GND &lt;br /&gt;
 Pin 10 Logikspannung 5V &lt;br /&gt;
&lt;br /&gt;
Mit diesem Stecker können somit 1 bis 5 Teilnehmer angesprochen werden. Über einen Multiplexer (möglichst an Pin 1 bis 4) könnte dies noch erhöht werden (in dem Sonderfall müssten alle Teilnehmer Multiplexer nutzen).&lt;br /&gt;
Der Vorteil des Steckers ist zudem, das er kompatibel zu den anderen 10 poligen Steckern der RN-Definition ist. Er kann somit auch für ganz andere Dinge wie LCD-Ansteuerung usw. genutzt werden, falls SPI nicht benötigt wird.&lt;br /&gt;
&lt;br /&gt;
[[Bild:rndefinition_wannenstecker.gif|center]]&lt;br /&gt;
&lt;br /&gt;
 Bezugsmöglichkeit für passende Wannenbuchse:&lt;br /&gt;
 z.B. Reichelt (Best.Nr. WSL10G)&lt;br /&gt;
 Conrad-Elektronik (Best.Nr. 742512-12)&lt;br /&gt;
 Passender Stecker:&lt;br /&gt;
 z.B. Reichelt: &amp;quot;Pfostenbuchse&amp;quot; (Best.Nr. PFL 10)&lt;br /&gt;
&lt;br /&gt;
====RS232 Stecker====&lt;br /&gt;
Die serielle Schnittstelle (RS232) kann wahlweise als 9-poliger SUB-D Stecker  (PC üblich) oder als 3-polige Stiftleiste herausgeführt werden. &lt;br /&gt;
Die 3-polige Stiftleiste bietet sich immer dann an, wenn nur wenig Platz auf dem Board vorhanden ist. Da die 3-polige Stiftleiste auch auf fast allen RN-Boards vorhanden ist, sollte man diese dem 9-poligen SUB-D Stecker vorziehen. Ein weiterer Vorteil dieser Stiftleiste ist die einfache Umpolung von RX/TX durch Umdrehen des Steckers.&lt;br /&gt;
&lt;br /&gt;
Die Belegung ist identisch mit der des CCRP5 (Conrad Roboter). Passende PC-Adapterkabel sind leicht anzufertigen und gibt es auch fertig im Fachhandel (z.B. http://robotikhardware.de).&lt;br /&gt;
&lt;br /&gt;
 Empfohlene Steckverbindung auf der Platine:	&lt;br /&gt;
 Stiftleiste 3-polig  Raster 2,54mm &lt;br /&gt;
 Pin 1   RX&lt;br /&gt;
 Pin 2   GND&lt;br /&gt;
 Pin 3   TX&lt;br /&gt;
	&lt;br /&gt;
Wie Abbildung 1 x 3 Kontakte&lt;br /&gt;
 &lt;br /&gt;
[[Bild:stift3.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:rn232adapter.jpeg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Bezugsquellen:&lt;br /&gt;
 z.B. Reichelt (Best.Nr. LU2,5MS3)&lt;br /&gt;
 Passende Stecker: &lt;br /&gt;
 Robotikhardware RS232-Kabel &lt;br /&gt;
 Reichelt PS25/3G BR&lt;br /&gt;
 Reichelt Crimpset (PSK254/3W und PSK-Kontakte und CRIMPZANGE PSK)&lt;br /&gt;
&lt;br /&gt;
====RS232 TTL Stecker====&lt;br /&gt;
&lt;br /&gt;
Die serielle Schnittstelle (RS232) im 5V-TTL-Pegel. Diese Schnittstelle ist vor allem dann interessant, wenn mehrere Controller miteinander verbunden werden. Die Stiftleiste ist 4-polig ausgelegt, um Verwechslungen mit der RS232 und dem PC-Pegel (+/-12V) zu vermeiden. Zudem lässt sich so ein Pegelwandler-Schaltkreis (z.B. Max232) anschließen und mit Spannung versorgen). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:stift4.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Empfohlene Steckverbindung auf der Platine:&lt;br /&gt;
  Stiftleiste 4-polig  Raster 2,54mm &lt;br /&gt;
  Pin 1   RX&lt;br /&gt;
  Pin 2   TX&lt;br /&gt;
  Pin 3   GND&lt;br /&gt;
  Pin 4   5V&lt;br /&gt;
 &lt;br /&gt;
Bezugsquellen:&lt;br /&gt;
 z.B. Reichelt (Best.Nr. LU2,5MS4)&lt;br /&gt;
 Passende Stecker:&lt;br /&gt;
 Reichelt PS25/5G BR&lt;br /&gt;
 Reichelt Crimpset (PSK254/5W und PSK-Kontakte und CRIMPZANGE PSK)&lt;br /&gt;
&lt;br /&gt;
====RS485 Stecker====&lt;br /&gt;
Ein weiterer wichtiger Bus ist neben I2C, RS232 der [[RS485]] Bus. Dieser hat einige Vorteile. So können beispielsweise mehrere Slaves an einen Master angeschlossen werden. Die Übertragung kann wahlweise abwechselnd in eine oder in beide Richtungen gleichzeitig erfolgen. Es sind sehr hohe Übertragungsraten bis in den Mbit-Bereich über größere Entfernungen möglich.&lt;br /&gt;
&lt;br /&gt;
[[Bild:rndefinition_wannenstecker.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Empfohlene Steckverbindung auf der Platine:	&lt;br /&gt;
  Wannenstecker Rastermaß 2,54mm 10-polig&lt;br /&gt;
  Pin 1   Volle Batteriespannung&lt;br /&gt;
  Pin 3   GND&lt;br /&gt;
  Pin 5   5V&lt;br /&gt;
  Pin 7   RS485 A   (kein TTL-Pegel)&lt;br /&gt;
  Pin 9   RS 485 B  (kein TTL-Pegel)&lt;br /&gt;
&lt;br /&gt;
  Pin 2   Volle Batteriespannung&lt;br /&gt;
  Pin 4   GND&lt;br /&gt;
  Pin 6   5V&lt;br /&gt;
  Pin 8   RS 485 C  (kein TTL-Pegel)&lt;br /&gt;
  Pin 10  RS 485 D  (kein TTL-Pegel)&lt;br /&gt;
&lt;br /&gt;
Diese Steckerbelegung hat einige Vorteile. Man kann auch nur einen Stecker mit 5 Polen aufstecken, wenn man nur einen Half-Duplex Bus benötigt. Man hat dann in diesen 5 Polen alles drin und die Belegung entspricht sogar noch den bisherigen Normierungen von uns (+12 / GND / +5 / Port / Port). Möchte man Vollduplex nutzen, dann müsste man den vollen Stecker benutzen - man hat also die Wahl! &lt;br /&gt;
&lt;br /&gt;
'''Pinbelegung der 5 poligen Alternative:'''&lt;br /&gt;
&lt;br /&gt;
  Pin 1   Volle Batteriespannung&lt;br /&gt;
  Pin 2   GND&lt;br /&gt;
  Pin 3   5V&lt;br /&gt;
  Pin 4   RS 485 C  (kein TTL-Pegel)&lt;br /&gt;
  Pin 5   RS 485 D  (kein TTL-Pegel)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:stift5.gif|center]]	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alternativ zum Wannenstecker können auch Stiftleisten mit gleicher Belegung eingesetzt werden!&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  Bezugsquellen für Stecker:&lt;br /&gt;
  z.B. Reichelt (Best.Nr. WSL10G)&lt;br /&gt;
  Conrad-Elektronik (Best.Nr. 742512-12)&lt;br /&gt;
  robotikhardware.de Kabelset&lt;br /&gt;
  Passende Stecker:&lt;br /&gt;
  Reichelt PS25/5G BR&lt;br /&gt;
  Reichelt Crimpset (PSK254/5W und PSK-Kontakte und CRIMPZANGE PSK)&lt;br /&gt;
&lt;br /&gt;
===Universelle Anschlüsse für Sensoren und Aktoren===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====Servo Stecker (sowie Sensoren/Aktoren die '''einen Port''' benötigen)====&lt;br /&gt;
Für den Anschluss von [[Servos]] gibt es bereits verschiedene Standard-Stecker der Modellbauhersteller. Für die Roboternetz-Definition haben wir uns einen der weitest verbreiteten herausgesucht und übernommen. Boards, die den Anschluss von Servos oder auch Modellbau-Empfängern erlauben, sollten diese 3-polige Stiftleiste vorsehen. Handelsübliche Servos können direkt angesteckt werden.&lt;br /&gt;
&lt;br /&gt;
Diese dreipolige Anschluss eignet sich jedoch auch, um Sensoren oder Aktoren, welche mit einem Datenport auskommen, anzuschließen.  &lt;br /&gt;
&lt;br /&gt;
 Empfohlene Steckverbindung auf der Platine:	&lt;br /&gt;
 Stiftleiste 3-polig  Raster 2,54mm &lt;br /&gt;
 &lt;br /&gt;
 Pin 1  GND&lt;br /&gt;
 Pin 2  +5 V&lt;br /&gt;
 Pin 3  Datenport (PWM-Signal) &lt;br /&gt;
	&lt;br /&gt;
Wie Abbildung 1 x 3 Kontakte&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Bild:stift3.gif|center]]	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
 Bezugsquellen:&lt;br /&gt;
 z.B. Reichelt (Best.Nr. LU2,5MS3)&lt;br /&gt;
 Passende Stecker:&lt;br /&gt;
 Reichelt PS25/3G BR&lt;br /&gt;
 Reichelt Crimpset (PSK254/3W und PSK-Kontakte und CRIMPZANGE PSK)&lt;br /&gt;
 Servostecker im Modellbauladen&lt;br /&gt;
&lt;br /&gt;
====Universalanschluss 5 polig ('''2 Ports''' + Spannungen)====&lt;br /&gt;
Für den Anschluss von Aktoren (Relais, LED usw.) als auch Sensoren wurde eine 5-polige Stiftleiste festgelegt. Da viele Aktoren mehrere Ports benötigen, werden immer 2  Portleitungen zusammen mit den Spannungen auf jede Stiftleiste gelegt. &lt;br /&gt;
&lt;br /&gt;
 Empfohlene Steckverbindung auf der Platine:	&lt;br /&gt;
 Stiftleiste 5-polig  Raster 2,54mm &lt;br /&gt;
 &lt;br /&gt;
 Pin 1 Batteriespannung (max. 12 V)&lt;br /&gt;
 Pin 2 GND&lt;br /&gt;
 Pin 3 +5V&lt;br /&gt;
 Pin 4 Port 1 &lt;br /&gt;
 Pin 5 Port 2 &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Bild:stift5.gif|center]]	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Bezugsquellen:&lt;br /&gt;
 z.B. Reichelt (Best.Nr. LU2,5MS5)&lt;br /&gt;
 Passende Stecker:&lt;br /&gt;
 Reichelt PS25/5G BR&lt;br /&gt;
 Reichelt Crimpset (PSK254/5W und PSK-Kontakte und CRIMPZANGE PSK)&lt;br /&gt;
&lt;br /&gt;
====Datenportstecker 10polig ('''8 Ports''')====&lt;br /&gt;
&lt;br /&gt;
Zum Experimentieren benötigt man oft mehrere Ports. Auch gibt es Aktoren/Sensoren oder sonstige Erweiterungen, die viele Ports benötigen. Für all diese Zwecke empfehlen wir den universellen Datenportstecker. Er verwendet die gleiche Belegung wie auch die Atmel Entwicklungsboards (z.B. STK500) und wird z.B. auch mehrfach auf dem Board [[RN-Control]] bereitgestellt.&lt;br /&gt;
&lt;br /&gt;
Seit August 2005 kann ein Datenportstecker auch als [[#Endstufenstecker 10polig (für Motoransteuerungen)|Endstufenstecker]] genutzt werden.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 Empfohlene Steckverbindung auf der Platine:&lt;br /&gt;
 Pin 1   Port 0&lt;br /&gt;
 Pin 2   Port 1&lt;br /&gt;
 Pin 3   Port 2&lt;br /&gt;
 Pin 4   Port 3&lt;br /&gt;
 Pin 5   Port 4&lt;br /&gt;
 Pin 6   Port 5&lt;br /&gt;
 Pin 7   Port 6&lt;br /&gt;
 Pin 8   Port 7&lt;br /&gt;
 Pin 9   GND&lt;br /&gt;
 Pin 10  Logikspannung 5V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:rndefinition_wannenstecker.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zu finden bei EAGLE ist der Datenportstecker unter der Bezeichnung &amp;quot;ML10&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 Bezugsmöglichkeit für passende Wannenbuchse:&lt;br /&gt;
 z.B. Reichelt (Best.Nr. WSL10G)&lt;br /&gt;
 Conrad-Elektronik (Best.Nr. 742512-12)&lt;br /&gt;
 http://www.Robotikhardware.de Kabelset&lt;br /&gt;
 Passender Stecker:&lt;br /&gt;
 z.B. Reichelt: &amp;quot;Pfostenbuchse&amp;quot; (Best.Nr. PFL 10)&lt;br /&gt;
&lt;br /&gt;
===Weitere Stecker===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====ISP - Programmierstecker====&lt;br /&gt;
Über diesen Anschluss kann ein RN-Controllerboard sowie fast alle anderen auf dem Markt befindlichen AVR-Boards mit einem Standard ISP-Kabel direkt an einen Parallelport des PCs angeschlossen und programmiert werden.&lt;br /&gt;
Die Belegung des ISP-Anschlusses ist zu dem weit verbreiteten STK200-Programmier-Dongle kompatibel. Ein entsprechender Dongle ist für  ca. 13-15 Euro über zahlreiche Händler lieferbar. &lt;br /&gt;
&lt;br /&gt;
Empfohlene Steckverbindung auf der Platine:&lt;br /&gt;
&lt;br /&gt;
 Pin 1  MOSI&lt;br /&gt;
 Pin 2  VCC&lt;br /&gt;
 Pin 3  Nicht belegt&lt;br /&gt;
 Pin 4  GND&lt;br /&gt;
 Pin 5  RESET&lt;br /&gt;
 Pin 6  GND&lt;br /&gt;
 Pin 7  SCK&lt;br /&gt;
 Pin 8  GND&lt;br /&gt;
 Pin 9  MISO&lt;br /&gt;
 Pin 10 GND &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Bild:rndefinition_wannenstecker.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Bezugsmöglichkeit für passende Wannenbuchse:&lt;br /&gt;
 z.B. Reichelt (Best.Nr. WSL10G)&lt;br /&gt;
 Conrad-Elektronik (Best.Nr. 742512-12)&lt;br /&gt;
 Passender Stecker:&lt;br /&gt;
 z.B. Reichelt: &amp;quot;Pfostenbuchse&amp;quot; (Best.Nr. PFL 10)&lt;br /&gt;
&lt;br /&gt;
====JTAG Stecker====&lt;br /&gt;
[[JTAG]] - (Joint Test Action Group) bezeichnet den IEEE-Standard 1149.1, der ein Verfahren zum Debugging von  Hardware beschreibt. Es ist also ein normiertes Interface zum Debuggen und Programmieren von vielen Microcontrollern, zum Beispiel die [[AVR]]-Serie. Er kann somit als Alternative des [[ISP]]-Steckers genutzt werden. Wie auch der ISP-Stecker benötigt man jedoch über ein entsprechendes PC-Interface (JTAG-Dongel). Zum Debuggen ist eine spezielle Entwicklersoftware notwendig, derzeit gibt es dies meines Wissens nur für Assembler.&lt;br /&gt;
Das JTAG- Interface wird allerdings in Hobby Bereich deutlich weniger eingesetzt als das weit verbreitete [[ISP]]-Interface, vermutlich wegen der höheren Donglekosten. &lt;br /&gt;
Um auch die Verwendung des [[JTAG]]-Interfaces für Roboternetz-User zu erleichtern und zu standardisieren, wird die untere Steckerbelegung empfohlen. Bei der Ausarbeitung wurden die bisherigen Empfehlungen von [[Atmel]] und anderen Anbietern berücksichtigt, so das bereit passende Interfaces verfügbar sind.&lt;br /&gt;
&lt;br /&gt;
 Pinbelegung&lt;br /&gt;
 Pin 01 - TCK   (Test Clock)  &lt;br /&gt;
 Pin 02 - GND   (Masse)&lt;br /&gt;
 Pin 03 - TDO   (Test Data Output) &lt;br /&gt;
 Pin 04 - VREF  (Wird seltener genutzt und ist oft unbelegt. Kontrolle der Betriebsspannung) &lt;br /&gt;
 Pin 05 - TMS   (Test Mode Select Input)&lt;br /&gt;
 Pin 06 - NSRST (Wird seltener genutzt und ist oft unbelegt. RESET Eingang des Targets.&lt;br /&gt;
                 Ausgang zur Überwachung der RESET-Leitung des Targets)&lt;br /&gt;
 Pin 07 - VCC   (+5V)&lt;br /&gt;
 Pin 08 - NTRST &lt;br /&gt;
 Pin 09 - TDI   (Test Data Input)&lt;br /&gt;
 Pin 10 - GND   (Masse)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:rndefinition_wannenstecker.gif|center]]&lt;br /&gt;
&lt;br /&gt;
 Bezugsmöglichkeit für passende Wannenbuchse:&lt;br /&gt;
 z.B. Reichelt (Best.Nr. WSL10G)&lt;br /&gt;
 Conrad-Elektronik (Best.Nr. 742512-12)&lt;br /&gt;
 Passender Stecker:&lt;br /&gt;
 z.B. Reichelt: &amp;quot;Pfostenbuchse&amp;quot; (Best.Nr. PFL 10)&lt;br /&gt;
&lt;br /&gt;
====Endstufenstecker 10polig (für Motoransteuerungen)====&lt;br /&gt;
&lt;br /&gt;
Wenn ein Motorboard nicht über I2C/ RS232 oder anderen Bus angesteuert wird, so wird folgender Wannenstecker als Anschluss empfohlen.  Die Belegung ist angelehnt an die beliebten Motortreiberschaltkreise L293D, L298 und ähnliche H-Brücken.&lt;br /&gt;
&lt;br /&gt;
Der Stecker eignet sich somit zum Ansteuern von einem oder zwei DC-Motoren (z.B. Getriebemotoren) oder einem Schrittmotor. &lt;br /&gt;
Auch Endstufen, die nur einen Motor ansteuern können, sollten diesen Stecker verwenden. Empfehlenswert sind dann Jumper, um zwischen Motor1 und Motor2 zu wählen. Auf diese Weise können einfach zwei Endstufen durchgeschleift werden (zwei gleiche Stecker am Kabel).&lt;br /&gt;
&lt;br /&gt;
Die mit NC (Not Connected) gekennzeichneten PINs sind absichtlich nicht normiert, um diese im Einzelfall auch individuell für Sonderfunktionen nutzen zu können. Allerdings darf hier nur ein Pegel zwischen 0 und 5V angelegt werden, kein höherer Pegel! Die NC-Pins müssen nicht genutzt werden, können also unbelegt bleiben. Wer jedoch für alle Fälle gerüstet sein möchte, sollte die NC-Pins per Jumper auf einen AD-Port legen können. Es ist damit zu rechnen, dass einige Boards die NC-Ports für ein Strommessignal (0 bis 2,5V) nutzen. &lt;br /&gt;
&lt;br /&gt;
Der Motorendstufenstecker ist seit dem August 2005 kompatibel zu dem definierten universellen [[#Datenportstecker 10polig (8 Ports)|Datenportstecker]]. Datenportstecker sind mehrfach auf Standard-Boards wie RN-Control, Atmel STK500 und anderen Boards, die im Roboternetz vorgestellt wurden, vorhanden. Somit lassen sich Datenportstecker sehr schnell als Endstufenstecker nutzen und umgekehrt. Beim Entwickeln neuer Boards kann dies noch verbessert werden, indem man die PWM-Ports entsprechend dem Endstufenstecker auch auf den Datenportstecker legt. &lt;br /&gt;
&lt;br /&gt;
 Empfohlene Steckverbindung auf der Platine:&lt;br /&gt;
 Pin 1 Motor 1 IN 1 &lt;br /&gt;
 Pin 2 Motor 1 IN 2 &lt;br /&gt;
 Pin 3 Motor 2 IN 1 &lt;br /&gt;
 Pin 4 Motor 2 IN 2 &lt;br /&gt;
 Pin 5 NC (siehe Anmerkung)&lt;br /&gt;
 Pin 6 Enable Motor1 ein (eventuell PWM) &lt;br /&gt;
 Pin 7 NC  (siehe Anmerkung)&lt;br /&gt;
 Pin 8 Enable Motor2 ein (eventuell PWM) &lt;br /&gt;
 Pin 9 GND &lt;br /&gt;
 Pin 10 Logikspannung 5V &lt;br /&gt;
&lt;br /&gt;
[[Bild:rndefinition_wannenstecker.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Bezugsmöglichkeit für passende Wannenbuchse:&lt;br /&gt;
 z.B. Reichelt (Best.Nr. WSL10G)&lt;br /&gt;
 Conrad-Elektronik (Best.Nr. 742512-12)&lt;br /&gt;
 Robotikhardware.de Kabelset&lt;br /&gt;
 Passender Stecker:&lt;br /&gt;
 z.B. Reichelt: &amp;quot;Pfostenbuchse&amp;quot; (Best.Nr. PFL 10)&lt;br /&gt;
&lt;br /&gt;
====LCD Stecker====&lt;br /&gt;
Für Boards mit wenig Platz oder freien Ports wurde ein sehr kompakter Stecker mit nur 10 Leitungen definiert. Es sind jedoch alle Leitungen vorhanden, um fast alle LCDs im sogenannten 4-Bit-PIN-Mode zu betreiben. &lt;br /&gt;
Bei Verwendung dieses Steckers muss jedoch die Kontrastspannung am LCD festgelegt werden (ein 10k Poti reicht). LCDs mit Beleuchtung können die Versorgungsspannung mit einem Vorwiderstand auch zur Versorgung der Beleuchtung nutzen. Auf diese Weise reicht ein 10-poliges Kabel aus.&lt;br /&gt;
&lt;br /&gt;
Dieser LCD-Stecker ist seit dem August 2005 kompatibel zu dem definierten universellen [[#Datenportstecker 10polig (8 Ports)|Datenportstecker]]. Datenportstecker sind mehrfach auf Standard-Boards wie RN-Control, Atmel STK500 und anderen Boards, die im Roboternetz vorgestellt wurden, vorhanden. Somit lassen sich Datenportstecker sehr schnell als LCD-Stecker oder Endstufenstecker nutzen und umgekehrt. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Empfohlene Steckverbindung auf der Platine:&lt;br /&gt;
 Pin 1 DB7 &lt;br /&gt;
 Pin 2 DB6 &lt;br /&gt;
 Pin 3 DB5 &lt;br /&gt;
 Pin 4 DB4 &lt;br /&gt;
 Pin 5 EN2 (wird nur bei manchen LCDs benötigt)&lt;br /&gt;
 Pin 6 EN &lt;br /&gt;
 Pin 7 R/W &lt;br /&gt;
 Pin 8 RS &lt;br /&gt;
 Pin 9 GND &lt;br /&gt;
 Pin 10 +5V &lt;br /&gt;
&lt;br /&gt;
[[Bild:rndefinition_wannenstecker.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Da auch fast alle LCDs den gleichen 16-poligen Anschluss besitzen, kann alternativ auch eine 16-polige Wannenbuchse vorgesehen werden:&lt;br /&gt;
&lt;br /&gt;
 Pin 1    GND&lt;br /&gt;
 Pin 2    5V&lt;br /&gt;
 Pin 3    Vee Kontrastspannung (0-4V)&lt;br /&gt;
 Pin 4    RS (CS)&lt;br /&gt;
 Pin 5    R/W  (SID)&lt;br /&gt;
 Pin 6    Enable (1)  (SCLK)&lt;br /&gt;
 Pin 7    DB0 (SOD)&lt;br /&gt;
 Pin 8    DB1&lt;br /&gt;
 Pin 9    DB2&lt;br /&gt;
 Pin 10   DB3&lt;br /&gt;
 Pin 11   DB4&lt;br /&gt;
 Pin 12   DB5&lt;br /&gt;
 Pin 13   DB6&lt;br /&gt;
 Pin 14   DB7,MSB&lt;br /&gt;
 Pin 15   LED – Beleuchtung +&lt;br /&gt;
 Pin 16   LED – Beleuchtung -&lt;br /&gt;
&lt;br /&gt;
20 poliger LCD-Anschluss (redefiniert am 27.02.2006)&lt;br /&gt;
Für Grafik-LCD oder Anzeigen bei denen der 16-polige Stecken nicht ausreicht.&lt;br /&gt;
(sollte '''nur in Ausnahmefällen verwendet''' werden)&lt;br /&gt;
 Pin 1 GND &lt;br /&gt;
 Pin 2 5V &lt;br /&gt;
 Pin 3 Vee Kontrastspannung (0-4V) &lt;br /&gt;
 Pin 4 RS (CS) &lt;br /&gt;
 Pin 5 R/W (SID) &lt;br /&gt;
 Pin 6 Enable (1) (SCLK) &lt;br /&gt;
 Pin 7 DB0 (SOD) &lt;br /&gt;
 Pin 8 DB1 &lt;br /&gt;
 Pin 9 DB2 &lt;br /&gt;
 Pin 10 DB3 &lt;br /&gt;
 Pin 11 DB4 &lt;br /&gt;
 Pin 12 DB5 &lt;br /&gt;
 Pin 13 DB6 &lt;br /&gt;
 Pin 14 DB7,MSB &lt;br /&gt;
 Pin 15 Enable2 bei 4 zeiligen Displays für 2. Controller  &lt;br /&gt;
 Pin 16 Reset &lt;br /&gt;
 Pin 17 LED – Beleuchtung + &lt;br /&gt;
 Pin 18 LED – Beleuchtung - &lt;br /&gt;
 Pin 19 CS2 (wird nur bei manchen Displays zusätzlich genutzt) &lt;br /&gt;
 Pin 20 nc (keine fest definierte Verwendung)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Bezugsmöglichkeit für passende '''Wannen''':&lt;br /&gt;
 z.B. Reichelt: &amp;quot;Wannenstecker&amp;quot; (Best.Nr. WSL10G, Best.Nr. WSL16G, Best.Nr. WSL20G)&lt;br /&gt;
 z.B. Conrad: &amp;quot;MESSERL. M GER. LÖTSTIFTEN&amp;quot;(Best.Nr. 742512-12, Best.Nr. 742537-MF, Best.Nr. 742551-MF)&lt;br /&gt;
 Bezugsmöglichkeit für passende '''Kabelbuchsen''':&lt;br /&gt;
 z.B. Reichelt: &amp;quot;Pfostenbuchse&amp;quot; (Best.Nr. PFL 10, Best.Nr. PFL 16, Best.Nr. PFL 20)&lt;br /&gt;
 z.B. Conrad: &amp;quot;PFOSTEN-STECKVERBINDER&amp;quot; (Best.Nr. 702013-MF, Best.Nr. 742198-MF, Best.Nr. 742309-MF&lt;br /&gt;
 Robotikhardware.de: '''Kabelset'''&lt;br /&gt;
&lt;br /&gt;
====Encoder Stecker für 2 externe QuadraturEncoder (Drehzahlmessung)====&lt;br /&gt;
Diese Schnittstelle dient zum Anschluss von 2 Quadratur-Encodern mit zusätzlichem Null-Positions-Eingang (SYNC) . &lt;br /&gt;
Encoder dienen vornehmlich als Wegstreckenzähler oder zur Regelung von Drehzahlen.&lt;br /&gt;
&lt;br /&gt;
Dieser Stecker ist auch kompatibel zu dem definierten universellen [[#Datenportstecker 10polig (8 Ports)|Datenportstecker]]. Datenportstecker sind mehrfach auf Standard-Boards wie RN-Control, Atmel STK500 und anderen Boards, die im Roboternetz vorgestellt wurden, vorhanden. Somit lassen sich Datenportstecker sehr schnell als Encoder-Stecker  nutzen und umgekehrt. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Empfohlene Steckverbindung auf der Platine:&lt;br /&gt;
 Pin 1 ENC 1 A (sollte ein Timer Eingang, z.B. Timer0 sein) &lt;br /&gt;
 Pin 2 ENC 1 B&lt;br /&gt;
 Pin 3 ENC 2 A (sollte ein Timer Eingang, z.B. Timer1 sein) &lt;br /&gt;
 Pin 4 ENC 2 B  &lt;br /&gt;
 Pin 5 NC &lt;br /&gt;
 Pin 6 ENC 1 Sync (sollte Interrupt Eingang sein) &lt;br /&gt;
 Pin 7 NC &lt;br /&gt;
 Pin 8 ENC 2 Sync (sollte Interrupt Eingang sein) &lt;br /&gt;
 Pin 9 GND &lt;br /&gt;
 Pin 10 +5V &lt;br /&gt;
&lt;br /&gt;
[[Bild:rndefinition_wannenstecker.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Bezugsmöglichkeit für passende Wannenbuchse:&lt;br /&gt;
 z.B. Reichelt (Best.Nr. WSL10G)&lt;br /&gt;
 Conrad-Elektronik (Best.Nr. 742512-12)&lt;br /&gt;
 Robotikhardware.de Kabelset&lt;br /&gt;
&lt;br /&gt;
==Platinenmaße / Bohrlöcher==&lt;br /&gt;
RN-Boards haben einheitliche Platinengrößen mit definierten Bohrlöchern. Dies gestattet die platzsparende &amp;quot;Huckepack&amp;quot;-Montage. Diese Standardmaße werden dringend empfohlen, RN-Boards die für einen besonderen Zweck konzipiert werden, welches ein anderes Platinenmaß erfordert (z.B. Adapter, speziell für Gehäuseeinbau etc.) können natürlich davon abweichen. &lt;br /&gt;
&lt;br /&gt;
[[Bild:platine_halbeuro.gif|center]]&lt;br /&gt;
&lt;br /&gt;
Passendes Eagle Script hier http://www.roboternetz.de/phpBB2/dload.php?action=file&amp;amp;file_id=127&lt;br /&gt;
&lt;br /&gt;
[[Bild:platine_euro.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:platine_vierteleuro.gif|center]]&lt;br /&gt;
&lt;br /&gt;
Passendes Eagle Script hier http://www.roboternetz.de/phpBB2/dload.php?action=file&amp;amp;file_id=181&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Weitere Definitionen werden regelmäßig ins WIKI übernommen''&lt;br /&gt;
&lt;br /&gt;
== Logo für Standard ==&lt;br /&gt;
Boards, die den Standard nutzen, kann man auch an folgendem Logo erkennen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:roboternetzstandard.gif|center]]&lt;br /&gt;
&lt;br /&gt;
== Kombinationsmöglichkeiten, die sich ergeben==&lt;br /&gt;
Durch einheitlichen Standard sind beispielsweise folgende Kombinationen denkbar:&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
http://www.roboternetz.de/bilder/boardkombination.gif&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[RN-Slave ID Übersicht]]&lt;br /&gt;
* [[I2C]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Microcontroller]]&lt;br /&gt;
[[Kategorie:Praxis]]&lt;br /&gt;
[[Kategorie:Elektronik]]&lt;br /&gt;
[[Kategorie:Robotikeinstieg]]&lt;br /&gt;
[[Kategorie:Projekte]]&lt;/div&gt;</summary>
		<author><name>Momomu</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=VSR_8000&amp;diff=9767</id>
		<title>VSR 8000</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=VSR_8000&amp;diff=9767"/>
				<updated>2006-12-04T17:41:33Z</updated>
		
		<summary type="html">&lt;p&gt;Momomu: typo (aufläd-&amp;gt;auflädt)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einer der ersten Roboter die über eine Basisstation verfügen die nicht nur den Akku auflädt sondern auch automatisch den Staub und Schmutz des Roboters übernimmt und in einem Filter sammelt. Das Modell scheint kompatibel zu dem Kärcher RC3000.&lt;br /&gt;
[[Bild:siemensvsr8000.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Daten der Basisstation==&lt;br /&gt;
* Entleerung des Roboters durch Basisstation&lt;br /&gt;
* Betriebsspannung: (1-50 Hz) 220 - 240 V &lt;br /&gt;
* Lautstärke: 60 dB (A), Silent Mode 57 dB (A) &lt;br /&gt;
* 2 Liter Filtervolumen &lt;br /&gt;
* Gewicht: 5,8 kg &lt;br /&gt;
&lt;br /&gt;
==Daten des Reinigungsroboters==&lt;br /&gt;
* Akkukapazität: 1,7 Ah &lt;br /&gt;
* Betriebsspannung: 12 V &lt;br /&gt;
* Reinigungsleistung: 15 m²/h &lt;br /&gt;
* Bis zu 60 Minuten Reinigungszeit pro Akkuladung &lt;br /&gt;
* 10-20 Minuten Ladezeit je nach Entladezustand / Vollladung bis maximal 80 Minuten &lt;br /&gt;
* Volumen des Schmutzbehälters: 0,2 Liter &lt;br /&gt;
* Gewicht: 2,0 kg &lt;br /&gt;
* Lautstärke: 54 dB (A) &lt;br /&gt;
* Programme:&lt;br /&gt;
** Dauerreinigung ohne Zeitbegrenzung,&lt;br /&gt;
** zeitabhängige Reinigungsprogramme für 3, 6 oder 9h,&lt;br /&gt;
** Staubsensor steuert die Intensität der Reinigung &lt;br /&gt;
* Automatisches Anfahren der Lade- &amp;amp; Absaugstation zum Laden &amp;amp; Leeren &lt;br /&gt;
* Dauerbetrieb möglich bis Filterwechsel der Basisstation nötig &lt;br /&gt;
* Hinderniserkennung: sensibler Berührungssensor &lt;br /&gt;
* Infrarotgesteuerte Absturzsicherung &lt;br /&gt;
* Umlaufender luftgefüllter Bumper &lt;br /&gt;
* Staubsensor für optimale Reinigungsperformance &lt;br /&gt;
* 10 Stck umweltfreundliche NiMH-Akkuzellen &lt;br /&gt;
* 2 federnd gelagerte Softräder für perfekte Mobilität &lt;br /&gt;
* Schwenkbarer Tragegriff an Basisstation &lt;br /&gt;
* Filterwechselanzeige an Basisstation &lt;br /&gt;
* Ersatzfilter: VZR51AFTZ&lt;br /&gt;
&lt;br /&gt;
==Details und Fotos==&lt;br /&gt;
&lt;br /&gt;
[[Bild:kaercherprinzip.gif|center]]&lt;br /&gt;
&lt;br /&gt;
Die Bilder der Gallery können durch anklicken vergrößert werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:kaercherrobot.jpg&lt;br /&gt;
Image:siemensvsr8000unten.jpg|Siemens von unten&lt;br /&gt;
Image:siemensvsr8000buerste.jpg&lt;br /&gt;
Image:siemensvsr8000basis.jpg|Die Basisstation&lt;br /&gt;
Image:kaerchergrossbildunten.jpg|Kärcher Großaufnahme &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Autor/en==&lt;br /&gt;
[[Benutzer:Frank|Frank]]&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*'''[[Staubsaugerroboter]] - Übersicht'''&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
&lt;br /&gt;
[[Category:Praxis]]&lt;br /&gt;
[[Category:Mechanik]]&lt;/div&gt;</summary>
		<author><name>Momomu</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Fallstricke_bei_der_C-Programmierung&amp;diff=9766</id>
		<title>Fallstricke bei der C-Programmierung</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Fallstricke_bei_der_C-Programmierung&amp;diff=9766"/>
				<updated>2006-12-04T17:02:24Z</updated>
		
		<summary type="html">&lt;p&gt;Momomu: /* Array-Index */ typo (igrdendwo-&amp;gt;irgendwo)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Tippfehler=&lt;br /&gt;
&lt;br /&gt;
Tippfehler können immer passieren. Besonders fies ist es, wenn der Tippfehler nicht zu einer Warnung oder zu einer Fehlermeldung führt, weil der entstandene Code korrekter C-Code ist.&lt;br /&gt;
&lt;br /&gt;
==Ein &amp;lt;tt&amp;gt;;&amp;lt;/tt&amp;gt; zu viel==&lt;br /&gt;
Ein reflexartig eingetippter oder nach Änderungen stehen gebliebener &amp;lt;tt&amp;gt;;&amp;lt;/tt&amp;gt; hat schon so manches &lt;br /&gt;
Programm ausgeknockt:&lt;br /&gt;
 if (a == 0);&lt;br /&gt;
 {&lt;br /&gt;
    /* mach was */&lt;br /&gt;
 }&lt;br /&gt;
Wenn &amp;lt;tt&amp;gt;a == 0&amp;lt;/tt&amp;gt; ist, dann wird &amp;lt;tt&amp;gt;;&amp;lt;/tt&amp;gt; ausgeführt (also im Endeffekt garnichts). Danach kommt der Block, der im &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt; stehen sollte. Der wird immer ausgeführt, denn er gehört nicht mehr zum &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Zuweisung statt Vergleich==&lt;br /&gt;
 if (a = 0)&lt;br /&gt;
 {&lt;br /&gt;
    /* mach was */&lt;br /&gt;
 }&lt;br /&gt;
Zuerst wird &amp;lt;tt&amp;gt;a = 0&amp;lt;/tt&amp;gt; gesetzt und dann überprüft, ob die &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt;-Bedingung erfullt ist. Der Wert ist aber immer &amp;lt;tt&amp;gt;0&amp;lt;/tt&amp;gt;, was ''nicht erfüllt'' bedeutet. Der nachfolgende Block wird nie betreten.&lt;br /&gt;
&lt;br /&gt;
Abhilfe schafft, indem man sich angewöhnt zu schreiben&lt;br /&gt;
 if (0 == a)&lt;br /&gt;
Wenn man dann eine Zuweisung eintippt, gibt's einen Compiler-Fehler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Signal/Interrupt-Name vertippt (avr-gcc)==&lt;br /&gt;
&lt;br /&gt;
 SIGNAL (SIG_OVEFRLOW0)&lt;br /&gt;
 {&lt;br /&gt;
    /* mach was */&lt;br /&gt;
 }&lt;br /&gt;
Nicht alle Compiler-Versionen meckern da. Der [[ISR]]-Code wird nicht in die Interrupt-Tabelle eingetragen. Kommt es zum [[Interrupt]], dann landet man in RESET.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Mangelnde C-Kenntnis=&lt;br /&gt;
&lt;br /&gt;
==Warnung ignoriert==&lt;br /&gt;
&lt;br /&gt;
::&amp;quot;''Wieso soll das Probleme machen? Das ist doch nur eine Warnung!''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Warnungen zur Compile-Zeit werden gerne zu Fehlern zur Laufzeit. Letztere sind deutlich schwerer zu finden, als angewarnten Code zu korrigieren.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void foo (long*);&lt;br /&gt;
&lt;br /&gt;
void bar (int *p)&lt;br /&gt;
{&lt;br /&gt;
    foo (p+1); &lt;br /&gt;
    // Was soll das sein?!&lt;br /&gt;
    // ((long*) p) + 1       oder  &lt;br /&gt;
    // (long*) (p + 1)&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; gcc -c -o prog.o prog.c&lt;br /&gt;
&lt;br /&gt;
prog.c: In function `bar':&lt;br /&gt;
prog.c:5: warning: passing arg 1 of `foo' from incompatible pointer type&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Array-Index==&lt;br /&gt;
&lt;br /&gt;
Informatiker am Bahnhof:&lt;br /&gt;
:''&amp;quot;0, 1, 2, ... Wo ist mein dritter Koffer?!&amp;quot;''&lt;br /&gt;
Gleiches gilt für Arrays:&lt;br /&gt;
 #define NUM 10;&lt;br /&gt;
 int a[NUM]; // für die N Werte a[0] ... a[N-1]&lt;br /&gt;
Ein Zugriff auf &amp;lt;tt&amp;gt;a[N]&amp;lt;/tt&amp;gt; greift irgendwo hin. &lt;br /&gt;
Wahlweise liest man Schrott oder überschreibt andere Daten, die in der Nähe liegen, und&lt;br /&gt;
plötzlich seltsame Werte enthalten.&lt;br /&gt;
&lt;br /&gt;
==Bitweise vs. Logische Operatoren==&lt;br /&gt;
&lt;br /&gt;
Die Operatoren AND, OR und NOT gibt es in C in zwei Ausprägungen&lt;br /&gt;
;bitweise: Die Operatoren &amp;lt;tt&amp;gt;^&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;|&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;&amp;amp;&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;~&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;|=&amp;lt;/tt&amp;gt;,  &amp;lt;tt&amp;gt;^=&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;&amp;amp;=&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;|=&amp;lt;/tt&amp;gt; operieren bitweise. Der entsprechende Operator wird also auf alle Bits des Wertes parallel angewandt und das Ergebnis für ein Bit ist unabhängig vom Inhalt der anderen Bits.&lt;br /&gt;
;logisch:  Die Operatoren &amp;lt;tt&amp;gt;||&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;&amp;amp;&amp;amp;&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;!&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;&amp;amp;&amp;amp;=&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;||=&amp;lt;/tt&amp;gt; operieren auf dem ganzen (int) Wert und berücksichtigen nur, ob der Wert 0 (false) oder ungleich 0 (true) ist.&lt;br /&gt;
Dementsprechend liefert &amp;lt;tt&amp;gt;&amp;amp;&amp;amp;&amp;lt;/tt&amp;gt; i.d.R. ein anderes Ergebnis als &amp;lt;tt&amp;gt;&amp;amp;&amp;lt;/tt&amp;gt;:&lt;br /&gt;
 if (a &amp;amp;&amp;amp; b) // erfüllt, wenn a!=0 und b!=0 &lt;br /&gt;
 if (a &amp;amp; b)  // erfüllt, wenn in a und b an der gleichen Stelle ein Bit gesetzt ist&lt;br /&gt;
Ein Verwechseln bzw. unkorrektes Einsetzen der Operatoren gibt also ein falsches Programm.&lt;br /&gt;
&lt;br /&gt;
==TRUE ist nicht 1==&lt;br /&gt;
&lt;br /&gt;
Da C die Begriffe TRUE und FALSE eigentlich nicht kennt, wurde schon öfter beobachtet, daß folgendes definiert wurde: &lt;br /&gt;
 #define TRUE 1&lt;br /&gt;
 #define FALSE 0&lt;br /&gt;
solange man damit nur Schalter setzt und abfragt, ist dagegen nichts zu sagen. &lt;br /&gt;
 a = TRUE; b = FALSE;&lt;br /&gt;
 if ( (a == TRUE) &amp;amp;&amp;amp; (b == FALSE)) {..&amp;quot;this is true&amp;quot;..} &lt;br /&gt;
wenn man aber dann schreibt&lt;br /&gt;
 if ( (a &amp;amp; b) == TRUE)  {..&amp;quot;this is true&amp;quot;..}&lt;br /&gt;
kann man einen herbe Enttäuschung erleben. Man müßte für ein richtiges Ergebnis schreiben&lt;br /&gt;
 if ( (a &amp;amp; b) != FALSE)  {..&amp;quot;this is true&amp;quot;..}&lt;br /&gt;
Damit ist aber eine gute Lesbarkeit endgültig dahin.&lt;br /&gt;
&lt;br /&gt;
Besser sind Definition wie&lt;br /&gt;
 #define FALSE (0!=0)&lt;br /&gt;
 #define TRUE  (0==0)&lt;br /&gt;
denn damit gilt einerseits, daß für alle boolschen Werte einschliesslich dieser Konstanten der&lt;br /&gt;
Zusammenhang &amp;lt;tt&amp;gt;x = !!x&amp;lt;/tt&amp;gt; besteht. &lt;br /&gt;
Mit der allerersten Definition hat man das unerwünschte Ergebnis &amp;lt;tt&amp;gt;TRUE != !FALSE&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Andererseits kann man direkt gegen diese Konstanten vergleichen:&lt;br /&gt;
 a = (x &amp;lt; y);&lt;br /&gt;
 ...&lt;br /&gt;
 if (a == TRUE) // oder die 'klassische' Variante: if (a)&lt;br /&gt;
&lt;br /&gt;
==Ein , anstatt . in Konstante==&lt;br /&gt;
&lt;br /&gt;
In C sowie im angloamerikanischen Sprachraum werden Dezimalbrüche mit einem &amp;lt;tt&amp;gt;.&amp;lt;/tt&amp;gt; (Punkt) geschrieben und nicht wie im Deutschen mit einem &amp;lt;tt&amp;gt;,&amp;lt;/tt&amp;gt; (Komma): &lt;br /&gt;
 float pi;&lt;br /&gt;
 pi = 3,14;         // *AUTSCH* soll wohl heissen 3.14&lt;br /&gt;
Die zweite Zeile besteht aus zwei durch ein Komma getrennten Anweisungen, so daß das ganze&lt;br /&gt;
etwa gleichbedeutend ist mit&lt;br /&gt;
 float pi;&lt;br /&gt;
 pi = 3;&lt;br /&gt;
 14;&lt;br /&gt;
Jedenfalls ist es korrekter C-Code!&lt;br /&gt;
Die &amp;lt;tt&amp;gt;14;&amp;lt;/tt&amp;gt; ist ein Ausdruck, der nicht weiter gebraucht wird und daher wegfällt, da&lt;br /&gt;
er im Gegensatz zu einer void-Funktion keine Wirkung hat.&lt;br /&gt;
Man rechnet also mit dem Wert&amp;amp;nbsp;3 für &amp;lt;math&amp;gt;\pi&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Das falsche Komma hat auch schon so manchen ebay-Freak aufs Kreuz gelegt...&lt;br /&gt;
&lt;br /&gt;
==Führende 0 in Konstanten==&lt;br /&gt;
&lt;br /&gt;
In C kennzeichnet eine führende 0 bei einer Zahlenkonstante, &lt;br /&gt;
daß die Zahl oktal dargestellt ist. Somit ist 010 nicht gleich 10.&lt;br /&gt;
 if (a == 030) // ist a gleich 24?&lt;br /&gt;
&lt;br /&gt;
=Nicht-atomarer Code=&lt;br /&gt;
Verwendet man in einem Programm [[IRQ|IRQs]] ([[Interrupt|Interrupts]]) und ändert in der [[ISR]] (Service Routine) ein Datum (Variable, SFR, ...), dann wird diese Änderung möglicherweise überschrieben, wenn die IRQ zu einem ungünstigen Zeitpunkt auftritt. &lt;br /&gt;
&lt;br /&gt;
Ein ausführlicheres Beispiel, das zeigt, was passieren kann, findet sich im Artikel [[avr-gcc]] im Abschnitt &amp;quot;[[avr-gcc#Zugriff auf einzelne Bits|Zugriff auf einzelne Bits]]&amp;quot;. Ein weiteres Beispiel ist das Lesen, Schreiben oder Testen einer mehrbytigen Variable:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int volatile i;&lt;br /&gt;
   ...&lt;br /&gt;
   if (0 == i)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Weil &amp;lt;tt&amp;gt;i&amp;lt;/tt&amp;gt; länger als 1 Byte ist, kann es je nach Architektur nicht in einem Befehl gelesen werden;&lt;br /&gt;
daher kann während des Lesens eine IRQ auftreten, in deren ISR der Wert von &amp;lt;tt&amp;gt;i&amp;lt;/tt&amp;gt; möglicherweise &lt;br /&gt;
verändert wird. Der obige Code könnte etwa so assembliert werden (hier mit [[avr-gcc]]):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   ; i wird vom SRAM in das Registerpaar r24:r25 geladen&lt;br /&gt;
   ; low-Teil laden&lt;br /&gt;
   lds r24,i&lt;br /&gt;
   ; high-Teil laden&lt;br /&gt;
   ; wenn hier eine IRQ zuschlägt, in der i verändert wird, ist der Registerinhalt korrupt&lt;br /&gt;
   lds r25,(i)+1&lt;br /&gt;
   or r24,r25&lt;br /&gt;
   brne ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Natürlich können auch komplexere Datenstrukturen von diesem Phänomen betroffen sein.&lt;br /&gt;
Besonders unangenehm an dieser Klasse von Fehlern ist, daß sie nur sporadisch auftauchen&lt;br /&gt;
und man sie daher selbst mit einem guten Debugger sehr schlecht orten kann, da die zugehörige&lt;br /&gt;
Codestelle fast immer korrekt abgearbeitet wird.&lt;br /&gt;
&lt;br /&gt;
Eine Möglichkeit dem zu begegnen ist, den ganzen betroffenen Block ununterbrechbar (atomar) zu machen.&lt;br /&gt;
Wieder ein Beispiel für avr-gcc:&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;
 ...&lt;br /&gt;
    {{ccomment|ein lokale(!) Variable, die das Status-Register und }}&lt;br /&gt;
    {{ccomment|insbesondere das im folgenden geänderte I-Flag merkt }}&lt;br /&gt;
    {{ccomment|Falls man an der Codestelle immer weiß, daß IRQs }}&lt;br /&gt;
    {{ccomment|aktiviert sind, kann man die zu atomisierende Sequenz }}&lt;br /&gt;
    {{ccomment|auch in cli()...sei() einschachteln }}&lt;br /&gt;
    {{ccomment|Falls IRQs global deaktiviert sind brauch man natürlich }}&lt;br /&gt;
    {{ccomment|keine besonderen Vorkehrungen zu treffen, da dann aller Code }}&lt;br /&gt;
    {{ccomment|atomar ist. }}&lt;br /&gt;
    unsigned char sreg = SREG;&lt;br /&gt;
 &lt;br /&gt;
    {{ccomment|Interrupts global deaktivieren (I-Flag &amp;amp;#61; 0) }}&lt;br /&gt;
    cli();&lt;br /&gt;
 &lt;br /&gt;
    if (0 == i)&lt;br /&gt;
    {&lt;br /&gt;
        i = 1;&lt;br /&gt;
        {{ccomment|IRQs sobald als möglich wieder zulassen }}&lt;br /&gt;
        {{ccomment|(I-Flag wieder herstellen) }}&lt;br /&gt;
        SREG = sreg;&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        {{ccomment|IRQs so bald als möglich wieder zulassen }}&lt;br /&gt;
        {{ccomment|(I-Flag wieder herstellen) }}&lt;br /&gt;
        SREG = sreg;&lt;br /&gt;
        return;&lt;br /&gt;
    }&lt;br /&gt;
    ...&lt;br /&gt;
Oder je nach Programmstruktur sichert man den Wert, z.B. in eine lokale Variable oder deaktiviert nur selektiv die kritischen Interrupts, also solche, die Einfluss auf die kritischen Daten nehmen.&lt;br /&gt;
&lt;br /&gt;
= Weitere Fallstricke =&lt;br /&gt;
* [[Warteschleife]]&lt;br /&gt;
&lt;br /&gt;
= Siehe auch =&lt;br /&gt;
* [[C-Tutorial]]&lt;br /&gt;
* [[avr-gcc]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;br /&gt;
[[Kategorie:Quellcode C|!]]&lt;br /&gt;
[[Kategorie:Software]]&lt;/div&gt;</summary>
		<author><name>Momomu</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Sensoren&amp;diff=9765</id>
		<title>Sensoren</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Sensoren&amp;diff=9765"/>
				<updated>2006-12-03T21:05:56Z</updated>
		
		<summary type="html">&lt;p&gt;Momomu: /* Weggeber */ typo (Odemetrie-&amp;gt;Odometrie)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Sensoren==&lt;br /&gt;
Jeder, der sich einen Roboter baut wird schnell zu dem Punkt kommen, wo er möchte dass sein Roboter „sieht“. &lt;br /&gt;
Sensoren müssen hauptsächlich drei Aufgaben erledigen. Die ersten beiden sind Kollisionschutz und Navigation. Diese unterscheiden sich in der Funktionsweise vor allem in der Interpretation im Programm und im Aufbau am Roboter. Die dritte Art sind Sensoren, die ihn mit der Umwelt in Kontakt treten lassen. &lt;br /&gt;
&lt;br /&gt;
Grundsätzlich müssen alle Sensoren diese Merkmale aufweisen: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Passiv oder Aktiv?=== &lt;br /&gt;
Manche Sensoren (z.B. IR) brauchen eine aktive Quelle (hier die IR LED) die dann aber einen Mehrverbrauch an Strom bedeutet. Passive Sensoren wie Taster bekommen ihre Signale aus der Umwelt (hier Stoß). Zu ihnen zählen die meisten Umweltgrössen wie Temperatur und Feuchtigkeit, Licht und Vibration oder Kraft (Stoß). &lt;br /&gt;
&lt;br /&gt;
===Einfachheit===&lt;br /&gt;
Ein Sensor muss einfach sein. Denn was nützt es uns wenn wir den Sensor nicht kalibrieren können oder der Aufbau zu schwer ist? Doch Sensoren, die nicht in einem einzigen Gehäuse untergebracht sind, sind äußerst selten. Dann besteht nur noch der Wunsch, dass die meist zwei drahtigen Sensoren auch einfach anzuschließen sind. Deswegen ist es manchmal von Vorteil, sich vorgefertigte Anschlüsse zu kaufen, anstatt diese in mühsamer Kleinarbeit selber zu erstellen. &lt;br /&gt;
&lt;br /&gt;
===Auswertbarkeit in Echtzeit===&lt;br /&gt;
Alle Sensoren, die zunächst in Frage kommen, basieren auf dem Prinzip des Spannungsteilers. Das heißt, es wird eine Urspannung eingegeben und eine Teilspannung kommt heraus. Diese Differenz können wir erfassen und mittels Wertetabelle im Programm auswerten. Aber durch Störeinflüsse in der Umwelt kann es vorkommen, das die berechneten Werte abweichen. Jeder Messtechniker weiß, dass allein die Messung an sich schon das Messergebnis verfälscht.&lt;br /&gt;
&lt;br /&gt;
===Robustheit===&lt;br /&gt;
Wir werden am Anfang sicher nicht unseren Roboter in einer Morastlandschaft einsetzten aber auch schon ein Stoss gegen die Wand hat schon manchen Roboter ausgenockt. Schon normaler Hausstaub kann und wird Linsen trüben und Messwerte verschlechtern. Das heisst wenn ein Sensor gekauft wird muss er der Situation angemessen sein. &lt;br /&gt;
&lt;br /&gt;
==Aufgaben für Roboter==&lt;br /&gt;
Natürlich muss man bevor der Roboter steht schon im klaren sein was seine Aufgaben sind. Auch wenn diese so weitgefasst sind wie „Karte erstellen und Raumüberwachung dabei einer Linie folgen“. Jeder Sensor braucht Platz und verringert die Einsatzdauer. Nicht jeder Sensor ist für jede Arbeit gedacht und zum Schluss spielt das Geld eine Rolle, denn mancher Sensor kostet schon 30 Euro. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sensoren für den Kollisionsschutz===&lt;br /&gt;
Die wichtigsten Sensoren auf einen Roboter sind die Kollisionssensoren. Diese schützen den Roboter vor Zusammenstößen und Abstürzen in einen Schacht. Dabei kann man diese Gruppe auf direkte und indirekte Sensoren unterteilen. &lt;br /&gt;
&lt;br /&gt;
====Direkte Sensoren====&lt;br /&gt;
Sie sollen den Zusammenstoß nicht verhindern sondern dabei das Signal ausgeben. In letzter Zeit werden diese Sensoren noch gepolstert, damit beim Zusammenstoß keine zu großen Kräfte auftreten. &lt;br /&gt;
Am einfachsten geht dies mit einem Taster, der am Chassis befestigt ist. Da dies sehr kurze Reaktionszeiten mit sich bringt, haben einige Roboter Fühler um diese Zeit zu verlängern. Eine weitere Methode ist es, eine Stoßstange zu entwickeln, die dann an den Tastern (direkt oder indirekt) befestigt sind. Dabei kann diese Stoßstange auch gepolstert sein. Eine nun neuere Methode ist es, Luftschläuche zu verwenden. Die dämpfen den Stoß ab und sind dabei an einem Drucksensor angeschlossen, der das Zusammenquetschen erkennt und ein Signal ausgibt. &lt;br /&gt;
====Indirekte Sensoren====&lt;br /&gt;
Sie sollen helfen, den Zusammenstoß zu vermeiden um am besten noch Zeit zu geben, einen optimalen Weg am Hindernis herum zu finden. Diese haben ein größeres Problem, da sie meist keine 360 Grad „Rundumsicht“ garantieren können. Das bedeutet, dass die meisten Roboter diesen Typ der Sensoren in Fahrtrichtung eingebaut haben, um diese Aufgabe zu erfüllen. Was auch effizient ist, denn solche Sensoren sind sehr teuer und müssen ständig vom Programm überwacht werden. &lt;br /&gt;
&lt;br /&gt;
 Diese Sensoren werden bei neueren Autos auch als Parkhilfe angeboten. &lt;br /&gt;
&lt;br /&gt;
==Probleme==&lt;br /&gt;
Das Problem der Sensoren ist ihre räumliche Begrenztheit. Denn schon 5 Meter sind sehr lang. Aber auf der anderen Seite wollen die meisten eh keine 5 Meter „vorausschauen“. &lt;br /&gt;
[[Sensorarten|Es gibt mehrere Typen]]. Am bekanntesten sind die [[Sensorarten#optische_Sensoren|IR Sensoren]]. Diese sind gut für lange Distanzen aber haben das Problem, dass sie gebündelt sind und somit Zwischenräume schwer abdecken können. Besser sind dort [[Sensorarten#Ultraschall_Sensoren|Ultraschallsensoren]], die aber teurer sind. Etwas in der Nische ist das Radar – System; es ist ein sehr aufwendiges und teueres System ist und die Auswertung der Daten ist komplex. Es bietet aber den besten Schutz gegen Zusammenstöße, da dieses System nicht auf einen Punkt gerichtet ist sondern die ganze Fläche abspannt. &lt;br /&gt;
&lt;br /&gt;
Probleme beider Systeme: &lt;br /&gt;
Ist die Höhe. Leider ist unser Roboter dreidimensional und bewegt sich zweidimensional. Das heißt, es spannen sich mehrere Ebenen auf die überwacht werden wollen. Denn wenn dies nicht geschieht, stößt der Roboter gegen eine Tischplatte, weil er diese nicht erkannt hat oder gegen ein Hindernis das unter den Sensoren hindurch rutscht. &lt;br /&gt;
Deswegen bemüht man sich, den Roboter so flach wie möglich zu halten und das Fahrgestell so zu bauen, dass man flache Hindernisse überfahren kann. Es hilft also, darüber sich vorher Gedanken zu machen. &lt;br /&gt;
Je nachdem wo der Roboter zum Einsatz kommt tun sich manchmal Abgründe auf (z.B. Tischplatte). Diese müssen erkannt werden. Deswegen ist es erforderlich, Abstandssensoren noch unten zu richten um einen Absturz zu vermeiden. Dabei sollte man indirekte Sensoren einsetzten, denn was nützt es wenn der Taster erkannt hat das nun ein Loch da ist aber der Roboter bis er reagiert schon auf dem Boden aufschlägt? &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Navigation==&lt;br /&gt;
Nun gibt es hier viele Arten wie die Navigation erfolgen kann. Ich tue 2 Felder auf. Wenn unser Freund neue Welten erkunden soll oder in einen Spiel gegen eine Mannschaft antritt dann braucht er andere Sensoren, als wenn er routiniert Wege abfahren soll obwohl sich die Felder überschneiden. &lt;br /&gt;
&lt;br /&gt;
Alle Navigationssysteme bauen auf 2 Quellen der Navigation auf: [[Sensorarten#Drehgeber_Sharp_GP1A30|inkrementale Weggeber]] und Absolutwertgeber. &lt;br /&gt;
&lt;br /&gt;
Dies ist das größte Problem wenn ihr einen Bot bauen wollt. Denn ihr habt das Problem nicht was euer Bot hat, euch ist das zu abstrakt aber wenn ihr das nicht begreift wird er nie dort hinkommen wo er soll. Ihr habe Augen die euch ohne zu denken den Absolutwert geben, wie weit der Abstand des Cursors eurer Maus zum Startbutton jetzt ist. Die Maus hat einen Weggeber intern, doch ihr Kontrolliert ständig ob die Werte korrekt sind und korrigiert diese falls nötig! Das kann euer Roboter nicht. Das heisst wenn eine Achse sich schwere dreht als die andere wird er ständig in einen Kreis fahren. Ohne das ihr das in den Messwerten sehen könnt. &lt;br /&gt;
&lt;br /&gt;
==Weggeber==&lt;br /&gt;
Die [[Sensorarten#Drehgeber_Sharp_GP1A30|Weggeber]] existieren meistens in Form der Odometrie. Das heisst es wird erfasst die Drehung der Antriebsachse direkt. Das kann erfolgen mit einem Schrittmotor ( wobei dies indirekt ist da ihr hier die Werte vorgibt) oder mit einer Lochscheibe die dann die Schritte zählt mittels Lichtschranke. Oder mit Tastern und einem Zahnrad. &lt;br /&gt;
Nicht zur Odometrie aber auch Weggeber sind „mitlaufende“ Räder die Zählen (z.B eine Kugelmaus) oder aber eine optische Maus. Oder ein Seil das ihr von einen Lotpunkt mitzieht. &lt;br /&gt;
&lt;br /&gt;
Diese Weggeber sind ungenau sind verfälschen immer das Ergebnis. Wenn ihr den Roboter über längere Strecken fahren lässt braucht ihr den 2 Typ um ihn neu einzukalibrieren. &lt;br /&gt;
&lt;br /&gt;
===Absolutwertgeber:===&lt;br /&gt;
Diese Methode sagt euch, wo auf einer Ebene ihr euch exakt befindet in X und Y Achse aufgesplittet. &lt;br /&gt;
&lt;br /&gt;
Es gibt mehre Methoden die ich ohne besondere Reihenfolge aufliste: &lt;br /&gt;
&lt;br /&gt;
====Peilung====&lt;br /&gt;
Das [[Sensorarten#Sharp_GP2D12|IR-Abstandsmessungsprinzip]] funktioniert so das sich ein Turm auf dem Roboter befindet. Diese scannen den Raum ab. mittels weiterer Sensoren ([[Sensorarten#Kompa.C3.9F|Kompasssensoren]]). Nun kann man berechnen wo im Raum man sich befindet. Nur bedingt einsetzbar, da ja Objekte die Wand verdecken. &lt;br /&gt;
Das Barkensystem funktioniert nach dem Einpeilungsprinzip. Das heißt, in einen Raum kennen wir mindestens 2 Punkte (Baken) die dann mit dem Roboter ein Dreick/Ebene aufspannen. Mittels Berechnungen kann dann der unbekannte Roboter -Punkt exakt bestimmen. Es gibt verschiede Methoden doch hier die Wichtigsten: &lt;br /&gt;
&lt;br /&gt;
* Aktive Bake, heisst die Baken senden ein Signal aus das dann vom Roboter empfangen wird ( z.B. IR). Das ist die einfachste Methode wenn auch nicht die eleganteste. Denn dadurch muss sich die Technik über den Roboter hinaus in den Raum ausbreiten und das wiederum kollidiert mit dem Prinzip von Autonomer Roboter. Die meisten Absolutwertgeber mit Barken gehen diesen Weg. &lt;br /&gt;
&lt;br /&gt;
* Passive Barke, heisst das diese nur ein Signal zu dem Roboter zurücksendet das dieser ausstrahlt. Das Problem ist, dass bei diesem System der Aufwand auf dem Roboter höher ist und das der Baterieverbauch grösser wird. Aber wir haben dann auch einen wirklichen autonomen Roboter. &lt;br /&gt;
&lt;br /&gt;
-Aus dem Alltag- &lt;br /&gt;
Es gibt Veranstaltungen /Wettkäpfe die nur eine Bake zulassen. Diese soll dabei nicht helfen um herauszufinden wo sich der Roboter um Raum befindet sonder nur, wo er hin soll bzw. wo sein „Feind“ ist. &lt;br /&gt;
&lt;br /&gt;
====Das Bodenmarkierungsprinzip====&lt;br /&gt;
wird meistens eingesetzt, wenn der Roboter sich nur in einem bestimmten Feld oder auf einer bestimmten Bahn aufhalten soll. Dabei werden passive oder aktive Elemente in dem Boden eingelassen, die dann von Onboard Sensoren wahrgenommen werden. Beispiel hierfür sind Rasenmäherbots oder autonome Fahrzeuge in Werkshallen. &lt;br /&gt;
&lt;br /&gt;
====[[GPS]]====&lt;br /&gt;
Neben dem Brakensystem existiert noch ein raumunabhängiges System das [[GPS]]. Dieses ist aber sehr aufwendig. Denn es bezieht Signale (3 Zeitsignale von Satelliten die dann verglichen werden) und ist meist draussen besser zu empfangen. Auch ließ das US Militär das Signal verschlechtern so das es nur sehr ungenau war. Heutzutage ohne Störsignal schafft man auch nur Genauigkeiten von einigen Metern. Wenn man genauere Werte braucht menötigt man mindestens 2 Empfänger und muss diese miteinander vergleichen. Einer der Empfänger steht dann normalerweise an einem festen Punkt. Das nennt sich Differential GPS (DGPS). Näheres unter dem Artikel [[GPS]].&lt;br /&gt;
&lt;br /&gt;
Weitere Methoden sind nicht zu gebrauchen oder sind nur Abarten der hier erwähnten Methoden.&lt;br /&gt;
&lt;br /&gt;
===Umweltsensoren===&lt;br /&gt;
Sie sind meist erst in der letzten Ausbaustufe beim Roboter interessant und sollen helfen unseren Freund sich in der Umwelt zurechtzufinden. &lt;br /&gt;
&lt;br /&gt;
Dabei gibt es Interaktionsensoren, wie Drucksensoren oder Mikrofone. Mikrofone lassen dem Roboter erkennen ob Geräusche vorhanden sind. Richtig: ob nicht wo. Dazu muss das Mikrofon entweder gerichtet sein und sich in dem im Raum drehen können oder aber in vier Ecken starr auf dem Roboter befinden. &lt;br /&gt;
&lt;br /&gt;
Wenn der Roboter eine Solarzelle hat dann braucht er Lichtsensoren die ihn zur grössten Lichtquelle bringt. &lt;br /&gt;
&lt;br /&gt;
====Rauchsensoren==== lassen den Roboter zwar erkennen das sich Rauch im Raum befindet. Doch was nützt es wenn dieser Rauch erst in einer Höhe von 40 cm erkannt wird? Um z.B. Räume auf Giftgas zu testen braucht es einen Gasmesser. Beide Sensoren arbeiten unterschiedlich. Während Rauchmelder alle Partikel ohne Ausnahme erkennt haben Gasmesser nur eine begrenzte Sammlung an zu erkennenden Gasen. &lt;br /&gt;
&lt;br /&gt;
====Temperatur Sensoren==== ermöglichen dem Bot die Temperatur zu messen um z.B. aus der Sonne zu gehen, oder um einzelne Bauelemente vor Überhitzung zu schützen.&lt;br /&gt;
&lt;br /&gt;
==Nachsatz==&lt;br /&gt;
Es gibt dutzende Sensoren und Sensorenanlangen die unseren Bot helfen sich in der Umwelt zurechtzufinden. Je mehr man hat umso mehr kann man mit diesen spielen, um zb. Gewohnheiten zu programmieren. Aber wenn man seinen Bot auf eine Aufgabe ausrichtet sind diese die das i-Tüpfelchen bringen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Autor: honkitonk / Wiki Übernahme Picnick''&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[Sensorarten]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Sensoren]]&lt;/div&gt;</summary>
		<author><name>Momomu</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Sensorarten&amp;diff=9764</id>
		<title>Sensorarten</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Sensorarten&amp;diff=9764"/>
				<updated>2006-12-03T20:57:49Z</updated>
		
		<summary type="html">&lt;p&gt;Momomu: /* PIR Passiv Infrarot Sensoren */ typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Welche Sensorarten gibt es==&lt;br /&gt;
Damit sich ein Roboter in seiner Umgebung bewegen kann, ohne an Hindernisse anzustoßen, und damit er ein Ziel finden und ansteuern kann, muß er irgendwie seine Umwelt &amp;quot;wahrnehmen&amp;quot;. &lt;br /&gt;
Hauptanwendung für diese Informationen aus der Umwelt ist die [[Navigation]]&lt;br /&gt;
Auf dieser Seite werden die wichtigsten Sensorarten und damits praktischer wird auch zugleich die populärsten Robotik- und Modellbau-Sensortypen vorgestellt. Auch die Pinbelegung und Anschlussmöglichkeiten dieser Sensoren werden kurz erläutert.&lt;br /&gt;
&lt;br /&gt;
==Bumpers==&lt;br /&gt;
Als Bumpers bezeichnet man eine Art Stoßstange, die einen Mikro-Switch auslöst. &lt;br /&gt;
&lt;br /&gt;
[[Bild:microschalter.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Die Auswertung erfolgt am besten digital an einem Pin mit Pull-up Widerstand. Man kann den Eingang pollen (abfragen), aber auch einen Interrupt auslösen lassen. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Whiskers (Fühler)==&lt;br /&gt;
Das sind flexible Kunststoff-Streifen von ca. 10 cm Länge, eigentlich für Datenhandschuhe vorgesehen. Aber man kann sie auch als Fühler einsetzen, und daher auch für die Kollisions-Sensorik verwenden. Beim Verbiegen steigt der Widerstand an.  &lt;br /&gt;
&lt;br /&gt;
[[Bild:flexs_200.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Um zu messen, wird mit einem zweiten Widerstand ein Spannungsteiler aufgebaut, der dann mit einem Analog-Eingang einen Grad der Verbiegung erkennen läßt. Sie werden häufig auch Flexsensoren genannt. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Incremental-Geber==&lt;br /&gt;
Dienen zur Erfassung von Drehzahl bzw. der Messung von Wegstrecken&lt;br /&gt;
===Drehgeber Sharp GP1A30 und GP1A38===&lt;br /&gt;
&lt;br /&gt;
[[Bild:gp1a30.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Beim Sharp GP1A30 und GP1A38 handelt es sich um Gabellichtschranken mit inkrementaler Drehgeberfunktion. Beide sind im Grunde von den Anschlüssen identisch, lediglich kann GP1A38 noch etwas höhere Drehzahlen messen. Im Gegensatz zu herkömmlichen Gabellichtschranken können mit dieser sowohl Drehzahl als auch Drehrichtung ermittelt werden. Notwendig sind dafür nur 2 digitale Ports. Verzichtet man auf die Auswertung der Drehrichtung, reicht nur ein Port.&lt;br /&gt;
Der Sensor hat den Vorteil das die Signale bereits TTL kompatibel sind und direkt an ein Controllerboard angeschlossen werden können. Ein Beispielprogramm zu [[RN-Control]] findet man hier&lt;br /&gt;
&lt;br /&gt;
* [[Beispiel Drehzahlmessung mit RN-Control]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:GP1A30.gif|center]]&lt;br /&gt;
&lt;br /&gt;
Die Auswertung inkrementaler Drehgeber ist recht einfach. Ein Ausgang liefert einen Impuls pro Markierung (Scheibe auf der Welle). Prüft man bei jedem Impuls (Flanke) noch gleichzeitig den aktuellen Pegel des zweiten Ausganges, so kann daraus die Drehrichtung abgeleitet werden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Signalverlauf an den Sensorausgängen ist phasenversetzt:&lt;br /&gt;
&lt;br /&gt;
[[Bild:inkremental1.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:drehgeber_an_rncontrol.gif|center|framed|Beispielschaltung wenn man lediglich die Drehzahl ohne Drehrichtung auswerten möchte. Als Widerstand hat sich 330 Ohm als gut erwiesen.]]&lt;br /&gt;
&lt;br /&gt;
==Optische Sensoren==&lt;br /&gt;
===Helligkeit=== &lt;br /&gt;
Die Hauptanwendung solcher Sensoren ist, den hellsten Fleck im Raum zu finden.&lt;br /&gt;
Dies ist auch Teil vieler Roboterwettbewerbe. (Robo Callenge (2002 sic!), 'Ein Platz an der Sonne')&lt;br /&gt;
&lt;br /&gt;
Solche Sensoren können einfache [[LDR]]s oder [[Photodioden]] bzw. [[Phototransistoren]] sein.&lt;br /&gt;
LDRs haben den Vorteil, dass sie relativ hoch aussteuern, der große Nachteil ist aber, dass diese Sensoren ziemlich Wärmeempfindlich und etwas träge.&lt;br /&gt;
Photodioden und Phototransistoren haben den Vorteil, dass sie sehr genau sind, aber nicht besonders hoch aussteuern. Diese sollte man evtl. über einen OpAmp verstärken.&lt;br /&gt;
&lt;br /&gt;
[[Bild:fotowiderstand.jpg|center|framed|Ein typischer Fotowiderstand]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:SFH300.jpg|center|framed|SFH300, ein typischer Phototransistor]]&lt;br /&gt;
&lt;br /&gt;
Die Suche nach dem hellsten Fleck im Raum ist wie ich finde ein gutes Einsteigerthema!&lt;br /&gt;
&lt;br /&gt;
===CNY70===&lt;br /&gt;
&lt;br /&gt;
Der CNY70 ist ein Foto-Reflex Optokoppler. In einem würfelförmigem Gehäuse befindet sich eine Infrarot LED als Sender und ein Infrarot Fototransistor als Empfänger. Damit kann auf kurze Entfernung (wenige Millimeter) das reflektierte Licht der IR-LED durch den IR-Fototransistor gemessen werden.  &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Bild:cny70.jpg|thumb|200px|CNY70]]&lt;br /&gt;
|[[Bild:cny70_pinout.jpg|framed|CNY70 Vishay Pinout]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Achtung:''' Es existiert auch noch ein CNY70 von Temic mit anderer Pinbelegung, dort ist der Fototransistor verdreht eingebaut.&lt;br /&gt;
&lt;br /&gt;
Der CNY70 eignet sich für eine Vielzahl von Sensoren. Z.B. als Liniensensor, Radencoder, Abgrunddetektor und Lichtschranke. Allerdings ist er empfindlich gegen Streulicht, da  das Licht der IR-LED nicht moduliert ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:cny70_schem1.gif|thumb|center|600px|CNY70 als Liniensensor]]&lt;br /&gt;
&lt;br /&gt;
Der Liniensensor benötigt 2 A/D Wandler Eingänge des Prozessors. Die CNY70 sollten so nah wie möglich in Bodennähe angebracht sein (1..3mm). Der P-Kanal FET BS250 dient als Schalter für die IR LEDs des CNY70. Damit spart man Strom, wenn der Liniensensor nicht benötigt wird. Allerdings wird dafür ein weiterer Prozessor Ausgang als Enable Signal benötigt. HIGH Pegel schaltet die Sensor LEDs aus, LOW Pegel ein.  Wird keine Enable Funktion gewünscht, läßt man den BS250 einfach weg und hängt die Vorwiderstände der Sensor LEDs direkt an VCC.&lt;br /&gt;
&lt;br /&gt;
[[Bild:cny70_schem2.gif|thumb|center|600px|CNY70 als Radencoder mit Schmitt-Trigger]]&lt;br /&gt;
&lt;br /&gt;
Die Radencoder benötigen zwei digitale Eingangsports des Prozessors. A/D Wandler sind nicht nötig, da die Schmitt-Trigger Gatter für saubere Logik Signale sorgen. Die CNY70 sollten so nah wie möglch an den Rädern sitzen (1..2mm). Die gewählten Widerstandswerte für R17/R19 bzw. R18/R20 sind optimiert für Radencoder die auf Transparentfolie gedruckt und auf Aluminium Räder aufgeklebt werden. Für Radencoder die auf Papier ausgedruckt werden, sind andere Widerstandswerte notwendig.&lt;br /&gt;
Der P-Kanal FET BS250 dient als Schalter für die IR LEDs des CNY70. Damit spart man Strom, wenn der Radencoder nicht benötigt wird. Allerdings wird dafür ein weiterer Prozessor Ausgang als Enable Signal benötigt. HIGH Pegel schaltet die Sensor LEDs aus, LOW Pegel ein. Wird keine Enable Funktion gewünscht, läßt man den BS250 einfach weg und hängt die Vorwiderstände der Sensor LEDs direkt an VCC.&lt;br /&gt;
&lt;br /&gt;
===Distanzsensor IS471F===&lt;br /&gt;
&lt;br /&gt;
IS471F - Hindernisserkennung mit Infrarot Distanzsensor&lt;br /&gt;
&lt;br /&gt;
Das hier vorgestellte IC IS471F erlaubt eine einfach und sogar recht preisgünstige Hinternisserkennung per Infarot. Dazu muß im wesentlichen nur noch eine Infrarot-Diode an das IC angeschlossen werden. Das modulierte Licht wird von einem Gegenstand direkt auf das IC zurückgeworfen und somit das Hinterniss erkannt. Tageslicht/Fremdlicht stört den IS471 überhaupt nicht, da das Licht mit einer bestimmten Frequenz moduliert wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:is471.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der normale Schaltungsaufbau sieht also wie oben abgebildet aus! In der Praxis kann das dann in etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:is471beispiel.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das englische Datenblatt findet man im Roboternetz-Download-Bereich&lt;br /&gt;
&lt;br /&gt;
Die normale Reichweite ist in gewissen Grenzen abhängig von der Farbe des Hinternisses. In der Regel reicht es jedoch durchaus einige cm so das langsame Roboter durchaus sehr gut damit zurecht kommen. Durch besonders helle Infrarot LED´s und durch zusätzlich LED-Fassungen kann man die Reichweite erhöhen. Wem das noch nicht reicht, der kann über einen zusätzlichen Transistor die Strahlungsleistung der LED noch weiter erhöhen. &lt;br /&gt;
&lt;br /&gt;
[[Bild:is471verstaerkung.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
http://www.roboternetz.de/bilder/mehrereis471.gif&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sharp Infrarotsensoren===&lt;br /&gt;
&lt;br /&gt;
Sharp hat eine ganz interessante Serie von Bausteinen herausgebracht mit denen ein Roboter sogar recht genau Entfernungen messen kann. Das Messergebnis ist nahezu unabhängig von der Farbe und Helligkeit des gemessenen Objektes. Die Ansteuerung ist sehr einfach, der Sensorausgang kann zum Beispiel direkt an einen analogen Eingang eines Mikrocontrollers angeschlossen werden. Die Sensoren sind unter den Roboter-Bastlern weit verbreitet. &lt;br /&gt;
Bei vielen Händlern erhältlich kosten die Sensoren derzeit je nach Typ und Händlerspanne zwischen 13 bis 25 Euro.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Bild:Sharpentfernungssensor.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oft werden selbst in kleinen Roboter-Projekten mehrere dieser Sensoren genutzt da sie nur einen äußerst engen Erfassungsbereich haben. Sie eignen sich daher sehr gut zur Vermessung einer Umgebung, insbesondere dann wenn Sie drehbar auf einem Servo montiert werden. Als Kollisionsschutz sind sie wegen dem engen Winkel nur bedingt geeignet, zu diesem Zweck eignen sich zum Beispiel Ultraschallsensoren besser.&lt;br /&gt;
Das Funktionsprinzip der Sensoren ist einfach. Der Sensor besteht aus Sender und Empfänger. Der Sender sendet einen Infrarot-Strahl aus, der vom Hindernis reflektiert wird. Je nach Entfernung trifft der reflektierte Strahl an einer unterschiedlichen Stelle auf den Empfänger (ein sog. Position Sensitive Device, PSD). Der Empfänger setzt den Auftreffpunkt in einen analogen Spannungswert um. Eine schöne Skizze dazu:  &lt;br /&gt;
&lt;br /&gt;
[[Bild:sharpfunktion.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Einige der beliebtesten Bausteine sind:'''&lt;br /&gt;
&lt;br /&gt;
====Sharp GP2D12==== &lt;br /&gt;
Distanz 10 - 80 cm - Entfernung wird durch analoge Spannung am Ausgang übermittelt&lt;br /&gt;
Dies ist der am häufigsten eingesetzte Sharp Typ bei mobilen Robotern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:GP2D12anschluss.gif|center]]&lt;br /&gt;
&lt;br /&gt;
====Sharp GP2YA21YK==== &lt;br /&gt;
Distanz 10 - 80 cm - Entfernung wird durch analoge Spannung am Ausgang übermittelt &lt;br /&gt;
&lt;br /&gt;
====Sharp GP2D120====&lt;br /&gt;
Distanz 4 - 30 cm - Entfernung wird durch analoge Spannung am Ausgang übermittelt&lt;br /&gt;
&lt;br /&gt;
====Sharp GP2Y0A02YK====&lt;br /&gt;
Distanz 20 - 150 cm - Entfernung wird durch analoge Spannung am Ausgang übermittelt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
http://www.shop.robotikhardware.de/shop/catalog/images/artikelbilder/sensoren/gp2y0a02yk_diagramm.gif&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Sharp GP2D02====&lt;br /&gt;
Distanz 10 - 80 cm - Entfernung wird durch 8 Bit Digitalausgang übermittelt&lt;br /&gt;
&lt;br /&gt;
====Sharp GP2D150====&lt;br /&gt;
Distanz 3-30 cm - 1 Bit Schaltausgang  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Datenblätter zu den oberen Sensoren findet man im Download-Bereich des Roboternetz, siehe unter [[#Weblinks]].&lt;br /&gt;
 &lt;br /&gt;
Um die analogen Spannung der Sensoren in eine Entfernung umzurechnen, kann man sich mit Hilfe des Datenblattes oder einfacher Probemessungen Tabellen erstellen, welche dann vom Controller zur Umsetzung genutzt werden.&lt;br /&gt;
Bequemer ist allerdings eine Näherungsformel:&lt;br /&gt;
&lt;br /&gt;
====Formel zur Entfernungsberechnung==== &lt;br /&gt;
 D = A/(X-B) &lt;br /&gt;
&lt;br /&gt;
 D ist die Entfernung &lt;br /&gt;
 X ist der Ausgabewert des Sensors &lt;br /&gt;
 A ist die Steigung der Kurve A/X &lt;br /&gt;
 B ist der Offset der Kurve &lt;br /&gt;
&lt;br /&gt;
Die Konstanten A und B ermittelt man am besten über zwei Probemessungen: &lt;br /&gt;
&lt;br /&gt;
D und X sind die Entfernung und der Ausgabewert der ersten Messung (z.B. bei 20 cm) &lt;br /&gt;
D' und X' sind die Entfernung und der Ausgabewert der zweiten Messung (z.B. bei 60 cm) &lt;br /&gt;
&lt;br /&gt;
 A = ((X' - X) * D' * D) /(D - D' ) &lt;br /&gt;
 B = (D' * X' - D * X) /(D' - D) &lt;br /&gt;
&lt;br /&gt;
====GP2D12 Messkurve====&lt;br /&gt;
&lt;br /&gt;
[[Bild:gpd12kurve.gif|center]]&lt;br /&gt;
&lt;br /&gt;
====GPD120 Messkurve====&lt;br /&gt;
&lt;br /&gt;
[[Bild:gpd120kurve.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Ultraschall Sensoren== &lt;br /&gt;
===Ultraschallsensoren SRF04===&lt;br /&gt;
Die Firma '''Devantech''' hat eine Serie von sehr günstigen und kleinen Ultraschallsensoren entwickelt, die sich im Bereich &amp;quot;autonome Robotersysteme&amp;quot; durchgesetzt haben. Sie sind sehr verbreitet, da sie auch für &amp;quot;Hobby-Robotiker&amp;quot; erschwinglich sind und es sich nicht lohnen würde vergleichbare Module selber zu bauen, da diese meistens ungenauer und teurer wären.&lt;br /&gt;
&lt;br /&gt;
Bekannt wurde die Serie durch den '''SRF04'''. Mit seinen kleinen Abmessungen, der niedrigen Stromaufnahme und der hohen Genauigkeit ist er für kleine Messaufgaben im Entfernungsbereich von 3cm bis 3m gut geeignet. Der SRF04 kann einen 3cm dicken Besenstiel in 2m Entfernung erkennen und wird durch ein [[PWM]]-Signal ausgewertet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf_04a.jpg]] [[Bild:srf_04.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Ultraschallsensor SRF05===&lt;br /&gt;
Der Nachfolger des SRF04 ist der neuer SRF05. Er besitzt noch eine etwas höhere Reichweite bis 4 Meter. Zudem besitzt er neben dem kompatibel Mode zu SRF04 noch eine Betriebsart bei der er über einen einzigen Port (Pin) gesteuert wird. Das heißt sowohl der Start der Messung und das Ergebnis wird über die gleiche Leitung übertragen. [[Ultraschall SRF05 an RN-MiniControl|Programmbeispiel in Bascom]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:Srf05mode1.jpg|center]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf05mode2.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf05mode2diagram.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SRF08===&lt;br /&gt;
Die Alternative zu SRF04 und SRF05 ist der beliebte  '''SRF08''' und dessen Nachfolger '''SRF10''', der nun über den [[I2C]]-Bus ausgewertet werden kann und über eine Reichweite von 3cm bis 6m verfügt. Er hat eine noch kleinere Stromaufnahme und zusätzlich befindet sich auf der Platinenfront ein Fotowiderstand(LDR) dessen Lichtmesswerte sich ebenfalls über den [[I2C]]-Bus auswerten lassen. Durch den SRF08 wird es möglich auch bis zu 16 Mehrfachechos, von weiter hinten gelegenen Gegenständen, auszuwerten, die bei dem SRF04 ignoriert wurden. Über den [[I2C]]-Bus kann man die Messwerte in cm, zoll und in der Laufzeit µs auslesen und spart sich somit die externe Auswertung der Laufzeit, wie bei dem SRF04. Weiterhin können insgesamt 16 SRF08-Module an einen [[I2C]]-Bus angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf08_a.jpg]]  [[Bild:srf08_b.jpg]]&lt;br /&gt;
&lt;br /&gt;
===SRF08 Programmbeispiel===&lt;br /&gt;
SFR08 Programm Beispiel mit [[Bascom]]&lt;br /&gt;
Über die grundsätzliche Behandlung des [[I2C]]-Bus mit [[Bascom]] kann man [[I2C|hier]] nachlesen. &lt;br /&gt;
&lt;br /&gt;
 Const Sf08_adr_0 = &amp;amp;HE0             ' I2C Adresse&lt;br /&gt;
 Const Sf08_c_range = 100            ' Reichweite&lt;br /&gt;
 Const Sf08_c_gain = 1               ' Empfindlichkeit&lt;br /&gt;
&lt;br /&gt;
Die Adresse ist der Default-Wert für den Sensor, und kann eingestellt werden. &lt;br /&gt;
Range und Gain sind anzupassen, die angegeben Werte sind aber mal grundsätzlich verwendbar.&lt;br /&gt;
&lt;br /&gt;
'''Setup'''&lt;br /&gt;
Nach dem Reset sind einmal Range und Gain zu setzen.&lt;br /&gt;
&lt;br /&gt;
'''Setzen Range'''&lt;br /&gt;
&lt;br /&gt;
      I2cstart&lt;br /&gt;
      I2cwbyte Sf08_adr_0   ' Device I2C Adresse&lt;br /&gt;
      I2cwbyte 2            ' register &amp;quot;range&amp;quot;&lt;br /&gt;
      I2cwbyte Sf08_c_range  &lt;br /&gt;
      I2cstop&lt;br /&gt;
 &lt;br /&gt;
'''Setzen Gain'''&lt;br /&gt;
&lt;br /&gt;
      I2cstart&lt;br /&gt;
      I2cwbyte Sf08_adr_0   ' Device I2C Adresse&lt;br /&gt;
      I2cwbyte 1            ' register &amp;quot;gain&amp;quot;&lt;br /&gt;
      I2cwbyte Sf08_c_gain    &lt;br /&gt;
      I2cstop&lt;br /&gt;
&lt;br /&gt;
'''Abfrage Trigger'''&lt;br /&gt;
&lt;br /&gt;
Die Abfrage soll laut Beschreibung in zwei Schritten erfolgen, zwischen denen ca 70 mS gewartet werden soll. Diese Zeit braucht das Gerät zum Messen. &lt;br /&gt;
&lt;br /&gt;
'''Trigger'''  &lt;br /&gt;
      I2cstart&lt;br /&gt;
      I2cwbyte Sf08_adr_0   ' Device I2C Adresse&lt;br /&gt;
      I2cwbyte 0            ' register &amp;quot;Trigger&amp;quot;&lt;br /&gt;
      I2cwbyte 81           ' Meßwert in Zentimetern&lt;br /&gt;
&lt;br /&gt;
      Waitms 70 &lt;br /&gt;
&lt;br /&gt;
'''Ergebnis abholen'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 DIM Lsb as Byte&lt;br /&gt;
 DIM Msb as Byte&lt;br /&gt;
 DIM IVal as word&lt;br /&gt;
&lt;br /&gt;
      I2cstart              ' Repeated Start&lt;br /&gt;
      I2cwbyte Sf08_adr_0   ' Device I2C Adresse&lt;br /&gt;
      I2cwbyte 2            ' Meßwert US&lt;br /&gt;
&lt;br /&gt;
      I2cstart                 ' repeated Start&lt;br /&gt;
      I2cwbyte Sf08_adr_0 + 1  ' Device I2C Adresse READ!&lt;br /&gt;
      I2crbyte Msb , Ack      ' Bit 8-15&lt;br /&gt;
      I2crbyte Lsb , Nack     ' Bit 0-7&lt;br /&gt;
      I2cstop&lt;br /&gt;
&lt;br /&gt;
      Ival = Makeint(lsb , Msb) ' umwandeln in Word (16 Bit)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SRF10 Ultraschallsensor ===&lt;br /&gt;
SRF10 ist quasi der Nachfolger von SRF08. Er bietet die gleiche Leistung und ist sogar gegenüber Spannungschankungen noch etwas unempfindlicher als der Vorgänger. Der größte Vorteil besteht jedoch darin das er ca. 1/3 kleiner als sein Vorgänger ist.   &lt;br /&gt;
&lt;br /&gt;
[[Bild:srf10foto1.jpg]] [[Bild:srf10foto2.gif]]&lt;br /&gt;
&lt;br /&gt;
Die technischen Daten sind ähnlich:&lt;br /&gt;
* Betriebsspannung: 5V &lt;br /&gt;
* Stromaufnahme: ca. 3mA Standby, ca. 15mA während des Messens Frequenz: 40KHz &lt;br /&gt;
* Maximale Reichweite: 6 m &lt;br /&gt;
* Minimale Reichweite: 4 cm &lt;br /&gt;
* Messwerterfassung: intern, kein externer Controller zur Zeitmessung notwendig &lt;br /&gt;
* Interface: Standard – I2C (passend zu zahlreichen Controllerboards, z.B. RN-Control) &lt;br /&gt;
* Ausgabeformat: µs, cm oder Zoll &lt;br /&gt;
* Feature: Analogverstärkung 40 - 700 (einstellbar, 16 Stufen) &lt;br /&gt;
* Abmessungen: 32mm x 15mm x 10mm &lt;br /&gt;
* Hersteller: Devantech Ltd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Ultraschall_SRF10_an_RN-Control|Programmbeispiel in Bascom]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf10ausbreitung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SRF02 Ultraschallsensor===&lt;br /&gt;
Der erste Sensor aus der SRF-Reihe der mit nur einem Ultraschallwandler auskommt. Dennoch können sich die Leistungen zeigen. Vorallem die Tatsache das sowohl RS232 und I2C-Bus Schnittstelle vorhanden ist dürfte viele Bastler erfreuen.&lt;br /&gt;
&lt;br /&gt;
* Betriebsspannung 5V (stabilisiert) &lt;br /&gt;
* Stromaufnahme nur 4mA (typisch) &lt;br /&gt;
* Ultraschallfrequenz 40khz &lt;br /&gt;
* Reichweite 15cm bis 6 Meter &lt;br /&gt;
* Schnittstelle RS232 (TTL) und I2C-Bus &lt;br /&gt;
* Ausgabeeinheit wahlweise mm, inch oder uS &lt;br /&gt;
* Einfachste Verwendung, keine Kalibration/Justierung notwendig&lt;br /&gt;
* Größe 24mm x 20mm x 17mm &lt;br /&gt;
&lt;br /&gt;
[[Bild:srf02_germany.jpg]]&lt;br /&gt;
&lt;br /&gt;
Einige Bascom Programmbeispiele zum SRF02 findet man unter [[Ultraschallsensor SRF02 am RN-Board]]&lt;br /&gt;
&lt;br /&gt;
=== Vergleichstabelle ===&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{|{{Blaueschmaltabelle}}&lt;br /&gt;
 |&lt;br /&gt;
 |'''SRF10'''&lt;br /&gt;
 |'''SRF08'''&lt;br /&gt;
 |'''SRF05'''&lt;br /&gt;
 |'''SRF04'''&lt;br /&gt;
 |'''SRF02'''&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Betr. Spannung'''&lt;br /&gt;
 |5V&lt;br /&gt;
 |5V&lt;br /&gt;
 |5V&lt;br /&gt;
 |5V&lt;br /&gt;
 |5V&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Stromaufnahme'''&lt;br /&gt;
 |3mA typ.,&amp;lt;br&amp;gt; 15mA max.&lt;br /&gt;
 |3mA typ.,&amp;lt;br&amp;gt; 15mA max.&lt;br /&gt;
 |4mA typ.,&amp;lt;br&amp;gt; 30mA max.&lt;br /&gt;
 |30mA typ.,&amp;lt;br&amp;gt; 50mA max.&lt;br /&gt;
 |4mA typ.&amp;lt;br&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
 |-&lt;br /&gt;
 |'''US Leistung'''&lt;br /&gt;
 |100 – 150mW&lt;br /&gt;
 |100 – 150mW&lt;br /&gt;
 |100 – 150mW&lt;br /&gt;
 |100 – 150mW&lt;br /&gt;
 |?? mW&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Frequenz'''&lt;br /&gt;
 |40kHz&lt;br /&gt;
 |40kHz&lt;br /&gt;
 |40kHz&lt;br /&gt;
 |40kHz&lt;br /&gt;
 |40kHz&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Bereich'''&lt;br /&gt;
 |72&amp;amp;ordm;&lt;br /&gt;
 |55&amp;amp;ordm;&lt;br /&gt;
 |55&amp;amp;ordm;&lt;br /&gt;
 |55&amp;amp;ordm;&lt;br /&gt;
 |55&amp;amp;ordm;&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Reichweite'''&lt;br /&gt;
 |4cm - 6m&lt;br /&gt;
 |3cm - 6m&lt;br /&gt;
 |3cm - 4m&lt;br /&gt;
 |3cm - 3m&lt;br /&gt;
 |15cm - 6m&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Triggerimpuls'''&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |10µs min.&lt;br /&gt;
 |10µs min.&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Abmessung in mm'''&lt;br /&gt;
 |32 x 15 x 10&lt;br /&gt;
 |43 x 20 x 17&lt;br /&gt;
 |43 x 20 x 17&lt;br /&gt;
 |43 x 20 x 17&lt;br /&gt;
 |24 x 20 x 17&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Interface'''&lt;br /&gt;
 |I2C&lt;br /&gt;
 |I2C&lt;br /&gt;
 |TTL Impuls&lt;br /&gt;
 |TTL Impuls&lt;br /&gt;
 |I2C o. RS232 TTL&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Feature'''&lt;br /&gt;
 |Minimodul&lt;br /&gt;
 |Lichtsensor&lt;br /&gt;
 |SRF04 Modus&lt;br /&gt;
 |&lt;br /&gt;
 |nur 1 US-Kapsel&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Preis ca. *'''&lt;br /&gt;
 |44,00 €&lt;br /&gt;
 |44,00 €&lt;br /&gt;
 |22,00 €&lt;br /&gt;
 |25,00 €&lt;br /&gt;
 |19,00 €&lt;br /&gt;
 |}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''*''' Der Preis dient nur zum vergleich untereinander, nicht als Referenz !&lt;br /&gt;
&lt;br /&gt;
==Kompaß== &lt;br /&gt;
===Kompaß-Modul CMPS03===&lt;br /&gt;
Laut der Doku ist diese Modul speziell für die Bedürnisse von Robotern gestaltet worden. Es mißt seine Lage relativ zum Erdmagnetfeld und liefert diesen Wert&lt;br /&gt;
* Als PWM-Signal &lt;br /&gt;
* Über I2C entweder 0-255 als Byte oder&lt;br /&gt;
* 0-3599 als 16-Bit Wert (MSB first)&lt;br /&gt;
&lt;br /&gt;
In der vorliegenden Doku ist eine fixe I2C-Adresse von 0xC0 angegeben. Was leider noch fehlt, sind Angaben, ob und wie diese Adresse geändert werden kann.&lt;br /&gt;
&lt;br /&gt;
Bei waagrechter(!) Montage ist das also ein Kompaß, bei senkrechter Montage dieser Module kann man auch die Neigung in Nord-Süd-Richtung messen. Hierzu sind 2 Module nötig, die zueinander um 90° gedreht angeordnet sein müssen. Die Neigung in Ost-West-Richtung zu messen, ist dagegen leider nicht möglich. Wenn ein CMPS03 als Kompass verwendet werden soll, sind zwei Dinge zu beachten: &lt;br /&gt;
* Mindestens 20 cm Abstand von Eisen(Motore)&lt;br /&gt;
* Exakte horizontale Ausrichtung.&lt;br /&gt;
Eine Montage an einem langen Stab aus Holz oder Kuststoff hoch über dem Roboter ist sinnvoll. &lt;br /&gt;
&lt;br /&gt;
Das Ganze ist eine Anwendung des Philips-KMZ51 Magnet-Feld-Sensors mittels eines PIC16F872&lt;br /&gt;
&lt;br /&gt;
Gelegentlich sollte das Modul kalibriert werden. Das kann über den I2C-Bus, aber auch mittels einen Pins am Modul initiiert werden. Dann muß das Module langsam um 360 Grad gedreht werden. Dabei nimmt das Modul 4 Meßpunkte auf und speichert sie im EEPROM. &lt;br /&gt;
&lt;br /&gt;
Ein Beispielprogramm findet man hier:&lt;br /&gt;
* [[Bascom und Kompass CMPS03]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:cmps3pin.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
==Beschleunigung==&lt;br /&gt;
&lt;br /&gt;
Beschleunigungssensoren messen die Beschleunigung, die auf sie wirkt - wenn sie auf dem Tisch liegen, messen sie beispielsweise die Erdbeschleunigung von 1g. In einem Auto können weitere Beschleunigungen hinzukommen: Zur Seite beim Kurvenfahren, nach vorne oder hinten beim Beschleunigen, oder bei zügiger Fahrt über eine Bergkuppe auch mal welche in vertikaler Richtung.&amp;lt;br&amp;gt;&lt;br /&gt;
Beschleunigungssensoren sind meist mehrdimensional ausgelegt, so dass für mehrere Achsen ein Sensor verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
Anwendungen finden sie in ESP-Systemen in Autos, die u.a. über die Querbeschleunigung ausrechnen können, ob das Fahrzeug seitlich driftet oder gar schleudert.&amp;lt;br&amp;gt;&lt;br /&gt;
Eine andere wichtige Aufgabe übernehmen sie zusammen mit Gyroskopen in Trägheitsnavigationssystemen, die dann sowohl die Lage im Raum als auch die Bewegung feststellen können.&lt;br /&gt;
&lt;br /&gt;
Moderne Piezo-Sensoren sind nur noch Chip-gross und können direkt in Schaltungen integriert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiele für solche Chips ist die Chipfamilie [[ADXL]] von Analog Devices. Sie umfaßt 1- und 2-Achs Accelerometer in verschiedenen Empfindlichkleiten. Der Test eines solchen Sensors ist hier beschrieben. http://www.roboternetz.de/phpBB2/viewtopic.php?t=8525&lt;br /&gt;
&lt;br /&gt;
==Drehung==&lt;br /&gt;
&lt;br /&gt;
Um Drehungen zu messen, werden sogenannte Gyroskope, kurz &amp;quot;Gyros&amp;quot; verwendet. Typische Vertreter sind hier die [[ADXRS]]-Familie von Analog Devices. Diese sind allerdings, anders als die Beschleunigungssensoren, meistens nur für eine Achse ausgelegt. Die Ausgabe erfolgt meist analog, jede Ausgangsspannung entspricht einer bestimmten Drehrate in °/Sekunde.&lt;br /&gt;
&lt;br /&gt;
Gemessen wird die Auswirkung der Corioleskraft auf zwei gleiche, in Bewegung gehaltene Massen. Diese schwingen radial, d.h. 90° verdreht zu der Achse, auf der die Drehung gemessen werden soll. Wird der Sensor um die Achse gedreht, ändert sich die Geschwindigkeit dieser Massen, da sie auf einer gedachten Scheibe abwechselnd nach innen und außen wandern. Je weiter sie außen sind, desto höher ist ihre Geschwindigkeit, je weiter innen, desto langsamer sind sie. Bei der Bewegung nach außen müssen sie also beschleunigt werden, andersherum genauso. Die dabei auftretenden Beschleunigungen werden mittels einiger Fühler gemessen, die einen Plattenkondensator bilden.&lt;br /&gt;
&lt;br /&gt;
Eine Anwendung sind im Flugmodellbau Gyro-&amp;quot;Taillocks&amp;quot;, die in Hubschraubern die Heckstabilität verbessern und ESP-Systeme in Autos, die u.a. durch die Messung der Gierrate, also der Drehung des Fahrzeugs um die Hochachse, feststellen können, ob das Fahrzeug seitlich driftet oder sogar schleudert.&lt;br /&gt;
&lt;br /&gt;
==Geschwindigkeit==&lt;br /&gt;
&lt;br /&gt;
Geschwindigkeit kann unterschiedlich erfasst werden.&lt;br /&gt;
* Direkt am Rad oder Antrieb. Diese Methode wird häufig auch in KFZ verwendet, stößt jedoch an ihre Grenzen wenn die Räder viel Schlupf haben. &lt;br /&gt;
* Gegenüber der Luft mittels [[Pitot-Tube]]. Das wird bei Flugzeugen so gemacht, oder z.B. in der Formel 1. Bei niedriegen Geschwindigkeiten nicht zu gebrauchen&lt;br /&gt;
* Mittels eines optischen Sensors gegenüber dem Untergrund. Dafür kann ein [[Maussensor]] aus einer optischen Maus verwendent werden, evtl. mit einer Anpassung der Optik für einen geänderten Abstand.&lt;br /&gt;
* Mittels GPS-Empfang. Funktioniert nur unter freiem Himmel.&lt;br /&gt;
&lt;br /&gt;
==Temperatur== &lt;br /&gt;
===NTCs===&lt;br /&gt;
NTCs (Negative Temperature Coefficient)oder Heißleiter sind stromleitende Materialien, die bei hohen Temperaturen Strom besser leiten als bei tiefen, das heißt, mit steigender Temperatur sinkt ihr elektrischer Widerstand. Siehe auch unter [[NTC]]. Ein großer Vorteil ist die leichte Anwendung und der geringe Preis. Nachteil ist das der Widerstandswert sich nicht linear mit der Temperatur verändert.&lt;br /&gt;
&lt;br /&gt;
[[Bild:ntc.gif]]&lt;br /&gt;
&lt;br /&gt;
===PTCs===&lt;br /&gt;
&lt;br /&gt;
PTCs sind Temperatursensoren, deren Widerstand sich mit steigender Temperatur erhöht. Dazu gehören&lt;br /&gt;
&lt;br /&gt;
*PT100, PT1000 etc.&lt;br /&gt;
*Die KTYxx-xxx Reihe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== KTY: Silizium Temperatursensoren ====&lt;br /&gt;
&lt;br /&gt;
Die KTY-Temperatursensoren sind verglichen mit anderen Temperatursensoren verhältnismäßig günstig, haben dafür aber auch mehr Nachteile.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Genauigkeit ist ziemlich eingeschränkt, weshalb die KTY-Temperatursensoren zuerst kalibriert werden sollten. Dies muss Schaltungstechnisch oder in Software erfolgen, eine eingebaute Kalibrierung gibt es nicht.&amp;lt;br&amp;gt;&lt;br /&gt;
Andererseits lassen sich mittels Oversampling sehr hoch aufgelöst Temperaturen messen, was aufgrund mittelmäßiger Linearität (auch nach der Linearisierung) aber nur bei der Messung kleiner Temperaturunterschiede empfehlenswert ist.&amp;lt;br&amp;gt;&lt;br /&gt;
Linearisiert werden die KTY an 5 Volt mit einem Reihenwiderstand von etwa 2,7 kOhm bis 3,3 kOhm.&lt;br /&gt;
&lt;br /&gt;
===Temperatur-Sensor LM75===&lt;br /&gt;
&lt;br /&gt;
[[Bild:lm75.gif|center]]&lt;br /&gt;
&lt;br /&gt;
Dieser Chip von National Semiconductors kann die Umgebungstemperatur mit einer Genauigkeit von 0.5&amp;lt;sup&amp;gt;o&amp;lt;/sup&amp;gt; Grad Celsius messen. Das angegebene Bereich ist -25&amp;lt;sup&amp;gt;o&amp;lt;/sup&amp;gt; bis 100&amp;lt;sup&amp;gt;o&amp;lt;/sup&amp;gt; C. Es wird zweierlei geboten:&lt;br /&gt;
* Ein Schaltausgang - Wenn man also z.B. einen Ventilator einschalten möchte&lt;br /&gt;
* I2C - Der obere Teil der Adresse ist fix 0x9n, die Bits 1-3 kann man mit Jumper einstellbar machen oder fest verdrahten. &lt;br /&gt;
&lt;br /&gt;
Durch einen einfachen I2C-Lesebefehl kann man die Temperatur einlesen (16-Bit), das Format ist allerdings etwas tricky. Das erste Byte (8-Bit) ist die Temperatur in ganzen Grad, als normales signed char, vom zweiten Byte gibt das MSB an, ob noch 0.5&amp;lt;sup&amp;gt;o&amp;lt;/sup&amp;gt; '''dazuzuzählen''' sind (also auch, wenn vorne eine negative Zahl steht)  &lt;br /&gt;
&lt;br /&gt;
Der Grund ist der: die vorzeichenbehaftete 9-Bit Zahl, die da linksbündig in zwei Datenbytes übertragen wird, gibt eigentlich an, wieviel 0.5 Grad - Einheiten gemessen wurden. Rein rechnerisch wäre also Temperatur = Wert * 0.5, das müßte man aber als float durchführen oder erweitern&lt;br /&gt;
&lt;br /&gt;
===Programm-Beispiel für LM75===&lt;br /&gt;
Der LM75 wird über den [[I2C]]-Bus angesprochen&lt;br /&gt;
In BasCom, wo es ja keine signed char gibt, wird das Interpretieren auf sehr unterschiedliche Art empfohlen. &lt;br /&gt;
&lt;br /&gt;
Ich empfehle:&lt;br /&gt;
&lt;br /&gt;
 dim Ival as integer&lt;br /&gt;
 dim Msb as byte&lt;br /&gt;
 dim Lsb as byte&lt;br /&gt;
         I2cstart&lt;br /&gt;
         I2cwbyte &amp;amp;H91   ' Lese-adresse !  &lt;br /&gt;
         If Err = 1 Then&lt;br /&gt;
            I2cstop       ' kein ACK vom LM75 --&amp;gt; irgendein Fehler&lt;br /&gt;
            Ival = 9999   ' Zeichen, daß der Wert ungültig ist !&lt;br /&gt;
         Else&lt;br /&gt;
            I2crbyte Msb , Ack&lt;br /&gt;
            I2crbyte Lsb , Nack&lt;br /&gt;
            I2cstop&lt;br /&gt;
            If Msb.7 = 1 Then&lt;br /&gt;
               Ival = Makeint(msb , &amp;amp;HFF)   ' auffüllen mit den Vorzeichen bits&lt;br /&gt;
            Else&lt;br /&gt;
               Ival = Makeint(msb , &amp;amp;H00)   ' positiv, also bleibt es so&lt;br /&gt;
            End If&lt;br /&gt;
            Ival = Ival * 10                ' erweitern &lt;br /&gt;
            If Lsb.7 = 1 Then&lt;br /&gt;
              Ival = Ival + 5               ' fünf Zehntel Grad dazu &lt;br /&gt;
            End If&lt;br /&gt;
         End if&lt;br /&gt;
&lt;br /&gt;
das ergibt die Temperatur in Zehntel-Grad (Natürlich nur, wenn's keine Fehler gab).&lt;br /&gt;
&lt;br /&gt;
==Resistive Sensoren==&lt;br /&gt;
...&lt;br /&gt;
==Kapazitive Sensoren==&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für kapazitive Sensoren sind Luftfeuchtigkeitsmesser, die ihre Kapazität entsprechend der Luftfeuchtigkeit ändern. Das Auslesen der Kapazität kann prinzipiell über das Ausmessen von Ladekurven geschehen. Dies ist jedoch bei kleinen Kapazitäten nicht praktisch durchführbar, weshalb man in diesem Falle meist einen Schwingkreis baut, dessen Frequenz man dann misst und so dann zusammen mit der bekannten Induktivität der Spule die Kapazität des Kondensators ausrechnen kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:feuchtesensor.gif|framed|center|Valvo Feuchtigkeitssensor 10-90% (Kapazität: 122 pF bei TU = 25 °)]]&lt;br /&gt;
&lt;br /&gt;
==Induktive Sensoren==&lt;br /&gt;
Induktiver Näherungsschalter&lt;br /&gt;
&lt;br /&gt;
Sensoren die ihre Induktivität entsprechend der Messgröße ändern können auch mit Hilfe eines Schwingkreises mit bekannter Kapazität ausgemessen werden.&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
==Piezoelektrische Sensoren==&lt;br /&gt;
Hier ist ein Experiment dargestellt das die Funktion von Piezowandlern demonstriert.&lt;br /&gt;
&lt;br /&gt;
Drückt man auf eine längliche Glasplatte (Mikroskopträger Länge 76mm), die an den Enden auf je einem Piezo Wandler gelagert ist, dann ergeben sich Signale, die von den Kräften auf die Wandler abhängig sind. &lt;br /&gt;
&lt;br /&gt;
Die Summe der beiden Kräfte entspricht der Gesamtkraft. Das Verhältnis der beiden Kräfte entspricht dem Verhältnis der Abstände des Druckpunktes zum Wandler. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Piezowandler.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Versuch wurde mit der Frequenz von ca. 4Hz (0,5s/div) von einem Ende bis zum anderen auf die Platte gedrückt. (Tonleiter). Die Signale der beiden Wandler sind im Oszillogramm aufgetragen und die Folge der Druck-Positionen ist auf den ersten Blick schon mal nachvollziehbar.&lt;br /&gt;
&lt;br /&gt;
==PIR Passiv Infrarot Sensoren==&lt;br /&gt;
Hier handelt es sich um Passiv-Infrarot-Bewegungsmelder. Bewegungsmelder regieren beim Eintritt einer Person (Tier) in das Erfassungsfeld des Sensors. Die Anwendungsmöglichkeiten sind nahezu unbegrenzt, man kennt die Technik ja von vielen Terrassenlampen, welche sich beim vorbeigehen automatisch einschalten.&lt;br /&gt;
Reagiert wird also auf die Körperwärme einer sich im Erfassungsfeld bewegenden Person.&lt;br /&gt;
[[Bild:pir.jpg|right]]&lt;br /&gt;
Zum Prinzip: &lt;br /&gt;
Wärmestrahlen, die einen Erfassungsvorgang auslösen, liegen im Infrarot-Bereich des Wellenspektrums. In diesem Bereich gibt der menschliche Körper seine Wärmestrahlung ab. Leuchtmittel wie Glüh- , Halogen- und Entladungslampen, die für eine Strahlung im sichtbaren Bereich um 0,555 μm entwickelt wurden, geben jedoch auch einen erheblichen Teil an Wärmestrahlung im Infrarot-Bereich ab.&lt;br /&gt;
Im Spektrum oberhalb des sichtbaren Licht, ab 0,780 μm, beginnt der Infrarot-Bereich. Die Wellenlänge&lt;br /&gt;
dieser IR-Strahlung ist abhängig von der Temperatur eines Körpers. Die Wärmestrahlung&lt;br /&gt;
des Menschen hat ihr Maximum zwischen 9 und 10 μm im Infrarot-Bereich.&lt;br /&gt;
Diese Tatsache nutzt der PIR Sensor mittels sogenannter pyroelektrischer IRDetektoren, welche eine hohe Empfindlichkeit im langwelligen Infrarot-Bereich aufweisen. Die Infrarot-&lt;br /&gt;
Strahlung verhält sich ähnlich wie sichtbares Licht. Sie kann reflektiert und durch Linsen&lt;br /&gt;
gebündelt werden.&lt;br /&gt;
Basis eines solchen IR-Detektors (Sensors) sind Lithium-Tantalatkristalle. Diese Kristalle erzeugen,&lt;br /&gt;
bei Wärmeänderung (positive oder negative Temperaturänderung), eine elektrische Spannung.&lt;br /&gt;
Die von den Kristallen abgegebene Spannung liegt im Bereich von einigen μV (μV = millionstel Volt) und ist von folgenden Bedingungen abhängig: &lt;br /&gt;
* Der Intensität der Wärmequelle (Temperatur und Größe)&lt;br /&gt;
* Dem Umgebungsmedium (Temperatur, unterschiedliche Luftfeuchtigkeit)&lt;br /&gt;
* Der Entfernung zwischen Wärmequelle und IR-Sensor&lt;br /&gt;
* Der Bewegungsgeschwindigkeit und Bewegungsrichtung der Wärmequelle&lt;br /&gt;
* Der Empfindlichkeit des PIR-Elementes (frequenzabhängiges Bandpaßverhalten mit Maximum bei ca. 0,1 Hz)&lt;br /&gt;
&lt;br /&gt;
Zur Unterdrückung von Einflüssen aus der Umgebung (übliche wetterbedingte Temperaturänderungen), sind in jedem Sensor 2 Kristalle antiparallel geschaltet. &lt;br /&gt;
Einer der Kristalle gibt, bei Auftreffen von Wärmestrahlung einen positiven, der andere einen negativen Spannungsimpuls ab. Wärmeänderungen die gleichzeitig und mit gleicher Intensität auf beide Kristalle einwirken lösen so keinen Erfassungsvorgang aus, denn die beiden Impulse heben sich gegenseitig auf. Dadurch ist ein Auslösen bei Wärmeänderungen der Umgebung weitgehend ausgeschlossen.&lt;br /&gt;
Anders verhält es sich bei schnellen Bewegungen. Die Lithiumtantalat-Kristalle geben, entsprechend&lt;br /&gt;
der Bewegung und der dadurch hervorgerufenen Wärmeänderung im Erfassungsfeld, ihre&lt;br /&gt;
Impulse zeitversetzt ab. Die beiden Impulse addieren sich zu einer Wechselgröße mit höherer&lt;br /&gt;
Signalamplitude. Dieses elektrische Ausgangssignal ist proportional der Wärmeänderung und führt zur Meldung einer Bewegung.&lt;br /&gt;
&lt;br /&gt;
==Autoren==&lt;br /&gt;
* [[Benutzer:PicNick|PicNick]]&lt;br /&gt;
* [[Benutzer:Frank|Frank]] &lt;br /&gt;
* [[Benutzer:Dennis.strehl|Dennis.strehl]]&lt;br /&gt;
* [[Benutzer:Florian|Florian]]&lt;br /&gt;
* Topic&lt;br /&gt;
* [[Benutzer:Manf|Manf]]&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[Navigation]]&lt;br /&gt;
* [[Sensoren]]&lt;br /&gt;
* [[Graycode]]&lt;br /&gt;
* [[Ultraschall SRF10 an RN-Control]]&lt;br /&gt;
* [[Ultraschall SRF05 an RN-MiniControl]]&lt;br /&gt;
* [[Ultraschallsensor SRF02 am RN-Board]]&lt;br /&gt;
* [[Bascom und Kompass CMPS03]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
*[http://www.ikm.uni-karlsruhe.de/forschung/pzt_webseiten/de/grundlagen/pyro.html Piezoelektrische Sensoren]&lt;br /&gt;
*[http://www.roboternetz.de/phpBB2/dload.php?action=category&amp;amp;cat_id=2 Datenblätter im Download-Bereich des Roboternetz]&lt;br /&gt;
*[http://www.nxp.com/acrobat_download/various/SC17_GENERAL_TEMP_1996_3.pdf KDY Sensor Datenblatt]&lt;br /&gt;
*[http://www.tranzistoare.ro/datasheets2/83/83853_1.pdf NTC Datenblatt]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Elektronik]]&lt;br /&gt;
[[Category:Sensoren]]&lt;/div&gt;</summary>
		<author><name>Momomu</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Sensorarten&amp;diff=9763</id>
		<title>Sensorarten</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Sensorarten&amp;diff=9763"/>
				<updated>2006-12-03T20:53:59Z</updated>
		
		<summary type="html">&lt;p&gt;Momomu: /* NTCs */ Schreibfehler beseitigt (EIn-&amp;gt;Ein; ANwendung-&amp;gt;Anwendung)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Welche Sensorarten gibt es==&lt;br /&gt;
Damit sich ein Roboter in seiner Umgebung bewegen kann, ohne an Hindernisse anzustoßen, und damit er ein Ziel finden und ansteuern kann, muß er irgendwie seine Umwelt &amp;quot;wahrnehmen&amp;quot;. &lt;br /&gt;
Hauptanwendung für diese Informationen aus der Umwelt ist die [[Navigation]]&lt;br /&gt;
Auf dieser Seite werden die wichtigsten Sensorarten und damits praktischer wird auch zugleich die populärsten Robotik- und Modellbau-Sensortypen vorgestellt. Auch die Pinbelegung und Anschlussmöglichkeiten dieser Sensoren werden kurz erläutert.&lt;br /&gt;
&lt;br /&gt;
==Bumpers==&lt;br /&gt;
Als Bumpers bezeichnet man eine Art Stoßstange, die einen Mikro-Switch auslöst. &lt;br /&gt;
&lt;br /&gt;
[[Bild:microschalter.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Die Auswertung erfolgt am besten digital an einem Pin mit Pull-up Widerstand. Man kann den Eingang pollen (abfragen), aber auch einen Interrupt auslösen lassen. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Whiskers (Fühler)==&lt;br /&gt;
Das sind flexible Kunststoff-Streifen von ca. 10 cm Länge, eigentlich für Datenhandschuhe vorgesehen. Aber man kann sie auch als Fühler einsetzen, und daher auch für die Kollisions-Sensorik verwenden. Beim Verbiegen steigt der Widerstand an.  &lt;br /&gt;
&lt;br /&gt;
[[Bild:flexs_200.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Um zu messen, wird mit einem zweiten Widerstand ein Spannungsteiler aufgebaut, der dann mit einem Analog-Eingang einen Grad der Verbiegung erkennen läßt. Sie werden häufig auch Flexsensoren genannt. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Incremental-Geber==&lt;br /&gt;
Dienen zur Erfassung von Drehzahl bzw. der Messung von Wegstrecken&lt;br /&gt;
===Drehgeber Sharp GP1A30 und GP1A38===&lt;br /&gt;
&lt;br /&gt;
[[Bild:gp1a30.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Beim Sharp GP1A30 und GP1A38 handelt es sich um Gabellichtschranken mit inkrementaler Drehgeberfunktion. Beide sind im Grunde von den Anschlüssen identisch, lediglich kann GP1A38 noch etwas höhere Drehzahlen messen. Im Gegensatz zu herkömmlichen Gabellichtschranken können mit dieser sowohl Drehzahl als auch Drehrichtung ermittelt werden. Notwendig sind dafür nur 2 digitale Ports. Verzichtet man auf die Auswertung der Drehrichtung, reicht nur ein Port.&lt;br /&gt;
Der Sensor hat den Vorteil das die Signale bereits TTL kompatibel sind und direkt an ein Controllerboard angeschlossen werden können. Ein Beispielprogramm zu [[RN-Control]] findet man hier&lt;br /&gt;
&lt;br /&gt;
* [[Beispiel Drehzahlmessung mit RN-Control]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:GP1A30.gif|center]]&lt;br /&gt;
&lt;br /&gt;
Die Auswertung inkrementaler Drehgeber ist recht einfach. Ein Ausgang liefert einen Impuls pro Markierung (Scheibe auf der Welle). Prüft man bei jedem Impuls (Flanke) noch gleichzeitig den aktuellen Pegel des zweiten Ausganges, so kann daraus die Drehrichtung abgeleitet werden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Signalverlauf an den Sensorausgängen ist phasenversetzt:&lt;br /&gt;
&lt;br /&gt;
[[Bild:inkremental1.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:drehgeber_an_rncontrol.gif|center|framed|Beispielschaltung wenn man lediglich die Drehzahl ohne Drehrichtung auswerten möchte. Als Widerstand hat sich 330 Ohm als gut erwiesen.]]&lt;br /&gt;
&lt;br /&gt;
==Optische Sensoren==&lt;br /&gt;
===Helligkeit=== &lt;br /&gt;
Die Hauptanwendung solcher Sensoren ist, den hellsten Fleck im Raum zu finden.&lt;br /&gt;
Dies ist auch Teil vieler Roboterwettbewerbe. (Robo Callenge (2002 sic!), 'Ein Platz an der Sonne')&lt;br /&gt;
&lt;br /&gt;
Solche Sensoren können einfache [[LDR]]s oder [[Photodioden]] bzw. [[Phototransistoren]] sein.&lt;br /&gt;
LDRs haben den Vorteil, dass sie relativ hoch aussteuern, der große Nachteil ist aber, dass diese Sensoren ziemlich Wärmeempfindlich und etwas träge.&lt;br /&gt;
Photodioden und Phototransistoren haben den Vorteil, dass sie sehr genau sind, aber nicht besonders hoch aussteuern. Diese sollte man evtl. über einen OpAmp verstärken.&lt;br /&gt;
&lt;br /&gt;
[[Bild:fotowiderstand.jpg|center|framed|Ein typischer Fotowiderstand]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:SFH300.jpg|center|framed|SFH300, ein typischer Phototransistor]]&lt;br /&gt;
&lt;br /&gt;
Die Suche nach dem hellsten Fleck im Raum ist wie ich finde ein gutes Einsteigerthema!&lt;br /&gt;
&lt;br /&gt;
===CNY70===&lt;br /&gt;
&lt;br /&gt;
Der CNY70 ist ein Foto-Reflex Optokoppler. In einem würfelförmigem Gehäuse befindet sich eine Infrarot LED als Sender und ein Infrarot Fototransistor als Empfänger. Damit kann auf kurze Entfernung (wenige Millimeter) das reflektierte Licht der IR-LED durch den IR-Fototransistor gemessen werden.  &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Bild:cny70.jpg|thumb|200px|CNY70]]&lt;br /&gt;
|[[Bild:cny70_pinout.jpg|framed|CNY70 Vishay Pinout]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Achtung:''' Es existiert auch noch ein CNY70 von Temic mit anderer Pinbelegung, dort ist der Fototransistor verdreht eingebaut.&lt;br /&gt;
&lt;br /&gt;
Der CNY70 eignet sich für eine Vielzahl von Sensoren. Z.B. als Liniensensor, Radencoder, Abgrunddetektor und Lichtschranke. Allerdings ist er empfindlich gegen Streulicht, da  das Licht der IR-LED nicht moduliert ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:cny70_schem1.gif|thumb|center|600px|CNY70 als Liniensensor]]&lt;br /&gt;
&lt;br /&gt;
Der Liniensensor benötigt 2 A/D Wandler Eingänge des Prozessors. Die CNY70 sollten so nah wie möglich in Bodennähe angebracht sein (1..3mm). Der P-Kanal FET BS250 dient als Schalter für die IR LEDs des CNY70. Damit spart man Strom, wenn der Liniensensor nicht benötigt wird. Allerdings wird dafür ein weiterer Prozessor Ausgang als Enable Signal benötigt. HIGH Pegel schaltet die Sensor LEDs aus, LOW Pegel ein.  Wird keine Enable Funktion gewünscht, läßt man den BS250 einfach weg und hängt die Vorwiderstände der Sensor LEDs direkt an VCC.&lt;br /&gt;
&lt;br /&gt;
[[Bild:cny70_schem2.gif|thumb|center|600px|CNY70 als Radencoder mit Schmitt-Trigger]]&lt;br /&gt;
&lt;br /&gt;
Die Radencoder benötigen zwei digitale Eingangsports des Prozessors. A/D Wandler sind nicht nötig, da die Schmitt-Trigger Gatter für saubere Logik Signale sorgen. Die CNY70 sollten so nah wie möglch an den Rädern sitzen (1..2mm). Die gewählten Widerstandswerte für R17/R19 bzw. R18/R20 sind optimiert für Radencoder die auf Transparentfolie gedruckt und auf Aluminium Räder aufgeklebt werden. Für Radencoder die auf Papier ausgedruckt werden, sind andere Widerstandswerte notwendig.&lt;br /&gt;
Der P-Kanal FET BS250 dient als Schalter für die IR LEDs des CNY70. Damit spart man Strom, wenn der Radencoder nicht benötigt wird. Allerdings wird dafür ein weiterer Prozessor Ausgang als Enable Signal benötigt. HIGH Pegel schaltet die Sensor LEDs aus, LOW Pegel ein. Wird keine Enable Funktion gewünscht, läßt man den BS250 einfach weg und hängt die Vorwiderstände der Sensor LEDs direkt an VCC.&lt;br /&gt;
&lt;br /&gt;
===Distanzsensor IS471F===&lt;br /&gt;
&lt;br /&gt;
IS471F - Hindernisserkennung mit Infrarot Distanzsensor&lt;br /&gt;
&lt;br /&gt;
Das hier vorgestellte IC IS471F erlaubt eine einfach und sogar recht preisgünstige Hinternisserkennung per Infarot. Dazu muß im wesentlichen nur noch eine Infrarot-Diode an das IC angeschlossen werden. Das modulierte Licht wird von einem Gegenstand direkt auf das IC zurückgeworfen und somit das Hinterniss erkannt. Tageslicht/Fremdlicht stört den IS471 überhaupt nicht, da das Licht mit einer bestimmten Frequenz moduliert wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:is471.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der normale Schaltungsaufbau sieht also wie oben abgebildet aus! In der Praxis kann das dann in etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:is471beispiel.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das englische Datenblatt findet man im Roboternetz-Download-Bereich&lt;br /&gt;
&lt;br /&gt;
Die normale Reichweite ist in gewissen Grenzen abhängig von der Farbe des Hinternisses. In der Regel reicht es jedoch durchaus einige cm so das langsame Roboter durchaus sehr gut damit zurecht kommen. Durch besonders helle Infrarot LED´s und durch zusätzlich LED-Fassungen kann man die Reichweite erhöhen. Wem das noch nicht reicht, der kann über einen zusätzlichen Transistor die Strahlungsleistung der LED noch weiter erhöhen. &lt;br /&gt;
&lt;br /&gt;
[[Bild:is471verstaerkung.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
http://www.roboternetz.de/bilder/mehrereis471.gif&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sharp Infrarotsensoren===&lt;br /&gt;
&lt;br /&gt;
Sharp hat eine ganz interessante Serie von Bausteinen herausgebracht mit denen ein Roboter sogar recht genau Entfernungen messen kann. Das Messergebnis ist nahezu unabhängig von der Farbe und Helligkeit des gemessenen Objektes. Die Ansteuerung ist sehr einfach, der Sensorausgang kann zum Beispiel direkt an einen analogen Eingang eines Mikrocontrollers angeschlossen werden. Die Sensoren sind unter den Roboter-Bastlern weit verbreitet. &lt;br /&gt;
Bei vielen Händlern erhältlich kosten die Sensoren derzeit je nach Typ und Händlerspanne zwischen 13 bis 25 Euro.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Bild:Sharpentfernungssensor.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oft werden selbst in kleinen Roboter-Projekten mehrere dieser Sensoren genutzt da sie nur einen äußerst engen Erfassungsbereich haben. Sie eignen sich daher sehr gut zur Vermessung einer Umgebung, insbesondere dann wenn Sie drehbar auf einem Servo montiert werden. Als Kollisionsschutz sind sie wegen dem engen Winkel nur bedingt geeignet, zu diesem Zweck eignen sich zum Beispiel Ultraschallsensoren besser.&lt;br /&gt;
Das Funktionsprinzip der Sensoren ist einfach. Der Sensor besteht aus Sender und Empfänger. Der Sender sendet einen Infrarot-Strahl aus, der vom Hindernis reflektiert wird. Je nach Entfernung trifft der reflektierte Strahl an einer unterschiedlichen Stelle auf den Empfänger (ein sog. Position Sensitive Device, PSD). Der Empfänger setzt den Auftreffpunkt in einen analogen Spannungswert um. Eine schöne Skizze dazu:  &lt;br /&gt;
&lt;br /&gt;
[[Bild:sharpfunktion.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Einige der beliebtesten Bausteine sind:'''&lt;br /&gt;
&lt;br /&gt;
====Sharp GP2D12==== &lt;br /&gt;
Distanz 10 - 80 cm - Entfernung wird durch analoge Spannung am Ausgang übermittelt&lt;br /&gt;
Dies ist der am häufigsten eingesetzte Sharp Typ bei mobilen Robotern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:GP2D12anschluss.gif|center]]&lt;br /&gt;
&lt;br /&gt;
====Sharp GP2YA21YK==== &lt;br /&gt;
Distanz 10 - 80 cm - Entfernung wird durch analoge Spannung am Ausgang übermittelt &lt;br /&gt;
&lt;br /&gt;
====Sharp GP2D120====&lt;br /&gt;
Distanz 4 - 30 cm - Entfernung wird durch analoge Spannung am Ausgang übermittelt&lt;br /&gt;
&lt;br /&gt;
====Sharp GP2Y0A02YK====&lt;br /&gt;
Distanz 20 - 150 cm - Entfernung wird durch analoge Spannung am Ausgang übermittelt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
http://www.shop.robotikhardware.de/shop/catalog/images/artikelbilder/sensoren/gp2y0a02yk_diagramm.gif&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Sharp GP2D02====&lt;br /&gt;
Distanz 10 - 80 cm - Entfernung wird durch 8 Bit Digitalausgang übermittelt&lt;br /&gt;
&lt;br /&gt;
====Sharp GP2D150====&lt;br /&gt;
Distanz 3-30 cm - 1 Bit Schaltausgang  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Datenblätter zu den oberen Sensoren findet man im Download-Bereich des Roboternetz, siehe unter [[#Weblinks]].&lt;br /&gt;
 &lt;br /&gt;
Um die analogen Spannung der Sensoren in eine Entfernung umzurechnen, kann man sich mit Hilfe des Datenblattes oder einfacher Probemessungen Tabellen erstellen, welche dann vom Controller zur Umsetzung genutzt werden.&lt;br /&gt;
Bequemer ist allerdings eine Näherungsformel:&lt;br /&gt;
&lt;br /&gt;
====Formel zur Entfernungsberechnung==== &lt;br /&gt;
 D = A/(X-B) &lt;br /&gt;
&lt;br /&gt;
 D ist die Entfernung &lt;br /&gt;
 X ist der Ausgabewert des Sensors &lt;br /&gt;
 A ist die Steigung der Kurve A/X &lt;br /&gt;
 B ist der Offset der Kurve &lt;br /&gt;
&lt;br /&gt;
Die Konstanten A und B ermittelt man am besten über zwei Probemessungen: &lt;br /&gt;
&lt;br /&gt;
D und X sind die Entfernung und der Ausgabewert der ersten Messung (z.B. bei 20 cm) &lt;br /&gt;
D' und X' sind die Entfernung und der Ausgabewert der zweiten Messung (z.B. bei 60 cm) &lt;br /&gt;
&lt;br /&gt;
 A = ((X' - X) * D' * D) /(D - D' ) &lt;br /&gt;
 B = (D' * X' - D * X) /(D' - D) &lt;br /&gt;
&lt;br /&gt;
====GP2D12 Messkurve====&lt;br /&gt;
&lt;br /&gt;
[[Bild:gpd12kurve.gif|center]]&lt;br /&gt;
&lt;br /&gt;
====GPD120 Messkurve====&lt;br /&gt;
&lt;br /&gt;
[[Bild:gpd120kurve.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Ultraschall Sensoren== &lt;br /&gt;
===Ultraschallsensoren SRF04===&lt;br /&gt;
Die Firma '''Devantech''' hat eine Serie von sehr günstigen und kleinen Ultraschallsensoren entwickelt, die sich im Bereich &amp;quot;autonome Robotersysteme&amp;quot; durchgesetzt haben. Sie sind sehr verbreitet, da sie auch für &amp;quot;Hobby-Robotiker&amp;quot; erschwinglich sind und es sich nicht lohnen würde vergleichbare Module selber zu bauen, da diese meistens ungenauer und teurer wären.&lt;br /&gt;
&lt;br /&gt;
Bekannt wurde die Serie durch den '''SRF04'''. Mit seinen kleinen Abmessungen, der niedrigen Stromaufnahme und der hohen Genauigkeit ist er für kleine Messaufgaben im Entfernungsbereich von 3cm bis 3m gut geeignet. Der SRF04 kann einen 3cm dicken Besenstiel in 2m Entfernung erkennen und wird durch ein [[PWM]]-Signal ausgewertet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf_04a.jpg]] [[Bild:srf_04.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Ultraschallsensor SRF05===&lt;br /&gt;
Der Nachfolger des SRF04 ist der neuer SRF05. Er besitzt noch eine etwas höhere Reichweite bis 4 Meter. Zudem besitzt er neben dem kompatibel Mode zu SRF04 noch eine Betriebsart bei der er über einen einzigen Port (Pin) gesteuert wird. Das heißt sowohl der Start der Messung und das Ergebnis wird über die gleiche Leitung übertragen. [[Ultraschall SRF05 an RN-MiniControl|Programmbeispiel in Bascom]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:Srf05mode1.jpg|center]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf05mode2.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf05mode2diagram.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SRF08===&lt;br /&gt;
Die Alternative zu SRF04 und SRF05 ist der beliebte  '''SRF08''' und dessen Nachfolger '''SRF10''', der nun über den [[I2C]]-Bus ausgewertet werden kann und über eine Reichweite von 3cm bis 6m verfügt. Er hat eine noch kleinere Stromaufnahme und zusätzlich befindet sich auf der Platinenfront ein Fotowiderstand(LDR) dessen Lichtmesswerte sich ebenfalls über den [[I2C]]-Bus auswerten lassen. Durch den SRF08 wird es möglich auch bis zu 16 Mehrfachechos, von weiter hinten gelegenen Gegenständen, auszuwerten, die bei dem SRF04 ignoriert wurden. Über den [[I2C]]-Bus kann man die Messwerte in cm, zoll und in der Laufzeit µs auslesen und spart sich somit die externe Auswertung der Laufzeit, wie bei dem SRF04. Weiterhin können insgesamt 16 SRF08-Module an einen [[I2C]]-Bus angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf08_a.jpg]]  [[Bild:srf08_b.jpg]]&lt;br /&gt;
&lt;br /&gt;
===SRF08 Programmbeispiel===&lt;br /&gt;
SFR08 Programm Beispiel mit [[Bascom]]&lt;br /&gt;
Über die grundsätzliche Behandlung des [[I2C]]-Bus mit [[Bascom]] kann man [[I2C|hier]] nachlesen. &lt;br /&gt;
&lt;br /&gt;
 Const Sf08_adr_0 = &amp;amp;HE0             ' I2C Adresse&lt;br /&gt;
 Const Sf08_c_range = 100            ' Reichweite&lt;br /&gt;
 Const Sf08_c_gain = 1               ' Empfindlichkeit&lt;br /&gt;
&lt;br /&gt;
Die Adresse ist der Default-Wert für den Sensor, und kann eingestellt werden. &lt;br /&gt;
Range und Gain sind anzupassen, die angegeben Werte sind aber mal grundsätzlich verwendbar.&lt;br /&gt;
&lt;br /&gt;
'''Setup'''&lt;br /&gt;
Nach dem Reset sind einmal Range und Gain zu setzen.&lt;br /&gt;
&lt;br /&gt;
'''Setzen Range'''&lt;br /&gt;
&lt;br /&gt;
      I2cstart&lt;br /&gt;
      I2cwbyte Sf08_adr_0   ' Device I2C Adresse&lt;br /&gt;
      I2cwbyte 2            ' register &amp;quot;range&amp;quot;&lt;br /&gt;
      I2cwbyte Sf08_c_range  &lt;br /&gt;
      I2cstop&lt;br /&gt;
 &lt;br /&gt;
'''Setzen Gain'''&lt;br /&gt;
&lt;br /&gt;
      I2cstart&lt;br /&gt;
      I2cwbyte Sf08_adr_0   ' Device I2C Adresse&lt;br /&gt;
      I2cwbyte 1            ' register &amp;quot;gain&amp;quot;&lt;br /&gt;
      I2cwbyte Sf08_c_gain    &lt;br /&gt;
      I2cstop&lt;br /&gt;
&lt;br /&gt;
'''Abfrage Trigger'''&lt;br /&gt;
&lt;br /&gt;
Die Abfrage soll laut Beschreibung in zwei Schritten erfolgen, zwischen denen ca 70 mS gewartet werden soll. Diese Zeit braucht das Gerät zum Messen. &lt;br /&gt;
&lt;br /&gt;
'''Trigger'''  &lt;br /&gt;
      I2cstart&lt;br /&gt;
      I2cwbyte Sf08_adr_0   ' Device I2C Adresse&lt;br /&gt;
      I2cwbyte 0            ' register &amp;quot;Trigger&amp;quot;&lt;br /&gt;
      I2cwbyte 81           ' Meßwert in Zentimetern&lt;br /&gt;
&lt;br /&gt;
      Waitms 70 &lt;br /&gt;
&lt;br /&gt;
'''Ergebnis abholen'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 DIM Lsb as Byte&lt;br /&gt;
 DIM Msb as Byte&lt;br /&gt;
 DIM IVal as word&lt;br /&gt;
&lt;br /&gt;
      I2cstart              ' Repeated Start&lt;br /&gt;
      I2cwbyte Sf08_adr_0   ' Device I2C Adresse&lt;br /&gt;
      I2cwbyte 2            ' Meßwert US&lt;br /&gt;
&lt;br /&gt;
      I2cstart                 ' repeated Start&lt;br /&gt;
      I2cwbyte Sf08_adr_0 + 1  ' Device I2C Adresse READ!&lt;br /&gt;
      I2crbyte Msb , Ack      ' Bit 8-15&lt;br /&gt;
      I2crbyte Lsb , Nack     ' Bit 0-7&lt;br /&gt;
      I2cstop&lt;br /&gt;
&lt;br /&gt;
      Ival = Makeint(lsb , Msb) ' umwandeln in Word (16 Bit)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SRF10 Ultraschallsensor ===&lt;br /&gt;
SRF10 ist quasi der Nachfolger von SRF08. Er bietet die gleiche Leistung und ist sogar gegenüber Spannungschankungen noch etwas unempfindlicher als der Vorgänger. Der größte Vorteil besteht jedoch darin das er ca. 1/3 kleiner als sein Vorgänger ist.   &lt;br /&gt;
&lt;br /&gt;
[[Bild:srf10foto1.jpg]] [[Bild:srf10foto2.gif]]&lt;br /&gt;
&lt;br /&gt;
Die technischen Daten sind ähnlich:&lt;br /&gt;
* Betriebsspannung: 5V &lt;br /&gt;
* Stromaufnahme: ca. 3mA Standby, ca. 15mA während des Messens Frequenz: 40KHz &lt;br /&gt;
* Maximale Reichweite: 6 m &lt;br /&gt;
* Minimale Reichweite: 4 cm &lt;br /&gt;
* Messwerterfassung: intern, kein externer Controller zur Zeitmessung notwendig &lt;br /&gt;
* Interface: Standard – I2C (passend zu zahlreichen Controllerboards, z.B. RN-Control) &lt;br /&gt;
* Ausgabeformat: µs, cm oder Zoll &lt;br /&gt;
* Feature: Analogverstärkung 40 - 700 (einstellbar, 16 Stufen) &lt;br /&gt;
* Abmessungen: 32mm x 15mm x 10mm &lt;br /&gt;
* Hersteller: Devantech Ltd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Ultraschall_SRF10_an_RN-Control|Programmbeispiel in Bascom]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf10ausbreitung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SRF02 Ultraschallsensor===&lt;br /&gt;
Der erste Sensor aus der SRF-Reihe der mit nur einem Ultraschallwandler auskommt. Dennoch können sich die Leistungen zeigen. Vorallem die Tatsache das sowohl RS232 und I2C-Bus Schnittstelle vorhanden ist dürfte viele Bastler erfreuen.&lt;br /&gt;
&lt;br /&gt;
* Betriebsspannung 5V (stabilisiert) &lt;br /&gt;
* Stromaufnahme nur 4mA (typisch) &lt;br /&gt;
* Ultraschallfrequenz 40khz &lt;br /&gt;
* Reichweite 15cm bis 6 Meter &lt;br /&gt;
* Schnittstelle RS232 (TTL) und I2C-Bus &lt;br /&gt;
* Ausgabeeinheit wahlweise mm, inch oder uS &lt;br /&gt;
* Einfachste Verwendung, keine Kalibration/Justierung notwendig&lt;br /&gt;
* Größe 24mm x 20mm x 17mm &lt;br /&gt;
&lt;br /&gt;
[[Bild:srf02_germany.jpg]]&lt;br /&gt;
&lt;br /&gt;
Einige Bascom Programmbeispiele zum SRF02 findet man unter [[Ultraschallsensor SRF02 am RN-Board]]&lt;br /&gt;
&lt;br /&gt;
=== Vergleichstabelle ===&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{|{{Blaueschmaltabelle}}&lt;br /&gt;
 |&lt;br /&gt;
 |'''SRF10'''&lt;br /&gt;
 |'''SRF08'''&lt;br /&gt;
 |'''SRF05'''&lt;br /&gt;
 |'''SRF04'''&lt;br /&gt;
 |'''SRF02'''&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Betr. Spannung'''&lt;br /&gt;
 |5V&lt;br /&gt;
 |5V&lt;br /&gt;
 |5V&lt;br /&gt;
 |5V&lt;br /&gt;
 |5V&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Stromaufnahme'''&lt;br /&gt;
 |3mA typ.,&amp;lt;br&amp;gt; 15mA max.&lt;br /&gt;
 |3mA typ.,&amp;lt;br&amp;gt; 15mA max.&lt;br /&gt;
 |4mA typ.,&amp;lt;br&amp;gt; 30mA max.&lt;br /&gt;
 |30mA typ.,&amp;lt;br&amp;gt; 50mA max.&lt;br /&gt;
 |4mA typ.&amp;lt;br&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
 |-&lt;br /&gt;
 |'''US Leistung'''&lt;br /&gt;
 |100 – 150mW&lt;br /&gt;
 |100 – 150mW&lt;br /&gt;
 |100 – 150mW&lt;br /&gt;
 |100 – 150mW&lt;br /&gt;
 |?? mW&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Frequenz'''&lt;br /&gt;
 |40kHz&lt;br /&gt;
 |40kHz&lt;br /&gt;
 |40kHz&lt;br /&gt;
 |40kHz&lt;br /&gt;
 |40kHz&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Bereich'''&lt;br /&gt;
 |72&amp;amp;ordm;&lt;br /&gt;
 |55&amp;amp;ordm;&lt;br /&gt;
 |55&amp;amp;ordm;&lt;br /&gt;
 |55&amp;amp;ordm;&lt;br /&gt;
 |55&amp;amp;ordm;&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Reichweite'''&lt;br /&gt;
 |4cm - 6m&lt;br /&gt;
 |3cm - 6m&lt;br /&gt;
 |3cm - 4m&lt;br /&gt;
 |3cm - 3m&lt;br /&gt;
 |15cm - 6m&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Triggerimpuls'''&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |10µs min.&lt;br /&gt;
 |10µs min.&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Abmessung in mm'''&lt;br /&gt;
 |32 x 15 x 10&lt;br /&gt;
 |43 x 20 x 17&lt;br /&gt;
 |43 x 20 x 17&lt;br /&gt;
 |43 x 20 x 17&lt;br /&gt;
 |24 x 20 x 17&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Interface'''&lt;br /&gt;
 |I2C&lt;br /&gt;
 |I2C&lt;br /&gt;
 |TTL Impuls&lt;br /&gt;
 |TTL Impuls&lt;br /&gt;
 |I2C o. RS232 TTL&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Feature'''&lt;br /&gt;
 |Minimodul&lt;br /&gt;
 |Lichtsensor&lt;br /&gt;
 |SRF04 Modus&lt;br /&gt;
 |&lt;br /&gt;
 |nur 1 US-Kapsel&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Preis ca. *'''&lt;br /&gt;
 |44,00 €&lt;br /&gt;
 |44,00 €&lt;br /&gt;
 |22,00 €&lt;br /&gt;
 |25,00 €&lt;br /&gt;
 |19,00 €&lt;br /&gt;
 |}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''*''' Der Preis dient nur zum vergleich untereinander, nicht als Referenz !&lt;br /&gt;
&lt;br /&gt;
==Kompaß== &lt;br /&gt;
===Kompaß-Modul CMPS03===&lt;br /&gt;
Laut der Doku ist diese Modul speziell für die Bedürnisse von Robotern gestaltet worden. Es mißt seine Lage relativ zum Erdmagnetfeld und liefert diesen Wert&lt;br /&gt;
* Als PWM-Signal &lt;br /&gt;
* Über I2C entweder 0-255 als Byte oder&lt;br /&gt;
* 0-3599 als 16-Bit Wert (MSB first)&lt;br /&gt;
&lt;br /&gt;
In der vorliegenden Doku ist eine fixe I2C-Adresse von 0xC0 angegeben. Was leider noch fehlt, sind Angaben, ob und wie diese Adresse geändert werden kann.&lt;br /&gt;
&lt;br /&gt;
Bei waagrechter(!) Montage ist das also ein Kompaß, bei senkrechter Montage dieser Module kann man auch die Neigung in Nord-Süd-Richtung messen. Hierzu sind 2 Module nötig, die zueinander um 90° gedreht angeordnet sein müssen. Die Neigung in Ost-West-Richtung zu messen, ist dagegen leider nicht möglich. Wenn ein CMPS03 als Kompass verwendet werden soll, sind zwei Dinge zu beachten: &lt;br /&gt;
* Mindestens 20 cm Abstand von Eisen(Motore)&lt;br /&gt;
* Exakte horizontale Ausrichtung.&lt;br /&gt;
Eine Montage an einem langen Stab aus Holz oder Kuststoff hoch über dem Roboter ist sinnvoll. &lt;br /&gt;
&lt;br /&gt;
Das Ganze ist eine Anwendung des Philips-KMZ51 Magnet-Feld-Sensors mittels eines PIC16F872&lt;br /&gt;
&lt;br /&gt;
Gelegentlich sollte das Modul kalibriert werden. Das kann über den I2C-Bus, aber auch mittels einen Pins am Modul initiiert werden. Dann muß das Module langsam um 360 Grad gedreht werden. Dabei nimmt das Modul 4 Meßpunkte auf und speichert sie im EEPROM. &lt;br /&gt;
&lt;br /&gt;
Ein Beispielprogramm findet man hier:&lt;br /&gt;
* [[Bascom und Kompass CMPS03]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:cmps3pin.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
==Beschleunigung==&lt;br /&gt;
&lt;br /&gt;
Beschleunigungssensoren messen die Beschleunigung, die auf sie wirkt - wenn sie auf dem Tisch liegen, messen sie beispielsweise die Erdbeschleunigung von 1g. In einem Auto können weitere Beschleunigungen hinzukommen: Zur Seite beim Kurvenfahren, nach vorne oder hinten beim Beschleunigen, oder bei zügiger Fahrt über eine Bergkuppe auch mal welche in vertikaler Richtung.&amp;lt;br&amp;gt;&lt;br /&gt;
Beschleunigungssensoren sind meist mehrdimensional ausgelegt, so dass für mehrere Achsen ein Sensor verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
Anwendungen finden sie in ESP-Systemen in Autos, die u.a. über die Querbeschleunigung ausrechnen können, ob das Fahrzeug seitlich driftet oder gar schleudert.&amp;lt;br&amp;gt;&lt;br /&gt;
Eine andere wichtige Aufgabe übernehmen sie zusammen mit Gyroskopen in Trägheitsnavigationssystemen, die dann sowohl die Lage im Raum als auch die Bewegung feststellen können.&lt;br /&gt;
&lt;br /&gt;
Moderne Piezo-Sensoren sind nur noch Chip-gross und können direkt in Schaltungen integriert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiele für solche Chips ist die Chipfamilie [[ADXL]] von Analog Devices. Sie umfaßt 1- und 2-Achs Accelerometer in verschiedenen Empfindlichkleiten. Der Test eines solchen Sensors ist hier beschrieben. http://www.roboternetz.de/phpBB2/viewtopic.php?t=8525&lt;br /&gt;
&lt;br /&gt;
==Drehung==&lt;br /&gt;
&lt;br /&gt;
Um Drehungen zu messen, werden sogenannte Gyroskope, kurz &amp;quot;Gyros&amp;quot; verwendet. Typische Vertreter sind hier die [[ADXRS]]-Familie von Analog Devices. Diese sind allerdings, anders als die Beschleunigungssensoren, meistens nur für eine Achse ausgelegt. Die Ausgabe erfolgt meist analog, jede Ausgangsspannung entspricht einer bestimmten Drehrate in °/Sekunde.&lt;br /&gt;
&lt;br /&gt;
Gemessen wird die Auswirkung der Corioleskraft auf zwei gleiche, in Bewegung gehaltene Massen. Diese schwingen radial, d.h. 90° verdreht zu der Achse, auf der die Drehung gemessen werden soll. Wird der Sensor um die Achse gedreht, ändert sich die Geschwindigkeit dieser Massen, da sie auf einer gedachten Scheibe abwechselnd nach innen und außen wandern. Je weiter sie außen sind, desto höher ist ihre Geschwindigkeit, je weiter innen, desto langsamer sind sie. Bei der Bewegung nach außen müssen sie also beschleunigt werden, andersherum genauso. Die dabei auftretenden Beschleunigungen werden mittels einiger Fühler gemessen, die einen Plattenkondensator bilden.&lt;br /&gt;
&lt;br /&gt;
Eine Anwendung sind im Flugmodellbau Gyro-&amp;quot;Taillocks&amp;quot;, die in Hubschraubern die Heckstabilität verbessern und ESP-Systeme in Autos, die u.a. durch die Messung der Gierrate, also der Drehung des Fahrzeugs um die Hochachse, feststellen können, ob das Fahrzeug seitlich driftet oder sogar schleudert.&lt;br /&gt;
&lt;br /&gt;
==Geschwindigkeit==&lt;br /&gt;
&lt;br /&gt;
Geschwindigkeit kann unterschiedlich erfasst werden.&lt;br /&gt;
* Direkt am Rad oder Antrieb. Diese Methode wird häufig auch in KFZ verwendet, stößt jedoch an ihre Grenzen wenn die Räder viel Schlupf haben. &lt;br /&gt;
* Gegenüber der Luft mittels [[Pitot-Tube]]. Das wird bei Flugzeugen so gemacht, oder z.B. in der Formel 1. Bei niedriegen Geschwindigkeiten nicht zu gebrauchen&lt;br /&gt;
* Mittels eines optischen Sensors gegenüber dem Untergrund. Dafür kann ein [[Maussensor]] aus einer optischen Maus verwendent werden, evtl. mit einer Anpassung der Optik für einen geänderten Abstand.&lt;br /&gt;
* Mittels GPS-Empfang. Funktioniert nur unter freiem Himmel.&lt;br /&gt;
&lt;br /&gt;
==Temperatur== &lt;br /&gt;
===NTCs===&lt;br /&gt;
NTCs (Negative Temperature Coefficient)oder Heißleiter sind stromleitende Materialien, die bei hohen Temperaturen Strom besser leiten als bei tiefen, das heißt, mit steigender Temperatur sinkt ihr elektrischer Widerstand. Siehe auch unter [[NTC]]. Ein großer Vorteil ist die leichte Anwendung und der geringe Preis. Nachteil ist das der Widerstandswert sich nicht linear mit der Temperatur verändert.&lt;br /&gt;
&lt;br /&gt;
[[Bild:ntc.gif]]&lt;br /&gt;
&lt;br /&gt;
===PTCs===&lt;br /&gt;
&lt;br /&gt;
PTCs sind Temperatursensoren, deren Widerstand sich mit steigender Temperatur erhöht. Dazu gehören&lt;br /&gt;
&lt;br /&gt;
*PT100, PT1000 etc.&lt;br /&gt;
*Die KTYxx-xxx Reihe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== KTY: Silizium Temperatursensoren ====&lt;br /&gt;
&lt;br /&gt;
Die KTY-Temperatursensoren sind verglichen mit anderen Temperatursensoren verhältnismäßig günstig, haben dafür aber auch mehr Nachteile.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Genauigkeit ist ziemlich eingeschränkt, weshalb die KTY-Temperatursensoren zuerst kalibriert werden sollten. Dies muss Schaltungstechnisch oder in Software erfolgen, eine eingebaute Kalibrierung gibt es nicht.&amp;lt;br&amp;gt;&lt;br /&gt;
Andererseits lassen sich mittels Oversampling sehr hoch aufgelöst Temperaturen messen, was aufgrund mittelmäßiger Linearität (auch nach der Linearisierung) aber nur bei der Messung kleiner Temperaturunterschiede empfehlenswert ist.&amp;lt;br&amp;gt;&lt;br /&gt;
Linearisiert werden die KTY an 5 Volt mit einem Reihenwiderstand von etwa 2,7 kOhm bis 3,3 kOhm.&lt;br /&gt;
&lt;br /&gt;
===Temperatur-Sensor LM75===&lt;br /&gt;
&lt;br /&gt;
[[Bild:lm75.gif|center]]&lt;br /&gt;
&lt;br /&gt;
Dieser Chip von National Semiconductors kann die Umgebungstemperatur mit einer Genauigkeit von 0.5&amp;lt;sup&amp;gt;o&amp;lt;/sup&amp;gt; Grad Celsius messen. Das angegebene Bereich ist -25&amp;lt;sup&amp;gt;o&amp;lt;/sup&amp;gt; bis 100&amp;lt;sup&amp;gt;o&amp;lt;/sup&amp;gt; C. Es wird zweierlei geboten:&lt;br /&gt;
* Ein Schaltausgang - Wenn man also z.B. einen Ventilator einschalten möchte&lt;br /&gt;
* I2C - Der obere Teil der Adresse ist fix 0x9n, die Bits 1-3 kann man mit Jumper einstellbar machen oder fest verdrahten. &lt;br /&gt;
&lt;br /&gt;
Durch einen einfachen I2C-Lesebefehl kann man die Temperatur einlesen (16-Bit), das Format ist allerdings etwas tricky. Das erste Byte (8-Bit) ist die Temperatur in ganzen Grad, als normales signed char, vom zweiten Byte gibt das MSB an, ob noch 0.5&amp;lt;sup&amp;gt;o&amp;lt;/sup&amp;gt; '''dazuzuzählen''' sind (also auch, wenn vorne eine negative Zahl steht)  &lt;br /&gt;
&lt;br /&gt;
Der Grund ist der: die vorzeichenbehaftete 9-Bit Zahl, die da linksbündig in zwei Datenbytes übertragen wird, gibt eigentlich an, wieviel 0.5 Grad - Einheiten gemessen wurden. Rein rechnerisch wäre also Temperatur = Wert * 0.5, das müßte man aber als float durchführen oder erweitern&lt;br /&gt;
&lt;br /&gt;
===Programm-Beispiel für LM75===&lt;br /&gt;
Der LM75 wird über den [[I2C]]-Bus angesprochen&lt;br /&gt;
In BasCom, wo es ja keine signed char gibt, wird das Interpretieren auf sehr unterschiedliche Art empfohlen. &lt;br /&gt;
&lt;br /&gt;
Ich empfehle:&lt;br /&gt;
&lt;br /&gt;
 dim Ival as integer&lt;br /&gt;
 dim Msb as byte&lt;br /&gt;
 dim Lsb as byte&lt;br /&gt;
         I2cstart&lt;br /&gt;
         I2cwbyte &amp;amp;H91   ' Lese-adresse !  &lt;br /&gt;
         If Err = 1 Then&lt;br /&gt;
            I2cstop       ' kein ACK vom LM75 --&amp;gt; irgendein Fehler&lt;br /&gt;
            Ival = 9999   ' Zeichen, daß der Wert ungültig ist !&lt;br /&gt;
         Else&lt;br /&gt;
            I2crbyte Msb , Ack&lt;br /&gt;
            I2crbyte Lsb , Nack&lt;br /&gt;
            I2cstop&lt;br /&gt;
            If Msb.7 = 1 Then&lt;br /&gt;
               Ival = Makeint(msb , &amp;amp;HFF)   ' auffüllen mit den Vorzeichen bits&lt;br /&gt;
            Else&lt;br /&gt;
               Ival = Makeint(msb , &amp;amp;H00)   ' positiv, also bleibt es so&lt;br /&gt;
            End If&lt;br /&gt;
            Ival = Ival * 10                ' erweitern &lt;br /&gt;
            If Lsb.7 = 1 Then&lt;br /&gt;
              Ival = Ival + 5               ' fünf Zehntel Grad dazu &lt;br /&gt;
            End If&lt;br /&gt;
         End if&lt;br /&gt;
&lt;br /&gt;
das ergibt die Temperatur in Zehntel-Grad (Natürlich nur, wenn's keine Fehler gab).&lt;br /&gt;
&lt;br /&gt;
==Resistive Sensoren==&lt;br /&gt;
...&lt;br /&gt;
==Kapazitive Sensoren==&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für kapazitive Sensoren sind Luftfeuchtigkeitsmesser, die ihre Kapazität entsprechend der Luftfeuchtigkeit ändern. Das Auslesen der Kapazität kann prinzipiell über das Ausmessen von Ladekurven geschehen. Dies ist jedoch bei kleinen Kapazitäten nicht praktisch durchführbar, weshalb man in diesem Falle meist einen Schwingkreis baut, dessen Frequenz man dann misst und so dann zusammen mit der bekannten Induktivität der Spule die Kapazität des Kondensators ausrechnen kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:feuchtesensor.gif|framed|center|Valvo Feuchtigkeitssensor 10-90% (Kapazität: 122 pF bei TU = 25 °)]]&lt;br /&gt;
&lt;br /&gt;
==Induktive Sensoren==&lt;br /&gt;
Induktiver Näherungsschalter&lt;br /&gt;
&lt;br /&gt;
Sensoren die ihre Induktivität entsprechend der Messgröße ändern können auch mit Hilfe eines Schwingkreises mit bekannter Kapazität ausgemessen werden.&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
==Piezoelektrische Sensoren==&lt;br /&gt;
Hier ist ein Experiment dargestellt das die Funktion von Piezowandlern demonstriert.&lt;br /&gt;
&lt;br /&gt;
Drückt man auf eine längliche Glasplatte (Mikroskopträger Länge 76mm), die an den Enden auf je einem Piezo Wandler gelagert ist, dann ergeben sich Signale, die von den Kräften auf die Wandler abhängig sind. &lt;br /&gt;
&lt;br /&gt;
Die Summe der beiden Kräfte entspricht der Gesamtkraft. Das Verhältnis der beiden Kräfte entspricht dem Verhältnis der Abstände des Druckpunktes zum Wandler. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Piezowandler.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Versuch wurde mit der Frequenz von ca. 4Hz (0,5s/div) von einem Ende bis zum anderen auf die Platte gedrückt. (Tonleiter). Die Signale der beiden Wandler sind im Oszillogramm aufgetragen und die Folge der Druck-Positionen ist auf den ersten Blick schon mal nachvollziehbar.&lt;br /&gt;
&lt;br /&gt;
==PIR Passiv Infrarot Sensoren==&lt;br /&gt;
Hier handelt es sich um Passiv-Infrarot-Bewegungsmelder. Bewegungsmelder regieren beim Eintritt einer Person (Tier) in das Erfassungsfeld des Sensors. Die Anwendungsmöglichkeiten sind nahezu unbegrenzt, man kennt die Technik ja von vielen Terrassenlampen, welche sich beim vorbeigehen automatisch einschalten.&lt;br /&gt;
Reagiert wird also auf Die Körperwärme einer sich im Erfassungsfeld bewegenden Person.&lt;br /&gt;
[[Bild:pir.jpg|right]]&lt;br /&gt;
Zum Prinzip: &lt;br /&gt;
Wärmestrahlen, die einen Erfassungsvorgang auslösen, liegen im Infrarot-Bereich des Wellenspektrums. In diesem Bereich gibt der menschliche Körper seine Wärmestrahlung ab. Leuchtmittel wie Glüh- , Halogen- und Entladungslampen, die für eine Strahlung im sichtbaren Bereich um 0,555 μm entwickelt wurden, geben jedoch auch einen erheblichen Teil an Wärmestrahlung im Infrarot-Bereich ab.&lt;br /&gt;
Im Spektrum oberhalb des sichtbaren Licht, ab 0,780 μm, beginnt der Infrarot-Bereich. Die Wellenlänge&lt;br /&gt;
dieser IR-Strahlung ist abhängig von der Temperatur eines Körpers. Die Wärmestrahlung&lt;br /&gt;
des Menschen hat ihr Maximum zwischen 9 und 10 μm im Infrarot-Bereich.&lt;br /&gt;
Diese Tatsache nutzt der PIR Sensor mittels sogenannter pyroelektrischer IRDetektoren, welche eine hohe Empfindlichkeit im langwelligen Infrarot-Bereich aufweisen. Die Infrarot-&lt;br /&gt;
Strahlung verhält sich ähnlich wie sichtbares Licht. Sie kann reflektiert und durch Linsen&lt;br /&gt;
gebündelt werden.&lt;br /&gt;
Basis eines solchen IR-Detektors (Sensors) sind Lithium-Tantalatkristalle. Diese Kristalle erzeugen,&lt;br /&gt;
bei Wärmeänderung (positive oder negative Temperaturänderung), eine elektrische Spannung.&lt;br /&gt;
Die von den Kristallen abgegebene Spannung liegt im Bereich von einigen μV (μV = millionstel Volt) und ist von folgenden Bedingungen abhängig: &lt;br /&gt;
* Der Intensität der Wärmequelle (Temperatur und Größe)&lt;br /&gt;
* Dem Umgebungsmedium (Temperatur, unterschiedliche Luftfeuchtigkeit)&lt;br /&gt;
* Der Entfernung zwischen Wärmequelle und IR-Sensor&lt;br /&gt;
* Der Bewegungsgeschwindigkeit und Bewegungsrichtung der Wärmequelle&lt;br /&gt;
* Der Empfindlichkeit des PIR-Elementes (frequenzabhängiges Bandpaßverhalten mit Maximum bei ca. 0,1 Hz)&lt;br /&gt;
&lt;br /&gt;
Zur Unterdrückung von Einflüssen aus der Umgebung (übliche wetterbedingte Temperaturänderungen), sind in jedem Sensor 2 Kristalle antiparallel geschaltet. &lt;br /&gt;
Einer der Kristalle gibt, bei Auftreffen von Wärmestrahlung einen positiven, der andere einen negativen Spannungsimpuls ab. Wärmeänderungen die gleichzeitig und mit gleicher Intensität auf beide Kristalle einwirken lösen so keinen Erfassungsvorgang aus, denn die beiden Impulse heben sich gegenseitig auf. Dadurch ist ein Auslösen bei Wärmeänderungen der Umgebung weitgehend ausgeschlossen.&lt;br /&gt;
Anders verhält es sich bei schnellen Bewegungen. Die Lithiumtantalat-Kristalle geben, entsprechend&lt;br /&gt;
der Bewegung und der dadurch hervorgerufenen Wärmeänderung im Erfassungsfeld, ihre&lt;br /&gt;
Impulse zeitversetzt ab. Die beiden Impulse addieren sich zu einer Wechselgröße mit höherer&lt;br /&gt;
Signalamplitude. Dieses elektrische Ausgangssignalist proportional der Wärmeänderung und führt zur Meldung einer Bewegung.&lt;br /&gt;
&lt;br /&gt;
==Autoren==&lt;br /&gt;
* [[Benutzer:PicNick|PicNick]]&lt;br /&gt;
* [[Benutzer:Frank|Frank]] &lt;br /&gt;
* [[Benutzer:Dennis.strehl|Dennis.strehl]]&lt;br /&gt;
* [[Benutzer:Florian|Florian]]&lt;br /&gt;
* Topic&lt;br /&gt;
* [[Benutzer:Manf|Manf]]&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[Navigation]]&lt;br /&gt;
* [[Sensoren]]&lt;br /&gt;
* [[Graycode]]&lt;br /&gt;
* [[Ultraschall SRF10 an RN-Control]]&lt;br /&gt;
* [[Ultraschall SRF05 an RN-MiniControl]]&lt;br /&gt;
* [[Ultraschallsensor SRF02 am RN-Board]]&lt;br /&gt;
* [[Bascom und Kompass CMPS03]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
*[http://www.ikm.uni-karlsruhe.de/forschung/pzt_webseiten/de/grundlagen/pyro.html Piezoelektrische Sensoren]&lt;br /&gt;
*[http://www.roboternetz.de/phpBB2/dload.php?action=category&amp;amp;cat_id=2 Datenblätter im Download-Bereich des Roboternetz]&lt;br /&gt;
*[http://www.nxp.com/acrobat_download/various/SC17_GENERAL_TEMP_1996_3.pdf KDY Sensor Datenblatt]&lt;br /&gt;
*[http://www.tranzistoare.ro/datasheets2/83/83853_1.pdf NTC Datenblatt]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Elektronik]]&lt;br /&gt;
[[Category:Sensoren]]&lt;/div&gt;</summary>
		<author><name>Momomu</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Sensorarten&amp;diff=9762</id>
		<title>Sensorarten</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Sensorarten&amp;diff=9762"/>
				<updated>2006-12-03T20:51:49Z</updated>
		
		<summary type="html">&lt;p&gt;Momomu: /* Drehung */ Schreibfehler beseitigt (allerdigs-&amp;gt;allerdin)gs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Welche Sensorarten gibt es==&lt;br /&gt;
Damit sich ein Roboter in seiner Umgebung bewegen kann, ohne an Hindernisse anzustoßen, und damit er ein Ziel finden und ansteuern kann, muß er irgendwie seine Umwelt &amp;quot;wahrnehmen&amp;quot;. &lt;br /&gt;
Hauptanwendung für diese Informationen aus der Umwelt ist die [[Navigation]]&lt;br /&gt;
Auf dieser Seite werden die wichtigsten Sensorarten und damits praktischer wird auch zugleich die populärsten Robotik- und Modellbau-Sensortypen vorgestellt. Auch die Pinbelegung und Anschlussmöglichkeiten dieser Sensoren werden kurz erläutert.&lt;br /&gt;
&lt;br /&gt;
==Bumpers==&lt;br /&gt;
Als Bumpers bezeichnet man eine Art Stoßstange, die einen Mikro-Switch auslöst. &lt;br /&gt;
&lt;br /&gt;
[[Bild:microschalter.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Die Auswertung erfolgt am besten digital an einem Pin mit Pull-up Widerstand. Man kann den Eingang pollen (abfragen), aber auch einen Interrupt auslösen lassen. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Whiskers (Fühler)==&lt;br /&gt;
Das sind flexible Kunststoff-Streifen von ca. 10 cm Länge, eigentlich für Datenhandschuhe vorgesehen. Aber man kann sie auch als Fühler einsetzen, und daher auch für die Kollisions-Sensorik verwenden. Beim Verbiegen steigt der Widerstand an.  &lt;br /&gt;
&lt;br /&gt;
[[Bild:flexs_200.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Um zu messen, wird mit einem zweiten Widerstand ein Spannungsteiler aufgebaut, der dann mit einem Analog-Eingang einen Grad der Verbiegung erkennen läßt. Sie werden häufig auch Flexsensoren genannt. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Incremental-Geber==&lt;br /&gt;
Dienen zur Erfassung von Drehzahl bzw. der Messung von Wegstrecken&lt;br /&gt;
===Drehgeber Sharp GP1A30 und GP1A38===&lt;br /&gt;
&lt;br /&gt;
[[Bild:gp1a30.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Beim Sharp GP1A30 und GP1A38 handelt es sich um Gabellichtschranken mit inkrementaler Drehgeberfunktion. Beide sind im Grunde von den Anschlüssen identisch, lediglich kann GP1A38 noch etwas höhere Drehzahlen messen. Im Gegensatz zu herkömmlichen Gabellichtschranken können mit dieser sowohl Drehzahl als auch Drehrichtung ermittelt werden. Notwendig sind dafür nur 2 digitale Ports. Verzichtet man auf die Auswertung der Drehrichtung, reicht nur ein Port.&lt;br /&gt;
Der Sensor hat den Vorteil das die Signale bereits TTL kompatibel sind und direkt an ein Controllerboard angeschlossen werden können. Ein Beispielprogramm zu [[RN-Control]] findet man hier&lt;br /&gt;
&lt;br /&gt;
* [[Beispiel Drehzahlmessung mit RN-Control]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:GP1A30.gif|center]]&lt;br /&gt;
&lt;br /&gt;
Die Auswertung inkrementaler Drehgeber ist recht einfach. Ein Ausgang liefert einen Impuls pro Markierung (Scheibe auf der Welle). Prüft man bei jedem Impuls (Flanke) noch gleichzeitig den aktuellen Pegel des zweiten Ausganges, so kann daraus die Drehrichtung abgeleitet werden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Signalverlauf an den Sensorausgängen ist phasenversetzt:&lt;br /&gt;
&lt;br /&gt;
[[Bild:inkremental1.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:drehgeber_an_rncontrol.gif|center|framed|Beispielschaltung wenn man lediglich die Drehzahl ohne Drehrichtung auswerten möchte. Als Widerstand hat sich 330 Ohm als gut erwiesen.]]&lt;br /&gt;
&lt;br /&gt;
==Optische Sensoren==&lt;br /&gt;
===Helligkeit=== &lt;br /&gt;
Die Hauptanwendung solcher Sensoren ist, den hellsten Fleck im Raum zu finden.&lt;br /&gt;
Dies ist auch Teil vieler Roboterwettbewerbe. (Robo Callenge (2002 sic!), 'Ein Platz an der Sonne')&lt;br /&gt;
&lt;br /&gt;
Solche Sensoren können einfache [[LDR]]s oder [[Photodioden]] bzw. [[Phototransistoren]] sein.&lt;br /&gt;
LDRs haben den Vorteil, dass sie relativ hoch aussteuern, der große Nachteil ist aber, dass diese Sensoren ziemlich Wärmeempfindlich und etwas träge.&lt;br /&gt;
Photodioden und Phototransistoren haben den Vorteil, dass sie sehr genau sind, aber nicht besonders hoch aussteuern. Diese sollte man evtl. über einen OpAmp verstärken.&lt;br /&gt;
&lt;br /&gt;
[[Bild:fotowiderstand.jpg|center|framed|Ein typischer Fotowiderstand]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:SFH300.jpg|center|framed|SFH300, ein typischer Phototransistor]]&lt;br /&gt;
&lt;br /&gt;
Die Suche nach dem hellsten Fleck im Raum ist wie ich finde ein gutes Einsteigerthema!&lt;br /&gt;
&lt;br /&gt;
===CNY70===&lt;br /&gt;
&lt;br /&gt;
Der CNY70 ist ein Foto-Reflex Optokoppler. In einem würfelförmigem Gehäuse befindet sich eine Infrarot LED als Sender und ein Infrarot Fototransistor als Empfänger. Damit kann auf kurze Entfernung (wenige Millimeter) das reflektierte Licht der IR-LED durch den IR-Fototransistor gemessen werden.  &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Bild:cny70.jpg|thumb|200px|CNY70]]&lt;br /&gt;
|[[Bild:cny70_pinout.jpg|framed|CNY70 Vishay Pinout]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Achtung:''' Es existiert auch noch ein CNY70 von Temic mit anderer Pinbelegung, dort ist der Fototransistor verdreht eingebaut.&lt;br /&gt;
&lt;br /&gt;
Der CNY70 eignet sich für eine Vielzahl von Sensoren. Z.B. als Liniensensor, Radencoder, Abgrunddetektor und Lichtschranke. Allerdings ist er empfindlich gegen Streulicht, da  das Licht der IR-LED nicht moduliert ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:cny70_schem1.gif|thumb|center|600px|CNY70 als Liniensensor]]&lt;br /&gt;
&lt;br /&gt;
Der Liniensensor benötigt 2 A/D Wandler Eingänge des Prozessors. Die CNY70 sollten so nah wie möglich in Bodennähe angebracht sein (1..3mm). Der P-Kanal FET BS250 dient als Schalter für die IR LEDs des CNY70. Damit spart man Strom, wenn der Liniensensor nicht benötigt wird. Allerdings wird dafür ein weiterer Prozessor Ausgang als Enable Signal benötigt. HIGH Pegel schaltet die Sensor LEDs aus, LOW Pegel ein.  Wird keine Enable Funktion gewünscht, läßt man den BS250 einfach weg und hängt die Vorwiderstände der Sensor LEDs direkt an VCC.&lt;br /&gt;
&lt;br /&gt;
[[Bild:cny70_schem2.gif|thumb|center|600px|CNY70 als Radencoder mit Schmitt-Trigger]]&lt;br /&gt;
&lt;br /&gt;
Die Radencoder benötigen zwei digitale Eingangsports des Prozessors. A/D Wandler sind nicht nötig, da die Schmitt-Trigger Gatter für saubere Logik Signale sorgen. Die CNY70 sollten so nah wie möglch an den Rädern sitzen (1..2mm). Die gewählten Widerstandswerte für R17/R19 bzw. R18/R20 sind optimiert für Radencoder die auf Transparentfolie gedruckt und auf Aluminium Räder aufgeklebt werden. Für Radencoder die auf Papier ausgedruckt werden, sind andere Widerstandswerte notwendig.&lt;br /&gt;
Der P-Kanal FET BS250 dient als Schalter für die IR LEDs des CNY70. Damit spart man Strom, wenn der Radencoder nicht benötigt wird. Allerdings wird dafür ein weiterer Prozessor Ausgang als Enable Signal benötigt. HIGH Pegel schaltet die Sensor LEDs aus, LOW Pegel ein. Wird keine Enable Funktion gewünscht, läßt man den BS250 einfach weg und hängt die Vorwiderstände der Sensor LEDs direkt an VCC.&lt;br /&gt;
&lt;br /&gt;
===Distanzsensor IS471F===&lt;br /&gt;
&lt;br /&gt;
IS471F - Hindernisserkennung mit Infrarot Distanzsensor&lt;br /&gt;
&lt;br /&gt;
Das hier vorgestellte IC IS471F erlaubt eine einfach und sogar recht preisgünstige Hinternisserkennung per Infarot. Dazu muß im wesentlichen nur noch eine Infrarot-Diode an das IC angeschlossen werden. Das modulierte Licht wird von einem Gegenstand direkt auf das IC zurückgeworfen und somit das Hinterniss erkannt. Tageslicht/Fremdlicht stört den IS471 überhaupt nicht, da das Licht mit einer bestimmten Frequenz moduliert wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:is471.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der normale Schaltungsaufbau sieht also wie oben abgebildet aus! In der Praxis kann das dann in etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:is471beispiel.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das englische Datenblatt findet man im Roboternetz-Download-Bereich&lt;br /&gt;
&lt;br /&gt;
Die normale Reichweite ist in gewissen Grenzen abhängig von der Farbe des Hinternisses. In der Regel reicht es jedoch durchaus einige cm so das langsame Roboter durchaus sehr gut damit zurecht kommen. Durch besonders helle Infrarot LED´s und durch zusätzlich LED-Fassungen kann man die Reichweite erhöhen. Wem das noch nicht reicht, der kann über einen zusätzlichen Transistor die Strahlungsleistung der LED noch weiter erhöhen. &lt;br /&gt;
&lt;br /&gt;
[[Bild:is471verstaerkung.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
http://www.roboternetz.de/bilder/mehrereis471.gif&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sharp Infrarotsensoren===&lt;br /&gt;
&lt;br /&gt;
Sharp hat eine ganz interessante Serie von Bausteinen herausgebracht mit denen ein Roboter sogar recht genau Entfernungen messen kann. Das Messergebnis ist nahezu unabhängig von der Farbe und Helligkeit des gemessenen Objektes. Die Ansteuerung ist sehr einfach, der Sensorausgang kann zum Beispiel direkt an einen analogen Eingang eines Mikrocontrollers angeschlossen werden. Die Sensoren sind unter den Roboter-Bastlern weit verbreitet. &lt;br /&gt;
Bei vielen Händlern erhältlich kosten die Sensoren derzeit je nach Typ und Händlerspanne zwischen 13 bis 25 Euro.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Bild:Sharpentfernungssensor.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oft werden selbst in kleinen Roboter-Projekten mehrere dieser Sensoren genutzt da sie nur einen äußerst engen Erfassungsbereich haben. Sie eignen sich daher sehr gut zur Vermessung einer Umgebung, insbesondere dann wenn Sie drehbar auf einem Servo montiert werden. Als Kollisionsschutz sind sie wegen dem engen Winkel nur bedingt geeignet, zu diesem Zweck eignen sich zum Beispiel Ultraschallsensoren besser.&lt;br /&gt;
Das Funktionsprinzip der Sensoren ist einfach. Der Sensor besteht aus Sender und Empfänger. Der Sender sendet einen Infrarot-Strahl aus, der vom Hindernis reflektiert wird. Je nach Entfernung trifft der reflektierte Strahl an einer unterschiedlichen Stelle auf den Empfänger (ein sog. Position Sensitive Device, PSD). Der Empfänger setzt den Auftreffpunkt in einen analogen Spannungswert um. Eine schöne Skizze dazu:  &lt;br /&gt;
&lt;br /&gt;
[[Bild:sharpfunktion.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Einige der beliebtesten Bausteine sind:'''&lt;br /&gt;
&lt;br /&gt;
====Sharp GP2D12==== &lt;br /&gt;
Distanz 10 - 80 cm - Entfernung wird durch analoge Spannung am Ausgang übermittelt&lt;br /&gt;
Dies ist der am häufigsten eingesetzte Sharp Typ bei mobilen Robotern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:GP2D12anschluss.gif|center]]&lt;br /&gt;
&lt;br /&gt;
====Sharp GP2YA21YK==== &lt;br /&gt;
Distanz 10 - 80 cm - Entfernung wird durch analoge Spannung am Ausgang übermittelt &lt;br /&gt;
&lt;br /&gt;
====Sharp GP2D120====&lt;br /&gt;
Distanz 4 - 30 cm - Entfernung wird durch analoge Spannung am Ausgang übermittelt&lt;br /&gt;
&lt;br /&gt;
====Sharp GP2Y0A02YK====&lt;br /&gt;
Distanz 20 - 150 cm - Entfernung wird durch analoge Spannung am Ausgang übermittelt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
http://www.shop.robotikhardware.de/shop/catalog/images/artikelbilder/sensoren/gp2y0a02yk_diagramm.gif&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Sharp GP2D02====&lt;br /&gt;
Distanz 10 - 80 cm - Entfernung wird durch 8 Bit Digitalausgang übermittelt&lt;br /&gt;
&lt;br /&gt;
====Sharp GP2D150====&lt;br /&gt;
Distanz 3-30 cm - 1 Bit Schaltausgang  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Datenblätter zu den oberen Sensoren findet man im Download-Bereich des Roboternetz, siehe unter [[#Weblinks]].&lt;br /&gt;
 &lt;br /&gt;
Um die analogen Spannung der Sensoren in eine Entfernung umzurechnen, kann man sich mit Hilfe des Datenblattes oder einfacher Probemessungen Tabellen erstellen, welche dann vom Controller zur Umsetzung genutzt werden.&lt;br /&gt;
Bequemer ist allerdings eine Näherungsformel:&lt;br /&gt;
&lt;br /&gt;
====Formel zur Entfernungsberechnung==== &lt;br /&gt;
 D = A/(X-B) &lt;br /&gt;
&lt;br /&gt;
 D ist die Entfernung &lt;br /&gt;
 X ist der Ausgabewert des Sensors &lt;br /&gt;
 A ist die Steigung der Kurve A/X &lt;br /&gt;
 B ist der Offset der Kurve &lt;br /&gt;
&lt;br /&gt;
Die Konstanten A und B ermittelt man am besten über zwei Probemessungen: &lt;br /&gt;
&lt;br /&gt;
D und X sind die Entfernung und der Ausgabewert der ersten Messung (z.B. bei 20 cm) &lt;br /&gt;
D' und X' sind die Entfernung und der Ausgabewert der zweiten Messung (z.B. bei 60 cm) &lt;br /&gt;
&lt;br /&gt;
 A = ((X' - X) * D' * D) /(D - D' ) &lt;br /&gt;
 B = (D' * X' - D * X) /(D' - D) &lt;br /&gt;
&lt;br /&gt;
====GP2D12 Messkurve====&lt;br /&gt;
&lt;br /&gt;
[[Bild:gpd12kurve.gif|center]]&lt;br /&gt;
&lt;br /&gt;
====GPD120 Messkurve====&lt;br /&gt;
&lt;br /&gt;
[[Bild:gpd120kurve.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Ultraschall Sensoren== &lt;br /&gt;
===Ultraschallsensoren SRF04===&lt;br /&gt;
Die Firma '''Devantech''' hat eine Serie von sehr günstigen und kleinen Ultraschallsensoren entwickelt, die sich im Bereich &amp;quot;autonome Robotersysteme&amp;quot; durchgesetzt haben. Sie sind sehr verbreitet, da sie auch für &amp;quot;Hobby-Robotiker&amp;quot; erschwinglich sind und es sich nicht lohnen würde vergleichbare Module selber zu bauen, da diese meistens ungenauer und teurer wären.&lt;br /&gt;
&lt;br /&gt;
Bekannt wurde die Serie durch den '''SRF04'''. Mit seinen kleinen Abmessungen, der niedrigen Stromaufnahme und der hohen Genauigkeit ist er für kleine Messaufgaben im Entfernungsbereich von 3cm bis 3m gut geeignet. Der SRF04 kann einen 3cm dicken Besenstiel in 2m Entfernung erkennen und wird durch ein [[PWM]]-Signal ausgewertet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf_04a.jpg]] [[Bild:srf_04.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Ultraschallsensor SRF05===&lt;br /&gt;
Der Nachfolger des SRF04 ist der neuer SRF05. Er besitzt noch eine etwas höhere Reichweite bis 4 Meter. Zudem besitzt er neben dem kompatibel Mode zu SRF04 noch eine Betriebsart bei der er über einen einzigen Port (Pin) gesteuert wird. Das heißt sowohl der Start der Messung und das Ergebnis wird über die gleiche Leitung übertragen. [[Ultraschall SRF05 an RN-MiniControl|Programmbeispiel in Bascom]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:Srf05mode1.jpg|center]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf05mode2.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf05mode2diagram.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SRF08===&lt;br /&gt;
Die Alternative zu SRF04 und SRF05 ist der beliebte  '''SRF08''' und dessen Nachfolger '''SRF10''', der nun über den [[I2C]]-Bus ausgewertet werden kann und über eine Reichweite von 3cm bis 6m verfügt. Er hat eine noch kleinere Stromaufnahme und zusätzlich befindet sich auf der Platinenfront ein Fotowiderstand(LDR) dessen Lichtmesswerte sich ebenfalls über den [[I2C]]-Bus auswerten lassen. Durch den SRF08 wird es möglich auch bis zu 16 Mehrfachechos, von weiter hinten gelegenen Gegenständen, auszuwerten, die bei dem SRF04 ignoriert wurden. Über den [[I2C]]-Bus kann man die Messwerte in cm, zoll und in der Laufzeit µs auslesen und spart sich somit die externe Auswertung der Laufzeit, wie bei dem SRF04. Weiterhin können insgesamt 16 SRF08-Module an einen [[I2C]]-Bus angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf08_a.jpg]]  [[Bild:srf08_b.jpg]]&lt;br /&gt;
&lt;br /&gt;
===SRF08 Programmbeispiel===&lt;br /&gt;
SFR08 Programm Beispiel mit [[Bascom]]&lt;br /&gt;
Über die grundsätzliche Behandlung des [[I2C]]-Bus mit [[Bascom]] kann man [[I2C|hier]] nachlesen. &lt;br /&gt;
&lt;br /&gt;
 Const Sf08_adr_0 = &amp;amp;HE0             ' I2C Adresse&lt;br /&gt;
 Const Sf08_c_range = 100            ' Reichweite&lt;br /&gt;
 Const Sf08_c_gain = 1               ' Empfindlichkeit&lt;br /&gt;
&lt;br /&gt;
Die Adresse ist der Default-Wert für den Sensor, und kann eingestellt werden. &lt;br /&gt;
Range und Gain sind anzupassen, die angegeben Werte sind aber mal grundsätzlich verwendbar.&lt;br /&gt;
&lt;br /&gt;
'''Setup'''&lt;br /&gt;
Nach dem Reset sind einmal Range und Gain zu setzen.&lt;br /&gt;
&lt;br /&gt;
'''Setzen Range'''&lt;br /&gt;
&lt;br /&gt;
      I2cstart&lt;br /&gt;
      I2cwbyte Sf08_adr_0   ' Device I2C Adresse&lt;br /&gt;
      I2cwbyte 2            ' register &amp;quot;range&amp;quot;&lt;br /&gt;
      I2cwbyte Sf08_c_range  &lt;br /&gt;
      I2cstop&lt;br /&gt;
 &lt;br /&gt;
'''Setzen Gain'''&lt;br /&gt;
&lt;br /&gt;
      I2cstart&lt;br /&gt;
      I2cwbyte Sf08_adr_0   ' Device I2C Adresse&lt;br /&gt;
      I2cwbyte 1            ' register &amp;quot;gain&amp;quot;&lt;br /&gt;
      I2cwbyte Sf08_c_gain    &lt;br /&gt;
      I2cstop&lt;br /&gt;
&lt;br /&gt;
'''Abfrage Trigger'''&lt;br /&gt;
&lt;br /&gt;
Die Abfrage soll laut Beschreibung in zwei Schritten erfolgen, zwischen denen ca 70 mS gewartet werden soll. Diese Zeit braucht das Gerät zum Messen. &lt;br /&gt;
&lt;br /&gt;
'''Trigger'''  &lt;br /&gt;
      I2cstart&lt;br /&gt;
      I2cwbyte Sf08_adr_0   ' Device I2C Adresse&lt;br /&gt;
      I2cwbyte 0            ' register &amp;quot;Trigger&amp;quot;&lt;br /&gt;
      I2cwbyte 81           ' Meßwert in Zentimetern&lt;br /&gt;
&lt;br /&gt;
      Waitms 70 &lt;br /&gt;
&lt;br /&gt;
'''Ergebnis abholen'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 DIM Lsb as Byte&lt;br /&gt;
 DIM Msb as Byte&lt;br /&gt;
 DIM IVal as word&lt;br /&gt;
&lt;br /&gt;
      I2cstart              ' Repeated Start&lt;br /&gt;
      I2cwbyte Sf08_adr_0   ' Device I2C Adresse&lt;br /&gt;
      I2cwbyte 2            ' Meßwert US&lt;br /&gt;
&lt;br /&gt;
      I2cstart                 ' repeated Start&lt;br /&gt;
      I2cwbyte Sf08_adr_0 + 1  ' Device I2C Adresse READ!&lt;br /&gt;
      I2crbyte Msb , Ack      ' Bit 8-15&lt;br /&gt;
      I2crbyte Lsb , Nack     ' Bit 0-7&lt;br /&gt;
      I2cstop&lt;br /&gt;
&lt;br /&gt;
      Ival = Makeint(lsb , Msb) ' umwandeln in Word (16 Bit)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SRF10 Ultraschallsensor ===&lt;br /&gt;
SRF10 ist quasi der Nachfolger von SRF08. Er bietet die gleiche Leistung und ist sogar gegenüber Spannungschankungen noch etwas unempfindlicher als der Vorgänger. Der größte Vorteil besteht jedoch darin das er ca. 1/3 kleiner als sein Vorgänger ist.   &lt;br /&gt;
&lt;br /&gt;
[[Bild:srf10foto1.jpg]] [[Bild:srf10foto2.gif]]&lt;br /&gt;
&lt;br /&gt;
Die technischen Daten sind ähnlich:&lt;br /&gt;
* Betriebsspannung: 5V &lt;br /&gt;
* Stromaufnahme: ca. 3mA Standby, ca. 15mA während des Messens Frequenz: 40KHz &lt;br /&gt;
* Maximale Reichweite: 6 m &lt;br /&gt;
* Minimale Reichweite: 4 cm &lt;br /&gt;
* Messwerterfassung: intern, kein externer Controller zur Zeitmessung notwendig &lt;br /&gt;
* Interface: Standard – I2C (passend zu zahlreichen Controllerboards, z.B. RN-Control) &lt;br /&gt;
* Ausgabeformat: µs, cm oder Zoll &lt;br /&gt;
* Feature: Analogverstärkung 40 - 700 (einstellbar, 16 Stufen) &lt;br /&gt;
* Abmessungen: 32mm x 15mm x 10mm &lt;br /&gt;
* Hersteller: Devantech Ltd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Ultraschall_SRF10_an_RN-Control|Programmbeispiel in Bascom]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf10ausbreitung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SRF02 Ultraschallsensor===&lt;br /&gt;
Der erste Sensor aus der SRF-Reihe der mit nur einem Ultraschallwandler auskommt. Dennoch können sich die Leistungen zeigen. Vorallem die Tatsache das sowohl RS232 und I2C-Bus Schnittstelle vorhanden ist dürfte viele Bastler erfreuen.&lt;br /&gt;
&lt;br /&gt;
* Betriebsspannung 5V (stabilisiert) &lt;br /&gt;
* Stromaufnahme nur 4mA (typisch) &lt;br /&gt;
* Ultraschallfrequenz 40khz &lt;br /&gt;
* Reichweite 15cm bis 6 Meter &lt;br /&gt;
* Schnittstelle RS232 (TTL) und I2C-Bus &lt;br /&gt;
* Ausgabeeinheit wahlweise mm, inch oder uS &lt;br /&gt;
* Einfachste Verwendung, keine Kalibration/Justierung notwendig&lt;br /&gt;
* Größe 24mm x 20mm x 17mm &lt;br /&gt;
&lt;br /&gt;
[[Bild:srf02_germany.jpg]]&lt;br /&gt;
&lt;br /&gt;
Einige Bascom Programmbeispiele zum SRF02 findet man unter [[Ultraschallsensor SRF02 am RN-Board]]&lt;br /&gt;
&lt;br /&gt;
=== Vergleichstabelle ===&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{|{{Blaueschmaltabelle}}&lt;br /&gt;
 |&lt;br /&gt;
 |'''SRF10'''&lt;br /&gt;
 |'''SRF08'''&lt;br /&gt;
 |'''SRF05'''&lt;br /&gt;
 |'''SRF04'''&lt;br /&gt;
 |'''SRF02'''&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Betr. Spannung'''&lt;br /&gt;
 |5V&lt;br /&gt;
 |5V&lt;br /&gt;
 |5V&lt;br /&gt;
 |5V&lt;br /&gt;
 |5V&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Stromaufnahme'''&lt;br /&gt;
 |3mA typ.,&amp;lt;br&amp;gt; 15mA max.&lt;br /&gt;
 |3mA typ.,&amp;lt;br&amp;gt; 15mA max.&lt;br /&gt;
 |4mA typ.,&amp;lt;br&amp;gt; 30mA max.&lt;br /&gt;
 |30mA typ.,&amp;lt;br&amp;gt; 50mA max.&lt;br /&gt;
 |4mA typ.&amp;lt;br&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
 |-&lt;br /&gt;
 |'''US Leistung'''&lt;br /&gt;
 |100 – 150mW&lt;br /&gt;
 |100 – 150mW&lt;br /&gt;
 |100 – 150mW&lt;br /&gt;
 |100 – 150mW&lt;br /&gt;
 |?? mW&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Frequenz'''&lt;br /&gt;
 |40kHz&lt;br /&gt;
 |40kHz&lt;br /&gt;
 |40kHz&lt;br /&gt;
 |40kHz&lt;br /&gt;
 |40kHz&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Bereich'''&lt;br /&gt;
 |72&amp;amp;ordm;&lt;br /&gt;
 |55&amp;amp;ordm;&lt;br /&gt;
 |55&amp;amp;ordm;&lt;br /&gt;
 |55&amp;amp;ordm;&lt;br /&gt;
 |55&amp;amp;ordm;&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Reichweite'''&lt;br /&gt;
 |4cm - 6m&lt;br /&gt;
 |3cm - 6m&lt;br /&gt;
 |3cm - 4m&lt;br /&gt;
 |3cm - 3m&lt;br /&gt;
 |15cm - 6m&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Triggerimpuls'''&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |10µs min.&lt;br /&gt;
 |10µs min.&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Abmessung in mm'''&lt;br /&gt;
 |32 x 15 x 10&lt;br /&gt;
 |43 x 20 x 17&lt;br /&gt;
 |43 x 20 x 17&lt;br /&gt;
 |43 x 20 x 17&lt;br /&gt;
 |24 x 20 x 17&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Interface'''&lt;br /&gt;
 |I2C&lt;br /&gt;
 |I2C&lt;br /&gt;
 |TTL Impuls&lt;br /&gt;
 |TTL Impuls&lt;br /&gt;
 |I2C o. RS232 TTL&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Feature'''&lt;br /&gt;
 |Minimodul&lt;br /&gt;
 |Lichtsensor&lt;br /&gt;
 |SRF04 Modus&lt;br /&gt;
 |&lt;br /&gt;
 |nur 1 US-Kapsel&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Preis ca. *'''&lt;br /&gt;
 |44,00 €&lt;br /&gt;
 |44,00 €&lt;br /&gt;
 |22,00 €&lt;br /&gt;
 |25,00 €&lt;br /&gt;
 |19,00 €&lt;br /&gt;
 |}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''*''' Der Preis dient nur zum vergleich untereinander, nicht als Referenz !&lt;br /&gt;
&lt;br /&gt;
==Kompaß== &lt;br /&gt;
===Kompaß-Modul CMPS03===&lt;br /&gt;
Laut der Doku ist diese Modul speziell für die Bedürnisse von Robotern gestaltet worden. Es mißt seine Lage relativ zum Erdmagnetfeld und liefert diesen Wert&lt;br /&gt;
* Als PWM-Signal &lt;br /&gt;
* Über I2C entweder 0-255 als Byte oder&lt;br /&gt;
* 0-3599 als 16-Bit Wert (MSB first)&lt;br /&gt;
&lt;br /&gt;
In der vorliegenden Doku ist eine fixe I2C-Adresse von 0xC0 angegeben. Was leider noch fehlt, sind Angaben, ob und wie diese Adresse geändert werden kann.&lt;br /&gt;
&lt;br /&gt;
Bei waagrechter(!) Montage ist das also ein Kompaß, bei senkrechter Montage dieser Module kann man auch die Neigung in Nord-Süd-Richtung messen. Hierzu sind 2 Module nötig, die zueinander um 90° gedreht angeordnet sein müssen. Die Neigung in Ost-West-Richtung zu messen, ist dagegen leider nicht möglich. Wenn ein CMPS03 als Kompass verwendet werden soll, sind zwei Dinge zu beachten: &lt;br /&gt;
* Mindestens 20 cm Abstand von Eisen(Motore)&lt;br /&gt;
* Exakte horizontale Ausrichtung.&lt;br /&gt;
Eine Montage an einem langen Stab aus Holz oder Kuststoff hoch über dem Roboter ist sinnvoll. &lt;br /&gt;
&lt;br /&gt;
Das Ganze ist eine Anwendung des Philips-KMZ51 Magnet-Feld-Sensors mittels eines PIC16F872&lt;br /&gt;
&lt;br /&gt;
Gelegentlich sollte das Modul kalibriert werden. Das kann über den I2C-Bus, aber auch mittels einen Pins am Modul initiiert werden. Dann muß das Module langsam um 360 Grad gedreht werden. Dabei nimmt das Modul 4 Meßpunkte auf und speichert sie im EEPROM. &lt;br /&gt;
&lt;br /&gt;
Ein Beispielprogramm findet man hier:&lt;br /&gt;
* [[Bascom und Kompass CMPS03]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:cmps3pin.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
==Beschleunigung==&lt;br /&gt;
&lt;br /&gt;
Beschleunigungssensoren messen die Beschleunigung, die auf sie wirkt - wenn sie auf dem Tisch liegen, messen sie beispielsweise die Erdbeschleunigung von 1g. In einem Auto können weitere Beschleunigungen hinzukommen: Zur Seite beim Kurvenfahren, nach vorne oder hinten beim Beschleunigen, oder bei zügiger Fahrt über eine Bergkuppe auch mal welche in vertikaler Richtung.&amp;lt;br&amp;gt;&lt;br /&gt;
Beschleunigungssensoren sind meist mehrdimensional ausgelegt, so dass für mehrere Achsen ein Sensor verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
Anwendungen finden sie in ESP-Systemen in Autos, die u.a. über die Querbeschleunigung ausrechnen können, ob das Fahrzeug seitlich driftet oder gar schleudert.&amp;lt;br&amp;gt;&lt;br /&gt;
Eine andere wichtige Aufgabe übernehmen sie zusammen mit Gyroskopen in Trägheitsnavigationssystemen, die dann sowohl die Lage im Raum als auch die Bewegung feststellen können.&lt;br /&gt;
&lt;br /&gt;
Moderne Piezo-Sensoren sind nur noch Chip-gross und können direkt in Schaltungen integriert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiele für solche Chips ist die Chipfamilie [[ADXL]] von Analog Devices. Sie umfaßt 1- und 2-Achs Accelerometer in verschiedenen Empfindlichkleiten. Der Test eines solchen Sensors ist hier beschrieben. http://www.roboternetz.de/phpBB2/viewtopic.php?t=8525&lt;br /&gt;
&lt;br /&gt;
==Drehung==&lt;br /&gt;
&lt;br /&gt;
Um Drehungen zu messen, werden sogenannte Gyroskope, kurz &amp;quot;Gyros&amp;quot; verwendet. Typische Vertreter sind hier die [[ADXRS]]-Familie von Analog Devices. Diese sind allerdings, anders als die Beschleunigungssensoren, meistens nur für eine Achse ausgelegt. Die Ausgabe erfolgt meist analog, jede Ausgangsspannung entspricht einer bestimmten Drehrate in °/Sekunde.&lt;br /&gt;
&lt;br /&gt;
Gemessen wird die Auswirkung der Corioleskraft auf zwei gleiche, in Bewegung gehaltene Massen. Diese schwingen radial, d.h. 90° verdreht zu der Achse, auf der die Drehung gemessen werden soll. Wird der Sensor um die Achse gedreht, ändert sich die Geschwindigkeit dieser Massen, da sie auf einer gedachten Scheibe abwechselnd nach innen und außen wandern. Je weiter sie außen sind, desto höher ist ihre Geschwindigkeit, je weiter innen, desto langsamer sind sie. Bei der Bewegung nach außen müssen sie also beschleunigt werden, andersherum genauso. Die dabei auftretenden Beschleunigungen werden mittels einiger Fühler gemessen, die einen Plattenkondensator bilden.&lt;br /&gt;
&lt;br /&gt;
Eine Anwendung sind im Flugmodellbau Gyro-&amp;quot;Taillocks&amp;quot;, die in Hubschraubern die Heckstabilität verbessern und ESP-Systeme in Autos, die u.a. durch die Messung der Gierrate, also der Drehung des Fahrzeugs um die Hochachse, feststellen können, ob das Fahrzeug seitlich driftet oder sogar schleudert.&lt;br /&gt;
&lt;br /&gt;
==Geschwindigkeit==&lt;br /&gt;
&lt;br /&gt;
Geschwindigkeit kann unterschiedlich erfasst werden.&lt;br /&gt;
* Direkt am Rad oder Antrieb. Diese Methode wird häufig auch in KFZ verwendet, stößt jedoch an ihre Grenzen wenn die Räder viel Schlupf haben. &lt;br /&gt;
* Gegenüber der Luft mittels [[Pitot-Tube]]. Das wird bei Flugzeugen so gemacht, oder z.B. in der Formel 1. Bei niedriegen Geschwindigkeiten nicht zu gebrauchen&lt;br /&gt;
* Mittels eines optischen Sensors gegenüber dem Untergrund. Dafür kann ein [[Maussensor]] aus einer optischen Maus verwendent werden, evtl. mit einer Anpassung der Optik für einen geänderten Abstand.&lt;br /&gt;
* Mittels GPS-Empfang. Funktioniert nur unter freiem Himmel.&lt;br /&gt;
&lt;br /&gt;
==Temperatur== &lt;br /&gt;
===NTCs===&lt;br /&gt;
NTCs (Negative Temperature Coefficient)oder Heißleiter sind stromleitende Materialien, die bei hohen Temperaturen Strom besser leiten als bei tiefen, das heißt, mit steigender Temperatur sinkt ihr elektrischer Widerstand. Siehe auch unter [[NTC]]. EIn großer Vorteil ist die leichte ANwendung und der geringe Preis. Nachteil ist das der Widerstandswert sich nicht linear mit der Temperatur verändert.&lt;br /&gt;
&lt;br /&gt;
[[Bild:ntc.gif]]&lt;br /&gt;
&lt;br /&gt;
===PTCs===&lt;br /&gt;
&lt;br /&gt;
PTCs sind Temperatursensoren, deren Widerstand sich mit steigender Temperatur erhöht. Dazu gehören&lt;br /&gt;
&lt;br /&gt;
*PT100, PT1000 etc.&lt;br /&gt;
*Die KTYxx-xxx Reihe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== KTY: Silizium Temperatursensoren ====&lt;br /&gt;
&lt;br /&gt;
Die KTY-Temperatursensoren sind verglichen mit anderen Temperatursensoren verhältnismäßig günstig, haben dafür aber auch mehr Nachteile.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Genauigkeit ist ziemlich eingeschränkt, weshalb die KTY-Temperatursensoren zuerst kalibriert werden sollten. Dies muss Schaltungstechnisch oder in Software erfolgen, eine eingebaute Kalibrierung gibt es nicht.&amp;lt;br&amp;gt;&lt;br /&gt;
Andererseits lassen sich mittels Oversampling sehr hoch aufgelöst Temperaturen messen, was aufgrund mittelmäßiger Linearität (auch nach der Linearisierung) aber nur bei der Messung kleiner Temperaturunterschiede empfehlenswert ist.&amp;lt;br&amp;gt;&lt;br /&gt;
Linearisiert werden die KTY an 5 Volt mit einem Reihenwiderstand von etwa 2,7 kOhm bis 3,3 kOhm.&lt;br /&gt;
&lt;br /&gt;
===Temperatur-Sensor LM75===&lt;br /&gt;
&lt;br /&gt;
[[Bild:lm75.gif|center]]&lt;br /&gt;
&lt;br /&gt;
Dieser Chip von National Semiconductors kann die Umgebungstemperatur mit einer Genauigkeit von 0.5&amp;lt;sup&amp;gt;o&amp;lt;/sup&amp;gt; Grad Celsius messen. Das angegebene Bereich ist -25&amp;lt;sup&amp;gt;o&amp;lt;/sup&amp;gt; bis 100&amp;lt;sup&amp;gt;o&amp;lt;/sup&amp;gt; C. Es wird zweierlei geboten:&lt;br /&gt;
* Ein Schaltausgang - Wenn man also z.B. einen Ventilator einschalten möchte&lt;br /&gt;
* I2C - Der obere Teil der Adresse ist fix 0x9n, die Bits 1-3 kann man mit Jumper einstellbar machen oder fest verdrahten. &lt;br /&gt;
&lt;br /&gt;
Durch einen einfachen I2C-Lesebefehl kann man die Temperatur einlesen (16-Bit), das Format ist allerdings etwas tricky. Das erste Byte (8-Bit) ist die Temperatur in ganzen Grad, als normales signed char, vom zweiten Byte gibt das MSB an, ob noch 0.5&amp;lt;sup&amp;gt;o&amp;lt;/sup&amp;gt; '''dazuzuzählen''' sind (also auch, wenn vorne eine negative Zahl steht)  &lt;br /&gt;
&lt;br /&gt;
Der Grund ist der: die vorzeichenbehaftete 9-Bit Zahl, die da linksbündig in zwei Datenbytes übertragen wird, gibt eigentlich an, wieviel 0.5 Grad - Einheiten gemessen wurden. Rein rechnerisch wäre also Temperatur = Wert * 0.5, das müßte man aber als float durchführen oder erweitern&lt;br /&gt;
&lt;br /&gt;
===Programm-Beispiel für LM75===&lt;br /&gt;
Der LM75 wird über den [[I2C]]-Bus angesprochen&lt;br /&gt;
In BasCom, wo es ja keine signed char gibt, wird das Interpretieren auf sehr unterschiedliche Art empfohlen. &lt;br /&gt;
&lt;br /&gt;
Ich empfehle:&lt;br /&gt;
&lt;br /&gt;
 dim Ival as integer&lt;br /&gt;
 dim Msb as byte&lt;br /&gt;
 dim Lsb as byte&lt;br /&gt;
         I2cstart&lt;br /&gt;
         I2cwbyte &amp;amp;H91   ' Lese-adresse !  &lt;br /&gt;
         If Err = 1 Then&lt;br /&gt;
            I2cstop       ' kein ACK vom LM75 --&amp;gt; irgendein Fehler&lt;br /&gt;
            Ival = 9999   ' Zeichen, daß der Wert ungültig ist !&lt;br /&gt;
         Else&lt;br /&gt;
            I2crbyte Msb , Ack&lt;br /&gt;
            I2crbyte Lsb , Nack&lt;br /&gt;
            I2cstop&lt;br /&gt;
            If Msb.7 = 1 Then&lt;br /&gt;
               Ival = Makeint(msb , &amp;amp;HFF)   ' auffüllen mit den Vorzeichen bits&lt;br /&gt;
            Else&lt;br /&gt;
               Ival = Makeint(msb , &amp;amp;H00)   ' positiv, also bleibt es so&lt;br /&gt;
            End If&lt;br /&gt;
            Ival = Ival * 10                ' erweitern &lt;br /&gt;
            If Lsb.7 = 1 Then&lt;br /&gt;
              Ival = Ival + 5               ' fünf Zehntel Grad dazu &lt;br /&gt;
            End If&lt;br /&gt;
         End if&lt;br /&gt;
&lt;br /&gt;
das ergibt die Temperatur in Zehntel-Grad (Natürlich nur, wenn's keine Fehler gab).&lt;br /&gt;
&lt;br /&gt;
==Resistive Sensoren==&lt;br /&gt;
...&lt;br /&gt;
==Kapazitive Sensoren==&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für kapazitive Sensoren sind Luftfeuchtigkeitsmesser, die ihre Kapazität entsprechend der Luftfeuchtigkeit ändern. Das Auslesen der Kapazität kann prinzipiell über das Ausmessen von Ladekurven geschehen. Dies ist jedoch bei kleinen Kapazitäten nicht praktisch durchführbar, weshalb man in diesem Falle meist einen Schwingkreis baut, dessen Frequenz man dann misst und so dann zusammen mit der bekannten Induktivität der Spule die Kapazität des Kondensators ausrechnen kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:feuchtesensor.gif|framed|center|Valvo Feuchtigkeitssensor 10-90% (Kapazität: 122 pF bei TU = 25 °)]]&lt;br /&gt;
&lt;br /&gt;
==Induktive Sensoren==&lt;br /&gt;
Induktiver Näherungsschalter&lt;br /&gt;
&lt;br /&gt;
Sensoren die ihre Induktivität entsprechend der Messgröße ändern können auch mit Hilfe eines Schwingkreises mit bekannter Kapazität ausgemessen werden.&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
==Piezoelektrische Sensoren==&lt;br /&gt;
Hier ist ein Experiment dargestellt das die Funktion von Piezowandlern demonstriert.&lt;br /&gt;
&lt;br /&gt;
Drückt man auf eine längliche Glasplatte (Mikroskopträger Länge 76mm), die an den Enden auf je einem Piezo Wandler gelagert ist, dann ergeben sich Signale, die von den Kräften auf die Wandler abhängig sind. &lt;br /&gt;
&lt;br /&gt;
Die Summe der beiden Kräfte entspricht der Gesamtkraft. Das Verhältnis der beiden Kräfte entspricht dem Verhältnis der Abstände des Druckpunktes zum Wandler. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Piezowandler.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Versuch wurde mit der Frequenz von ca. 4Hz (0,5s/div) von einem Ende bis zum anderen auf die Platte gedrückt. (Tonleiter). Die Signale der beiden Wandler sind im Oszillogramm aufgetragen und die Folge der Druck-Positionen ist auf den ersten Blick schon mal nachvollziehbar.&lt;br /&gt;
&lt;br /&gt;
==PIR Passiv Infrarot Sensoren==&lt;br /&gt;
Hier handelt es sich um Passiv-Infrarot-Bewegungsmelder. Bewegungsmelder regieren beim Eintritt einer Person (Tier) in das Erfassungsfeld des Sensors. Die Anwendungsmöglichkeiten sind nahezu unbegrenzt, man kennt die Technik ja von vielen Terrassenlampen, welche sich beim vorbeigehen automatisch einschalten.&lt;br /&gt;
Reagiert wird also auf Die Körperwärme einer sich im Erfassungsfeld bewegenden Person.&lt;br /&gt;
[[Bild:pir.jpg|right]]&lt;br /&gt;
Zum Prinzip: &lt;br /&gt;
Wärmestrahlen, die einen Erfassungsvorgang auslösen, liegen im Infrarot-Bereich des Wellenspektrums. In diesem Bereich gibt der menschliche Körper seine Wärmestrahlung ab. Leuchtmittel wie Glüh- , Halogen- und Entladungslampen, die für eine Strahlung im sichtbaren Bereich um 0,555 μm entwickelt wurden, geben jedoch auch einen erheblichen Teil an Wärmestrahlung im Infrarot-Bereich ab.&lt;br /&gt;
Im Spektrum oberhalb des sichtbaren Licht, ab 0,780 μm, beginnt der Infrarot-Bereich. Die Wellenlänge&lt;br /&gt;
dieser IR-Strahlung ist abhängig von der Temperatur eines Körpers. Die Wärmestrahlung&lt;br /&gt;
des Menschen hat ihr Maximum zwischen 9 und 10 μm im Infrarot-Bereich.&lt;br /&gt;
Diese Tatsache nutzt der PIR Sensor mittels sogenannter pyroelektrischer IRDetektoren, welche eine hohe Empfindlichkeit im langwelligen Infrarot-Bereich aufweisen. Die Infrarot-&lt;br /&gt;
Strahlung verhält sich ähnlich wie sichtbares Licht. Sie kann reflektiert und durch Linsen&lt;br /&gt;
gebündelt werden.&lt;br /&gt;
Basis eines solchen IR-Detektors (Sensors) sind Lithium-Tantalatkristalle. Diese Kristalle erzeugen,&lt;br /&gt;
bei Wärmeänderung (positive oder negative Temperaturänderung), eine elektrische Spannung.&lt;br /&gt;
Die von den Kristallen abgegebene Spannung liegt im Bereich von einigen μV (μV = millionstel Volt) und ist von folgenden Bedingungen abhängig: &lt;br /&gt;
* Der Intensität der Wärmequelle (Temperatur und Größe)&lt;br /&gt;
* Dem Umgebungsmedium (Temperatur, unterschiedliche Luftfeuchtigkeit)&lt;br /&gt;
* Der Entfernung zwischen Wärmequelle und IR-Sensor&lt;br /&gt;
* Der Bewegungsgeschwindigkeit und Bewegungsrichtung der Wärmequelle&lt;br /&gt;
* Der Empfindlichkeit des PIR-Elementes (frequenzabhängiges Bandpaßverhalten mit Maximum bei ca. 0,1 Hz)&lt;br /&gt;
&lt;br /&gt;
Zur Unterdrückung von Einflüssen aus der Umgebung (übliche wetterbedingte Temperaturänderungen), sind in jedem Sensor 2 Kristalle antiparallel geschaltet. &lt;br /&gt;
Einer der Kristalle gibt, bei Auftreffen von Wärmestrahlung einen positiven, der andere einen negativen Spannungsimpuls ab. Wärmeänderungen die gleichzeitig und mit gleicher Intensität auf beide Kristalle einwirken lösen so keinen Erfassungsvorgang aus, denn die beiden Impulse heben sich gegenseitig auf. Dadurch ist ein Auslösen bei Wärmeänderungen der Umgebung weitgehend ausgeschlossen.&lt;br /&gt;
Anders verhält es sich bei schnellen Bewegungen. Die Lithiumtantalat-Kristalle geben, entsprechend&lt;br /&gt;
der Bewegung und der dadurch hervorgerufenen Wärmeänderung im Erfassungsfeld, ihre&lt;br /&gt;
Impulse zeitversetzt ab. Die beiden Impulse addieren sich zu einer Wechselgröße mit höherer&lt;br /&gt;
Signalamplitude. Dieses elektrische Ausgangssignalist proportional der Wärmeänderung und führt zur Meldung einer Bewegung.&lt;br /&gt;
&lt;br /&gt;
==Autoren==&lt;br /&gt;
* [[Benutzer:PicNick|PicNick]]&lt;br /&gt;
* [[Benutzer:Frank|Frank]] &lt;br /&gt;
* [[Benutzer:Dennis.strehl|Dennis.strehl]]&lt;br /&gt;
* [[Benutzer:Florian|Florian]]&lt;br /&gt;
* Topic&lt;br /&gt;
* [[Benutzer:Manf|Manf]]&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[Navigation]]&lt;br /&gt;
* [[Sensoren]]&lt;br /&gt;
* [[Graycode]]&lt;br /&gt;
* [[Ultraschall SRF10 an RN-Control]]&lt;br /&gt;
* [[Ultraschall SRF05 an RN-MiniControl]]&lt;br /&gt;
* [[Ultraschallsensor SRF02 am RN-Board]]&lt;br /&gt;
* [[Bascom und Kompass CMPS03]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
*[http://www.ikm.uni-karlsruhe.de/forschung/pzt_webseiten/de/grundlagen/pyro.html Piezoelektrische Sensoren]&lt;br /&gt;
*[http://www.roboternetz.de/phpBB2/dload.php?action=category&amp;amp;cat_id=2 Datenblätter im Download-Bereich des Roboternetz]&lt;br /&gt;
*[http://www.nxp.com/acrobat_download/various/SC17_GENERAL_TEMP_1996_3.pdf KDY Sensor Datenblatt]&lt;br /&gt;
*[http://www.tranzistoare.ro/datasheets2/83/83853_1.pdf NTC Datenblatt]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Elektronik]]&lt;br /&gt;
[[Category:Sensoren]]&lt;/div&gt;</summary>
		<author><name>Momomu</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Sensorarten&amp;diff=9761</id>
		<title>Sensorarten</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Sensorarten&amp;diff=9761"/>
				<updated>2006-12-03T20:41:34Z</updated>
		
		<summary type="html">&lt;p&gt;Momomu: /* Helligkeit */ Schreibfehler korrigiert (Hellstem-&amp;gt;hellsten; Rraum-&amp;gt;Raum)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Welche Sensorarten gibt es==&lt;br /&gt;
Damit sich ein Roboter in seiner Umgebung bewegen kann, ohne an Hindernisse anzustoßen, und damit er ein Ziel finden und ansteuern kann, muß er irgendwie seine Umwelt &amp;quot;wahrnehmen&amp;quot;. &lt;br /&gt;
Hauptanwendung für diese Informationen aus der Umwelt ist die [[Navigation]]&lt;br /&gt;
Auf dieser Seite werden die wichtigsten Sensorarten und damits praktischer wird auch zugleich die populärsten Robotik- und Modellbau-Sensortypen vorgestellt. Auch die Pinbelegung und Anschlussmöglichkeiten dieser Sensoren werden kurz erläutert.&lt;br /&gt;
&lt;br /&gt;
==Bumpers==&lt;br /&gt;
Als Bumpers bezeichnet man eine Art Stoßstange, die einen Mikro-Switch auslöst. &lt;br /&gt;
&lt;br /&gt;
[[Bild:microschalter.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Die Auswertung erfolgt am besten digital an einem Pin mit Pull-up Widerstand. Man kann den Eingang pollen (abfragen), aber auch einen Interrupt auslösen lassen. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Whiskers (Fühler)==&lt;br /&gt;
Das sind flexible Kunststoff-Streifen von ca. 10 cm Länge, eigentlich für Datenhandschuhe vorgesehen. Aber man kann sie auch als Fühler einsetzen, und daher auch für die Kollisions-Sensorik verwenden. Beim Verbiegen steigt der Widerstand an.  &lt;br /&gt;
&lt;br /&gt;
[[Bild:flexs_200.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Um zu messen, wird mit einem zweiten Widerstand ein Spannungsteiler aufgebaut, der dann mit einem Analog-Eingang einen Grad der Verbiegung erkennen läßt. Sie werden häufig auch Flexsensoren genannt. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Incremental-Geber==&lt;br /&gt;
Dienen zur Erfassung von Drehzahl bzw. der Messung von Wegstrecken&lt;br /&gt;
===Drehgeber Sharp GP1A30 und GP1A38===&lt;br /&gt;
&lt;br /&gt;
[[Bild:gp1a30.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Beim Sharp GP1A30 und GP1A38 handelt es sich um Gabellichtschranken mit inkrementaler Drehgeberfunktion. Beide sind im Grunde von den Anschlüssen identisch, lediglich kann GP1A38 noch etwas höhere Drehzahlen messen. Im Gegensatz zu herkömmlichen Gabellichtschranken können mit dieser sowohl Drehzahl als auch Drehrichtung ermittelt werden. Notwendig sind dafür nur 2 digitale Ports. Verzichtet man auf die Auswertung der Drehrichtung, reicht nur ein Port.&lt;br /&gt;
Der Sensor hat den Vorteil das die Signale bereits TTL kompatibel sind und direkt an ein Controllerboard angeschlossen werden können. Ein Beispielprogramm zu [[RN-Control]] findet man hier&lt;br /&gt;
&lt;br /&gt;
* [[Beispiel Drehzahlmessung mit RN-Control]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:GP1A30.gif|center]]&lt;br /&gt;
&lt;br /&gt;
Die Auswertung inkrementaler Drehgeber ist recht einfach. Ein Ausgang liefert einen Impuls pro Markierung (Scheibe auf der Welle). Prüft man bei jedem Impuls (Flanke) noch gleichzeitig den aktuellen Pegel des zweiten Ausganges, so kann daraus die Drehrichtung abgeleitet werden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Signalverlauf an den Sensorausgängen ist phasenversetzt:&lt;br /&gt;
&lt;br /&gt;
[[Bild:inkremental1.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:drehgeber_an_rncontrol.gif|center|framed|Beispielschaltung wenn man lediglich die Drehzahl ohne Drehrichtung auswerten möchte. Als Widerstand hat sich 330 Ohm als gut erwiesen.]]&lt;br /&gt;
&lt;br /&gt;
==Optische Sensoren==&lt;br /&gt;
===Helligkeit=== &lt;br /&gt;
Die Hauptanwendung solcher Sensoren ist, den hellsten Fleck im Raum zu finden.&lt;br /&gt;
Dies ist auch Teil vieler Roboterwettbewerbe. (Robo Callenge (2002 sic!), 'Ein Platz an der Sonne')&lt;br /&gt;
&lt;br /&gt;
Solche Sensoren können einfache [[LDR]]s oder [[Photodioden]] bzw. [[Phototransistoren]] sein.&lt;br /&gt;
LDRs haben den Vorteil, dass sie relativ hoch aussteuern, der große Nachteil ist aber, dass diese Sensoren ziemlich Wärmeempfindlich und etwas träge.&lt;br /&gt;
Photodioden und Phototransistoren haben den Vorteil, dass sie sehr genau sind, aber nicht besonders hoch aussteuern. Diese sollte man evtl. über einen OpAmp verstärken.&lt;br /&gt;
&lt;br /&gt;
[[Bild:fotowiderstand.jpg|center|framed|Ein typischer Fotowiderstand]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:SFH300.jpg|center|framed|SFH300, ein typischer Phototransistor]]&lt;br /&gt;
&lt;br /&gt;
Die Suche nach dem hellsten Fleck im Raum ist wie ich finde ein gutes Einsteigerthema!&lt;br /&gt;
&lt;br /&gt;
===CNY70===&lt;br /&gt;
&lt;br /&gt;
Der CNY70 ist ein Foto-Reflex Optokoppler. In einem würfelförmigem Gehäuse befindet sich eine Infrarot LED als Sender und ein Infrarot Fototransistor als Empfänger. Damit kann auf kurze Entfernung (wenige Millimeter) das reflektierte Licht der IR-LED durch den IR-Fototransistor gemessen werden.  &lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|[[Bild:cny70.jpg|thumb|200px|CNY70]]&lt;br /&gt;
|[[Bild:cny70_pinout.jpg|framed|CNY70 Vishay Pinout]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Achtung:''' Es existiert auch noch ein CNY70 von Temic mit anderer Pinbelegung, dort ist der Fototransistor verdreht eingebaut.&lt;br /&gt;
&lt;br /&gt;
Der CNY70 eignet sich für eine Vielzahl von Sensoren. Z.B. als Liniensensor, Radencoder, Abgrunddetektor und Lichtschranke. Allerdings ist er empfindlich gegen Streulicht, da  das Licht der IR-LED nicht moduliert ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:cny70_schem1.gif|thumb|center|600px|CNY70 als Liniensensor]]&lt;br /&gt;
&lt;br /&gt;
Der Liniensensor benötigt 2 A/D Wandler Eingänge des Prozessors. Die CNY70 sollten so nah wie möglich in Bodennähe angebracht sein (1..3mm). Der P-Kanal FET BS250 dient als Schalter für die IR LEDs des CNY70. Damit spart man Strom, wenn der Liniensensor nicht benötigt wird. Allerdings wird dafür ein weiterer Prozessor Ausgang als Enable Signal benötigt. HIGH Pegel schaltet die Sensor LEDs aus, LOW Pegel ein.  Wird keine Enable Funktion gewünscht, läßt man den BS250 einfach weg und hängt die Vorwiderstände der Sensor LEDs direkt an VCC.&lt;br /&gt;
&lt;br /&gt;
[[Bild:cny70_schem2.gif|thumb|center|600px|CNY70 als Radencoder mit Schmitt-Trigger]]&lt;br /&gt;
&lt;br /&gt;
Die Radencoder benötigen zwei digitale Eingangsports des Prozessors. A/D Wandler sind nicht nötig, da die Schmitt-Trigger Gatter für saubere Logik Signale sorgen. Die CNY70 sollten so nah wie möglch an den Rädern sitzen (1..2mm). Die gewählten Widerstandswerte für R17/R19 bzw. R18/R20 sind optimiert für Radencoder die auf Transparentfolie gedruckt und auf Aluminium Räder aufgeklebt werden. Für Radencoder die auf Papier ausgedruckt werden, sind andere Widerstandswerte notwendig.&lt;br /&gt;
Der P-Kanal FET BS250 dient als Schalter für die IR LEDs des CNY70. Damit spart man Strom, wenn der Radencoder nicht benötigt wird. Allerdings wird dafür ein weiterer Prozessor Ausgang als Enable Signal benötigt. HIGH Pegel schaltet die Sensor LEDs aus, LOW Pegel ein. Wird keine Enable Funktion gewünscht, läßt man den BS250 einfach weg und hängt die Vorwiderstände der Sensor LEDs direkt an VCC.&lt;br /&gt;
&lt;br /&gt;
===Distanzsensor IS471F===&lt;br /&gt;
&lt;br /&gt;
IS471F - Hindernisserkennung mit Infrarot Distanzsensor&lt;br /&gt;
&lt;br /&gt;
Das hier vorgestellte IC IS471F erlaubt eine einfach und sogar recht preisgünstige Hinternisserkennung per Infarot. Dazu muß im wesentlichen nur noch eine Infrarot-Diode an das IC angeschlossen werden. Das modulierte Licht wird von einem Gegenstand direkt auf das IC zurückgeworfen und somit das Hinterniss erkannt. Tageslicht/Fremdlicht stört den IS471 überhaupt nicht, da das Licht mit einer bestimmten Frequenz moduliert wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:is471.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der normale Schaltungsaufbau sieht also wie oben abgebildet aus! In der Praxis kann das dann in etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:is471beispiel.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das englische Datenblatt findet man im Roboternetz-Download-Bereich&lt;br /&gt;
&lt;br /&gt;
Die normale Reichweite ist in gewissen Grenzen abhängig von der Farbe des Hinternisses. In der Regel reicht es jedoch durchaus einige cm so das langsame Roboter durchaus sehr gut damit zurecht kommen. Durch besonders helle Infrarot LED´s und durch zusätzlich LED-Fassungen kann man die Reichweite erhöhen. Wem das noch nicht reicht, der kann über einen zusätzlichen Transistor die Strahlungsleistung der LED noch weiter erhöhen. &lt;br /&gt;
&lt;br /&gt;
[[Bild:is471verstaerkung.png|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
http://www.roboternetz.de/bilder/mehrereis471.gif&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sharp Infrarotsensoren===&lt;br /&gt;
&lt;br /&gt;
Sharp hat eine ganz interessante Serie von Bausteinen herausgebracht mit denen ein Roboter sogar recht genau Entfernungen messen kann. Das Messergebnis ist nahezu unabhängig von der Farbe und Helligkeit des gemessenen Objektes. Die Ansteuerung ist sehr einfach, der Sensorausgang kann zum Beispiel direkt an einen analogen Eingang eines Mikrocontrollers angeschlossen werden. Die Sensoren sind unter den Roboter-Bastlern weit verbreitet. &lt;br /&gt;
Bei vielen Händlern erhältlich kosten die Sensoren derzeit je nach Typ und Händlerspanne zwischen 13 bis 25 Euro.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Bild:Sharpentfernungssensor.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oft werden selbst in kleinen Roboter-Projekten mehrere dieser Sensoren genutzt da sie nur einen äußerst engen Erfassungsbereich haben. Sie eignen sich daher sehr gut zur Vermessung einer Umgebung, insbesondere dann wenn Sie drehbar auf einem Servo montiert werden. Als Kollisionsschutz sind sie wegen dem engen Winkel nur bedingt geeignet, zu diesem Zweck eignen sich zum Beispiel Ultraschallsensoren besser.&lt;br /&gt;
Das Funktionsprinzip der Sensoren ist einfach. Der Sensor besteht aus Sender und Empfänger. Der Sender sendet einen Infrarot-Strahl aus, der vom Hindernis reflektiert wird. Je nach Entfernung trifft der reflektierte Strahl an einer unterschiedlichen Stelle auf den Empfänger (ein sog. Position Sensitive Device, PSD). Der Empfänger setzt den Auftreffpunkt in einen analogen Spannungswert um. Eine schöne Skizze dazu:  &lt;br /&gt;
&lt;br /&gt;
[[Bild:sharpfunktion.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Einige der beliebtesten Bausteine sind:'''&lt;br /&gt;
&lt;br /&gt;
====Sharp GP2D12==== &lt;br /&gt;
Distanz 10 - 80 cm - Entfernung wird durch analoge Spannung am Ausgang übermittelt&lt;br /&gt;
Dies ist der am häufigsten eingesetzte Sharp Typ bei mobilen Robotern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:GP2D12anschluss.gif|center]]&lt;br /&gt;
&lt;br /&gt;
====Sharp GP2YA21YK==== &lt;br /&gt;
Distanz 10 - 80 cm - Entfernung wird durch analoge Spannung am Ausgang übermittelt &lt;br /&gt;
&lt;br /&gt;
====Sharp GP2D120====&lt;br /&gt;
Distanz 4 - 30 cm - Entfernung wird durch analoge Spannung am Ausgang übermittelt&lt;br /&gt;
&lt;br /&gt;
====Sharp GP2Y0A02YK====&lt;br /&gt;
Distanz 20 - 150 cm - Entfernung wird durch analoge Spannung am Ausgang übermittelt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
http://www.shop.robotikhardware.de/shop/catalog/images/artikelbilder/sensoren/gp2y0a02yk_diagramm.gif&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Sharp GP2D02====&lt;br /&gt;
Distanz 10 - 80 cm - Entfernung wird durch 8 Bit Digitalausgang übermittelt&lt;br /&gt;
&lt;br /&gt;
====Sharp GP2D150====&lt;br /&gt;
Distanz 3-30 cm - 1 Bit Schaltausgang  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Datenblätter zu den oberen Sensoren findet man im Download-Bereich des Roboternetz, siehe unter [[#Weblinks]].&lt;br /&gt;
 &lt;br /&gt;
Um die analogen Spannung der Sensoren in eine Entfernung umzurechnen, kann man sich mit Hilfe des Datenblattes oder einfacher Probemessungen Tabellen erstellen, welche dann vom Controller zur Umsetzung genutzt werden.&lt;br /&gt;
Bequemer ist allerdings eine Näherungsformel:&lt;br /&gt;
&lt;br /&gt;
====Formel zur Entfernungsberechnung==== &lt;br /&gt;
 D = A/(X-B) &lt;br /&gt;
&lt;br /&gt;
 D ist die Entfernung &lt;br /&gt;
 X ist der Ausgabewert des Sensors &lt;br /&gt;
 A ist die Steigung der Kurve A/X &lt;br /&gt;
 B ist der Offset der Kurve &lt;br /&gt;
&lt;br /&gt;
Die Konstanten A und B ermittelt man am besten über zwei Probemessungen: &lt;br /&gt;
&lt;br /&gt;
D und X sind die Entfernung und der Ausgabewert der ersten Messung (z.B. bei 20 cm) &lt;br /&gt;
D' und X' sind die Entfernung und der Ausgabewert der zweiten Messung (z.B. bei 60 cm) &lt;br /&gt;
&lt;br /&gt;
 A = ((X' - X) * D' * D) /(D - D' ) &lt;br /&gt;
 B = (D' * X' - D * X) /(D' - D) &lt;br /&gt;
&lt;br /&gt;
====GP2D12 Messkurve====&lt;br /&gt;
&lt;br /&gt;
[[Bild:gpd12kurve.gif|center]]&lt;br /&gt;
&lt;br /&gt;
====GPD120 Messkurve====&lt;br /&gt;
&lt;br /&gt;
[[Bild:gpd120kurve.gif|center]]&lt;br /&gt;
&lt;br /&gt;
==Ultraschall Sensoren== &lt;br /&gt;
===Ultraschallsensoren SRF04===&lt;br /&gt;
Die Firma '''Devantech''' hat eine Serie von sehr günstigen und kleinen Ultraschallsensoren entwickelt, die sich im Bereich &amp;quot;autonome Robotersysteme&amp;quot; durchgesetzt haben. Sie sind sehr verbreitet, da sie auch für &amp;quot;Hobby-Robotiker&amp;quot; erschwinglich sind und es sich nicht lohnen würde vergleichbare Module selber zu bauen, da diese meistens ungenauer und teurer wären.&lt;br /&gt;
&lt;br /&gt;
Bekannt wurde die Serie durch den '''SRF04'''. Mit seinen kleinen Abmessungen, der niedrigen Stromaufnahme und der hohen Genauigkeit ist er für kleine Messaufgaben im Entfernungsbereich von 3cm bis 3m gut geeignet. Der SRF04 kann einen 3cm dicken Besenstiel in 2m Entfernung erkennen und wird durch ein [[PWM]]-Signal ausgewertet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf_04a.jpg]] [[Bild:srf_04.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Ultraschallsensor SRF05===&lt;br /&gt;
Der Nachfolger des SRF04 ist der neuer SRF05. Er besitzt noch eine etwas höhere Reichweite bis 4 Meter. Zudem besitzt er neben dem kompatibel Mode zu SRF04 noch eine Betriebsart bei der er über einen einzigen Port (Pin) gesteuert wird. Das heißt sowohl der Start der Messung und das Ergebnis wird über die gleiche Leitung übertragen. [[Ultraschall SRF05 an RN-MiniControl|Programmbeispiel in Bascom]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:Srf05mode1.jpg|center]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf05mode2.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf05mode2diagram.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SRF08===&lt;br /&gt;
Die Alternative zu SRF04 und SRF05 ist der beliebte  '''SRF08''' und dessen Nachfolger '''SRF10''', der nun über den [[I2C]]-Bus ausgewertet werden kann und über eine Reichweite von 3cm bis 6m verfügt. Er hat eine noch kleinere Stromaufnahme und zusätzlich befindet sich auf der Platinenfront ein Fotowiderstand(LDR) dessen Lichtmesswerte sich ebenfalls über den [[I2C]]-Bus auswerten lassen. Durch den SRF08 wird es möglich auch bis zu 16 Mehrfachechos, von weiter hinten gelegenen Gegenständen, auszuwerten, die bei dem SRF04 ignoriert wurden. Über den [[I2C]]-Bus kann man die Messwerte in cm, zoll und in der Laufzeit µs auslesen und spart sich somit die externe Auswertung der Laufzeit, wie bei dem SRF04. Weiterhin können insgesamt 16 SRF08-Module an einen [[I2C]]-Bus angeschlossen werden.&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf08_a.jpg]]  [[Bild:srf08_b.jpg]]&lt;br /&gt;
&lt;br /&gt;
===SRF08 Programmbeispiel===&lt;br /&gt;
SFR08 Programm Beispiel mit [[Bascom]]&lt;br /&gt;
Über die grundsätzliche Behandlung des [[I2C]]-Bus mit [[Bascom]] kann man [[I2C|hier]] nachlesen. &lt;br /&gt;
&lt;br /&gt;
 Const Sf08_adr_0 = &amp;amp;HE0             ' I2C Adresse&lt;br /&gt;
 Const Sf08_c_range = 100            ' Reichweite&lt;br /&gt;
 Const Sf08_c_gain = 1               ' Empfindlichkeit&lt;br /&gt;
&lt;br /&gt;
Die Adresse ist der Default-Wert für den Sensor, und kann eingestellt werden. &lt;br /&gt;
Range und Gain sind anzupassen, die angegeben Werte sind aber mal grundsätzlich verwendbar.&lt;br /&gt;
&lt;br /&gt;
'''Setup'''&lt;br /&gt;
Nach dem Reset sind einmal Range und Gain zu setzen.&lt;br /&gt;
&lt;br /&gt;
'''Setzen Range'''&lt;br /&gt;
&lt;br /&gt;
      I2cstart&lt;br /&gt;
      I2cwbyte Sf08_adr_0   ' Device I2C Adresse&lt;br /&gt;
      I2cwbyte 2            ' register &amp;quot;range&amp;quot;&lt;br /&gt;
      I2cwbyte Sf08_c_range  &lt;br /&gt;
      I2cstop&lt;br /&gt;
 &lt;br /&gt;
'''Setzen Gain'''&lt;br /&gt;
&lt;br /&gt;
      I2cstart&lt;br /&gt;
      I2cwbyte Sf08_adr_0   ' Device I2C Adresse&lt;br /&gt;
      I2cwbyte 1            ' register &amp;quot;gain&amp;quot;&lt;br /&gt;
      I2cwbyte Sf08_c_gain    &lt;br /&gt;
      I2cstop&lt;br /&gt;
&lt;br /&gt;
'''Abfrage Trigger'''&lt;br /&gt;
&lt;br /&gt;
Die Abfrage soll laut Beschreibung in zwei Schritten erfolgen, zwischen denen ca 70 mS gewartet werden soll. Diese Zeit braucht das Gerät zum Messen. &lt;br /&gt;
&lt;br /&gt;
'''Trigger'''  &lt;br /&gt;
      I2cstart&lt;br /&gt;
      I2cwbyte Sf08_adr_0   ' Device I2C Adresse&lt;br /&gt;
      I2cwbyte 0            ' register &amp;quot;Trigger&amp;quot;&lt;br /&gt;
      I2cwbyte 81           ' Meßwert in Zentimetern&lt;br /&gt;
&lt;br /&gt;
      Waitms 70 &lt;br /&gt;
&lt;br /&gt;
'''Ergebnis abholen'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 DIM Lsb as Byte&lt;br /&gt;
 DIM Msb as Byte&lt;br /&gt;
 DIM IVal as word&lt;br /&gt;
&lt;br /&gt;
      I2cstart              ' Repeated Start&lt;br /&gt;
      I2cwbyte Sf08_adr_0   ' Device I2C Adresse&lt;br /&gt;
      I2cwbyte 2            ' Meßwert US&lt;br /&gt;
&lt;br /&gt;
      I2cstart                 ' repeated Start&lt;br /&gt;
      I2cwbyte Sf08_adr_0 + 1  ' Device I2C Adresse READ!&lt;br /&gt;
      I2crbyte Msb , Ack      ' Bit 8-15&lt;br /&gt;
      I2crbyte Lsb , Nack     ' Bit 0-7&lt;br /&gt;
      I2cstop&lt;br /&gt;
&lt;br /&gt;
      Ival = Makeint(lsb , Msb) ' umwandeln in Word (16 Bit)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SRF10 Ultraschallsensor ===&lt;br /&gt;
SRF10 ist quasi der Nachfolger von SRF08. Er bietet die gleiche Leistung und ist sogar gegenüber Spannungschankungen noch etwas unempfindlicher als der Vorgänger. Der größte Vorteil besteht jedoch darin das er ca. 1/3 kleiner als sein Vorgänger ist.   &lt;br /&gt;
&lt;br /&gt;
[[Bild:srf10foto1.jpg]] [[Bild:srf10foto2.gif]]&lt;br /&gt;
&lt;br /&gt;
Die technischen Daten sind ähnlich:&lt;br /&gt;
* Betriebsspannung: 5V &lt;br /&gt;
* Stromaufnahme: ca. 3mA Standby, ca. 15mA während des Messens Frequenz: 40KHz &lt;br /&gt;
* Maximale Reichweite: 6 m &lt;br /&gt;
* Minimale Reichweite: 4 cm &lt;br /&gt;
* Messwerterfassung: intern, kein externer Controller zur Zeitmessung notwendig &lt;br /&gt;
* Interface: Standard – I2C (passend zu zahlreichen Controllerboards, z.B. RN-Control) &lt;br /&gt;
* Ausgabeformat: µs, cm oder Zoll &lt;br /&gt;
* Feature: Analogverstärkung 40 - 700 (einstellbar, 16 Stufen) &lt;br /&gt;
* Abmessungen: 32mm x 15mm x 10mm &lt;br /&gt;
* Hersteller: Devantech Ltd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Ultraschall_SRF10_an_RN-Control|Programmbeispiel in Bascom]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:srf10ausbreitung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===SRF02 Ultraschallsensor===&lt;br /&gt;
Der erste Sensor aus der SRF-Reihe der mit nur einem Ultraschallwandler auskommt. Dennoch können sich die Leistungen zeigen. Vorallem die Tatsache das sowohl RS232 und I2C-Bus Schnittstelle vorhanden ist dürfte viele Bastler erfreuen.&lt;br /&gt;
&lt;br /&gt;
* Betriebsspannung 5V (stabilisiert) &lt;br /&gt;
* Stromaufnahme nur 4mA (typisch) &lt;br /&gt;
* Ultraschallfrequenz 40khz &lt;br /&gt;
* Reichweite 15cm bis 6 Meter &lt;br /&gt;
* Schnittstelle RS232 (TTL) und I2C-Bus &lt;br /&gt;
* Ausgabeeinheit wahlweise mm, inch oder uS &lt;br /&gt;
* Einfachste Verwendung, keine Kalibration/Justierung notwendig&lt;br /&gt;
* Größe 24mm x 20mm x 17mm &lt;br /&gt;
&lt;br /&gt;
[[Bild:srf02_germany.jpg]]&lt;br /&gt;
&lt;br /&gt;
Einige Bascom Programmbeispiele zum SRF02 findet man unter [[Ultraschallsensor SRF02 am RN-Board]]&lt;br /&gt;
&lt;br /&gt;
=== Vergleichstabelle ===&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{|{{Blaueschmaltabelle}}&lt;br /&gt;
 |&lt;br /&gt;
 |'''SRF10'''&lt;br /&gt;
 |'''SRF08'''&lt;br /&gt;
 |'''SRF05'''&lt;br /&gt;
 |'''SRF04'''&lt;br /&gt;
 |'''SRF02'''&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Betr. Spannung'''&lt;br /&gt;
 |5V&lt;br /&gt;
 |5V&lt;br /&gt;
 |5V&lt;br /&gt;
 |5V&lt;br /&gt;
 |5V&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Stromaufnahme'''&lt;br /&gt;
 |3mA typ.,&amp;lt;br&amp;gt; 15mA max.&lt;br /&gt;
 |3mA typ.,&amp;lt;br&amp;gt; 15mA max.&lt;br /&gt;
 |4mA typ.,&amp;lt;br&amp;gt; 30mA max.&lt;br /&gt;
 |30mA typ.,&amp;lt;br&amp;gt; 50mA max.&lt;br /&gt;
 |4mA typ.&amp;lt;br&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
 |-&lt;br /&gt;
 |'''US Leistung'''&lt;br /&gt;
 |100 – 150mW&lt;br /&gt;
 |100 – 150mW&lt;br /&gt;
 |100 – 150mW&lt;br /&gt;
 |100 – 150mW&lt;br /&gt;
 |?? mW&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Frequenz'''&lt;br /&gt;
 |40kHz&lt;br /&gt;
 |40kHz&lt;br /&gt;
 |40kHz&lt;br /&gt;
 |40kHz&lt;br /&gt;
 |40kHz&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Bereich'''&lt;br /&gt;
 |72&amp;amp;ordm;&lt;br /&gt;
 |55&amp;amp;ordm;&lt;br /&gt;
 |55&amp;amp;ordm;&lt;br /&gt;
 |55&amp;amp;ordm;&lt;br /&gt;
 |55&amp;amp;ordm;&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Reichweite'''&lt;br /&gt;
 |4cm - 6m&lt;br /&gt;
 |3cm - 6m&lt;br /&gt;
 |3cm - 4m&lt;br /&gt;
 |3cm - 3m&lt;br /&gt;
 |15cm - 6m&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Triggerimpuls'''&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |10µs min.&lt;br /&gt;
 |10µs min.&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Abmessung in mm'''&lt;br /&gt;
 |32 x 15 x 10&lt;br /&gt;
 |43 x 20 x 17&lt;br /&gt;
 |43 x 20 x 17&lt;br /&gt;
 |43 x 20 x 17&lt;br /&gt;
 |24 x 20 x 17&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Interface'''&lt;br /&gt;
 |I2C&lt;br /&gt;
 |I2C&lt;br /&gt;
 |TTL Impuls&lt;br /&gt;
 |TTL Impuls&lt;br /&gt;
 |I2C o. RS232 TTL&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Feature'''&lt;br /&gt;
 |Minimodul&lt;br /&gt;
 |Lichtsensor&lt;br /&gt;
 |SRF04 Modus&lt;br /&gt;
 |&lt;br /&gt;
 |nur 1 US-Kapsel&lt;br /&gt;
 |-&lt;br /&gt;
 |'''Preis ca. *'''&lt;br /&gt;
 |44,00 €&lt;br /&gt;
 |44,00 €&lt;br /&gt;
 |22,00 €&lt;br /&gt;
 |25,00 €&lt;br /&gt;
 |19,00 €&lt;br /&gt;
 |}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''*''' Der Preis dient nur zum vergleich untereinander, nicht als Referenz !&lt;br /&gt;
&lt;br /&gt;
==Kompaß== &lt;br /&gt;
===Kompaß-Modul CMPS03===&lt;br /&gt;
Laut der Doku ist diese Modul speziell für die Bedürnisse von Robotern gestaltet worden. Es mißt seine Lage relativ zum Erdmagnetfeld und liefert diesen Wert&lt;br /&gt;
* Als PWM-Signal &lt;br /&gt;
* Über I2C entweder 0-255 als Byte oder&lt;br /&gt;
* 0-3599 als 16-Bit Wert (MSB first)&lt;br /&gt;
&lt;br /&gt;
In der vorliegenden Doku ist eine fixe I2C-Adresse von 0xC0 angegeben. Was leider noch fehlt, sind Angaben, ob und wie diese Adresse geändert werden kann.&lt;br /&gt;
&lt;br /&gt;
Bei waagrechter(!) Montage ist das also ein Kompaß, bei senkrechter Montage dieser Module kann man auch die Neigung in Nord-Süd-Richtung messen. Hierzu sind 2 Module nötig, die zueinander um 90° gedreht angeordnet sein müssen. Die Neigung in Ost-West-Richtung zu messen, ist dagegen leider nicht möglich. Wenn ein CMPS03 als Kompass verwendet werden soll, sind zwei Dinge zu beachten: &lt;br /&gt;
* Mindestens 20 cm Abstand von Eisen(Motore)&lt;br /&gt;
* Exakte horizontale Ausrichtung.&lt;br /&gt;
Eine Montage an einem langen Stab aus Holz oder Kuststoff hoch über dem Roboter ist sinnvoll. &lt;br /&gt;
&lt;br /&gt;
Das Ganze ist eine Anwendung des Philips-KMZ51 Magnet-Feld-Sensors mittels eines PIC16F872&lt;br /&gt;
&lt;br /&gt;
Gelegentlich sollte das Modul kalibriert werden. Das kann über den I2C-Bus, aber auch mittels einen Pins am Modul initiiert werden. Dann muß das Module langsam um 360 Grad gedreht werden. Dabei nimmt das Modul 4 Meßpunkte auf und speichert sie im EEPROM. &lt;br /&gt;
&lt;br /&gt;
Ein Beispielprogramm findet man hier:&lt;br /&gt;
* [[Bascom und Kompass CMPS03]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:cmps3pin.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
==Beschleunigung==&lt;br /&gt;
&lt;br /&gt;
Beschleunigungssensoren messen die Beschleunigung, die auf sie wirkt - wenn sie auf dem Tisch liegen, messen sie beispielsweise die Erdbeschleunigung von 1g. In einem Auto können weitere Beschleunigungen hinzukommen: Zur Seite beim Kurvenfahren, nach vorne oder hinten beim Beschleunigen, oder bei zügiger Fahrt über eine Bergkuppe auch mal welche in vertikaler Richtung.&amp;lt;br&amp;gt;&lt;br /&gt;
Beschleunigungssensoren sind meist mehrdimensional ausgelegt, so dass für mehrere Achsen ein Sensor verwendet werden kann.&lt;br /&gt;
&lt;br /&gt;
Anwendungen finden sie in ESP-Systemen in Autos, die u.a. über die Querbeschleunigung ausrechnen können, ob das Fahrzeug seitlich driftet oder gar schleudert.&amp;lt;br&amp;gt;&lt;br /&gt;
Eine andere wichtige Aufgabe übernehmen sie zusammen mit Gyroskopen in Trägheitsnavigationssystemen, die dann sowohl die Lage im Raum als auch die Bewegung feststellen können.&lt;br /&gt;
&lt;br /&gt;
Moderne Piezo-Sensoren sind nur noch Chip-gross und können direkt in Schaltungen integriert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiele für solche Chips ist die Chipfamilie [[ADXL]] von Analog Devices. Sie umfaßt 1- und 2-Achs Accelerometer in verschiedenen Empfindlichkleiten. Der Test eines solchen Sensors ist hier beschrieben. http://www.roboternetz.de/phpBB2/viewtopic.php?t=8525&lt;br /&gt;
&lt;br /&gt;
==Drehung==&lt;br /&gt;
&lt;br /&gt;
Um Drehungen zu messen, werden sogenannte Gyroskope, kurz &amp;quot;Gyros&amp;quot; verwendet. Typische Vertreter sind hier die [[ADXRS]]-Familie von Analog Devices. Diese sind allerdigs, anders als die Beschleunigungssensoren, meistens nur für eine Achse ausgelegt. Die Ausgabe erfolgt meist analog, jede Ausgangsspannung entspricht einer bestimmten Drehrate in °/Sekunde.&lt;br /&gt;
&lt;br /&gt;
Gemessen wird die Auswirkung der Corioleskraft auf zwei gleiche, in Bewegung gehaltene Massen. Diese schwingen radial, d.h. 90° verdreht zu der Achse, auf der die Drehung gemessen werden soll. Wird der Sensor um die Achse gedreht, ändert sich die Geschwindigkeit dieser Massen, da sie auf einer gedachten Scheibe abwechselnd nach innen und außen wandern. Je weiter sie außen sind, desto höher ist ihre Geschwindigkeit, je weiter innen, desto langsamer sind sie. Bei der Bewegung nach außen müssen sie also beschleunigt werden, andersherum genauso. Die dabei auftretenden Beschleunigungen werden mittels einiger Fühler gemessen, die einen Plattenkondensator bilden.&lt;br /&gt;
&lt;br /&gt;
Eine Anwendung sind im Flugmodellbau Gyro-&amp;quot;Taillocks&amp;quot;, die in Hubschraubern die Heckstabilität verbessern und ESP-Systeme in Autos, die u.a. durch die Messung der Gierrate, also der Drehung des Fahrzeugs um die Hochachse, feststellen können, ob das Fahrzeug seitlich driftet oder sogar schleudert.&lt;br /&gt;
&lt;br /&gt;
==Geschwindigkeit==&lt;br /&gt;
&lt;br /&gt;
Geschwindigkeit kann unterschiedlich erfasst werden.&lt;br /&gt;
* Direkt am Rad oder Antrieb. Diese Methode wird häufig auch in KFZ verwendet, stößt jedoch an ihre Grenzen wenn die Räder viel Schlupf haben. &lt;br /&gt;
* Gegenüber der Luft mittels [[Pitot-Tube]]. Das wird bei Flugzeugen so gemacht, oder z.B. in der Formel 1. Bei niedriegen Geschwindigkeiten nicht zu gebrauchen&lt;br /&gt;
* Mittels eines optischen Sensors gegenüber dem Untergrund. Dafür kann ein [[Maussensor]] aus einer optischen Maus verwendent werden, evtl. mit einer Anpassung der Optik für einen geänderten Abstand.&lt;br /&gt;
* Mittels GPS-Empfang. Funktioniert nur unter freiem Himmel.&lt;br /&gt;
&lt;br /&gt;
==Temperatur== &lt;br /&gt;
===NTCs===&lt;br /&gt;
NTCs (Negative Temperature Coefficient)oder Heißleiter sind stromleitende Materialien, die bei hohen Temperaturen Strom besser leiten als bei tiefen, das heißt, mit steigender Temperatur sinkt ihr elektrischer Widerstand. Siehe auch unter [[NTC]]. EIn großer Vorteil ist die leichte ANwendung und der geringe Preis. Nachteil ist das der Widerstandswert sich nicht linear mit der Temperatur verändert.&lt;br /&gt;
&lt;br /&gt;
[[Bild:ntc.gif]]&lt;br /&gt;
&lt;br /&gt;
===PTCs===&lt;br /&gt;
&lt;br /&gt;
PTCs sind Temperatursensoren, deren Widerstand sich mit steigender Temperatur erhöht. Dazu gehören&lt;br /&gt;
&lt;br /&gt;
*PT100, PT1000 etc.&lt;br /&gt;
*Die KTYxx-xxx Reihe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== KTY: Silizium Temperatursensoren ====&lt;br /&gt;
&lt;br /&gt;
Die KTY-Temperatursensoren sind verglichen mit anderen Temperatursensoren verhältnismäßig günstig, haben dafür aber auch mehr Nachteile.&amp;lt;br&amp;gt;&lt;br /&gt;
Die Genauigkeit ist ziemlich eingeschränkt, weshalb die KTY-Temperatursensoren zuerst kalibriert werden sollten. Dies muss Schaltungstechnisch oder in Software erfolgen, eine eingebaute Kalibrierung gibt es nicht.&amp;lt;br&amp;gt;&lt;br /&gt;
Andererseits lassen sich mittels Oversampling sehr hoch aufgelöst Temperaturen messen, was aufgrund mittelmäßiger Linearität (auch nach der Linearisierung) aber nur bei der Messung kleiner Temperaturunterschiede empfehlenswert ist.&amp;lt;br&amp;gt;&lt;br /&gt;
Linearisiert werden die KTY an 5 Volt mit einem Reihenwiderstand von etwa 2,7 kOhm bis 3,3 kOhm.&lt;br /&gt;
&lt;br /&gt;
===Temperatur-Sensor LM75===&lt;br /&gt;
&lt;br /&gt;
[[Bild:lm75.gif|center]]&lt;br /&gt;
&lt;br /&gt;
Dieser Chip von National Semiconductors kann die Umgebungstemperatur mit einer Genauigkeit von 0.5&amp;lt;sup&amp;gt;o&amp;lt;/sup&amp;gt; Grad Celsius messen. Das angegebene Bereich ist -25&amp;lt;sup&amp;gt;o&amp;lt;/sup&amp;gt; bis 100&amp;lt;sup&amp;gt;o&amp;lt;/sup&amp;gt; C. Es wird zweierlei geboten:&lt;br /&gt;
* Ein Schaltausgang - Wenn man also z.B. einen Ventilator einschalten möchte&lt;br /&gt;
* I2C - Der obere Teil der Adresse ist fix 0x9n, die Bits 1-3 kann man mit Jumper einstellbar machen oder fest verdrahten. &lt;br /&gt;
&lt;br /&gt;
Durch einen einfachen I2C-Lesebefehl kann man die Temperatur einlesen (16-Bit), das Format ist allerdings etwas tricky. Das erste Byte (8-Bit) ist die Temperatur in ganzen Grad, als normales signed char, vom zweiten Byte gibt das MSB an, ob noch 0.5&amp;lt;sup&amp;gt;o&amp;lt;/sup&amp;gt; '''dazuzuzählen''' sind (also auch, wenn vorne eine negative Zahl steht)  &lt;br /&gt;
&lt;br /&gt;
Der Grund ist der: die vorzeichenbehaftete 9-Bit Zahl, die da linksbündig in zwei Datenbytes übertragen wird, gibt eigentlich an, wieviel 0.5 Grad - Einheiten gemessen wurden. Rein rechnerisch wäre also Temperatur = Wert * 0.5, das müßte man aber als float durchführen oder erweitern&lt;br /&gt;
&lt;br /&gt;
===Programm-Beispiel für LM75===&lt;br /&gt;
Der LM75 wird über den [[I2C]]-Bus angesprochen&lt;br /&gt;
In BasCom, wo es ja keine signed char gibt, wird das Interpretieren auf sehr unterschiedliche Art empfohlen. &lt;br /&gt;
&lt;br /&gt;
Ich empfehle:&lt;br /&gt;
&lt;br /&gt;
 dim Ival as integer&lt;br /&gt;
 dim Msb as byte&lt;br /&gt;
 dim Lsb as byte&lt;br /&gt;
         I2cstart&lt;br /&gt;
         I2cwbyte &amp;amp;H91   ' Lese-adresse !  &lt;br /&gt;
         If Err = 1 Then&lt;br /&gt;
            I2cstop       ' kein ACK vom LM75 --&amp;gt; irgendein Fehler&lt;br /&gt;
            Ival = 9999   ' Zeichen, daß der Wert ungültig ist !&lt;br /&gt;
         Else&lt;br /&gt;
            I2crbyte Msb , Ack&lt;br /&gt;
            I2crbyte Lsb , Nack&lt;br /&gt;
            I2cstop&lt;br /&gt;
            If Msb.7 = 1 Then&lt;br /&gt;
               Ival = Makeint(msb , &amp;amp;HFF)   ' auffüllen mit den Vorzeichen bits&lt;br /&gt;
            Else&lt;br /&gt;
               Ival = Makeint(msb , &amp;amp;H00)   ' positiv, also bleibt es so&lt;br /&gt;
            End If&lt;br /&gt;
            Ival = Ival * 10                ' erweitern &lt;br /&gt;
            If Lsb.7 = 1 Then&lt;br /&gt;
              Ival = Ival + 5               ' fünf Zehntel Grad dazu &lt;br /&gt;
            End If&lt;br /&gt;
         End if&lt;br /&gt;
&lt;br /&gt;
das ergibt die Temperatur in Zehntel-Grad (Natürlich nur, wenn's keine Fehler gab).&lt;br /&gt;
&lt;br /&gt;
==Resistive Sensoren==&lt;br /&gt;
...&lt;br /&gt;
==Kapazitive Sensoren==&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für kapazitive Sensoren sind Luftfeuchtigkeitsmesser, die ihre Kapazität entsprechend der Luftfeuchtigkeit ändern. Das Auslesen der Kapazität kann prinzipiell über das Ausmessen von Ladekurven geschehen. Dies ist jedoch bei kleinen Kapazitäten nicht praktisch durchführbar, weshalb man in diesem Falle meist einen Schwingkreis baut, dessen Frequenz man dann misst und so dann zusammen mit der bekannten Induktivität der Spule die Kapazität des Kondensators ausrechnen kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:feuchtesensor.gif|framed|center|Valvo Feuchtigkeitssensor 10-90% (Kapazität: 122 pF bei TU = 25 °)]]&lt;br /&gt;
&lt;br /&gt;
==Induktive Sensoren==&lt;br /&gt;
Induktiver Näherungsschalter&lt;br /&gt;
&lt;br /&gt;
Sensoren die ihre Induktivität entsprechend der Messgröße ändern können auch mit Hilfe eines Schwingkreises mit bekannter Kapazität ausgemessen werden.&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
==Piezoelektrische Sensoren==&lt;br /&gt;
Hier ist ein Experiment dargestellt das die Funktion von Piezowandlern demonstriert.&lt;br /&gt;
&lt;br /&gt;
Drückt man auf eine längliche Glasplatte (Mikroskopträger Länge 76mm), die an den Enden auf je einem Piezo Wandler gelagert ist, dann ergeben sich Signale, die von den Kräften auf die Wandler abhängig sind. &lt;br /&gt;
&lt;br /&gt;
Die Summe der beiden Kräfte entspricht der Gesamtkraft. Das Verhältnis der beiden Kräfte entspricht dem Verhältnis der Abstände des Druckpunktes zum Wandler. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Piezowandler.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Versuch wurde mit der Frequenz von ca. 4Hz (0,5s/div) von einem Ende bis zum anderen auf die Platte gedrückt. (Tonleiter). Die Signale der beiden Wandler sind im Oszillogramm aufgetragen und die Folge der Druck-Positionen ist auf den ersten Blick schon mal nachvollziehbar.&lt;br /&gt;
&lt;br /&gt;
==PIR Passiv Infrarot Sensoren==&lt;br /&gt;
Hier handelt es sich um Passiv-Infrarot-Bewegungsmelder. Bewegungsmelder regieren beim Eintritt einer Person (Tier) in das Erfassungsfeld des Sensors. Die Anwendungsmöglichkeiten sind nahezu unbegrenzt, man kennt die Technik ja von vielen Terrassenlampen, welche sich beim vorbeigehen automatisch einschalten.&lt;br /&gt;
Reagiert wird also auf Die Körperwärme einer sich im Erfassungsfeld bewegenden Person.&lt;br /&gt;
[[Bild:pir.jpg|right]]&lt;br /&gt;
Zum Prinzip: &lt;br /&gt;
Wärmestrahlen, die einen Erfassungsvorgang auslösen, liegen im Infrarot-Bereich des Wellenspektrums. In diesem Bereich gibt der menschliche Körper seine Wärmestrahlung ab. Leuchtmittel wie Glüh- , Halogen- und Entladungslampen, die für eine Strahlung im sichtbaren Bereich um 0,555 μm entwickelt wurden, geben jedoch auch einen erheblichen Teil an Wärmestrahlung im Infrarot-Bereich ab.&lt;br /&gt;
Im Spektrum oberhalb des sichtbaren Licht, ab 0,780 μm, beginnt der Infrarot-Bereich. Die Wellenlänge&lt;br /&gt;
dieser IR-Strahlung ist abhängig von der Temperatur eines Körpers. Die Wärmestrahlung&lt;br /&gt;
des Menschen hat ihr Maximum zwischen 9 und 10 μm im Infrarot-Bereich.&lt;br /&gt;
Diese Tatsache nutzt der PIR Sensor mittels sogenannter pyroelektrischer IRDetektoren, welche eine hohe Empfindlichkeit im langwelligen Infrarot-Bereich aufweisen. Die Infrarot-&lt;br /&gt;
Strahlung verhält sich ähnlich wie sichtbares Licht. Sie kann reflektiert und durch Linsen&lt;br /&gt;
gebündelt werden.&lt;br /&gt;
Basis eines solchen IR-Detektors (Sensors) sind Lithium-Tantalatkristalle. Diese Kristalle erzeugen,&lt;br /&gt;
bei Wärmeänderung (positive oder negative Temperaturänderung), eine elektrische Spannung.&lt;br /&gt;
Die von den Kristallen abgegebene Spannung liegt im Bereich von einigen μV (μV = millionstel Volt) und ist von folgenden Bedingungen abhängig: &lt;br /&gt;
* Der Intensität der Wärmequelle (Temperatur und Größe)&lt;br /&gt;
* Dem Umgebungsmedium (Temperatur, unterschiedliche Luftfeuchtigkeit)&lt;br /&gt;
* Der Entfernung zwischen Wärmequelle und IR-Sensor&lt;br /&gt;
* Der Bewegungsgeschwindigkeit und Bewegungsrichtung der Wärmequelle&lt;br /&gt;
* Der Empfindlichkeit des PIR-Elementes (frequenzabhängiges Bandpaßverhalten mit Maximum bei ca. 0,1 Hz)&lt;br /&gt;
&lt;br /&gt;
Zur Unterdrückung von Einflüssen aus der Umgebung (übliche wetterbedingte Temperaturänderungen), sind in jedem Sensor 2 Kristalle antiparallel geschaltet. &lt;br /&gt;
Einer der Kristalle gibt, bei Auftreffen von Wärmestrahlung einen positiven, der andere einen negativen Spannungsimpuls ab. Wärmeänderungen die gleichzeitig und mit gleicher Intensität auf beide Kristalle einwirken lösen so keinen Erfassungsvorgang aus, denn die beiden Impulse heben sich gegenseitig auf. Dadurch ist ein Auslösen bei Wärmeänderungen der Umgebung weitgehend ausgeschlossen.&lt;br /&gt;
Anders verhält es sich bei schnellen Bewegungen. Die Lithiumtantalat-Kristalle geben, entsprechend&lt;br /&gt;
der Bewegung und der dadurch hervorgerufenen Wärmeänderung im Erfassungsfeld, ihre&lt;br /&gt;
Impulse zeitversetzt ab. Die beiden Impulse addieren sich zu einer Wechselgröße mit höherer&lt;br /&gt;
Signalamplitude. Dieses elektrische Ausgangssignalist proportional der Wärmeänderung und führt zur Meldung einer Bewegung.&lt;br /&gt;
&lt;br /&gt;
==Autoren==&lt;br /&gt;
* [[Benutzer:PicNick|PicNick]]&lt;br /&gt;
* [[Benutzer:Frank|Frank]] &lt;br /&gt;
* [[Benutzer:Dennis.strehl|Dennis.strehl]]&lt;br /&gt;
* [[Benutzer:Florian|Florian]]&lt;br /&gt;
* Topic&lt;br /&gt;
* [[Benutzer:Manf|Manf]]&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[Navigation]]&lt;br /&gt;
* [[Sensoren]]&lt;br /&gt;
* [[Graycode]]&lt;br /&gt;
* [[Ultraschall SRF10 an RN-Control]]&lt;br /&gt;
* [[Ultraschall SRF05 an RN-MiniControl]]&lt;br /&gt;
* [[Ultraschallsensor SRF02 am RN-Board]]&lt;br /&gt;
* [[Bascom und Kompass CMPS03]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
*[http://www.ikm.uni-karlsruhe.de/forschung/pzt_webseiten/de/grundlagen/pyro.html Piezoelektrische Sensoren]&lt;br /&gt;
*[http://www.roboternetz.de/phpBB2/dload.php?action=category&amp;amp;cat_id=2 Datenblätter im Download-Bereich des Roboternetz]&lt;br /&gt;
*[http://www.nxp.com/acrobat_download/various/SC17_GENERAL_TEMP_1996_3.pdf KDY Sensor Datenblatt]&lt;br /&gt;
*[http://www.tranzistoare.ro/datasheets2/83/83853_1.pdf NTC Datenblatt]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotikeinstieg]]&lt;br /&gt;
[[Category:Grundlagen]]&lt;br /&gt;
[[Category:Elektronik]]&lt;br /&gt;
[[Category:Sensoren]]&lt;/div&gt;</summary>
		<author><name>Momomu</name></author>	</entry>

	</feed>