I am glad to be part of the wonderful team around Calliope mini, the german educational tinkering board that was released in a first version last autumn and will be distributed to first grade school kids soon.
Calliope mini is – comparable to the famous BBC micro:bit – a micro-controller (32bit Arm Cortex M0 Nordic NRF51822) that comes with a couple of built in sensors and extensions (Bosch BMX055 mag/acc/gyro, temp and light*, microphone, touch-sensitive, analog and digital pins, speaker, 5×5 LED matrice, RGB LED and a t-bridge to drive a motor + 2 grove connectors and Bluetooth or Nordics proprietary mesh-rf protocol). This can be called a pretty well equipped platform – the reason for this is obviously to build something where teachers and kids can start playing around and coding without having to deal with extensions, cables etc.
This has a reason to exist as an educational tool – but recently it striked me that the board could become a relevant hacking tool for makers as well.
Just within the last couple of days i stumbled upon three occasions where i needed a quick something and the Calliope turned out to be the fastest solution. First i was playing around with amazons alexa implementation for the Raspberry-Pi, an amazing playground to start building voice-controlled applications. As i am trying to combine it with a micro-controller that drives some LEDs on a puppets face, i had to find a way to tell the micro-controller when alexa was speaking on the Raspberry. And just by accident** i figured out that sound output is linked not only to the audio-connector, but also to PIN18 of the PI (the only PWM pin). So my question was/is (will try tomorrow): Is this audio PWM-Output significant enough to measure “is speaking” on the microcontroller? Usually i would have grabbed an Arduino from somewhere on my desk, find a cable, plug it into an Analog-Pin, open IDE, configure a small program to set the pin, read it, configure serial, write to serial, open serial console. On the Calliope mini it is so much easier, the analog PIN is easy to access with a crocodile clip or banana cable and with the browser-based blockly-IDE reading the analog PIN and outputting the value on the built in “screen” is just three little drag&drop operations. In a future version the board will even carry 25 “default routines” on a flash-chip, and measuring analog will be one of these routines (because in school you can check whether a plant needs water for instance). From this point on the Calliope would have the potential to become a kind of swiss knife for makers (these default routines will be accessible without connecting the board to a computer at all).
The other occasion from today was a completely different scenario: we were discussing possibilities to measure presence of a car in a parking lot. This is actually possible without having to hazzle with infrared-sensing or ultrasonic – you can just measure the magnetic field (of the earth) and detect when the presence of a car changes it significantly. The maker-heart starts to beat and i immediately wanted to go out and check whether this can really be done. Again with an Arduino (or Raspberry in this case) i would grab the board, find an appropriate sensor (magnetometer or any 9DOF or so), check pinout and connect it to the board, find the according library, install it, check demo code. Read a little bit about raw-values from the sensor and how to translate them into meaningful values. Configure serial, write to serial, check console. Attach a battery, because i want to put it outside underneath my car. But wait – i wouldn’t be able to see the console then. Attach an I2C or SPI TFT Monitor or LCD-Display, install library, check demo code etc.
With Calliope mini i have the sensor installed already. There are easy to acces standard function-blocks that give me access to the values from the magnetometer. It’s easy to display them on the built in 5×5 matrice. But even better: with only a few more clicks i can enable the radio-module and transfer the measurements to a second Calliope mini that displays them (check out this amazing remote controlled car in our image video). I could even try the light-sensor instead. Or sound. I could even shout at a parkin car “DONT YOU DARE…”.
The third one is measuring whether an elevator is working properly or not. Again the Calliope has built in functions for detection of movement or shake-events. It’s very easy to create a counter that counts every time the elevator is moving (it’s actually one of the things we do with 8yr old kids after 1-2hours of getting in touch with the platform – as a step-counter…).
Of course my view is totally biased and yes there are limitations of this approach as well (one of the biggest hurdles at the moment is adding other sensors). But somehow i believe that there will be more cases where i use it as my personal swiss-maker-knife in the feature…
However, if you feel like needing one, our crowdfunding is still active (but only for three more days). In a couple of weeks the board will also be available via normal distributors – and of course it will be released under an open hardware licence, soon.
—– UPDATE —-
Measuring Pin18 was not succesful, but measuring the audio-signal directly on the audio-output connector works!
—– UPDATE 2 —–
Car sensing worked quite well:
*very cool design – the light is being measured through inverse leds of the 5×5 matrice
** actually i was trying to drive my WS2812 LEDs from the PI as well (yes, this is possible!). As you need a PWM-Pin to do so i noticed the interference because i got strange sounds when i activated the RGB-signals on PIN18…