Jump to content

LEGO PoweredUp! (aka power functions 2.0)


Post raccomandati

Interessante articolo di Richard Jones:

https://ramblingbrick.com/2019/12/14/pushing-forward-with-powered-up

IMHO, TLG avrebbe potuto evitare di fare l'annuncio della nuova versione dell'App, e a distanza di 4 giorni ancora non aver rilasciata...

Avevano anche anticipato che avrebbero rilasciato un aggiornamento della documentazione del protocollo LWP a fine settembre e ciò non è avvenuto.

Resto in trepidante attesa...

Nel frattempo, sto usando i componenti Powered Up per far giocare il gatto 😄

(più tardi vi faccio vedere il video 😉 )

Link to comment
Condividi su altri siti

Facepalm.

 

Cavolo se LEGO continua a stupirmi in senso negativo con questo powered up.

Ho preso il liebherr come regalo di Natale per me, ma dubito che lo costruirò, anche se ho una voglia pazzesca di provarlo, al momento non dispongo neanche di un dispositivo compatibile, ho solo un tablet android 4, e chiaramente non si possono usare 18 telecomandi come si sarebbe potuto (dovuto) fare con i power functions.

Link to comment
Condividi su altri siti

2 minuti fa, Wolfolo ha scritto:

Cavolo se LEGO continua a stupirmi in senso negativo con questo powered up.

Il "concept" è diverso rispetto al sistema Power Function, e quindi bisogna entrare nell'ordine di idee che sono due cose "diverse". 

Sicuramente, hanno sbagliato un po' il timing per il rilascio delle varie App.

Voglio dire... se persino io sono riuscito a sviluppare un'App banalissima per pilotare il Control+ in modo basico, perché non lo hanno fatto anche loro?

Perché, avendo nella roadmap il rilascio del Control+, non hanno previsto un telecomando a "4 vie" anziché solo 2?

Io nutro molte aspettative sul sistema PuP, perché le potenzialità ci sono... però, allo stato attuale, non posso che prendere atto della lentezza di reazione da parte della divisione "tech" di TLG.

Anche considerato il buon numero di potenziali "beta tester" capaci (vedi Philo, per dirne uno) che potrebbero fornire feedback e suggerimenti durante la fase di sviluppo.

Link to comment
Condividi su altri siti

La "release note" di questa versione:

· Per chi possiede più di un hub, abbiamo buone notizie: ora è possibile connettere, dotare di indirizzo, programmare e controllare più hub.

· L’app supporta ora completamente il nuovo hardware LEGO TECHNIC. È inoltre possibile connettere il nuovo hub LEGO TECHNIC e utilizzare il sensore di inclinazione interno, nonché i nuovi motori LEGO TECHNIC.

· E per finire, anche l’app ha avuto un restyling! Abbiamo dato una ripulita completa alle due lobby. Appena in tempo per le festività!

Link to comment
Condividi su altri siti

Dopo oltre una settimana dall'annuncio che sarebbe stata rilasciata la versione 3.0, la legge di Murphy ha voluto che fosse effettivamente disponibile proprio la sera in cui non posso dedicarmi ad approfondire le nuove feature.

Ho giusto fatto qualche test sulla connessione contemporanea di uno Smart Hub e di un Control+.

La cosa interessante è che mentre per lo Smart Hub non è stato eseguito alcun aggiornamento del firmware, per il Control+ è automaticamente partito l'aggiornamento:

Screenshot_20191219-214022.thumb.jpg.37fb6f4450507210b8ff55a30617ddf6.jpg

Screenshot_20191219-214101.thumb.jpg.0028e33e8c915cd535a9803c42fff9c3.jpg

Screenshot_20191219-214201.thumb.jpg.b636674ca9b4cde6626794e40dbf4c6c.jpg

(c'è da dire che il Control+ non l'avevo mai utilizzato con le App ufficiali LEGO, e quindi non saprei dire se è proprio un firmware nuovo rispetto a quello distribuito con l'App del 41099 o del Liebher)

La grafica è cambiata solo nelle fasi di ingresso, mentre il canvas di programmazione è rimasto sostanzialmente quello precedente (con qualche blocco funzionale in più per supportare il multi-hub, ed altre cose che vi dirò nei prossimi giorni).

Screenshot_20191219-213731.thumb.jpg.745a059eb8de82621c973b991dc66410.jpg

Screenshot_20191219-213744.thumb.jpg.df2e82b192280db83ad8eed83e642819.jpg

È possibile modificare l'ordine degli HUB (il numero assegnato è quello che poi verrà usato all'interno dei canvas), disconneterli e "identificarli. Sarò più specifico domani....

Hub rilevato, ma non connesso (quello in arancione). Hub disconnesso forzatamente (quello bianco).

Screenshot_20191219-214935.thumb.jpg.ffa909c720c54483ed4bff1ce8659709.jpg

2 (diversi) Hub connessi

Screenshot_20191219-214231.thumb.jpg.82b797ee4d5dd2b4113fe9113735dddb.jpg

Hub invertiti di posizione (premendo sull'icona delle tre linee, e trascinando la barra su/giù la barra dell'Hub)

Screenshot_20191219-214626.thumb.jpg.71b71046963e1d70f0c7798489c2ee0e.jpg

Disconnessione di un Hub (sliding da dx a sx, sulla barra dell'Hub interessato)

Screenshot_20191219-214920.thumb.jpg.12360912938dea115acec7c7393b33de.jpg

Identificazione dell'Hub (premendo il Power Button cambia il colore della barra, temporaneamente)

Screenshot_20191219-214308.thumb.jpg.7b2045444101c0fb34d1fed898fb2bf7.jpg

Link to comment
Condividi su altri siti

57 minuti fa, GianCann ha scritto:

c'è da dire che il Control+ non l'avevo mai utilizzato con le App ufficiali LEGO, e quindi non saprei dire se è proprio un firmware nuovo rispetto a quello distribuito con l'App del 41099 o del Liebher

Confermo che NON È un nuovo firmware, rispetto a quello già distribuito con le App dei due set Technic.

Quindi, la versione 3.0 NON include un nuovo firmware.

Link to comment
Condividi su altri siti

Racing Brick ha da poco pubblicato un articolo sulla versione 3.0 dell'App.

https://racingbrick.com/2019/12/LEGO-powered-up-3-0-update-are-we-there-yet/

Condivido al 100% il suo giudizio: ritengo che sia penoso il fatto che un'App del genere non abbia uno straccio di documentazione e che persino persone con un certo skill abbiano incontrato qualche difficoltà nel comprendere la funzione di alcuni blocchi.

Io non sono un utente "base", eppure ho dovuto fare diversi tentativi per comprendere il significato/uso di questa icona:

IMG_20191219_161046.thumb.jpg.52b9e7522663882598e3c33bd390b374.jpg

Ed è solo un esempio delle cose che devi intuire/scoprire da solo.

Per il resto, l'App resta molto basica (paragonandola ad altre App di settore) e, soprattutto, resta il problema che smette di funzionare nel momento in cui va in background.

La novità maggior, fondamentalmente, è il supporto multi-hub.

Link to comment
Condividi su altri siti

@Pix, come avevo previsto mesi fa, c'è chi sta lavorando su un firmware alternativo 😉

pybricks.com è il progetto in fase "embrionale" portato avanti da due personaggi già noti nell'ambiete della robotica LEGO: sono coloro che hanno lavorato al porting di MicroPython per l'EV3 (il cuo processore è sempre un ARM).

Dal sito:

It's Powerful

Unlock the potential of your smart LEGO® hubs, motors, and sensors. With Pybricks, your code runs directly on the hub.  No permanent tablet connection required.

It's Easy

Just update the firmware and you’re good to go. You can go back whenever you like. Use our simple app to write MicroPython scripts on your computer and send them to your smart hub over Bluetooth.

It's Open Source

Pybricks builds on the MicroPython project. It adds a whole new family of ports. But a lot of work is still to be done. Are you a developer? Visit our GitHub and join us!

Al momento non c'è nulla di pubblico e il sito è stato preparato giusto un mese e mezzo fa...

Viste le premesse, e i personaggi coinvolti, c'è da ben sperare 😉

(gli ho scritto un'email per avere ulteriori informazioni)

Link to comment
Condividi su altri siti

23 minuti fa, GianCann ha scritto:

Unlock the potential of your smart LEGO® hubs, motors, and sensors. With Pybricks, your code runs directly on the hub.  No permanent tablet connection required.

F-I-N-A-L-M-E-N-T-E-!
Quindi la memoria a bordo è utilizzabile 💪

Link to comment
Condividi su altri siti

26 minuti fa, Pix ha scritto:

Quindi la memoria a bordo è utilizzabile 

Questo era fuor dubbio sin da subito: il firmware attuale, alla fine, non è nient'altro che un "programma" con funzioni di interfaccia tra un dispositivo Bluetooth (il Remote Controller o uno Smartphone) e i dispositivi connessi allo Smart Hub (motori/sensori).

Il firmware è "sovrascrivibile" in modalità OTA (lo stack Bluetooth è su un chip a parte, che ha a sua volta un firmware dedicato) e quindi si tratta solo di sostituirlo, di volta in volta, con una nuova "immagine" che includere le operazioni/comandi che vogliamo siano eseguiti.

D'altra parte, anche a @Laz e @Iry, durante le sessioni degli RLFM Days è stata confermata questa possibilità e non è escluso che (chissà quando, però) sarà una funzionalità integrata nell'App LEGO (intendo quella di "disegnare" lo script, e poi trasferirlo permanentemente nello Smart Hub).

Sicuramente faranno prima questi due ragazzi, che non LEGO, a permettere di programmare stand-alone questi nuovi device.

In ogni caso, la nuova versione dell'App, con il supporto al multi-hub è un enorme passo in avanti. Devo far incetta di pile AAA per fare un po' di test 😉

Link to comment
Condividi su altri siti

12 minuti fa, GianCann ha scritto:

In ogni caso, la nuova versione dell'App, con il supporto al multi-hub è un enorme passo in avanti. 

Mi fa ridere questo "enorme" passo in avanti alle porte del 2020...
Ma meglio prendere ciò che LEGO riesce a fare. Per tutto il resto ci sono gli AFOLs.

Only the best is good enough. Outside LEGO.

Link to comment
Condividi su altri siti

Bene, ho provato il 42100 con l'unico tablet in mio possesso che ha i requisiti per powered up (android 7 e BLE 4) ma non si riesce minimamente a collegare, i led diventano blu ma entra in loop tentando la connessione.

Coi telefoni stendiamo un velo pietoso.

Il portatile purtroppo ha il modulo bluetooth vecchio (3.1) quindi è inutilizzabile anche quello con le app di terze parti.

Hanno fatto davvero una figata con questo nuovo sistema, ma mi sa che resto allo sbrick e ai power functions.

Il 42100 probabilmente andrà a finire in soffitta o come sfuso per fare un altro braccio robotico, a meno che non mi invento una conversione a power functions giusto per vederlo in movimento una volta.

Link to comment
Condividi su altri siti

Il 9/1/2020 alle 21:53, SanMa ha scritto:

Io non riesco a farmi un'idea, per il semplice motivo che la app LEGO.... Non la riesco a capire minimamente!
(...)
È uscito qualche tutorial?

L'APP ufficiale LEGO è (a di poco) fortemente lacunosa dal punto di vista della documentazione.

In parte, puoi far riferimento alla documentazione del Boost, con la quale condivide molti blocchi:

https://www.LEGO.com/en-us/service/help/products/electronics-robotics/boost/guide-to-LEGO-boost-programming-blocks-408100000009897

In attesa di una documentazione ufficiale da parte di TLG, sul gruppo Facebook LEGO "PoweredUp Community" cerchiamo di analizzare i blocchi più "ostici" condividendo i risultati sul loro scopo/uso.

Per me è difficile dare un giudizio sulla "comprensibilità" dell'App, in quanto ho ovviamente una conoscenza della logiche di programmazione e quindi parto molto avvantaggiato. A parte alcuni blocchi, sui quali ho dovuto fare qualche esperimento per capire a cosa servissero, ho trovato l'App molto intuitiva e ritengo possa esserlo anche per chi, anche senza conoscere linguaggi di programmazione, abbia approcciato al problem-solving con strumenti tipo Scratch (utilizzato in ambito scolastico elementari/medie, e da qualche tempo adottato anche in Italia).

Comunque, se hai un minimo di dimestichezza con Scratch, si può usare anche questo strumento per interagire con lo Smart Hub (da PC, con Chrome su PC con Bluetooth).

Link to comment
Condividi su altri siti

Il 20/12/2019 alle 14:10, GianCann ha scritto:

@Pix, come avevo previsto mesi fa, c'è chi sta lavorando su un firmware alternativo 😉

pybricks.com è il progetto in fase "embrionale" portato avanti da due personaggi già noti nell'ambiete della robotica LEGO

Dopo aver visto il video che hanno pubblicato pochi giorni fa, ho sollecitato una risposta alla mia email dello scorso 20 dicembre, nella quale chiedevo maggiori informazioni.

Questa volta ho allegato anche una foto del mio "parco mezzi Powered Up", specificando che non avrei problemi a fare da beta tester e sacrificare qualche HUB in caso di operazioni di flash errate...

FB_IMG_1578917265225.thumb.jpg.310b033d5b869f286a96edf9b98f66fa.jpg

La risposta, a questo giro, c'è stata 😉

Thanks for the offer! You certainly do have a lot more hubs than us 🙂

We are working hard on this whenever we have time, but it's not quite ready for beta testing just yet.

In the meantime, however, feel free to ask us some questions. We'll try to answer as best as we can, and whatever we disclose to you, you can share with the community as well.

Eventually, all code will be available for everyone to see, but we think it's fun to share all the exciting developments one at a time until Pybricks is available, so that's why we posted the Power Functions 1.0 teaser 🙂

A questo punto, in attesa che sia resa disponibile una prima versione di questo firmware alternativo, chiederò qualche dettaglio maggiore...

Il video a cui si fa riferimento è questo, pubblicato sulla pagina Facebook di PyBricks lo scorso 7 gennaio: hanno usato l'HUB Boost Move per controllare 8 motori PF 1.0 via infrarossi:

facebook.com/story.php?story_fbid=494448304523988&id=265801900721964

Link to comment
Condividi su altri siti

L'APP ufficiale LEGO è (a di poco) fortemente lacunosa dal punto di vista della documentazione.
In parte, puoi far riferimento alla documentazione del Boost, con la quale condivide molti blocchi:
https://www.LEGO.com/en-us/service/help/products/electronics-robotics/boost/guide-to-LEGO-boost-programming-blocks-408100000009897
In attesa di una documentazione ufficiale da parte di TLG, sul gruppo Facebook LEGO "PoweredUp Community" cerchiamo di analizzare i blocchi più "ostici" condividendo i risultati sul loro scopo/uso.
Per me è difficile dare un giudizio sulla "comprensibilità" dell'App, in quanto ho ovviamente una conoscenza della logiche di programmazione e quindi parto molto avvantaggiato. A parte alcuni blocchi, sui quali ho dovuto fare qualche esperimento per capire a cosa servissero, ho trovato l'App molto intuitiva e ritengo possa esserlo anche per chi, anche senza conoscere linguaggi di programmazione, abbia approcciato al problem-solving con strumenti tipo Scratch (utilizzato in ambito scolastico elementari/medie, e da qualche tempo adottato anche in Italia).
Comunque, se hai un minimo di dimestichezza con Scratch, si può usare anche questo strumento per interagire con lo Smart Hub (da PC, con Chrome su PC con Bluetooth).
Io sono perito elettronico..... Anche se poi il mondo del lavoro mi ha portato a fare altro.... Fattosta che il giramento di palle per l'app LEGO mi ha spinto a ordinare su amazon un raspy
Link to comment
Condividi su altri siti

Eccovi qualche aggiornamento su PyBricks, il firmware alternativo per il sistema Powered Up 😉

Ho continuato ad avere uno scambio di email con uno dei due sviluppatori dal quale vi posso anticipare che:

- la prima beta del firmware sarà rilasciata (indicativamente) a marzo;

- inizialmente sarà supportato solo il Boost Move Hub, nelle sue funzioni base;

- Successivamente, il firmware potrà essere sostituito anche su Smart Hub e Control+

Più avanti, sarà possibile controllare anche i sensori *interni* del Boost/Control+ e gestire le porte di I/O in modalità "raw", ovvero sarà possibile utilizzarle per colloquiare con sensori di terze parti (comunicazione seriale).

Sarà sempre possibile ripristinare il firmware originale LEGO.

Per quanto riguarda il primo "teaser" (comunicazione IR, per pilotare i motori PF 1.0), mi hanno confermato che è stato usato il sensore di colore del Boost (anche se, faccio fatica a capire come abbiano fatto).

Sono abbastanza convinto che il team di sviluppo (oltre ad essere veramente in gamba) dispone di una documentazione più approfondita di quella già pubblicamente diffusa da TLG.

A questo punto, ho giusto un paio di mesi scarsi per procurarmi un Boost Move Hub 😄

Link to comment
Condividi su altri siti

Il 16/1/2020 alle 13:52, GianCann ha scritto:

Eccovi qualche aggiornamento su PyBricks, il firmware alternativo per il sistema Powered Up

Ieri pomeriggio, "stuzzicato" da @pivan, ho speso un'oretta di tempo per giocare con MicroPython "installandolo" su una delle tante board basate su ESP8266 che ho in casa (per far veloce, ho usato una comoda D1 Mini, che dispone del convertitore USB-Seriale onboard).

Ho "flashato" la board seguendo queste istruzioni (ho usato un altro tool per flashare il fw, ma poco cambia) ed ho iniziato a buttare giù qualche script, per testare le funzionalità della libreria standard e quelle specifiche per l'ESP (soprattutto quelle di networking!).

Mi sono divertito e, in effetti, soprattutto per i progetti IOT MicroPython è molto comodo... in men che non si dica, ho realizzato un device in grado di agganciarsi alla rete WiFi di casa, inviando messaggi MQTT al mio broker che gira su Raspberry (e che uso per la domotica casalinga).

Incuriosito da tutto ciò, sono andato a rileggere la scheda tecnica del microcontrollore montato sullo Smart Hub (un STM32F030, RCT6, ovvero 64 pin, 256 Kb) e l'ho paragonato a quello della PyBoard, ovvero della scheda sviluppata appositamente per MicroPython nel 'lontano' 2014 (qui, la campagna KickStarter di allora, che diede vita reale al progetto).

Nel confronto, il micro ARM utilizzato sullo Smart Hub è particolarmente 'povero' di memoria flash (256 Kb contro 1Mb della PyBoard), soprattutto considerando che tale memoria dovrà essere condivisa con il runtime di MicroPython.

In generale, il micro a bordo dello Smart Hub è meno performante rispetto la PyBoard e anche quello del Control+ non è che sia tanto più veloce (la quantità di Flash è identica, sempre 256Kb) benché sia di una famiglia leggermente più veloce la cui caratteristica peculiare è il basso consumo di energia.

Ho quindi chiesto maggiori dettagli a Laurens Valk, uno dei due programmatori che stanno lavorando al porting di MicroPython sui componenti PUP LEGO, per sapere cosa 'taglieranno' del firmware originale per far si che possano aggiungere le librerie specifiche del sistema LEGO, come, ad esempio, quella per simulare il telecomando IR del PF 1.0, come in questo esempio:

sensor.remote(3, Button.LEFT_UP)

dove 3 è il canale di trasmissione.

Vi aggiorno appena avrò novità.

Nel frattempo, se non avete nessuna board sottomano (o un EV3 da flashare con MicroPython), ma volete comunque fare qualche 'giro' di prova con questo linguaggio di programmazione, potete provare l'emulatore disponibile qui.

Link to comment
Condividi su altri siti

3 ore fa, GianCann ha scritto:

Vi aggiorno appena avrò novità

Laurens è stato velocissimo a rispondere 😉

Per una questione di velocità, vi riporto direttamente le risposte in inglese alle mie domande:
1) Come si effettuerà il flash? Via BLE o tramite i contatti del vano batteria?
Updating the Pybricks firmware works just like a LEGO firmware update over BLE. All we do is send a different firmware file. This way, it's just as safe as the official update procedure.

So, you just hold the hub button until the light blinks purple and then you can:
a) use the LEGO apps to install LEGO firmware
b) use our app to install Pybricks firmware

And if the update fails (for example, with low battery), you can always just try again. And this way you can also just go back if you want.

2) Sarà necessario caricare ogni volta il fw completo, o basterà caricare solo lo script personale aggiornato
You have to update the firmware only once. Then you can use our app to keep running new scripts as many times as you want.

Because the available storage space is limited, there is no user file system like some MicroPython boards have. So there is not really a main.py/boot.py. There is only your "script.py" which you run with our editor. It compresses the file and sends it to the hub over BLE.

3) C'è abbastanza spazio nella flash dei vari hub per tutto il core di MicroPython?
The amount of memory varies by hub. But even on the smallest chip (Move Hub***) you can run a script for a self-balancing robot, to give you a bit of an idea of the available size.

4) Sarà disponibile l'interfaccia REPL di MicroPython?
REPL will be available on hubs that have enough space for it. It looks like that might be all hubs except the Move Hub. However, since it is super quick to download-and-run any script, you can do just about everything that way too

Insomma, tutto molto interessante...

** Ho verificato la memoria del Move Hub: 128Kb, contro i 256Kb di Smart Hub & Control+

Ultima modifica: da GianCann
Link to comment
Condividi su altri siti

...alla fine, ci voglio provare! 😉

Ho deciso di tentare la via di scrivere un firmware alternativo per lo Smart Hub PUP 

In realtà, il mio obiettivo è molto più "terra-terra": sarò infatti più che soddisfatto se già solo riuscirò ad accendere/spegnere un LED con una mia versione personale del firmware... insomma, il classico progetto "Blink" tanto noto a chi si affaccia al mondo dei microcontrollori.

Dal punto di vista pratico, considerando l'esistenza del progetto PyBricks, non ha molto senso quello che voglio fare... a breve, infatti, sarà possibile programmare gli hub LEGO con MicroPython.

La mia, quindi, è più che altro una curiosità/sfida personale che coniuga la mia passione per il mondo LEGO e quello dell'elettronica/programmazione.

Ritengo di aver raccolto abbastanza informazioni per tentare di sovrascrivere uno dei due firmware presenti sulla board LEGO, ovvero quello all'interno dell'STM32F030.
La svolta in questa mia decisione è avvenuta ieri sera, quando su Tindie ho trovato una dev board basata proprio su questo micro della ST.

Parlo della PINKY32, un progetto realizzato circa 3 mesi fa da un ragazzo cecoslovacco che, visto l'interesse suscitato da alcuni makers che usano gli STM32, ha deciso di produrne alcuni pezzi mettendoli in vendita appunto su Tindie.

Sostanzialmente, per chi è un po' del settore, PINKY32 è una sorta di Arduino Nano con la differenza che si basa sull'SMT32F030 anzichè su un ATmega328. Ne ho acquistate 3, dato il prezzo irrisorio.

La mia idea, quindi, è quella di sviluppare il "firmware" (ripeto, una banale Blink, per iniziare) su PINKY32 e poi scrivere il ".bin" risultante nell'STM32F030 dello smart hub.

L'operazione di scrittura del nuovo firmware avviene via Bluetooth (così come già fa l'App LEGO) e di questa operazione se ne occupa l'altro firmware presente nello smart hub, ovvero quello all'interno del chip CC2640, e tutti i comandi sono documentanti in questa sezione del LEGO Wireless Protocol.

Mi piacerebbe confrontarmi con @alf, @Valter1966, @bricksnspace, @Rudy e chiunque altro coltivi (anche) la passione per l'elettronica/programmazione, al fine di unire le competenze/conoscenze e tentare di riuscire a programmare in maniera autonoma, questa nuova linea di componenti LEGO.

P.S. Aprirò un topic specifico, dedicato alla ri-programmazione degli smart hub, in modo tale da non sporcare troppo questo topic, dedicato all'ecosistema Powered Up, in generale.

P.P.S. RacingBrick mi ha autorizzato a procedere alla traduzione e ripubblicazione della loro guida sui blocchi logici di programmazione dell'App LEGO. Ieri ho quindi iniziato a tradurre il materiale che poi sarà pubblicato sul sito di ItLUG 😉

Link to comment
Condividi su altri siti

La nuova App fa pena... sto riscontrando un sacco di problemi nel connettere gli Hub (cosa che non succede, effettuando il downgrade dell'App) e, comunque, ci sono diversi comportamenti anomali riscontrati da vari utenti.

Mi aspetto un aggiornamento al più presto, perché così è veramente scandalosa...

Link to comment
Condividi su altri siti

26 minuti fa, Toretto1981 ha scritto:

Sinceramente su iOS non ho riscontrato nessun tipo di problema. Tu usi Android o iOS?

Ho usato Android, sia 8 che 9.

Il problema si evidenzia nella connessione di 2/3/4 Hub.

Ci sono poi bug nella trasmissione IR (ma potrebbero non essere veri e propri bug, visto che LEGO non ha ancora rilasciato una documentazione ufficiale, e siamo arrivati per vie "traverse" a farla funzionare).

Comunque, il grosso dei problemi sono relativi alla connessione BLE (e quindi, potrebbe essere che su iOS siano assenti) e ad una non corretta applicazione del nuovo firmware sui singoli Smart Hub.

Tu hai provato a collegare 3/4 device, incluso il controller?

Link to comment
Condividi su altri siti

Ieri pomeriggio ho speso un po' di tempo ad analizzare la nuova versione dell'App Powered App (la 3.1.0). Sono passati 3 mesi dal rilascio della precedente 3.0.0 (disponibile da poco prima di Natale 2019) che vide l'introduzione di una caratteristica fondamentale: la possibilità di collegare/programmare fino a 4 Hubs (Boost, Smart o Technic Hub).

La versione 3.1.0 introduce ulteriori due funzionalità interessanti (oltre ad alcuni "bug fix" non meglio specificati😞
- Possibilità di collegare anche il telecomando Powered Up
- Integrazione della protocollo di trasmissione IR (Raggi Infrarossi)  specifico del mondo Power Function 1.0

Sono due interessanti novità, perché estendono ulteriormente le capacità dei dispositivi Powered Up (dando una flessibilità maggiore al telecomando) e, soprattutto, mettendo in "contatto" i due sistemi Powered Up e Power Function.

(nota: in questa nuova versione ho riscontrato anche diversi bug di cui vi parlerò in un successivo post)

Partiamo da analizzare la novità che riguarda il telecomando.
Chi ha avuto modo di spippolare con programmi/script di terze parti, sa già che il telecomando è anch'esso un dispositivo BLE "server" al quale ci si può connettere e ricevere "messaggi di notifica" quando uno dei 7 pulsanti viene premuto. Nel computo dei pulsanti viene considerato anche il pulsante di accensione/spegnimento (quello verde) che, una volta accesso il telecomando può essere usato come un normale 'push button'.

Risultato immagini per lego powered up controller

Solitamente (ovvero senza App) il telecomando, può controllare lo stato delle due porte di uno Smart Hub. Con un meccanismo un po' contorto, in realtà, può controllare anche più Smart Hub (anche in modo parallelo). In ogni caso, si tratta sempre di agire sulle due porte del singolo Smart Hub per aumentare/abbassare la velocità dei motori, o fermarli.

Mediante l'App, diversamente, ora possiamo estendere questo funzionamento usando i pulsanti come trigger di routine più complesse.

Cerco di spiegarmi meglio usando uno scenario che contempla un telecomando e 3 Smart Hub (ovvero il massimo dei dispositivi collegabili all'App che, ricordo, possono essere in tutto 4), quest'ultimi montati su altrettanti treni: premendo un *solo* pulsante del telecomando (ad esempio, il '+' a sinistra), posso far partire contemporaneamente tutti i 3 treni al 50% di velocità. Premendo una seconda volta lo *stesso* pulsante potrei fermarli oppure accelerare la corsa. Premendo un altro pulsate (il '-' a sinistra), potrei lanciare una sequenza che accende alternativamente le luci LED collegate alla seconda porta degli Smart Hub. Premendo un terzo pulsante (il 'rosso' a sinistra) potrei eseguire dei suoni ... Oppure, se al posto dei LED utilizzassi 3 sensori di colore (uno per ogni hub) potrei far si che alla pressione di un pulsate (il '+' a destra) tutti i treni si fermino in corrispondenza del primo marker rosso che incontrano lungo i loro percorso, per poi ripartire automaticamente dopo 5 secondi. Premendo un altro pulsante (il '-' a destra), potrei far fermare i treni in corrispondenza per primo marker giallo presente sul percorso, per poi farli ripartire in direzione opposta a quella precedente.

Sostanzialmente, possiamo utilizzare il telecomando come trigger di "scenari", con una combinazione di possibilità il cui limite è dovuto solo al numero di Smart Hub controllabili (3) e alla nostra fantasia.

Non solo: dato che è possibile connettere all'App anche il Technic Hub, possiamo ora usare il telecomando per interagire con le porte di questo Hub che, nativamente, non può (almeno per ora) interfacciarsi direttamente con il controller.
In questo video, banalmente, potete vedere come accendo i LED connessi alle 4 porte dell'Hub.

Pensate ad un "macchinario" (una catena GBC) o un diorama animato (ad esempio, quello di @Toretto1981) con 3 Technic Hub (quindi, potenzialmente 12 motori) controllabili da un solo controller...

Come si interagisce, quindi, con il telecomando?
Il sistema più immediato, è quello di utilizzare il nuovo blocco 'remote control' in combinazione con il blocco 'start on true'.

Partiamo dal considerare che il telecomando identifica i due 'controller' come A e B:
image.png.f0517278858003bd044b949422dd56fb.png
In questo esempio, alla pressione del tasto '+' del controller 'A', viene eseguito il suo di un fischio:
Screenshot_20200323_074002_com_lego.common.poweredup.thumb.jpg.0c6414592256506e1168f211bb873950.jpg

E possibile indicare quale dei due controller vogliamo 'intercettare':
Screenshot_20200323_074012_com_lego.common.poweredup.thumb.jpg.1254a15cc64e41418dfabaf46205bb67.jpg

Quale pulsante...
Screenshot_20200323_074021_com_lego.common.poweredup.thumb.jpg.bfdad796eb60b8bab3a461f412222f75.jpg

E, nel caso di più Smart Hub connessi, possiamo identificare l'indice in questo modo (vedi questo mio post )
Screenshot_20200323_074107_com_lego.common.poweredup.thumb.jpg.2422787d466fe3cf9d3a38ca0cde1326.jpg

Screenshot_20200323_074115_com_lego.common.poweredup.thumb.jpg.769bef59634c8c4d750e2df0ae4d9caf.jpg

In un prossimo post, parlerò di come usare le funzionalità IR, e di come interfacciarsi ai 'vecchi' Power Function 1.0 😉

Link to comment
Condividi su altri siti

Prima di parlarvi della trasmissione IR, vi mostro quelli che sono i "grossi" problemi di questa App per quanto concerne la possibilità di connettere più Hub contemporaneamente.

(anche perché, sulla base di alcune considerazioni, la trasmissione IR potrà essere utile a superare alcuni dei problemi qui sotto riportati).

Poter gestire da una sola App più Hub contemporaneamente è una feature che molti AFOL agognavano sin dall'uscita del sistema PU. Del resto, era stato dimostrato (da sviluppatori terzi, incluso il sottoscritto) che ciò era possibile e che, nella pratica, anche il team di sviluppo LEGO aveva effettuato delle dimostrazioni in tal senso ben prima che il prodotto fosse messo in commercio (così come ci ha riportato @Piru Brick).

Quindi, a dicembre 2019, quando uscì la versione 3.0.0 dell'App che finalmente implementava la multi-connessione (fino ad un massimo di 4 Hub) fui molto contento di questo aggiornamento: finalmente si poteva realizzare qualcosa di più spinto/complesso usando solo ed esclusivamente prodotti/software LEGO.

Purtroppo, il mio iniziale entusiasmo fu parzialmente smorzato dalla difficoltà di connettere in modo semplice e veloce più di un Hub. Evito di addentrarmi sui meccanismi del protocollo BLE e delle specifiche GATT che regolano la comunicazione dei dispositivi Bluetooth Low Energy (che non è in classico Bluetooth...) ma quello che sulla carta sembra essere una cosa semplice, dal punto di vista pratico riserva qualche intoppo nel momento in cui si cerca di andare "oltre".

Con l'App 3.0.0, infatti, era molto difficile (certe volte praticamente impossibile) riuscire a connettere 3 o 4 Hub contemporaneamente.

Lì per lì pensai che il problema fosse dovuto più che altro alla gioventù dell'App e, in minor parte, ai diversi chip/firmware Bluetooth a bordo dei vari smartphone/tablet. Non ultime, inoltre, le diverse librerie/versione di Android e/o iOS (nota: io personalmente non ho mai potuto effettuare test con dispositivi Apple).

Con il rilascio della versione 3.1.0 (e del nuovo firmware per gli Smart Hub, che accompagna questa versione dell'App) mi aspettavo dei miglioramenti da questo punto di vista... l'impressione, dopo due pomeriggi spesi a fare prove di vario genere, è che la situazione sia persino peggiorata.

Le mie prove sono state effettuate con 4 dispositivi diversi: Huawei P20 Lite, Huawei P9 Lite, Samsung A5 e, infine, un tablet Mediacom.

Riuscire a connettere contemporaneamente 4 dispositivi è, nel mio specifico caso, quasi un'odissea 😞

Anche arrivare a 3, non è per nulla semplice. Ma 4, è veramente una cosa rarissima.

Vi mostro alcuni video in cui si evidenziano le difficoltà:

 

 

Vi assicuro che ho fatto decine di test di ogni genere, ed ogni volta ho ottenuto comportamenti "strani". Ad esempio, connettendo un terzo dispositivo, perdevo la connessione ai primi 2.

Oppure mi son ritrovato in situazioni come questa... L'App è convinta di essere connessa a 3 dispositivi, ma se guardate con attenzione, tutti i dispositivi sono spenti perché, da un momento all'altro si sono scollegati, andando in shutdown automatico dopo 10 secondi.

IMG_20200322_180029.thumb.jpg.286f48d7ccf5c87ca48bc3dfd0903dab.jpg

Queste problematiche sono state riscontrate anche da altri utenti ma, ad onor del vero, c'è anche chi mi ha mostrato la facilità con cui riesce a connettersi/disconnettersi e riconnettersi a 4 dispositivi.

Sicuramente, in tutto questo, gioca un ruolo importante lo stack Bluetooth del dispositivo di controllo (smartphone/tablet che sia) ma sono convinto che gli sviluppatori LEGO possano fare uno sforzo per migliorare questa situazione.

Ultima modifica: da GianCann
  • Mi Piace 1
Link to comment
Condividi su altri siti

Il 16/1/2020 alle 13:52, GianCann ha scritto:

Eccovi qualche aggiornamento su PyBricks

I ragazzi di PyBricks hanno appena pubblicato un nuovo video!!!

Smart trains, autonomous trains, fast trains, so many options 🙂
With code running locally, you won't miss a single sensor reading. Detect colors on the track even as you drive at full speed.
Who else can't wait for the very first beta release?

Link to comment
Condividi su altri siti

In questo post vi parlo dell’altra grossa novità introdotta con la versione 3.1.0 dell’App LEGO Powered Up (Android e iOS😞il supporto alla trasmissione del protocollo IR LEGO LPF1 e, quindi, della possibilità di integrare il ‘vecchio’ (ma ancora vivo e vegeto) ecosistema LEGO Power Function 1.0 (LPF1).

LEGO POWER FUNCTIONS PRO (technic,motor,gear,pin,axle,bush,remote ... LEGO TRAIN POWER Functions Train motor kit IR Receiver battery box ...

(ndr: Sarei veramente curioso di scoprire se questa nuova feature sia stata ‘stimolata’ dal video pubblicato da Pybricks qualche settimana fa, oppure fosse qualcosa di già pianificato e rilasciato, guarda caso, proprio a ruota rispetto lo spoiler di Pybricks (mi piace pensare che la prima ipotesi sia quella più plausibile).
Soprattutto per il modo ‘frettoloso’ e un po’ spartano con il quale è implementata e, non di meno, per il fatto che non hanno pubblicato da nessuna parte la documentazione.

A parte questo, quella di integrare il supporto IR nell’App ufficiale è stata una bella cosa benché, come vedrete più avanti, soffre di alcuni limiti.

La documentazione del protocollo IR LEGO è stata rilasciata tempo fa e, nell’arco degli anni, abbiamo visto molteplici implementazioni di questo protocollo, da Arduino ad Android (per quei telefoni che sono dotati di IR Blaster). Basta un diodo LED IR, pilotato secondo le specifiche del protocollo, per replicare i due telecomandi IR LEGO.

Dato che all'interno del sensore di colore/distanza/luminosità del sistema Powered Up è presente anche un diodo IR, per gli sviluppatori LEGO (e per i ragazzi di PyBricks) è stato abbastanza “semplice” implementare questo il protocollo di comunicazione anche nel sistema PU.

I vantaggi sono tre:
1) quello di estendere il numero di motori/luci controllabili dall’App… si può arrivare ad un totale di 8 motori/luci LPF1 (con 4 ricevitori);
2) la possibilità di controllare il sistema LPF1 secondo una logica di programmazione;
3) integrare insieme PU e LFP1 (cosa che molti AFOL chiesero sin dall’inizio, seppur con qualche differenza)

Vediamo ora come funziona questa integrazione… per comodità, utilizzerò i video di Racing Brick, integrandoli con alcuni miei screenshot dell’App.

Sostanzialmente, nella versione 3.1.0 hanno introdotto due nuovi “blocchi” relativi al sensore IR.

1211248742_WhatsAppImage2020-04-06at17_05_37.thumb.jpeg.f43a4dd77b517179882af08155ed0cf6.jpeg

Il primo (a sx), serve ad impostare il sensore di colore/luce in modo da funzionare come ‘trasmettitore’ IR.
Richiede due paramentri:
- la porta alla quale è connesso il sensore che vogliamo usare come trasmettitore (A,B per Move e City Hub, A,B,C,D per il Technic Hub)
- Il valore fisso 7, che specifica la modalità di trasmissione IR (tutte le modalità di supportate dal sensore, sono disponibili in questo log)

Il secondo blocco (a dx), invece, è quello che ci permetterà di inviare i comandi specificando la porta alla quale è connesso il sensore,  il canale di trasmissione (sono 4), l’uscita del ricevitore IR sulla quale vogliamo intervenire (sono 2, la rossa e la blue) e, infine, il tipo di azione che vogliamo intraprendere (impostare la velocità nel due diversi sensi di rotazione, con 7 step di velocità ognuno, fermare il motore di ‘botto’, fermare il motore in modo libero).

In questa foto, un dettaglio del ricevitore IR:
ir.thumb.png.1e31f5d9f763f92095d44d42bbbf5eca.png

Nello specifico, i valori utilizzabili sono:
- Primo parametro: porta alla quale è connesso il sensore di colore: A,B per Move e City Hub, A,B,C,D per il Technic Hub
- Secondo parametro: canale di trasmissione, con queste combinazioni valore/canale 0=1, 1=2, 2=3, 3=4
- Terzo parametro: uscita del ricevitore IR sulla quale si vuole agire, dove 4=Rossa, 5=Blu
- Quarto parametro: tipo di comando da inviare, secondo questo schema:
0 = Stop (break)
1,2,3,4,5,6,7 = rotazione in senso orario, dove 1 è la velocità minima, e 7 quella massima
8 = Stop (float)
9,A,B,C,D,E,F = rotazione in senso antiorario, dove 9 è la velocità massima, e F quella minima

In questo video, c'è un esempio reale sull'utilizzo di questi blocchi:

C’è da sottolineare che l’App è stata rilasciata oramai da due settimane e che quel “Find more info on our website” non ha avuto, ad oggi, alcun seguito: nessuna documentazione/spiegazione ufficiale da parte di LEGO è attualmente disponibile su come utilizzare questa nuova funzionalità… 
Quindi, le informazioni su come utilizzare questi blocchi sono state desunte dalla community con una serie di tentativi basati sulla documentazione del protocollo IR che, nell’arco di poco, hanno consentito di sfruttare subito questa nuova feature.
Una cosa certamente non alla portata di tutti… anche il modo con cui sono stati predisposti questi blocchi lascia qualche interrogativo.

Infatti chi mastica un po’ di programmazione, ed ha avuto a che fare con il protocollo IR di LEGO, noterà che manca un ulteriore valore: il checksum. Questo vuol dire che il checksum è automaticamente calcolato dal firmware a bordo dello smart hub (cosa buona e intelligente). Però, se gli sviluppatori si sono preoccupati di togliere questa incombenza agli utilizzatori, perché non hanno gestito diversamente i parametri di ingresso? Perché, ad esempio, non usare direttamente i valori 1,2,3,4 per specificare il canale di trasmissione, anziché usare 0,1,2,3 creando un po' di confusione? Perchè non hanno codificato il colore della porta di uscita del ricevitore IR (rossa e blu), così come hanno fatto per i pulsanti del telecomando, anzichè utilizzare i valori 4 e 5? Stesso discorso vale per i comandi da inviare.
Perché, infine, implementare uno specifico blocco per impostare il sensore sulla modalità IR? (avrebbero potuto gestire questa cosa direttamente nel firmware).

Le possibilità sono due: hanno implementato questa cosa “in fretta e furia” (senza rilasciare, contestualmente, la relativa documentazione), oppure prevedono di estendere l’uso anche oltre il sistema LPF1 (ad esempio, per interagire con l’EV3?). Chissà…

Come considerazione personale, devo dire che il sistema Powered Up non è ‘curato’ come mi sarei aspettato da una azienda che ha come moto “Only the Best is Good Enough”. Il sistema PU è una ‘semi-rivoluzione’ nel mondo LEGO, ma la documentazione (scarsa, nel migliore dei casi e mancante, nella stragrande maggioranza) fa si che pochissimi AFOL ne abbiano scoperto le potenzialità.

Tornando a parlare della funzionalità IR, dal punto di vista tecnico, c’è da dire che “non tutto quel che luccica è oro…”.
Racing Brick ha effettuato dei test molto approfonditi che hanno evidenziato alcune limitazioni relative a tempi di risposta, distanza e raggio di azione nel pilotare LPF1 tramite il sistema Powered Up.
Questo video, è particolarmente esplicativo:
https://www.youtube.com/watch?v=Eb4gkKNtS0E


C’è però da dire che, seppure questa integrazione non permetterà di controllare adeguatamente una macchina come quella del video, potrà essere abbastanza utile nel controllo di un layout ferroviario con treni che montano il sistema LPF1.
Sulla carta, si potrebbe arrivare a controllare sino a 8 treni LPF1, oppure una qualsiasi combinazione tra treni e scambi, fino ad arrivare a 8. Infatti è possibile impostare due ricevitori sullo stesso canale, e configurare rispettivamente i motori sul canale rosso e su quello blu.

Per ovviare al problema di copertura del raggio IR, ho provato a costruire una 'torretta di irradiazione' a 360°.
Certo, è un po' dispendiosa considerando che è necessario un Technical Hub e ben 4 sensori... 😄

91320474_10219948420134709_8451539742016667648_o.thumb.jpg.4803798b870b782285cce2f423153de6.jpg

Al di là di tutto, l'integrazione del supporto IR all'interno del sistema PU è senz'altro un'ottima cosa.

Nei prossimi giorni, vi mostrerò alcuni esempi pratici, soprattutto per controllare i treni e per rendere il codice più "leggibile", come in questo sketch che ho realizzato per fare alcuni test:
91404907_10219949637645146_2924774008752701440_o.thumb.jpg.3455adbf87d146d8896dbdf5bc37fbb7.jpg

Nello specifico, le due sezioni superiori servono ad avviare e a fermare il motore sulla porta Rossa e quelli sotto, a controllare allo stesso modo il motore sulla porta blu (notate le bandierine rosse e blu, e le icone che rappresentano le azioni sui motori).

Se avete qualche dubbio, chiedete pure!

EDIT 21 maggio 2020: aggiungo il link a questo articolo > https://reptile-addict.nl/wp/2020/05/21/sent-LEGO-power-function-ir-commands-with-LEGO-powered-up-and-boost/

Ultima modifica: da GianCann
Link to comment
Condividi su altri siti

Il 25/3/2020 alle 07:49, GianCann ha scritto:

Prima di parlarvi della trasmissione IR, vi mostro quelli che sono i "grossi" problemi di questa App per quanto concerne la possibilità di connettere più Hub contemporaneamente.

...

A me, con un mate 20 pro arriva a connettere 3 hub (il quarto mi manca da provare anche se potrei agganciare il telecomando) ma poi riesco a comandare sempre e comunque l'ultimo connesso. Ciò avviene anche con solo 2 connessi e anche con l'app di @GianCann🙄

A margine chiedo che tablet si potrebbe comprare per dedicarlo a queste cose?

Link to comment
Condividi su altri siti

6 ore fa, SanMa ha scritto:

ma poi riesco a comandare sempre e comunque l'ultimo connesso

Che intendi esattamente?

6 ore fa, SanMa ha scritto:

Ciò avviene anche con solo 2 connessi e anche con l'app di @GianCann🙄

Puoi spiegarmi meglio, in modo da cercare di replicare il problema?

6 ore fa, SanMa ha scritto:

A margine chiedo che tablet si potrebbe comprare per dedicarlo a queste cose?

Bella domanda! Ho chiesto al team di sviluppo del firmware se mi fanno sapere qualcosa. Il PM mi ha risposto che questo tipo di test lo fa un'altra sezione e che la settimana prossima mi metterà in contatto con loro (vedremo se è vero...)

Link to comment
Condividi su altri siti

15 ore fa, GianCann ha scritto:

Che intendi esattamente?

intendo che qualsiasi comando invio al primo hub collegato non viene replicato nella realtà. I comandi invece impartiti al secondo hub vengono invece eseguiti.

Se inverto la sequenza di aggancio degli hub è sempre e solo l'ultimo che riesce a replicare i comandi.

15 ore fa, GianCann ha scritto:

Puoi spiegarmi meglio, in modo da cercare di replicare il problema?

La stessa cosa di cui sopra avviene anche se uso la tua app piuttosto che quella di LEGO.

15 ore fa, GianCann ha scritto:

Bella domanda! Ho chiesto al team di sviluppo del firmware se mi fanno sapere qualcosa. Il PM mi ha risposto che questo tipo di test lo fa un'altra sezione e che la settimana prossima mi metterà in contatto con loro (vedremo se è vero...)

Non vorrei che fra un po scappa fuori una lista di dispositivi compatibili alla stregua di come è successo con gli hidden side .....

 

Oggi comunque farò altre prove.

Link to comment
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente registrato per postare un commento

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!

Registra un nuovo account

Accedi

Hai un account? Accedi .

Accedi ora

×
×
  • Crea nuovo...