<?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; Bluetooth</title>
	<atom:link href="http://www.robotfreak.de/blog/tag/bluetooth/feed" rel="self" type="application/rss+xml" />
	<link>http://www.robotfreak.de/blog</link>
	<description>Robotik, Elektronik, Arduino und mehr</description>
	<lastBuildDate>Mon, 23 Jan 2012 21:13:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Android App Inventor</title>
		<link>http://www.robotfreak.de/blog/robotik/android-app-inventor/555</link>
		<comments>http://www.robotfreak.de/blog/robotik/android-app-inventor/555#comments</comments>
		<pubDate>Sun, 27 Mar 2011 20:50:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[MASHR]]></category>
		<category><![CDATA[Robotik]]></category>
		<category><![CDATA[App Inventor]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Bluetooth]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/?p=555</guid>
		<description><![CDATA[Bei der Entwicklung von MASHR gefiel mir die Idee, den Roboter &#252;ber das Android Handy fernsteuern zu k&#246;nnen. Die Cellbots Applikation ist echt genial. Leider ist es mit meinen Java Programmier K&#252;nsten nicht weit her um so ein Programm selbst zu schreiben. Allerdings geht es auch ohne Java und gro&#223;en Programmierkentnissen, dank Googles App Inventor. [...]]]></description>
			<content:encoded><![CDATA[<p>Bei der Entwicklung von <a href="/blog/?tag=mashr" class="liinternal">MASHR</a> gefiel mir die Idee, den Roboter &#252;ber das Android Handy fernsteuern zu k&#246;nnen. Die <a href="http://cellbots.com/" class="liexternal">Cellbots</a> Applikation ist echt genial. Leider ist es mit meinen Java Programmier K&#252;nsten nicht weit her um so ein Programm selbst zu schreiben. Allerdings geht es auch ohne Java und gro&#223;en Programmierkentnissen, dank <a href="http://appinventor.googlelabs.com/about/" class="liexternal">Googles App Inventor</a>.<br />
<a href="http://lh3.ggpht.com/_9e10QjiGiuE/TY9mpCXPBUI/AAAAAAAADtI/nlsRcyXG-m0/IMG_1545.JPG" title="IMG_1545.JPG" rel="lightbox" class="liimagelink"><img src="http://lh3.ggpht.com/_9e10QjiGiuE/TY9mpCXPBUI/AAAAAAAADtI/nlsRcyXG-m0/h400/IMG_1545.JPG" alt="IMG_1545.JPG" title="IMG_1545.JPG" class="alignnone" width="400" /></a><br />
<span id="more-555"></span></p>
<h2>Installation</h2>
<p>Die Installation von App Inventor ist denkbar einfach. Man braucht nur einen Google Account und eine aktuelle Java 6 Version. Die <a href="http://appinventor.googlelabs.com/learn/setup/" class="liexternal">Installations Anleitung</a> zeigt die notwendigen Schritte f&#252;r Windows, MacOS und Linux.  </p>
<h2>Einleitung</h2>
<p>Entwickelt wird unter App Inventor direkt im Browser. Die Programme werden auch nicht lokal abgelegt sondern landen direkt in der Google cloud.  </p>
<p>Zun&#228;chst entwirft man die Oberfl&#228;che der Anwendung. Alles grafisch per Drag and drop. Wer mit Visual Studio oder anderen grafischen Programmier Tools arbeitert, wird sich schnell damit zurecht finden.</p>
<p>Die eigentliche Programmierung findet dann im Blocks Editor statt. Programmiert wird auch hier grafisch mit einer Art von Code Puzzle Bausteinen. Man zieht einfach die gew&#252;nschte Funktionen oder Variable auf den Bildschirm und editert deren Eigenschaftemn. Ein Main Progamm sucht man vergeblich. Alles ist Event gesteuert, z.B. l&#246;st der Druck einer Taste ein Buttonx.Click Event aus. </p>
<p>Es empfiehlt sich zumindest die <a href="http://appinventor.googlelabs.com/learn/tutorials/index.html" class="liexternal">Basis Tutorials</a> durchzuarbeiten, bevor man sich an eigene Programme wagt. </p>
<h2>Cellbot light</h2>
<p>Das erste selbgeschriebene App Inventor Programm ist  eine Cellbot Light Version. Es wird die bestehende Schnittstelle des Cellbot Codes verwendet um den Roboter &#252;ber die Bluetooth Schnittstelle steuern. Der Arduino Code bleibt unver&#228;ndert. Allerdings mu&#223;te ich nicht bei 0 anfangen. Eine bestehendes Beispiel, das <a href="http://ai.kittywolf.net/index.php/BlueTooth_Client_Connect" class="liexternal">Bluetooth Client Connect Example</a> von <a href="http://ai.kittywolf.net/index.php/Main_Page" class="liexternal">ShivalWolf</a> diente als Vorlage. App Inventor unterst&#252;tzt nur das Bluetooth SPP Profil, was hier vollkommen ausreicht.</p>
<h3>Programm Aufbau</h3>
<p>So sieht das Frontend Design im App Inventor aus. Connect Button zum Erstellen einer Bluetooth Verbindung. Ein steuerkreuz dient zur Roboter Steuerung. Die vewendeten Symbole stammen aus der freien <a href="http://openiconlibrary.sourceforge.net/" class="liexternal">Open Icon Library</a><br />
<a href="http://lh5.ggpht.com/_9e10QjiGiuE/TY89qitzDDI/AAAAAAAADl4/k8lI0fs02b8/RobotControl-app1.jpg" title="RobotControl-app1.jpg" rel="lightbox" class="liimagelink"><img src="http://lh5.ggpht.com/_9e10QjiGiuE/TY89qitzDDI/AAAAAAAADl4/k8lI0fs02b8/s150-c/RobotControl-app1.jpg" alt="RobotControl-app1.jpg" title="RobotControl-app1.jpg" class="alignnone" width="150" /></a> </p>
<p>Der Initialisierungs Code &#252;berpr&#252;ft, ob Bluetooth eingeschaltet ist und holt sich die letzten Verbindungs Infos aus einer Datenbank.<br />
<a href="http://lh3.ggpht.com/_9e10QjiGiuE/TY89rM6XZXI/AAAAAAAADl8/Ns6RN9Reklg/RobotControl-Initialize.jpg" title="RobotControl-Initialize.jpg" rel="lightbox" class="liimagelink"><img src="http://lh3.ggpht.com/_9e10QjiGiuE/TY89rM6XZXI/AAAAAAAADl8/Ns6RN9Reklg/s150-c/RobotControl-Initialize.jpg" alt="RobotControl-Initialize.jpg" title="RobotControl-Initialize.jpg" class="alignnone" width="150" /></a> </p>
<p>Die Liste der verf&#252;gbaren Bluetooth Devices. Das ausgew&#228;hlte Device wird in der Datenbank gespeichert.<br />
<a href="http://lh6.ggpht.com/_9e10QjiGiuE/TY89r7FTA-I/AAAAAAAADmU/5DS8WXzI6Iw/RobotControl-lstDevice.jpg" title="RobotControl-lstDevice.jpg" rel="lightbox" class="liimagelink"><img src="http://lh6.ggpht.com/_9e10QjiGiuE/TY89r7FTA-I/AAAAAAAADmU/5DS8WXzI6Iw/s150-c/RobotControl-lstDevice.jpg" alt="RobotControl-lstDevice.jpg" title="RobotControl-lstDevice.jpg" class="alignnone" width="150" /></a> </p>
<p>Der Code f&#252;r den Connect Buttton. Hier wird versucht, eine Verbindung zum ausgew&#228;hlten Bluetooth Device aufzunehmen. Besteht bereits eine Bluetooth Verbindung, kann diese durch den Button wieder geschlossen werden.<br />
<a href="http://lh6.ggpht.com/_9e10QjiGiuE/TY89sRaZljI/AAAAAAAADmI/qx03WIJ9BhQ/RobotControl-BtnConnect.jpg" title="RobotControl-BtnConnect.jpg" rel="lightbox" class="liimagelink"><img src="http://lh6.ggpht.com/_9e10QjiGiuE/TY89sRaZljI/AAAAAAAADmI/qx03WIJ9BhQ/s150-c/RobotControl-BtnConnect.jpg" alt="RobotControl-BtnConnect.jpg" title="RobotControl-BtnConnect.jpg" class="alignnone" width="150" /></a> </p>
<p>Die Control Buttons zur Roboter Steuerung senden den entsprechenden Befehl per Bluetooth zum Roboter. Das Protokoll ist recht simpel:</p>
<ul>
<li>&#8216;f&#8217; forward l&#228;&#223;t den Roboter f&#252;r 1s vorw&#228;rts fahren</li>
<li>&#8216;b&#8217; backward. R&#252;ckw&#228;rts fahren</li>
<li>&#8216;l&#8217; left. Links drehen</li>
<li>&#8216;r&#8217; right. Rechts drehen</li>
<li>&#8216;s&#8217; stop. Stoppt den Roboter</li>
</ul>
<p>Jeder Befehl wird durch einen Zeilenvorschub &#8216;\n&#8217; abgesschlossen.<br />
<a href="http://lh6.ggpht.com/_9e10QjiGiuE/TY89rgTMMcI/AAAAAAAADmQ/V5MZQDPX3zs/RobotControl-Buttons.jpg" title="RobotControl-Buttons.jpg" rel="lightbox" class="liimagelink"><img src="http://lh6.ggpht.com/_9e10QjiGiuE/TY89rgTMMcI/AAAAAAAADmQ/V5MZQDPX3zs/s150-c/RobotControl-Buttons.jpg" alt="RobotControl-Buttons.jpg" title="RobotControl-Buttons.jpg" class="alignnone" width="150" /></a> </p>
<p>Fehlermeldungs Ausgabe. Eventuell auftretende Fehler vom Bluetooth Interface werden hier abgefragt und auf dem User Screen ausgegeben.<br />
<a href="http://lh5.ggpht.com/_9e10QjiGiuE/TY89sgM74qI/AAAAAAAADmM/ScasBrcx8zM/RobotControl-ErrorOccured.jpg" title="RobotControl-ErrorOccured.jpg" rel="lightbox" class="liimagelink"><img src="http://lh5.ggpht.com/_9e10QjiGiuE/TY89sgM74qI/AAAAAAAADmM/ScasBrcx8zM/s150-c/RobotControl-ErrorOccured.jpg" alt="RobotControl-ErrorOccured.jpg" title="RobotControl-ErrorOccured.jpg" class="alignnone" width="150" /></a> </p>
<h3>Download</h3>
<p>Das Programm steht zum Download auf meiner <a href="http://robotfreak.googlecode.com/files/RobotControl.zip" class="lizip">Google Code Page</a> bereit. Zum Import einfach das Zip-File herunterladen und im App Inventor laden.</p>
<h2>Wie geht es weiter</h2>
<p>Das Senden &#252;ber Bluetooth ist recht einfach. Als n&#228;chstes steht der Bluetooth Empfang und die Darstellung der Sensor Daten an. Da es kein Event zum Bluettoth Empfang gibt, mu&#223; hier ein TImer verwendet werden, der zyklisch die Bluetooth  Daten einliest.</p>
<h2>Weblinks</h2>
<ul>
<li><a href="http://appinventor.googlelabs.com/about/" class="liexternal">App Inventor</a></li>
<li><a href="http://groups.google.com/group/programming-with-app-inventor" class="liexternal">App Inventor Forum</a></li>
<li><a href="http://www.theairepository.info/" class="liexternal">the App Inventor Repository  &#8211; tAIR</a></li>
<li><a href="http://groups.google.com/group/theairepository" class="liexternal">tAIR Forum</a></li>
<li><a href="http://ai.kittywolf.net/index.php/Main_Page" class="liexternal">ai.kittywolf.net</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/robotik/android-app-inventor/555/feed</wfw:commentRss>
		<slash:comments>0</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" rel="lightbox[44]" title="BTM-222 Schematic" 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" rel="lightbox[44]" title="BTM-222 Stromversorgung" 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 />
<strong>Korrektur vom 31.12.2010:</strong><br />
Letztendlich gen&#252;gt der Befehl &#8216;ATH1&#8242; und nicht &#8216;ATH0&#8242; wie vorher beschrieben, 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;ATH1&#8242; ist nicht notwendig, dass ist bereits die Default Einstellung. 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://zefiryn.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>58</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[Asuro]]></category>
		<category><![CDATA[AVR]]></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" rel="lightbox[34]" 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" rel="lightbox[34]" 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>
	</channel>
</rss>

