Coverage for /Users/fmorton/GitHub/BirdBrain-Python-Library-2/src/birdbrain_finch.py: 98%
59 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-05-12 11:24 -0400
« prev ^ index » next coverage.py v7.8.0, created at 2025-05-12 11:24 -0400
1from birdbrain_constant import BirdbrainConstant
2from birdbrain_exception import BirdbrainException
3from birdbrain_finch_input import BirdbrainFinchInput
4from birdbrain_finch_output import BirdbrainFinchOutput
5from birdbrain_microbit import BirdbrainMicrobit
6from birdbrain_microbit_input import BirdbrainMicrobitInput
8class BirdbrainFinch(BirdbrainMicrobit):
9 """The Finch class includes the control of the outputs and inputs present
10 in the Finch robot. When creating an instance, specify which robot by the
11 device letter used in the BlueBirdConnector device list (A, B, or C)."""
13 def __init__(self, device='A', raise_exception_if_no_connection = True):
14 self.device_object = BirdbrainFinch.connect(device, raise_exception_if_no_connection)
16 if not self.is_finch():
17 raise BirdbrainException("Error: Device " + device + " is not a Finch")
19 def is_moving(self):
20 return BirdbrainFinchInput.is_moving(self.device)
22 def beak(self, r_intensity, g_intensity, b_intensity):
23 return BirdbrainFinchOutput.beak(self.device, r_intensity, g_intensity, b_intensity)
25 def tail(self, port, r_intensity, g_intensity, b_intensity):
26 return BirdbrainFinchOutput.tail(self.device, port, r_intensity, g_intensity, b_intensity)
28 def move(self, direction, distance, speed, wait_to_finish_movement = True):
29 return BirdbrainFinchOutput.move(self.device, direction, distance, speed, wait_to_finish_movement)
31 def turn(self, direction, angle, speed, wait_to_finish_movement = True):
32 return BirdbrainFinchOutput.turn(self.device, direction, angle, speed, wait_to_finish_movement)
34 def motors(self, left_speed, right_speed):
35 return BirdbrainFinchOutput.motors(self.device, left_speed, right_speed)
37 def wait(self, device):
38 return BirdbrainFinchOutput.wait(self.device)
40 def stop(self):
41 return BirdbrainFinchOutput.stop(self.device)
43 def reset_encoders(self):
44 return BirdbrainFinchOutput.reset_encoders(self.device)
46 def light(self, side):
47 return BirdbrainFinchInput.light(self.device, side)
49 def distance(self):
50 return BirdbrainFinchInput.distance(self.device)
52 def line(self, side):
53 return BirdbrainFinchInput.line(self.device, side)
55 def encoder(self, side):
56 return BirdbrainFinchInput.encoder(self.device, side)
58 def orientation(self):
59 return BirdbrainFinchInput.orientation(self.device)
61 def acceleration(self):
62 return BirdbrainFinchInput.acceleration(self.device)
64 def compass(self):
65 return BirdbrainFinchInput.compass(self.device)
67 def magnetometer(self):
68 return BirdbrainFinchInput.magnetometer(self.device)
70 getAcceleration = acceleration
71 setBeak = beak
72 getCompass = compass
73 getDistance = distance
74 getEncoder = encoder
75 getLight = light
76 getLine = line
77 getMagnetometer = magnetometer
78 setMotors = motors
79 setMove = move
80 getOrientation = orientation
81 resetEncoders = reset_encoders
82 setTail = tail
83 setTurn = turn