|
857
|
International / Software / Re: Algoritmo controllo motori
|
on: August 02, 2012, 05:23:43 pm
|
Ciao, i motori sono da 3V brushed, ho già realizzato un driver con L298 http://www.electroit.tk/index.php/topic,201.0.html  Il L6205 purtroppo ha come tensione minima per i motori 8 volt... troppo elevata! Altrimenti sarebbe stato migliore. Per il PWM con il L298 bisogna usare il PWM LAP per non avere una perdita di rendimento del 30% (percentuale conservativa) e quindi bisogna impostare una frequenza maggiore (es. 20 KHz) per far funzionare bene le cose (l'ho letto su diversi forum). Per il PID.. prova a cercare online, se c'è qualcosa che non hai capito di specifico chiedi pure. Online trovi anche esempi di implementazione Ciao
|
|
|
|
|
858
|
International / Hardware / Re: Consigli su creazione progetto
|
on: August 02, 2012, 05:12:42 pm
|
|
L'alimentazione il servo la prende direttamente dalla linea dedicata che ha, non da arduino. Con arduino gli mandi solamente un segnale in tensione (corrente praticamente nulla) per dirgli dove spostarsi, il terzo filo è la massa.
Vuoi alimentare il tutto a batteria?
Ciao
|
|
|
|
|
859
|
International / Hardware / Re: Amplificare un segnale in tensione
|
on: August 02, 2012, 03:13:57 pm
|
Si, puoi utilizzare un MCP6002, è rail-to-rail ed in formato DIP al posto di un LM358 ma non credere che la situazione migliori di molto.. il risultato secondo me è già molto buono ai fini pratici. Con Arduino puoi impostare la tensione di riferimento a piacere (deve essere minore di 5v) basta utilizzare il pin Ref, quindi anche usando un LM358 alla fine non avresti problemi, se imposta la tensione di riferimento a 3.3V puoi utilizzare con semplicità anche l'LM358, ad ogni modo un MCP6002 ti evita questo passaggio. Consigliavo l'LM358 perché in genere lo si ha già in casa o è di più facile reperibilità, ad ogni modo se utilizzi un MCP6001/2/4 (cambia il numero di op-amp all'interno dell'integrato) puoi usare il riferimento di default di 5v di Arduino. Usare un AD8047 non ha molto senso.. sarebbe come fare il tiro con l'arco con un cannone.. è un op-amp pensato per segnali molto veloci, non costanti. Il tuo sensore avrà una sua qualche elettronica dentro o si baserà su qualche fenomeno fisico che genera un output che parte da 0.8mV, basta sapere questo per poterlo usare, non viene detto il perché. Parliamo per adesso del LM358. Io lo alimenterei con le tensioni di power di arduino che sono o 5V o 3V (3.3???) Di sensore comunque ne ho solo uno, quindi posso usarlo come 2 stadi? Arduino ha due regolatori di tensione che forniscono 3.3V e 5V. Puoi usarlo come due stadi ma visto che il segnale è praticamente DC (mettiamo 10Hz) cambierà molto poco (idealmente nulla), comunque ti consiglio di fare delle prove e scegliere la soluzione migliore. Perchè mi consigli invertente? E mui sai spiegare nella pratica che differenza c'è? Visto che il segnale è praticamente costante invertente o no non cambia nulla, è secondo me più semplice da costruire. Nella pratica hai uno sfasamento di 90° per questo è detto invertente, uno sfasamento corrisponderebbe ad un piccolo ritardo, ad esempio se hai un segnale seno esce un segnale coseno. Come filtro passa basso intendi l'attivo vero? Non dovrei aver difficoltà a calcolarlo C= 1/ 2 piGreco R f Come frequenza non vedo valori...devo fare una pesata. quindi aspettare che il segnale si stabilizzi (credo) Che ne dici?
E' indifferente, la formula è uguale alla rete R-C. Come detto al posto della frequenza usa 10 Hz. Per stabilizzare il segnale basta che non fai più di una pesata al secondo e sei a posto stando molto larghi. Potresti farne anche 10 al secondo ad ogni modo, La frequenza è inversamente proporzionale al tempo f=1/T. Ciao
|
|
|
|
|
861
|
International / Hardware / Re: Amplificare un segnale in tensione
|
on: August 02, 2012, 08:04:51 am
|
Ciao, anch'io sono stato a lungo tempo softwarista prima di buttarmi sull'elettronica  L'AD7715 diciamo che è più complicato e costoso dell'utilizzo di un semplice operazionale anche se sicuramente permette buoni risultati. Se non sei molto pratico però rischi di incasinarti, ti consiglio di provare prima le altre soluzioni. L' LMV358 e l'LMV324 sarebbero ideali perché rail-to-rail (ovvero in uscita possono andare da 0 a 5 Volt se l'alimentazione è 5 volt) ma purtroppo sono disponibili solamente in SMD, se costruisci tu il circuito potresti avere problemi se non hai mai saldato questi componenti. Se ti accontenti di un segnale amplificato nel range 0-3 volt, rilevabile senza problemi dall'ADC interno ad arduino, soprattutto se impostato a 3.3V potresti amplificare di 750 volte con un semplice LM358 (non è rail to rail quindi la sua uscita non raggiunge 5 volt e quindi se non vuoi alimentarlo a parte con una tensione superiore devi impostare un amplificazione più bassa per non farlo saturare) che trovi in formato DIP con semplicità e saldarlo senza problemi. Secondo me questa soluzione può andare bene, naturalmente testala per bene per vedere se hai problemi di accuratezza, hai eventualmente un oscilloscopio a disposizione? Riesci a fare tutto addirittura con un singolo operazionale (l'IC ne contiene due al suo interno) e quindi potresti gestire addirittura 2 sensori perché se non hai un segnale che varia velocemente l'amplificazione è maggiore. Per amplificare devi utilizzare ad esempio l'amplificatore in configurazione invertente http://it.wikipedia.org/wiki/Amplificatore_operazionale#Amplificatore_invertente con le due resistenze dimensionate in modo da averne una (tra uscita e ingresso non invertente) 750 volte più grande dell'altra. Non scegliere valori assurdi, ad esempio 100 e 75K dovrebbero andare bene (ho visto che il suo sensore ha un'impedenza di uscita di 1K ohm, se c'è qualcuno più esperto di me dica se i valori che ho scelto non sono ottimali) In parallelo alla resistenza "grossa" se metti un condensatore riesci a filtrare il rumore, per calcolare il condensatore puoi semplicemente usare la formula del circuito RC passa basso http://it.wikipedia.org/wiki/Filtro_passa_basso impostando come frequenza una decina di Hertz, la resistenza sarà 75K se usi il valore che ti ho dato prima. Ti lascio questo conto, fammi sapere se hai difficoltà. In pratica gli operazionali hanno un parametro GBW che sarebbe il guadagno massimo in continua, l'LM358 ha 1.1MHz quindi in teoria può amplificare di un milione di volte un segnale costante (l'uscita naturalmente si fermerà alla tensione di alimentazione meno qualche volt e si dirà saturata quando non può più crescere). Se però hai un segnale che varia, ad esempio 10 volte al secondo, o a 10 Hz (è una semplificazione, il segnale dovrebbe essere una sinusoide perfetta in questo esempio) non puoi amplificare più di GBW / f quindi non più di 110K volte. E' bene non avvicinarsi troppo ai limiti per evitare distorsioni però. Ciao PS: Non leggerai mai il valore 0 perché il sensore da sempre almeno 0.8mV in uscita, da software devi quindi tarare correttamente il sensore
|
|
|
|
|
862
|
International / Hardware / Re: Amplificare un segnale in tensione
|
on: August 01, 2012, 04:13:54 pm
|
Me ne entrano 4.8 mV al massimo e devo portarli a 5V. Il minimo deve essere zero. Avevo capito che voleva amplificare senza distorsioni, ha in input un valore da 0 a 4.8mV che deve essere amplificato nel range 0 - 4.8V, in anello aperto avrebbe solamente una soglia ON/OFF tra l'altro non "super-immune" ai disturbi. Ad ogni modo aspettiamo notizie da contecavour per capire bene cosa vuole fare e, se vuole amplificare senza distorsioni, se ha un segnale che varia velocemente o lentamente Ciao
|
|
|
|
|
863
|
International / Hardware / Re: Amplificare un segnale in tensione
|
on: August 01, 2012, 12:00:56 pm
|
|
Più che altro ad anello aperto come imposti il guadagno? Ad anello aperto basta un disturbo di 5nV con un operazionale come il comune LM358 che ha una banda di 1.1MHz per ritrovarsi l'uscita saturata
Ciao
|
|
|
|
|
864
|
International / Hardware / Re: Amplificare un segnale in tensione
|
on: August 01, 2012, 11:12:54 am
|
|
Direi proprio di evitare l'anello aperto, gli operazionali sono instabili in quella configurazione.
Allora un'amplificazione di 1000 è abbastanza elevata se hai un segnale che cambia rapidamente (alta frequenza) in genere servono più op-amp (ad esempio 2, uno che amplifica x30 uno che amplifica x34, 30x34=1000)
Se hai un segnale che cambia lentamente (es. DC o pochi hertz) con un op-amp con buon GBW riesci a fare tutto
Che banda ha il tuo segnale? Ovvero quanto cambia rapidamente?
Ciao
|
|
|
|
|
865
|
International / Software / Algoritmo controllo motori
|
on: August 01, 2012, 03:45:10 am
|
|
Ciao a tutti Ho realizzato con successo un paio di encoder con infrarossi per due motori che mi danno una risoluzione di 1/8 di giro (la ruota è divisa in 8 e tramite gli infrarossi leggo in quale area mi trovo). Adesso devo passare all'algoritmo che mi permette di mantenere la stessa velocità su entrambi i motori che per forza di cosa, seppur identici, non hanno identicamente le stesse prestazioni. Pensavo ad un PID (che non ho mai implementato realmente) ma forse è possibile ottenere buoni risultati con qualcosa di più semplice del tipo: Controllo le velocità -> Se sono uguali non faccio nulla -> Se un motore è più veloce dell'altro ->Se l'altro è al massimo, abbasso la velocità del troppo veloce ->Se l'altro non è al massimo aumento la sua velocità
Che sarebbe più semplice da implementare anche se per l'inerzia dei motori probabilmente il controllo non deve avvenire troppo spesso per evitare oscillazioni Cosa ne pensate? E' forse meglio un PID?
Ciao a tutti
|
|
|
|
|
867
|
International / Hardware / Re: Seriale e transistor.
|
on: July 31, 2012, 09:18:16 am
|
A dire la verità volevo solo un modulo economico per iniziare a fare le prime prove con il wireless. Ovviamente più lontano va meglio è ma il budget è molto ridotto, meno di 50€ per coppia di ricetrasmettitori. Se io metto una batteria da 18v ottengo 170m stabili?(170m è un numero non rilevante, insomma intorno ai 200) Grazie mille a tutti  Secondo me non arrivi neanche a 50m con 12v cioè il massimo che puoi utilizzare senza rompere i modulini. Prova ad orientarti sui nrf24l01+ (importante il +, quelli senza sono inferiori) Ciao
|
|
|
|
|
868
|
International / Italiano / Re: lunghezza dei cavi
|
on: July 30, 2012, 03:51:16 pm
|
|
Per i led la lunghezza non è un problema, anche per la temperatura se il sensore ti restituisce un segnale digitale non hai grossi problemi.
I problemi possono iniziare se hai segnali analogici o se la frequenza dei segnali sul cavo è elevata, ovvero cambiano molto rapidamente (es. 1 MHz) o se hai elevati disturbi prodotti ad esempio da potenti motori.
Per migliorare la situazione (se hai problemi) in tal caso ci vogliono cavi intrecciati (semplicemente puoi intrecciarli a mano, più sono intrecciati meglio è) o ancora meglio schermati in caso di frequenze elevate/disturbi elevati, anche il diametro deve essere proporzionato alla corrente e un cavo di diametro maggiore ha resistenza minore a bassa frequenze
Ciao
|
|
|
|
|
869
|
International / Hardware / Re: Migliorare immunità disturbi fotodiodo
|
on: July 29, 2012, 04:19:31 pm
|
In pratica il dimensionamento è come in una rete RC  Con una R da 330K e un condensatore da 100nF ottengo una frequenza di taglio di circa 5 Hz (fc=1/(2*pi*R*C)) dove il guadagno inizia a calare rapidamente da circa 100db a sotto i 50db (ovvero un guadagno 100.000 volte inferiore!). Ecco i risultati: Quando la ruota è sul bianco ottengo circa 2V, il massimo sarebbe circa 3V (l'LM358 non è rail-to-rail) ma la banda limitata dell'op-amp scelto è limitata. Quando è sul nero ottengo circa 0.7V Ho quindi un margine di 2-0.7=1.3V che non è male, aumentando il valore della resistenza potrei ottenere risultati ancora migliori ma la banda dell'LM358 è limitata ed è meglio non spingersi oltre, sarebbe possibile utilizzare il secondo op-amp dell'integrato ma visto che ho due ruote servomotrici utilizzero il secondo per l'altro encoder. La soglia ideale sarebbe quindi di 0.7+(1.3/2)=1.35V L'unico problema che mi sembra che ci sia, risolvibile tramite un filtro digitale, sono gli spike provenienti dal motore che purtroppo spesso superano la soglia soprattutto quando la ruota è sul nero e la tensione non dovrebbe superare gli 1.35V, facendo una media il tutto si risolve Ciao a alla prossima
|
|
|
|
|