While most of my posts are about children and how I educate them through STEM-related projects, this post is mostly technical. It is behind the scenes of my work with the kids and how I make things work. So bear with me as I take you through this simple, yet technical explanation.
A few months passed since the beginning of school year and the children at Digitaf kindergarten are becoming more and more skilled at using ScratchJR. ScratchJR is where young children (ages 5–7) can program their own interactive stories and games. In the process, they learn to design projects, solve problems, and express themselves creatively on tablets.
I had just started teaching the children about electrical circuits. In addition, we had a lot of electric components that the children dismantled from old toys in the past year, and I had to find a way to use the LEDs, motors, and actuators we’ve been collecting. This is where I got the idea of combining Scratch with an easy-to-use programmable board.
S4A is an offline version of Scratch and is compatible with Arduino, one of the most popular open source programmable microcontrollers. There is a piece of software (firmware) you need to install into your Arduino board to be able to communicate with it from S4A. Once you’ve uploaded the firmware to the Arduino you can sync S4A with Arduino, use digital and analog input/output (I/O) pins, and make endless things.
While S4A is a great tool to learn the basic of physical computing, it requires fine motor skills, a lot of jumper wires and is not suitable for young children. I needed to find another solution.
Circuit playground is a new all-in-one board by Adafruit, aimed towards education and suitable for beginners. It features 10 NeoPixels RGB LEDs, a variety of built-in sensors, and alligator-clip pads, so you don’t have to solder or sew to make it work. It is a great way to practice programming on real hardware.
I modified the S4A firmware and made it compatible with the Circuit Playground. It was a challenging task to work around the structure of blocks, but I managed to use the data from most of the sensors. I got perfect readings from the Temperature, Sound and Light sensors, X/Y Accelerometers and Switch (using Analog 0-5 inputs) and both Buttons (using digital 2–3). In order to keep the data as is, I had to manipulate some of it to avoid casting of sent and received variables.
I assigned Pins 6 and 9 as Analog outputs, they can also control a servo motor with numbers between 1 and 180, Pin 10 is a Digital output and I managed to keep Pin 13 as the indicator LED. The 10 NeoPixels are controlled by RGB inputs and LED number selection (0-9) to commit the color change.
I can’t wait to start working with the children on it!
You can download the S4Playground_firmware.ino and the S4Playground.sb files from my GitHub folder, upload the firmware to your Circuit Playground and enjoy.
Please don’t hesitate to comment on my work, ask me anything and make modifications—I look forward to hearing from you!