行业

汽车

航空

金融

游戏

医疗科技

物联网

数字产品

使用场景

面向企业

面向个人

面向团队

用于教育

主要特点

硬件与系统集成

公测版

ProtoPie MCP

多设备原型设计

交互逻辑

开发交接

ProtoPie AI

用户测试

插件

Figma

Sketch

Adobe XD

洞见与灵感

博客

白皮书

客户成功案例

活动与网络研讨会

ProtoPie 画廊

产品学习与支持

ProtoPie 学堂

下载 ProtoPie

产品文档

社区

行业

汽车

航空

金融

游戏

医疗科技

物联网

数字产品

使用场景

面向企业

面向个人

面向团队

用于教育

主要特点

硬件与系统集成

公测版

ProtoPie MCP

多设备原型设计

交互逻辑

开发交接

ProtoPie AI

用户测试

插件

Figma

Sketch

Adobe XD

洞见与灵感

博客

白皮书

客户成功案例

活动与网络研讨会

ProtoPie 画廊

产品学习与支持

ProtoPie 学堂

下载 ProtoPie

产品文档

社区

Protopie 连接

8

阅读时间

ProtoPie Connect 入门 7 讲之第 4 讲:Arduino 第 2 部分 - 编写你自己的 Sketch 代码

了解如何使用 ProtoPie Connect 的 Arduino 插件直接访问您的 Arduino 项目。

杰夫·克拉克, 用户体验设计师与 ProtoPie 培训师

介绍

上一课中,我向你展示了使用Blokdots在 ProtoPie 中连接 Arduino 项目是多么快速和容易。但我们遇到了几个问题。按钮行为是反的——当按钮未按下时,Blokdots 报告为 1,按下时为 0——而且当我们过快旋转编码器时,会出现一个称为“抖动(bounce)”的问题:编码器有时该向上计数却向下计数,或该向下计数却向上计数。

第一个问题我们通过将编码器上的地(GND)和电压(+)引脚连接对调来规避;第二个问题则是注意不要把编码器旋钮转得太快。如果你编写自己的 Arduino 代码,这两个问题(以及很多其他问题)都可以得到妥善处理。

但是……代码很可怕!!

别担心!你不需要编写任何代码——你将使用一个 Arduino 脚本——称为“Sketch”——我已经写好了。你只需要复制粘贴。本课并不是教你如何写代码。本课将重点讲解的是:为了让 Arduino 与 ProtoPie Connect 配合工作,你需要了解的内容。

不过,如果你喜欢挑战并想尝试自己写 Sketch,请知道网上有大量用于入门的 Arduino 代码示例。事实上,我写的这个 Sketch 很大程度上基于我从这篇文章中学到的内容(咳咳……复制来的……)。

你将学到什么

在本教程中我们将涵盖以下内容:

  • 在 ProtoPie Connect 中使用时,你需要重点关注的具体代码细节

  • 验证你的代码并将其上传到 Arduino 开发板

  • 在 ProtoPie Connect 中配置并启用 Arduino 插件

完成时间:≤15 分钟

你需要准备

  • 将这段代码粘贴到 Arduino 软件窗口中。


Paste instructions for Sketch code

[Climate Control Pie]

开始吧!

当你一切就绪后,只需跟着下面的视频操作即可。

视频

参考

在视频中,我指出了在编写用于 ProtoPie Connect 的 Arduino Sketch 时,你需要记住的两件重要事项。下面保留这两个细节供你参考:

正确设置波特率

你在 Connect 的 Arduino 插件中选择的波特率(即检查串口连接更新的频率)需要与你在代码中指定的一致。


The baud rate you select in the plugin needs to match what you specified in your code.

向 ProtoPie Connect 发送消息

ProtoPie Connect 会查找写入串口连接的消息,因此你需要在代码中使用 Serial.print()Serial.println() 将消息发送回 Connect。

对于不带值的消息,只需像这样将消息打印到串口连接:

  • Serial.println(<message name>),例如:Serial.println("TEMP_UP");

对于带值的消息,你需要用两个竖线(|)字符分隔消息名和值。

  • 例如:
    Serial.println("SET_TEMP||21");

ProtoPie Connect 会识别这种模式,并接收消息 SET_TEMP 及其值 21

如果你把变量作为消息值,在 Arduino 代码中不能一行构建该消息。例如,这样是无效的:

  • Serial.println("SET_TEMP||" + temp);

你需要用两行代码来构建:第一部分使用 Serial.print(),第二部分使用 Serial.println()

  • 例如: ``Serial.print("SET_TEMP||"); Serial.println(temp);

两者的区别在于:Serial.print 会把你指定的内容追加到串口连接的当前行,而 Serial.println 会写入串口连接并在末尾添加一个回车字符,表示该行结束;从 ProtoPie Connect 的角度看,这也表示一条消息发送完成。

ProtoPie Connect 会等待串口连接输出回车字符后才处理消息。通过这种方式,你可以先连续发出多个 Serial.print() 命令,以分段方式构建消息,再发出最后的 Serial.println() 命令,向 ProtoPie Connect 表示消息已完成。

  • 例如:
    Serial.print(message); Serial.print(”||”); Serial.println(value);

就是这样!在ProtoPie Connect 入门 7 节中的第 5 节:与 Logic G29 交互中,我们将向你展示如何创建真正的多屏仪表板体验。