hagetak's blog

どうも、はげたかです。

今日の一言:カテゴリ分けをしっかりしたらPVあがるかな?

RubyでSpheroプログラミングをまとめる

はじめに

f:id:hagetak:20150411232150j:plain

先日、Spheroを先生からもらった。iOSアプリで遊んだり、最近ではプログラミングをしてみている。

そこで、何ができるか、GithubRubyのgem "Sphero"を調べてみた。

github.com

【日本正規代理店品】 Orbotix Sphero 2.0 white S003AS(JP)

【日本正規代理店品】 Orbotix Sphero 2.0 white S003AS(JP)

使い方

前提として

BluetoothでSpheroを繋げる。(Spheroは2回叩くと起きる!)

ls /dev/tty.Sphero*

=> tty.Sphero-ROG-AMP-SPP

この"tty.Sphero-ROG-AMP-SPP"を使う。

1. ファイルから使う

require "Sphero"

Sphero.start '/dev/tty.Sphero-ROG-RN-SPP' do
    roll 60, Sphero::FORWARD
    keep_going 3

    roll 60, Sphero::RIGHT
    keep_going 3

    roll 60, Sphero::BACKWARD
    keep_going 3

    roll 60, Sphero::LEFT
    keep_going 3

    stop
end

ruby sphero.rb

動く

2. DSL(irb)で使ってみる

irb

s = Sphero.new "/dev/tty.Sphero-POG-RN-SPP"
s.ping

s.roll(125, 0)

0.step(360, 30) { |h|
  h = 0 if h == 360

  s.heading = h
  sleep 1
}
sleep 1
s.stop

動く。

リファレンス?

関数 引数 説明
roll speed, heading 方向に(heading)に速度(speed)で進む
color color Spheroの色をcolorに変える(色リストを参考)
rgb r, g, b Spheroの色をr, g, bに変える
keep_going time 時間(time)前の処理を続ける(?)

何ができるか、以上の表にまとめる。

さいごに

NodeJSのSpheroモジュール(?)を軽く見てみたが、collisionなどがあって、幅はNodeのほうが多そう。

NodeJSの日本語リファレンスについては、後ほどブログの記事にする。

それと平行して、Spheroを使った楽しいことをしてみたい。

例えば、

  • 2台で並列に部屋を捜索し、部屋の状況をマッピングする
  • 猫と犬が遊べるように楽しいツール・Spheroの外見を変える

1つ目:2台で...

これはNumbersで見た、いくつかのこのようなロボットを動かし、情報を共有して、(災害現場の)内部を特定するというもの。これをやってみたい。

2つ目:猫と犬が遊べるように

既に猫じゃらしっぽいのを買っている。後は、被せる布を作成し、プログラミングをするだけだ。

Spheroは意外とぶつかると痛い。何度か素の状態で、猫と犬と遊んだが、ぶつかると痛くて怖がってしまう。だから、少しでも軽減させ、じゃれるもの(猫じゃらし)をくっつけて遊ぶ。

【日本正規代理店品】 Orbotix ollie for iOS & Android ホワイト1B01JAP

【日本正規代理店品】 Orbotix ollie for iOS & Android ホワイト1B01JAP