- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在开展一个小组项目,我们通过蓝牙将串行数据从 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 以确保电路板没有旧数据。看着这个让我觉得这可能是有人建议的配对问题。我正在努力尝试修复。
最佳答案
在 Google Play 上尝试蓝牙 SPP,然后连接到 HC-05。检查输出,然后在获得干净数据后重置 arduino,看看会发生什么。这就是我通常检查 HC-05 输出的方式。 HC-05 启动时不会发送任何内容。我无法发表评论,所以不得不发布一个答案,抱歉。
关于android - 为什么我在通过蓝牙发送 Arduino 数据时在 Android 应用程序的开头看到意外数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25414819/
我编写了具有几个日志函数的日志帮助程序类。在 DEBUG 模式下一切正常。但是当我在 Release模式下运行我的代码时,它崩溃了。下面是代码片段: + (void)info:(NSString *)
在用 Python 编程时,如何使 VSCode 中的格式化程序使用制表符而不是空格进行缩进?我已经将 VSCode 设置为使用制表符,但是 Python 的格式化程序忽略了这一点并且只做它自己的事情
最初我的 mongod 进程运行良好。我发现我的虚拟机上有空间紧缩,所以删除了 2 个较旧的 oplog 文件以释放空间。然后接下来我启动 mongod 并开始出现错误。然后我尝试在本地数据库中修复我
CUDA 中的内核启动通常是异步的,这(据我了解)意味着一旦 CUDA 内核启动,控制权立即返回给 CPU。当 GPU 忙于数字运算时,CPU 继续做一些有用的工作除非使用 cudaThreadsyn
在 Angular View 之间链接时,是否有一种简单的方法可以保留查询参数? 当我使用 ngHref 时,查询参数丢失: Other page 我从这个网址导航 http://localhost/
nntp(新闻)打开错误:“>> 新闻/nntp 名称或服务未知)”。 我正在运行 ubuntu 最佳答案 Gnus 要求您配置要使用的新闻服务器,并且我认为它默认为“新闻”,它在您的本地搜索域中不存
有没有一种方法可以使 vim 突出显示具有给定颜色的制表符,但仅限于 expandtab选项设置了吗?我知道 'listchars' ,但我希望能够区分“有效标签”和“无效标签”。 最佳答案 您可以添
我对 Pandoc 比较陌生,我正在尝试用我的出版物生成一个 HTML 文件以放在我的网站上。我希望首先按年份对出版物列表进行编号和组织,最新的排在最前面,最早的排在最后。 我可以使用正确的 csl
根据 this question和我读过的文档,Spark Streaming 的 foreachRDD(someFunction) 将让 someFunction 本身仅在驱动程序进程中执行,但如果
我使用 stat_summary 从我的数据创建了多个条形图。但是,我想手动指定误差线的限制(而不是使用 mean_cl_boot)。对于使用 facet_grid 绘制的数据,如何做到这一点? 我用
我在 Ubuntu 下的 Bash 中运行 R。有没有办法在运行 R 时在 Bash 中使用颜色语法高亮显示?我将非常感谢有关该主题的任何信息,并希望这个问题不会令人讨厌。 最佳答案 您可以试试 co
在我的 Symfony2 应用程序中,我设置了防火墙,以便 /admin 下的所有内容路由需要通过 https 运行,但是在部署时我得到一个重定向循环。我已经阅读了 Symfony2 网站上关于防火墙
我在查询中给出了以下代码。 where to_date(cal_wid,'yyyymmdd') between add_months(to_date(sysdate, 'MM-YYY
我有一个动态 NSTableView,它可以根据提供的数据添加许多列。对于每一列,我将标题单元格设置为 NSPopUpButtonCell。 (旁注:我必须为 NSTableHeaderView 使用
我正在尝试创建一个嵌套列表。当点击时应将无序列表附加到 被点击了。 点击第一个后我的代码失败并且不会将列表附加到新插入的 。我想将无序列表添加到任何 就在列表中。 这是一个 fiddle :http
在 MyActivity 中,我正在尝试登录后端服务器。这是我尝试过的: myViewModel = new ViewModelProvider(this, factory).get(MyViewMo
有没有办法在打印 html 时在 javascript 中添加新行?这样打印出来的html是缩进的。 document.getElementById("id").innerHTML = "hello"
我正在使用 glDrawElements 绘制三角形网格,并且希望能够使用鼠标单击来拾取/选择三角形。三角形的网格可以很大。 在固定功能 OpenGL 中,可以使用 GL_SELECT: http:/
下面的可重现数据包含每个动物(猫和狗)在每个季节(夏季和冬季)的两个协变量(cov1 和 cov2)及其各自的误差估计值 (SE) 的 50 个观察值。 library(ggplot2); libra
我有多个按钮,每个按钮都有相关文本,当用户单击按钮时,文本应根据按钮更改,并且文本应显示在 DIV 中。 我使用 if elseif 在每个按钮的文本之间进行选择,现在我无法通过该函数将文本传递给 d
我是一名优秀的程序员,十分优秀!