[Feature] Build HAT Powered Up port support
The Raspberry Pi Build HAT has 4 Powered Up I/O ports for connecting motors and sensors.
We need to write a platform-specific driver to be able to use these.
There will be some challenges with this that we haven't had to deal with before. The motor drivers use I2C to control them rather than PWM.
This will likely require a PBIO OS process that monitors requests for change in output and queues I2C messages so that we can have non-blocking motor function calls to update the motor voltage. We will also need to avoid the Pico SDK I2C functions that are blocking since they won't work with our cooperative multitasking design.
This will add some delay to when motor outputs are actually updated, so we may need to update our motor control tuning to be able to compensate for this.
It also isn't clear to me if the ports have sufficient GPIOs on pins 5/6 for complete automatic detection of devices. It may be that it was designed mainly to work with UART devices. We will need to study https://github.com/raspberrypi/buildhat/tree/main/firmware-pico to find out for sure.
The UART for the I/O ports is implemented by the PIO. Hopefully, we should be able to use the same PIO source code as the Raspberry Pi firmware for this.
The I/O port VCC control should already be implemented.