Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

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.