General Purpose Input and Output (GPIO) is how all the devices connect to the external world.
This connection is achieved in a physical sense via “pins” that ultimately connect to the microcontroller running MicroPython. By controlling or reading the voltage from the pins, MicroPython is able to both sense and control the external world through the peripherals connected to them. Each pin is given a name so we can reference it and, depending on how it is configured, is capable of processing and emitting different sorts of signals.
This chapter explains how pins work and describes three common protocols that use the pins to communicate with the outside world: UART, SPI, and I2C. Such protocols make interacting with external peripherals both easy and standardised.
“Pins” is a generic term for things that, historically, looked like pins but these days, often do not. For the purposes of this book, a pin is a conductive area connected to the microcontroller through which communication may take place with external peripherals. Figure 9-1 shows a close-up picture of the “pins” on the micro:bit:
They don’t look like pins at all, and some of them are big enough for you to attach an alligator clip. The pins form the bottom edge of the board, and you may be wondering how you are supposed to connect things to all the smaller pins. The answer ...