Pages: [1] 2   Go Down
Author Topic: Rover rianimato  (Read 1562 times)
0 Members and 1 Guest are viewing this topic.
Italy
Offline Offline
Jr. Member
**
Karma: 1
Posts: 67
ATMOLab
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti
Questo è il mio primo progetto basato sulla scheda arduino (mega) appena comprata.
Per giocare un po' ho riesumato un vecchio rover con scheda bruciata rianimandolo... ma soprattutto impostando tutte le funzionalità del vecchio robot.

l'obiettvo è creare un robottino che possa inseguire le maggiori fonti di luce, evitando ostacoli discreta base per iniziare ad usare decentemente arduino.  Presto postero' le immagini del mio robot.

p.s. cannibalizzare un vecchio robot per ricrearne uno è sicuramente un metodo semplice e economicissimo per imparare
Logged

Il mio BLOG : PALLONE SONDA
http://roborover.wordpress.com

Milan
Offline Offline
Edison Member
*
Karma: 2
Posts: 1128
gioblu.com
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Si è uno dei punti dolenti della mia sperimentazione.
Non mi rimane mai un costrutto completo, viene digerito dai nuovi.
Logged

Community robotica / programmazione Arduino
www.gioblu.com

Italy
Offline Offline
Jr. Member
**
Karma: 1
Posts: 67
ATMOLab
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Rianimazione avvenuta, ho creato un piccolo blog dove mettero' le fasi di vita del progetto di "rianimazione  smiley-grin smiley-grin smiley-grin...

http://roborover.wordpress.com

Oggi pomeriggio creo i primi due sensori di "prua" che sentono luce da destra e sinistra e relativi comandi ai servo per dirigersi verso la fonte di luce predominante....speriamo bene...

Gio'
Logged

Il mio BLOG : PALLONE SONDA
http://roborover.wordpress.com

Milano, Italy
Offline Offline
Faraday Member
**
Karma: 11
Posts: 3091
Sideralis Arduino!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bello smiley Tienici aggiornati! smiley-grin
Ma usi dei servo? Ci vorrebbe anche un po' di descrizione del funzionamento, motori, parti usate e codice!
F
Logged

Federico - Sideralis
Arduino &C: http://www.sideralis.org
Foto: http://blackman.amicofigo.com

Italy
Offline Offline
Jr. Member
**
Karma: 1
Posts: 67
ATMOLab
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Si uso due servo futaba s3003 per le ruote, ora creo un po' di documentazione relativa al circuito e al software...
(per la serie menomale che è domenica ahahah)

arriva tutto...
Logged

Il mio BLOG : PALLONE SONDA
http://roborover.wordpress.com

Milano, Italy
Offline Offline
Faraday Member
**
Karma: 11
Posts: 3091
Sideralis Arduino!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Io ho qui 4 s3003, ma sono 0-180gradi, come fai a farlo andare avanti? smiley-grin
Logged

Federico - Sideralis
Arduino &C: http://www.sideralis.org
Foto: http://blackman.amicofigo.com

Italy
Offline Offline
Jr. Member
**
Karma: 1
Posts: 67
ATMOLab
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

devi modificarlo, se smonti il servo trovi 3 "ingranaggi" , sulla base del  pignone nero c'e' un semplice blocco di plastica, taglialo a metà con taglierino affilatissimo e fallo saltare, ma stai attento a non  romperlo tutto.. taglialo a metà.... e girerà a 360°.
Logged

Il mio BLOG : PALLONE SONDA
http://roborover.wordpress.com

Italy
Offline Offline
Jr. Member
**
Karma: 1
Posts: 67
ATMOLab
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

guarda questo tutorial, ma devi essere ultrapreciso...
http://www.kronosrobotics.com/an116/GAN116_3003.shtml
Logged

Il mio BLOG : PALLONE SONDA
http://roborover.wordpress.com

Milano, Italy
Offline Offline
Faraday Member
**
Karma: 11
Posts: 3091
Sideralis Arduino!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Valutero' l'operazione, in realta' li ho per iniziare a fare prove di un braccio meccanico, speravo che la modifica fosse reversibile  smiley-wink
Logged

Federico - Sideralis
Arduino &C: http://www.sideralis.org
Foto: http://blackman.amicofigo.com

Milan
Offline Offline
Edison Member
*
Karma: 2
Posts: 1128
gioblu.com
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Tienili da conto, forse ne ho io qualcuno o qualche ingranaggio di troppo
Logged

Community robotica / programmazione Arduino
www.gioblu.com

Italy
Offline Offline
Jr. Member
**
Karma: 1
Posts: 67
ATMOLab
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bravo GBM , mai modificare roba che costicchia...almeno che tu non sia un folle ahahaha

E andiamo LA PRIMA VERSIONE DEL ROVER RIANIMATO ribattezzato SUNROVER è attiva!! segue il la luce predominante come un cane da tartufo ... ho messo tutto sul blog e tra poco metto anche gli schemi dei circuiti e soprattutto del software

http://roborover.wordpress.com
ho messo anche un video migliore mentre segue la luce...adesso aspetto che arrivi sera per testarlo con luce artificiale e facendo diventare matto il SunRover accendendo e spegnendo le luci nelle camere...vedremo che succede.

A presto, Gio'
Faccio un po' di Hardening del Software e pubblico.
Logged

Il mio BLOG : PALLONE SONDA
http://roborover.wordpress.com

Milan
Offline Offline
Edison Member
*
Karma: 2
Posts: 1128
gioblu.com
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

quanti led usi per seguire la luce?
Logged

Community robotica / programmazione Arduino
www.gioblu.com

Italy
Offline Offline
Jr. Member
**
Karma: 1
Posts: 67
ATMOLab
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

non uso nessun led, ma delle fotoresistenze che misurano la quantità di luce presente nell'ambiente.
Logged

Il mio BLOG : PALLONE SONDA
http://roborover.wordpress.com

Italy
Offline Offline
Jr. Member
**
Karma: 1
Posts: 67
ATMOLab
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Inserisco il codice del rover. l'ho messo anche sul Blog.
Il software comunque è ancora da hardenizzare ovviamente e da aggiornare

// Applicazione per Rover SunFollower
// Il robot segue le fonti di luce predominanti
// evita gli ostacoli se entra in collisione con un ostacolo
// rilevato dai sensori.
//Ver. 1.0 7/3/2010

#include <Servo.h>
#define SX 0   //pin 0 per sensore di SX
#define DX 1   //pin 1 per sensore di DX
#define LSX 9  //pin 9 per sensore di luce di Sinistra
#define LDX 8  //pin 8 per sensore di luce di Destra

Servo myservoDX;  // Creo oggetto per ruota di Destra
Servo myservoSX;  //Creo oggetto per ruota di Sinistra

long val_SX=0;
long val_DX=0;

long OTT_DX=0;   //variabile per registrare la luce di Destra
long OTT_SX=0;   // Variabile per registrare la luce di Sinistra
long delta=0;    //variabile usata per salvare la differenza di luce tra DX e SX
void setup() {
  Serial.begin(9600);
  myservoDX.attach(9);  // servo ruote al pin 9 PWM ruota di Destra
  myservoSX.attach(smiley-cool;  // servo ruote al pin 8 PWM ruota di Sinistra
  
 }

void loop () {
    val_SX=analogRead(SX);  //leggo i valori degli interruttori di sinistra
    val_DX=analogRead(DX);  //leggo i valori degli interruttori di destra
    OTT_DX=analogRead(LDX); //leggo i valori di luce di Destra
    OTT_SX=analogRead(LSX)-5; //leggo i valori di luce di Sinistra
    delta = OTT_SX-OTT_DX;    // eseguo la sottrazione tra i vaolri rilevati
                              // ottenendo valori positivi o negativi o ugali a 0
    
    if (val_SX <= 20)
        {
          myservoSX.write(91);   //Rover si ferma per blocco a sinistra
          myservoDX.write(92);  
          delay(1000);
          myservoDX.write(95);     // va in dietro ruotando sulla ruota Sinistra
          myservoSX.write(91);
          delay (2000);
        }
    else if (val_DX <= 20)
        {
          myservoSX.write(91);    //rover si ferma per blocco a Destra
          myservoDX.write(92);
          delay(1000);
          myservoDX.write(92);     // va in dietro ruotando sulla ruota Destra
          myservoSX.write(88);
          delay (2000);
        }
     else if (delta == 0)
     {
          myservoSX.write(91);    //rover si ferma per identica quantità di luce
          myservoDX.write(93);
          delay (1000);
     }
     else if (delta > 0 )          //rover riceve luce da Sinistra quindi gira a Sinistra
     {
          myservoSX.write(92);    //rover ruota a Sinistra
          myservoDX.write(88);
          delay (500);
     }
     else if (delta < 0 )          //rover riceve luce da Destra quindi gira a Destra
     {
          myservoSX.write(95);    //rover ruota a Destra
          myservoDX.write(91);
          delay (500);
     }
    
     else
        {
          myservoDX.write(88);     // va avanti
          myservoSX.write(95);
          delay(500);
        }      
    
    Serial.println(delta);   //Debug e print del valore differenza tra la luce
    myservoDX.write(91);     //
    myservoSX.write(92);     // Rover si ferma
    delay(10);  
}
Logged

Il mio BLOG : PALLONE SONDA
http://roborover.wordpress.com

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 51
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

grazie 1000 il codice e' utilissimo spero arrivino ppresto gli schemi
Logged

Pages: [1] 2   Go Up
Jump to: