nodeからガジェットを操作するJohnny-fiveのGO版とでも呼ぶことができるツールです。
github.com
実際のところ
ガジェット
今回はArduino UNO R3を対象とします。
大前提として、操作先がFirmataの受け入れ体制ができてる必要があります。
直接Firmataパーサーをぶっ込んでもいいですし、
公式が推奨するGortパッケージを別途導入してもいいです。gort.io
PC側
GOパッケージで入れて、
$ go get -d -u gobot.io/x/gobot/... && go install gobot.io/x/gobot/platforms/firmata
ポートの捜査
gortのscanサブコマンドでポートを調べます。
$ gort scan usb /dev/cu.Bluetooth-Incoming-Port /dev/tty.Bluetooth-Incoming-Port /dev/cu.GMSPP01-101E-SerialPort /dev/tty.GMSPP01-101E-SerialPort /dev/cu.Mtm-iPhone-WirelessiAP /dev/tty.Mtm-iPhone-WirelessiAP /dev/cu.Mtm-iPhone-WirelessiAP-2 /dev/tty.Mtm-iPhone-WirelessiAP-2 /dev/cu.usbmodem1411 /dev/tty.usbmodem1411
今回は"/dev/tty.usbmodem1411"のようですね。
こいつをターゲットにしていして、arduinoへfirmataを書き込みます。
$ gort arduino upload firmata /dev/tty.usbmodem1411 avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x1e950f (probably m328p) avrdude: reading input file "/var/folders/02/546lp7s57l93kzydhj2dtyzr0000gn/T/471215909" avrdude: writing flash (12224 bytes): Writing | ################################################## | 100% 1.96s avrdude: 12224 bytes of flash written avrdude: verifying flash memory against /var/folders/02/546lp7s57l93kzydhj2dtyzr0000gn/T/471215909: avrdude: load data flash data from input file /var/folders/02/546lp7s57l93kzydhj2dtyzr0000gn/T/471215909: avrdude: input file /var/folders/02/546lp7s57l93kzydhj2dtyzr0000gn/T/471215909 contains 12224 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 1.58s avrdude: verifying ... avrdude: 12224 bytes of flash verified avrdude done. Thank you.