Nach langer Zeit habe ich meinen Mindstorms-Brick wieder ausgepackt. Ich
wollte einen balancierenden Robot bauen (hat leider nicht geklappt). Zum Debuggen
wollte ich dann Zwischenwerte per Bluetooth zur Auswertung an den PC senden.
Aber wie ging das noch einmal? Damit es beim nächsten Mal besser klappt, hier
die einzelnen Schritte.
1. Schritt: Windows sichern
Ich kann mich
noch daran erinnern, dass ich vor längerer Zeit schon einmal vergeblich versucht
hatte, unter Windows 7 eine Bluetooth Verbindung mit dem NXT einzurichten. Auch
war es nicht möglich, die installierten Dinge wieder los zu werden. Nun, nach
einer Neuinstallation von Windows und gefühlten 4637 Updates (plus/minus) will
ich einen erneuten Versuch starten. Seit ich Windows neu installieren musste,
mache ich regelmäßig Sicherungen auf eine USB-Festplatte. Bisher konnte ich
nach erfolglosen Installationen das System immer wieder restaurieren (s. auch
unten
Probleme).
2. Schritt: Bluetooth-Stick
anschließen
Ich besitze einen älteren Belkin Bluetooth USB Adapter Model
FBT013xx1. Unter Windows 7 wurde das Gerät problemlos erkannt und ein passender
Gerätetreiber geladen und installiert.
3. Schritt: Bluetooth-Symbol in
der Taskleiste sichtbar machen.
Im Infobereich der Taskleiste (das ist der
rechte Bereich) gibt es das Symbol für "ausgeblendete Symbole einblenden", ein
kleines weißes Dreieck
(hier
rot umrandet). Linke Maustaste öffnet ein Fenster mit Symbolen und ein
Dialog-Link "Anpassen". Linke Maustatste hierauf führt zu einem Fenster, in
dem man für eine große Anzahl von Programmen einstellen kann, unter welchen
Bedingungen sie im Infobereich erscheinen sollen. Für Bluetooth sollte man "Symbol
und Benachrichtigungen anzeigen" auswählen. Danach sieht es so aus:
4. Schritt: NXT-Bluetooth einschalten.
Nach dem Upload von Lejos
ist der Bluetooth-Teil des NXT standardmäßig ausgeschaltet. NXT einschalten.
Bluetooth-Menü wählen. "Power on" und "Visibility" auswählen.
5.
Schritt: Mit Eclipse ein Programm erstellen und Uploaden.
Beim Upload des
Programms wird neben dem Programmupload auch das SPP (
Serial
Port
Protocol) für den NXT eingerichtet. Damit
stehen zwei COM-Ports für die Kommunikation mit dem NXT zur Verfügung. Beim
Erstmaligen Herstellen der Verbindung wird nach einer PIN gefragt. Diese ist
standardmäßig "1234", kann aber auf dem Brick umkonfiguriert werden. War alles
erfolgreich meldet sich Windows, dass weitere Gerätetreiber installiert werden.
Ist alles glatt gelaufen erhält man eine Meldung analog dieser:
Danach kann man sich die Eigenschaften der neu eingerichteten Verbindung
über die Systemsteuerung oder den Gerätemanager anschauen.
Kontakt zum Gerät kann über den Port aufgenommen werden, der in den
Bluetooth Einstellungen mit 'Dev B' markiert ist (rechte Maustaste aufs Bluetooth-Icon"
-> "Einstellungen öffnen" -> Reiter "COM-Anschlüsse").
Mit folgendem kleinen Programm kann man eine erste Kommunikation mit dem
NXT durchführen:
package bttest;
import java.io.*;
import lejos.nxt.*;
import lejos.nxt.comm.*;
public class BtConnect {
public static void main(String[] args) {
NXTConnection connection = null;
LCD.drawString("waiting for BT",0 ,1 );
connection = Bluetooth.waitForConnection();
LCD.drawString("..connected",0 ,2 );
connection.setIOMode(NXTConnection.RAW);
DataOutputStream dataOut = connection.openDataOutputStream();
try {
dataOut.writeChars("Hello World");
dataOut.flush();
} catch (IOException e ) {
LCD.drawString(" write error "+e, 0, 3);
}
LCD.drawString(" done ", 0, 4);
while(!Button.ESCAPE.isDown());
}
}
Dazu lädt man das Programm auf den Brick herunter und startet es. Parallel
dazu auf dem PC ein Terminal-Programm (z.B. "VbTermi")
starten und eine Verbindung mit COM9 aufbauen. Sobald die Verbindung steht erhält
man auf dem Terminal die passende Meldung.
Das <NUL> vor jedem Zeichen rührt daher, dass der NXT Strings im Unicode,
also als 16-Bit-zeichen, versendet.
Probleme:
Trotz mehrfacher Versuche, auch mit einem anderen Bluetooth-Stick, ist es
mir nicht gelungen, das Pairing vom Brick aus vorzunehmen. Somit ist es mir
aktuell nicht möglich, vom Brick aus eine Verbindung zum PC aufzubauen. I.d.R.
war es nach einem erfolglosen Versuch so, dass gar nichts mehr klappte und die
Sicherung (s. 1. Schritt) zurückgespielt werden musste.