Arduino Forum

International => Italiano => Generale => Topic started by: -DATA- on Sep 02, 2013, 09:59 pm

Title: Problema Arduino uno R3 e sensori di flessione
Post by: -DATA- on Sep 02, 2013, 09:59 pm
buonasera a tutti
Mi chiamo Marco(-DATA-) ho 16 anni e sono alle prime armi con questo tipo di scheda, ho acquistato una arduino uno R3 per il progetto di un mano animatronica pilotata da un guanto sul quale sono applicati dei sensori di flessione ho creato un circuito su una millefori, un circuito molto seplice, posto (http://imageshack.us/photo/my-images/15/gkeq.jpg/), (http://imageshack.us/photo/my-images/69/3sjb.jpg/)la foto,
il mio problema è che collegado il tutto allarduino e alimetando l'arduino stessa con un alimentatore a tensione variabile dai 3V ai 12V e collegando l'arduino al pc, la mano non risponde correttamente ai comandi: i servo montati sono gli HXT900 , ora non capisco perchè questi servo abbiano come degli spasmi omeglio come se la tensione mancasse e poi tornasse con un continuo movimento anche se minimo di questi servo e quindi delle dita che sono collegate. Non credo che l'errore sia dovuto ad hardware e quindi posto qui in mio script così che qualcuno possa autarmi a trovare magari una stringa che generi questo effetto molto fastidioso sui servo, noto anche che l'arduino mi si sconnette automaticamnete dal pc una volta che chiuduo tutte le dita o che compio dei movimenti continui, in piu vorrei anche mi fosse chiarita un po' la funzione map, come bisogna regolarla?? grazie mille a tutti
-IL MIO CODICE-
Code: [Select]
#include <Servo.h>

// Dichiarazione servo
Servo servo1; 
Servo servo2; 
Servo servo3;
Servo servo4;
Servo servo5;
int flex1 = 5;  // ingresso analogico per sensori di flessione
int flex2 = 4;
int flex3 = 3;
int flex4 = 2;
int flex5 = 1;
int val;         // lettura valori sensori
void setup()
{
  Serial.begin(9600);  //connessione pc e arduino
  servo1.attach(6);  //  pollice
  servo2.attach(5);  // indice
  servo3.attach(3);  //medio
  servo4.attach(4);  //anulare
  servo5.attach(2); //mignolo
}

void loop()
{
  val = analogRead(flex1);              // valore sensore letto e appreso                  POLLICE
  Serial.println(val);                           // elaorazione valore sensore
  val = map(val, 50, 600, -150, 600);     // scala parametri sensori servo
  servo1.write(val);                        // lettura parametri
  delay(15);                           
  val = analogRead(flex2);             
  Serial.println(val);                     
  val = map(val, 50, 200, -300, 200);                                                      //INDICE   
  servo2.write(val);                       
  delay(15);       
  val = analogRead(flex3);               
  Serial.println(val);                 
  val = map(val, 50, 600, -100, 600); //.................................................  MEDIO
  servo3.write(val);                   
  delay(15); 
  val = analogRead(flex4);             
  Serial.println(val);                 
  val = map(val, 50, 500, -250, 600);                                                      //ANULARE
  servo4.write(val);                   
  delay(15); 
  val = analogRead(flex5); 
  Serial.println(val);                 
  val = map(val, 30, 300, -150, 200); //.................................................  MIGNOLO
  servo5.write(val);                   
  delay(15); 
}
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: leo72 on Sep 03, 2013, 06:39 am
Hai provato intanto a separare l'alimentazione dell'Arduino da quella dei motori?
Hai lo schema elettrico (potrebbe aiutare a capire il problema)?
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: -DATA- on Sep 03, 2013, 09:48 am

Hai provato intanto a separare l'alimentazione dell'Arduino da quella dei motori?
Hai lo schema elettrico (potrebbe aiutare a capire il problema)?


si, ho provato ma credo che alimentando i servo da usb tramite arduino non generi energi sufficente per farli muovere in aniera corretta... posto l'immagine della millefori http://imageshack.us/photo/my-images/15/gkeq.jpg/ (http://imageshack.us/photo/my-images/15/gkeq.jpg/) ;
http://imageshack.us/photo/my-images/69/3sjb.jpg/ (http://imageshack.us/photo/my-images/69/3sjb.jpg/)
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: PaoloP on Sep 03, 2013, 10:21 am
map non limita il valore della variabile, devi usare costrain. (http://arduino.cc/en/Reference/Constrain (http://arduino.cc/en/Reference/Constrain))

Esempio
Code: [Select]
val = costrain(analogRead(flex1), 50 ,600);              // valore sensore letto e appreso                  POLLICE
Serial.println(val);                           // elaorazione valore sensore limitato tra 50 e 600
val = map(val, 50, 600, -150, 600);     // scala parametri sensori servo
servo1.write(val);                        // lettura parametri
delay(15);
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: -DATA- on Sep 03, 2013, 10:53 am

map non limita il valore della variabile, devi usare costrain. (http://arduino.cc/en/Reference/Constrain (http://arduino.cc/en/Reference/Constrain))

Esempio
Code: [Select]
val = costrain(analogRead(flex1), 50 ,600);              // valore sensore letto e appreso                  POLLICE
Serial.println(val);                           // elaorazione valore sensore limitato tra 50 e 600
val = map(val, 50, 600, -150, 600);     // scala parametri sensori servo
servo1.write(val);                        // lettura parametri
delay(15);



non capisco come utilizzare costrain inserendo la stringa che mi hai modificato mi da altri errori che cercando di risolvere generano altri errori, non mi ci ritorvo prorpio e il problema persite ...
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: PaoloP on Sep 03, 2013, 11:00 am
Prova cosi
Code: [Select]
val = analogRead(flex1);              // valore sensore letto e appreso                  POLLICE
Serial.println(val);                           // elaborazione valore sensore
val = costrain(val, 50, 600);              // limita la variabile tra 50 e 600
val = map(val, 50, 600,  0, 180);     // scala parametri sensori servo
servo1.write(val);                        // lettura parametri
delay(15);    


si capisce meglio.

P.S.
Servo.write accetta valori tra 0 e 180, quindi le tue map sono errate.

P.S.2
Hai calcolato i valori minimo e massimo dei sensori di flessione per ogni dito?
Sono quelli presenti nella funzione map?
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: -DATA- on Sep 03, 2013, 12:21 pm

Prova cosi
Code: [Select]
val = analogRead(flex1);              // valore sensore letto e appreso                  POLLICE
Serial.println(val);                           // elaborazione valore sensore
val = costrain(val, 50, 600);              // limita la variabile tra 50 e 600
val = map(val, 50, 600,  0, 180);     // scala parametri sensori servo
servo1.write(val);                        // lettura parametri
delay(15);    


si capisce meglio.

P.S.
Servo.write accetta valori tra 0 e 180, quindi le tue map sono errate.


non risolvo neanche così   =(  le map saranno errate ma sembrerebbero funzionare in effetti non sono a cososcenzaa dell'ulitlizzo di map e quindi i valori scritti sono frutto di test e test, una calibrazione meccanica e di codice che è riuscita a fare il lavoro che vi posto nel video https://mega.co.nz/#!xJtTWDjT!Sdg7-U1FCyn6_X0Nuq6nNXXOP7VOoUvY9qdziN90170 (https://mega.co.nz/#!xJtTWDjT!Sdg7-U1FCyn6_X0Nuq6nNXXOP7VOoUvY9qdziN90170) ma come si puo notare i servo non rispondono correttamente e il dispositivo si disconnette automaticamente dal pc una volta che tengo il "pugno chiuso"
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: PaoloP on Sep 03, 2013, 12:37 pm
La funzione map serve per convertire una scala di valori in altra basandosi sui valori minimi e massimi.
La funzione è lineare ed è questa:
Code: [Select]
long map(long x, long in_min, long in_max, long out_min, long out_max)
{
 return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}


Essendo un tipo long e non unsigned long può restituire valori negativi e non ha il controllo sul limiti.

Adesso non ho tempo per visionare il filmato... lo guardo più tardi.  ;)
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: -DATA- on Sep 03, 2013, 01:52 pm
e come potrei modificare il mio codice?? una cosa infatti che non capisco è perchè esendo tutti i motori uguali e allo stesso range se mettto map uguali rispondono in maniera differente...
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: PaoloP on Sep 03, 2013, 05:08 pm
Puoi provare questo?

Code: [Select]
#include <Servo.h>

// Dichiarazione servo
Servo servo1;  
Servo servo2;  
Servo servo3;
Servo servo4;
Servo servo5;

const byte flex1 = A5;  // ingresso analogico per sensori di flessione
const byte flex2 = A4;
const byte flex3 = A3;
const byte flex4 = A2;
const byte flex5 = A1;
int val;         // lettura valori sensori
int gradi;      // gradi posizione servo

unsigned int max1, max2, max3, max4, max5;
unsigned int min1, min2, min3, min4, min5;

void setup()
{
 delay(500);
 Serial.begin(9600);  //connessione pc e arduino

 servo1.attach(6);  //  pollice
 servo2.attach(5);  // indice
 servo3.attach(3);  //medio
 servo4.attach(4);  //anulare
 servo5.attach(2); //mignolo

 max1 = max2 = max3 = max4 = max5 = 0;
 min1 = min2 = min3 = min4 = min5 = 1024;
} //End Setup

void loop()
{
 val = analogRead(flex1);              // valore sensore letto e appreso                  POLLICE
 max1 = max(val, max1);
 min1 = min(val, min1);
 Serial.println(val);
 Serial.print(F("Pollice --> Min: "));
 Serial.print(min1);
 Serial.print(F("  Max: "));
 Serial.println(max1);
 gradi = map(val, 0, 1023, 0, 180);     // scala parametri sensori servo
 servo1.write(gradi);                        // lettura parametri
 delay(15);                          

 val = analogRead(flex2);              
 max2 = max(val, max2);
 min2 = min(val, min2);
 Serial.println(val);
 Serial.print(F("Indice --> Min: "));
 Serial.print(min2);
 Serial.print(F("  Max: "));
 Serial.println(max2);                      
 gradi = map(val, 0, 1023, 0, 180);                                                      //INDICE    
 servo2.write(gradi);                      
 delay(15);

 val = analogRead(flex3);              
 max3 = max(val, max3);
 min3 = min(val, min3);
 Serial.println(val);
 Serial.print(F("Medio --> Min: "));
 Serial.print(min3);
 Serial.print(F("  Max: "));
 Serial.println(max3);
 gradi = map(val, 0, 1023, 0, 180); //.................................................  MEDIO
 servo3.write(gradi);                    
 delay(15);  

 val = analogRead(flex4);              
 max4 = max(val, max4);
 min4 = min(val, min4);
 Serial.println(val);
 Serial.print(F("Anulare --> Min: "));
 Serial.print(min4);
 Serial.print(F("  Max: "));
 Serial.println(max4);
 gradi = map(val, 0, 1023, 0, 180);                                                      //ANULARE
 servo4.write(gradi);                    
 delay(15);  

 val = analogRead(flex5);  
 max5 = max(val, max5);
 min5 = min(val, min5);
 Serial.println(val);
 Serial.print(F("Mignolo --> Min: "));
 Serial.print(min5);
 Serial.print(F("  Max: "));
 Serial.println(max5);
 Serial.println(val);                
 gradi = map(val, 0, 1023, 0, 180); //.................................................  MIGNOLO
 servo5.write(gradi);                    
 delay(15);  

  Serial.println(F(" "));    
} // End Loop
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: -DATA- on Sep 03, 2013, 05:34 pm
no, non funziona neanche così  =( , i servo non rispondono con il codice che hai postato, o meglio si muovono di pochissimo ma non abbastanza da far chiudere le dita.ho ripristinato il mio codice ma il probema persiste e l'arduino si disconnette automaticamente dal pc dopo un medio utilizzo.
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: PaoloP on Sep 03, 2013, 05:36 pm
Col mio codice, apri il serial monito e leggi i valori minimo e massimo per ogni dito.
Vorrei farmi un idea dei valori restituiti dal sensore a flessione.

Dopo aver aperto e chiuso la mano un paio di volte, prendi gli ultimi valori stampati.
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: -DATA- on Sep 03, 2013, 05:46 pm

Col mio codice, apri il serial monito e leggi i valori minimo e massimo per ogni dito.
Vorrei farmi un idea dei valori restituiti dal sensore a flessione.

Dopo aver aperto e chiuso la mano un paio di volte, prendi gli ultimi valori stampati.


con il tuo codice la mano è in una posizione differente da quella iniziale e si disconnette frequentemente in monitor seriale appena lo apro mi rifersce dei valori ma senza fermarsi e quindi mi risulta impossibile postarti gli ultimi valori
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: PaoloP on Sep 03, 2013, 05:48 pm
Visto che voglio conoscere solo i valori massimo e minimi dei sensori, prova questo.
Code: [Select]
#include <Servo.h>

// Dichiarazione servo
Servo servo1; 
Servo servo2; 
Servo servo3;
Servo servo4;
Servo servo5;

const byte flex1 = A5;  // ingresso analogico per sensori di flessione
const byte flex2 = A4;
const byte flex3 = A3;
const byte flex4 = A2;
const byte flex5 = A1;
int val;         // lettura valori sensori
int gradi;      // gradi posizione servo

unsigned int max1, max2, max3, max4, max5;
unsigned int min1, min2, min3, min4, min5;

void setup()
{
  delay(500);
  Serial.begin(9600);  //connessione pc e arduino

  servo1.attach(6);  //  pollice
  servo2.attach(5);  // indice
  servo3.attach(3);  //medio
  servo4.attach(4);  //anulare
  servo5.attach(2); //mignolo

  max1 = max2 = max3 = max4 = max5 = 0;
  min1 = min2 = min3 = min4 = min5 = 1024;
} //End Setup

void loop()
{
  val = analogRead(flex1);              // valore sensore letto e appreso                  POLLICE
  max1 = max(val, max1);
  min1 = min(val, min1);
  Serial.println(val);
  Serial.print(F("Pollice --> Min: "));
  Serial.print(min1);
  Serial.print(F("  Max: "));
  Serial.println(max1);
  gradi = map(val, 0, 1023, 0, 180);     // scala parametri sensori servo
  //servo1.write(gradi);                        // lettura parametri
  delay(15);                           

  val = analogRead(flex2);             
  max2 = max(val, max2);
  min2 = min(val, min2);
  Serial.println(val);
  Serial.print(F("Indice --> Min: "));
  Serial.print(min2);
  Serial.print(F("  Max: "));
  Serial.println(max2);                     
  gradi = map(val, 0, 1023, 0, 180);                                                      //INDICE   
  //servo2.write(gradi);                       
  delay(15);

  val = analogRead(flex3);               
  max3 = max(val, max3);
  min3 = min(val, min3);
  Serial.println(val);
  Serial.print(F("Medio --> Min: "));
  Serial.print(min3);
  Serial.print(F("  Max: "));
  Serial.println(max3);
  gradi = map(val, 0, 1023, 0, 180); //.................................................  MEDIO
  //servo3.write(gradi);                   
  delay(15); 

  val = analogRead(flex4);             
  max4 = max(val, max4);
  min4 = min(val, min4);
  Serial.println(val);
  Serial.print(F("Anulare --> Min: "));
  Serial.print(min4);
  Serial.print(F("  Max: "));
  Serial.println(max4);
  gradi = map(val, 0, 1023, 0, 180);                                                      //ANULARE
  //servo4.write(gradi);                   
  delay(15); 

  val = analogRead(flex5); 
  max5 = max(val, max5);
  min5 = min(val, min5);
  Serial.println(val);
  Serial.print(F("Mignolo --> Min: "));
  Serial.print(min5);
  Serial.print(F("  Max: "));
  Serial.println(max5);
  Serial.println(val);                 
  gradi = map(val, 0, 1023, 0, 180); //.................................................  MIGNOLO
  //servo5.write(gradi);                   
  delay(15); 

  Serial.println(F(" ------------------------------- "));     
} // End Loop


Ho commentato le funzioni del servo quindi la mano non si muove.
Puoi postare un gruppo di valori massimi e minimi?
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: -DATA- on Sep 03, 2013, 05:57 pm

Visto che voglio conoscere solo i valori massimo e minimi dei sensori, prova questo.
Ho commentato le funzioni del servo quindi la mano non si muove.
Puoi postare un gruppo di valori massimi e minimi?


Code: [Select]
248
Pollice --> Min: 248  Max: 249
327
Indice --> Min: 327  Max: 327
152
Medio --> Min: 145  Max: 152
158
Anulare --> Min: 153  Max: 158
282
Mignolo --> Min: 271  Max: 282
282
-------------------------------
251
Pollice --> Min: 248  Max: 251
329
Indice --> Min: 327  Max: 329
252
Medio --> Min: 145  Max: 252
324
Anulare --> Min: 153  Max: 324
311
Mignolo --> Min: 271  Max: 311
311
-------------------------------
249
Pollice --> Min: 248  Max: 251
330
Indice --> Min: 327  Max: 330
254
Medio --> Min: 145  Max: 254
324
Anulare --> Min: 153  Max: 324
311
Mignolo --> Min: 271  Max: 311
311
-------------------------------
250
Pollice --> Min: 248  Max: 251
330
Indice --> Min: 327  Max: 330
139
Medio --> Min: 139  Max: 254
260
Anulare --> Min: 153  Max: 324
311
Mignolo --> Min: 271  Max: 311
311
-------------------------------
246
Pollice --> Min: 246  Max: 251
308
Indice --> Min: 308  Max: 330
105
Medio --> Min: 105  Max: 254
223
Anulare --> Min: 153  Max: 324
310
Mignolo --> Min: 271  Max: 311
310
-------------------------------
244
Pollice --> Min: 244  Max: 251
302
Indice --> Min: 302  Max: 330
109
Medio --> Min: 105  Max: 254
241
Anulare --> Min: 153  Max: 324
311
Mignolo --> Min: 271  Max: 311
311
-------------------------------
250
Pollice --> Min: 244  Max: 251
329
Indice --> Min: 302  Max: 330
255
Medio --> Min: 105  Max: 255
326
Anulare --> Min: 153  Max: 326
311
Mignolo --> Min: 271  Max: 311
311
-------------------------------
250
Pollice --> Min: 244  Max: 251
330
Indice --> Min: 302  Max: 330
254
Medio --> Min: 105  Max: 255
326
Anulare --> Min: 153  Max: 326
312
Mignolo --> Min: 271  Max: 312
312
-------------------------------
252
Pollice --> Min: 244  Max: 252
233
Indice --> Min: 233  Max: 330
166
Medio --> Min: 105  Max: 255
298
Anulare --> Min: 153  Max: 326
309
Mignolo --> Min: 271  Max: 312
309



questi sono alcuni gruppi che sono riuscito a prendere, ho saltato la prima chiusura totale della mano.
Vorrei ricordare che sto lavorando con un alimentatore esterno attaccato all'ingresso della arduino e cavo usb
ho notato comunque che il monitor seriale mi produce valori anche se non tocco i sensori ...
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: PaoloP on Sep 03, 2013, 06:34 pm
Quote
252
Pollice --> Min: 244  Max: 252
233
Indice --> Min: 233  Max: 330
166
Medio --> Min: 105  Max: 255
298
Anulare --> Min: 153  Max: 326
309
Mignolo --> Min: 271  Max: 312
309


Da questi valori non che l'escursione è molto piccola.
Hai esteso e richiuso completamente la mano mentre scorrevano i numeri?

Comunque, se quei valori sono giusti, li devi usare per la funzione map.
per ogni dito avrai
Code: [Select]
gradi = map(val, minimo valore registrato, massimo valore registrato, 0, 180);
servo1.write(gradi);


ovvero
Code: [Select]
gradi = map(val, 244, 252, 0, 180);
servo1.write(gradi);


Una volta sistemati il minimo e massimo dei sensori nella funzione map, devi sistemare il minimo e il massimo dei servi.
I servi che escursione hanno in gradi (non ho potuto vedere il filmato perche non ho il codec giusto, stanotte a casa lo guardo) 90°, 120° o 180°

Dai che passo passo risolviamo.  :smiley-mr-green:


Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: Etemenanki on Sep 03, 2013, 07:00 pm
Giusto per curiosita', a livello hardware che sensori usi ?
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: -DATA- on Sep 03, 2013, 07:04 pm
il range è di 180 gradi. spero di risolvere in fretta domani ho un video musicale da girare te ne sarei grato  :smiley-mr-green:
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: -DATA- on Sep 03, 2013, 07:08 pm

Giusto per curiosita', a livello hardware che sensori usi ?

http://www.robot-italy.com/it/flex-sensor-2-2.html utilizzo questi
XD
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: PaoloP on Sep 03, 2013, 07:33 pm
I sensori li hai collegati direttamente o sono amplificati come consiglia il datasheet?

Puoi riprovare il mio sketch (quello senza i servo) per vedere il massimo e i minimi che ricavi.
Apri prima il serial monitor e muovi un paio di volte la mano estentendola al massimo e poi richiudendola.
Poi sul serial monitor blocca lo scorrimento automatico e copia gli ultimi valori.

Se l'escursione dei sevi è di 180, i parametri per map sono 0 e 180, quindi bisogna solo stabilire i limiti dei sensori.
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: Etemenanki on Sep 03, 2013, 07:38 pm
Quelli vanno bene ... mi era venuto il dubbio che stessi usando delle strip piezoplastiche, che non sarebbero state adeguate ;)

Collegandoli, a che valori fai riferimento ? ... secondo il datasheet, la resistenza dovrebbe andare da 45K a 125K (massimo), quindi per avere la massima escursione possibile senza amplificarli, la resistenza di riferimento dovrebbe essere intorno ai 75K, o il valore piu vicino disponibile (supponendo che tu li usi connessi ad un pin analogico, sensore verso massa e riferimento verso il +5V ... oppure sensore verso il +5V e riferimento a massa)

Se hai un tester, puoi anche fare una prova per vedere se vanno ... collega una strip in serie ad una resistenza (anche 68K o simile) e collega la serie ad un'alimentatore da 5V (resistenza al +5V, strip a massa), poi leggi con il tester la tensione fra la massa ed il punto centrale della serie (ai capi della strip, in pratica) ... in teoria, dovrebbe darti valori simili a 2V (circa, disteso) e 3.3V (circa, flesso) ... oppure collegando la resistenza a massa e la strip al +5V, e misurando ai capi della resistenza, dovrebbe andare da 3V (circa, disteso) a 1,8 (circa, flesso) ... valori comunque sufficenti per essere letti comodamente da un'ingresso da 100Mohm come quelli analogici di arduino senza problemi ...
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: -DATA- on Sep 03, 2013, 08:18 pm
grazie a tutti per i suggerimeti sto cercando di ricostruire il guanto con sensori per il semplice motivo che chiudere il medio senza chiudere le altre dita mi rusulta un po difficile con il tipo di guanto che ho creato  e potrebbe essere anche il gaunto a flettere i sensori involontariamente .

credo di avere creato un circuito ulito, senza  errori anche perhè priam di fare tutto ciò ho testato il tutto con una breadboard e il risultato era dei piu puliti, spero che rifacendo il guanto sistemerò un po di cose....


piu tardi, una volta finito vi informerò di come prosegue il progetto. grazie ancora
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: MrJacko on Sep 03, 2013, 08:39 pm
Io farei che appena avviato l'Arduino si avvia una funzione per determinare i valori Min e Max di ogni sensore e quindi di ogni dito, in automatico.
Basta aggiungere un pulsante e fare una sequenza del genere:
-Avvio Arduino.
-Posizioni il primo dito scelto (Es. il pollice) alla apertura massima.
-Premi il pulsante.
-Posizioni il primo dito scelto (Es. il pollice) alla chiusura massima.
-Premi il pulsante.
E così via per ogni dito, almeno hai la certezza che la mano robotica si muova precisamente rispetto alla mano reale :)

EDIT: ecco un probabile sketch, non sono certo al 100% del funzionamento poichè in questi giorni sto facendo una grande confusione tra linguaggi di programmazione differenti..XD
Code: [Select]
#include <Servo.h>
unsigned const int buttonPin = 7;
unsigned const int flexPin[5] = {
  A5, A4, A3, A2, A1};
unsigned int flexMin[5];
unsigned int flexMax[5];
String flexName[5] = {
  "Pollice", "Indice", "Medio", "Anulare", "Mignolo"};
Servo servo[5];
unsigned const int servoPin[5] = {
  6, 5, 4, 3, 2};
unsigned int val;

void setup()
{
  Serial.begin(9600);
  for(unsigned int x=0; x<5; x++){
    servo[x].attach(servoPin[x]);
  }
  setThreshold();
}

void loop()
{
  for(unsigned int  x=0; x<5; x++){
    val = analogRead(flexPin[x]);
    val = constrain(val, flexMin[x], flexMax[x]);
    val = map(val, flexMin[x], flexMax[x], 0, 180);
    servo[x].write(val);
  }   
}

void setThreshold(){
  for(int x=0; x<5; x++){
    Serial.print("Scansione soglie valori per: ");
    Serial.println(flexName[x]);
    Serial.print("Soglia minima sensore: ");
    while(digitalRead(buttonPin)!=HIGH){
      flexMin[x] = analogRead(flexPin[x]);
    }
    Serial.println(flexMin[x]);
    Serial.print("Soglia massima sensore: ");
    delay(750);
    while(digitalRead(buttonPin)!=HIGH){
      flexMax[x] = analogRead(flexPin[x]);
    }
    Serial.println(flexMax[x]);
    delay(1000);
  }
  Serial.println();
  Serial.println("Soglie valori registrate con successo.");
  Serial.println();
}

Che ne dite?
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: PaoloP on Sep 03, 2013, 09:41 pm
Buona idea Jacko.  ;)
Però in quel modo li devi registrare ogni volta che accendi o resetti l'arduino.
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: MrJacko on Sep 03, 2013, 09:54 pm

Buona idea Jacko.  ;)
Però in quel modo li devi registrare ogni volta che accendi o resetti l'arduino.

Almeno elimini tutti i probabili errori..
Metti caso che i sensori di flessione non siano ancorati saldamente al guanto: se si usasse un valore preimpostato e un sensore si spostasse, anche di poco, influenzerebbe il risultato totale.
Potremmo ottenere una via di mezzo scrivendo i valori nella EEPROM, in questo modo i valori rimangono fino a quando non li vuoi reimpostare manualmente, ma non ho mai utilizzato quella libreria per il momento XD
EDIT: ora che ci penso si potrebbe fare che registri tutte le soglie minime insieme, lo stesso per quelle massime..bisogna sentire prima il parere del diretto interessato XD
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: -DATA- on Sep 03, 2013, 11:38 pm
ringrazio tutti per il tepo dedicatomi siete fantastici e l'idea  di jako mi piace molto magari potrei utilizzarla in una rev 2 del mio progetto :smiley-mr-green: con il nuovo guanto sono riuscito a sistemare un bel po' di cose e il movimento risulta molto piu fluido e preciso.
l'unica pecca è che spesso perde la connessione e crasha, un bel po' fastidioso. se qualcuno magari riuscisse a dedicarsi escovasse una soluzione a questo ne sarei molto grato   ;) :smiley-yell:

ciaooooooo  :D :D :D :D :D
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: PaoloP on Sep 04, 2013, 12:29 am
Il motivo dei crash può essere dovuto ad una eccessiva richiesta di corrente dai servo.
Non ricordo se hai detto se l'alimentazione dei servi è esterna o è prelevata da Arduino.

Potresti postare lo sketch che stai utilizzando adesso?
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: -DATA- on Sep 04, 2013, 12:47 am

Il motivo dei crash può essere dovuto ad una eccessiva richiesta di corrente dai servo.
Non ricordo se hai detto se l'alimentazione dei servi è esterna o è prelevata da Arduino.

Potresti postare lo sketch che stai utilizzando adesso?


il mio sketch attuale:
Code: [Select]
#include <Servo.h>

// Dichiarazione servo
Servo servo1; 
Servo servo2; 
Servo servo3;
Servo servo4;
Servo servo5;
int flex1 = 5;  // ingresso analogico per sensori di flessione
int flex2 = 4;
int flex3 = 3;
int flex4 = 2;
int flex5 = 1;
int val;         // lettura valori sensori
void setup()
{
  Serial.begin(9600);  //connessione pc e arduino
  servo1.attach(6);  //  pollice
  servo2.attach(5);  // indice
  servo3.attach(3);  //medio
  servo4.attach(4);  //anulare
  servo5.attach(2); //mignolo
}

void loop()
{
  val = analogRead(flex1);              // valore sensore letto e appreso                  POLLICE
  Serial.println(val);                           // elaorazione valore sensore
  val = map(val, 50, 600, -150, 600);     // scala parametri sensori servo
  servo1.write(val);                        // lettura parametri
  delay(15);                           
  val = analogRead(flex2);             
  Serial.println(val);                     
  val = map(val,50, 300, -300, 200);                                                      //INDICE   
  servo2.write(val);                       
  delay(15);       
  val = analogRead(flex3);               
  Serial.println(val);                 
  val = map(val, 50, 100, 0, 800); //.................................................  MEDIO
  servo3.write(val);                   
  delay(15); 
  val = analogRead(flex4);             
  Serial.println(val);                 
  val = map(val, 50, 500, -250, 600);                                                      //ANULARE
  servo4.write(val);                   
  delay(15); 
  val = analogRead(flex5); 
  Serial.println(val);                 
  val = map(val, 50, 300, -150, 600); //.................................................  MIGNOLO
  servo5.write(val);                   
  delay(15); 
}


utilizzo un alimentatore da 12v che è inserito nel l'arduino + cavo usb inserito anch'esso nell'arduino. questo lo faccio perchè alimentando tutto tramite solo alimetatore esterno mi crasha subito alimentando il tutto tramite usb mi crasha ancora prima hahahhahaha penso che insieme, usb e alimntatre riescano a generarmi energia sufficente per muovere tutto in maniera quasi pulita pur essendoci qualche crash.
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: PaoloP on Sep 04, 2013, 09:14 am
Ho visto il filmato, bella la manina  :smiley-mr-green:
Il limite minimo e massimo dei servi sono 0 e 180, li puoi limitare anche con la funzione costrain.
Devi stabilire con lo sketch che ti ho proposto il minimo e il massimo di ogni dito (valori del sensore) da mettere nella funzione map e li inserisci in questo sketch modificando i valori attuali.

Code: [Select]
#include <Servo.h>

// Dichiarazione servo
Servo servo1;  
Servo servo2;  
Servo servo3;
Servo servo4;
Servo servo5;

int flex1 = 5;  // ingresso analogico per sensori di flessione
int flex2 = 4;
int flex3 = 3;
int flex4 = 2;
int flex5 = 1;
int val;         // lettura valori sensori

void setup()
{
 Serial.begin(9600);  //connessione pc e arduino
 servo1.attach(6);  //  pollice
 servo2.attach(5);  // indice
 servo3.attach(3);  //medio
 servo4.attach(4);  //anulare
 servo5.attach(2); //mignolo
}

void loop()
{
 val = analogRead(flex1);                // valore sensore letto e appreso                  POLLICE
 Serial.println(val);                        // elaorazione valore sensore
 val = map(val, 50, 600, 0, 180);     // Verificare minimo e massimo del sensore del dito POLLICE
 val = costrain(val, 0, 180);            // impedisce fuoricorsa  
 servo1.write(val);                        // lettura parametri
 delay(15);                          
 
 val = analogRead(flex2);              
 Serial.println(val);                      
 val = map(val,50, 300, 0, 180);    // Verificare minimo e massimo del sensore del dito INDICE    
 val = costrain(val, 0, 180);          // impedisce fuoricorsa    
 servo2.write(val);                      
 delay(15);      
 
 val = analogRead(flex3);              
 Serial.println(val);                  
 val = map(val, 50, 100, 0, 180);  // Verificare minimo e massimo del sensore del dito  MEDIO
 val = costrain(val, 0, 180);         // impedisce fuoricorsa      
 servo3.write(val);                    
 delay(15);  
 
 val = analogRead(flex4);              
 Serial.println(val);                
 val = map(val, 50, 500, 0, 180);       // Verificare minimo e massimo del sensore del dito ANULARE
 val = costrain(val, 0, 180);              // impedisce fuoricorsa        
 servo4.write(val);                    
 delay(15);  
 
 val = analogRead(flex5);  
 Serial.println(val);                
 val = map(val, 50, 300, 0, 180); // Verificare minimo e massimo del sensore del dito  MIGNOLO
 val = costrain(val, 0, 180);             // impedisce fuoricorsa    
 servo5.write(val);                    
 delay(15);  
}


Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: MrJacko on Sep 04, 2013, 10:59 am
Senza che gli si riempie il monitor seriale di valori può utilizzare lo sketch che ho scritto che è più "user-friendly" :)
P.S. per collegare un pushbutton al pin 7 non ci vuole molto :D
EDIT: perchè non usate degli array? D:
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: PaoloP on Sep 04, 2013, 11:04 am
Non uso i vettori (array) perché prima bisogna capire la logica del programma, poi si può ottimizzare.
-DATA- ha detto che non comprendeva bene il funzionamento della map. Aggiungere i vettori crea ulteriori complicazioni, secondo me.
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: MrJacko on Sep 04, 2013, 11:08 am

Non uso i vettori (array) perché prima bisogna capire la logica del programma, poi si può ottimizzare.
-DATA- ha detto che non comprendeva bene il funzionamento della map. Aggiungere i vettori crea ulteriori complicazioni, secondo me.

Non avevo letto con attenzione la 1a pagina..
Sorry :smiley-roll:
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: -DATA- on Sep 04, 2013, 12:15 pm


Non uso i vettori (array) perché prima bisogna capire la logica del programma, poi si può ottimizzare.
-DATA- ha detto che non comprendeva bene il funzionamento della map. Aggiungere i vettori crea ulteriori complicazioni, secondo me.

Non avevo letto con attenzione la 1a pagina..
Sorry :smiley-roll:


sono poco esperto ma mi so adattare bene ad ogni cosa.  :smiley-mr-green:
mi cheidevo percè il mio alimentatore da 12 v non riesca a soddisfare arduino e servi senza collegare anche l'usb.
ho notato anche che il cavo usb è un po cortino così mi sono procurato una prolunga usb ma noto che il crash è molto molto piu frequente forse è dovuto ad una dispersione lungo la prolunga? PS ho provato più di una prolunga e noto lo stesso risultato appena descritto

che faccio?? :smiley-mr-green:
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: MrJacko on Sep 04, 2013, 12:20 pm
Ma i servi non lavorano di solito a 5-6V?
Tra l'altro dovresti usare alimentazioni separate per Arduino e servi: alimenta Arduino tramite USB e i servi con un alimentatore da 5V almeno 3A (i servi sembrano che assorbono poco ma l'apparenza inganna ;))
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: -DATA- on Sep 04, 2013, 12:22 pm

Ma i servi non lavorano di solito a 5-6V?

si si i servo lavorano da 4-6 v ma non capisco come se non inserisco l'alimentatore a 12v i servo non girano o forse la arduino neanche si accende
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: PaoloP on Sep 04, 2013, 12:26 pm
Non è la tensione ma la corrente ad essere poca.
Da quanti Ampere o milliAmpere è l'alimentatore a 12V?

Se è regolabile, abbassagli la tensione a 5V.

Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: MrJacko on Sep 04, 2013, 12:30 pm

si si i servo lavorano da 4-6 v ma non capisco come se non inserisco l'alimentatore a 12v i servo non girano o forse la arduino neanche si accende

Ma sai vero che dal pin 5V dell'Arduino puoi prendere solo 500mA di corrente?
Te lo ripeto: alimenta Arduino da USB e i servo motore con un alimentatore da 5V apparte. XD XD
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: PaoloP on Sep 04, 2013, 12:32 pm

Te lo ripeto: alimenta Arduino da USB e i servo motore con un alimentatore da 5V apparte. XD XD


E collega il GND di Arduino col negativo dell'alimentatore esterno.
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: -DATA- on Sep 04, 2013, 12:33 pm

Da quanti Ampere o milliAmpere è l'alimentatore a 12V?

il mio alimentatore ha queste caratteristiche:

ingresso 230v-50Hz

Potenza:12.5W

uscita(ha un potenziometrocon ui regolarla): 4v -4.5v -6v -7.5v -9v -12v

Corrente C.C: 500mA6VAmax


MrJacko mi stai dicendo che il mio alimetatore non devo inserirlo nella porta dell'arduino ma devo fare un connettore sulla millefori e mettere in gnd un connettore che poi va diretto ai motori ? dividendo tensione dei motori da quella dei sensori e da quella dell'arduino ???
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: PaoloP on Sep 04, 2013, 12:39 pm
500mA mi sembrano pochini.
Stacca 3 servi e prova con solo 2. Crasha?
Se non crasha aggiungi un servo, crasha?
Aggiungi un altro servo e cosi via.

EDIT:
Non avevo capito che usassi l'alimentatore collegato al'Arduino e con il cavo USB. Così è inutile.
Arduino ha un circuito di selezione, se attacchi l'alimentazione esterna l'alimentazione USB viene scollegata, rimane solo la linea dati.

Tieni colegato l'Arduino col solo cavo USB. Abbassa la tensione dell'alimentatore a 6V, sarebbe meglio avere un alimentatore a 5v. Puoi mettere un diodo in serie , sul positivo, per creare una caduta di tensione. (circa 0.7V)
Collega il positivo l'alimentazione esterna al positivo dei servi, il negativo ai GND dei servo e al GND di Arduino.
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: MrJacko on Sep 04, 2013, 12:51 pm

Non avevo capito che usassi l'alimentatore collegato al'Arduino e con il cavo USB. Così è inutile.
Arduino ha un circuito di selezione, se attacchi l'alimentazione esterna l'alimentazione USB viene scollegata, rimane solo la linea dati.

Tieni colegato l'Arduino col solo cavo USB. Abbassa la tensione dell'alimentatore a 6V, sarebbe meglio avere un alimentatore a 5v. Puoi mettere un diodo in serie , sul positivo, per creare una caduta di tensione. (circa 0.7V)
Collega il positivo l'alimentazione esterna al positivo dei servi, il negativo ai GND dei servo e al GND di Arduino.


È quello che gli sto dicendo da mezzora :~
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: -DATA- on Sep 04, 2013, 01:55 pm

500mA mi sembrano pochini.
Stacca 3 servi e prova con solo 2. Crasha?
Se non crasha aggiungi un servo, crasha?
Aggiungi un altro servo e cosi via.

EDIT:
Non avevo capito che usassi l'alimentatore collegato al'Arduino e con il cavo USB. Così è inutile.
Arduino ha un circuito di selezione, se attacchi l'alimentazione esterna l'alimentazione USB viene scollegata, rimane solo la linea dati.

Tieni colegato l'Arduino col solo cavo USB. Abbassa la tensione dell'alimentatore a 6V, sarebbe meglio avere un alimentatore a 5v. Puoi mettere un diodo in serie , sul positivo, per creare una caduta di tensione. (circa 0.7V)
Collega il positivo l'alimentazione esterna al positivo dei servi, il negativo ai GND dei servo e al GND di Arduino.



si ma dovrei rifarmi totalente il circuito, avete capito com'è il mio ??
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: MrJacko on Sep 04, 2013, 03:00 pm

si ma dovrei rifarmi totalente il circuito, avete capito com'è il mio ??

Si, abbiamo capito, ed è completamente sbagliato.
L'Arduino deve essere alimentato con una fonte usata solo per esso, e nient'altro.
Te lo ripeto per l'ennesima volta :smiley-yell::
Alimenta l'Arduino con solo ed esclusivamente il cavo USB.
Collega il cavo giallo dei servo ai pin digitali Arduino.
Collega il cavo rosso dei servo ad un alimentatore esterno dai 4,8V ai 6V da almeno 2-3 Ampere.
Collega il cavo nero dei servo al GND dell'alimentatore e successivamente al GND di Arduino.
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: -DATA- on Sep 04, 2013, 07:31 pm


si ma dovrei rifarmi totalente il circuito, avete capito com'è il mio ??

Si, abbiamo capito, ed è completamente sbagliato.
L'Arduino deve essere alimentato con una fonte usata solo per esso, e nient'altro.
Te lo ripeto per l'ennesima volta :smiley-yell::
Alimenta l'Arduino con solo ed esclusivamente il cavo USB.
Collega il cavo giallo dei servo ai pin digitali Arduino.
Collega il cavo rosso dei servo ad un alimentatore esterno dai 4,8V ai 6V da almeno 2-3 Ampere.
Collega il cavo nero dei servo al GND dell'alimentatore e successivamente al GND di Arduino.


ok dai domani compro il materiale e vi faccio sapere.  :smiley-mr-green:
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: MrJacko on Sep 04, 2013, 09:00 pm

ok dai domani compro il materiale e vi faccio sapere.  :smiley-mr-green:

Al posto dell'alimentatore potresti usare pure un pacco batterie 4x AA ricaricabili: danno giusto giusto 4,8V (dichiarati, ma supereranno di sicuro i 5V) ]:)
Per il resto non penso che tu abbia bisogno di altro :smiley-roll:
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: PaoloP on Sep 05, 2013, 09:02 am
Purtroppo le pile ricaricabili (NiMH) hanno un valore di corrente molto variabile a seconda del produttore e del prezzo.
Ne esistono da 500mAh fino a 2800mAh.
Viene consigliata, per non perdere la batteria prematuramente, una corrente di scarica pari a 0,1C quindi da 50mA a 280mA per quelle migliori. Comunque insufficienti per i servo.
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: astrobeed on Sep 05, 2013, 09:14 am

Viene consigliata, per non perdere la batteria prematuramente, una corrente di scarica pari a 0,1C quindi da 50mA a 280mA per quelle migliori. Comunque insufficienti per i servo.


Dipende da quali batterie NiMh prendi, se sono quelle che trovi al brico, indipendentemente dalla marca, in effetti reggono poca corrente in uscita.
Se le prendi in un negozio di modellismo, dove hanno quelle ad alta corrente, possono dare senza problemi fino a 5C come corrente in uscita, ricarica a 1/2C, inoltre esistono le Sanyo eneloop che hanno una corrente di autoscarica quasi 0 a differenza delle normali NiMh che si scaricano da sole in poche settimane.
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: MrJacko on Sep 05, 2013, 10:35 am
Io uso AA ricaricabili al Ni-MH 2600mAh, mi durano una vita ]:)
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: Etemenanki on Sep 05, 2013, 10:50 am
quattro di queste, e non hai piu problemi di corrente ...

(http://static.droidblog.net/dgstorm/df/oversized_battery.jpg)

:P XD XD XD
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: -DATA- on Sep 05, 2013, 11:34 am
ok ragazzi grazie, oggi proverò a mettemi all'opera ma stavo pensando, i sensori li metto nel circuito di alimentazione dei servi o devo farne un'altro ancora a parte?
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: PaoloP on Sep 05, 2013, 12:12 pm
Quei sensori funzionano come partitori resistivi. Non ha senso alimentarli a parte altrimenti dovresti usare un riferimento esterno per la tensione perche sarebbe diversa dall'alimentazione di arduino.
Lasciali collegati come sono.
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: -DATA- on Sep 05, 2013, 02:00 pm

Quei sensori funzionano come partitori resistivi. Non ha senso alimentarli a parte altrimenti dovresti usare un riferimento esterno per la tensione perche sarebbe diversa dall'alimentazione di arduino.
Lasciali collegati come sono.


ok perfetto grazie dopo provo
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: -DATA- on Sep 05, 2013, 10:33 pm
ciao ragazzi ho fatto una bozza di come ho moificato il mio circuito secondo voi va bene così...
http://img12.imageshack.us/img12/7571/rmqa.jpg (http://img12.imageshack.us/img12/7571/rmqa.jpg)

ho evitato di disegnare il crcuito dei sensori che mi sebra inutile mostrarvi.
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: MrJacko on Sep 05, 2013, 10:39 pm
Sì, dovrebbe funzionare..
A patto che l'alimentatore sia da 4,8-6V e da almeno 2 ampere (sotto sforzo alcuni servomotori assorbono parecchio :smiley-eek-blue:) e che rispetti i colori dei servi, di solito Rosso(+)-Nero(-)-Giallo(Segnale)
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: -DATA- on Sep 05, 2013, 11:06 pm

Sì, dovrebbe funzionare..
A patto che l'alimentatore sia da 4,8-6V e da almeno 2 ampere (sotto sforzo alcuni servomotori assorbono parecchio :smiley-eek-blue:) e che rispetti i colori dei servi, di solito Rosso(+)-Nero(-)-Giallo(Segnale)


ovviamente rispetto la connessione del servo e ora proverò con il mio alimentatore per vedere che succede anche se è da 500mA. grazie per la conferma e la pazienza
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: -DATA- on Sep 05, 2013, 11:40 pm
ok sembrerebbe funzionare bene, ovviamente con 500mA la mano crasha tiando giu due servo assieme ma questo direi che è ovvio devo procurarmi un alimentatore compatibile, consigli?? :smiley-mr-green:

ho trovato delle batterie ricaricabili da 2600mA l'una da 1.2V riusciranno a soddisfare il tutto??
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: PaoloP on Sep 06, 2013, 01:44 am
Come tensione ok, ma come corrente e durata forse non raggiungi le 2 ore.
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: -DATA- on Sep 06, 2013, 12:02 pm

Come tensione ok, ma come corrente e durata forse non raggiungi le 2 ore.


è abbastanza per una trasferta nel caso me ne procuro un po' oppure mi procuro un alimentatore apposito in caso di scarsa autonomia.... :smiley-mr-green:
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: Darklife on Sep 29, 2013, 03:15 pm
non so se hai risolto, sto avendo un problema simile anche io. ( non ho letto tutte le risposte )
se hai problemi di corrente devi mettere nel circuito uno stabilizzatore di tensione da 5 volt ( poichè solitamente arduino e servi lavorano a tale voltaggio)

oppure hai lo stesso problema mia, i sensori di flessione sono instabili, prima di fargli avere il valore da leggere ( ai servo ) fai una media nel tempo ( tipo un ciclo for con un delay di 10 per 5 volte ) in modo da dargli un valore più preciso ai servo

che sensori di flessione stai usando?
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: kevinfv on Jun 23, 2014, 10:14 pm

non so se hai risolto, sto avendo un problema simile anche io. ( non ho letto tutte le risposte )
se hai problemi di corrente devi mettere nel circuito uno stabilizzatore di tensione da 5 volt ( poichè solitamente arduino e servi lavorano a tale voltaggio)

oppure hai lo stesso problema mia, i sensori di flessione sono instabili, prima di fargli avere il valore da leggere ( ai servo ) fai una media nel tempo ( tipo un ciclo for con un delay di 10 per 5 volte ) in modo da dargli un valore più preciso ai servo

che sensori di flessione stai usando?


Ciao io ho un problema simile! Ho alimentato arduino con una batteria 9v dal connettore cilindrico, e i servo da un alimentatore 5V (del pc). Quindi penso di stare apposto con corrente e tensione!

Purtroppo quando vado a leggere i valori ho molti "SBALZI" ad esempio:
...
800
799
798
797
810     <<<
796
795
794
801    <<<
793
792
791
...

Questo mi comporta un tremolio continuo dei servo!
NON so più cosa provare, spero che qualcuno di voi ne sappia qualcosa! :D
in ogni caso grazie in anticipo!
Title: Re: Problema Arduino uno R3 e sensori di flessione
Post by: cardax on Apr 17, 2015, 01:36 pm
ciao a tutti,
sto anche io costruendo una mano robotica , nel programma che ha scritto MrJacko ho notato la funzione "void setThreshold()" , qualcuno mi potrebbe spiegare a cosa serve , grazie