gpt4 book ai didi

c - 通过 XBee 从 Arduino 传输数据

转载 作者:行者123 更新时间:2023-11-30 15:22:34 24 4
gpt4 key购买 nike

  1. 通过XBee从Arduino传输数据到另一个 XBee(连接到 PC)。数据必须是char类型吗?假设我有兴趣传输的数据是 float 。在通过 Arduino 传输之前我必须将其转换为 char 吗?

  2. Arduino 上的数据传输协议(protocol)是什么?假设我已经有一个将 float 转换为字符串的函数。我可以输入这个字符以通过 XBee 传输到另一个 XBee 的协议(protocol)/功能是什么。我使用的Arduino是Arduino Uno我的 XBee 是 XBee PRO s1。

  3. 据我所知,在 C 语言中,浮点编程只能精确到小数点后 7 位。所以 double 总是比 float 更准确。但Arduino真的只接受float吗?但我还读到,Arduino 中的 float 可以精确到许多小数位。最后一句话有多真实?

  4. 我需要通过 XBee 将此信息传输到另一个 XBee。接收 XBee 连接到运行于 Ubuntu 上的 PC。/ROS 。有没有任何协议(protocol)可以让我解码这个字符以获得我在 Arduino 端的初始 float ?

最佳答案

如果您在“透明串行”或“AT 模式”下运行 XBee radio ,那么您只需将 8 位字节流从一个 radio 发送到另一个 radio 。此时如何解释数据取决于您。

  1. 数据不必是字符,因为 XBee 正在传输 8 位字节。尽管 float 存储为一系列字节,但它们在跨平台(例如,Arduino 到 PC)之间的存储可能不一致。因此,发送一系列字符(“0”到“9”,并使用“.”或“,”作为小数点分隔符)通常更安全。

    您发送的值的范围是多少?您可以使用定点来存储值 - 32 位整数可以存储大约 +/- 20 亿。如果您需要 8 位小数,则可以将该数字表示为 +/- 20.00000000。

  2. 您只是发送串行数据流,就像将数据输出到控制台供某人读取一样。

  3. 我不确定 Arduino float 的精度。如果您要表示较小值范围内的数字,请考虑使用定点。

  4. 在接收端,您只需打开串行端口并获取数据流。处理它取决于您在 Arduino 上对其进行编码的方式。如果您使用 sprintf()floatdouble 转换为人类可读的文本,则可以使用 sscanf() 将其转换回 PC 上的 float 。

关于c - 通过 XBee 从 Arduino 传输数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29191491/

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