Pybricks sul CityHub!

Allo stato attuale, Pybricks per il CityHub non è ancora ufficialmente in beta pubblica ma se ci si arma di un po’ di pazienza e si configura un ambiente di lavoro dove utilizzare gli strumenti pybricksdev (a linea di comando) è possibile provare a caricare il firmware anche su questo Hub e fare qualche prova.

Io ho optato per una installazione di Debian 18.04 TLS su Virtualbox hostato da Windows 10. Ho installato il tutto sul mio portatile che integra già la comunicazione Bluetooth direttamente sulla scheda madre.

L’installazione di tutti i pacchetti mi ha richiesto un po’ di tempo, più che altro per la mia scarsa conoscenza di Debian. Alla fine, però, dopo aver installato pyenv e poetry, sono risciuto a lanciare il comando poetry run pybricksdev flash firmware.zip avviando l’upload del firmware sul piccolo Hub Powered Up.

Ovviamente non tutto ha funziona al primo colpo, ma a forza di tentativi ci sono riuscito 😉

Dopo aver verificato che effettivamente era possibile caricare il firmware anche su tale Hub, mi sono “spinto oltre” ed ho scritto un piccolo programma in MicroPython per controllare il motore del treno in base al sensore di colore:

from pybricks.hubs import CityHub
from pybricks.parameters import Port
from pybricks.parameters import Color
from pybricks.pupdevices import DCMotor
from pybricks.pupdevices import ColorDistanceSensor
from pybricks.tools import wait, StopWatch

hub = CityHub()
print("Battery voltage: " + str(hub.battery.voltage()))
myMotor = DCMotor(Port.A)
mySensor = ColorDistanceSensor(Port.B)
while True:
myMotor.dc(75)
if (mySensor.color()==Color.YELLOW):
myMotor.dc(0)
wait(1500)

Lo script, rinominato in main.py, l’ho inserito nel file zip “firmare.zip” in modo che possa essere eseguito senza alcuna necessità di connettersi via Bluetooth.

Durante la fase ‘alpha’ abbiamo identificato questa modalità di funzionamento come “Autonomous Running Mode (ARM)”. Ecco il risultato:

Tutte le informazioni per utilizzare il tool pybricksdev sono disponibili nell’apposito repository GitHub.

Lascia una risposta

L'indirizzo email non verrà pubblicato.I campi obbligatori sono contrassegnati *