Module: ArduinoFirmata

Defined in:
lib/arduino_firmata.rb,
lib/arduino_firmata/main.rb,
lib/arduino_firmata/const.rb,
lib/arduino_firmata/error.rb,
lib/arduino_firmata/arduino.rb,
lib/arduino_firmata/version.rb

Defined Under Namespace

Classes: Arduino, Error, Params, Status

Constant Summary collapse

INPUT =
0
OUTPUT =
1
ANALOG =
2
PWM =
3
SERVO =
4
SHIFT =
5
I2C =
6
LOW =
0
HIGH =
1
MAX_DATA_BYTES =
32
DIGITAL_MESSAGE =

send data for a digital port

0x90
ANALOG_MESSAGE =

send data for an analog pin (or PWM)

0xE0
REPORT_ANALOG =

enable analog input by pin

0xC0
REPORT_DIGITAL =

enable digital input by port

0xD0
SET_PIN_MODE =

set a pin to INPUT/OUTPUT/PWM/etc

0xF4
REPORT_VERSION =

report firmware version

0xF9
SYSTEM_RESET =

reset from MIDI

0xFF
START_SYSEX =

start a MIDI SysEx message

0xF0
END_SYSEX =

end a MIDI SysEx message

0xF7
VERSION =
'0.3.4'

Class Method Summary collapse

Class Method Details

.connect(serial_name = nil, params = {}, &block) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/arduino_firmata/main.rb', line 7

def self.connect(serial_name=nil, params={}, &block)
  serial_name = self.list[0] unless serial_name
  raise Error.new 'Arduino not found' unless serial_name
  Params.default.each do |k,v|
    params[k] = v unless params[k]
  end

  arduino = Arduino.new serial_name, params

  unless block_given?
    return arduino
  else
    arduino.instance_eval &block
    arduino.close
  end
end

.listObject



3
4
5
# File 'lib/arduino_firmata/main.rb', line 3

def self.list
  Dir.entries('/dev').grep(/tty\.?(usb|acm)/i).map{|fname| "/dev/#{fname}"}
end