micro:bit Powered Xylophone

A recent fun project over at Brown Dog Gadgets is this automated xylophone controlled with a micro:bit… Check out the build guide.

Full instructions including code and some helpful tips on choosing a (toy) xylophone that will work for this project. (There’s maths and angles involved.) We’re basically controlling two servos to move a mallet left and right and then down (and back up) to strike a bar.

You can control it by playing it like a keyboard, just press the buttons, or you can program and store songs for automated playback later.

The (toy) xylophone isn’t really tuned very well, so we may be working on a larger project that uses a larger instrument. Also of note is the fact that the micro:bit out of the box can only handle three servos (without extra hardware) so we might switch to another board for the next iteration.

As usual, and since we’re using LEGO compatible servos, there are LEGO bits involved, which made building things quick and easy. (And don’t worry if you don’t have the needed LEGO parts on-hand, we’ve listed the parts we used and linked to where you can get them for cheap.)

Here are a few slightly out of tune songs…


Capacitive Touch on the micro:bit

Note: This post describes a hack to use capacitive touch on the micro:bit V1.5 but shortly after doing this, the micro:bit V2 came out, featuring real capacitive touch.

Out of the box the micro:bit has three touch pins which relies on a person touching not only the pin they want to trigger, but also to touch ground. Typically a person holds or touches something connected to ground, and then with their other hand touches one of the touch pins. This is how the Makey Makey works as well. It’s like capacitive touch (or capacitive sensing) but it’s not exactly. [It’s resistive touch.]

With a bit of experimentation we found that you can do capacitive touch on the micro:bit (sort of) so we wrote up a guide how to do it for the Brown Dog Gadgets Project Database called Capacitive Touch.

Two things to note about this one, first we are using the pins for analog input and while there are three more pins that do analog input on the micro:bit we found their performance to be a bit more unreliable than pins 0, 1, and 2. Of course since this is really just a hack, don’t let that stop you from using them. Second, there is no calibration done on the pins. For one of our Invention Board projects using capacitive touch we do a calibration at start so the pins know what is touched and what is not touched, as it can often change depending on the environment. The code we present does no calibration, but we’ll probably add that in the future.

As usual we’re using Maker Tape along with a LEGO baseplate and a Bit Board. (If you want a Bit Board to go with your micro:bit, we’ve got a Kickstarter campaign running now.) Capacitive touch is a lot of fun, and I’ve used it for many projects over the years. And yes, you can certainly incorporate other objects or surfaces besides Maker Tape.


Simple Level with Crazy Circuits

Here’s a super-easy micro:bit project that just uses a few Crazy Circuits LEDs, some Maker Tape, and a LEGO baseplate. It’s a Simple Level. Since the micro:bit has a built-in accelerometer we can easily check which way it is tilting just like an old fashioned level with liquid and an air bubble.

This project just uses five LEDs, but we outline how you could easily expand it to many more (and yes, we’ll probably build a larger one soon, as well as a multi-dimensional level.)

As always, there’s a diagram and more info as well as a look at the code. For each of these projects, if I can do a somewhat simple explanation of the code I think it’s helpful. You can certainly use the code and never dig into it, but I hope that people do. Kids (and adults) should learn to code if only for the fact that it can help understand how the world works, at least that’s how I view it.

Oh, I should mention that the Bit Board is now available via Kickstarter! And if crowdfunding isn’t your thing you can also get it direct from the Brown Dog Gadgets Shop.


Crank Counter with micro:bit

I’ve got a new guide up in Brown Dog Gadgets Project Database. This time we’re using the micro:bit along with a 7 Segment Display and a LEGO-based crank circuit. I call it the Crank Counter.

We create these (free) resources in the hopes that viewers like you support our efforts by purchasing components from Brown Dog Gadgets because hey, that keeps the free resources flowing. Thank you for your support!

Typically the build guides are not a step-by-step LEGO building guide, but they don’t need to be. LEGO should be open-ended building, and we want to encourage that. Even the circuit layout with Maker Tape doesn’t need to be precise. The components must be connected properly, but where you place them, length of tape used, etc. is less important. Building a functioning circuit is the goal. (Things that need to be more “exact” like the crank connections, are called out.)

I typically try to explain the code a bit and cover a few other basic concepts that relate to the project. Some are more advanced than others, but we try to simplify and not overwhelm.

Oh, you might be wondering if we can made a version of this that counts down as well as up depending on the direction you turn the crank, and yes, that’s possible, and it’s in the works. :)


Blink Without Pause on the micro:bit

If you’ve ever used an Arduino there’s a good chance you started with the Blink sketch, which is a great introduction to programming a physical computing device where you can see the outcome in the form a blinking LED. As you learn more and things get complex, you discover that using the delay statement in your code is not ideal as it prevents the code from continually running, so you can’t properly capture input to your microcontroller. There’s more over at the Blink Without Delay tutorial on this topic.

I’ve been doing a lot with the micro:bit lately, and my quick searches gave no equivalent for Blink Without Delay so I created Blink Without Pause.

The tutorial starts with micro:bit code for Blink With Pause (which is really just Blink) and then Blink Without Pause so you can compare the two.

For a real-world example there are two more, Blink With Pause With Button and then Blink Without Pause With Button which should clearly illustrate the value of not using pause if your code needs to do other things.

Oh, if you’re wondering where the micro:bit is in the illustrations above… it’s not there! The diagrams show the Bit Board that Brown Dog Gadgets will be releasing this fall as part of a Kickstarter campaign. Follow on Twitter, Instagram, or Facebook to see some of the other projects we’ve been doing and find out when the campaign launches.