<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Robotfreak Blog &#187; Mikrocontroller</title>
	<atom:link href="http://www.robotfreak.de/blog/category/mikrocontroller/feed" rel="self" type="application/rss+xml" />
	<link>http://www.robotfreak.de/blog</link>
	<description>Robotik, Elektronik, Arduino und mehr</description>
	<lastBuildDate>Fri, 02 Jul 2010 19:09:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Ardubot</title>
		<link>http://www.robotfreak.de/blog/robotik/ardubot/194</link>
		<comments>http://www.robotfreak.de/blog/robotik/ardubot/194#comments</comments>
		<pubDate>Fri, 23 Oct 2009 21:43:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ardubot]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Robotik]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/?p=194</guid>
		<description><![CDATA[Ardubot heisst mein aktuelles Roboterprojekt. Benannt wurde er nach dem  Sparkfun Ardubot PCB, welches das Chassis bildet. Als Prozessor Board kommt ein Seeeduino V328 mit ATmega328 zum Einsatz. Dieses ist voll kompatibel zum Arduino Duemilanove, hat aber noch einige sinnvolle Erweiterungen. Die Stromversorgung bildet ein 7,4V 1100mAh LiPo Akku. Der Motor Controller besteht aus einem [...]]]></description>
			<content:encoded><![CDATA[<p>Ardubot heisst mein aktuelles Roboterprojekt. Benannt wurde er nach dem  <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=9207" class="liexternal">Sparkfun Ardubot PCB</a>, welches das Chassis bildet. Als Prozessor Board kommt ein <a href="http://letsmakerobots.com/node/10254" class="liexternal">Seeeduino V328</a> mit ATmega328 zum Einsatz. Dieses ist voll kompatibel zum Arduino Duemilanove, hat aber noch einige sinnvolle Erweiterungen. Die Stromversorgung bildet ein 7,4V 1100mAh LiPo Akku. Der Motor Controller besteht aus einem L293D. Angetrieben wird der Ardubot von 2 <a href="http://www.pololu.com/catalog/product/992" class="liexternal">Pololu Micro Metal Gearmotoren</a> mit einer 100:1 &#220;bersetzung und den passenden <a href="http://www.pololu.com/catalog/product/1218" class="liexternal">Pololu 42&#215;19 R&#228;dern mit Quadratur Encodern</a>. Dazu kommt noch ein <a href="http://www.lcd-module.com/produkte/dog.html" class="liexternal">DOGM163</a> 16&#215;3 Zeichen LCD Modul.</p>
<p><img src="http://farm3.static.flickr.com/2700/4032469329_bb50e8edd0.jpg" alt="Ardubot" /></p>
<p><span id="more-194"></span></p>
<h2>Aufbau:</h2>
<p>Der Ardubot ist modular aufgebaut. Alle Module werden nur einfach aufeinander gesteckt oder verschraubt. Die Verbindungen zwischen den Modulen sind mit Dr&#228;hten bzw. Kabel steckbar ausgef&#252;hrt. Auf dem Tr&#228;gerplatine bzw. dem Seeeduino  sind alle Steckverbinder angebracht die zum Verbinden der Module ben&#246;tigt werden. Durch diese flexible Verkabelung lassen sich leicht unterschiedliche Varianten zum Anschlu&#223; der Hardware mit dem Arduino ausprobieren.</p>
<p>Die bisher vorhandenen  Module sind im einzelnen:</p>
<ul>
<li>Tr&#228;gerboard mit Motor Treiber, Motoren, Radencoder</li>
<li>Prozessor Modul</li>
<li>I<sup>2</sup>C LCD Modul</li>
<li>Liniensensor</li>
</ul>
<p>Als Erweiterungen sind geplant bzw. befinden sich im Bau:</p>
<ul>
<li>Asuro Erweiterungs Modul.  Erm&#246;glicht das Anschlie&#223;en von Asuro Erweiterungen wie SnakeVision,  US Sensor.</li>
<li>Sensor Modul f&#252;r verschiedene Ultraschall bzw Infrarot Entfernungssensoren, Lichtsensoren</li>
<li>Gyro/Acceleration Board um den Ardubot auf  den Hinterr&#228;dern balancieren zu lassen</li>
<li>Funk Kamera Modul mit Schwenk/ Neige Servo</li>
<li>Bluetooth oder ein anderes drahtloses Kommunikations Modul</li>
</ul>
<h2>Tr&#228;gerboard:</h2>
<p>Das Ardubot PCB ist das Tr&#228;gerboard f&#252;r den Ardubot. Wie beim Asuro bildet die Platine zugleich das Chassis f&#252;r den Roboters. Die Ardubot Platine besteht aus:</p>
<ul>
<li> Lochrasterfl&#228;chen und Strom Versorgungs Reihen,</li>
<li>einem Arduino konformen Steckplatz und Bohrungen,</li>
<li>Bohrungen f&#252;r die Motor Halterungen und das Bugrad</li>
<li>Anschlu&#223; f&#252;r Batterie und Schalter</li>
<li>der Anschlu&#223; f&#252;r den L293D  Motor Halter und die Motoren</li>
</ul>
<p>Leider ist einiges nicht so verdrahtet, wie ich mir das gew&#252;nscht h&#228;tte. Im Nachhinein h&#228;tte ich auch gleich eine fertige doppelseitig kontaktierte Lochraster Platine verwenden k&#246;nnen. Folgende &#196;nderungen wurden deshalb an der Ardubot Platine vorgenommen:</p>
<ul>
<li>Motor Controller Eing&#228;nge von den Arduino Steckplatz durchtrennt und auf eine eigene Buchsenleiste gef&#252;hrt</li>
<li>Enable Pins des Motor Controller waren mit VCC verbunden. Durchtrennt und ebenfalls auf die Buchsenleiste gef&#252;hrt</li>
<li>Die beiden Reihen f&#252;r  Batteriespannung und GND getauscht. Damit sich Sensoren oder Servos mit 3pol Standard Anschl&#252;ssen anschlie&#223;en lassen</li>
<li>alle Arduino Pins sind nochmals vorne an den Seiten auf Stiftleisten gef&#252;hrt</li>
</ul>
<p>Trotz aller Umbauten ist die Ardubot Platine immer noch nicht perfekt.</p>
<ul>
<li>Durch die verwendeten gr&#246;&#223;eren R&#228;der kann man den USB Stecker am Arduino nicht mehr anstecken, ohne das er am Rad schleift. </li>
<li>Ich h&#228;tte gerne auch das Seeeduino Mega Board ausprobiert. Von den Abmessungen kaum gr&#246;&#223;er als das Seeeduino V328 aber die Steckverbinder sind leider etwas versetzt. Darum pa&#223;t es nicht. Auf einem etwas gr&#246;&#223;eren Board (Standard EuoPlatine 100x160mm) m&#252;&#223;te es gehen oder mit l&#228;ngeren Steckverbindern.</li>
<li>Dadurch, dass das Arduino Baord mit den Steckverbindern nach unten auf die Ardubot Platine gesteckt wird, kann man kein Standard Arduino Shield verwenden. Au&#223;er es ist ein Shield mit &#8216;stackable Headers&#8217;.
</li>
</ul>
<h3>Ardubot Unterseite:<strong> </strong></h3>
<p>Die Unterseite der Ardubot Platine enth&#228;lt eine Menge an zus&#228;tzlichen Dr&#228;hten und Bauteilen. Neben dem L293D Motor Controller, einem weiteremPCF8574 Port Expander f&#252;r den Liniensensor auch ein 74AC14 Hex Inverter C. Derzeit werden 2 Inverter f&#252;r die Motor Steuerung verwendet, was 2 Arduino IOs einspart.</p>
<p><img src="http://farm3.static.flickr.com/2705/4033229186_5b949cd865.jpg" alt="Ardubot" /></p>
<p>Dieses Bild mit Notizen auf <a href="http://www.flickr.com/photos/hmblgrmpf/4033229186/" class="liexternal">Flickr</a> anschauen.</p>
<h3>Ardubot Oberseite:</h3>
<p>Auf der Oberseite sieht man neben den neu verdrahteten Verbindungen eine Menge an SMD Widerst&#228;nden. Da alles so flexibel wie m&#246;glich sein soll, sind alle Eing&#228;nge der Chips mit Pulldown Widerst&#228;nden versehen. Zudem sind alle Ein-und Ausg&#228;nge auf die unten zu sehenden Front Steckverbinder gef&#252;hrt. So kann relativ schnell die Hardware neu verdrahtet werden ohne zum L&#246;tkolben greifen zu m&#252;ssen.</p>
<p><img src="http://farm3.static.flickr.com/2517/4033221138_12dabcb0c2.jpg" alt="Ardubot" /></p>
<p>Dieses Bild mit Notizen auf <a href="http://www.flickr.com/photos/hmblgrmpf/4033221138/" class="liexternal">Flickr</a> anschauen.</p>
<h3>Quadratur Encoder:</h3>
<p>Das folgende Bild zeigt ein Pololu Rad mit dem Quadratur Encoder. &#220;ber 2 Trimmer kann man die beiden Ausgangssignale anpassen, damit diese ein perfektes Rechteck Signal und ein 90° phasenverschobenes Signal ausgeben.</p>
<p><img src="http://farm4.static.flickr.com/3067/4033219620_264ab28786.jpg" alt="Ardubot" /></p>
<h2>Prozessor Modul:</h2>
<p>Als Gehirn f&#252;r den Ardubot kommt ein  Seeeduino V328 Board zum Einsatz. Ein Arduino Duemilanove clone. Das Seeeduino wurde von mir nicht nur wegen der zum Tr&#228;gerboard passenden Farbe ausgew&#228;hlt. Es hat zudem einige wichtige Vorz&#252;ge gegen&#252;ber dem Duemilanove:</p>
<ul>
<li>2 extra A/D pins</li>
<li>seperate Anschl&#252;sse  f&#252;r I<sup>2</sup>C und UART</li>
<li>separate Arduino IOs auf der R&#252;ckseite mit Lochraster konformen Abmessungen</li>
<li>Arbeitet mit 5V oder 3,3V (&#252;ber Schalter umschaltbar)</li>
<li>Auto oder Manueller Reset (&#252;ber Schalter umschaltbar)</li>
</ul>
<p><img src="http://farm4.static.flickr.com/3483/4035048953_5575933741.jpg" alt="Ardubot" /></p>
<p>Dieses Bild mit Notizen auf <a href="http://www.flickr.com/photos/hmblgrmpf/4035048953/" class="liexternal">Flickr</a> anschauen.</p>
<h2>I<sup>2</sup>C LCD Modul:</h2>
<p>Das LCD Module ist ein DOGM 163 3&#215;16 Zeichen Display von <a href="http://www.lcd-module.de" class="liexternal">lcd-module.de</a>. Es kann im 8-bit, 4-bit und SPI Mode betrieben werden. Aufgrund der Limitierung der Arduino IOs wird das LCD im 4-Bit Mode &#252;ber einen I<sup>2</sup>C Port Expander betrieben. Die Standard LiquidCrystal Arduino Bibliothek wurde entsprechend angepasst. &#220;ber Jumper und einen separaten Steckverbinder kann man das Modul auch im SPI Mode betrieben. &#220;ber die hinteren Steckverbinder ist auch ein 4-Bit Betrieb m&#246;glich. I2C ist nat&#252;rlich aufgrund des Bussystems nat&#252;rlich die Methode die die wenigsten Pins ben&#246;tigt, allerdings auch sehr langsam (100µs pro Zeichen bei 100kHz I2C Bustakt).</p>
<p><img src="http://farm3.static.flickr.com/2732/4033227754_c06af29fbb.jpg" alt="Ardubot" /></p>
<p>Dieses Bild mit Notizen auf <a href="http://www.flickr.com/photos/hmblgrmpf/4033227754/" class="liexternal">Flickr</a> anschauen.</p>
<h2>Erster Test, schreibe &#8216;LMR&#8217;:<strong><br />
</strong></h2>
<p>Der erste Test f&#252;r den Ardubot gilt den Rad Encodern. Diese sind zwar mit einer Aufl&#246;sung von 48 Impulsen pro Rad Umdrehung nicht sehr exakt. Um einfache Figuren zu zeichnen, sollte es aber allemal reichen. Bei <a href="http://www.letsmakerobots.com" class="liexternal">letsmakerobots</a> gibt es schon seit einiger Zeit einen Wettbewerb, in dem es darum geht, die Buchstaben &#8216;LMR&#8217;, die Abk&#252;rzung f&#252;r letsmakerobots, mit einem Roboter darzustellen. Das ist doch schon mal eine echte Herausforderung.</p>
<p>Als fauler Programmieren baut man nat&#252;rlich auf etwas, was man schon kennt. In diesem Fall den Asuro und die Asuro Library. Der Asuro hat ja auch Radencoder mit einer &#228;hnlichen Aufl&#246;sung und in der Asuro Lib gibt es die passenden Funktionen f&#252;r Go und Turn zum Fahren unter Zuhilfenahme der Radencoder. Die beiden Funtkionen bzw. die aktuelle GoTurn Funktion ist schnell f&#252;r den Ardubot in ein Arduino Sketch umgewandelt. Aber irgendwie funktioniert das ganze noch nicht so richtig. Es ist scheinbar egal ob ich die Korrektur der Geschwindigkeit durch Vergleich von linkem und rechtem Encoder drinhabe oder nicht. Es kommt fast immer zu einer leichten Abweichung. Wenn ich die Korrektur weglasse, sieht das Ergebnis genauso aus. Da steckt noch irgendwie der Wurm drin. Trotzdem bin ich mit dem ersten Ergebnis soweit zufrieden.</p>
<p>Hier gibt es das Video zu diesem ersten Test.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/GM3jkn8ZhFc" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/GM3jkn8ZhFc"></embed></object></p>
<p>Wie man beim letzten Buchstaben dem &#8216;R&#8217; sehen kann ist der Halbkreis doch sehr klein geworden. Das liegt diesmal aber nicht an der Software, sondern an der Hardware. Die R&#228;der bewegen sich erst ab einem PWM Wert von ca. 80. Unter 80 geben die Motoren nur pfeifende Ger&#228;usche vonn sich. wenn sich die R&#228;der dann drehen, schafft man es einfach nicht mehr engere Kurven zu fahren. Der Kreis wird gleich zu gro&#223; (ca 30cm) wenn sich das innere Rad zu drehen beginnt oder zu klein, wenn es stehen bleibt (ca 9cm). F&#252;r den perfekten Halbkreis w&#228;ren aber 15cm richtig.</p>
<p>Des weitern erkennt man in dem Video, das der Stift bei jeder Drehung einen kleinen Bogen beschreibt. Ist nat&#252;rlich logisch, da der Stift ja versetzt von der Drehachse des Roboters angebracht ist. Abhilfe k&#246;nnte hier ein Servo schaffen, der den Stift auf Kommando absetzt oder anhebt. Zudem m&#252;&#223;te man dann mit dem Roboter vor jeder Drehung:</p>
<ul>
<li>den Stift anheben</li>
<li>ein kleines St&#252;ck zur&#252;ckfahren</li>
<li>drehen</li>
<li>wieder ein kleines St&#252;ck vorfahren</li>
<li>Stift absenken</li>
</ul>
<p>Daran bastele ich gerade als n&#228;chstes.</p>
<h2>Weitere Tests:</h2>
<p>F&#252;r die Zukunft sind weitere Test geplant:</p>
<ul>
<li>Zeichnen mit Stift und Servo</li>
<li>Liniensensor Test</li>
<li>Enrfernungs Sensoren testen</li>
<li>IR Fernbedienung</li>
<li>Balancieren auf den Hinterr&#228;dern</li>
</ul>
<h2>Weblinks</h2>
<ul>
<li><a href="http://www.flickr.com/photos/hmblgrmpf/sets/72157622510554147/" class="liexternal">Ardubot Flickr Album</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/robotik/ardubot/194/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Let Arduino Play contest</title>
		<link>http://www.robotfreak.de/blog/allgemein/let-arduino-play-contest/165</link>
		<comments>http://www.robotfreak.de/blog/allgemein/let-arduino-play-contest/165#comments</comments>
		<pubDate>Thu, 23 Jul 2009 13:32:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[contest]]></category>
		<category><![CDATA[Wettbewerb]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/?p=165</guid>
		<description><![CDATA[BricoGeek.com hat einen Arduino Wettbewerb gestartet. Entwickle ein Spiel, das auf einem Arduino Board l&#228;uft. Der Wettbewerb l&#228;uft noch bis zum 24.August 2009, also sputet euch. Wichtig ist es, eine komplette Dokumentation der Schaltpl&#228;ne und Software abzuliefern und eine Videopr&#228;sentation des Spiels zu erstellen. Zu gewinnen gibt es: 1. Preis GPS Micro Arduino Mega Mega [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bricogeek.com/contest/let-arduino-play/" class="liexternal">BricoGeek.com</a> hat einen Arduino Wettbewerb gestartet. Entwickle ein Spiel, das auf einem Arduino Board l&#228;uft. Der Wettbewerb l&#228;uft noch bis zum 24.August 2009, also sputet euch.<br />
Wichtig ist es, eine komplette Dokumentation der Schaltpl&#228;ne und Software abzuliefern und eine Videopr&#228;sentation des Spiels zu erstellen.</p>
<p><a href="http://www.bricogeek.com/contest/let-arduino-play/" class="liimagelink"><img class="image image-_original" src="http://www.bricogeek.com/contest/let-arduino-play/logo-contest.jpg" alt="" /></a></p>
<p><span id="more-165"></span></p>
<p>Zu gewinnen gibt es:</p>
<h3>1. Preis</h3>
<ul>
<li>GPS Micro</li>
<li>Arduino Mega</li>
<li>Mega Protoshield</li>
</ul>
<h3>2. Preis</h3>
<ul>
<li>Ardupilot mit ATmega328</li>
<li>GPS EM-406A SIRF III</li>
<li>Arduino Duemilenova</li>
</ul>
<h3>3. Preis</h3>
<ul>
<li>Solarzelle 7&#215;11 cm</li>
<li>LiPo Batterie 1100mAh</li>
<li>Lipo Lader MAX1555</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/allgemein/let-arduino-play-contest/165/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mr. Red Adair &#8211; Feuerwehr Roboter</title>
		<link>http://www.robotfreak.de/blog/robotik/mr-red-adair-feuerwehr-roboter/125</link>
		<comments>http://www.robotfreak.de/blog/robotik/mr-red-adair-feuerwehr-roboter/125#comments</comments>
		<pubDate>Wed, 08 Jul 2009 20:09:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Robotik]]></category>
		<category><![CDATA[Atmel]]></category>
		<category><![CDATA[Wii]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/?p=125</guid>
		<description><![CDATA[Mr. Red Adair benannt nach dem wohl ber&#252;hmtesten Feuerwehrmann der Welt, Paul &#8220;Red&#8221; Adair ist ein Feuerwehr Roboter. Nat&#252;rlich nicht f&#252;r echte Feuer sondern nur f&#252;r kleinere Br&#228;nde wie z.B. Kerzen oder Teelichter. Der Roboter nahm erfolgreich an einem Roboter Wettbewerb teil, allerdings keinem speziellen Feuerwehr Roboter Wettbewerb sondern am LMR DAGU Mr. Basic Wettbewerb [...]]]></description>
			<content:encoded><![CDATA[<p>Mr. Red Adair benannt nach dem wohl ber&#252;hmtesten Feuerwehrmann der Welt, Paul &#8220;Red&#8221; Adair ist ein Feuerwehr Roboter. Nat&#252;rlich nicht f&#252;r echte Feuer sondern nur f&#252;r kleinere Br&#228;nde wie z.B. Kerzen oder Teelichter. Der Roboter nahm erfolgreich an einem Roboter Wettbewerb teil, allerdings keinem speziellen Feuerwehr Roboter Wettbewerb sondern am LMR DAGU Mr. Basic Wettbewerb von <a href="http://www.letsmakerobots.com" class="liexternal">letsmakerobots.com</a>.</p>
<p><img src="http://farm4.static.flickr.com/3385/3625798875_de5cfa762b.jpg" alt="Mr-Red-Adair-early-study" /></p>
<p><span id="more-125"></span></p>
<h2>LMR DAGU Mr. Basic Wettbewerb:</h2>
<p>Das Chassis von Mr. Red Adair ist das Mr. Basic Chassis der chinesischen Firma DAGU / AREXX. DAGU / AREXX ist auch Hersteller der Asuro Baus&#228;tze  und hat f&#252;r letsmakerobots (LMR) eine Sonder Edition von 50 Mr. Basic Chassis f&#252;r den Wettbewerb zur Verf&#252;gung gestellt. F&#252;r einen Unkostenbeitrag von 22US$ konnte jedes LMR Mitglied einen der Baus&#228;tze erwerben und am <a href="http://letsmakerobots.com/taxonomy/term/3546" class="liexternal">Wettbewerb</a> teilnehmen. Regeln gab es keine besonderen. Man musste lediglich den kompletten Bausatz (mit Ausnahme der Aufbauten wie z.B. der Leerplatine und dem Batteriefach) verwenden. Pr&#228;miert wurden die ersten 3 Roboter Modelle mit den meisten User Stimmen. Der <a href="http://letsmakerobots.com/taxonomy/term/3546" class="liexternal">Wettbewerb</a> endete am 5. Juli 2009. Mit etwas Gl&#252;ck landete Mr. Red Adair unter den ersten Drei und erhielt ein Preisgeld von 100US$.</p>
<h2>Aufbau</h2>
<p>Mr. Red Adair besteht aus dem Mr. Basic Chassis mit seinem 4-Rad Antrieb. 2 DC Motoren mit angeschlossenem Getriebe und den Antriebsachsen bilden einem gew&#246;hnlichen differentiellem Roboter Antrieb. Nach anf&#228;nglichen Schwierigkeiten mit falsch gelieferten Achsen l&#228;uft das ganze nun doch noch rund. Die Schrauben m&#252;ssen allerdings regelm&#228;&#223;ig nachgezogen werden oder besser gleich mit Sekundenkleber fixiert werden.</p>
<p><img class="alignnone size-full wp-image-163" title="mr-basic" src="http://www.robotfreak.de/blog/wp-content/uploads/2009/07/mr-basic.jpg" alt="mr-basic-google-sketchup" width="640" height="480" /></p>
<h3>Steuerung</h3>
<p>Als Gehirn kommt ein Atmel ATmega328 mit Arduino Bootloader zum Einsatz. Der Controller wurde einfach auf Lochraster aufgebaut, mit den &#252;blichen Steckverbindern f&#252;r Sensoren/Aktoren (3polig, Signal, VCC, GND) f&#252;r alle IOs, FTDI  USB-UART Kabel (6polig), Reset Taster und einem 16MHz Quartz best&#252;ckt. Damit ist er unter der Arduino Oberfl&#228;che als normales Arduino Duemilanove Board ohne &#196;nderungen  ansprechbar. Aufgrund des USB-UART Anschlusses und dem bereits eingebrannten Bootloader kann der obligatorische ISP Steckverbinder entfallen.</p>
<p><img src="http://farm3.static.flickr.com/2543/3713476787_e812b536cf.jpg" alt="arduino-clone-main-controller" /></p>
<h3>Sensoren</h3>
<p>Als Sensoren kommt zum neben einem Maxbotix EZ1 Ultraschall Entfernungsmesser nur noch eine Wii IR Camera als Flammendetektor zum Einsatz. Die Wii IR Camera wurde aus einer Original Wii Remote ausgel&#246;tet und zusammen mit einigen anderen Bauteilen auf Lochraster aufgebaut. Dank an U. J&#252;rss vom <a href="http://cczwei.de" class="liexternal">CC2</a> f&#252;r die Schaltung. Die Wii IR Camera verf&#252;gt &#252;ber ein I2C Interface und kann so recht einfach vom Arduino Controller ausgelesen werden. Nach Senden der Initialisierungs Sequenz kann man die Koordinaten (X, Y) und die Intensit&#228;t von bis zu 4 Infrarot Quellen auslesen. Die Koordinaten umfassen 1024&#215;1024 Punkte, der Erfassungsbereich betr&#228;gt etwa 1-2m f&#252;r eine Kerze in einem horizontalen Winkel von ca 40°. Die Intensit&#228;t der IR Quelle kann in 15 Stufen erfasst werden, daraus l&#228;sst sich in Grenzen auf die Entfernung zum Objekt schlie&#223;en. Ansonsten dient der EZ1 zum Erkennen der Entfernung zum Objekt.</p>
<p><img src="http://farm4.static.flickr.com/3614/3626730660_053a49a871.jpg" alt="wii-ir-camera-maxbotic-sensor" /></p>
<p>Der Wii IR Sensor mit externer Beschaltung auf Lochraster. Wichtig ist, den Sensor mit dem IR Filter zu betreiben, jene schwarze Kunststoffsscheibe, die sich vor dem Sensor im Wii Remote Geh&#228;use befindet.</p>
<p><img src="http://farm4.static.flickr.com/3377/3626622456_83e54e3a82.jpg" alt="wii-ir-camera" /></p>
<h3>Aktoren</h3>
<p>Da die <a href="http://www.mabuchi-motor.co.jp/en_US/cat_files/re_260ra.pdf" class="lipdf">Mabuchi RE-260</a> Motoren nur mit max. 4.5 V betrieben werden, aber gerne bis zu 2A ziehen, sind Motor Treiber mit besonderen Anforderungen gefragt. Zwar w&#228;re es nach Reglement m&#246;glich mehr Batterien (z.B. 6xAA) zu verwenden und die Motoren &#252;ber PWM zu regeln (ohne 100% Ansteuerung). Ich entschied mich f&#252;r den <a href="http://www.pololu.com/catalog/product/120" class="liexternal">Pololu LVDSMC</a> Low Voltage Serial Dual Motor Controller (LVSDMC) und komme daf&#252;r mit dem Original 3xAA Batteriepack aus. Allerdings war noch eine 9V Block Batterie f&#252;r die Elektronik (5V geregelt) und den Blower Motor (9V ungeregelt) notwendig. Der Blower Motor ist vorne am Chassis mit einem Alu Winkel befestigt und wird einfach &#252;ber einen N-FET ein- und ausgeschaltet. Eine Motorbr&#252;cke ist hier nicht notwendig, da er immer nur in dieselbe Richtung l&#228;uft. Zum Einsatz kommt hier ein Motor, den ich aus einem defekten Haar Trockner ausgebaut hatte. Ohne zu wissen, das dieser Motor auch mit Gleichstrom l&#228;uft hatte ich ihn mal testweise an eine Batterie geklemmt und er lief. So konnte dann auch gleich der Propeller ohne &#196;nderung mit &#252;bernommen werden. Mit t 9V lief der Motor flott genug um eine Kerze oder ein Teelicht auszublasen. Dabei zieht er zwar ca. 500mA, aber er l&#228;uft ja nur kurze Zeit.</p>
<p><img src="http://farm4.static.flickr.com/3660/3625809709_d91e1295c5.jpg" alt="blower-motor" /></p>
<p>Der Pololu Low Voltage Dual Serial Motor Controller (LVDSMC) ben&#246;tigt nur zwei Prozessor Pin und einige wenige externe Bauteile. Ein paar Abblock Kondensatoren (100µF und 100nF) und ganz wichtig ein Pullup Widerstand von 1..1.5kOhm an der Reset Leitung. &#220;ber den Reset Pin kann der Motor Controller zur&#252;ckgesetzt werden, der andere Pin ist f&#252;r die Kommunikation zust&#228;ndig. Ein simples serielles Protokoll, mit einer Soft-UART auf dem Arduino Prozessor simuliert, reicht aus. So bleibt die normale UART f&#252;r Debug Ausgaben frei.</p>
<p><img src="http://farm3.static.flickr.com/2427/3626729132_dea9738460.jpg" alt="pololu-lvdsmc-motor-controller" /></p>
<h2>Videos</h2>
<p>Das erste Video zeigt den Test der Einzelkomponenten.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/ZFuyRBvPL0c&amp;hl=de&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/ZFuyRBvPL0c&amp;hl=de&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Das zweite Video zeigt den finalen Test.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/rDjLI9XPWlA&amp;hl=de&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/rDjLI9XPWlA&amp;hl=de&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<h1>Weblinks:</h1>
<ul>
<li><a href="http://letsmakerobots.com/node/8180" class="liexternal">Mr. Red Adair Artikel auf LMR</a></li>
<li><a href="http://letsmakerobots.com/node/7752" class="liexternal">Wii IR Camera als Standalone Sensor</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/robotik/mr-red-adair-feuerwehr-roboter/125/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Arduino Blogparade</title>
		<link>http://www.robotfreak.de/blog/allgemein/arduino-blogparade/134</link>
		<comments>http://www.robotfreak.de/blog/allgemein/arduino-blogparade/134#comments</comments>
		<pubDate>Mon, 29 Jun 2009 20:06:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[contest]]></category>
		<category><![CDATA[Wettbewerb]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/?p=134</guid>
		<description><![CDATA[Um Arduino mehr in Deutschland bekannt zu machen, wurde von freeduino.de, dem deutschen Arduino Blog, eine Blogparade zum Thema Arduino gestartet. Wer selbst einen Blog betreibt, kann daran teilnehmen. Es gibt sogar etwas zu gewinnen, 5 Arduino Einsteiger Sets im Wert von 77€, bestehend aus: Arduino Duemilanove Board. Extended Workshop Kit Buch &#8211; Getting started [...]]]></description>
			<content:encoded><![CDATA[<p>Um <a href="http://arduino.cc/" class="liexternal">Arduino</a> mehr in Deutschland bekannt zu machen, wurde von <a href="http://www.freeduino.de/" class="liexternal">freeduino.de</a>, dem deutschen Arduino Blog, eine Blogparade zum Thema Arduino  gestartet. Wer selbst einen Blog betreibt, kann daran teilnehmen. Es gibt sogar etwas zu gewinnen, 5 Arduino Einsteiger Sets im Wert von 77€, bestehend aus: </p>
<ul>
<li> Arduino Duemilanove Board. </li>
<li>Extended Workshop Kit</li>
<li>Buch &#8211; Getting started with Arduino </li>
</ul>
<p>Gestiftet wurden die Preise von der Firma <a href="http://www.watterott.com/" class="liexternal">Watterot electronic</a>.</p>
<p>Genaueres &#252;ber die Teilnahme am Gewinnspiel findet man auf <a href="http://www.freeduino.de/de/blog/arduino-blogparade-und-gewinnspiel" class="liexternal">freeduino.de</a><br />
<span id="more-134"></span><br />
Um am Gewinnspiel teilzunehmen geht es um die Frage:<br />
<strong>Was w&#252;rdest Du an Gegenst&#228;nden in Deinem Alltag verbessern, die Dir schon lange auf den Nerv gehen?</strong></p>
<p>Meine Ideen w&#228;ren:</p>
<p>1. Eine Low Cost Hausautomation mit dem Arduino. Klar, wenn Geld keine Rolle spielt oder man zuf&#228;llig sowieso gerade ein Haus neubaut oder von Grund auf renoviert k&#246;nnte man sich auch ein EIB, LCN oder LON Hausbus System installieren lassen. Das ganze sollte ohne Neuverkabelung und r&#252;ckbauf&#228;hig auch f&#252;r Mietwohnungen funktionieren und beliebig skalierbar sein. Komfort Lichtsteuerung wie z.B. coming/leaving home. Alle verzichtbaren Stromverbraucher werden beim Verlassen der Wohnung oder dem Zubettgehen ausgeschaltet. Programmierbare Licht Ambiente Schaltungen auf Knopfdruck. Mitdenkende Flurbeleuchtung. Panikschaltung usw.</p>
<p>2. Heimkino Steuerung. Als Heimkinobesitzer &#228;rgern mich die vielen Einzelaufgaben die man erledigen mu&#223; bevor man mit dem Beamer gem&#252;tlich einen Film schauen kann. Leinwand runterkurbeln, Beamer einschalten, Zimmer verdunkeln, Licht ausschalten etc. Das k&#246;nnte man sicher auch sehr gut automatisieren. </p>
<p>3. Mobiler Partykeller. Der Partykeller zuhause ist l&#228;ngst zur Rumpelkammer verkommen. Jetzt kommt der &#220;berall Partykeller zum Mitnehmen. Mit Lichtorgel, Moving Heads, Laser Show und weiteren Lichteffekten, nat&#252;rlich mit stromsparender LED Technik. Dazu eine Ipod Steuerung mit drahtloser Musik&#252;bertragung zur Stereoanlage. Die komplette Anlage sollte in einen Aktenkoffer passen. Zur Not sollte auch Batteriebetrieb mit kleinen Aktivboxen oder &#252;ber Drahtlos Kopfh&#246;rer (1 pro Partygast) m&#246;glich sein, f&#252;r Freiluft Partys.</p>
<p>Und was ist deine Idee? Welcher Alltagsgegenstand nervt dich so sehr, dass man ihn mit Hilfe eines Arduino Boards verbessern k&#246;nnte?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/allgemein/arduino-blogparade/134/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Wii-Nunchuk als Universalsteuerung</title>
		<link>http://www.robotfreak.de/blog/mikrocontroller/wii-nunchuk-als-universalsteuerung/50</link>
		<comments>http://www.robotfreak.de/blog/mikrocontroller/wii-nunchuk-als-universalsteuerung/50#comments</comments>
		<pubDate>Sat, 12 Jul 2008 11:57:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AVR]]></category>
		<category><![CDATA[Mikrocontroller]]></category>
		<category><![CDATA[ATM-18]]></category>
		<category><![CDATA[Wii]]></category>
		<category><![CDATA[Wii Nunchuk]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/?p=50</guid>
		<description><![CDATA[Disese Projekt wurde mit dem ATM-18 Controller Modul realisiert. Dieses Controller Modul besitzt einen ATmega88 als Mikrocontroller und ist eine Zusammenarbeit zwischen Elektor und dem CC2 (ComputerClub 2). Der Wii-Nunchuk wird &#252;ber die I2C Schnittstelle angesprochen. Findige Bastler wie Chad Phillips haben das Protokoll und den Verschl&#252;sselungs Algorythmus herausgefunden. Einige m&#246;gliche Anwendungsbeispiele hierzu: Datalogger. Beschleunigungswerte [...]]]></description>
			<content:encoded><![CDATA[<p>Disese Projekt wurde mit dem ATM-18 Controller Modul realisiert. Dieses Controller Modul besitzt einen ATmega88 als Mikrocontroller und ist eine Zusammenarbeit zwischen <a href="http://www.elektor.de" class="liexternal">Elektor</a> und dem <a href="http://www.cczwei.de/" class="liexternal">CC2 (ComputerClub 2)</a>.<br />
Der Wii-Nunchuk wird &#252;ber die I2C Schnittstelle angesprochen. Findige Bastler wie <a href="http://www.windmeadow.com/node/42" class="liexternal">Chad Phillips</a> haben das Protokoll und den Verschl&#252;sselungs Algorythmus herausgefunden.</p>
<p><a href="http://www.flickr.com/photos/23913470@N00/2659070097/" class="flickr-image" title="ATM18::Projekt::Wii-Nunchuk"><img src="http://farm4.static.flickr.com/3129/2659070097_117a647f56.jpg" alt="ATM18::Projekt::Wii-Nunchuk" /></a></p>
<p><span id="more-50"></span></p>
<p>Einige m&#246;gliche  Anwendungsbeispiele hierzu:</p>
<ul>
<li>Datalogger. Beschleunigungswerte &#252;ber einen Zeitraum erfassen und in einem I2C EEPROM ablegen, z.B. damitr eine Autofahrt aufzeichnen.</li>
<li>Pan-Tilt Kamera Steuerung. Eine Kamera auf Servos montiert &#252;ber den Nunchuk steuern.</li>
<li>RC Modell Fernsteuerung. Zusammen mit einem RC-Sender k&#246;nnte man RC-Autos, Roboter und Flugmodelle steuern</li>
</ul>
<p>usw.<br />
<!--more--></p>
<h2>Was wird ben&#246;tigt:</h2>
<ul>
<li>WII Nunchuk 19€</li>
<li>Ein Nunchuk Adapter 5$ oder DIY selber machen, oder einfach den Stecker abschneiden</li>
<li>ATM-18-Modul oder Nachbau, es geht auch mit einem Arduino Board</li>
<li>LCD Modul zur Anzeige, alternativ UART Verbindung</li>
</ul>
<p>Optional, (aber sehr zu empfehlen):</p>
<ul>
<li>3,3V Spannungsregler</li>
<li>bidirektionaler Levelshifter 3,3V/5V f&#252;r I2C Leitungen</li>
</ul>
<p>Der Nunchuk wird mit 3,3V betrieben. Es funktioniert zwar anscheinend auch mit 5V, ist auf Dauer aber sicher nicht gut.<br />
Zwar vertr&#228;gt der im Nunchuk eingebaute Controller 5V, nicht aber der 3-Achsen-Beschleunigungssensor, der ist nur f&#252;r max. 3,6V ausgelegt.</p>
<p>Zur Verdeutlichung einige Bilder von meinem Versuchsaufbau.</p>
<p><a href="http://www.flickr.com/photos/23913470@N00/2659070605/" class="flickr-image" title="ATM18::Projekt::Wii-Nunchuk"><img src="http://farm4.static.flickr.com/3059/2659070605_0b26684d87.jpg" alt="ATM18::Projekt::Wii-Nunchuk" /></a></p>
<p>Der gesamte Probeaufbau mit ATM18-Modul, Wii-Nunchuk, Levelshifter und 3,3V Stromversorgung auf Steckbrett, STK500.</p>
<p><a href="http://www.flickr.com/photos/23913470@N00/2659897886/" class="flickr-image" title="ATM18::Projekt::Wii-Nunchuk"><img src="http://farm4.static.flickr.com/3145/2659897886_b93b6bcf35.jpg" alt="ATM18::Projekt::Wii-Nunchuk" /></a></p>
<p>Das LCD-Modul mit Wii-Nunchuk Parametern.</p>
<ul>
<li>JOY zeigt den Joystick Wert an</li>
<li>ACC zeigt die 3-Achsen Beschleunigswerte an</li>
<li>BTN zeigt den Status der beiden Tasten C und Z an</li>
</ul>
<p><a href="http://www.flickr.com/photos/23913470@N00/2659070955/" class="flickr-image" title="ATM18::Projekt::Wii-Nunchuk"><img src="http://farm3.static.flickr.com/2049/2659070955_7fe1f2ce54.jpg" alt="ATM18::Projekt::Wii-Nunchuk" /></a></p>
<p>Kabelsalat. Der I2C Levelshifter und die 3,3V Stromversorgung auf dem Steckbrett.</p>
<p><a href="http://www.flickr.com/photos/23913470@N00/2659071079/" class="flickr-image" title="ATM18::Projekt::Wii-Nunchuk"><img src="http://farm4.static.flickr.com/3055/2659071079_249d682f0f.jpg" alt="ATM18::Projekt::Wii-Nunchuk" /></a></p>
<h2>Wii-Nunchuk Adapter</h2>
<p>Der Wii-Nunchuk Adapter f&#252;hrt Stromversorgungs und I2C Anschl&#252;sse auf Stiftleiste heraus.</p>
<ul>
<li>Erfinder: <a href="http://todbot.com/blog/2008/02/18/wiichuck-wii-nunchuck-adapter-available/" class="liexternal">http://todbot.com/blog</a></li>
<li>Bezugsquelle: <a href="http://store.fungizmos.com/index.php?main_page=product_info&amp;cPath=69&amp;products_id=212" class="liexternal">FunGizmos</a></li>
</ul>
<p><a href="http://www.flickr.com/photos/23913470@N00/2659897466/" class="flickr-image" title="ATM18::Projekt::Wii-Nunchuk"><img src="http://farm4.static.flickr.com/3090/2659897466_f0324355c0.jpg" alt="ATM18::Projekt::Wii-Nunchuk" /></a></p>
<p>DIY Wii-Nunchuk Adapter aus einem alten Floppy Adapter. Man kann sich auch aus dem Steckverbinder einer alten ISA Karte einen Nunchuk-Adapter basteln.</p>
<h2>Schaltpl&#228;ne:</h2>
<p><a href="http://www.flickr.com/photos/23913470@N00/2660878524/" class="flickr-image" title="wii_power_schem"><img src="http://farm4.static.flickr.com/3134/2660878524_5e490efac6.jpg" alt="wii_power_schem" /></a></p>
<p>3,3V Stromversorgung</p>
<p><a href="http://www.flickr.com/photos/23913470@N00/2660878560/" class="flickr-image" title="wii_levelshifter_schem"><img src="http://farm4.static.flickr.com/3110/2660878560_928cfecd7b.jpg" alt="wii_levelshifter_schem" /></a></p>
<p>Der WII-Nunchuk Levelshifter Schaltplan.<br />
Setzt die 5V Signale vom ATM-18 Modul in 3,3V Pegel f&#252;r den WII-Nunchuk um. Das ganze funktioniert bidirektional nach einer Application Note von Philips.<br />
<a href="http://www.nxp.com/acrobat_download/applicationnotes/AN10441_1.pdf" class="lipdf">AN10441_1.pdf</a></p>
<p>Die komplette Fotoserie mit h&#246;her aufgel&#246;sten Fotos gibt es bei <a href="http://flickr.com/photos/hmblgrmpf/sets/72157606114444341/" class="liexternal">Flickr</a></p>
<p>Die Software f&#252;r das ATM-18 Modul und weitere Informationen findet man im <a href="http://www.cczwei-forum.de/cc2/thread.php?threadid=1785" class="liexternal">CC2 Forum</a>.</p>
<h2>Weblinks</h2>
<ul>
<li><a href="http://www.elektor.de" class="liexternal">Elektor</a></li>
<li><a href="http://www.cczwei.de/" class="liexternal">CC2 (ComputerClub 2)</a></li>
<li><a href="http://www.windmeadow.com/node/42" class="liexternal">www.windmeadow.com</a></li>
<li><a href="http://todbot.com/blog/2008/02/18/wiichuck-wii-nunchuck-adapter-available/trackback/" class="liexternal">http://todbot.com/blog</a></li>
<li><a href="http://store.fungizmos.com/index.php?main_page=product_info&amp;cPath=69&amp;products_id=212" class="liexternal">FunGizmos</a></li>
<li><a href="http://flickr.com/photos/hmblgrmpf/sets/72157606114444341/" class="liexternal">Flickr</a></li>
<li><a href="http://www.cczwei-forum.de/cc2/thread.php?threadid=1785" class="liexternal">CC2 Forum</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/mikrocontroller/wii-nunchuk-als-universalsteuerung/50/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Preiswerte Bluetooth Anbindung</title>
		<link>http://www.robotfreak.de/blog/mikrocontroller/preiswerte-bluetooth-anbindung/44</link>
		<comments>http://www.robotfreak.de/blog/mikrocontroller/preiswerte-bluetooth-anbindung/44#comments</comments>
		<pubDate>Sat, 19 Apr 2008 22:12:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Mikrocontroller]]></category>
		<category><![CDATA[Bluetooth]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/mikrocontroller/preiswerte-bluetooth-anbindung/44</guid>
		<description><![CDATA[Fertige Bluetooth L&#246;sungen sind mitunter recht kostspielig. Die preiswertesten Bluetooth Module die derzeit k&#228;uflich erh&#228;ltlich sind, gibt es vom chinesischen Hersteller Rayson. Die Module BTM-112 (Class 2) und BTM-222 (Class 1) kosten jeweils nur etwa 15€. Da die Module f&#252;r 3,3V Versorgungsspannung ausgelegt sind ben&#246;tigt man f&#252;r den Anschlu&#223; an ein 5V System neben einem [...]]]></description>
			<content:encoded><![CDATA[<p>Fertige <a href="http://de.wikipedia.org/wiki/Bluetooth" rel="nofollow" class="liwikipedia">Bluetooth</a> L&#246;sungen sind mitunter recht kostspielig. Die preiswertesten Bluetooth Module die derzeit k&#228;uflich erh&#228;ltlich sind, gibt es vom chinesischen Hersteller <a href="http://www.rayson.com/" class="liexternal">Rayson</a>. Die Module BTM-112 (Class 2) und BTM-222 (Class 1) kosten jeweils nur etwa 15€.</p>
<p>Da die Module f&#252;r 3,3V Versorgungsspannung ausgelegt sind ben&#246;tigt man f&#252;r den Anschlu&#223; an ein 5V System neben einem 3,3V <a href="http://de.wikipedia.org/wiki/Spannungsregler" rel="nofollow" class="liwikipedia">Spannungsregler</a> noch 2 Pegelwandler (Level Shifter) f&#252;r die <a href="http://de.wikipedia.org/wiki/UART" rel="nofollow" class="liwikipedia">UART</a> Signale. Zudem will man sicher nicht auf eine Statusanzeige mittels LEDs verzichten. Der Preis f&#252;r ein Modul liegt trotzdem alles in allem bei ca. 20€.<br />
<img src="http://farm4.static.flickr.com/3267/2425453913_5f511cb678.jpg" alt="BTM-222 Modul komplett" /><br />
<span id="more-44"></span></p>
<h2>Die Schaltung</h2>
<p>Die Schaltung des Bluetooth Moduls ist f&#252;r den Betrieb an einem 5V System ausgelegt. Als Spannungsregler kommt ein regelbarer LM317L zum Einsatz. Ebenso k&#246;nnte ein 3,3V Festspannungsregler wie z.B. der LF33CV verwendet werden.</p>
<p><a href="http://www.robotfreak.de/blog/wp-content/uploads/2008/04/btm-222_schem.png" class="liimagelink"><img class="alignnone size-medium wp-image-49" title="BTM-222 Schematic" src="http://www.robotfreak.de/blog/wp-content/uploads/2008/04/btm-222_schem.png" alt="" width="300" height="122" /></a><a href="http://www.robotfreak.de/blog/wp-content/uploads/2008/04/btm_power_schem.png" class="liimagelink"><img class="alignnone size-thumbnail wp-image-48" title="BTM-222 Stromversorgung" src="http://www.robotfreak.de/blog/wp-content/uploads/2008/04/btm_power_schem.png" alt="" width="150" height="124" /></a><br />
<a class="flickr-image" title="btm-222_schem" rel="flickr-mgr" href="http://www.flickr.com/photos/23913470@N00/2428362972/"><br />
</a></p>
<h3>Pegelwandler</h3>
<p>Ein Pegelwandler (englisch Level Shifter) dient dazu, Signalpegel unterschiedlicher Spannungspegel anzupassen. Ein typischer Vertreter f&#252;r einen Pegelwandler ist z.B. ein RS232 Wandler. Dieser wandelt die 12V Pegel einer RS232 Schnittstelle in 5V TTL Pegel um.<br />
Die Pegelwandler f&#252;r unser Bluetooth Modul werden aus je 2 NPN <a href="http://de.wikipedia.org/wiki/Transistor" rel="nofollow" class="liwikipedia">Transistoren</a> und ein paar Widerst&#228;nden gebildet. Theoretisch k&#246;nnte man den 3,3V nach 5V Level shifter auch weglassen, da die 3,3V Pegel normalerweise als HIGH Pegel erkannt werden. Ebenso lie&#223;e sich der 5V nach 3,3V Level shifter durch einen Spannungsteiler, der nur aus 2 Widerst&#228;nden besteht ersetzen. Aber lieber gehe ich hier auf Nummer Sicher.</p>
<h3>Externe Antenne</h3>
<p>Beide Module besitzen keine Antenne. Was aber nicht weiter schlimm ist, ein St&#252;ck Draht tut es ebenso gut. Man erzielt damit eventuell sogar eine h&#246;here Reichweite, als mit einer Keramik Antenne. Im speziellen wird eine sogenannte Lambda/4 Antenne ben&#246;tigt. Die L&#228;nge einer Lambda/4 Antenne entspricht einem Viertel der Sendefrequenz,  bei Bluetooth (2,4GHz) ergibt das eine L&#228;nge von 31mm.</p>
<h3>Adapter Board</h3>
<p>Zun&#228;chst wird das BTM-222 Modul auf das Standard Raster von 2,54mm gebracht. Dazu wird das Modul mit Hei&#223;kleber mittig auf ein St&#252;ck Lochrasterplatine  der Gr&#246;&#223;e 40 x 25mm geklebt. Doppelseitiges Punktraster ist hierzu ideal. Die f&#252;r den Betrieb notwendigen Kontakte werden auf 2 9-polige Stiftleisten gef&#252;hrt. Davon werden insgesamt aber nur 7 Kontakte ben&#246;tigt. Als Hauptproblem stellte sich hier heraus, geeignete Dr&#228;hte zu finden um das Modul zu verdrahten. Der d&#252;nnste, mir zur Verf&#252;gung stehende Silberdraht mit 0,4mm Durchmesser, war hier immer noch zu dick. Nach einigem Ausprobieren war der geeignete &#8220;Draht&#8221; gefunden. Die Einzel Kupferlitzen aus einen St&#252;ck flexiblen Elektrokabel lie&#223;en sich problemlos an die Winz-Kontakte des Moduls anl&#246;ten. Lediglich f&#252;r die Masseverbindung wurde Standard Litze mit 0,6mm verwendet. Die Abblockkondensatoren wurden ebenfalls mit auf diese Adapterplatine gel&#246;tet. So lie&#223;e sich das Modul schon komplett in einem 3,3 System integrieren. F&#252;r 5V System fehlen aber noch ein paar Kleinigkeiten.<br />
<img src="http://farm3.static.flickr.com/2293/2388916495_4d3dc96fb5.jpg" alt="BTM-222 Modul auf Adapter" /></p>
<h2>Inbetriebnahme</h2>
<h3>Bluetooth Profile</h3>
<p>Der Datenaustauch &#252;ber Bluetooth erfolgt &#252;ber sogenannte Profile. Beim Verbinden tauschen die Ger&#228;te ihre Profil Informationen aus und einigen sich dabei &#252;ber das verwendete Profil<br />
Beide BTM Module (BTM-112 und BTM-222) unterst&#252;tzen das SPP Profil (<strong>S</strong>erial <strong>P</strong>ort <strong>P</strong>rotocol). Damit ist die Ansteuerung sowohl von PC Seite als auch von Mikrocontroller Seite besonders einfach. Von der PC Seite (Bluetooth) verh&#228;lt sich das Ger&#228;t wie eine COM Schnittstelle. Von Mikrocontroller Seite (Seriell) werden nur die UART Signale RXD und TXD ben&#246;tigt. Das ganze bezeichnet man auch &#8220;Kabelersatzl&#246;sung&#8221;. Das hei&#223;t die Anwender Software und auch die angeschlossene Mikrocontroller Hardware merkt nichts davon, alles verh&#228;lt sich wie eine normale drahtgebundene serielle Verbindung.</p>
<h3>Probeaufbau auf Steckbrett</h3>
<p>Durch die Stiftleisten kann man Bluetooth Modul einfach auf ein Steckbrett stecken um dort die restliche Schaltung f&#252;r die 5V Logik aufzubauen und zu testen. Dazu geh&#246;ren die 3,3V Spannungsversorgung ein paar Status LEDs und die beiden Levelshifter.<br />
<img src="http://farm3.static.flickr.com/2372/2396001477_a3666ff0d1.jpg" alt="BTM-222 Probeaufbau" /></p>
<h3>Erste Versuche</h3>
<p>Die ersten Versuche mit dem Probeaufbau bestanden nur aus dem Modul und ein paar Status LEDs an den Ports PIO5..7 mit einem 3,3V Labornetzteil. Damit l&#228;&#223;t sich schon mal die Stromaufnahme testen. Nach Anlegen der Spannung flossen 50mA duch die Schaltung. Die LED an PIO5 blinkte 2x kurz zusammen mit der LED an PIO7. Danach blinkte nur noch die LED an PIO7 2mal pro Sekunde. Das schaute schon mal nicht schlecht aus. Auch unter der Bluetooth Umgebung auf dem PC war ein unbekanntes Ger&#228;t zu finden. Eine Verbindung liess sich allerdings nicht aufbauen. Das ist am Anfang n&#228;mlich nur direkt &#252;ber die serielle Schnittstelle m&#246;glich.</p>
<h3>1. serielle Verbindung</h3>
<p>F&#252;r die Konfiguration des Bluetooth Moduls wird einmalig ein serielle Verbindung zum PC &#252;ber einen RS232 Adapter oder einen USB-UART Wandler ben&#246;tigt. Der RS232 Wnadler setzt die UART <a href="http://de.wikipedia.org/wiki/Transistor-Transistor-Logik" rel="nofollow" class="liwikipedia">TTL</a> Pegel (0V..5V) in <a href="http://de.wikipedia.org/wiki/RS232" rel="nofollow" class="liwikipedia">RS232</a> Pegel (+12V..-12V) um. Ein USB-UART Wandler ist bei modernen PCs notwendig, die &#252;ber keine RS232 Schnittstelle verf&#252;gen. Achtung es mu&#223; ein USB-UART Wandler mit UART TTL Pegel sein. Die &#252;blichen USB-RS232 Wandler arbeiten auf der seriellen Schnittstelle wieder mit RS232 Pegel, wozu dann zus&#228;tzlich auf der Bluetooth Modul wiederum ein RS232-TTL Wandler notwendig w&#228;re.<br />
Der unten abgebildete selbstgebaute RS232-UART Wandler besteht aus einem MAX202 Chip und 4 Kondensatoren.<br />
<img src="http://farm3.static.flickr.com/2275/2129824702_93e4c68df2.jpg" alt="RS232 Modul" /><br />
Im Terminalprogramm sind folgende Einstellungen der seriellen Schnittstelle vorzunehmen:<br />
<code>"19200 Baud, 8 Datenbits, no Parity, 1 Stop Bit, Handshake kein oder Hardware"</code><br />
Nach dem Anlegen der Versorgungsspannung reagiert das Modul auf AT-Befehle, die man vom Terminalprogramm aus eingibt. Auf &#8216;AT&#8217; antwortet das Modul mit &#8216;OK&#8217;. Den kompletten Befehlssatz findet man im <a href="http://tme.pl/dok/a04/btm222_datasheet.pdf" class="lipdf">Datenblatt</a>. Einige Befehle funktioneren nur im Master Mode. Da unser Modul als Slave arbeitet, gibt es bei der Eingabe entsprechender Befehle eine Fehlermeldung &#8216;ERROR&#8217;. Auf den Befehl &#8216;ATB?&#8217; antwortet das Modul mit seiner Bluetooth Adresse. &#8216;ATI?&#8217; liefert die Firmware Version (&#8216;v4.19&#8242; bei meinem Modul).<br />
Letztendlich gen&#252;gt der Befehl &#8216;ATH0&#8242;, damit das Modul eine Verbindungsaufnahme &#252;ber Bluetooth erm&#246;glicht. Ein spezielles Pairing mit Eingabe von Pin Code o.&#228;. ist nicht notwendig.<br />
<strong>Korrektur vom 02.07.2008:</strong> Die Eingabe des Befehls &#8216;ATH0&#8242; ist nicht notwendig. Das Modul funktioniert schon mit den Werkseinstellungen richtig. Falls es Probleme geben sollte, gen&#252;gt es einen Werks Reset auszuf&#252;hren mit &#8216;ATZ0&#8242;.</p>
<h3>1. Bluetooth Verbindung</h3>
<p>Jetzt wird es Zeit eine erste Verbindung &#252;ber Bluetooth herzustellen. Beim Anlegen der Spannung an das Modul f&#228;llt mir auf, das die Stromaufnahme jetzt sehr schwankt (zwischen 20..70mA im Sekundenrythmus). Aber kein Grund zur Sorge, das ist alles normal. Wen man nun unter der Bluetooth Umgebung auf dem PC auf den &#8216;Serial Adaptor Dev B&#8217; doppelklickt, bekommt eine Verbindung, und man erh&#228;lt die COM Nummer, unter der man das Modul unter Bluettoth erreicht (COM3 in meinem Fall). Diese COM Nummer gibt man im Terminalprogramm an, die anderen Parameter wie Baudrate sind dieselben wie oben beschrieben. Bei erfolgreicher Verbindung geht die Stromaufnahme auf 20mA zur&#252;ck und die gr&#252;ne Status LED zeigt jetzt Dauerleuchten. Dr&#252;ckt man nun eine Taste im Terminalprogramm leuchtet dazu die rote Traffic LED. Perfekt, so macht das Spa&#223;.<br />
F&#252;r zuk&#252;nftige Verbindungen reicht es aus, das Terminalprogramm zu starten. Die Verbindung steht dann binnen 2-3 Sekunden.</p>
<h3>Tr&#228;gerboard</h3>
<p>Nun geht es daran, die Schaltung vom Probeaufbau auf eie Lochraster Platine zu bringen. Damit das komplette Modul nicht zu gro&#223; wird, entscheide ich mich f&#252;r eine Sandwich Konstruktion. Die mei&#223;ten Bauteile sitzen dann unter dem Adapterboard. Viel Platz ist nicht, aber mit Hochkant Stellen der meisten Widerst&#228;nde klappt es ohne Probleme, alles unterzubringen. Man mu&#223; allerdings darauf achten, dass die Bauteile nicht zu hoch ragen, sonst k&#246;nnte es Kurzschl&#252;sse mit dem Adapterboard geben. Die Steckerbelegung des 6poligen Steckverbinders entspricht der Belegung meines BlueSmiRF bzw. RS232 Moduls. So kann ich die Module beliebig untereinander tauschen.</p>
<p>Das Tr&#228;gerboard Bauteilseite:<br />
<img src="http://farm3.static.flickr.com/2285/2425449873_7544b82a72.jpg" alt="Tr&#228;gerboard von oben" /></p>
<p>Das Tr&#228;gerboard L&#246;tseite:<br />
<img src="http://farm4.static.flickr.com/3200/2425451637_bc40445d8c.jpg" alt="Tr&#228;gerboard von unten" /></p>
<p>Tr&#228;gerboard Layoutplan Bauteilseite:<br />
<img src="http://farm3.static.flickr.com/2242/2427550251_a8d36b86ca.jpg" alt="Tr&#228;gerboard Layout von oben" /></p>
<p>Tr&#228;gerboard Layoutplan L&#246;tseite:<br />
<img src="http://farm4.static.flickr.com/3018/2428363086_0b66668ffb.jpg" alt="Tr&#228;gerboard Layout von unten" /></p>
<h2>Das fertige Modul</h2>
<p>Geschafft, so sieht das fertige Modul aus. Vor dem Aufstecken sollte man unbedingt das Tr&#228;gerboard durchmessen und erst mal alleine testen. Das hei&#223;t Stromaufahme messen, Spannungen &#252;berpr&#252;fen. Die 3,3V Spannungsversorgung mu&#223; erst &#252;ber den Poti abgeglichen werden. Erst dann sollte man das Modul stecken. Wie schon beim Probeaufbau sollte beim Spannung anlegen erst beide LEDs kurz blinken, danach nur noch zyklisch die gr&#252;ne LED.<br />
<img src="http://farm4.static.flickr.com/3267/2425453913_5f511cb678.jpg" alt="BTM-222 Modul komplett" /></p>
<h3>St&#252;ckliste</h3>
<p><code><br />
1 LM317LZ regelbarer Spannungsregler, IC1<br />
1 Bluetooth Modul BTM-222, IC2<br />
4 Transistoren NPN BC547 o. &#228;., T1..T4<br />
1 LED rot, low current 2mA, D1<br />
1 LED gr&#252;n low current 2mA, D2<br />
1 Diode 1N4002, D3<br />
4 Folien Kondensatoren 100nF, C1..C4<br />
8 Widerst&#228;nde 1k, R1..R8<br />
1 Widerstand 220, R9<br />
1 Trimmer 5k, R10<br />
2 Steckerleisten gerade, 2,54mm 9polig<br />
1 Steckerleiste gewinkelt, 2,54mm 6polig<br />
2 Buchsenleisten gerade, 2,54mm 9polig<br />
1 St&#252;ck Lochraster doppelseitig Punktraster, 25x40mm<br />
1 St&#252;ck Lochraster einseitig Punktraster, 30x53mm<br />
Silberdraht, 0,4mm<br />
isolierter Schaltdraht, starr, rot, gelb, schwarz 0,4mm<br />
Kupferlitze aus flexiblem Elektrokabel<br />
</code><br />
Thats all folks!</p>
<h2>Bezugsquellen</h2>
<ul>
<li><a href="http://www.it-wns.de/themes/kategorie/detail.php?artikelid=219&amp;source=2" class="liexternal">www.it-wns.de</a></li>
<li><a href="http://lynx-dev.com/index.php?page=shop.product_details&amp;category_id=62&amp;flypage=shop.flypage&amp;product_id=5683&amp;option=com_virtuemart&amp;Itemid=2" class="liexternal">www.lynx-dev.com</a></li>
<li><a href="http://www.tme.pl/modul-bluetooth-hci-uart-class-2/arts/pl/a04/btm-112.html" class="liexternal">www.tme.pl</a></li>
<li><a href="http://www.csd-electronics.de/de/index.htm" class="liexternal">CSD-Electronics</a></li>
</ul>
<h2>Weblinks</h2>
<ul>
<li><a href="http://www.clipswitch.de/avrblueremote.html" class="liexternal">AVR Blue Remote</a> &#8211; Eine Bluetooth Funkkfernsteuerung f&#252;r PDAs und Smartphones</li>
<li><a href="http://www.mikrocontroller.net/articles/Bluetooth" class="liexternal">www.microcontroller.net</a> &#8211; Bluetooth Artikel</li>
<li><a href="http://www.mikrocontroller.net/topic/81759#new" class="liexternal">www.microcontroller.net Forum</a> &#8211;  Bluetoothmodul BTM-222</li>
<li><a href="http://www.roboternetz.de/phpBB2/viewtopic.php?t=39494" class="liexternal">www.roboternetz.de Forum</a> &#8211; BTM-222 Bluetooth Modul</li>
<li><a href="http://tme.pl/dok/a04/btm222_datasheet.pdf" class="lipdf">BTM-222 Datenblatt</a></li>
<li><a href="http://www.flickr.com/photos/hmblgrmpf/tags/bluetooth/" class="liexternal">www.flickr.com</a> &#8211; mein Flickr Bluetooth Album</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/mikrocontroller/preiswerte-bluetooth-anbindung/44/feed</wfw:commentRss>
		<slash:comments>46</slash:comments>
		</item>
		<item>
		<title>AVR Preserver</title>
		<link>http://www.robotfreak.de/blog/mikrocontroller/avr-preserver/43</link>
		<comments>http://www.robotfreak.de/blog/mikrocontroller/avr-preserver/43#comments</comments>
		<pubDate>Wed, 23 Jan 2008 22:42:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AVR]]></category>
		<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Mikrocontroller]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/allgemein/avr-preserver/43</guid>
		<description><![CDATA[Wer hatte noch nicht das Problem. Ein Klick an der falschen Stelle beim Setzen der Fusebits und schon hat man einen AVR Prozessor auf externen Takt gestellt, obwohl man eigentlich externen Quarz gemeint hatte. Damit hat man sich vom Prozessor ausgesperrt. Um so einen AVR wieder zu beleben ben&#246;tigt man eine HV-Programmer, wie z.B. das [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/23913470@N00/2215430472/" title="Preserver" class="liimagelink"><img src="http://farm3.static.flickr.com/2028/2215430472_f80850e7f2.jpg" alt="Preserver" /></a></p>
<p>Wer hatte noch nicht das Problem. Ein Klick an der falschen Stelle beim Setzen der Fusebits und schon hat man einen AVR Prozessor auf externen Takt gestellt, obwohl man eigentlich externen Quarz gemeint hatte. Damit hat man sich vom Prozessor ausgesperrt. Um so einen AVR wieder zu beleben ben&#246;tigt man eine HV-Programmer, wie z.B. das STK500 oder den AVR Preserver. <span id="more-43"></span><br />
Die Schaltung ist sehr einfach gehalten. Ben&#246;tigt wird ein Quarz Oszillator (Frequenz ist fast egal, sollte zwischen 1..4 MHz liegen. Ich habe gleich einen 14poligen IC Sockel spendiert, so kann ich bei Bedarf auch den Quarz Oszillator tauschen. Der 10polige Wannenstecker hat die Standard Belegung der STK200/Kanda ISP Schnittstelle, und kann so einfach mit einer zus&#228;tzlichen 10poligen Buchse, sie auf das ISP Kabel gecrimpt wird, mit Spannung aus dem ISP Dongle mitversorgt werden.<br />
Die Pinbelegung der Quarz Oszillatoren ist eigentlich immer dieselbe und entspricht vom Layout her einem IC. Im Bild oben wird ein quadratischer Quarz Oszillator verwendet, andere Bauformen sind oftmals rechteckig wie ein 14poliger IC. Pin1 ist immer mit einem Punkt gekennzeichnet (unten links). Die Z&#228;hlweise der Pins ist wie bei ICs &#252;blich von unten links (Pin1) bis unten rechts (Pin7) dann oben rechts (Pin8) bis oben links (Pin14).</p>
<li>Pin1 ist unbenutzt</li>
<li>Pin7(4) ist Masse</li>
<li>Pin8(12) der Ausgang</li>
<li>Pin14 die Versorgungsspannung (5V)</li>
<p>Die Zahlen in Klammern gelten f&#252;r den quadratischen Quarz Oszillator der im 14poligen IC Sockel steckt. Auf der Platine werden deshalb die Pins 4..7 untereinander verbunden und ebenso die Pins 8..12.</p>
<h3>Schaltplan</h3>
<p><a href="http://www.flickr.com/photos/23913470@N00/2214636485/" title="preserver_schem" class="liimagelink"><img src="http://farm3.static.flickr.com/2143/2214636485_1fe57281b0.jpg" alt="preserver_schem" /></a></p>
<h3>Board Layout</h3>
<p><a href="http://www.flickr.com/photos/23913470@N00/2215428896/" title="preserver" class="liimagelink"><img src="http://farm3.static.flickr.com/2209/2215428896_dd39439ff0.jpg" alt="preserver" /></a></p>
<p>Board 3-D Ansicht</p>
<p><a href="http://www.flickr.com/photos/23913470@N00/2215428852/" title="preserver" class="liimagelink"><img src="http://farm3.static.flickr.com/2116/2215428852_1c9a6dc0a6.jpg" alt="preserver" /></a></p>
<h2>Weblinks</h2>
<li><a href="http://www.klaus-leidinger.de/mp/" class="liexternal">http://www.klaus-leidinger.de/mp/</a> Die Idee f&#252;r den Preserver stammt von dort.</li>
<li><a href="http://palmavr.sourceforge.net/cgi-bin/fc.cgi" class="liexternal">AVR Fusebits Calculator</a> &#8211; Ein klasse Tool zum finden der richtigen Fusebits</li>
<li><a href="http://www.mikrocontroller.net/articles/AVR_Fuses" class="liexternal">www.microcontroller.net</a> &#8211; Fusebits</li>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/mikrocontroller/avr-preserver/43/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Arduino und der Asuro</title>
		<link>http://www.robotfreak.de/blog/robotik/arduino-und-der-asuro/42</link>
		<comments>http://www.robotfreak.de/blog/robotik/arduino-und-der-asuro/42#comments</comments>
		<pubDate>Wed, 09 Jan 2008 22:06:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AVR]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Asuro]]></category>
		<category><![CDATA[Mikrocontroller]]></category>
		<category><![CDATA[Robotik]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/robotik/arduino-und-der-asuro/42</guid>
		<description><![CDATA[Mit der Asuro Erweiterung und der damit vorhandenen RS232 Schnittstelle lassen sich auch sehr leicht Arduino Skripte laden und ausf&#252;hren. Allerdings wird dazu auch ein neuer Prozessor mit einem Arduino kompatiblen Bootloader vorausgesetzt. Warum nicht gleich auf den ATmega168 umsteigen. Der bietet neben dem doppelten Speicher f&#252;r Flash, EEPROM und RAM auch eine Debug M&#246;glichkeit [...]]]></description>
			<content:encoded><![CDATA[<p>Mit der Asuro Erweiterung und der damit vorhandenen RS232 Schnittstelle lassen sich auch sehr leicht <a href="http://www.arduino.cc" class="liexternal">Arduino</a> Skripte laden und ausf&#252;hren. Allerdings wird dazu auch ein neuer Prozessor mit einem Arduino kompatiblen Bootloader vorausgesetzt. Warum nicht gleich auf den ATmega168 umsteigen. Der bietet neben dem doppelten Speicher f&#252;r Flash, EEPROM und RAM auch eine Debug M&#246;glichkeit &#252;ber DebugWire.<br />
<span id="more-42"></span><br />
Die Idee dazu stammt aus dem <a href="http://www.arduino.cc/playground/" class="liexternal">Arduino Playground</a> in dem Arduino Nutzer ihre Projekte vorstellen. Unter <a href="http://www.arduino.cc/playground/Learning/Asuro" class="liexternal">Arduino and the Asuro Robot</a> von Jakob Remin findet man neben einer Quick&#8217;n'Dirty Methode zur Modifikation des Asuros auch ein Arduino Sketch zur Ansteuerung des Asuros. Den Umbau kann ich mir durch die  <a href="http://www.robotfreak.de/blog/robotik/asuro-erweiterung-rs232bluetooth-und-isp/34" class="liinternal">Asuro Erweiterung</a> schon mal sparen.</p>
<h2>Erste Versuche</h2>
<p>Die ersten Versuche mit einem geclonten Arduino Diecimila Bootloader verliefen schon mal vielversprechend. Mit<br />
Ein paar &#196;nderungen in der Board Beschreibungsdatei hat man ein neues Board dazugef&#252;gt und dieses taucht nach dem Start der Arduino Oberfl&#228;che unter Tools | Boards aus.</p>
<pre class="prettyprint" style="padding-left: 30px;">##############################################################
atmega168.name=Arduino Asuro w/ ATmega168
atmega168.upload.protocol=stk500
atmega168.upload.maximum_size=14336
atmega168.upload.speed=9600
atmega168.bootloader.low_fuses=0xff
atmega168.bootloader.high_fuses=0xdd
atmega168.bootloader.extended_fuses=0x00
atmega168.bootloader.path=atmega168asuro
atmega168.bootloader.file=ATmegaBOOT_168_asuro.hex
atmega168.bootloader.unlock_bits=0x3F
atmega168.bootloader.lock_bits=0x0F
atmega168.build.mcu=atmega168
atmega168.build.f_cpu=8000000L
atmega168.build.core=arduino</pre>
<p>Nach einstellen der Schnittstelle wird der Asuro auch gleich erkannt und das Beispiel Sketch kann &#252;bersetzt und geladen werden.<br />
Allerdings zeigte sich dabei der Effekt das beim Flashen bzw. beim Einschalten oder Reset des Asuros der rechte Motor f&#252;r ca. 10sek los l&#228;uft. Das ist nat&#252;rlich unsch&#246;n und liegt am Original Arduino Bootloader. Dort wird PB5 als Port f&#252;r die Status LED verwendet. Beim Asuro ist dieser Port mit dem rechten Motor verbunden. Autsch!!</p>
<h2>Bootloader anpassen</h2>
<p>Da der Quellcode f&#252;r den Bootloader als Open Source zur Verf&#252;gung steht, ist das &#196;ndern der Status LED kein Problem. Allerdings blieb auch nach &#196;nderung die recht lange Wartezeit von 10sek bis das Anwenderprogramm gestartet wird. Nach ein paar Internet Recherchen war auch f&#252;r dieses Problem eine L&#246;sung in Form des ADABOOT Bootloader gefunden. Dieser Bootloader bietet einige Vorteile gegen&#252;ber dem Arduino Bootloader. Damit bin ich erst mal gl&#252;cklich.</p>
<p>Allerdings klappt die &#220;bertragung bisher nur &#252;ber RS232. Bei Bluetooth Anbindung gibt es keine Verbindung zwischen der Arduino IDE und dem Asuro.  Man kann zwar in der Bluetooth Umgebung die Verbindung manuell herstellen, dann klappt immerhin die Verbindung im Terminalmode. Versucht man aber ein Sketch zu laden, bricht die Verbindung wieder ab. Mit Hyper Terminal gibt es keine Probleme unter Bluetooth. Schade, aber man kann wohl nicht alles haben. Allerdings besteht noch Hoffnung. Auf der  <a href="http://www.chip45.com" class="liexternal">Chip45 Homepage</a>, gibt es den Ur-Bootloader f&#252;r die Arduino Boards. Dort gibt es auch ein kleines Tool zum Flashen von Programmen &#252;ber den Bootloader. Dies lie&#223;e sich vielleicht anpassen, damit das Flashen auch unter Bluetooth funktioniert. Ein nettes Feature der Arduino Bootloader ist der automatische Reset des Boards, wenn ein neues Programm geflasht werden soll. Dazu muss lediglich ein 100nF Kondensator  zwischen Reset Leitung und DTR Steuerleitung gel&#246;tet werden. Allerdings F&#252;hrt das auch dazu, dass der Asuro einen Reset ausf&#252;hrt, wenn man die Arduino IDE, bzw. das Terminalprogramm startet.</p>
<p>Theoretisch lie&#223;e sich der Bootloader  auch soweit anpassen, das er auch &#252;ber die Standard Infrarot Schnittstelle des ASUROs funktioniert. Dazu m&#252;sste lediglich noch der 36kHz Timer f&#252;r die Ansteuerung der IR-LED implementiert werden. Praktisch funktioniert das leider nicht. Die IR &#220;bertragung ist leider zu fehlertr&#228;chtig.</p>
<p>Den Asuro Bootloader kann man sich bei <a href="http://sourceforge.net/project/showfiles.php?group_id=155217" class="liexternal">Sourceforge</a> herunterladen</p>
<h2>Asurino &#8211; Eine Arduino Bibliothek f&#252;r den Asuro</h2>
<p>Aus dem bestehenden Sketch von Jakob Remin habe ich angefangen eine Arduino Bibliothek zu schreiben.<br />
Der Name Asurino ist ein Kunstwort zusammengef&#252;gt aus den beiden Worten <strong>Asur</strong>o und Ardu<strong>ino</strong>. Bibliotheken f&#252;r Arduino werden in C++ geschrieben. Das h&#246;rt sich erst mal nach viel Arbeit an, ist aber nicht sonderlich schwer. Es gibt eine sehr gute Anleitung zum Schreiben von Bibliotheken. Man braucht auch nicht bei Null anfangen, da man nat&#252;rlich die vorhandenen Arduino Funktionen alle verwenden kann. Au&#223;erdem kann man sich an bereits existierenden Bibliotheken orientieren.</p>
<p>Bisher ist die Bibliothek noch recht rudiment&#228;r und sicher auch nicht fehlerfrei. Wer m&#246;chte kann sich die derzeitige Arbeitsversion bei <a href="http://sourceforge.net/project/showfiles.php?group_id=155217" class="liexternal">Sourceforge</a> herunterladen.</p>
<h2>Asuro Beispiel Sketche</h2>
<p>Ein Beispiel Sketch f&#252;r den Asuro sieht z.B. so aus. Durch das<br />
<code>#include "Asuro.h"</code><br />
wird die Bibliothek eingebunden. Die Zeile<br />
<code>Asuro asuro = Asuro();</code><br />
ist der Aufruf f&#252;r den Konstruktor der Asuro Klasse. Die Setup Routine wird einmalig beim Start des Sketches ausgef&#252;hrt und initialisiert lediglich die serielle Schnittstelle. Die Asuro spezifische Initialisierung passiert bereits im Konstruktor. Die loop Funktion wird dann zyklisch vom Hauptprogramm aufgerufen und durchlaufen. Das eigentliche Programm fragt die Tastsensoren ab. Falls eine Taste gedr&#252;ckt wurde, wird der Tastenwert bin&#228;r zum Terminalprogramm gesendet und die Status LED f&#252;r eine Sekunde auf Rot gesetzt, dann wieder zur&#252;ck auf Gr&#252;n.</p>
<pre class="prettyprint" style="padding-left: 30px;">#include "Asuro.h"
Asuro asuro = Asuro();
void setup()
{
  Serial.begin(9600);
}
void loop()
{
  int Switches;
  /* front switch check */
  Switches = asuro.readSwitches();
  if (Switches)      /* Key pressed?
  {
    Serial.println("switches pressed");
    Serial.println(Switches, BIN);    /* send key value in binary */
    asuro.setStatusLED(RED);        /* status led red */
    delay(1000);                         /* wait 1sec */
  }
  asuro.setStatusLED(GREEN);      /* status led green */
}</pre>
<p>Einen aktualisierten Artikel zu diesem Thema findet man im <a href="http://www.asurowiki.de/pmwiki/pmwiki.php/Main/Asurino" class="liexternal">AsuroWiki</a>.</p>
<h2>Weblinks</h2>
<ul>
<li><a href="http://www.arduino.cc" class="liexternal">Arduino</a></li>
<li><a href="http://www.arduino.cc/playground/" class="liexternal">Arduino Playground</a></li>
<li><a href="http://www.arduino.cc/playground/Learning/Asuro" class="liexternal">Arduino and the Asuro Robot</a></li>
<li><a href="http://www.arduino.cc/playground/Learning/Asurino" class="liexternal">Asurino, an Arduino Library for the Asuro robot</a></li>
<li><a href="http://sourceforge.net/project/showfiles.php?group_id=155217" class="liexternal">Sourceforge</a> &#8211; Asurino, AsuroBoot Download</li>
<li><a href="http://www.asurowiki.de/pmwiki/pmwiki.php/Main/Asurino" class="liexternal">Asurino Artikel im AsuroWiki</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/robotik/arduino-und-der-asuro/42/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Asuro Erweiterung RS232/Bluetooth und ISP</title>
		<link>http://www.robotfreak.de/blog/robotik/asuro-erweiterung-rs232bluetooth-und-isp/34</link>
		<comments>http://www.robotfreak.de/blog/robotik/asuro-erweiterung-rs232bluetooth-und-isp/34#comments</comments>
		<pubDate>Sat, 22 Dec 2007 23:47:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AVR]]></category>
		<category><![CDATA[Asuro]]></category>
		<category><![CDATA[Mikrocontroller]]></category>
		<category><![CDATA[Robotik]]></category>
		<category><![CDATA[Bluetooth]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/robotik/asuro-erweiterung-rs232bluetooth-und-isp/34</guid>
		<description><![CDATA[Geschafft! Nach langer Zeit hatte ich mal wieder etwas Zeit, mich um meinen kleinen Freund den ASURO zu k&#252;mmern. Rechtzeitig zu Weihnachten erh&#228;lt dieser mal wieder eine Erweiterung. Diese besteht zurzeit aus einem RS232 bzw. Bluetooth Modul und einer ISP Schnittstelle. Der Clou bei der Sache ist, die Erweiterung wird nicht, wie das LCD-Modul oder [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/23913470@N00/2129839498/" title="Asuro mit BT Modul" class="liimagelink"><img src="http://farm3.static.flickr.com/2201/2129839498_1121858e85.jpg" alt="Asuro mit BT Modul" /></a></p>
<p>Geschafft! Nach langer Zeit hatte ich mal wieder etwas Zeit, mich um meinen kleinen Freund den ASURO zu k&#252;mmern. Rechtzeitig zu Weihnachten erh&#228;lt dieser mal wieder eine Erweiterung. Diese besteht zurzeit aus einem RS232 bzw. Bluetooth Modul und einer ISP Schnittstelle. Der Clou bei der Sache ist, die Erweiterung wird nicht, wie das LCD-Modul oder die SnakeVision Erweiterung, von oben, sondern von unten aufgesteckt. D.h. man kann oben zus&#228;tzlich z.B. das LCD-Modul stecken. Zudem ist auf der Platine noch jede Menge Platz f&#252;r weitere Features.</p>
<p><span id="more-34"></span></p>
<h2>Durchf&#252;hrung</h2>
<p>Durch die Erfahrungen, die ich mit dem <a href="http://www.asurowiki.de/pmwiki/pmwiki.php/Main/AsuroEvalBoard" class="liexternal">ASURO Eval Board</a> gemacht habe, war die Umsetzung nicht sehr schwierig. Dort war ja auch schon das RS232 Modul und das Bluetooth Modul sowie die ISP Schnittstelle vorhanden. Nur ist das ganze jetzt wesentlich kompakter, robuster und nicht so verbaut wie beim Eval Board.</p>
<p>Der ASURO mu&#223; allerdings etwas modifiziert werden, damit das ganze auch funktioniert. Wer es nachbauen m&#246;chte, sollte schon wissen, was er tut. Die Umbauten sind allerdings nicht so gravierend, dass man das Ganze nicht wieder zur&#252;ckbauen k&#246;nnte. Auch ist der einwandfreie Betrieb ohne die Erweiterungsplatine m&#246;glich. Es m&#252;ssen lediglich 3 Jumper am Asuro gesetzt werden.</p>
<h3>UART Schnittstelle</h3>
<p>Die UART Schnittstelle am ASURO ist normalerweise &#252;ber eine Infrarot Schnittstelle realisiert. Leider ist die Reichweite dieser L&#246;sung nicht besonders (max. 50cm). Zudem wird auf PC Seite ebenfalls ein Infrarot Transceiver ben&#246;tigt. Um die UART Schnittstelle zur Erweiterungs Platine zu f&#252;hren, m&#252;ssen die beiden Signale RX und TX vom Prozessor zur IR Schnittstelle durchtrennt werden. Zus&#228;tzlich werden die durchtrennten Signale von der IR Schnittstelle ebenfalls zur Erweiterungsplatine gef&#252;hrt. Zweckm&#228;&#223;igerweise werden alle Signal auf einen doppelreihigen Steckerleiste gef&#252;hrt. Die untere Reihe wird an die Prozessor Pins gel&#246;tet. an die obere Reihe kommen die Signale von der IR Schnittstelle. Da gleich neben den UART ins der RESET Pin h&#228;ngt, wird dieser ebenfalls auf die insgesamt 2&#215;3 poligen Steckerleiste gef&#252;hrt (geh&#246;rt aber eigentlich zur ISP Schnittstelle). Da der RESET Pin direkt an der Versorgungsspannung h&#228;ngt, wird diese Verbindung ebenfalls durchtrennt und die Versorgungsspannung  an die obere Reihe gef&#252;hrt. So ist gew&#228;hrleistet, das durch Stecken von 3 Jumpern auf die Steckerleiste, die original Funktion des ASUROs wiederhergestellt ist.</p>
<p><a href="http://www.flickr.com/photos/23913470@N00/2129823200/" title="Asuro UART Verdrahtung" class="liimagelink"><img src="http://farm3.static.flickr.com/2074/2129823200_ddff632457.jpg" alt="Asuro UART Verdrahtung" /></a></p>
<h3>ISP Schnittstelle</h3>
<p>Die ISP Schnittstelle ist beim Original ASURO Prozessor abgeschaltet und kann nur durch einen Chip Erase wieder eingeschaltet werden. Leider ist durch den Chip Erase aber auch der Bootloader weg. Deshalb sollte man Experimente mit der ISP Schnittstelle nur mit einem anderen Prozessor durchgef&#252;hrt werden und der Original Prozessor gut aufgehoben werden. Zur ISP Schnittstelle geh&#246;rt neben RESET, VErsorgungsspannung und Masse die 3 Prozessor Signale MISO, MOSI und SCK. Diese 3 Signale liegen beim Mega8 gl&#252;cklicherweise direkt nebeneinander  auf Pin 17,18 u. 19. So reicht eine 3polige abgewinkelte Steckerleiste aus, die an die entsprechenden Prozessor Pins gel&#246;tet werden. Leiterbahnen m&#252;ssen keine aufgetrennt werden.</p>
<h3>Verdrahtung</h3>
<p>Auf dem ASURO m&#252;ssen ingesamt 4 Leitungen nachverdrahtet werden. Dies sind:</p>
<li> die TX Leitung von der IR Sende Diode,</li>
<li>die RX Leitung vom IR Empf&#228;nger,</li>
<li>die Versorgungspannung zur 3&#215;2 poligen Steckerleiste</li>
<li>eine Versorgungsspannung Leitung zum Widerstand R11, da dieser hinter der RESET Leitung an der Versorgungsspannung hing</li>
<p>Dazu kommt eine 6-polige Leitung zur UART Schnittstelle und die 3polige Leitung zur ISP Schnittstelle. Versorgungsspannung und Masse kommen von den Erweiterungs Steckverbindern, die ebenfalls zur Erweiterungsplatine f&#252;hren.<br />
<a href="http://www.flickr.com/photos/23913470@N00/2129053755/" title="Asuro Erweiterung komplett" class="liimagelink"><img src="http://farm3.static.flickr.com/2009/2129053755_ee7e836835.jpg" alt="Asuro Erweiterung komplett" /></a></p>
<h3>Schaltplan</h3>
<p><a href="http://www.robotfreak.de/blog/wp-content/uploads/2007/12/asuro_erweiterung.png" title="Asuro Erweiterung Schematic" class="liimagelink"><img src="http://www.robotfreak.de/blog/wp-content/uploads/2007/12/asuro_erweiterung_s.png" alt="Asuro&lt;br /&gt; Erweiterung Schematic" /></a><br />
F&#252;r eine vergr&#246;&#223;erte Darstellung auf das Bild klicken.</p>
<h2>UART-Modul</h2>
<p>Das RS232 Modul besteht aus einem normalen RS232 Pegelwandler Chip, hier ist das der MAX202. Die Steckerbelegung des 6poligen Steckbverbinders ist diesselbe wie beim Bluetooth Modul.</p>
<p><a href="http://www.flickr.com/photos/23913470@N00/2129824702/" title="RS232 Modul" class="liimagelink"><img src="http://farm3.static.flickr.com/2275/2129824702_93e4c68df2.jpg" alt="RS232 Modul" /></a></p>
<p>Der ASURO mit dem RS232 Modul. Mit den beiden gr&#252;nen Jumper rechts neben dem RS232 Modul kann man zwischen RS232 und IR Schnittstellen Betrieb umschalten.</p>
<p><a href="http://www.flickr.com/photos/23913470@N00/2129059453/" title="Asuro mit Erweiterung und RS232 Modul" class="liimagelink"><img src="http://farm3.static.flickr.com/2355/2129059453_2875df5fe3.jpg" alt="Asuro mit Erweiterung und RS232 Modul" /></a></p>
<h3>Schaltplan</h3>
<p><a href="http://www.robotfreak.de/blog/wp-content/uploads/2007/12/rs232-adapter.png" title="rs232-adapter.png" class="liimagelink"><img src="http://www.robotfreak.de/blog/wp-content/uploads/2007/12/rs232-adapter_s.png" alt="rs232-adapter.png" /></a><br />
F&#252;r eine vergr&#246;&#223;erte Darstellung auf das Bild klicken.</p>
<h2>Bluetooth Modul</h2>
<p>Als Bluetooth Modul kommt das BlueSmiRF von Sparkfun zum Einsatz. Dies ist noch die Version 1.0. Neuere Module verwenden einen Bluegiga Transceiver.</p>
<p><a href="http://www.flickr.com/photos/23913470@N00/2129049719/" title="BlueSmiRF BT Modul" class="liimagelink"><img src="http://farm3.static.flickr.com/2390/2129049719_39ca3dd8f6.jpg" alt="BlueSmiRF BT Modul" /></a></p>
<p>Der Asuro mit dem Bluetooth Modul.</p>
<p><a href="http://www.flickr.com/photos/23913470@N00/2129833192/" title="Asuro mit Erweiterung und BT Modul" class="liimagelink"><img src="http://farm3.static.flickr.com/2255/2129833192_06fb5463b6.jpg" alt="Asuro mit Erweiterung und BT Modul" /></a></p>
<h2>ISP Schnittstelle</h2>
<p>Die ISP Schnittstelle ben&#246;tigt keine weiteren Bauteile, lediglich der RESET Pin bekommt den &#252;blichen 10kOhm Pullup Widerstand. Als ISP Steckverbinder wurde ein 10poliger Pfostensteckverbinder mit KANDA/STK200 Steckerbelegung verwendet. Rechts daneben befindet sich noch ein Kurzhubtaster als RESET Knopf.</p>
<h2>Aussichten</h2>
<p>Es fehlen derzeit noch die Liniensensoren. Diese werden dann, wie die Infrarot Schnittstelle, &#252;ber Jumper steckbar sein. Geplant ist weiterhin eine I2C Porterweiterung mit ein paar IS471 als IR Kollisionsdetektoren. Auch ein I2C A/D Wandler w&#228;re eine sinnvolle Erweiterung. Eventuell w&#228;re auch ein Co-Prozessor (als I2C Slave) besser als die I2C Chips mal sehen.</p>
<p>Ansonsten w&#252;nsche ich meinen Lesern ein frohes Weihnachtsfest.</p>
<p>Einen aktualisierten Artikel zu diesem Thema findet man im <a href="http://www.asurowiki.de/pmwiki/pmwiki.php/Main/AsuroErweiterung" class="liexternal">AsuroWiki</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/robotik/asuro-erweiterung-rs232bluetooth-und-isp/34/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Arduino Einf&#252;hrung</title>
		<link>http://www.robotfreak.de/blog/mikrocontroller/arduino-einfuehrung/16</link>
		<comments>http://www.robotfreak.de/blog/mikrocontroller/arduino-einfuehrung/16#comments</comments>
		<pubDate>Thu, 11 Oct 2007 09:43:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AVR]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Mikrocontroller]]></category>
		<category><![CDATA[Atmel]]></category>
		<category><![CDATA[Physical Computing]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/mikrocontroller/arduino-einfuehrung/16</guid>
		<description><![CDATA[Wem der Einstieg in die Programmierung der Atmel AVR Controller mit den Datenbl&#228;ttern zu schwer f&#228;llt, f&#252;r den ist Arduino vielleicht genau das richtige. Arduino ist eine Open-Source- Plattform, basierend auf einem Microcontroller-Board und einer Entwicklungsumgebung mit einer API f&#252;r den Microcontroller. In diesem Zusammenhang wird oft auch der Begriff Physical Computing verwendet. Darunter versteht [...]]]></description>
			<content:encoded><![CDATA[<p>Wem der Einstieg in die Programmierung der Atmel AVR Controller mit den Datenbl&#228;ttern zu schwer f&#228;llt, f&#252;r den ist <a href="http://www.arduino.cc/" class="liexternal">Arduino</a> vielleicht genau das richtige. Arduino ist eine Open-Source- Plattform, basierend auf einem Microcontroller-Board und einer Entwicklungsumgebung mit einer API f&#252;r den Microcontroller. In diesem Zusammenhang wird oft auch der Begriff <a href="http://en.wikipedia.org/wiki/Physical_computing" rel="nofollow" class="liwikipedia">Physical Computing</a> verwendet. Darunter versteht im weitesten Sinne ein physikalisches System, das mit Hilfe von Hard- und Software mit der realen analogen Welt interagieren kann. Im Gegensatz zu anderen Kaufboards wie z.B. die BasicStamp Reihe sind die Arduino Boards viel g&#252;nstiger im Preis.</p>
<p><span id="more-16"></span></p>
<h2>Einleitung</h2>
<p>Der Name Arduino ist italienisch und bezieht sich nach offizieller Meinung auf <a href="http://de.wikipedia.org/wiki/Arduin_von_Ivrea" rel="nofollow" class="liwikipedia">Arduino von Ivrea</a> (955-1015), der Markgraf von Ivrea und sp&#228;ter K&#246;nig von Italien war. Nach inoffizieller Meinung ist der Name eher trivialer Natur, es ist einfach der Name einer hiesigen Studentenkneipe <img src='http://www.robotfreak.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> . Einiger der Arduino Entwickler arbeiten am Interaction Design Institute von Ivrea darunter Massimo Banzi und David Cuartielles.</p>
<h2>Hardware</h2>
<p>Die Arduino Hardware benutzt den Atmel AVR <span class="wikiword">ATmega8</span>/168 als Prozessor Plattform. Zur Kommunikation mit einem PC mit dem Arduino Board steht die serielle Schnittstelle des Atmel Prozessors zur Verf&#252;gung. Neuere Boards verf&#252;gen zudem &#252;ber einen USB-Seriell Wandler, <a href="http://de.wikipedia.org/wiki/Bluetooth" rel="nofollow" class="liwikipedia">Bluetooth</a> oder <a href="http://de.wikipedia.org/wiki/ZigBee" rel="nofollow" class="liwikipedia">ZigBee</a> Adapter.</p>
<p>Das Arduino Board kann man:</p>
<ul>
<li>fertig montiertes Board kaufen,</li>
<li>gefertigte Platine,  ohne Bauteile</li>
<li>das Board komplett selbst aufbauen.</li>
</ul>
<p>Folgende <a href="http://www.arduino.cc/en/Main/Boards" class="liexternal">Fertigboards</a> gibt es:</p>
<ul>
<li><a href="http://www.arduino.cc/en/Main/ArduinoBoardSerial" class="liexternal">Arduino Serial</a>, der Ur-Vater mit RS232 Anbindung</li>
<li>Arduino NG, <em>(Nuova Generazione</em>) mit USB Anbindung</li>
<li><a href="http://www.arduino.cc/en/Main/ArduinoBoardDiecimila" class="liexternal">Arduino Diecimila</a>, die neuste Generation mit USB Anbindung</li>
<li><a href="http://www.arduino.cc/en/Main/ArduinoBoardBluetooth" class="liexternal">Arduino BT</a> mit Bluetooth Anbindung</li>
<li><a href="http://www.arduino.cc/en/Main/ArduinoBoardMini" class="liexternal">Arduino Mini</a>,  24poliger  DIL Sockel &#228;hnlich der BasicStamp</li>
<p>Zudem gibt es noch einige Arduino Clones:</p>
<li><a href="http://www.freeduino.org/" class="liexternal">Freeduino Board</a>, ein Arduino Clone</li>
<li><a href="http://www.ladyada.net/make/boarduino/index.html" class="liexternal">Boarduino</a>, ein Arduino f&#252;r Steckbretter</li>
</ul>
<h3>Arduino Diecimila</h3>
<p><a href="http://www.flickr.com/photos/23913470@N00/1464017748/" title="diecimila" class="liimagelink"><img src="http://farm2.static.flickr.com/1187/1464017748_bb72eb89d1.jpg" alt="diecimila" /></a></p>
<p>Das Arduino Diecimila ist das neueste Arduino Board auf dem Markt. Der Name Diecimila ist italienisch und bedeuted &#252;bersetzt 10000. Das soll auf die Zahl von &#252;ber 10000 bisher verkauften Arduino Boards hindeuten. Die wichigtste Neuerung des Diecimila Boards ist die F&#228;higkeit das laufende Programm &#252;ber die Arduino IDE jederzeit abzubrechen und ein anderes Programm zu laden. Bei den anderen Boards mu&#223;te dazu immmer noch der Reset Schalter auf dem Board gedr&#252;ckt werden. F&#252;r &#228;ltere Boards ist allerdings ein Hardware Patch verf&#252;gbar, der dieses Feature nachbildet.</p>
<h3>Arduino-BT</h3>
<p><a href="http://www.flickr.com/photos/23913470@N00/1464017148/" title="arduino-bt" class="liimagelink"><img src="http://farm2.static.flickr.com/1384/1464017148_5726bc4459.jpg" alt="arduino-bt" /></a></p>
<p>Das Arduino Board mit Bluetooth Modem bluegiga WT11. Der Atmega168 Porzessor ist hier aus Platzgr&#252;nden ein SMD Typ. Ansonsten ist das Arduino-BT bis auf den Stromversorgungsstecker Pin kompatibel zu anderen Arduino Boards. Bei diesem Board ist darauf zu achten, dass die externe Stromversorgung h&#246;chstens 5,5V betragen darf.</p>
<h2>Software</h2>
<p>Der Microcontroller auf dem Board wird mit Hilfe der Arduino Programmiersprache programmiert. Diese basiert auf <a href="http://www.processing.org/" class="liexternal">Processing</a> mit der Syntax von C, bzw. C++. Als Entwicklungsumgebung steht die auf <a href="http://wiring.org.co/" class="liexternal">Wiring</a> basierende Arduino IDE zur Verf&#252;gung. Ein Arduino Projekt kann als Stand-Alone L&#246;sung arbeiten oder auch PC gesteuert. Dazu gibt es fertige Bibliotheken zur Anbindung des Arduino Boards an Flash, Processing, MaxMSP&#8230;</p>
<h3>Die Arduino API</h3>
<p>Die <a href="http://www.arduino.cc/en/Reference/HomePage" class="liexternal">Arduino API</a> besteht aus einer Reihe von High-Level Funktionen, die den Zugriff auf die AVR Hardware vereinfachen.&#220;ber zus&#228;tzlichen Bibliotheken l&#228;&#223;t sich die Funktionalit&#228;t erweitern (z.B. I2C, Schrittmotoransteuerung etc.).  Es gibt eine F&#252;lle von <a href="http://www.arduino.cc/en/Tutorial/HomePage" class="liexternal">Tutorials</a> und Beispielprogramme f&#252;r die Arduino Plattform. Im <a href="http://www.arduino.cc/playground/" class="liexternal">Arduino Playground</a> kann jeder angemeldete User seine eigenen Projekte vorstellen.</p>
<h3>Die Arduino IDE</h3>
<p><a href="http://www.robotfreak.de/blog/wp-content/uploads/2007/10/arduino-ide.jpg" title="Arduino IDE" class="liimagelink"><img src="http://www.robotfreak.de/blog/wp-content/uploads/2007/10/arduino-ide.jpg" alt="Arduino IDE" /></a><br />
Mit der Arduino IDE kann man neue Sketche erstellen oder Beispiel Sketche laden. Auf Knopfdruck wird das Sketch kompiliert und falls fehlerfrei direkt auf das Arduino Board geladen. &#220;ber das eingebaute Terminalprogramm kann man sich die Ausgaben des Arduino Boards ansehen. Hinter der schicken Oberfl&#228;che steckt die AVR-GCC Compiler Suite. Nat&#252;rlich ist es auch m&#246;glich in die Sketche direkten AVR Code einzubinden.</p>
<h3>Arduino Programmierung</h3>
<p>Ein Arduino Programm im folgenden auch sketch genannt besteht im Grund aus den beiden Funktionen <code>setup()</code> und <code>loop()</code>.  Beide Funktionen werden zur Laufzeit vom Arduino Core Programm aufgerufen. Die Funktion <code>setup()</code> wird einmalig beim Programmstart aufgerufen. Sie enth&#228;lt den Code f&#252;r die Initialisierung der Hardware. Die <code>loop()</code> Funktion wird anschlie&#223;end zyklisch vom Arduino Core aufgerufen.</p>
<h3>Hello World f&#252;r Arduino</h3>
<p>Das folgende sketch l&#228;&#223;t eine LED am Digitalausgang 13 im Sekundentakt blinken.</p>
<p><code><br />
int ledPin = 13;<br />
void setup() {<br />
pinMode(ledPin, OUTPUT);<br />
}</code></p>
<p><code>void loop() {<br />
digitalWrite(ledPin, HIGH);<br />
delay(1000);<br />
digitalWrite(ledPin, LOW);<br />
delay(1000);<br />
}</code></p>
<h2>Arduino f&#252;r Robotik</h2>
<p>Arduino eignet sich durchaus f&#252;r kleinere Roboter-Projekte. Beispiele hierf&#252;r sind der <a href="http://www.windmeadow.com/node/45" class="liexternal">Wiimote controlled firefighting robot</a> und die Portierung f&#252;r den <a href="http://www.arduino.cc/playground/Learning/Asuro" class="liexternal">Asuro</a>. Auch zur Prototypen Entwicklung ist es aufgrund der einfachen Programmierung sehr gut geeignet. Ich arbeite zur Zeit auch an einem Arduino Roboter, &#252;ber den ich dann nat&#252;rlich auch hier berichten werde.</p>
<h2>Weblinks</h2>
<h3>Englisch</h3>
<ul>
<li><a href="http://arduino.cc/" class="liexternal">Arduino Homepage</a></li>
<li><a href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl" class="liexternal">Arduino Forum</a></li>
<li><a href="http://www.arduino.cc/playground/" class="liexternal">Arduino Playground</a></li>
<li><a href="http://www.freeduino.org/" class="liexternal">http://www.freeduino.org/</a> &#8211; Arduino Index und FreeduinoBoard</li>
<li><a href="http://todbot.com/blog/category/arduino/" class="liexternal">todbot blog &gt;&gt; Arduino</a></li>
<li><a href="http://todbot.com/blog/spookyarduino/" class="liexternal">todbot blog &gt;&gt; Spooky Arduino, Tutorials</a></li>
<li><a href="http://itp.nyu.edu/physcomp/Labs/Labs" class="liexternal">ITP &#8211; Physical computing</a></li>
<li><a href="http://www.tigoe.net/pcomp/code/category/category/code/arduinowiring" class="liexternal">tigue.net &#8211; Arduino/Wiring, Beispiele</a></li>
<li><a href="http://www.grayfuse.com/blog/?p=15" class="liexternal">Jeff Gray Blog, Arduino Beispiele</a></li>
<li><a href="http://svn.berlios.de/viewcvs/arduino/trunk/" class="liexternal broken_link">Arduino Sourcecode, SVN Repository</a></li>
<li><a href="http://www.windmeadow.com/node/45" class="liexternal">Wiimote controlled firefighting robot</a></li>
<li><a href="http://wiring.org.co/" class="liexternal">http://wiring.org.co/</a></li>
<li><a href="http://www.processing.org/" class="liexternal">http://www.processing.org/</a></li>
</ul>
<h3>Deutsch</h3>
<ul>
<li><a href="http://incom.org/code/projekte/projekt_anzeigen.php?4,98,0,0,0,102" class="liexternal">incom.org </a>- Arduino Bauanleitung</li>
</ul>
<h3>Bezugsquellen</h3>
<ul>
<li><a href="http://www.segor.de/" class="liexternal">Segor Elektronik</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/mikrocontroller/arduino-einfuehrung/16/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
