pozz snipped-for-privacy@gmail.com ha scritto:
Ah ecco, bisognava guardare anche il secondo link, :-)
pozz snipped-for-privacy@gmail.com ha scritto:
Ah ecco, bisognava guardare anche il secondo link, :-)
"alfio" snipped-for-privacy@alfio.net ha scritto:
sono motori a spazzola (2 fili) gli altri sono degli encoder e/o dei controller.
i motori lego possono fare sia la trazione sia il posizionamento angolare come nei servo modellistici, solo che il feedback per fermare la posizione è controllato da circuiti esterni.
i modelli Lego hanno dei controller integrali a pila, ma x sperimentare ci sono anche delle schede (HAT) che si interfacciano con raspberry e si programmano in python.
pozz snipped-for-privacy@gmail.com ha scritto:
costa uno sproposito, io vedo un hub, tre motori e una manciata di mattoncini, ma chi è l'acquirente tipo? credo le scuole, nn dei privati...
Mi riferisco a questo[1]. Qualcuno l'ha aperto[2].
Mi sembra un normalissimo motore in continua, non passo passo. Se non ho capito male, misura la posizione angolare assoluta (0-360°) tramite un sensore ad effetto hall.
Il software di programmazione permette di eseguire delle rotazioni in gradi. Come funziona? Che tipo di tensione viene generata sul motore? E' un classico circuito di controllo ad anello chiuso?
"pozz" ha scritto nel messaggio news:vdc2jn$1qsu4$ snipped-for-privacy@dont-email.me...
Mi riferisco a questo[1]. Qualcuno l'ha aperto[2].
cosa te lo fa pensare ? io vedo un connettore a 6 poli
Molto probabilmente è un servo a rotazione continua (in soldoni un motorino cc demoltiplicato) con feedback magnetico realizzato con sensori tipo l'AS5600, che può uscire con i2c, pwm e analogica.
Il 29/09/2024 23:23, alfio ha scritto:
Questo:
Più o meno quello che pensavo io.
In soldoni c'è:
- un circuito che genera una tensione (positiva o negativa per cambiare verso di rotazione), probabilmente un ponte H
- un sensore ad effetto Hall che misura la posizione assoluta angolare
- un circuito di controllo ad anello chiuso che ha come goal la nuova posizione angolare richiesta e come variabile di controlla la tensione sul motore
Giusto?
Cosa succede se, per un qualche motivo (tipo cerco di ruotare il motore a mano), il motore perde la sua posizione? Il circuito ad anello chiuso è sempre attivo, quindi se ne accorge e cerca di applicare una tensione per cercare di tornare alla posizione richiesta dall'ultima istruzione del programma?
"Androidino da Tradate" ha scritto nel messaggio news: snipped-for-privacy@mid.individual.net...
dopo aver aperto anche il secondo link, mi e' tutto piu' chiaro :-)
Si, quasi certamente usando PWM che è più efficiente.
Si, almeno mi sembra il metodo più semplice, anche se cercano di farlo sembrare complicato per venderlo ad un costo molto superiore al dovuto.
Dipende. Se usa un anello interno per correggere l'errore, farà tutto lui, ma potrebbe anche contare sulla logica esterna, per es. riportando sul connettore ingressi e uscite PWM/i2c di motore e trasduttore e limitandosi a pilotare il motore e riportarne la posizione ma senza nessun altro intervento.
In effetti la logica di controllo potrebbe stare *nel* motore oppure nell'hub, che è un oggetto programmabile intelligente connesso ad un PC tramite BT o USB. Io propendo per la prima.
Ad ogni modo la mia domanda era indipendente dalla "posizione" della logica di controllo. Mi chiedevo se, in questo tipo di applicazioni, la posizione del motore definita dal software viene, oltre che raggiunta, anche mantenuta dalla logica di controllo anche se ci dovessero essere dei "disturbi".
Per esempio, se il motore deve alzare un braccio robotico, chiaramente deve vincere la gravità. Una volta raggiunta la posizione, per esempio
45° di elevazione, non potrebbe più "rilasciare" il controllo sul motore staccando la tensione, in quanto la gravità farebbe ricadere il braccio nel punto più in basso.Stando a questo ragionamento, il motore dovrebbe essere sempre e continuamente pilotato e controllato durante l'esecuzione del programma.
Il giorno Sun, 29 Sep 2024 23:23:41 +0200 "alfio" snipped-for-privacy@alfio.net ha scritto:
anche l'orecchiometro, dal vivo. Il passo-passo fa "tratratra", quello a spazzole fa "vrrrrr".
Il giorno Mon, 30 Sep 2024 14:05:31 +0200 (GMT+02:00) Androidino da Tradate snipped-for-privacy@gmail.com ha scritto:
HAT = H)ardware A)ttached on T)op
HAT e' il nome Raspberry di quello che in ambiente Arduino si chiama "shield" (ignoro se anche shield sia un acronimo).
Sarebbe la cosa più logica, anche se limitante per alcuni usi dove si vorrebbe il controllo completo. Come per es. avere una macchina RC che in caso di derapata gestisca automaticamente il controsterzo: semplificherebbe il controllo in modo impressionante, ma nel farlo impedirebbe per es. di fare un testacoda volontario. Così per dire, tanto per fare un esempio.
Questo nel caso di quel servo non è facile scoprirlo perchè almeno uno dei chips è ovviamente o creato a richiesta o rimarchiato in modo che una ricerca non porti a nulla. Si potrebbero però intercettare le linee che collegano il sensore al controller a bordo per vedere se implementano in qualche modo un loop, e allora uno saprebbe che almeno parte del controllo è effettuata all'interno del servo. Oppure esaminare il controllo sniffando quello che viaggia sui cavi.
Alcuni hanno i freni: raggiungono la posizione e poi bloccano tutto fino al nuovo comando.
E probabilmente è così; resta da capire se il controllo sia interno al motore, quindi da fuori viene soll aggiornata la posizione richiesta, o esterno, e quindi da fuori viene anche gestito il feedback con la correzione dell'errore.
Ma il software è totalmente aperto, o si appoggia a moduli, firmware, librerie, hardware ecc. chiusi? Se fosse tutto aperto basterebbe spiluccare quello per trovare l'eventuale controllo di correzione.
Il giorno Tue, 1 Oct 2024 16:40:42 -0000 (UTC) asdf snipped-for-privacy@nospam.invalid ha scritto:
In base a quello che ricordo con l' HAT raspberry, il motore (che era di quelli diritti e non angolare come questi "Spike" (che prezzi!)) restituiva solo dei valori grezzi generati dai sensori a bordo del motore (di velocita', posizione ecc.) e poi doveva essere il programma python a decidere cosa fare di queste informazioni.
non serve sniffare, e' gia' tutto previsto:
RPI BUILD HAT: Raspberry Pi - Build HAT comprare da reichelt
do rotate 1 ms dx read posizione until posizione = prefissata end do
Essendo un prodotto educational, per definizione e' tutto aperto come le gambe di una groupie.
Non penso ci sia posto per i freni in quell'oggetto così piccolo. Inoltre, anche i freni vanno "attivati" con dell'energia, tanto vale tenere in posizione il motore non abbandando il suo controllo.
Sì, ma per quello che volevo capire io, poco male.
In teoria è tutto open. Dice che nell'hub ci gira un OS MicroPython e penso che anche le librerie di interfacciamento con i driver siano open, ma non ci ho guardato.
Il 01/10/2024 20:52, Giacobino da Tradate ha scritto:
Però una cosa non l'ho capito... perché paragoni lo Spike di Lego con l'HAT di Raspberry?
Il giorno Tue, 1 Oct 2024 22:20:57 +0200 pozz snipped-for-privacy@gmail.com ha scritto:
perche' l' HAT e' un sistema di sviluppo alternativo rispetto agli hub proprietari dei modelli lego
[...]
Ho fatto una prova su un sistema Lego Spike, il motore gira e raggiunge la posizione. A mano si può comunque girare, ma devi vincere una piccola forza di resistenza. Quindi immagino che il controllo di posizione si disattivi dopo aver raggiunto la posizione richiesta.
Probabilmente quella forza di resistenza è già sufficiente per evitare che la posizione non venga mantenuta (per esempio, per gravità), visto la leggerezza dei pezzetti.
Oppure veramente ci sono dei freni?
Il giorno Thu, 3 Oct 2024 10:50:55 +0200 pozz snipped-for-privacy@gmail.com ha scritto:
Non sara' la resistenza della demoltiplica meccanica? e' cosi' anche nei servocomandi modellistici.
Improbabile
Have something to add? Share your thoughts — no account required.
Ask the community — no account required