Show Posts
Pages: [1] 2
1  International / Generale / Re: Problema con Hexapod posseduto(tremante) on: May 28, 2013, 10:06:44 am
Ah lo schema elettrico è semplice! il servo ha tre pin, uno è collegato ad arduino e gli altri due sono uno massa e l'altro è il positivo che collego ad un'alimentatore esterno collegando ovviamente la massa anche a quella di arduino.
io uso un'alimentatore da 1A come hai detto tu, e ho anche provato ad aumentare il voltaggio dei motori a 6V.
Comunque mi succede solamente quando provo ad accendere l'Arduino...quando collego i motori non succede, fanno il loro solito "scattino" che è causato dall'improvvisa alimentazione, ma questo è normale...quando accendo Arduino parte il problema e non è nemmeno un problema di alimentazione dello stesso perché ho anche provato ad alimentarlo tramite un secondo alimentatore esterno..
2  International / Generale / Problema con Hexapod posseduto(tremante) on: May 28, 2013, 09:33:48 am
Salve, come tesina per l'esame ho costruito personalmente un esapode a 18 servomotori.
6 per gli spostamenti delle zampe lungo l'asse x, 6 per l'asse y ed infine i 6 che regolano l'ampiezza dell'apertura delle gambe.
come spunto ho preso il famoso hexapod MSR-H01 per intenderci.
Ora che ho finalmente finito con la parte meccanica mi trovo impantanato in un odioso problema, mi spiego:
quando io accendo Arduino( utilizzo un'Arduino Mega a causa dei numerosi pin che mi occorrono per il controllo tramite joystick e il controllo dei motori) e do l'alimentazione esterna ai motori tramite un trasformatorino di quelli regolabili con tensione impostata a 5V (siccome possono lavorare tra 4,5V e i 6V) impazzisce, alcuni dei motori iniziano a tremare letteralmente e forte anche.
All'inizio tremava solo una gamba e li ho pensato un semplice contatto magari, poi però la gamba è cambiata  smiley-eek e sono diventate due!
Il programma posso anche postarlo ma non ne vedo l'utilità poichè ho solamente assegnato ogni motore ad un pin, dopodichè ho semplicemente dato il comando servo.write(90) a tutti i motori.
Sottolineo però che per impostare tutte le gambe simmetriche tra loro e ben dritte rispetto il suolo ho fatto spesso carica programma dal pc, cambiando un valore e ricaricando il programma più e più volte, non vorrei averlo incasinato in qualche modo.
L'unica soluzione che ho pensato è di chiedere magari a qualcuno di più esperto di me nell'utilizzo dei servi e rivolgermi qui consapevole del fatto che sono presenti persone preparate.
Vi ringrazio in anticipo del vostro aiuto.
3  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.

Code:
#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  smiley-grin .
4  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  smiley-confuse .
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  smiley-roll
5  International / Generale / Re: far muovere un servo un grado alla volta ad ogni pressione on: February 07, 2013, 04:29:29 am
Anche se inserisco il comando che mi hai detto non funziona il risultato é uguale smiley-sad .
É un semplice microservo da 180°, alimentato esternamente a 5V Siccome può lavorare da 4.5V a 6V.
6  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 smiley-neutral .
7  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.
Quote
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?
8  International / Generale / Re: far muovere un servo un grado alla volta ad ogni pressione on: February 06, 2013, 11:52:49 am
Code:
#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  smiley-sweat 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!
9  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!
10  International / Generale / Re: Comprare MSR-H01 Hexapod o simile on: February 06, 2013, 05:52:45 am
Io ho visto molti progetti con l'Arduino Mega e funziona bene.
Ho visto siti che solo il telaio costa 200$ e poi in più mi fanno pagare i servo.
11  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.
12  International / Generale / Re: Problema nel controllo joystick PS2 on: January 10, 2013, 09:24:32 am
Nessuno sa come aiutarmi? smiley-confuse non riesco a venirci a capo...qualche buon anima che c'è già passato c'è?
13  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/ArduinoPsx
Modifico 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.
14  International / Generale / Re: Problema nella costruzione di un hexapod on: January 06, 2013, 01:31:32 pm
Scusa per essere stato vago non mi ero accorto di non aver allegato il link.
Il compatibile a cui mi riferisco è questo: http://www.robot-domestici.it/joomla/component/virtuemart/robotica-domotica/schede/controllo-servi/dagu-red-back-spider
é un compatibile dell'Arduino specifico per il controllo di robot con un alto numero di servo motori.
Ha l'attacco diretto per i servomotori(i tre pin; ground, tensione, segnale), ma il mio dubbio è: mi conviene? Se poi successivamente vorrei impiegare l'Arduino per un altro progetto questo risulterebbe troppo specifico per i robot?
In effetti sarei più propenso a comprare direttamente l'Arduino Mega...
15  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...
Pages: [1] 2