- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
有人知道如何在 Android 和 LEGO-Mindstorm-NXT 之间建立蓝牙连接吗?两个 NXT 之间的连接工作正常。但是其他的Connection-type就没那么容易了。我正在使用 LeJOS 固件 0.85 和 Android SDK 工具 (2.2 Froyo)。
最佳答案
所以我已经解决了它,并将展示它是如何工作的,因为我看到很多人对此有疑问。
该类包含 4 个函数:
这里是安卓设备的代码(BT_comm.java):
package de.joen.android.CubeScan;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.UUID;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;
import android.util.Log;
public class BT_Comm {
//Target NXTs for communication
final String nxt2 = "00:16:53:04:52:3A";
final String nxt1 = "00:16:53:07:AA:F6";
BluetoothAdapter localAdapter;
BluetoothSocket socket_nxt1, socket_nxt2;
boolean success = false;
// Enables Bluetooth if not enabled
public void enableBT(){
localAdapter = BluetoothAdapter.getDefaultAdapter();
// If Bluetooth not enable then do it
if (!localAdapter.isEnabled()) {
localAdapter.enable();
while(!(localAdapter.isEnabled()));
}
}
// Connect to both NXTs
public boolean connectToNXTs() {
// Get the BluetoothDevice of the NXT
BluetoothDevice nxt_2 = localAdapter.getRemoteDevice(nxt2);
BluetoothDevice nxt_1 = localAdapter.getRemoteDevice(nxt1);
// Try to connect to the nxt
try {
socket_nxt2 = nxt_2.createRfcommSocketToServiceRecord(UUID
.fromString("00001101-0000-1000-8000-00805F9B34FB"));
socket_nxt1 = nxt_1.createRfcommSocketToServiceRecord(UUID
.fromString("00001101-0000-1000-8000-00805F9B34FB"));
socket_nxt2.connect();
socket_nxt1.connect();
success = true;
} catch (IOException e) {
Log.d("Bluetooth","Err: Device not found or cannot connect");
success=false;
}
return success;
}
public void writeMessage(byte msg, String nxt) throws InterruptedException {
BluetoothSocket connSock;
// Swith nxt socket
if (nxt.equals("nxt2")) {
connSock=socket_nxt2;
} else if(nxt.equals("nxt1")) {
connSock = socket_nxt1;
} else {
connSock=null;
}
if (connSock!=null) {
try {
OutputStreamWriter out = new OutputStreamWriter(connSock.getOutputStream());
out.write(msg);
out.flush();
Thread.sleep(1000);
} catch (IOException e) {
// TODO: Auto-generated catch block
e.printStackTrace();
}
} else {
// Error
}
}
public int readMessage(String nxt) {
BluetoothSocket connSock;
int n;
// Swith nxt socket
if (nxt.equals("nxt2")) {
connSock=socket_nxt2;
} else if (nxt.equals("nxt1")) {
connSock=socket_nxt1;
} else {
connSock=null;
}
if (connSock!=null) {
try {
InputStreamReader in = new InputStreamReader(connSock.getInputStream());
n = in.read();
return n;
} catch (IOException e) {
// TODO: Auto-generated catch block
e.printStackTrace();
return -1;
}
} else {
// Error
return -1;
}
}
}
要从 Android 智能手机获取消息,您必须在 NXT 端进行读取调用。这是来自 NXT 端的代码,它将接受来自智能手机的连接并从中读取消息:
Boolean isrunning = true;
// Main loop
while (true)
{
LCD.drawString(waiting,0,0);
LCD.refresh();
// Listen for incoming connection
NXTConnection btc = Bluetooth.waitForConnection();
btc.setIOMode(NXTConnection.RAW);
LCD.clear();
LCD.drawString(connected,0,0);
LCD.refresh();
// The InputStream for read data
DataInputStream dis = btc.openDataInputStream();
// Loop for read data
while (isrunning) {
Byte n = dis.readByte();
LCD.clear();
LCD.drawInt(n, 4, 4);
}
dis.close();
// Wait for data to drain
Thread.sleep(100);
LCD.clear();
LCD.drawString(closing,0,0);
LCD.refresh();
btc.close();
LCD.clear();
}
希望这对其他人有帮助...
关于android - Android 和 Lego Mindstorm NXT 之间的蓝牙连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4969053/
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我正在为工程课开发机器人。对于本 class ,我需要使用NXT编程语言。要移动,机器人需要遵循黑色实线。 如果机器人松开了线,我将其向左扫描1秒钟,或者直到它到达黑线。如果未找到任何行,它将向右扫描
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我想通过 USB 使用 Python 3 连接到 LEGO Mindstorms NXT 机器人,但是当我尝试连接时出现 BrickNotFoundError。 这是我尝试运行的脚本: #!/usr/
首先,我是新手,需要一点帮助! 我有一个 LEGO Mindstorms EV3 机器人,我下载了(LEGO Mindstorms EV3 家庭版)来控制 EV3。不幸的是,我在上述软件中找不到 EV
使用 NXT 拖放环境时,是否可以向 Lego Mindstorms 程序添加任何类型的调试? 如果能够监控各种传感器的状态,那就太好了,但甚至知道程序中正在运行的步骤也更好。 最佳答案 事实证明,这
我正在用 microPython 2 对 EV3 进行编程。我在笔记本电脑上运行了另一个 python 3 程序,该程序应该以无线方式向 EV3 发送数据。可以通过蓝牙吗?如果不可能,我应该怎么做?
我尝试在 eclipse 中设置 leJOS,并从 git 导入所有库,但使用 ant 构建进行编译时遇到问题。这是我的构建文件:
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是
这个问题是指编写一个与乐高头脑 Storm 机器人上的 NXT block 通信的应用程序。 我想做什么 NXC(不完全是 C,一种用于为 NXT 编写程序的语言)提供了一个函数 until(cond
是否有用于 Lego Mindstorms 的 Java SDK?我可以将 Scala 代码编译为 JAR 并在 Lego Mindstorms 中运行吗? 最佳答案 可能不会,但很难说。 Minds
有人知道如何在 Android 和 LEGO-Mindstorm-NXT 之间建立蓝牙连接吗?两个 NXT 之间的连接工作正常。但是其他的Connection-type就没那么容易了。我正在使用 Le
我正在开发一个从计算机运行 LEGO NXT 的程序。我找到了 MindSqualls用于与 LEGO NXT 一起工作的 .NET 库,但我不知道如何使用 DLL 和/或 c# 库来使软件正常工作。
有谁知道如何从一个自己编写的 iOS 应用程序建立一个蓝牙连接到新的 LEGO Mindstorms EV3 可编程积木? 我试图通过 CBCentralManager 的 scanForPeriph
我想开始使用 Python 或 Ruby 进行编码。由于我拥有 Lego Midstorms套件我认为对它进行编程会很好。 Mindstorms 砖有什么好的翻译/解释者吗? 最佳答案 nxt-pyt
我一直在使用新的 LEGO® MINDSTORMS® Robot Inventor。 创建新的“项目”时,所述项目似乎包含一个文件。但是,在每个示例代码文件的开头,可以看到 mindstorm 模块被
对于一个大学项目,我们的项目团队想要为 Lego Mindstorm EV3 平台编写一个裸机操作系统。尽管我们做了很多研究和测试,但我们遇到了一个无法解决的中断处理问题。 这是平台的详细信息: CP
我从 this project 中获取了现有代码,并且到目前为止对此非常满意。 但是,我现在需要使用从 hitechnic 购买的一些第三方传感器。 ,例如加速度计、陀螺仪和 3D 罗盘 - 仅举几例
理论上,这段代码应该永远循环,直到声纳传感器检测到高于 10 厘米的值,但是当我尝试编译此程序时,会出现消息 错误: Undefined variable 'sonarSensor'. 'short'
我正在尝试使用 c 代码为我的 EV3 创建一个 simulink block ,以从其传感器发送测量值和/或通过 UDP 数据包从其他硬件(树莓派)接收数据。但是我在互联网上找不到任何具体的例子。我
我是一名优秀的程序员,十分优秀!