介绍
在上一课中,我向你展示了使用Blokdots在 ProtoPie 中连接 Arduino 项目是多么快速和容易。但我们遇到了几个问题。按钮行为是反的——当按钮未按下时,Blokdots 报告为 1,按下时为 0——而且当我们过快旋转编码器时,会出现一个称为“抖动(bounce)”的问题:编码器有时该向上计数却向下计数,或该向下计数却向上计数。
第一个问题我们通过将编码器上的地(GND)和电压(+)引脚连接对调来规避;第二个问题则是注意不要把编码器旋钮转得太快。如果你编写自己的 Arduino 代码,这两个问题(以及很多其他问题)都可以得到妥善处理。
但是……代码很可怕!!
别担心!你不需要编写任何代码——你将使用一个 Arduino 脚本——称为“Sketch”——我已经写好了。你只需要复制粘贴。本课并不是教你如何写代码。本课将重点讲解的是:为了让 Arduino 与 ProtoPie Connect 配合工作,你需要了解的内容。
不过,如果你喜欢挑战并想尝试自己写 Sketch,请知道网上有大量用于入门的 Arduino 代码示例。事实上,我写的这个 Sketch 很大程度上基于我从这篇文章中学到的内容(咳咳……复制来的……)。
你将学到什么
在本教程中我们将涵盖以下内容:
在 ProtoPie Connect 中使用时,你需要重点关注的具体代码细节
验证你的代码并将其上传到 Arduino 开发板
在 ProtoPie Connect 中配置并启用 Arduino 插件
完成时间:≤15 分钟
你需要准备
我们使用与上一课相同的已完成 Pie。可在此下载:
https://cloud.protopie.io/p/35d69ddd96按照我们在上一课中的方式连接好 Arduino 电路。
下载并安装Arduino 软件。
复制以下代码:
将这段代码粘贴到 Arduino 软件窗口中。

将 Pie 文件导入ProtoPie Connect,并在浏览器中预览。
开始吧!
当你一切就绪后,只需跟着下面的视频操作即可。
参考
在视频中,我指出了在编写用于 ProtoPie Connect 的 Arduino Sketch 时,你需要记住的两件重要事项。下面保留这两个细节供你参考:
正确设置波特率
你在 Connect 的 Arduino 插件中选择的波特率(即检查串口连接更新的频率)需要与你在代码中指定的一致。

向 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 交互中,我们将向你展示如何创建真正的多屏仪表板体验。




