Book Image

BBC Micro:bit in Practice

By : Ashwin Pajankar, Abhishek Sharma, Sandeep Saini
Book Image

BBC Micro:bit in Practice

By: Ashwin Pajankar, Abhishek Sharma, Sandeep Saini

Overview of this book

This book is a one-stop guide for learning BBC Micro:bit with MicroPython, exploring many hardware components and programming techniques to provide detailed insights into developing practical applications with the Micro:bit. It will also show you how hardware components can be manipulated using a combination of Micro:bit and MicroPython for developing practical projects. BBC Micro:bit in Practice will help you gain a holistic understanding of the BBC Micro:bit platform and MicroPython programming, guiding you through mini projects aimed at developing practical knowledge of circuit design and writing programs. You’ll learn how to write programs for working with built-in LEDs and buttons, interfacing external LEDs, buttons, motors, buzzers, and much more. You’ll also work with built-in radio, speakers, accelerometer, and a compass. You’ll dive into concepts related to the Micro:bit filesystem, interfacing external displays, and working with libraries in detail before exploring sewable circuits and wearable technology. After reading this Micro:bit book, you’ll understand how to apply principles in electronics and MicroPython to create interesting real-life projects from scratch.
Table of Contents (22 chapters)
1
Part 1: Getting Started with the BBC Micro:bit
6
Part 2: Programming Hardware with MicroPython
10
Part 3: Filesystems and Programming Analog I/O
13
Part 4: Advanced Hardware Interfacing and Applications

Adding interactivity to the projects

We can use the built-in push buttons A and B of the Micro:bit to control the speed of the rainbow. We have to use the if statement in the while loop. We need to have an extra variable for the speed as follows:

num_pixels = 12
ring = NeoPixel(pin0, num_pixels)
maxdelay = 400
mindelay = 10
delay = int(maxdelay+mindelay)/2

And we have to make the following modification to the loop:

try:
    while True:
        rainbow(ring, num_pixels, offset = n)
        ring.show()
        n = n + 1
        if (button_a.is_pressed() and (delay < maxdelay)):
            delay = delay + 10
        elif (button_b.is_pressed() and (delay > mindelay)):
    &...