Class: BirdbrainHummingbirdOutput

Inherits:
BirdbrainRequest show all
Defined in:
lib/birdbrain/birdbrain_hummingbird_output.rb

Overview


Copyright © 2021 Base2 Incorporated–All Rights Reserved.


Constant Summary

Constants inherited from BirdbrainRequest

BirdbrainRequest::BIRDBRAIN_TEST

Class Method Summary collapse

Methods inherited from BirdbrainRequest

bounds, calculate_angle, calculate_intensity, calculate_left_or_right, calculate_speed, connected?, disconnect, not_connected?, request_status, response, response_body, uri, xyz_response

Class Method Details

.led(device, port, intensity) ⇒ Object



5
6
7
# File 'lib/birdbrain/birdbrain_hummingbird_output.rb', line 5

def self.led(device, port, intensity)
  request_status(response_body('hummingbird', 'out', 'led', port.to_s, bounds(calculate_intensity(intensity), 0, 255), device))
end

.play_note(device, note, beats) ⇒ Object



27
28
29
30
31
32
# File 'lib/birdbrain/birdbrain_hummingbird_output.rb', line 27

def self.play_note(device, note, beats)
  calc_note = bounds(note, 32, 135)
  calc_beats = bounds(beats, 0, 16) * 1000  # 100=(60000 / TEMPO) where TEMPO=60

  request_status(response_body('hummingbird', 'out', 'playnote', calc_note, calc_beats, device))
end

.position_servo(device, port, angle) ⇒ Object



17
18
19
20
# File 'lib/birdbrain/birdbrain_hummingbird_output.rb', line 17

def self.position_servo(device, port, angle)
  # QUESTION: 254 max (255 is ignored)
  request_status(response_body('hummingbird', 'out', 'servo', port.to_s, bounds(calculate_angle(angle), 0, 254), device))
end

.rotation_servo(device, port, speed) ⇒ Object



22
23
24
25
# File 'lib/birdbrain/birdbrain_hummingbird_output.rb', line 22

def self.rotation_servo(device, port, speed)
  # QUESTION: why this range...255 means stop
  request_status(response_body('hummingbird', 'out', 'rotation', port.to_s, bounds(calculate_speed(speed), 99, 145, 255), device))
end

.tri_led(device, port, r_intensity, g_intensity, b_intensity) ⇒ Object



9
10
11
12
13
14
15
# File 'lib/birdbrain/birdbrain_hummingbird_output.rb', line 9

def self.tri_led(device, port, r_intensity, g_intensity, b_intensity)
  calc_r = bounds(calculate_intensity(r_intensity), 0, 255)
  calc_g = bounds(calculate_intensity(g_intensity), 0, 255)
  calc_b = bounds(calculate_intensity(b_intensity), 0, 255)

  request_status(response_body('hummingbird', 'out', 'triled', port.to_s, calc_r, calc_g, calc_b, device))
end