Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

GOBOT:Firmata経由でGO言語からガジェットを操作できるパッケージ

gobot.io


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

Arduino

GORTを導入します

$ brew install hybridgroup/tools/gort

それ以外の方は公式リンクをどうぞ
Downloads

ポートの捜査

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.