NXT-Bluetooth Verbindung via Matlab

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen


Vorbereitung

Um einen NXT Roboter über Matlab anzusteuern, wird vorerst eine Toolbox benötigt, mithilfe welcher die einzelnen Ausgänge des NXTs und sämtliche Sensoren, Motoren und Aktoren angesteuert werden können. Hierfür ist die RWTH-MindstormsNXT Toolbox vom Vorteil welche auf der / RWTH-Mindstorms-Homepage heruntergeladen werden kann und zudem noch eine Anleitung bereit gestellt ist, welche darüber Auskunft erteilt, was beachtet werden muss um die Toolbox zu installieren und auch eine Verbindung mit einem NXT hergestellt werden kann:


Weitere Schritte werden anhand der RWTH-MindstormsNXT und der Instrument Controlling Toolbox beschrieben, daher wäre es vom Vorteil herauszufinden, ob beide Toolboxen installiert und Betriebsbereit sind.


Bluetooth Verbindung zwischen NXT und Computer

Vom Computer aus

Zu Beginn muss eine Bluetooth Verbindung zwischen dem NXT und dem Computer hergestellt. Dafür muss auf Seitens des Computers ein Bluetooth-Funkgerät vorhanden sein. Im Geräte Manager könnt ihr herausfinden, ob Euer Computer schon im Vorfeld einen Treiber für solch ein Gerät installiert hat. Wenn ein Bluetooth-Funkgerät vorliegt und auch der Treiber dafür installiert wurde, dann muss eine Verbindung hergestellt werden, entweder von Seite des NXT oder des Computers. Vom Computer aus: Dafür wird das Fenster „Geräte und Drucker geöffnet“ der vollständige Pfad ist hier: Systemsteuerung\Hardware und Sound\Geräte und Drucker Dort wird in der oberen linken Ecke auf die Schaltfläche „Gerät hinzufügen“ geklickt. Ein neues Fenster wird geöffnet und dort werden die in der Umgebung gefundenen Geräte aufgelistet. Wenn Euer Gerät mit aufgelistet ist, dann klickt auf das entsprechende Symbol und dann auf weiter. Der NXT sollte sich jetzt melden und dort ist ein Fenster erschienen, auf welchem ein „Passkey“ erstellt wird. Dies ist um sicher zu gehen, dass der Nutzer des NXT die Erlaubnis erteilt, mit dem Computer eine Verbindung aufzustellen. Der ausgewählte „Passkey“ muss dann noch in dem Computer eingegeben werden und die Verbindung ist hergestellt.

Es ist auch möglich Seitens des Computers einen „Passkey“ einzurichten und diesen dann im NXT einzugeben, allerdings ist es auf dem Computer angenehmer zu tippen als auf dem Mindstorm und deshalb rate ich Ihnen es mir gleich zu tun.

Systemsteuerung\Alle Systemsteuerungselemente\Geräte-Manager

Vom NXT aus

Im NXT wird auf die Schaltfläche „Bluetooth“ geklickt, dort sind dann weitere Schaltflächen abgebildet, die von Nutzen sind, wir jetzt aber nicht weiter beachten brauchen. Die einzige Schaltfläche die wir jetzt benötigen, ist die „Search“ Schaltfläche. Wenn dort drauf geklickt wird, dann erscheint ein Suchdurchlauf, welcher solange angezeigt wird, bis Bluetooth-Funkgeräte gefunden wurden. Wenn Euer Funkgerät mit aufgelistet ist, dann klickt auf den orangenen Knopf und im nächsten Fenster kann die Verbindung dann in einem von 3 Schaltflächen gespeichert werden. Wenn eine Schaltfläche ausgewählt wurde, dann ist nach einem „Passkey“ gefragt, welcher von Euch beliebig ausgewählt werden kann. Solltet Ihr dann auf die Schaltfläche mit dem Haken klicken. Danach meldet sich euer Computer, dass ein Gerät versucht eine Verbindung aufzubauen und ihr müsst dort dann den „Passkey“ eingeben, welcher vorher ausgewählt wurde, um eine Verbindung herzustellen.

-Die RWTH-Toolbox wurde eingerichtet -Eine Verbindung wurde hergestellt.

Bluetooth Einbindung in Matlab 64-Bit

Jetzt geht es darum, vom Computer aus über Bluetooth auf den NXT zuzugreifen. Dafür muss vorerst Matlab gestartet werden und einige Informationen gefunden werden, welche über die Instrument Controlling Toolbox zu erhalten sind. In dem „Command Window“ können die bestehenden Bluetooth Verbindungen mit folgendem Befehl ausgelesen werden:



BT=instrhwinfo('Bluetooth')
Matlabbefehl: instrhwinfo('Bluetooth') Ausgabe

Wenn so wie in diesem Beispiel Zellen angegeben sind, dann können weitere Informationen abgerufen werden, ob zu diesen Zellen auch das NXT-Gerät zugeordnet wurde:


BT.RemoteName


Zum Schluss werden die spezifischen Informationen abgerufen, wie gefolgt zu sehen ist:

BT=instrhwinfo('Bluetooth','NXT17')
Matlabbefehl: instrhwinfo('Bluetooth') Ausgabe

Von dieser Liste sind folgende Informationen wichtig:

  • Der „RemoteName“, welcher der Name des Verbundenen Gerätes trägt.
  • Der Channel, vom welchem auf das Gerät zugegriffen werden kann. Der Channel kann vom COM-Port abweichen, deshalb ist es ratsam, die Informationen über Matlab zu holen, als über die Gerätedetails in der Systemsteuerung.

Jetzt soll der Pfad zu der RWTH-MindstormNXT Toolbox geöffnet sein. In der Toolbox ist eine bestimmte Funktion aufgelistet, die „COM_MakeBTConfigFile.m“. Die wird bei bestehender Bluetooth Verbindung geöffnet und gestartet. Die Schritte werden befolgt und ausgeführt. Für den „Filename“ können Sie jeden X-beliebigen Namen eintragen, wichtig ist nur, dass bei NXT-Name der „RemoteName“ und bei „Channel“ der zugewiesene Channel eingetragen wird. Von dieser Liste sind folgende Informationen wichtig:

  • Der „RemoteName“, welcher der Name des Verbundenen Gerätes trägt.
  • Der Channel, vom welchem auf das Gerät zugegriffen werden kann. Der Channel kann vom COM-Port abweichen, deshalb ist es ratsam, die Informationen über Matlab zu holen, als über die Gerätedetails in der Systemsteuerung.

Jetzt soll der Pfad zu der RWTH-MindstormNXT Toolbox geöffnet sein. In der Toolbox ist eine bestimmte Funktion aufgelistet, die „COM_MakeBTConfigFile.m“. Die wird bei bestehender Bluetooth Verbindung geöffnet und gestartet. Die Schritte werden befolgt und ausgeführt. Für den „Filename“ können Sie jeden X-beliebigen Namen eintragen, wichtig ist nur, dass bei NXT-Name der „RemoteName“ und bei „Channel“ der zugewiesene Channel eingetragen wird.