210 Views
August 27, 15
スライド概要
#Kyobashi.go で「Gobotについて」発表した時の資料です。 Gobotってなに?なに出来るの?な話です
クラウドで働くIoTおじさん
Gobotについて Kyobashi.go #1
自己紹介 市川 純 リクルートマーケティングパートナーズ @sparkgene 業務内容 • AWSを使ったサービスのインフラ構築・運用 • サーバサイドの開発
Gobotについて
Gobotでググると
今日話すのはこっち
Gobotとは Goで書かれた • ロボティックス • フィジカル・コンピューティング • IoT 向けのフレームワークです
15種類のプラットフォームに対応
7種類のGPIOをサポート GPIOとは(General Purpose Input/Output:汎用入出力) 電圧のON/OFFだけではなく、アナログの入出力、PWMもサポート
6種類のI2Cをサポート I2Cとは(アイ・スクエアド・シー、アイ・ツー・シー) 組み込み機器で使われるシリアル通信の規格 複数の機器を繋げて通信することができる
GobotでLチカ
「Lチカ」はとりあえずLedを光らせてみる事を指し、プログラミングで言う
「Hello World!」なこと
package main
import (
"time"
"github.com/hybridgroup/gobot"
"github.com/hybridgroup/gobot/platforms/gpio"
"github.com/hybridgroup/gobot/platforms/intel-iot/edison"
)
func main() {
gbot := gobot.NewGobot()
e := edison.N ewEdisonAdaptor("edison")
led := gpio.NewLedDriver(e, "led", "13”)
work := func() {
gobot.Every(1*time.Second, func() {
led.Toggle()
})
}
robot := gobot.NewRobot("blinkBot",
[]gobot.Connection{e},
[]gobot.Device{led},
work,
)
gbot.AddRobot(robot)
gbot.Start()
}
GobotでLチカ(1) // Intel Edison用のアダプターを使う e := edison.NewEdisonAdaptor("edison") // LED用のドライバを使う。13はPIN番号 led := gpio.NewLedDriver(e, "led", "13”) // 1秒おきにLEDの状態をトグルさせる work := func() { gobot.Every(1*time.Second, func() { led.Toggle() }) }
• Gobotではプラットフォームが実行する環境 を意味していて、そのプラットフォームを利 用するには、アダプターが必要になります • ドライバがプラットフォーム上のデバイスへ の操作を定義しています • 今回のEdisonの場合はアダプターは EdisonAdaptorを利用し、ドライバは LedDriverを利用しています
GobotでLチカ(2) // アダプタ、デバイス、処理で新しいRobotを作成 robot := gobot.NewRobot("blinkBot", []gobot.Connection{e}, []gobot.Device{led}, work, ) // Gobotに追加して gbot.AddRobot(robot) // 実行 gbot.Start()
ARDroneを飛ばすことも gbot := gobot.NewGobot() ardroneAdaptor := ardrone.NewArdroneAdaptor("Drone") drone := ardrone.NewArdroneDriver(ardroneAdaptor, "Drone") work := func() { drone.TakeOff() gobot.On(drone.Event("flying"), func(data interface{}) { gobot.After(3*time.Second, func() { drone.Land() }) }) }
Sphero + leap motion 複数のプラットフォームでも使えます leap motionでSpheroを操作するサンプル http://qiita.com/sparkgene/items/7967f9e281e308dd1f5b Robotを作るときに、アダプターとドライバーを複数指定すればOK robot := gobot.NewRobot("leapBot", []gobot.Connection{leapAdaptor, spheroAdaptor}, []gobot.Device{leapDriver, spheroDriver}, work, )
デモ動画 https://www.youtube.com/watch?v=D6_TXtNvJVg
Gobotをサーバ監視に使ってみる
全体像 Alarmのチェック Alarmの情報 AWS CloudWatch 止まってるよ rospeex
rospeek -非モノローグ音声合成 • rospeex は日・英・中・韓に対応したク ラウド型音声コミュニケーションツール キット • ROS(Robot Operating System)上で動作 するので、音声認識・合成・対話処理機 能を容易にロボットに組み込み可能 http://komeisugiura.jp/software/software_jp.html
じつは。。。。
途中までしか終わりませんでした Alarmのチェック Alarmの情報 CloudWatch 止まってるよ rospeex
デモ
まとめ Goを勉強しながらIoTなもので遊べるのは楽しい アダプターやドライバーを自作すれば、他の環境にも 拡張できそう
ご静聴ありがとうございました