以前の投稿にて「2台のLegoNXTをシンクロ走行させる」という動画をYoutubeにあげました
詳細→ 2台のLegoNXTをシンクロ走行させる
一段落しましたのでソースコードを公開します。
題名でもありますようにLejosNXTをBluetoothで操作を行っています
公式でもBluetoothの接続方法が記載されている(詳細)が、残念ながらできませんでした。。。(多分バージョンの違いや使用したNXTが古いからかも・・・)
ネットでソースコードを漁っていたらできたので載せます。以下ソース↓
import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.EOFException; import lejos.nxt.LCD; import lejos.nxt.comm.Bluetooth; import lejos.nxt.comm.NXTConnection; public class ConnectBT { public static void main(String[] args) throws Exception{ LCD.clear(); LCD.drawString("Waiting...", 0, 2); //RAW形式での送受信 NXTConnection con = Bluetooth.getConnector().waitForConnection(0, NXTConnection.RAW); LCD.drawString("Connected...", 0, 2); DataInputStream dis = con.openDataInputStream(); DataOutputStream dos = con.openDataOutputStream(); while(true){ int n; try{ n = dis.readInt(); } catch (EOFException e) { break; } LCD.drawString("Read: ", 0, 4); LCD.drawInt(n, 7, 6, 4); dos.writeInt(n); dos.flush(); } LCD.drawString("Closing... ", 0, 2); dis.close(); dos.close(); con.close(); } }
肝となるのが16行目のRaw Socketで送受信をさせるようにすることです。
NXTConnection con = Bluetooth.getConnector().waitForConnection(0, NXTConnection.RAW);
を記述して、あとは送信するなり受信するなりしてください。
2. http://blog.livedoor.jp/prisonedkid/archives/1302852.html
コメント