Roboitalia.com - Il primo portale in Italia sulla robotica amatoriale

Roboitalia.com - Il primo portale in Italia sulla robotica amatoriale (http://forum.roboitalia.com/index.php)
-   Progetto robot MODDI (forum chiuso) (http://forum.roboitalia.com/forumdisplay.php?f=62)
-   -   Motion controller (http://forum.roboitalia.com/showthread.php?t=2921)

AleTeck 29-08-2006 18.13.45

Grazie Astro..... la mia domanda è nata dal fatto che non pensavo che i calcoli PID e go-to venissero fatti dalla stessa scheda… :-D Ottima scheda… sar* una bella sfida scrivere il codice… ma ne vale la pena.

calo 29-08-2006 19.01.46

X Astro.
La rs485 l'ho incontrata nei fieldbus per plc, ma la si lavora un pò più ad alto livello. Nei pic non ho completamente idea di come si implementi un bus e neanche di come si gestisca dal codice. Appena puoi potresti postare la parte dello schema della VB-MotCon dedicata al bus, così cominciamo a farti domande su domande :confused: ? Non avresti qualche link sull'argomento (di facile comprensione) da consigliare?

selfservice 29-08-2006 19.29.36

solo una cosa:
i condensatori di disaccoppiamento li metterei poliestere da 300x150 mils con passo 200 mils.
solo perchè quegli altri si trovano più difficilmente.

per il protocollo si può fare una roba simile al G-code delle CNC

nonno_62 29-08-2006 23.25.56

x Astro

Mi sono dato un'occhiata alla rs485 e allo sheet del max 485 (con le dovute limitazioni dovute alla non propria perfetta conoscenza dell'inglese), inoltre stavo rimuginando sulla scheda controllo motori. Ho tre domandine da farti (così si cresce!):

1) da qualche parte se non ricordo male mi hai detto che il problema collisioni non si riscontra nel rs485 multimaster ..... ma non ho capito bene il perchè da qualche parte ho letto che si usa un terzo filo che indica la linea occupata. Mentre non credo che si possa lasciare al caso l'inizio di una trasmissione da parte di due unit* master, perchè potrebbe avvenire contemporaneamente. Ovviamente con un unico master ciò non può accadere se il protocollo è pensato in maniera corretta. Come si risolce il problema collisioni?

2) in effetti le linee da usare per il collegamento fra unit* sono un semplice doppino, ma se non sbaglio il pic deve dedicare quattro linee al controllo/dati con il max485. due di abilitazioni (una quella del ricevente si può risparmiare) e due per la linea dati di trasmissione e ricezione (mi sono andato a sbirciare anche il roboard v2 sul sito di mauro, e anche tu colleghi tutte e e quattro le uscite al pic). Alla fine forse si usano due linee in più del i2c. Anche se credo sia corretto il discorso sulla semplcit* di implementazione (la seriale software su un pic me la sono programmata pure io .... quindi ci può riuscire chiunque), la domanda è: ho capito bene?

3) sulla scheda con i 4 pic ho visto che hai disposto un solo max .... mumble mumble .... un pic mantiene i contatti e poi ridirige i comandi agli altri, oppure a valle del max si possono mettere in parallelo le linee dei quattro pic .... boohh?

Ciao Nonno

nonno_62 29-08-2006 23.36.20

Altra cosa sono d'accordo di realizzare il bus a 10 fili con rs485, seriale ttl, I2c e spi, quest'ultimi dove disponibili e sempre senza complicare troppo i circuiti, mi sembra che ci sono dei microswitch a delle dimensioni di integrati da 4, 8 etc. contatti, si potrebbero usare quelli per le abilitazioni.

Molte linee sono sovrapposte (vedi i2c e spi sui pic), quindi non dovrebbero creare grossi problemi con il vantaggio di poter riciclare le schede anche su diversi progetti che potrebbero essere conrollati con bus diversi. Ovviamente per questo progetto si deve usare la rs485 .... di cui più leggo e studio e più mi piace!

Saluti Nonno

astrobeed 30-08-2006 07.16.52

Citazione:

Orginalmente inviato da selfservice
solo una cosa:
i condensatori di disaccoppiamento li metterei poliestere da 300x150 mils con passo 200 mils.
solo perchè quegli altri si trovano più difficilmente.

Pure io uso quelli in poliestere con passo da 5,08 mm (200 mils), figurati che li compro 500 per volta visto che vanno via come il pane.
Nel rendering si vedono solo condensatori a disco perchè non ho definito le differenzazione dei case, è un'operazione che faccio solo quando ho il definitivo in fase di sviluppo lascio i case standard di Eagle 3D.
Lo schema è pronto, devo solo verificare un paio di cose, in giornata mando il rendering definitivo e lo schema.

astrobeed 30-08-2006 07.29.57

Citazione:

Orginalmente inviato da nonno_62
Altra cosa sono d'accordo di realizzare il bus a 10 fili con rs485, seriale ttl, I2c e spi, quest'ultimi dove disponibili e sempre senza complicare troppo i circuiti, mi sembra che ci sono dei microswitch a delle dimensioni di integrati da 4, 8 etc. contatti, si potrebbero usare quelli per le abilitazioni.

Il bus è solo RS485, in alternativa sar* possibile usare la seriale TTL, il motivo è molto semplice, la I2C viene usata per le comunicazioni tra i quattro Ic presenti sulla scheda e data la mole di dati circolanti è praticamente impegnata al 100%.
Il connettore del BUS è a quattro pin, sono collegati in parallelo a coppie (1 con 3, 2 con 4).
In questo modo sul connettore abbiamo una coppia in ingresso e una in uscita in modo da semplificare la realizzazione del cavo, il doppino in entrata si collega a 1 e 2, l'eventuale doppino in uscita si collega a 3 e 4.

Per quanto riguarda l'uso della RS485 dal punto di vista del software è identica a quella della normale seriale, la differenza è puramente hardware e si realizza usando un apposito IC che viene collegato al TX e RX dell'uart.
Ovviamente dato che abbiamo più schede connesse sulla stessa linea serve un indirizzo per distinguerle e una serie di regole per gestire il flusso dati, cioè quello che viene normalmente indicato con il termine "protocollo".

astrobeed 30-08-2006 12.12.37

Da qui www.roboteck.org/MoCon.pdf potete scaricare un pdf (circa 1,13 mega) contenente una descrizione sintetica del modulo MoCon, le caratteristiche tecniche, il rendering definitivo, lo schema elettrico.

selfservice 30-08-2006 12.26.06

avevamo deciso per un 5x2 pin per attacarci tutte le schede? sul rendering vedo solo un 4 pin della rs485

io direi di unificare tutto e fare una roba del genere:

1 = Power ON --> abilita tutte le schede che possono essere spente per risparmiare corrente.
2 = rs485 A
3 = rs485 B
4 = ttl rs232 tx
5 = ttl rs232 rx
6 = gpio?
7 = gpio?
8 = gpio?
9 = gnd
10 = gnd

astrobeed 30-08-2006 12.36.18

Citazione:

Orginalmente inviato da selfservice
avevamo deciso per un 5x2 pin per attacarci tutte le schede? sul rendering vedo solo un 4 pin della rs485

La RS485 richiede un doppino intrecciato, non puoi usarlo con un 5x2, il bus più è semplice meglio è.
Se devi collegarti via seriale TTL il connettore è sempre quello, basta smontare il MAX 485 e fare due ponticelli.
Lo standby delle schede può benissimo essere in automatico, se non ricevono comandi per un certo timeout e non stanno eseguendo un compito vanno in sleep riducendo i consumi a pochissimi mA.
Vedi il tutto come se fosse una vecchia lan col cavo coassiale, solo che andiamo al massimo ad 1 megabit/s invece di 10.


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

Basato su: vBulletin Versione 3.8.8
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.