spacer.png, 0 kB

Torna indietro   Roboitalia.com - Il primo portale in Italia sulla robotica amatoriale > Progetti di Robot > Progettazione > Progetto robot MODDI (forum chiuso)

 
 
Strumenti discussione Modalità  visualizzazioe
  #1  
Vecchio 07-03-2007, 12.00.52
L'avatar di argoI
argoI argoI non è collegato
Robottaro master
 
Data registrazione: 14-05-2004
Residenza: napoli
Età : 29
Messaggi: 354
Potenza reputazione: 67
argoI E' per ora ancora un mistero
Invia un messaggio via MSN a argoI
Predefinito "Router" per pic

ciao a tutti,
sto incontrando alcune difficoltà nell'affrontare il tema comunicazione tra + periferiche, in altri post ho già parlato del mio progetto http://forum.roboitalia.com/showthread.php?t=3217

diciamo che sto procedendo, ho scelto di usare solo la comunicazione UART sia x il joystick sia x i vari moduli del bot(scelta quasi forzata dato che con l'I2C nn ci riesco...)

ecco cm ho disposto i moduli:
c'è una scheda con 16f876 a 20mhz che riceve via radio i segnali dal joy e li divide x le varie periferiche:
-direzione e velocità ai motori
-posizioni dei servo x il controller della testa

in seguito aggiungerò anche una scheda sensori,ma sarà un problema da affrontare + in là...

ora il prob è ke i dati x essere smistati richiedono tempo,troppo tempo e nel momento in cui il bot x esempio va avanti continua a farlo finkè non cambiano i dati ke riceve la skeda motori, passano quasi 2 secondi ed è tantissimo!(intanto già l'ho skiantato contro la porta un paio di volte......) x evitare ciò ho pensato delle possibili soluzioni:

- adottare un criterio diverso x smistare i dati,magari qlke chip + adatto(sperando ke esista)
- magari usare un pic con + porte HD UART
- stare + attento al software dato ke è fatto in picbasic di cui so ke le istruzioni anke se + facili rikiedono + tempo x essere eseguite.
-rifare tutto(?????????????)
- cambiare linguaggio(cosa abbastanza probabile)

un altro dubbio:
è possibile far comunicare tra loro delle porte uart software e hardware?
x evitare problemi io ho preferito usare direttamente qlle software..

x il momento il cuore del programma ke usa il mio "router876" è questo:

main:


serin Rx, baud ,[wait ("Abc"),dec1 direzione, dec3 duty,bin8 App, dec4 Mov_TestaX, Dec4 Mov_TestaY]

serout Tx_Mot, baud2 , ["Mot",Dec1 direzione, dec3 duty,bin8 App]
serout Tx_Tes, baud2 , ["Tes",Dec4 mov_testaX, dec4 mov_testaY]
goto main

spero in qlke buona dritta
già tante grazie x le future risposte, confido in voi
__________________
http://www.youtube.com/user/Jimmy333x2

Se vuoi stare al passo della tecnologia, devi essere più veloce di essa.
-Jimmy-
  #2  
Vecchio 07-03-2007, 18.24.30
L'avatar di marnic
marnic marnic non è collegato
Administrator
 
Data registrazione: 23-05-2002
Residenza: Monselice (PD)
Età : 56
Messaggi: 5,458
Potenza reputazione: 417
marnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua fama
Predefinito

dal mome "router" e dalla presenza di serin e serout presumo che questo dispositivo abbia un ricetrasmettitore radio.
se così è, tu aspetti Abc per ricevere 10 dati, sono byte? word? poi invii questi dati ad altri moduli (radio?) cambiando il prefisso "Mot" o "Tes".....
conta i byte che spari fuori e controlla ai baud scelti quanto tempo ci vuole.... se una trasmissione va male, ad esempio non ricevo correttamente Abc? non credo sia questione di linguaggio.
inoltre se usi l'UART hardware credo che il comando giusto sia HSERIN e HSEROUT anche se per esperienza non funziona con tutti i moduli radio.
Ciao
__________________
Marnic
Roboitalia Staff
www.fabbrimarco.com
  #3  
Vecchio 08-03-2007, 10.36.40
L'avatar di argoI
argoI argoI non è collegato
Robottaro master
 
Data registrazione: 14-05-2004
Residenza: napoli
Età : 29
Messaggi: 354
Potenza reputazione: 67
argoI E' per ora ancora un mistero
Invia un messaggio via MSN a argoI
Predefinito

Citazione:
Orginalmente inviato da marnic Visualizza messaggio
dal mome "router" e dalla presenza di serin e serout presumo che questo dispositivo abbia un ricetrasmettitore radio.
se così è, tu aspetti Abc per ricevere 10 dati, sono byte? word? poi invii questi dati ad altri moduli (radio?) cambiando il prefisso "Mot" o "Tes".....
conta i byte che spari fuori e controlla ai baud scelti quanto tempo ci vuole.... se una trasmissione va male, ad esempio non ricevo correttamente Abc? non credo sia questione di linguaggio.
inoltre se usi l'UART hardware credo che il comando giusto sia HSERIN e HSEROUT anche se per esperienza non funziona con tutti i moduli radio.
Ciao
effettivamente non ho specificato alcuni passaggi, allora:
il primo serin [abc] è dal joystickvia radio, poi via cavo i dati vengono smistati a motori e testa, i primi 3 valori sono byte,gli ultimi 2 sono word.
poi non ho usato i comandi Hserin/out xkè ho fatto delle prove con qst porte e nn soono riuscite bene,conto di farne delle altre.
consigli?
a me piacerebbe usare lo stesso criterio del cybot: tutte le skede sono impilate una sull'alrta e comunicano costantemente tra loro confrontando i valori di ogni periferica e decidendo in base a essi cosa fare, il prob è ke cybot usa I2C e io nn ci riesco,.. se magari qlcuno è già riuscito in un progetto simile sarei lietissimo di avere un po i consigli
__________________
http://www.youtube.com/user/Jimmy333x2

Se vuoi stare al passo della tecnologia, devi essere più veloce di essa.
-Jimmy-
  #4  
Vecchio 08-03-2007, 17.57.39
L'avatar di marnic
marnic marnic non è collegato
Administrator
 
Data registrazione: 23-05-2002
Residenza: Monselice (PD)
Età : 56
Messaggi: 5,458
Potenza reputazione: 417
marnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua fama
Predefinito

ok, rimane la verifica da fare in base al tuo baud dei tempi effettivi di trasmissione.
Vado a memoria ma se scrivi serout Tx_Mot, baud2 e serout Tx_Tes, baud2 significa che usi pin diversi per testa e motori, in questo caso ti puoi risparmiare l'identificativop quantomeno lo puoi accorciare
l'I2C io lo ho usato con la bussola ma è stato più semplice in quanto bastava leggere, ricordo però che google mi aveva aiutato molto, ci sono svariati esempi in tutti i linguaggi.
Ciao
__________________
Marnic
Roboitalia Staff
www.fabbrimarco.com
  #5  
Vecchio 08-03-2007, 18.07.50
L'avatar di argoI
argoI argoI non è collegato
Robottaro master
 
Data registrazione: 14-05-2004
Residenza: napoli
Età : 29
Messaggi: 354
Potenza reputazione: 67
argoI E' per ora ancora un mistero
Invia un messaggio via MSN a argoI
Predefinito

ma volendo posso usare anke lo stesso pin ke comunica sia con motori ke con testa?
__________________
http://www.youtube.com/user/Jimmy333x2

Se vuoi stare al passo della tecnologia, devi essere più veloce di essa.
-Jimmy-
  #6  
Vecchio 08-03-2007, 18.43.49
L'avatar di marnic
marnic marnic non è collegato
Administrator
 
Data registrazione: 23-05-2002
Residenza: Monselice (PD)
Età : 56
Messaggi: 5,458
Potenza reputazione: 417
marnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua fama
Predefinito

certo, l'identificativo serve a quello, una specie di indirizzo se vuoi.
il pic motori avrà ad un certo punto serin "Mot"....... e riceverà solo i messaggi che iniziano con "Mot" scartando quelli della testa
__________________
Marnic
Roboitalia Staff
www.fabbrimarco.com
  #7  
Vecchio 08-03-2007, 20.33.59
L'avatar di argoI
argoI argoI non è collegato
Robottaro master
 
Data registrazione: 14-05-2004
Residenza: napoli
Età : 29
Messaggi: 354
Potenza reputazione: 67
argoI E' per ora ancora un mistero
Invia un messaggio via MSN a argoI
Predefinito

quindi i n conclusione posso mettere un unico serout così:
serout Tx_Mot, baud2 , ["Mot",Dec1 direzione, dec3 duty,bin8 App,"Tes",Dec4 mov_testaX, dec4 mov_testaY]

e opi i singoli moduli :
-motori:
serin Rx, baud2 ,[wait ("Mot"),dec1 direzione,dec3 duty,bin8 App]

-testa:
serin Rx,baud2, [wait("Tes"),dec4 Mov_testaX, dec4 Mov_testaY]


i dati in questo modo non si imbrogliano?
sembra ke posso finalmente superare un altro problema e dedicarmi ad altri..
grazie mille marnic!!
__________________
http://www.youtube.com/user/Jimmy333x2

Se vuoi stare al passo della tecnologia, devi essere più veloce di essa.
-Jimmy-
  #8  
Vecchio 08-03-2007, 21.28.06
L'avatar di marnic
marnic marnic non è collegato
Administrator
 
Data registrazione: 23-05-2002
Residenza: Monselice (PD)
Età : 56
Messaggi: 5,458
Potenza reputazione: 417
marnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua fama
Predefinito

si, puoi farlo però ti ripeto ancora, fai il conto dei tempi di trasmissione, se lavori a 9600 il problema ti rimane
__________________
Marnic
Roboitalia Staff
www.fabbrimarco.com
  #9  
Vecchio 08-03-2007, 21.54.29
L'avatar di argoI
argoI argoI non è collegato
Robottaro master
 
Data registrazione: 14-05-2004
Residenza: napoli
Età : 29
Messaggi: 354
Potenza reputazione: 67
argoI E' per ora ancora un mistero
Invia un messaggio via MSN a argoI
Predefinito

Citazione:
Orginalmente inviato da marnic Visualizza messaggio
si, puoi farlo però ti ripeto ancora, fai il conto dei tempi di trasmissione, se lavori a 9600 il problema ti rimane
e in che consiste il conto dei tempi di trasmissione? devo aumentare il valore?
tempo fa ho provato a fare in qst modo: i dati via radio viaggiavano a 9600 mentre qlli delle skede a 19200,così giusto x provare + velocità sullo stesso pic..
__________________
http://www.youtube.com/user/Jimmy333x2

Se vuoi stare al passo della tecnologia, devi essere più veloce di essa.
-Jimmy-
  #10  
Vecchio 09-03-2007, 07.38.47
L'avatar di sergio_camici
sergio_camici sergio_camici non è collegato
Administrator
 
Data registrazione: 23-05-2002
Residenza: Binasco (MI)
Età : 53
Messaggi: 2,665
Potenza reputazione: 298
sergio_camici La sua reputazione è oltre la sua famasergio_camici La sua reputazione è oltre la sua famasergio_camici La sua reputazione è oltre la sua famasergio_camici La sua reputazione è oltre la sua famasergio_camici La sua reputazione è oltre la sua famasergio_camici La sua reputazione è oltre la sua famasergio_camici La sua reputazione è oltre la sua fama
Predefinito

Citazione:
Orginalmente inviato da argoI Visualizza messaggio
e in che consiste il conto dei tempi di trasmissione? devo aumentare il valore?
Come "in che consiste" ???
Nel calcolare quanto ci metti a trasmettere tutti i dati.
A 9600 vuol dire che trasmetti 960 bytes in un secondo, tu trasmetti 10 byte, un byte ci mette 1,041 mS, quindi 10 byte 10,41 mS.

Piuttosto... il modulo joy invia in continuo i dati o aspetta ogni tot per inviare? (almeno il tempo delle operazioni di calcolo lo aspetta ma quanto dura?)
Non e' che la serin aspetta sempre la sequenza ABC prima di continuare?
Se e' cosi' ecco spiegato il ritardo...
__________________
ciao
Sergio
---
Hai deciso di costruire un robot? Bene...
Cominciamo dalle brutte notizie: non e' facile...
 


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione
Modalità  visualizzazioe

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code è Attivato
Le smilies sono Attivato
[IMG] è Attivato
Il codice HTML è Disattivato

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
sostituire serie di "if" con un codice più "ordinato" tanotrane Arduino 16 09-05-2013 18.53.14
Quali sono le "cose" necessarie per fare un "Laboratorio di Robotica Amatoriale"? AngPri75robotica Forum generale 3 25-10-2007 13.20.35
Quali sono le "cose" necessarie per fare un "Laboratorio di Robotica Amatoriale"? AngPri75robotica Elettronica 2 22-10-2007 21.55.56
Quali sono le "cose" necessarie per fare un "Laboratorio di Robotica Amatoriale"? AngPri75robotica Forum generale 0 22-10-2007 20.43.34
Nuova Funzione "Ricerca" e "Reputazione" R2D2 Suggerimenti 1 26-11-2005 12.29.33


Tutti gli orari sono GMT. Adesso sono le: 23.05.27.


Basato su: vBulletin Versione 3.8.8
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Realizzazione siti web Cobaltica Foligno
spacer.png, 0 kB