Class: M3pi::Robot

Inherits:
Object
  • Object
show all
Defined in:
lib/m3pi/robot.rb

Instance Method Summary collapse

Constructor Details

#initialize(address, serial) ⇒ Robot

Returns a new instance of Robot.



7
8
9
10
# File 'lib/m3pi/robot.rb', line 7

def initialize address, serial
  @xbee = XBeeRuby::XBee.new serial: serial
  @address = address = XBeeRuby::Address64.new *address
end

Instance Method Details

#drive(speed, turn_radius) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/m3pi/robot.rb', line 16

def drive speed, turn_radius
  raise "Speed is to high, speed must be less than 100" if speed > 100
  raise "Speed is to low, speed must be greater than -100" if speed < -100
  raise "Turn radius is to high, turn_radius must be less than 100" if speed > 100
  raise "Turn radius is to low, turn_radius must be greater than -100" if speed < -100
  send [0x10, [speed].pack("c").getbyte(0), [turn_radius].pack("c").getbyte(0)]
end

#forwardObject



24
25
26
# File 'lib/m3pi/robot.rb', line 24

def forward
  drive 100, 0
end

#leftObject



32
33
34
# File 'lib/m3pi/robot.rb', line 32

def left
  drive 0, -100
end

#reverseObject



28
29
30
# File 'lib/m3pi/robot.rb', line 28

def reverse
  drive -100, 0
end

#rightObject



36
37
38
# File 'lib/m3pi/robot.rb', line 36

def right
  drive 0, 100
end

#send(data) ⇒ Object



12
13
14
# File 'lib/m3pi/robot.rb', line 12

def send data
  @xbee.write_request XBeeRuby::TxRequest.new  @address, data
end