Quem não quer ouvir falar de python, opensource, powered up hubs e caracteres especiais ASCII pode sair aqui.
Os outros: o Pybricks recebeu uma nova actualização ("minor") que inclui a função "getchar", semelhante à "input" mas non-blocking.
A função "input" é standard do python/micropython mas bloqueia a execução até ser recebido pelo stdin um carriage return. Foi trazida para o Pybricks a meu pedido e deu já muito jeito para fazer chegar comandos a um hub (como no meu Corujo que bate as asas cada vez que um mail dá entrada na Inbox) e até mesmo mas para comandar um carro como o Top Gear Rally Car ou o 4x4.
Mas esta nova função "getchar" não faz o programa parar e não espera por nada em especial. O que permite usar o próprio teclado no IDE do Pybricks (que consiste apenas no Chrome) em realtime.
Fiz uma pequena demonstração novamente com o Top Gear Rally Car - à maneira dos jogos do ZX Spectrum estou a escutar o teclado e reajo às teclas Q/A/O/P para mover o carro e a tecla R ou 0 para alinhas as rodas na posição neutra.
No video estou a usar um teclado wireless baratucho mas podia ter usado qualquer outro dispositivo HID que emule um teclado (como inclusive alguns gamepads ou o Makey Makey).
mas para quem prefere usar o telemóvel como comando, o Nordic nRF Toobox tem uma tool "UART" que permite associar "caracteres" a botões no ecrã e enviar para o hub - infelizmente cada caracter tem sempre de ser terminado por um Line Feed ou por um Carriage Return (ou ambos) o que causava problemas com o 'input' mas agora com o 'getchar' já não - basta ignorar esses caracteres.

Mais alguns detalhes e links para o código:
https://ofalcao.pt/blog/2020/committed-to-pybricks

