But first...
To use Circuit Playground Express and CRICKIT together, you'll first need to install the special 'seesaw' version of the CPX firmware. This guide will take you through how to install CRICKIT support onto your circuit playground express.
Adafruit recommends editing your code in the Mu Editor which is super simple to use and has features to help us code and see results. See this guide on installing Mu.
Once you have completed this step you're ready to move on.
1) Connect Circuit Playground Express to your computer with a micro USB cable
2) Copy & paste the code below into the Mu Editor
3) Press the Save button in Mu - your code should be saved to the CIRCUITPY disk drive (which appears when the Circuit Playground Express is plugged into your computer) as code.py. If you name the program something else, like panda.py, the Circuit Playground Express won't automatically run it, that's why it's named code.py.
# SPDX-FileCopyrightText: 2018 Limor Fried/ladyada for Adafruit Industries
#
# SPDX-License-Identifier: MIT
# Code for the Trash Panda tutorial with Adafruit Crickit and Circuit Playground Express
import time
import board
from digitalio import DigitalInOut, Direction
from adafruit_crickit import crickit
# built in LED
led = DigitalInOut(board.D13)
led.direction = Direction.OUTPUT
# TowerPro servos like 500/2500 pulsewidths, make the wings flap a full 180
crickit.servo_1.set_pulse_width_range(min_pulse=500, max_pulse=2500)
crickit.servo_2.set_pulse_width_range(min_pulse=500, max_pulse=2500)
print("Its TRASH PANDA TIME!")
while True:
print("tick")
led.value = True
crickit.servo_1.angle = 0
time.sleep(0.5)
crickit.servo_2.angle = 180
time.sleep(1.0)
print("tock")
led.value = False
crickit.servo_1.angle = 180
time.sleep(0.5)
crickit.servo_2.angle = 0
time.sleep(1.0)
# Code for the Trash Panda tutorial with Adafruit Crickit and Circuit Playground Express import time import board from digitalio import DigitalInOut, Direction from adafruit_crickit import crickit
We'll use the little red LED on the CPX to let us know visually what it's up to, so set that up as an output
# built in LED led = DigitalInOut(board.D13) led.direction = Direction.OUTPUT
We get from the crickit library access to the Servo #1 and Servo #2 ports, where we have our servos plugged in. The TowerPro servos we're using work best with a 500us to 2500us pulse width, so we let the servo objects know that.
# TowerPro servos like 500/2500 pulsewidths crickit.servo_1.set_pulse_width_range(min_pulse=500, max_pulse=2500) crickit.servo_2.set_pulse_width_range(min_pulse=500, max_pulse=2500)
Finally, in our loop we go through a cycle of setting the crickit.servo_1 and crickit.servo_2 angles from 0 to 180 with delays. Try changing those time.sleep() delays to speed up or slow down the movement of your panda! But note, if you try to go too fast, the servo won't have time to move all the way.
We blink the LED so you can see what part of the loop its running, look on your CPX to see the red LED next to the USB connector!
while True:
print("tick")
led.value = True
crickit.servo_1.angle = 0
time.sleep(0.5)
crickit.servo_2.angle = 180
time.sleep(1.0)
print("tock")
led.value = False
crickit.servo_1.angle = 180
time.sleep(0.5)
crickit.servo_2.angle = 0
time.sleep(1.0)
Save & Run Code!
Check that both servos are rotating back and forth.
You should also be able to open the REPL within Mu, via pressing the button labeled REPL, and see "tick tock" printing out on your screen.
Exploring further
If you enjoy CircuitPython and want to continue learning you can find lots more CircuitPython projects on the Adafruit Learn System.
Page last edited January 22, 2025
Text editor powered by tinymce.