Gobotについて

210 Views

August 27, 15

スライド概要

#Kyobashi.go で「Gobotについて」発表した時の資料です。 Gobotってなに?なに出来るの?な話です

profile-image

クラウドで働くIoTおじさん

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

Gobotについて Kyobashi.go #1

2.

自己紹介 市川 純 リクルートマーケティングパートナーズ @sparkgene 業務内容 • AWSを使ったサービスのインフラ構築・運用 • サーバサイドの開発

3.

Gobotについて

4.

Gobotでググると

5.

今日話すのはこっち

6.

Gobotとは Goで書かれた • ロボティックス • フィジカル・コンピューティング • IoT 向けのフレームワークです

7.

15種類のプラットフォームに対応

8.

7種類のGPIOをサポート  GPIOとは(General Purpose Input/Output:汎用入出力)  電圧のON/OFFだけではなく、アナログの入出力、PWMもサポート

9.

6種類のI2Cをサポート  I2Cとは(アイ・スクエアド・シー、アイ・ツー・シー)  組み込み機器で使われるシリアル通信の規格  複数の機器を繋げて通信することができる

10.
[beta]
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()
}

11.

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() }) }

12.

• Gobotではプラットフォームが実行する環境 を意味していて、そのプラットフォームを利 用するには、アダプターが必要になります • ドライバがプラットフォーム上のデバイスへ の操作を定義しています • 今回のEdisonの場合はアダプターは EdisonAdaptorを利用し、ドライバは LedDriverを利用しています

13.

GobotでLチカ(2) // アダプタ、デバイス、処理で新しいRobotを作成 robot := gobot.NewRobot("blinkBot", []gobot.Connection{e}, []gobot.Device{led}, work, ) // Gobotに追加して gbot.AddRobot(robot) // 実行 gbot.Start()

14.

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() }) }) }

15.

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, )

16.

デモ動画 https://www.youtube.com/watch?v=D6_TXtNvJVg

17.

Gobotをサーバ監視に使ってみる

18.

全体像 Alarmのチェック Alarmの情報 AWS CloudWatch 止まってるよ rospeex

19.

rospeek -非モノローグ音声合成 • rospeex は日・英・中・韓に対応したク ラウド型音声コミュニケーションツール キット • ROS(Robot Operating System)上で動作 するので、音声認識・合成・対話処理機 能を容易にロボットに組み込み可能 http://komeisugiura.jp/software/software_jp.html

20.

じつは。。。。

21.

途中までしか終わりませんでした Alarmのチェック Alarmの情報 CloudWatch 止まってるよ rospeex

22.

デモ

23.

まとめ  Goを勉強しながらIoTなもので遊べるのは楽しい  アダプターやドライバーを自作すれば、他の環境にも 拡張できそう

24.

ご静聴ありがとうございました