This month’s issue of The MagPi Magazine includes another of my tutorials for those looking to get started with the MicroPython platform on the Raspberry Pi Pico microcontroller: a Pico-powered burglar alarm driven by one or more passive infrared sensors.
Originally written as part of Get Started with MicroPython on Raspberry Pi Pico: The Official Guide, my guide to physical computing on Raspberry Pi’s first-ever microcontroller development board, the burglar alarm tutorial builds up step-by-step from introducing a single passive infrared motion sensor to interfacing with multiple sensors, printing status reports over the serial console, and triggering a piezoelectric buzzer in place of a real alarm’s rather louder horn.
As with other tutorials written for the book, full source code – in MicroPython – is provided, along with wiring references designed to make it as easy as possible to add the components to a Raspberry Pi Pico installed on a solderless breadboard. There’s scope for further extension, too: adding break-beam sensors, glass-break sensors, or a code pad for disabling and enabling the alarm on-demand.
As with all projects in the book, the reaction game is designed to build up gradually. The reader is first taken through wiring up a simple circuit with a single LED and a single button, using one to trigger the other. Gradually, the complexity is increased: using the LED to trigger a countdown stopped only when the button is pushed, giving the user a look at how quickly they can react.
The project’s culmination comes with the integration of multiplayer: two buttons are used, and whichever player hits their button first is declared the winner. It’s a simple game, admittedly, but a surprisingly competitive one – and one which introduces a range of core concepts for input handling, timing, and conditional statements.
All the projects in the book, the traffic light simulator being no exception, work step-by-step in building the simplest possible incarnation of each then adding increasing complexity – and in doing so introducing new concepts. In the case of the traffic light simulator, it starts off as a simple set of three LEDs which are under timed control.
As the project progresses, the reader adds a button to act as a trigger for a pedestrian crossing – which adds the concept of threading, taking advantage of the second CPU core on the Raspberry Pi Pico’s RP2040 microcontroller – before finishing the project with a buzzer providing audible feedback for when it’s safe to cross.
This month’s The MagPi Magazine carries my six-page guide to getting started with physical computing projects using the newly-launched Raspberry Pi Pico, the first microcontroller in the Raspberry Pi family.
Taken from my book, Get Started with MicroPython on Raspberry Pi Pico: The Official Guide, the tutorial walks the reader through programming the Raspberry Pi Pico using MicroPython – starting with the physical computing equivalent of “hello, world,” lighting up an LED. No additional hardware is needed for this part: the Raspberry Pi Pico includes a surface-mount user-addressable LED at the top of the board.
The reader is then shown how solderless breadboards work, introduced to importing MicroPython libraries and handling delays, how external LEDs require resistors, how to read a button input, and finally how to put it al together into a simple circuit which can toggle the LED based on the user’s button presses.
Today’s launch of the Raspberry Pi Pico, an affordable breadboard-friendly development board accessible enough for education and powerful enough for industrial use, comes alongside the launch of my latest book: Get Started with MicroPython on Raspberry Pi Pico: The Official Raspberry Pi Pico Guide.
Building on my earlier title The Official Raspberry Pi Beginner’s Guide, Get Started with MicroPython on Raspberry Pi Pico offers newcomers to both the Raspberry Pi Pico and the MicroPython programming language an easy way to get started. Building up from an introduction to the board, electronic circuit concepts, MicroPython in general, and MicroPython on the Raspberry Pi Pico specifically, the book walks through a series of physical computing projects – some requiring only the Raspberry Pi Pico, others using low-cost and readily-available additional hardware components.
Each successive project introduces a new concept, from simply lighting an LED and reading a button input to using hardware interrupts, running code on the second CPU core, and making use of the on-board non-volatile flash memory to store logged data. By the end of the book, the reader should know how to use all the most important features of the Raspberry Pi Pico in MicroPython – even if they started knowing nothing about electronics or programming at all.
As always, thanks must be given to those who helped during the production of the book. Particular thanks must go to Ben Everard, who acted as co-editor and also contributed a chapter on using I2C and an appendix on using the programmable input/output (PIO) functionality; Sam Adler, too, returned to provide eye-catching illustrations without which the book would be a considerably duller read.
Also to be thanked are those who provided technical assistance: Alasdair Allan, Aivar Annamaa, Damien George, Gordon Hollingworth, Graham Sanderson, and Andrew Scheller, along with all those who proofed the book ahead of publication. Not forgetting, of course, others at Raspberry Pi Press who work to bring these books to life and to shelves across the world.
I’ve been doing a lot of work with MicroPython of late, so it made sense to cover the software for Hobby Tech. Developed by Damien George as part of a crowdfunding campaign launched in 2013, MicroPython takes the popular Python programming language and ports it to microcontrollers – both dedicated PyBoard ranges and third-party hardware. It’s also the inspiration for CircuitPython, a port developed by Adafruit and designed with educational use in mind.
The RasPad 3, meanwhile, is a device I wanted to love. Built in an intriguing wedge shape, the kit takes a Raspberry Pi 4 single-board computer and turns it into a touch-screen tablet. The third in the series, and the first supporting the Raspberry Pi 4, the RasPad 3 is a great idea let down by poor execution – everything from a low-quality display and buggy software to dismal battery life and an incredibly noisy fan.
Finally, The Games That Weren’t is the latest coffee table book from Bitmap Books, based on the website of the same name by Frank Gasking. Built around the same core concept as Phil Atkinson’s Delete, The Games That Weren’t looks at video games – and a small number of related hardware projects, like the Commodore 65 – that never made it to market. At 643 pages it’s a hefty tome, but sadly let down by some high-profile absences – the ‘Van Buren’ build of Fallout 3 is present, but Fallout Online is nowhere to be found as just one example – and a woolly approach to research and citation which leans heavily on weasel-words like “it’s thought,” “some sources say,” and “it’s believed.”
Readers of my regular Hobby Tech column this month will find a BBC micro:bit-driven tutorial alongside two reviews covering the remarkable Raspberry Pi Zero W microcomputer and the fascinating Delete by Paul Atkinson.
The idea for the tutorial came about while working on a chapter of my upcoming Micro:bit User Guide, and seemed like a perfect fit for the readers of Custom PC Magazine: turning the low-cost yet extremely flexible micro:bit into an addressable USB-connected 5×5 LED matrix and having it display current CPU load in a constantly-updating bar graph. Naturally, the same technique could be used to graph almost anything.
The secret lies in MicroPython’s REPL, an interactive interpreter which can run on the micro:bit and accept commands via the USB serial port. By switching the micro:bit into REPL mode, it can be slaved to another system over USB. The result: the entire program code, written in Python using the serial, time, and psutil libraries, exists purely on the host machine. A quick bit of Blu-tack later, and my monitor was wearing a CPU monitor which worked even when the display was off.
The Pi Zero W, meanwhile, was a device to which I had been looking forward for quite some time. An upgraded version of the original £5 Raspberry Pi Zero microcomputer, the Pi Zero W differs in only one respect: it has a built-in radio module, the same BCM43438 as found on the far larger and more expensive Raspberry Pi 3.
While the addition of the radio module, which offers Bluetooth, Bluetooth Low Energy, and 2.4GHz Wi-FI connectivity, almost doubles the price of the Pi Zero W to £9.60, it’s money well spent. In almost every Pi Zero project I have built, I’ve ended up using a USB OTG adaptor and low-cost USB Wi-Fi dongle to add network connectivity, and having it on-board – even at a slightly higher cost compared to a USB-connected solution – makes life considerably easier.
Finally, Delete. Billed as “a design history of computer vapourware,” Paul Atkinson’s coffee table book is packed with high-quality photographs – and, for the rarer machines, the occasional rescaled JPEG exhibiting unfortunate compression artefacts – covering machines from an upgraded Sinclair QL to a bright yellow IBM that never left the drawing board. Each comes with pages on its history, with interview subjects detailing features and failures alike, and while not all machines were strictly vapourware few are likely to have a place in the average vintage computing collection. In short: if you like old computers you’ll like Delete, which is available now from Amazon and other bookstores under ISBN 978-0857853479.
As always, you can read the whole column and a whole lot more by picking up Custom PC Issue 166 from your nearest supermarket, newsagent, or electronically via Zinio and similar services.