参考:https://github.com/sarahgp/p5bots
简介
p5.bots可以让「运行在浏览器上的p5.js」和「使用Firmata协议的微处理器(这里是Arduino)」互动,它通过socket.io和node.js实现两个平台之间的通信。
简单上手
这里实现了控制LED灯管的闪烁。
需要作好以下准备:
- Arduino UNO开发板
- 面包板、实验跳线
- 220Ω的电阻、LED灯泡
- Node 0.12.x+,下载:https://nodejs.org/en/download/
- NPM 2.0.x+
Arduino的准备
连接好设备,打开示例StandardFirmata并上传至开发板。
p5.bots服务器工具
安装:
npm install -g p5bots-server
配置js依赖
下载以下三个库到本地,并通过<script>标签导入(也可以通过CDN)
p5 | https://github.com/processing/p5.js/releases |
p5bots | https://raw.githubusercontent.com/sarahgp/p5bots/master/lib/p5bots.js |
socket.io | https://cdn.socket.io/socket.io-1.3.5.js |
<script src="https://cdn.socket.io/socket.io-1.3.5.js"></script>
<script src="scripts/p5.min.js"></script>
<script src="scripts/p5bots.js"></script>
编辑js程序
p5.board()函数第一个参数是端口名,mac系统的端口名一般是"/dev/cu.usbmodem14xx",win系统的端口名一般是"COMx"。这里注意区分。
var b = p5.board('/dev/cu.usbmodem1421', 'arduino');
var led;
function setup() {
led = b.pin(9, 'LED');
}
function keyPressed() {
if (keyCode === LEFT_ARROW){
led.on();
} else if (keyCode === RIGHT_ARROW) {
led.off();
} else if (keyCode === UP_ARROW){
led.blink();
} else if (keyCode === DOWN_ARROW) {
led.noBlink();
}
}
连接电路
要记得LED短的一端对应的是GND。
启动服务器
bots-go -d 工程目录
看到server starting...connected时,即可在浏览器地址栏输入localhost:8000