Sha256: 93611670394834af04312b18ff2938b530c63a5af3cc559512c0e0858cdcf071

Contents?: true

Size: 1.78 KB

Versions: 26

Compression:

Stored size: 1.78 KB

Contents

require 'artoo/robot'

class ConwaySpheroRobot < Artoo::Robot
  connection :sphero, :adaptor => :sphero
  device :sphero, :driver => :sphero
  
  #api :host => '127.0.0.1', :port => '8080'

  work do
    birth

    on sphero, :collision => proc { contact }

    every(3.seconds) { movement if alive? }
    every(16.seconds) { birthday if alive? }
  end

  def alive?; (@alive == true); end
  def reset_contacts; @contacts = 0; end
  def contact; @contacts += 1; end

  def birth
    reset_contacts
    @age = 0
    life
    movement
  end

  def life
    @alive = true
    sphero.set_color :green
  end

  def death
    puts "Death."
    pause_work
    @alive = false
    sphero.set_color :red
    sphero.stop
  end

  def birthday
    @age += 1
    
    puts "Happy birthday, #{name}, you are #{@age} and had #{@contacts} contacts."
    #return if @age <= 3
    death unless @contacts >= 6 && @contacts < 11
    reset_contacts
  end

  def movement
    sphero.roll 90, rand(360)
  end
end

SPHEROS = {
           "127.0.0.1:4560" => "/dev/tty.Sphero-BRG-RN-SPP",
           "127.0.0.1:4561" => "/dev/tty.Sphero-YBW-RN-SPP",
           "127.0.0.1:4562" => "/dev/tty.Sphero-BWY-RN-SPP",
           "127.0.0.1:4563" => "/dev/tty.Sphero-YRR-RN-SPP",
           "127.0.0.1:4564" => "/dev/tty.Sphero-OBG-RN-SPP",
           "127.0.0.1:4565" => "/dev/tty.Sphero-GOB-RN-SPP",
           "127.0.0.1:4566" => "/dev/tty.Sphero-PYG-RN-SPP",
           "127.0.0.1:4567" => "/dev/tty.Sphero-PYG-RN-SPP",
           "127.0.0.1:4568" => "/dev/tty.Sphero-PYG-RN-SPP",
           "127.0.0.1:4569" => "/dev/tty.Sphero-PYG-RN-SPP"}
robots = []
SPHEROS.each_key {|p|
  robots << ConwaySpheroRobot.new(:connections => 
                              {:sphero => 
                                {:port => p}})
}

ConwaySpheroRobot.work!(robots)

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
artoo-1.8.2 examples/conway_sphero.rb
artoo-1.8.1 examples/conway_sphero.rb
artoo-1.8.0 examples/conway_sphero.rb
artoo-1.6.7 examples/conway_sphero.rb
artoo-1.6.6 examples/conway_sphero.rb
artoo-1.6.5 examples/conway_sphero.rb
artoo-1.6.4 examples/conway_sphero.rb
artoo-1.6.3 examples/conway_sphero.rb
artoo-1.6.2 examples/conway_sphero.rb
artoo-1.6.1 examples/conway_sphero.rb
artoo-1.6.0 examples/conway_sphero.rb
artoo-1.5.0 examples/conway_sphero.rb
artoo-1.4.1 examples/conway_sphero.rb
artoo-1.4.0 examples/conway_sphero.rb
artoo-1.3.0 examples/conway_sphero.rb
artoo-1.2.2 examples/conway_sphero.rb
artoo-1.2.1 examples/conway_sphero.rb
artoo-1.2.0 examples/conway_sphero.rb
artoo-1.1.1 examples/conway_sphero.rb
artoo-1.1.0 examples/conway_sphero.rb