如何用熟悉的语言玩转Arduino
今天上班有些忙,时间不是太多,借助空隙时间学习了一下如何用自己喜欢的语言来玩 Arduino。
Firmata
Arduino 可以通过 Firmata(PC 与 MCU 通讯协议) Library 来实现与计算机应用程序的通信。
我么可以使用自己喜欢的语言来实现一段程序,然后将程序写入到 Arduino 中。我们首先需要将 Firmata 协议烧写到芯片中。
烧写协议
Arduino IDE > 文件 > 示例 > Firmata > StandardFirmata
按照上述路径找到标准协议,然后上传至 Arduino
端口查找
以下两种方式任选其一:
- Arduino IDE > 工具 > 端口
- 命令行工具中输入
ls /dev/tty.usb*
按tab
按照上述路径找到端口,后续通过 Firmata 协议与 Arduino 连接的时候需要使用该端口值。这里我们得到我的设备的端口为 /dev/tty.usbmodem14101
编写程序
这里我使用的是 javascript 来编写昨天的 Blink
firmata.js
const Firmata = require('firmata'); const port = '/dev/tty.usbmodem14101'; const ledPin = 2; const board = new Firmata(port); board.on('ready', () => { console.log(`connet ${port}`); let status = 0; setInterval(() => { status = !status + 0; board.digitalWrite(ledPin, status); }, 1000); });
johnny-five
const five = require('johnny-five'); const board = new five.Board(); const ledPin = 2; board.on('ready', function() { // Create an Led on pin 13 var led = new five.Led(ledPin); // Blink every half second led.blink(1000); });
Johnny-Five is an Open Source, Firmata Protocol based, IoT and Robotics programming framework, developed at Bocoup.
后者封装的更为简易,兼容多种类型硬件,等待后续深入学习。
末了
如何用熟悉的语言玩转Arduino
结合开源软件框架来驱动开源硬件,用熟悉的语言来驱动硬件是一件很酷的事情。后续期望结合一些其它开源做一些好玩的东西。基于 Firmata 还有一些其它语言的封装,这里我只是以自己最近使用的 JavaScript 为例子来进行来一次复盘 Blink。
相关推荐
第三步:通过 arduino 软件选择对应的网络端口就可以进行固件更新了,不过更新的时候要注意不能将 Arduino.begin() 和 ArduinoOTA.handle() 这两个关键函数给更新掉