Let’s say that, hypothetically, you wanted to use your computer to blink an LED or read the state of a button. Could you? Almost certainly not — at least not without additional hardware. Most modern computers don’t provide any interface for direct interaction with low-level components. That’s why Nick Bild developed a device called USBgpio that lets users easily add Python-controlled GPIO pins to any computer.
USBgpio connects to any modern PC via USB. It has a row of exposed GPIO pins and users can control their states programmatically using Python. If you noticed that this sounds a lot like connecting an Arduino board to a computer, then you’re most of the way to understanding the concept. That’s because the enclosure does, indeed, contain a Nano 33 IoT. The header pins on the top of the USBgpio device connect directly to their counterparts on the Arduino.
This provides utility (beyond the Arduino alone) because of the sketch that accepts serial commands sent by Python code. By using the USBgpio library, a user can set the state of any of the GPIO pins with a simple command. Of course, it is also possible to read the value of a pin.
Instead of flashing a new sketch to the Arduino every time they want to do something, a user can run a Python script directly on their computer. Or they can send commands in real-time using a Python interpreter. This provides an interesting interaction style that may appeal more to some users than traditional workflows.