Show Posts
|
|
Pages: [1]
|
|
1
|
International / Generale / Re: far muovere un servo un grado alla volta ad ogni pressione[RISOLTO]
|
on: February 07, 2013, 03:01:44 pm
|
Grandissimi è venuto!!! Grazie mille!!! Siete dei grandi!!!posto il programma corretto. #include <PS2X_lib.h> //for v1.6 #include <Servo.h> PS2X ps2x; // create PS2 Controller Class
Servo myservo; Servo myservo2; int error = 0; int pos = 90;
void setup(){ Serial.begin(57600);
//CHANGES for v1.6 HERE!!! **************PAY ATTENTION************* error = ps2x.config_gamepad(6,10,9,11, true, true); //setup pins and settings: GamePad(clock, command, attention, data, Pressures?, Rumble?) check for error myservo.attach(3); } void loop() { ps2x.read_gamepad(); if( ps2x.Button(PSB_BLUE) && pos <= 180){ pos = pos + 10; myservo.write(pos); delay(100); } if( ps2x.Button(PSB_PINK) && pos >= 0){ pos = pos - 10; myservo.write(pos); delay(100); } delay(15); }
Bisognava dare un valore iniziale a pos per poter fare l'operazione iniziale  .
|
|
|
|
|
2
|
International / Generale / Re: far muovere un servo un grado alla volta ad ogni pressione
|
on: February 07, 2013, 10:06:01 am
|
Il codice è sempre quello che ho già postato però ho cambiato il ritardo e inserito la cosa che mi hai scritto tu. Il servo viene alimentato da una batteria esterna da 9 V che viene portata con un regolatore a 5V, arduino è indifferente posso alimentarlo da il pc ma anche con una batteria esterna sempre da 9V( un'altra), ho già fatto codici con i servomotori e li so utilizzare perchè con altri codidi funzionano alla perfezione. Il problema è proprio il codice che non riesco a scrivere correttamente molto probabilmente e non so come uscirne  . Io ho pensato di assegnare al valore di pos iniziale un servo.read() così che quando va a fare pos = pos + 1; il pos nell'operazione sia il valore che legge dal servo, peccato non sappia come scrivere il programma 
|
|
|
|
|
4
|
International / Generale / Re: far muovere un servo un grado alla volta ad ogni pressione
|
on: February 06, 2013, 01:51:55 pm
|
aaaah che tu intendessi che se il ritardo è molto basso non ho nemmeno il tempo di premere il bottone?! ok ora ho capito cosa intendevi, il problema è che anche con un ritardo di un secondo mi fa la stessa cosa, cioè: sia che io premo un bottone sia che premo l'altro parte e va a zero, come se gli dicessi di andare al valore zero. Non riesco a capire il motivo  .
|
|
|
|
|
5
|
International / Generale / Re: far muovere un servo un grado alla volta ad ogni pressione
|
on: February 06, 2013, 01:20:48 pm
|
Ho fatto varie prove di velocità cambiando il ritardo e ho messo quella più normale che non fosse troppo veloce ma neanche troppo lenta, i miei sono servi che hanno valori da 0 a 180 non sono a giro. il codice va bene ma devi fare attenzione che pos sia sempre compreso tra 0 e 360. Cosa intendi? Che devo scrivergli nel programma che il valore pos è compreso tra 0 e 180 nella parentesi dell'if?
|
|
|
|
|
6
|
International / Generale / Re: far muovere un servo un grado alla volta ad ogni pressione
|
on: February 06, 2013, 11:52:49 am
|
#include <PS2X_lib.h> //for v1.6 #include <Servo.h> PS2X ps2x; // create PS2 Controller Class
Servo myservo; Servo myservo2; int error = 0; int pos;
void setup(){ Serial.begin(57600);
//CHANGES for v1.6 HERE!!! **************PAY ATTENTION************* error = ps2x.config_gamepad(6,10,9,11, true, true); //setup pins and settings: GamePad(clock, command, attention, data, Pressures?, Rumble?) check for error myservo.attach(2); } void loop() { ps2x.read_gamepad(); if( ps2x.ButtonPressed(PSB_BLUE)){ pos = pos + 1; myservo.write(pos); delay(15); } if( ps2x.ButtonPressed(PSB_PINK)){ pos = pos - 1; myservo.write(pos); delay(15); } } Lascia perdere i codici del mio joystick  lo controllo tramite il mio controller wireless della play station 2 ma fai finta che sono 2 bottoni normalissimi! lui li vede come tali! come se dico button = HIGH per intenderci... il mio problema è che non riesco a fargli fare una cosa come: mettiamo caso che si trova a 20 gradi, io voglio che premendo un bottone aggiunga, che ne so, +10 gradi! e passi a 30 poi ripremendo a 40 e con un'altro bottone invece di fare la somma faccia la sottrazione dei 10!
|
|
|
|
|
7
|
International / Generale / far muovere un servo un grado alla volta ad ogni pressione
|
on: February 06, 2013, 11:06:21 am
|
|
Premettendo che non ho molta esperienza con la programmazione, vorrei far muovere il mio servomotore un grado alla volta ogni volta che premo un bottone. Mi spiego meglio, tutte le volte che premo il bottone deve aumentare di un grado o alla pressione di un secondo bottone diminuire di un grado, però quando lo tengo premuto questo continui ad aggiungere 1 e ad aumentare o diminuire. Magari se per fare ciò servono due programmi ( uno che ad ogni pressione aumenti di uno, ed un'altro che finchè premo questo ruota) mi piacerebbe che qualche buon anima riuscisse a spiegarmi le differenze. Io fin ora ho pensato di usare un' if che quando il bottone viene premuto scriva pos = pos + 1 (per posizione intendo la posizione del servo), ma ho visto che non funziona e fa tutt'altro. Ringrazio in anticipo tutti quelli che si interessano e mi danno una mano!!! Speranzoso che qualcuno risponda presto!
|
|
|
|
|
9
|
International / Generale / Comprare MSR-H01 Hexapod o simile
|
on: February 06, 2013, 04:53:33 am
|
|
Salve, io vorrei costruire un hexapod e mi piace il modello MSR-H01 ma ho visto molti siti e il costo non é per niente contenuto. Ho pensato che magari qui ci fosse qualcuno che si é già cimentato nell'impresa ed é interessato a vendermi il telaio ed i servomotori (arduino e moduli vari li ho già quindi non mi servono). Grazie anche solo se vi interessate, e scusate se magari questo non è il luogo adatto per la richiesta.
|
|
|
|
|
11
|
International / Generale / Problema nel controllo joystick PS2
|
on: January 09, 2013, 03:52:16 am
|
Ciao a tutti, ho un problema nel controllare un joystick della PS2 con Arduino UNO. Ho seguito alla lettera i passaggi che mi vengono mostrati nella pagina: http://playground.arduino.cc/Italiano/ArduinoPsxModifico la libreria GPSX.c come illustrato, ma nella complilazione dello sketch d'esempio che trovo nel sito mi da i seguenti errori: F:\arduino-1.0.3\libraries\GPSX\GPSX.c:31: error: 'LOW' undeclared here (not in a function) F:\arduino-1.0.3\libraries\GPSX\GPSX.c: In function 'psx_init': F:\arduino-1.0.3\libraries\GPSX\GPSX.c:48: error: 'OUTPUT' undeclared (first use in this function) F:\arduino-1.0.3\libraries\GPSX\GPSX.c:48: error: (Each undeclared identifier is reported only once F:\arduino-1.0.3\libraries\GPSX\GPSX.c:48: error: for each function it appears in.) F:\arduino-1.0.3\libraries\GPSX\GPSX.c:51: error: 'INPUT' undeclared (first use in this function) F:\arduino-1.0.3\libraries\GPSX\GPSX.c:57: error: 'HIGH' undeclared (first use in this function) F:\arduino-1.0.3\libraries\GPSX\GPSX.c: In function 'psx_cmd': F:\arduino-1.0.3\libraries\GPSX\GPSX.c:92: error: 'HIGH' undeclared (first use in this function) F:\arduino-1.0.3\libraries\GPSX\GPSX.c: In function 'psx_read_write_byte': F:\arduino-1.0.3\libraries\GPSX\GPSX.c:114: error: 'HIGH' undeclared (first use in this function) Come posso risolvere il problema? Grazie in anticipo.
|
|
|
|
|
13
|
International / Generale / Re: Problema nella costruzione di un hexapod
|
on: January 05, 2013, 03:27:12 pm
|
|
Grazie mille veramente!!! Ma per quanto riguarda invece il compatibile di Arduino?? Sempre meglio utilizzare Arduino Mega? Magari dopo che ho finito questo progetto e volessi poi utilizzare la scheda per qualcos'altro sarebbe dedicata al robot e mi scoccerebbe comprare qualcos'altro...
|
|
|
|
|
14
|
International / Generale / Re: Problema nella costruzione di un hexapod
|
on: January 05, 2013, 12:18:22 pm
|
|
Utilizzando l'Arduino Mega2560 REV3 avrei un sacco di uscite ed entrate che potrei utilizzare! Utilizzerei i 18 pin per muovere il robot e poi avrei un sacco di uscite che potrei utilizzare per molte altre cose! è una buona idea grazie uwefed!! Guardando in rete ho confrontato Arduino Mega con il nuovo Arduino DUE...cosa ne pensi? meglio uno piuttosto che l'altro? cosa ne pensi? Il numero di pin è quasi uguale, è la tensione che può supportare il DUE sui pin che mi mette dei dubbi. Ho inoltre trovato questo compatibile di Arduino che nella descrizione dice che è stato progettato per muovere esapodi o serpenti aventi un grande numero di motori, ma con questo poi posso programmarlo in modo tale da avere 5 pin digitali in entrata per il collegamento al joystick per il controllo dei servo??? Sono più propenso ad utilizzare i prodotti Arduino piuttosto che compatibili così poi posso utilizzarlo anche per altri progetti. Grazie mille comunque per i consigli!!
|
|
|
|
|
15
|
International / Generale / Problema nella costruzione di un hexapod
|
on: January 04, 2013, 10:08:19 am
|
Salve mi sono iscritto da poco per poter ricevere delle informazioni e un aiuto da chi ne sa un po' più di me. Vorrei costruire un esapode che si muove grazie a 18 servo motori, il problema è che Arduino possiede solamente 13 pin digitali che posso utilizzare (io possiedo un Arduino Uno) per controllare i servo, in più mi servirebbero anche 5 pin digitali a cui devo collegare il joystick della playstation per poterlo controllare io stesso(il joystick è wireless quindi non mi serve nessun tipo di modulo per i collegamenti senza fili siccome ho già l'attacco del joystick che andava collegato alla play), ed infine magari qualche pin per poter controllare qualche led e sensore per poter muovere il robot anche in modo automatico oltre che manualmente. Non riesco a capire se esistono delle shield che aumentano i pin digitali che posso utilizzare, se esistono delle shield che posso utilizzare con il mio Arduino Uno che possano gestire i servo lasciandomi dei pin digitali liberi che posso poi utilizzare. Ho visto online dei chip che controllano esclusivamente i servo e che utilizzerebbero solo 2 pin digitali, ma non ho capito se posso muovere indipendentemente i servo collegati ad esso o il comando che invio verrebbe eseguito da tutti i servo. L'integrato a cui mi riferisco è questo : http://www.gioblu.com/tutorials/azionamenti/224Grazie mille in anticipo per chi avesse voglia di aiutarmi.
|
|
|
|
|