In a previous post Micro:bit and Cube:bit 'says' Hello I introduced the start of me playing with the 4tronix Cube:bit. One of the things I want to try is get the cube to react to music, based around the accelerometers in a micro:bit picking up vibrations. Luckily, in an earlier post, I had done something similar for the Proto-Pic Micro:pixel (see Dancing Pixels for more details).

Essentially the idea is the vibrations from the music shake the micro:bit enough to give measurable changes in three axis, and these values are used to change the pixel's colour - in fact five pixels at a time.

The code shown below is all that was needed:

from microbit import *

import neopixel, random

np = neopixel.NeoPixel(pin0, 125)

while True:

for pxl in range (2,125, 5):

rd=int(abs(accelerometer.get_x())/20)

gr=int(abs(accelerometer.get_y())/20)

bl=int(abs(accelerometer.get_z())/20)

np[pxl] = (rd, gr, 0)

np[pxl-1] = (rd, gr, 0)

np[pxl+1] = (0, gr, rd)

np[pxl-2] = (rd, 0, 0)

np[pxl+2] = (0, gr,0)

np.show()

Here it is in action:

The music used in the video is

Please feel free to improve on this.

All opinions in this blog are the Author's and should not in any way be seen as reflecting the views of any organisation the Author has any association with. Twitter @scottturneruon

Essentially the idea is the vibrations from the music shake the micro:bit enough to give measurable changes in three axis, and these values are used to change the pixel's colour - in fact five pixels at a time.

The code shown below is all that was needed:

from microbit import *

import neopixel, random

np = neopixel.NeoPixel(pin0, 125)

while True:

for pxl in range (2,125, 5):

rd=int(abs(accelerometer.get_x())/20)

gr=int(abs(accelerometer.get_y())/20)

bl=int(abs(accelerometer.get_z())/20)

np[pxl] = (rd, gr, 0)

np[pxl-1] = (rd, gr, 0)

np[pxl+1] = (0, gr, rd)

np[pxl-2] = (rd, 0, 0)

np[pxl+2] = (0, gr,0)

np.show()

Here it is in action:

The music used in the video is

Please feel free to improve on this.

All opinions in this blog are the Author's and should not in any way be seen as reflecting the views of any organisation the Author has any association with. Twitter @scottturneruon