The code is commented and hopefully it's pretty self explanatory. The basic overview is that we define six images, each one looking like the a face of a die. We then randomly display one of these images whenever we shake the micro:bit or press the A button. We added a couple of delays to a make the whole thing feel nicer - first of all we clear the display and leave a short delay after the shake/button to give the user a simple bit of feedback so that they know that they've activated the roll, the second delay is after the new roll has been displayed so that the user doesn't accidentally re-trigger another roll immediately. Finally, we added a couple of lines of code to clear the inputs. This might not seem important, but try taking it out and see what happens. Hint: notice what happens if you quickly double press the A button.
Here's the code:
""" Electronic Die Roll an electronic die every time the micro:bit is shaken or the A button is pressed Developed by http://giggletronics.blogspot.co.uk/ This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. https://creativecommons.org/licenses/by-nc-sa/4.0/ """ from microbit import * import random # Image definitions for the six sides of the die numbers = [ Image("00000:00000:00900:00000:00000"), Image("00009:00000:00000:00000:90000"), Image("00009:00000:00900:00000:90000"), Image("90009:00000:00000:00000:90009"), Image("90009:00000:00900:00000:90009"), Image("90009:00000:90009:00000:90009"), ] # Main loop while True: # Display a random number display.show(numbers[random.randint(0, 5)]) # Wait half a second then clear inputs so that we don't immediately retrigger sleep(500) accelerometer.was_gesture("shake") button_a.was_pressed() # Wait for a shake or a button press while not accelerometer.was_gesture("shake") and not button_a.was_pressed(): pass # Clear display and pause to show user that we've acknowledged their input display.clear() sleep(500)
And here is the code as a text file (with Python's ".py" extension) and a ".hex" file. You can load the .py file into the micro:bit code editor, and you can flash the .hex file directly onto your micro:bit by dragging and dropping like you would with any other .hex file
electronic_die.py
electronic_die.hex
No comments:
Post a Comment