gpt4 book ai didi

android - 为什么我在通过蓝牙发送 Arduino 数据时在 Android 应用程序的开头看到意外数据?

转载 作者:太空狗 更新时间:2023-10-29 14:12:48 26 4
gpt4 key购买 nike

我正在开展一个小组项目,我们通过蓝牙将串行数据从 Arduino 发送到 Android。我们都是 Arduino 和 Android 的新手。

使用的硬件包括Arduino Uno R3和HC-05蓝牙模块。

我正在为 3 轴加速度计数据包发送虚拟数据,并成功地从 Android 读取数据包数据。

但是,我们有这个数据 block (通常大约 50 多个字节,最大可达 512 字节)总是在开始时发送到应用程序。它是一个随机大小的字节 block ,我们无法解释它,因为它似乎与我们为数据设置的数据包格式不匹配。我们设法通过检查数据包大小是否足够小来避免查看这个字节 block 。但这会增加很多开销(4 - 5 秒),所以我们想弄清楚这个数据 block 是什么。那么,HC-05 是先发送了一些专有的蓝牙相关数据,还是我的脚本出了什么问题导致发送了意外数据?

这是 Arduino 代码。

#include <SoftwareSerial.h>
SoftwareSerial bluetooth(10,11);

void setup(){
bluetooth.begin(9600);
}

void loop() {
int x = random(360);
int y = random(360);
int z = random(360);
formAccelerometerPacket(x, y, z);
delay(5000); // wait 5 sec
}

void formAccelerometerPacket(int xVal, int yVal, int zVal) {
printSensorVal('A', xVal);
printSensorVal(':', yVal);
printSensorVal(':', zVal);
}

void printSensorVal(char flag, int sensorVal) {
bluetooth.print(flag);
bluetooth.print(sensorVal);
}

我用蓝牙终端应用程序查看过它,但从那里看没有任何问题。它来自应用程序的 LogCat 显示了从应用程序接收到的内容,但我无法像我之前所说的那样解释它,这就是我需要解决的问题。

我尝试查看其他 SO 问题,但没有其他人可以帮助我。

我没有 Android 应用程序的代码,因为它与另一个队友有关,但我知道他们密切关注 BluetoothChat 示例。

我唯一的想法是,由于 Arduino 循环数据,如果应用程序在 Arduino 启动后启动,它可能会从之前串行端口中发生的事情开始读取一些数据。但它并没有解释字节 block 的大小差异。


编辑于太平洋标准时间 08/21/2014 上午 10:33

这是 LogCat 的屏幕截图。我们所做的是先运行 Android 应用程序,然后启动 Arduino 以确保电路板没有旧数据。看着这个让我觉得这可能是有人建议的配对问题。我正在努力尝试修复。

logCat Output

最佳答案

在 Google Play 上尝试蓝牙 SPP,然后连接到 HC-05。检查输出,然后在获得干净数据后重置 arduino,看看会发生什么。这就是我通常检查 HC-05 输出的方式。 HC-05 启动时不会发送任何内容。我无法发表评论,所以不得不发布一个答案,抱歉。

关于android - 为什么我在通过蓝牙发送 Arduino 数据时在 Android 应用程序的开头看到意外数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25414819/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com