首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从微位v2上的Pi读取并显示串行字符串

从微位v2上的Pi读取并显示串行字符串
EN

Stack Overflow用户
提问于 2021-06-07 00:12:42
回答 1查看 83关注 0票数 0

我有一个v2微位通过USB (/dev/ttyACM0)连接到Raspberry Pi上,它正在运行Node-Red。我想在Microbit上显示一个天气图标,基于从openweathermap节点返回的‘天气’图标-红色模块。我可以使用node-red流和一个“序列”模块来提取图标(例如“03d”),但我发现不可能让它显示在microbit上,它在node-red流中显示为“connected”。我最终将使用一组(可能非常丑陋的)“if”语句从返回的代码中获取图标,但这似乎与rn相距甚远。

我在Microbit (它是使用块构建的)上的代码是:

代码语言:javascript
复制
serial.set_baud_rate(BaudRate.BAUD_RATE115200)
serial.set_rx_buffer_size(128)

def on_forever():
    basic.show_string(serial.read_string())
    basic.pause(5000)
basic.forever(on_forever)

这只是我尝试过的一个版本。我所能得到的最接近的是接收以下内容:

代码语言:javascript
复制
[Object Object Object]

...on微位,这很奇怪,因为流的调试消息显示Pi正在将正确的有效负载传递给串行节点。

我知道这可能是显而易见的,可能是我对“string”和“number”的误解。我已经用不同的pi成功地写入了不同的微位,但那是一个数字,而不是一个字符串。在我走投无路的时候。所有的建议都非常感谢。

蒂娅,沃里克

ps。更令人沮丧的是,我不能用Mu来“借用”别人的代码,因为microbit是Mu 1.02不能使用的版本,而且我也没能更新它(mu)!

编辑以包含节点-红色流程

代码语言:javascript
复制
[
   {
      "id":"6ed3221a.52c58c",
      "type":"inject",
      "z":"1696e88b.74d287",
      "name":".#.#.#.#.#.#.#.#.#.#.#.#.",
      "props":[
         {
            "p":"payload"
         }
      ],
      "repeat":"10",
      "crontab":"",
      "once":false,
      "onceDelay":0.1,
      "topic":"",
      "payload":".#.#.#.#.#.#.#.#.#.#.#.#.",
      "payloadType":"str",
      "x":560,
      "y":120,
      "wires":[
         [
            "af95ece7.418f2"
         ]
      ]
   },
   {
      "id":"af95ece7.418f2",
      "type":"serial out",
      "z":"1696e88b.74d287",
      "name":"",
      "serial":"92c2150.d6fbee8",
      "x":860,
      "y":120,
      "wires":[
         
      ]
   },
   {
      "id":"92c2150.d6fbee8",
      "type":"serial-port",
      "serialport":"/dev/ttyACM0",
      "serialbaud":"115200",
      "databits":"8",
      "parity":"none",
      "stopbits":"1",
      "waitfor":"",
      "dtr":"none",
      "rts":"none",
      "cts":"none",
      "dsr":"none",
      "newline":"200",
      "bin":"false",
      "out":"time",
      "addchar":"",
      "responsetimeout":"10000"
   }
]
EN

回答 1

Stack Overflow用户

发布于 2021-06-07 17:59:23

与其发送图标名称,不如发送想要显示的内容的编码,以便micro:bit上的代码可以更通用。

例如:.#.#.#.#.#.#.#.#.#.#.#.#.将显示:

这是通过以下方式完成的:

当通过串行发送“数据包”时,我通常会在其中放一些已知的分隔符。例如:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67861207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档