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 Infobereich Taskleiste(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: Infobereich Taskleiste

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:
COM-Ports eingerichtet

Danach kann man sich die Eigenschaften der neu eingerichteten Verbindung über die Systemsteuerung oder den Gerätemanager anschauen.
NXT-Einstellungen


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").
BT-Einstellungen
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.

Gelungene Verbindung

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.