Skip to main content

Control A Circuit Playground Express From Your PC With An Easy To Use Python 3 API

View the Installation and Usage Guide Here.

It supports the following CPX devices:

  • The Buttons and Slide Switch.
  • The D13 Board LED.
  • The 10 onboard neo-pixels.
  • Tone generation using the onboard speaker.
  • The accelerometer, including tap sensing.
  • The temperature sensor.
  • The light sensor.
  • The sound sensor.
  • Touchpad sensors.

An example to animate the neopixels and to start and stop the animation by simply tapping the Playground Express:

import random
import time

from pymata_cpx.pymata_cpx import PyMataCpx


class TheTapper():
    """
    Illuminate the neopixels in a counter-clockwise fashion with randomly generated colors.
    When you tap the playground express, the neopixels will stop changing and the
    program pauses. Tap again and the neopixels will start again.
    """
    def __init__(self):
        # create an instance of the API
        self.p = PyMataCpx()

        print('Tap the playground express to stop the neopixels from moving.')
        print('Tap again, to start them up')
        print('The tap state will be printed to the console')

        # Start monitoring for tap events and
        # send event notifications to the "tapped" callback method.
        self.p.cpx_tap_start(self.tapped)

        # flag to start and stop the light show
        self.go = True

        while True:
            try:
                # run the light show
                for neopixel in range(0, 10):
                    # check the go flag
                    if self.go:
                        self.p.cpx_pixels_clear()
                        self.p.cpx_pixels_show()
                        r = random.randint(0, 254)
                        g = random.randint(0, 254)
                        b = random.randint(0, 254)
                        self.p.cpx_pixel_set(neopixel, r, g, b)
                        self.p.cpx_pixels_show()
                        time.sleep(.2)
                    else:
                        self.p.cpx_pixels_clear()
                        self.p.cpx_pixels_show()
                        time.sleep(.001)
            except KeyboardInterrupt:
                # If you press control-C, cleanly exit
                self.p.cpx_pixels_clear()
                self.p.cpx_pixels_show()
                self.p.cpx_close_and_exit()

    def tapped(self, data):
        """
        :param data: data[0] = data type (analog = 2, digital =32)
                     data[1] = pin for device 27
                     data[2] = tap data - list of booleans.
                               First value for 1 tap
                               Second value for 2 taps
        """
        # for any taps, toggle the go flag
        # print out the current go state
        if data[2] != [False, False]:
            self.go = not self.go
            print(self.go)

# start the program
TheTapper()

Release files for pymata-cpx 1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pymata-cpx 1.0
File Size Uploaded
pymata-cpx-1.0.tar.gz 20.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pymata-cpx 1.0
File Interpreter ABI Platform
pymata_cpx-1.0-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 42.5 kB

Release files / pymata-cpx-1.0.tar.gz

Download URL pymata-cpx-1.0.tar.gz
Size 20.5 kB
Tags Source
SHA-256 checksum
How to use checksums
ef7b96eeebfe3717e7f6858c9438268181c308aeba3712306437a66e3217751f
BLAKE2b-256 checksum
How to use checksums
4fbe094b8c990980f48d7d3f2b923b6b0ee43243d01f4204514d6c404ebdf0c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.1.0 requests-toolbelt/0.9.1 tqdm/4.41.0 CPython/3.7.5

Release files / pymata_cpx-1.0-py2.py3-none-any.whl

Download URL pymata_cpx-1.0-py2.py3-none-any.whl
Size 22.0 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
01577d8f0ba675c2cbd17a8ca55a8d385a6a8eafa8a141cc4d96d99f1853e41e
BLAKE2b-256 checksum
How to use checksums
07be127fa8050df883de19bcc2193cedcc698ae82213c6234422dd0154eec20f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.1.0 requests-toolbelt/0.9.1 tqdm/4.41.0 CPython/3.7.5

Release history Release notifications | RSS feed

This release

1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page