Last night I attended the usual CamPUG monthly meeting and the main topic was about micro:bit and micropython.
micro:bit is a board that BBC will distribute to every year 7 student in the UK (early 2016, roughly 1 million units) and it will be shipped with micropython on it (more info). Hardware specs can be found here: it has a Cortex-M0, compass, accelerometer, 5×5 leds, bluetooth, uart, i2c, two buttons and other stuff you can use.
So, what did we do? Once plugged the micro:bit to the USB, we can run python code through microrepl, a script that lets you run commands directly onto a connected micro:bit device. Alternatively you can use the browser based micro:bit editor, and start programming directly in your browser. Very neat!
My group (Gareth and myself), after exploring, experimenting, and testing the APIs, decided to do something with the 5×5 leds available. This is the code we have written literllay in few minutes:
import microbit # It returns the brightness (0-9) depending on the position of the led def brightness(x, y, t): return (x + y + t) % 10 # Iterate the whole led matrix and set the pixel with the right brightness def get_image(t): for x in range(0, 5): for y in range(0, 5): microbit.display.set_pixel(x,y, brightness(x,y,t)) t = 0 # time a = 1 # direction flag # Start looping while True: get_image(t) # Set all the leds t += a # Incrementing t microbit.sleep(100) # Let's wait some time if microbit.button_a.is_pressed(): #Check if the user presses the button a *= -1 # Revert the direction
This is what it does (in real time the effect is much better):
And this is the slow motion:
When the user presses the button, it changes direction.
It has been very good fun and I’m sure kids will love it: it is straightforward to use it, pretty intuitive and microrepl is very easy to use (it has autocompletion)