Jump to content

LEGO PoweredUp! (aka power functions 2.0)


Post raccomandati

Tornando al discorso cavetto, non è ancora chiaro cosa deciderà di fare TLG

IMG_20190530_131101.jpg

È chiaro che il sistema PU è fortemente diverso, in termini di connettività, rispetto al PF e non solo per la forma fisica del connettore. C'è il rischio, infatti, che un utilizzo errato del cavetto possa danneggiare l'hub.

Al di là del cavetto di compatibilità PU/PF, sono curioso di sapere cosa se metteranno in vendita per un cavetto di prolunga, perché gli attuali 25 cm sono corti.

Link to comment
Condividi su altri siti

Come ho già detto in qualche altro post io ho risolto a mio modo due problemi, il primo che riguarda le pile l’ho risolto collegando direttamente l’hub ad un trasformatore 9V, e il secondo che riguarda le prolunghe si è risolto di conseguenza allungando ed accorciando a piacimento il cavo che va all’hub. Certo in questa maniera (nel mio caso) mi tocca avere un hub per ogni MOC che voglio comandare però in assenza di altra soluzione per ora mi sono arrangiato così. 

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

Dall'intervista di @Iry e @Laz emergono alcuni aspetti interessanti, benché molte risposte sono un "vedremo in futuro".

Tra tutti, la modalità "standalone" che è quella sulla quale abbiamo discusso anche con @Pix in queste pagine: ovvero la possibilità di preimpostare (programmare) un comportamento di default su nostre specifiche istruzioni.

D'altra parte, sapevamo già (vedete uno dei miei precedenti post) che l'hardware ha le caratteristiche per supportare una funzionalità di "comportamento di default" e tutto dipende solo dal firmware e da come (e quando) TLG vorrà implementarlo.

Che sia una questione di tempo, alla fine, lo ammettono anche loro: prima o poi qualcuno scoprirà il modo di sostituire il firmware (così come già accaduto per l'EV3) e quindi, tanto vale che siano loro ad integrare questa funzionalità.

È anche comprensibile la scelta di un connettore proprietario che non consenta problematiche di alcun tipo (connettendo dispositivi non compatibili) e, soprattutto, che sia "compliant" con le geometrie/dimensioni del "Sistema LEGO".

Mi lascia un po' sorpreso il fatto che non abbiano già pensato ad un cavo di PROLUNGA (non parlo di quello di conversione) utile soprattutto in alcuni scenari, tra cui i treni "pesanti". Quantomeno, dall'intervista, sembrerebbe che non abbiano valutato la possibilità di connettere due "train motor" a distanza...

Sulle dimensioni del PU Hub, in effetti, non hanno torto: tutto è stabilito principalmente delle batterie. Aver integrato i connettori all'interno  per una questione di design e di funzionalità, "ruba" senz'altro spazio ma rende tutto più compatto ed evita la presenza di un componente aggiuntivo (come l'IR Receiver).

Veniamo al nodo principale: il cavo di conversione. Le problematiche a cui loro accennano (richieste di conversione per varie funzionalità) e la filosofia che se loro devono far qualcosa, deve poter far tutto, mi lascia un po' perplesso.

Nel 99% dei casi, il cavo di conversione servirebbe solamente per poter integrare i motori già esistenti. Nel sistema PF, infatti, non esistono sensori o altri oggetti "intelligenti" che richiedo chissà quale logica di interfacciamento con protocolli o livelli di tensione diversi.

Dato che, come hanno confermato, ci stanno ragionando, mi auguro che tra qualche mese (spero non anni) si possa vedere qualcosa... nel frattempo, ho acquistato 3 luci LED PU solamente allo scopo di avere cavo+connettore e realizzarmi in casa il mio "PU to PF Cable" 😉

Altra chicca interessante che emerge dall'intervista, è la possibilità di pilotare il CONTROL+ dal telecomando PU. La domanda che mi pongo è, a questo punto, come diavolo farà a controllare 4 porte avendo solo 2 attuatori? Si potranno connettere due telecomandi ad un CONTROL+?

Sono stati un po' "fumosi" sulla possibilità di controllare due (o più) HUB dall'App. La cosa non mi quadra, dato che il nuovo 42100 usa due CONTROL+ e quindi tale possibilità dovrebbe essere già pronta.

Probabilmente è solo una questione di come implementare la gestione di più HUB dalla sezione "progettazione" dell'App.

Problema che hanno risolto diversamente all'interno dell'App specifica di controllo delle funzionalità del 42100 che, da quel che si vede nel video di Zusammecomesichiama pare essere veramente una figata 😉

Una cosa è certa: le potenzialità del nuovo ecosistema Powered Up sono molte. C'è da aspettare, adeguarsi e sperare che soddisfino almeno una parte delle esigenze di noi AFOL.

La disponibilità che il team PU ha dato (tramite la LAN) di ricevere i nostri feedback è un aspetto importantissimo. Speriamo se ne vedano i frutti nei mesi a venire...

Link to comment
Condividi su altri siti

Io spero che davvero implementino il lato Treno, ma dalle domande di @Laz e dalle loro risposte sembrerebbe di si, ma ho visto molto il discorso improntato su quello. @Laz sembrerebbe che dopo tanti anni han preso a cuore il tema treni, che sensazione hai avuto di persona?

Link to comment
Condividi su altri siti

Nei giorni scorsi è stata rilasciato un nuovo aggiornamento dell'App PU che implementa un nuovo pannello di controllo per pilotare con due slider altrettanti motori:

PUPcontroller-1024x640.png

Sostanzialmente, è un'interfaccia grafica che implementa due slider (a sx e dx), 3 pulsanti (con le icone di un volante, semaforo, e di una serie di curve) e, per finire, due indicatori numerici.

Questi componenti visuali (non modificabili dal punto di vista del layout grafico, così come non modificabile è anche lo sfondo grafico) sono mappabili ad altrettanti blocchi di programmazione.

E, soprattutto, sono pensati principalmente per pilotare una macchinina, benché possiamo usarli anche per altri scopi.

Per default, quanto si crea un nuovo progetto e si aggiunge anche "l'interfaccia visuale", vengono creati appunto i blocchi di programmazione standard per pilotate un mezzo con due motori tramite i quali si gestisce la direzionalità (è molto simile al funzionamento dell'App della Batmobile PU)

PUPcontrollerInside1-1024x640.png

Notate la nuova tab colore... "teal".

Cliccando sulla nuova tab compaiono i nuovi blocchi specifici del layout grafico.

Screenshot_20190623-075542.jpg

Da sx a dx:

1 e 2: Controller slider (forniscono il valore dello slider in funzione della loro posizione)

3, 4, 5: trigger per i rispettivi 3 pulsanti

6, 7: restituiscono il valore visualizzato rispettivamente nei due "indicatori numerici" (identificati dagli indici "1" e "2")

8,9: impostano, da programma, il valore dei due slider (1 e 2)

10,11: impostano, da programma, il valore dei due indicatori numerici (1 e 2)

Ho notato che gli slider si auto-resettano nel momento in cui viene sollevato il dito dallo schermo... comportamento correrro, ma che potrebbe non essere ideale in alcune situazioni.

In un prossimo post (lo farò nel pomeriggio) entrerò nel dettaglio di come usare questi nuovi componenti.

Nel frattempo, vi evidenzio una spiegazione veloce del "codice" di default, zommando sugli stessi:

Vista complessiva:

PUPcontrollerInside1-1024x640.png

Gestione motori:

Screenshot_20190623-075542.jpg

Gestione indicatori numerici:

Screenshot_20190623-075557.jpg

Azionamento suoni dai rispettivi 3 pulsanti di comando:

Screenshot_20190623-075618.jpg

Link to comment
Condividi su altri siti

Come promesso, seppur con un po' di ritardo, spiego più in dettaglio come usare la nuova funzionalità 'Remote Controller'.
In questa immagine ho 'fuso' la barra dei blocchi di programmazione con l'interfaccia del Remote Controller ed ho aggiunto delle frecce per indicare il rapporto di funzionamento:
blob.png

- I blocchi 1 e 2 restituiscono il valore dei rispettivi Slider 1 e Slider 2. Il valore che possono assumere gli slider è +100/-100 con autoreset al valore di default 0. In sostanza, se si trascina lo slider fino ad un certo valore, e si alza il dito, lo slider torna immediatamente a 0.
Più avanti mostrerò come modificare questo comportamento tramite un workaround, benché non sia perfetto al 100%.

Il loro uso è banalissimo. Nell'immagine qui sotto si può notare come la velocitià dei due motori connessi alle rispettive porte A e B venga controllata dal valore dei rispettivi Slider. Il blocco +/- serve ad invertire il senso di rotazione di uno dei due motori, presupponendo che gli stessi siano montati in modo speculare (tipico, in una macchinina)

blob.png

- I blocchi 3, 4 e 5 sono i trigger corrispondenti alle 3 icone-pulsanti centrali. Devono essere utilizzati in combo con il blocco "Esegui quando la condizione è vera". L'esempio qui sotto è chiarissimo: "Esegui il suono Clacson, tipo 6, quando viene premuto il pulsante con l'icona di un volante"

blob.png

- I blocchi 6 e 7, restituisco semplicemente il valore che è attualmente visualizzato nei rispetti 'Visualizzatori numerici 1-2' che sono posizionati al centro del controller. Allo stesso tempo, tali indicatori possono essere valorizzati con l'uso dei blocchi 10 e 11

In questa immagine si può notare come collegare la visualizzazione 'istantanea' del valore di uno slider, mostrandolo su uno dei due indicatori.

blob.png

- Infine, i blocchi 8 e 9 permettono di impostare, da 'programma' il valore/posizione dei rispettivi slider.
Ed è proprio grazie a questi blocchi, e all'uso di una variabile intermedia, che sono riuscito a modificare il comportamento dello slider consentendo un "trascina e blocca" su un particolare valore. Ho usato il seguente codice:
Screenshot_20190625-070403 (1).jpg

E' composto da due loop infiniti:
- quello superiore memorizza il valore dello slider 1 nella variabile 'a'. Con il valore contenuto nella stessa variabile, imposto il valore del slider. In linea di massima, questo consente di bloccare lo slider su un determinato valore. Nella realtà, bisogna attendere qualche frazione di secondo sul valore preferito per consentire al codice di funzionare.

- Il loop inferiore, invece, non fa altro che impostare la velocità del motore e uno dei due visualizzatori numeri sul valore memorizzato nella variabile 'a' in modo tale da avere non solo un'azione sul motore vero e proprio, ma anche una indicazione a schermo del valore memorizzato nella variabile 'a' ovvero il valore dello slider.

Mi rincuora il fatto che Yoshihito Isogawa abbia confermato, con un suo video, la mia stessa soluzione.

Come si può vedere, quindi, la nuova funzionalità 'Controller' è molto semplice da utilizzare e può servire soprattutto per la gestione di veicoli... si può senz'altro utilizzare anche per altri scopi ma finché non implementeranno il supporto multi-hub, resta un po' fine a se stessa. Speriamo anche che in un prossimo aggiornamento possano consentire un minimo di personalizzazione della grafica del controller...

Per ultimo, vi segnalo questa curiosità che, probabilmente, è un bug dell'App.
In alcune situazioni (ancora non ho determinato con esattezza quali) sulla barra dei blocchi appaiono 3 ulteriori blocchi di programmazione che, nella sostanza, fanno poco e nulla... semplicemente, se attivati, simulano l'effetto ottico della pressione di uno dei 3 pulsanti:
Nessuna descrizione della foto disponibile.

Se qualcosa non dovesse essere chiaro, chiedete pure 😉

Link to comment
Condividi su altri siti

Chiedo una cosa: siccome ho uno smartphone Lumia che non voglio cambiare finché non muore di morte naturale (con buona pace di whatsapp e altre app) e quindi non mi faranno mai l'app, è in programma anche un modo per controllare i PU da pc come per i mindstorms? (scusate se è già stato detto ma non ho visto i video e le 5 pagine)

Link to comment
Condividi su altri siti

Oggi ho giocato un po' con:

Mit App Inventor 2
un'estensione BLE per questa piattaforma
- Il protocollo Bluetooth del Powered Up
- 3 Hub Powered Up e altrettanti motori connessi alle porte A dei rispettivi Hub

Risultato: ne è uscita un'App per controllare fino a 3 treni dallo stesso smarphone 😄 😄😄

Ovviamente è un'accozzaglia di App, senza alcun controllo di errori/gestione delle disconnessioni e, fondamentalmente, mi interessava svilupparla solo per verificare la possibilità di collegare più Hub ad uno smartphone per poterli controllare contemporaneamente... e la cosa, ovviamente, funziona!

Per chi fosse interessato a crearsi qualcosa di 'personalizzato', può partire da questo articolo di Jorge Pereira.

Appena rendo un minimo presentabili (e soprattutto più solida l'App) la metterò a disposizione sul forum.

Screenshot_20190810-192612.thumb.jpg.7d15c1289fc8ef706029f1e5e8c26fc1.jpg

Edit: ho ri-aggiunto la foto che per qualche motivo non si vedeva...

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

Stamani ho chattato un po' con il responsabile del firmware del Powered Up perché ritengo di aver scovato un possibile bug nella procedura di upgrade del firmware stesso... nel frattempo, mi sono venute in mente altre idee su come potrebbe essere sviluppato l'ecosistema PU (anche per superare alcuni limiti attuali) affinché diventi tutto più duttile e versatile per il mondo AFOL. Vediamo se qualcuna di queste verrà implementata 😉

Nel frattempo continuo con le mie sperimentazioni 🙂

Come al solito, il materiale per sperimentare non è mai abbastanza: oggi avevo bisogno di un secondo sensore di colore/distanza (magari anche un terzo) ma benché posseggo già diversi componenti, mi manca proprio quello che mi sarebbe stato più utile per gli esperimenti odierni 😞

IMG_20190818_145234.thumb.jpg.19f494b4d41653a54984a50239b60666.jpg

 

Link to comment
Condividi su altri siti

In realtà non mi ha detto nulla di interessante o che già non sapessi. Sono io che gli ho evidenziato un problema in fase di upgrade del firmware che ho già riscontrato su 3 Hub (complessivamente ne ho 9) e che io sono riuscito a bypassare avendo, fortunatamente, più hub "vergini" da aggiornare. Approfondiranno la mia segnalazione...

Per il resto, spero di riuscire ad entrare tra i beta tester delle nuove versioni del firmware e dell'App.

Nel frattempo ho "esploso" l'Apk dell'App LEGO ed ho trovato i binari delle varie release del firmware:

IMG_20190819_071044.thumb.jpg.508b4a3baf8b0a08f250c7651f243a7a.jpg

La cosa interessante è la dimensione: poco più di 70Kb.

A questi, se non ho interpretato male quel poco di documentazione del protocollo LPW rilasciato a dicembre da LEGO, vanno aggiunti quelli dello stack radio.

In ogni caso, avanzano comunque "parecchi" Kb a disposizione per salvare nella memoria del dispositivo alcune sequenze di comandi definite dall'utente.

Il pulsante verde, in base allo stato del dispositivo e al modo/volte che viene premuti, può essere benissimo utilizzato per far entrare lo smart hub in modalità "autonoma" e lanciare l'esecuzione dei comandi precaricati.

Questo permetterebbe di usare lo smart hub senza necessità di uno smartphone o del suo controller manuale (il PU Remote).

Chiaramente, più di semplici sequenze temporali e/o controllate dallo stato di un sensore di colore/distanza non si può fare...

Per cose più articolate, sarà necessario comunque un "Gestore" esterno che sia in grado di pilotare più hub parallelamente.

La mia App PU Trains già implementa una funzionalità di sequencer multi-hub ed ho pensato che vale la pena estrapolare questa funzionalità in un'App separata e più specifica, nell'attesa di una futura versione dell'App ufficiale che implementi il multi-hub.

Preparate i vostri hub, motori e sensori per provarla a breve 😉

Link to comment
Condividi su altri siti

"Spulciando" la documentazione del LEGO Wireless Protocol (aka LWP) c'è una parte della stessa che fa ben sperare per il futuro...

È quella che riguarda la possibilità di creare una rete di device (HUB) con uno tra essi che funzioni da 'master'.

https://LEGO.github.io/LEGO-ble-wireless-protocol-docs/index.html#h-w-network-commands

Infatti, *tutti* i comandi previsti dal LWP hanno un 'parametro' Hub ID (un byte, per ora necessariamente da impostare sul valore 0x00) che viene così descritto:

Hub identifier is needed when a Hub is connected as a bridge to a network formerly build without a SMART DEVICE. E.g. HUB A is connected to HUB B and HUB C is added. After a while the SMART DEVICE is connected to the network. HUB A is now acting as a Central for B and C while acting as a Peripheral to the SMART DEVICE. Data from B and C will be routed through HUB A.

Questa possibilità è molto utile, perché permette di espandere il numero di device collegabili ad uno smartphone (che, come ho già spiegato in precedenza, possono appunto avere dei limiti sul numero di HUB contemporanei).

Da ieri è in vendita in nuovo treno Disney e quindi è plausibile che a giorni venga rilasciata anche una nuova versione dell'App, sperando che la stessa includa nuove feature anche dal punto di vista del firmware.

Link to comment
Condividi su altri siti

3 ore fa, GianCann ha scritto:

Da ieri è in vendita in nuovo treno Disney e quindi è plausibile che a giorni venga rilasciata anche una nuova versione dell'App, sperando che la stessa includa nuove feature anche dal punto di vista del firmware

CVD, sull'Apple Store è già disponibile da poche ore. Sul Google Play Store ancora nulla...

Sfortunatamente, questa nuova versione include solo il profilo del treno Disney, ma nessun aggiornamento del firmware dello Smart Hub.

Link to comment
Condividi su altri siti

Nel proseguire la sperimentazione con il sistema Powered Up, finchè LEGO non deciderà di rilasciare ulteriori informazioni/documentazioni, bisogna lavorare di 'reverse engineering'.

Pertanto, dato che l'unico sensore "intelligente" è quello del Boost, ho deciso di aprirne uno, per analizzare l'elettronica e riuscire a capire se c'è modo di creare un sensore 'custom'. Nella documentazione del protocollo LPW, infatti, c'è una comando 'WriteDirect' che permette di inviare byte direttamente all'hardware connesso ad una delle due porte. Questo significa che (al 90%) c'è un comunicazione seriale che avviene tramite i pin 5-6 del connettore PU. Nei prossimi giorni proverò a fare qualche test con un adattatore seriale, benché dubito di riuscire a far nulla di buono, perchè c'è sicuramente un meccanismo di identificazione di un dispositivo dotato di seriale e un conseguente protocollo di handshaking...

Nel frattempo, allego alcune immagini per i più curiosi:

IMG_20190823_080958.thumb.jpg.e0f511879426d27af69599db9b759e32.jpg

IMG_20190823_075907.thumb.jpg.deb98843124b624fad1b81fc5adc3b06.jpg

Link to comment
Condividi su altri siti

Ieri pomeriggio ho speso un'oretta per sperimentare qualcosa con un collegamento seriale.

Prima di mettermi al lavoro, ho scambiato qualche messaggio con Joege Pereira: già in passato aveva provato a "sniffare" la comunicazione seriale tra il Boost Move Hub e il sensore di distanza WeDo 2.0, oltre che con il motore esterno del Boost.

Sfortunatamente, com'era del resto prevedibile, senza la documentazione del protocollo wired è praticamente impossibile riuscire a scambiare dati via seriale. Speravo almeno di riuscire a scrivere qualche byte dall'Hub alla seriale utilizzando il comando WriteDirect, ma non c'è stato verso 😞

Però, almeno una cosa son riuscita a "portarla a casa"... ovvero essere in grado di intercettare un contatto aperto/chiuso e quindi avere la base per realizzare un sensore di tocco/switch magnetico (che poi è proprio il primo tipo di sensore che avevo in mente di realizzare).

Il tutto si basa sui messaggi di notifica che lo Smart Hub invia sul canale Bluetooth quando un dispositivo viene connesso/rimosso dalle porte dell'Hub.

Questa feature è interessante perché permette al sistema PU di adattarsi "dinamicamente" ai dispositivi che vengono collegati/disconnessi anche mentre l'Hub è accesso e di notificare questi cambiamenti ad una eventuale App o comunque ad un altro dispositivo smart (in futuro, se LEGO prosegue lo sviluppo in tal senso, sarà possibile avere reti di Hub interconnessi).

Ma come faccio a simulare il collegamento/disconnessione di un dispositivo e far scatenare i relativi messaggi? 

La risposta è molto banale: basta collegare tra di loro i pin 3 (gnd) e 5 (rx) del cavetto PU interponendo una resistenza (io ne ho utilizzata una da 220 ohm).

Se questo collegamento dura più di 400/500ms, lo Smart Hub genera l'evento "Dispositivo connesso". Quando il collegamento viene interrotto, viene generato il messaggio "dispositivo disconnesso".

Tenete conto che entrambi i messaggi contengono delle informazioni utili: hanno un byte che identifica qual'è la porta interessata dalla connessione/disconnessione e, soprattutto, il messaggio di "dispositivo connesso" include un byte che identifica il tipo di dispositivo... e il tipo di dispositivo viene modificato proprio grazie al valore della resistenza interposta tra i due pin.

È sufficiente intercettare e gestire questi due messaggi per implementare un sensore On/Off.

Sicuramente non è la miglior soluzione possibile, ma finché LEGO non rilascerà la documentazione (e la rilascerà, senza dubbio...) non si può fare molto altro.

Appena ho risolto il problema del "timing" della chiusura del contatto (devo fare un piccolo circuitino che a fronte di un micro contatto generi un impulso più lungo) entrerò nel dettaglio con lo schema e video di questo workaround.

P.S. Ovviamente ho provato a chiedere a LEGO se fosse stato possibile avere qualche informazione in più/piccola anticipazione sul protocollo wired. La risposta era scontata... ma ci ho comunque provato 😉

Link to comment
Condividi su altri siti

Sabato scorso, Jetro ha pubblicato un video (fornitogli da una "fonte attendibile") nel quale si vedono in azione due Move Hub (Boost) che lavorano in sincronia tramite una versione beta dell'App LEGO che supporterà il "multi Hub":

Nell'articolo che accompagna il video, si parla anche delle tempistiche per il rilascio di questa nuova versione: fine novembre/inizio dicembre.

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

Il 22/8/2019 alle 17:38, GianCann ha scritto:

CVD, sull'Apple Store è già disponibile da poche ore. Sul Google Play Store ancora nulla...

A distanza di qualche giorno, l'aggiornamento 2.3 dell'App per Android ancora non risulta disponibile per il download.

Poco male (se non per chi ha acquistato il treno Disney) dato che l'unica novità introdotta è questa:

Version 2.3.0

If you are into trains, the LEGO® Powered Up app just got an exciting new update. With the brand-new LEGO@ Disney Train controller you can control the train, play steam whistle and bell sounds, and stop at the iconic train station to welcome more passengers on board. Additionally, we have added custom LEGO® Disney Train background music for a summer and a winter theme setting the stage for any train adventure you can imagine.

Link to comment
Condividi su altri siti

Ritornando sul discorso "programmazione autonoma" dello Smart Hub (tanto caro a @Pix), il video dell'ultimo GBC di Akiyuki è un lampante esempio di come possa tornare utile il "caricamento" in memoria di un semplice programma (chiamiamolo 'scketch', come per Arduino) che venga eseguito in loop senza la necessità di avere uno Smartphone connesso.

Se guardate tutto il video, noterete che vengono utilizzati 4/5 smartphone, uno per ogni smart hub/move hub.

Entro l'anno, con il rilascio di un importante aggiornamento dell'App Powered Up, questo "inconveniente" dovrebbe risolversi benché resterà sempre il limite tecnico di quanti dispositivi BLE sarà in grado di supportare il nostro smartphone.

Limite che, almeno fino a 5 device, potrebbe essere superato utilizzando il Remote PU Controller come "gateway". In quel caso, lo smartphone si collegherebbe solo ed esclusivamente al Remote PU al quale, contemporaneamente, saranno connessi i vari smart hub da controllare.

In questi giorni, oltre a continuare il mio studio sullo smart hub, sto redigendo l'articolo sui motori (si, sarebbe dovuto esser pronto da settimane...) ed ogni giorno ne scopro una nuova.

Anche grazie agli esperimenti di Philo, che sta tentando di "spacchettare" il protocollo di comunicazione wired, è emerso che i motori L e XL rilasciati con il 42099 hanno una posizione 0 assoluta, così come i motori dello Spike (su quest'ultimi, la posizione dello zero assoluto è riportata anche visivamente sullo chassis).

Ancora non è ben chiaro come "comandare" il motore e come "intercettare" la comunicazione del "vai allo 0 assoluto/sono sullo 0 assoluto", dato che questa caratteristica non è contemplata nella documentazione rilasciata da LEGO lo scorso dicembre.

Si sta procedendo quindi per tentativi...

I motori tachimetrici, incluso quello introdotto con il boost, hanno inoltre una caratteristica molto interessante: l'intercettazione dello stallo.

Se il motore viene avviato e l'albero motore viene bloccato, dopo circa un secondo viene "staccata" l'alimentazione al motore.

Eseguendo alcuni test, ho appurato che nel momento in cui viene rilevato lo stallo (e tolta l'alimentazione) l'hub genera un messaggio di tipo "Port Feedback" tramite il quale viene informato il PU Remote, o il nostro smartphone, che il comando precedente (quello di "Start power") è stato scartato.

Questo messaggio contiene un payload in formato "bit mask" in quale contiene un bit (il 6°) non documentato.

Ho chiesto quindi al responsabile del firmware di "sganciare" questa informazione per comprendere al meglio il tipo di informazione fornita dall'hub (sono in attesa di un riscontro).

Un'altra cosa che non è chiara, al momento, è se la gestione dello stallo è implementata nell'elettronica del motore (possibile, dato che il chip a bordo dei motori PU intelligenti è in grado di supportare questa funzione) o se viene gestita direttamente dall'hub che riceve il dato sulla rotazione dell'albero.

Ovviamente, né il motore del treno, né il motore WeDo 2.0 (o simple motor, come volete chiamarlo) implementano la gestione dello stallo, non avendo alcuna elettronica interna.

Link to comment
Condividi su altri siti

26 minuti fa, GianCann ha scritto:

Ritornando sul discorso "programmazione autonoma" dello Smart Hub (tanto caro a @Pix), il video dell'ultimo GBC di Akiyuki è un lampante esempio di come possa tornare utile il "caricamento" in memoria di un semplice programma (chiamiamolo 'scketch', come per Arduino) che venga eseguito in loop senza la necessità di avere uno Smartphone connesso.

Esatto...ma quindi dici che "sarà" possibile? oppure non ho capito...

Link to comment
Condividi su altri siti

55 minuti fa, Pix ha scritto:

Esatto...ma quindi dici che "sarà" possibile? oppure non ho capito...

Da quelle che sono le informazioni disponibili al momento, entro l'anno (fine novembre/inizio dicembre) verrà rilasciato un aggiornamento dell'App LEGO che supporterà il "multi hub".

App che @Piru Brick ha già visto in forma prototipale, come scrisse lo scorso aprile...

Il 4/4/2019 alle 22:21, Piru Brick ha scritto:

Lo scorso Giugno ho ho visto al lavoro un'app prototipale a disposizione soltanto degli sviluppatori e Designer LEGO.
Con questa app, riescono a controllare un numero elevato di periferiche wedoo 2.0, boost e power functions + allo stesso tempo.

Nota: il "numero elevato" è ovviamente relativo, ripeto, dato che tutto dipende dalla capacità/firmware dello stack bluetooth dello smartphone.
Il PU remote, montando il chip BLE cc2640 della Texas Instruments, può supportare al massimo 8 slave.

Riguardo, invece, la memorizzazione *interna* alla flash, non si sa nulla oltre al fatto che "tecnicamente si potrebbe".

Dipenderà sostanzialmente da due fattori:
1) se TLG deciderà di implementare la funzionalità di 'Salva in memoria' (ha già ricevuto diversi feedback/suggerimenti da parte della community AFOL, in tal senso)
2) Se qualcuno, prima di qualsiasi iniziativa di TLG in tal senso, riuscirà a flashare, con un firmware alternativo, il chip STM32F030 presente a bordo dello smart hub. 
Il chip, infatti, può essere riprogrammato in modalità OTA (i comandi per farlo sono specificati qui) ma, per riprogrammarlo servono varie informazioni che necessitano di una lunga fase di reverse engineering. Infatti, al di là di conoscere l'architettura e il set di istruzioni del chip (ben documentate, ovviamente) è necessario capire quali pin di I/O vengono utilizzati, le modalità di comunicazione con l'elettronica di supporto (ad esempio, i driver PWM delle porte), il protocollo di comunicazione chip-chip tra STM32F030 e cc2640 (la parte radio BLE) e diverse altre cose ancora... un "lavorone" considerato che lo smart hub, alla fine, ha solo due porte...

In passato, questa cosa fu fatta con l'EV3, ma dubito che qualcuno sia veramente interessato a farlo per lo smart hub... quindi, personalmente, confido molto nel punto 1.

Io, al momento, sono solo riuscito ad estrapolare (dall'App LEGO) i binari del firmware originale LEGO. Questo significa che potrei provare a "pasticciare" con uno smart hub, provando a compilare un firmware che faccia la cosa più banale di questo mondo: attivare l'uscita PWM all'accensione dello stesso. Se ho compreso bene come funziona il processo di boot, forse dovrei riuscire a ricaricare il firmware originale... mal che vado, avrò un brick 4x8x3 pagato 18 euro 😄

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

 

12 ore fa, GianCann ha scritto:

Ho chiesto quindi al responsabile del firmware di "sganciare" questa informazione per comprendere al meglio il tipo di informazione fornita dall'hub (sono in attesa di un riscontro).

Stamani ho ricevuto l'informazione richiesta, ma mi è stato chiesto di non diffonderla finché non verrà rilasciato l'aggiornamento della documentazione (entro un paio di settimane).

Mi ha fatto piacere scoprire che il significato di quello specifico bit è proprio quello che avevo ipotizzato.

Nel frattempo, ho smontato un motore XL Technic: ero troppo curioso di scoprire come fosse implementato il posizionamento assoluto.

IMG_20190905_172048.thumb.jpg.705411f836c0c82ead9c32a6d3178bae.jpg

È stato interessante scoprire che viene utilizzato un chip sensore magnetico lineare con rilevazione della posizione assoluta (la sigla sul chip non permette di identificarlo con precisione) che al 99% comunica tramite protocollo SPI con il secondo chip (un micro) che a sua volta comunica via seriale con l'Hub.

Vi anticipo qualche di foto di dettaglio del sensore, rimandando ulteriori dettagli all'articolo dedicato ai motori di prossima pubblicazione.

IMG_20190905_170420.jpg

IMG_20190905_170332.jpg

IMG_20190905_170320.jpg

IMG_20190905_170406.jpg

IMG_20190905_170353.jpg

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

Philo ha appena reso disponibili, sul suo sito, una serie di interessanti documenti tecnici:

- The Powered Up connector (Mechanical characteristics, pinout and signal description).

http://philohome.com/wedo2reverse/connect.htm

- The Powered Up serial link protocol (An overview of the dialog between Powered Up hubs and "intelligent" devices).
http://philohome.com/wedo2reverse/protocol.htm

- Power consumption of LEGO Bluetooth elements
http://philohome.com/wedo2reverse/consumption.htm

Link to comment
Condividi su altri siti

Vi segnalo che è disponibile la versione 2.3.3 dell'App.

La novità di questa versione è solo l'aggiornamento del firmware per lo smart hub, per risolvere un problema introdotto con la precedente versione che non permetteva più il controllo corretto (dal controller fisico) di due hub associati sullo stesso canale.

La versione per Android è disponibile qui:

https://play.google.com/store/apps/details?id=com.LEGO.common.poweredup

Domani farò l'aggiornamento dei miei hub e vi saprò dire con esattezza il numero di versione.

Link to comment
Condividi su altri siti

Oggi è stato rilasciato l'aggiornamento 2.4.0 della App LEGO.

Interessanti novità:

- Una nuova schermata "controller" (macchina da corsa)

- La possibilità di creare blocci di codice personalizzati (vi preparo un post ad hoc per spiegarvi come funzionano)

- Poco altro di veramente interessante (a prima vista).

 

Screenshot_20191030-112642.jpg

Screenshot_20191030-112906.jpg

Screenshot_20191030-112732.jpg

Screenshot_20191030-112931.jpg

Screenshot_20191030-112913.jpg

Screenshot_20191030-112939.jpg

Screenshot_20191030-122321.jpg

Link to comment
Condividi su altri siti

Ho trovato giusto 5 minuti per connettermi ad un HUB ed ho notato che è partito l'aggiornamento del firmware:

Screenshot_20191030-211515.thumb.jpg.46fa3a35d20545d8c34454053a8d992c.jpg

Ho quindi preso un secondo HUB, ed ho aggiornato anche questo, ed ho provato a disabilitare la nuova impostazione "Auto Connect".

Ebbene, ora l'App non si connette più automaticamente all'HUB che "sente" nelle vicinanze ed è in gradi di elencare più di un HUB acceso e in modalità discovery:

Screenshot_20191030-211924.thumb.jpg.8ce66ade3c8368eb6e8288c948c1d66a.jpg

Screenshot_20191030-211848.thumb.jpg.ffcd875f3156be8980d75c43131b837f.jpg

Peccato non si possa ancora connettere più di un HUB contemporaneamente... però, questo sembrerebbe un primo passo verso quella direzione 😉

Link to comment
Condividi su altri siti

Il 5/9/2019 alle 19:58, GianCann ha scritto:

mi è stato chiesto di non diffonderla finché non verrà rilasciato l'aggiornamento della documentazione (entro un paio di settimane).

Sono ormai passati due mesi da questa mia dichiarazione, ma nessun aggiornamento della documentazione è stato rilasciato. In questi giorni ho chiesto se ci fossero aggiornamenti in merito, ma non ho ricevuto risposta. Pazienza.

Nel frattempo, la nuova versione dell'App rilasciata ieri introduce una interessante novità ovvero la possibilità di creare dei blocchi di codice personalizzati (in "programmese": funzioni/subroutine) che ci consentono di incapsulare una certa logica del nostro programma, al fine di riutilizzarla più volte all'interno del "programma principale" senza dover ogni volta scrivere l'intera logica.

Vi mostro un esempio semplicemente, creando un nuovo blocco "Start condizionale" che viene attivato nel momento il cui il (nuovo) componente joystick assume un valore superiore a 50, direzione forward.

Il componente Joystick è sostanzialmente un componente grafico che reagisce allo spostamento della sua manopola (normalmente in posizione centrale) in un'area circolare circoscritta, in una direzione qualsiasi dei 360°. Il Joystick restituisce istantaneamente 2 valori proporzionali alla posizione x/y della manopola all'interno di quest'area circolare. La posizione centrale (quella di default) equivale a x=0/y=0.

Spostando la manopola verso l'esterno (in una qualsiasi direzione) i valori x/y aumentano/diminuiscono in un range +100/-100 a seconda dell'angolo di direzione e dalla distanza dal punto centrale.

Do per scontato che chiunque legga, abbia più che ben a mente questo tipo di controller, dato che almeno una volta nella vita, vi sarà capitato di giocare ad un videogame 🙂

Screenshot_20191030-112642.thumb.jpg.821f240ad6fe7facb4aa329262b17c86.jpg

IMG_20191031_072308.jpg.2cbc32d75617ee4781dd7b636e224aae.jpg

Il blocco custom che andrò a creare non fa nulla di particolarmente utile. Semplicemente, scatenerà l'esecuzione di una sequenza di blocchi-codice quando il valore dell'asse X del joystick supererà quota 50.

Usero poi questo mio blocco personalizzato per eseguire un suono (così potete testarlo senza alcun hun connesso).

Ecco i vari step da seguire per creare un blocco personalizzato.

Per prima cosa è necessario creare un nuovo progetto selezionando il nuovo tipo di controller grafico:

Screenshot_20191031-074400.thumb.jpg.4904d011bef9a64e84d381a2a4598657.jpg

Successivamente, entrate nella sezione di programmazione, cliccando sull'icona in alto a destra:IMG_20191031_074625.thumb.jpg.3ea32109d9ed1a4dd77f9defe40b18c8.jpg

Vi si presenterà un "canvas" già predisposto con diversi blocchi funzionali, che sono quelli per il funzionamento di default del controller.

Screenshot_20191031-074849.thumb.jpg.987513ecc6ddb0a6477ed61b2432c397.jpg

Cancellate tutto! E poi cliccate sull'ultima "tab" (quella grigiastra, dopo quella bianca) e vi ritroverete in questa schermata che rappresenta il contenitore dei nostri blocchi custom (nel vostra schermata ne troverete alcuni già pronti, che sono appunto quelli del progetto di default, e che potete tranquillamente cancellare). Alla fine, dovreste trovarvi in questa situazione "pulita".

Screenshot_20191031-064726.thumb.jpg.2e20bc47568fba094eb856e0ba58c1ee.jpg

Cliccate sull'icona in basso a sinistra, per aggiungere una nuova funzione personalizzata e vi ritroverete in questa nuova schermata. L'icona in alto, al centro, vi evidenzia che siete all'interno di una funzione personalizzata.

Screenshot_20191031-064737.thumb.jpg.a3d6ebaa6ebb7ba9d0bd057cdf04368c.jpg

Screenshot_20191031-064745.thumb.jpg.ba5802a019f5c88a8d1817981e14ea47.jpg

E possibile cambiare l'immagine di quell'icona (che sarà ciò che poi vedremo rappresentato sul blocco funzione) cliccando sull'icona stessa:

Screenshot_20191031-064755.thumb.jpg.726f59ec023252e9538fbaff369e777b.jpg

Screenshot_20191031-064806.thumb.jpg.70e765056d5e3cfd9c13ca742cf792db.jpg

Io, per questo esempio, ho usato l'immagine di 3 numeri in un rettangolo:

Screenshot_20191031-064822.thumb.jpg.612c73659509a73d604f60245f2a2ea9.jpg

Cliccando invece sulla chiave inglese posta nell'angolo sinistro inferiore dell'icona, è possibile selezionare il colore che rappresenterà il nostro blocco e, soprattutto, il tipo di blocco che vogliamo creare. In questo esempio, useremo un blocco "start" (delle 3 icone, quella centrale):

Screenshot_20191031-064829.thumb.jpg.fa2385cec5c77fa39935a90c57ba2afd.jpg

La forma dell'icona cambierà di conseguenza. Quello che vedete nella successiva immagine è il "codice" della mia funzione: Usa il blocco di input del valore x (spostamento in avanti/indietro) del joystick, associato ad un comparatore "maggiore di (valore)". Il valore che ho impostato è 50 (metà corsa tra il centro e il bordo superiore dell'area circolare in cui si muove la manopola). Se la condizione è soddisfatta, "eccita" un blocco "start" standard.

Screenshot_20191031-065505.thumb.jpg.728529b786aad581775070ad862b34b1.jpg

Il codice è tutto qui. A questo punto, torno indietro nel mio progetto principale (cliccando sull'icona "<" in alto a sinistra) e aggiungo il mio nuovo blocco al progetto, al quale aggancio un blocco sonoro.

Screenshot_20191031-065550.thumb.jpg.c3a0a7ba698246cc3ff173ee4096efb5.jpg

A questo punto, possiamo entrare nella modalità "gioco" (cliccando sull'icona del gamepad, in alto a dx). Provate a giocare leggermente con il joystick, spostandolo pochissimo... non succederà nulla.

Però, se lo spostate in avanti, piano piano, ad un certo punto sentirete eseguire il suono che avete predisposto. Quello sarà il punto in cui il valore del joystick avrà superato quota 50.

L'esempio è molto banale, ma spero che vi possa far comprendere il concetto di base dei blocchi personalizzati, ovvero quello di semplificare lo schema del programma principale, suddividendo alcune logiche applicative all'interno di sotto-funzioni riutilizzabili più volte, in punti diversi del programma principale.

Appena avrò tempo (oramai dopo BiFF2019) vi mostrerò dei casi d'uso più interessanti 😉

Link to comment
Condividi su altri siti

Il 16/11/2019 alle 13:17, Asterix ha scritto:

hai news sulla data di rilascio delle funzionalità multi hub?

No, nessuna novità al riguardo. Ho più volte chiesto notizie anch'io (anche sul rilascio della documentazione aggiornata relativa al protocollo LWP che sarebbe dovuta uscire a fine settembre/inizio ottobre) ma, al momento, tutto tace.

Il 16/11/2019 alle 13:17, Asterix ha scritto:

esiste una beta o similare?

Sicuramente esiste, ma nonostante abbia più volte chiesto di essere preso in considerazione per una eventuale partecipazione ad un programma di 'beta testing', non c'è stato modo di avere ulteriori informazioni.

Il 16/11/2019 alle 13:17, Asterix ha scritto:

... BiFF é finito

Tra qualche giorni riprenderò a lavorare su ATS, sia versione mobile, sia versione 'Raspy' 😉

Link to comment
Condividi su altri siti

Vi giro questa:

============

Ready for an early Christmas present? We are super exited to reach this milestone in our digital system in play, with LEGO Powered Up 3.0. With this update we hope to further empower your creativity and enable all of you to rebuild the world. Also, we have a fresh new look!

What’s new?

·         For those of you that have more than one hub, good news, you are now able to connect, address, code, and control multiple hubs (up to four actually).

·         The app now fully supports the new LEGO TECHNIC hardware. You are now able to connect the new LEGO TECHNIC hub, and use the internal tilt sensor, as well as the new LEGO TECHNIC motors. For the real techy ones, the app can read values from internal sensors (orientation (X, Y, Z), and acceleration (X, Y, Z) of the TECHNIC Medium Hub (Hub128). From the app you can pair motors on port AB, and CD. The app also supports the TECHNIC Large Linear Motor (Motor no. 2) and TECHNIC XL Linear Motor (Motor no. 3). From the app you can regulate power, speed and position of motors.

·         Last but not least, the app has gotten a makeover! We’ve given the interior of the two lobbies a thorough clean-up and made it easier for you to create new projects. We’ve also cleaned up the canvas a bit, and don’t worry, all of your canvas features are still available in the little menu in the bottom right corner.

Feedback wanted

This is just the beginning. With this update comes a promise and commitment to keep improving and listening to your feedback. If it’s not too much to ask, please help us become even better by sharing your ideas for improvements, and your awesome creations with the LEGO Powered Up app.

==========

In breve, hub multipli (fino a quattro), supporto hardware TECHNIC, migliorata l'interfaccia. Se avete suggerimenti, o domande, fateli pure qui, prima di metà gennaio verranno girati a chi di dovere.

Link to comment
Condividi su altri siti

8 ore fa, Laz ha scritto:

prima di metà gennaio verranno girati a chi di dovere

Non vedo l'ora di provare questa nuova versione. Non mi è chiaro se la rilasciano subito ("Ready for an early Christmas present?" ) oppure aspetteranno metà gennaio, dopo aver ricevuto suggerimenti/feedback...

Comunque, al momento, per Android non è disponibile ma potrebbe essere solo questione di ore/giorni, dovuti alle tempistiche di deploy di Google Play /Apple Store.

Link to comment
Condividi su altri siti

10 ore fa, Laz ha scritto:

In breve, hub multipli (fino a quattro), supporto hardware TECHNIC, migliorata l'interfaccia. Se avete suggerimenti, o domande, fateli pure qui, prima di metà gennaio verranno girati a chi di dovere.

Eh, la domanda è quando saranno programmabili senza rimanere attaccati a un Device...

Link to comment
Condividi su altri siti

2 ore fa, GianCann ha scritto:

Non vedo l'ora di provare questa nuova versione. Non mi è chiaro se la rilasciano subito ("Ready for an early Christmas present?" ) oppure aspetteranno metà gennaio, dopo aver ricevuto suggerimenti/feedback...

Verrà rilasciata a breve, ma non c'è ancora. Penso prima di Natale, comunque!

Link to comment
Condividi su altri siti

23 ore fa, Pix ha scritto:

Eh, la domanda è quando saranno programmabili senza rimanere attaccati a un Device...

Prima o poi succederà, perché sono in molti a chiederlo.

Tra le priorità, comunque, ritengo che la questione del multi-hub sia nettamente più importante rispetto "l'indipendenza" da un controller/device esterno.

Dopodiché, mi aspetto il rilascio della documentazione per lo sviluppo di sensori di terze parti, o il rilascio di nuovi sensori (come quello di 'tocco') e/o attuatori.
Ho molte aspettative in questa nuova versione dell'App e non vedo l'ora di poterla provare.... purtroppo, a 36 ore dall'annuncio, non risulta ancora disponibile...

@Laz intanto ti anticipo una domanda che potrai fare:
- E' possibile entrare nel programma di beta testing delle nuove versioni dell'App?

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...