Public Hummingbird Methods


NOTE: If you issue Bluetooth commands very close together (< 100 ms), it is possible that some commands may be skipped. For example, if you set the color of the tri-color LED to green and then immediately set it to red, you may not see the effect of the green command.

Method Signature: setLED(port: Int, intensity: Int)
Description: Sets an LED to a given intensity value. The method requires the port number of the LED (1-3) and an intensity value from 0-100. An intensity value of 0 turns the LED off.
Example: hummingbird.setLED(port: 1, intensity: 100)

Method Signature: setTriLED(port: Int, red: Int, green: Int, blue: Int)
Description: Sets a tri-color LED to a given color by setting the intensities of the red, green, and blue elements inside it . The method requires the port number of the tri-color LED (1-2) and three intensity values from 0-100. Setting all three intensity values to 0 turns the LED off.
Example: hummingbird.setTriLED(port: 1, red: 75, green: 0, blue: 75)

Method Signature: setPositionServo(port: Int, angle: Int)
Description: Sets a position servo to a given angle. The method requires the port number of the servo (1-4) and an angle from 0°-180°.
Example: hummingbird.setPositionServo(port: 1, angle: 90)

Method Signature: setRotationServo(port: Int, speed: Int)
Description: Sets a rotation servo to spin at a given speed. The method requires the port number of the servo (1-4) and a speed between -100 and 100. A speed of 0 turns the motor off.
Example: hummingbird.setRotationServo(port: 1, speed: 100)

Method Signature: playNote(note: Int, beats: Double)
Description: Plays a note using the buzzer on the Finch. The method requires an integer representing the note (32-135) and a number giving the number of beats (0-16). The number of beats can be a decimal number.
Example: hummingbird.playNote(note: 60, beats: 0.5)

Method Signature: setDisplay(pattern: Array<Int>)
Description: Sets the LED array of the micro:bit to display a pattern defined by an array. Each value in the array must be 0 (off) or 1 (on). The first five values in the array correspond to the five LEDs in the first row, the next five values to the second row, etc.
Example: hummingbird.setDisplay(pattern: [1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1])

Method Signature: printString(_ stringToPrint: String)
Description: Print a string on the micro:bit LED array. The string must have 15 or fewer characters and should contain only digits and English letters (upper or lower case).
Example: hummingbird.printString("hello")

Method Signature: stopAll()
Description: Stops all outputs. This includes the LED display for the micro:bit and all lights and motors for the Hummingbird.
Example: hummingbird.stopAll()

Method Signature: calibrateCompass()
Description: This function sends a Bluetooth command to calibrate the compass. When the Hummingbird receives this command, it will place dots on the micro:bit screen as it waits for you to tilt the Hummingbird in different directions. If the calibration is successful, you will then see a check on the micro:bit screen. Otherwise, you will see an X.
Example: hummingbird.calibrateCompass()

Hummingbird Sensor State


You can access the following variables within hummingbirdSensorState:

timestamp: Date Time of the sensor reading

batteryVoltage: Float Voltage of Hummingbird battery

isStale: Bool True when data is out of date

sensor1: HummingbirdSensor Value of the Hummingbird sensor in port 1. Each of the Hummingbird sensor ports supports different types of sensors, so this value has a data type HummingbirdSensor that computes all of the possibilities.

  • Use sensor1.distance: Int if you are using a distance sensor in port 1. This value is the distance in centimeters.
  • Use sensor1.dial: Int if you are using the dial. This value is between 0 and 100.
  • Use sensor1.light: Int if you are using the light sensor. This value is between 0 and 100.
  • Use sensor1.voltage: Double if you want the voltage at the port, which is between 0 and 3.3 V.

sensor2: HummingbirdSensor Value of the Hummingbird sensor in port 2. See the options for sensor1.

sensor3: HummingbirdSensor Value of the Hummingbird sensor in port 3. See the options for sensor1.

acceleration: Array<Double> Acceleration in m/s2 in the x, y, and z directions

magnetometer: Array<Double> Magnetometer readings in µT in the x, y, and z directions

compass: Int? Degrees from North; undefined when acceleration in the z direction is 0

buttonA: Bool True when button A is pressed

buttonB: Bool True when button B is pressed

shake: Bool True when Hummingbird is being shaken