fedora.cis.cau.edu
fedora.cis.cau.edu
一段落しましたのでソースコードを公開します。
題名でもありますように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);
を記述して、あとは送信するなり受信するなりしてください。
参考
- http://fedora.cis.cau.edu/~pmolnar/CIS687F12/Programming-LEGO-Robots/samples/src/org/lejos/sample/nxtreceive/NXTReceive.java
- http://blog.livedoor.jp/prisonedkid/archives/1302852.html
是非SNSで感想を教えて下さい 👇️
POST