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 through this simple yet technical explanation.
A few months have passed since the beginning of the 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 have a lot of electrical 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 (Scratch for Arduino) is an offline version of Scratch and is compatible with Arduino, one of the most popular open source programmable microcontroller. 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 use digital and analog input/output (I/O) pins and make endless things.
While S4A is a great tool to learn the basics of physical computing, it requires fine motor skills, the use 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 NeoPixel RGB LEDs, a variety of built-in sensors and alligator-clip pads around it so you don't have to solder or sew to make it work. It is a great way to practice programing 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 in the range of 1 to 180, pin 10 is a Digital output and I managed to keep pin 13 as the indicator LED. The 10 NeoPixels are controlled by R-G-B inputs and LED number selection (0-9) to commit the color change.
You can download the S4Playground_firmware.ino and the S4Playground.sb FILES from my github folder, upload and enjoy. Please don't hesitate to comment on my work ask me anything or suggest modifications.
I can't wait to start working with the children on it and would love it if YOU share things you made with it.