Prime Hub + Pybricks
Enviado: 14 out 2020, 09:43
Graças à Comunidade ROBOTMAK3RS e à LEGO tive a oportunidade de experimentar um 51515 Robot Inventor umas semanas antes de ser lançado a público (depois de amanhã).
Já houve várias reviews do set, inclusive em português suave por isso não me vou meter por aí até porque montar o que está na caixa não faz muito o meu género.
Com a ajuda do Lauren Valks do projecto Pybricks consegui incorporar o firmware deles no hub do set (o Prime Hub, idêntico ao hub do SPIKE que no fundo é a variante EDUCATION do Robot Inventor). Ainda está numa fase muito inicial pelo que não vale a pena estar a explicar como se faz (no meu caso envolveu uma máquina virtual com Windows) mas vale a pena explicar o resultado:
Com o firmware do Pybricks instalado no Prime Hub ficamos com uma configuração "dual boot" - ao ligar o Hub da forma habitual ele funciona com o firmware nativo da LEGO e pode ser utilizado pela App da LEGO que permite programá-lo numa variante de Scratch e noutra de micropython.
Mas ao ligar o Hub com uma determinada sequência de botões ele arranca com o firmware Pybricks que permite programar em micropython - semelhante no conceito ao implementado pela LEGO mas substancialmente diferente na implementação.
Com o firmware Pybricks temos acesso a uma API homogenea entre os vários dispositivos suportados pelo projecto: MINDSTORMS EV3 (que nada tem de Powered Up) e todos os hubs PU até agora (à excepção do Super Mario da Nintendo). E no caso particular dos hubs, todos os motores e sensores são interoperáveis - usando um objecto da classe "Motor" podemos usar qualquer motor com sensor interno de rotação, sejam os do BOOST, do SPIKE, do Technic semelhantes aos Power Functions ou do Technic semelhantes aos do SPIKE (os da nova Volvo). Portabilidade plena!
Para demonstrar isso fiz um pequeno "Line Follower" só com o cérebro do 51515 Robot Inventor e dois motores da Volvo e um sensor do BOOST:
Como disse o firmware ainda está muito inicial e obriga-me a programar esta tartaruguinha em modo "tethered" com o cabo USB sempre ligado. Daí que o circuito experimental seja muito pequeno:
O código e alguns comentários do Lauren podem ser vistos aqui:
https://github.com/pybricks/support/issues/149
Não há ainda video, até uma versão mais madura do firmware que possa permitir-me a demonstração sem o cabo USB a atrapalhar. Mas funciona e ainda não houve quedas ao chão.
Se quiserem ver um video, este aqui mostra o estafado "Hello World!":
Já houve várias reviews do set, inclusive em português suave por isso não me vou meter por aí até porque montar o que está na caixa não faz muito o meu género.
Com a ajuda do Lauren Valks do projecto Pybricks consegui incorporar o firmware deles no hub do set (o Prime Hub, idêntico ao hub do SPIKE que no fundo é a variante EDUCATION do Robot Inventor). Ainda está numa fase muito inicial pelo que não vale a pena estar a explicar como se faz (no meu caso envolveu uma máquina virtual com Windows) mas vale a pena explicar o resultado:
Com o firmware do Pybricks instalado no Prime Hub ficamos com uma configuração "dual boot" - ao ligar o Hub da forma habitual ele funciona com o firmware nativo da LEGO e pode ser utilizado pela App da LEGO que permite programá-lo numa variante de Scratch e noutra de micropython.
Mas ao ligar o Hub com uma determinada sequência de botões ele arranca com o firmware Pybricks que permite programar em micropython - semelhante no conceito ao implementado pela LEGO mas substancialmente diferente na implementação.
Com o firmware Pybricks temos acesso a uma API homogenea entre os vários dispositivos suportados pelo projecto: MINDSTORMS EV3 (que nada tem de Powered Up) e todos os hubs PU até agora (à excepção do Super Mario da Nintendo). E no caso particular dos hubs, todos os motores e sensores são interoperáveis - usando um objecto da classe "Motor" podemos usar qualquer motor com sensor interno de rotação, sejam os do BOOST, do SPIKE, do Technic semelhantes aos Power Functions ou do Technic semelhantes aos do SPIKE (os da nova Volvo). Portabilidade plena!
Para demonstrar isso fiz um pequeno "Line Follower" só com o cérebro do 51515 Robot Inventor e dois motores da Volvo e um sensor do BOOST:
Como disse o firmware ainda está muito inicial e obriga-me a programar esta tartaruguinha em modo "tethered" com o cabo USB sempre ligado. Daí que o circuito experimental seja muito pequeno:
O código e alguns comentários do Lauren podem ser vistos aqui:
https://github.com/pybricks/support/issues/149
Não há ainda video, até uma versão mais madura do firmware que possa permitir-me a demonstração sem o cabo USB a atrapalhar. Mas funciona e ainda não houve quedas ao chão.
Se quiserem ver um video, este aqui mostra o estafado "Hello World!":