PDA

Visualizza la versione completa : BX24 e servomotori


Akh-Ramses
06-18-2007, 10:15 AM
Salve a tutti! sono un neofita e mi sono appena registrato :)
pongo subito la mia questione.
per un progetto universitario, dispongo di un Hexapod EH1 della Lynxmotion, equipaggiato di un microcontrollore BX24 e tre servomotori per muovere le zampette.
come piattaforma di programmazione uso BasicX 2.10.
domanda: devo far muovere 2 servomotori contemporaneamente.. ma per il momento non riesco.
mi conviene usare il multithreading oppure c' qualche "trucchetto" che non conosco?

intanto.. grazie per l'attenzione :)

astrobeed
06-18-2007, 10:35 AM
mi conviene usare il multithreading oppure c' qualche "trucchetto" che non conosco?


Dato che i servi richiedono impulsi di 1-2 ms ogni 20 ms e il Basic X pu solo generare un impulso per volta non devi fare altro che generare gli impulsi in sequenza, prima il servo 1, poi il servo 2 ed eventualmente il servo 3, poi fai passare un tempo pari a 20 ms - la somma degli impulsi emessi e rifai il ciclo.
Dal punto di vista dei servi non cambia nulla e i movimenti avvengono praticamente in contemporanea.

Robotadmin
06-18-2007, 10:38 AM
Qui c'e' un progetto di un EH1 pilotato da un BX24:

http://www.robot-italy.com/images/hex1_front.jpg (http://www.robot-italy.com/article_info.php/cArticlePath/1/articles_id/6)

Ci sono ache esempi di programmazione.

Akh-Ramses
06-19-2007, 07:33 AM
Qui c'e' un progetto di un EH1 pilotato da un BX24:
Ci sono ache esempi di programmazione.



ho gi visitato quella pagina e gli esempi di programmazione mi sono serviti per capire i movimenti e il funzionamento dei sensori ad infrarossi..
il problema che il BX24 prgrammato in modo da muovere un servo per volta, con la conseguenza che il movimento risulta poco fluido (se si pu parlare di fluidit in un robot di questa classe) e leggermente scattoso. in pratica muove in sequenza un servomotore per volta e il risultato finale non esattamente come vorrei.. anche perch a questo esame miro al 30 :p

intanto provo la soluzione consigliata da Astrobeed anche perch mi ha dato una informazione che non sapevo..
perch altrimenti, se il movimento non soddisfacente, cambio piattaforma e passo ad un SumoBot.. ma la soddisfazione di far funzionare l'EH1 come si deve sarebbe troppo grande :D

Robotadmin
06-19-2007, 10:22 AM
I servi si muovono uno alla volta ma in 20ms hanno completato i movimenti, tutti e 3 i servi.

Praticamente si muovono in contemporanea.

Akh-Ramses
06-22-2007, 10:14 AM
mumble..
stavo spulciando il sito della lynxmotion e ci sono dei programmi carini messi a disposizione.
sono flie .bas ..
sapere con che programma posso aprirli e trasferirli sul mio bx24?
io usualmente uso BasicX e non ci sono riuscito..

suggerimenti?

Robotadmin
06-22-2007, 10:22 AM
I .bas sono per i basic stamp, oppure basic atom. Non puoi caricarli sul bx24, li devi modificare.

Saluti

Akh-Ramses
06-22-2007, 12:51 PM
ah ecco..
questa notizia non mi rende esattamente felice.
in che linguaggio sono scritti?
in modo da avere una base per la traduzione..
ero curioso di provare ci che la casa costruttrice mette a disposizione...

Robotadmin
06-22-2007, 01:27 PM
Sono scritti in Basic ma la sintassi e' differente da quella utilizzata nei BasicX.

Akh-Ramses
07-26-2007, 09:36 AM
Ragazzi.. vi devo ringraziare infinitamente.
grazie ai vostri preziosissimi consigli sono riuscito a fare un buon progetto..
e all'esame ho preso 30 e lode !!!

di nuovo grazie ragazzi!!!!!!!!! :D :D :D

Robotadmin
07-26-2007, 11:23 AM
Pero'!

Complimenti!

Sarebbe interessante conoscere il tuo progetto, magari potresti pubblicare qualcosa...

Saluti

noise0
07-29-2007, 09:37 AM
io nel rover ho pilotato tutti i device del robot con thread separati, l'ho trovato molto facile e funzionale come tecnica...

se a qualcuno servono i miei sorgeni...

Robotadmin
07-29-2007, 09:28 PM
Il materiale e' sempre utile, se vuoi lo posso caricare sul sito e mettere un link nel forum.

SAlutui

illonghi
07-30-2007, 07:02 AM
io nel rover ho pilotato tutti i device del robot con thread separati, l'ho trovato molto facile e funzionale come tecnica...

se a qualcuno servono i miei sorgeni...

Hai fatto un thread per ogni device???
Ma scusa, ogni volta che fai un pulseuot non interrompi (momentaneamente) tutti i thread???

Te lo chiedo perch stavo comincinado a scrivere un pgm e pensavo di fare un thread per i sensori e uno per tutti i device e quando, nell'help, ho letto che il comando interrompeva i thread mi sono chiesto se valeva la pena o no!

Akh-Ramses
08-26-2007, 11:30 PM
io nel rover ho pilotato tutti i device del robot con thread separati, l'ho trovato molto facile e funzionale come tecnica...

se a qualcuno servono i miei sorgeni...

molto interessante sai?
a me possono interessare i sorgenti.. nel prossimo progetto sono obbligato a passare ad un rover per via delle dimensioni.. e devo pilotarlo con un BX24..

Akh-Ramses
08-26-2007, 11:31 PM
Pero'!

Complimenti!

Sarebbe interessante conoscere il tuo progetto, magari potresti pubblicare qualcosa...

Saluti

se sei interessato posso postarti la mia relazione..
dentro c' la descrizione del progetto e del robot utilizzato.

noise0
09-09-2007, 09:40 PM
avevo perso di vista queta discussione, scusate,....

--------------
Hai fatto un thread per ogni device???
Ma scusa, ogni volta che fai un pulseuot non interrompi (momentaneamente) tutti i thread???
--------------

per il controllo dei servo ho predisposto .bas che contiene un tread che viene fatto partire all'inizio del programma e che invia ogni 20ms l'impulso di controllo.
l'ampiezzad i tale impulso determinata da una variabile globale che viene settata dal tread principale in base all'agoritmo decisionale.

in pratical all'inizio del programma lacio vari tread che restano in esecuzione concorrente con il tread principale e che si occupano di smazzare tutti i task a basso livello per il controlllo dei device....

allego i sorgenti

illonghi
09-10-2007, 10:37 AM
per il controllo dei servo ho predisposto .bas che contiene un tread che viene fatto partire all'inizio del programma e che invia ogni 20ms l'impulso di controllo.
l'ampiezzad i tale impulso determinata da una variabile globale che viene settata dal tread principale in base all'agoritmo decisionale.

in pratical all'inizio del programma lacio vari tread che restano in esecuzione concorrente con il tread principale e che si occupano di smazzare tutti i task a basso livello per il controlllo dei device....

allego i sorgenti

OK! ho capito.

grazie!!!

Akh-Ramses
11-29-2007, 10:40 AM
ho iniziato il progetto secondo progetto..
mandato in pensione il mio exapodo (:( ) e ho iniziato a lavorare con il mio sumobot.. sempre da pilotare tramite bx24..
qualcuno ha gi avuto esperienze in merito oppure conosce qualche link dove poter scaricare qualcosa?