1

今天上班有些忙,时间不是太多,借助空隙时间学习了一下如何用自己喜欢的语言来玩 Arduino。

Firmata

Arduino 可以通过 Firmata(PC 与 MCU 通讯协议) Library 来实现与计算机应用程序的通信。
我么可以使用自己喜欢的语言来实现一段程序,然后将程序写入到 Arduino 中。我们首先需要将 Firmata 协议烧写到芯片中。

烧写协议

Arduino IDE > 文件 > 示例 > Firmata > StandardFirmata

按照上述路径找到标准协议,然后上传至 Arduino

standard firmata protocol

端口查找

以下两种方式任选其一:

  • Arduino IDE > 工具 > 端口
  • 命令行工具中输入 ls /dev/tty.usb*tab

方法1
方法2

按照上述路径找到端口,后续通过 Firmata 协议与 Arduino 连接的时候需要使用该端口值。这里我们得到我的设备的端口为 /dev/tty.usbmodem14101

编写程序

这里我使用的是 javascript 来编写昨天的 Blink

firmata.js

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

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。


unofficial
1.5k 声望19 粉丝

姓名:吴非


引用和评论

0 条评论