adafruit_circuitplayground.circuit_playground_base

CircuitPython base class for Circuit Playground.

class adafruit_circuitplayground.circuit_playground_base.CircuitPlaygroundBase[source]

Circuit Playground base class.

property acceleration: adafruit_lis3dh.AccelerationTuple

Obtain data from the x, y and z axes.

Accelerometer

This example prints the values. Try moving the board to see how the printed values change.

To use with the Circuit Playground Express or Bluefruit:

from adafruit_circuitplayground import cp

while True:
    x, y, z = cp.acceleration
    print(x, y, z)
adjust_touch_threshold(adjustment: int) None[source]

Adjust the threshold needed to activate the capacitive touch pads. Higher numbers make the touch pads less sensitive.

Parameters:

adjustment (int) – The desired threshold increase

Capacitive touch pads

To use with the Circuit Playground Express or Bluefruit:

from adafruit_circuitplayground import cp

cp.adjust_touch_threshold(200)

while True:
    if cp.touch_A1:
        print('Touched pad A1')
property button_a: bool

True when Button A is pressed. False if not.

Button A

To use with the Circuit Playground Express or Bluefruit:

from adafruit_circuitplayground import cp

while True:
    if cp.button_a:
        print("Button A pressed!")
property button_b: bool

True when Button B is pressed. False if not.

Button B

To use with the Circuit Playground Express or Bluefruit:

from adafruit_circuitplayground import cp

while True:
    if cp.button_b:
        print("Button B pressed!")
configure_tap(tap: Literal[0, 1, 2], accel_range: Literal[0, 1, 2, 3] = adafruit_lis3dh.RANGE_8_G, threshold: int | None = None, time_limit: int | None = None, time_latency: int = 50, time_window: int = 255) None[source]

Granular configuration of tap parameters. Expose the power of the adafruit_lis3dh module.

Parameters:
  • tap (int) – 0 to disable tap detection, 1 to detect only single taps, and 2 to detect only double taps.

  • accel_range (int) – Takes the defined values from the adafruit_lis3dh module [ RANGE_2_G, RANGE_4_G, RANGE_8_G, RANGE_16_G ] (default sets the same value as the detect_taps setter)

  • threshold (int) – A threshold for the tap detection. The higher the value the less sensitive the detection. This changes based on the accelerometer range. Good values are 5-10 for 16G, 10-20 for 8G, 20-40 for 4G, and 40-80 for 2G. (default sets the same value as the detect_taps setter)

  • time_limit (int) – TIME_LIMIT register value (default sets the same value as the detect_taps setter)

  • time_latency (int) – TIME_LATENCY register value (default 50).

  • time_window (int) – TIME_WINDOW register value (default 255).

To use with the Circuit Playground Express or Bluefruit:

from adafruit_circuitplayground import cp
import adafruit_lis3dh

cp.configure_tap(1, accel_range=adafruit_lis3dh.RANGE_2_G, threshold=50)
while True:
  if cp.tapped:
    print("Single tap detected!")
property detect_taps: Literal[1, 2]

Configure what type of tap is detected by cp.tapped. Use 1 for single-tap detection and 2 for double-tap detection. This does nothing without cp.tapped.

Accelerometer

To use with the Circuit Playground Express or Bluefruit:

from adafruit_circuitplayground import cp

cp.detect_taps = 1
while True:
  if cp.tapped:
    print("Single tap detected!")
property light: int

The light level.

Light sensor

Try covering the sensor next to the eye to see it change.

To use with the Circuit Playground Express or Bluefruit:

from adafruit_circuitplayground import cp
import time

while True:
    print("Light:", cp.light)
    time.sleep(1)
property pixels: neopixel.NeoPixel

Sequence-like object representing the ten NeoPixels around the outside of the Circuit Playground. Each pixel is at a certain index in the sequence as labeled below. Colors can be RGB hex like 0x110000 for red where each two digits are a color (0xRRGGBB) or a tuple like (17, 0, 0) where (R, G, B). Set the global brightness using any number from 0 to 1 to represent a percentage, i.e. 0.3 sets global brightness to 30%.

See neopixel.NeoPixel for more info.

NeoPixel order diagram

Here is an example that sets the first pixel green and the ninth red.

To use with the Circuit Playground Express or Bluefruit:

from adafruit_circuitplayground import cp

cp.pixels.brightness = 0.3
cp.pixels[0] = 0x00FF00
cp.pixels[9] = (255, 0, 0)
play_file(file_name: str) None[source]

Play a .wav file using the onboard speaker.

Parameters:

file_name – The name of your .wav file in quotation marks including .wav

Onboard speaker

To use with the Circuit Playground Express or Bluefruit:

from adafruit_circuitplayground import cp

while True:
    if cp.button_a:
        cp.play_file("laugh.wav")
    elif cp.button_b:
        cp.play_file("rimshot.wav")
play_tone(frequency: int, duration: float, waveform: int = 0) None[source]

Produce a tone using the speaker. Try changing frequency to change the pitch of the tone.

Parameters:
  • frequency (int) – The frequency of the tone in Hz

  • duration (float) – The duration of the tone in seconds

  • waveform (int) – Type of waveform to be generated [SINE_WAVE, SQUARE_WAVE].

Default is SINE_WAVE.

Onboard speaker

To use with the Circuit Playground Express or Bluefruit:

from adafruit_circuitplayground import cp

cp.play_tone(440, 1)
property red_led: bool

The red led next to the USB plug marked D13.

D13 LED

To use with the Circuit Playground Express or Bluefruit:

from adafruit_circuitplayground import cp
import time

while True:
    cp.red_led = True
    time.sleep(0.5)
    cp.red_led = False
    time.sleep(0.5)
shake(shake_threshold: int = 30) bool[source]

Detect when device is shaken.

Parameters:

shake_threshold (int) – The threshold shake must exceed to return true (Default: 30)

Accelerometer

To use with the Circuit Playground Express or Bluefruit:

from adafruit_circuitplayground import cp

while True:
    if cp.shake():
        print("Shake detected!")

Decreasing shake_threshold increases shake sensitivity, i.e. the code will return a shake detected more easily with a lower shake_threshold. Increasing it causes the opposite. shake_threshold requires a minimum value of 10 - 10 is the value when the board is not moving, therefore anything less than 10 will erroneously report a constant shake detected.

from adafruit_circuitplayground import cp

while True:
    if cp.shake(shake_threshold=20):
        print("Shake detected more easily than before!")
start_tone(frequency: int, waveform: int = 0) None[source]

Produce a tone using the speaker. Try changing frequency to change the pitch of the tone.

Parameters:
  • frequency (int) – The frequency of the tone in Hz

  • waveform (int) – Type of waveform to be generated [SINE_WAVE, SQUARE_WAVE].

Default is SINE_WAVE.

Onboard speaker

To use with the Circuit Playground Express or Bluefruit:

from adafruit_circuitplayground import cp

while True:
    if cp.button_a:
        cp.start_tone(262)
    elif cp.button_b:
        cp.start_tone(294)
    else:
        cp.stop_tone()
stop_tone() None[source]

Use with start_tone to stop the tone produced.

Onboard speaker

To use with the Circuit Playground Express or Bluefruit:

from adafruit_circuitplayground import cp

while True:
    if cp.button_a:
        cp.start_tone(262)
    elif cp.button_b:
        cp.start_tone(294)
    else:
        cp.stop_tone()
property switch: bool

True when the switch is to the left next to the music notes. False when it is to the right towards the ear.

Slide switch

To use with the Circuit Playground Express or Bluefruit:

 from adafruit_circuitplayground import cp
import time

 while True:
     print("Slide switch:", cp.switch)
     time.sleep(0.1)
property tapped: bool

True once after a detecting a tap. Requires cp.detect_taps.

Accelerometer

Tap the Circuit Playground once for a single-tap, or quickly tap twice for a double-tap.

To use with Circuit Playground Express or Bluefruit:

from adafruit_circuitplayground import cp

cp.detect_taps = 1

while True:
    if cp.tapped:
        print("Single tap detected!")

To use single and double tap together, you must have a delay between them. It will not function properly without it. This example uses both by counting a specified number of each type of tap before moving on in the code.

from adafruit_circuitplayground import cp

# Set to check for single-taps.
cp.detect_taps = 1
tap_count = 0

# We're looking for 2 single-taps before moving on.
while tap_count < 2:
    if cp.tapped:
        tap_count += 1
print("Reached 2 single-taps!")

# Now switch to checking for double-taps
tap_count = 0
cp.detect_taps = 2

# We're looking for 2 double-taps before moving on.
while tap_count < 2:
    if cp.tapped:
       tap_count += 1
print("Reached 2 double-taps!")
print("Done.")
property temperature: float

The temperature in Celsius.

Temperature sensor

Converting this to Fahrenheit is easy!

To use with the Circuit Playground Express or Bluefruit:

from adafruit_circuitplayground import cp
import time

while True:
    temperature_c = cp.temperature
    temperature_f = temperature_c * 1.8 + 32
    print("Temperature celsius:", temperature_c)
    print("Temperature fahrenheit:", temperature_f)
    time.sleep(1)
property touch_A1: bool

Detect touch on capacitive touch pad A1.

Capacitive touch pad A1

To use with the Circuit Playground Express or Bluefruit:

from adafruit_circuitplayground import cp

while True:
    if cp.touch_A1:
        print('Touched pad A1')
property touch_A2: bool

Detect touch on capacitive touch pad A2.

Capacitive touch pad A2

To use with the Circuit Playground Express or Bluefruit:

from adafruit_circuitplayground import cp

while True:
    if cp.touch_A2:
        print('Touched pad A2')
property touch_A3: bool

Detect touch on capacitive touch pad A3.

Capacitive touch pad A3

To use with the Circuit Playground Express or Bluefruit:

from adafruit_circuitplayground import cp

while True:
    if cp.touch_A3:
        print('Touched pad A3')
property touch_A4: bool

Detect touch on capacitive touch pad A4.

Capacitive touch pad A4

To use with the Circuit Playground Express or Bluefruit:

from adafruit_circuitplayground import cp

while True:
    if cp.touch_A4:
        print('Touched pad A4')
property touch_A5: bool

Detect touch on capacitive touch pad A5.

Capacitive touch pad A5

To use with the Circuit Playground Express or Bluefruit:

from adafruit_circuitplayground import cp

while True:
    if cp.touch_A5:
        print('Touched pad A5')
property touch_A6: bool

Detect touch on capacitive touch pad A6.

Capacitive touch pad A6

To use with the Circuit Playground Express or Bluefruit:

from adafruit_circuitplayground import cp

while True:
    if cp.touch_A6:
        print('Touched pad A6'
property touch_TX: bool

Detect touch on capacitive touch pad TX (also known as A7 on the Circuit Playground Express) Note: can be called as touch_A7 on Circuit Playground Express.

Capacitive touch pad TX

To use with the Circuit Playground Express or Bluefruit:

from adafruit_circuitplayground import cp

while True:
    if cp.touch_A7:
        print('Touched pad A7')
property touch_pins: List[Pin]

A list of all the pins that are set up as touchpad inputs

property touched: List[Pin]

A list of all the pins that are currently registering a touch

class adafruit_circuitplayground.circuit_playground_base.Photocell(pin: Pin)[source]

Simple driver for analog photocell on the Circuit Playground Express and Bluefruit.

property light: int

Light level.

adafruit_circuitplayground.bluefruit

CircuitPython helper for Circuit Playground Bluefruit.

  • Author(s): Kattni Rembor

Implementation Notes

Hardware:

class adafruit_circuitplayground.bluefruit.Bluefruit[source]

Represents a single CircuitPlayground Bluefruit.

loud_sound(sound_threshold: int = 200) bool[source]

Utilise a loud sound as an input.

Parameters:

sound_threshold (int) – Threshold sound level must exceed to return true (Default: 200)

Microphone (sound sensor)

This example turns the LEDs red each time you make a loud sound. Try clapping or blowing onto the microphone to trigger it.

from adafruit_circuitplayground.bluefruit import cpb

while True:
    if cpb.loud_sound():
        cpb.pixels.fill((50, 0, 0))
    else:
        cpb.pixels.fill(0)

You may find that the code is not responding how you would like. If this is the case, you can change the loud sound threshold to make it more or less responsive. Setting it to a higher number means it will take a louder sound to trigger. Setting it to a lower number will take a quieter sound to trigger. The following example shows the threshold being set to a higher number than the default.

from adafruit_circuitplayground.bluefruit import cpb

while True:
    if cpb.loud_sound(sound_threshold=300):
        cpb.pixels.fill((50, 0, 0))
    else:
        cpb.pixels.fill(0)
play_mp3(file_name: str) None[source]

Play a .mp3 file using the onboard speaker.

Parameters:

file_name – The name of your .mp3 file in quotation marks including .mp3

Onboard speaker

To use with the Circuit Playground Bluefruit:

from adafruit_circuitplayground import cp

while True:
    if cp.button_a:
        cp.play_mp3("laugh.mp3")
    elif cp.button_b:
        cp.play_mp3("rimshot.mp3")
property sound_level: float

Obtain the sound level from the microphone (sound sensor).

Microphone (sound sensor)

This example prints the sound levels. Try clapping or blowing on the microphone to see the levels change.

from adafruit_circuitplayground.bluefruit import cpb

while True:
    print(cpb.sound_level)
adafruit_circuitplayground.bluefruit.cpb = <adafruit_circuitplayground.bluefruit.Bluefruit object>

Object that is automatically created on import.

To use, simply import it from the module:

from adafruit_circuitplayground.bluefruit import cpb

adafruit_circuitplayground.express

CircuitPython helper for Circuit Playground Express.

Hardware:

class adafruit_circuitplayground.express.Express[source]

Represents a single CircuitPlayground Express. Do not use more than one at a time.

property loud_sound

This feature is not supported on Circuit Playground Express.

property play_mp3

This feature is not supported on Circuit Playground Express.

property sound_level

This feature is not supported on Circuit Playground Express.

property touch_A7: bool

Detect touch on capacitive touch pad TX (also known as A7 on the Circuit Playground Express) Note: can be called as touch_A7 on Circuit Playground Express.

Capacitive touch pad TX

To use with the Circuit Playground Express or Bluefruit:

from adafruit_circuitplayground import cp

while True:
    if cp.touch_A7:
        print('Touched pad A7')
adafruit_circuitplayground.express.cpx = <adafruit_circuitplayground.express.Express object>

Object that is automatically created on import.

To use, simply import it from the module:

from adafruit_circuitplayground.express import cpx