Pages: [1]   Go Down
Author Topic: Problema robot!!!!  (Read 538 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salve a  tutti, ho un problema con il mio robo. Ho fatto il telaio prendendo da modello quelli in plastica che si comprano. Ho montato i 2 motori, Arduino uno rev. 3 , la adafruit motor shield e il sensore ad ultrasuoni. Il problema è che parte per pochi secondi solo un motore e poi si ferma. Gradirei una risposta veloce poichè questo progetto mi è utile per scuola, grazie. Ecco il codice:
 smiley smiley

Code:
#include <AFMotor.h>
AF_DCMotor motor(2, MOTOR12_64KHZ);
AF_DCMotor motor1(1, MOTOR12_64KHZ);
int triggerPort = 7;
int echoPort = 8;

void setup() {                

  motor.setSpeed(230);
  motor1.setSpeed(255);
  pinMode( triggerPort, OUTPUT );
  pinMode( echoPort, INPUT );
  Serial.begin(9600);
  Serial.println( "Sensore ultrasuoni: ");
  
}

void loop(){
  motor.run(FORWARD);
  motor1.run(FORWARD);
  digitalWrite( triggerPort, LOW );
  digitalWrite( triggerPort, HIGH );
  delayMicroseconds( 10 );
  digitalWrite( triggerPort, LOW );
  long duration = pulseIn( echoPort, HIGH );
  long r = 0.034 * duration / 2;
  Serial.print( "durata: " );
  Serial.print( duration );
  Serial.print( " , " );
  Serial.print( "distanza: " );
 if( duration > 38000 ) Serial.println( "fuori portata");
 else { Serial.print( r ); Serial.println( "cm" );}

 if(r>20){
  motor.run(FORWARD);
  motor1.run(FORWARD);
 }
 else{
  motor.run(RELEASE);
  motor1.run(FORWARD);
}
 
}
« Last Edit: September 25, 2013, 02:43:03 pm by leo72 » Logged

Milano
Offline Offline
Full Member
***
Karma: 1
Posts: 113
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

io gradirei una coca cola... con ghiaccio... ... già che ci sei anche limone ....


per un fare un debug potresti intanto partire dal motore che non va ... è il motor o il motor1 ??
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 114
Posts: 7205
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sarebbe utile sapere come hai fatto i collegamenti e quale fonte di alimentazione usi.
La motor shield è questa http://www.adafruit.com/products/81 ?
Che motori hai? Dati tecnici?

Leggi il regolamento, in particolare i punti 7, 8 e 9 --> http://forum.arduino.cc/index.php?topic=149082.0
Modifica il tuo post precedente e includi il codice con gli appositi tag.

Benvenuto.  smiley-mr-green
« Last Edit: September 25, 2013, 09:31:09 am by PaoloP » Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusa, comunque la scheda è quella, ho utilizzato normali motori dc e facendo una oriva ho visto che possono trainare il robo comodamente. Quando carico il programma parte solo un motore ( che sarebbe "motor1" nel codice). Non capisco cosa ci sia di sbagliato nel codice e tanto meno nell' hardware. Ecco alcune foto:



Logged

Dueville (VI)
Online Online
Edison Member
*
Karma: 28
Posts: 1764
http://cesarecacitti.wordpress.com/
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Gradirei una risposta veloce poichè questo progetto mi è utile per scuola, grazie.
Non mi risulta che ci sia la maturità domani smiley-wink
Potevi prenderti per tempo, mica programmiamo for food smiley-lol
Logged

Il Vero Programmatore non ha bisogno di manuali sull'assembler, sono
  sufficienti i data sheet dei microprocessori.

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 114
Posts: 7205
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

normali motori dc

Normale DC non vuol dire granchè. (servirebbe il datasheet, o foglio con le specifiche tecniche)
Ci sono motorini da 70mA che sotto sforzo arrivano a 170 e altri che da 100 arrivano a 400mA.
Visto che ne hai due e che la USB, alla quale mi pare attaccato il tutto, eroga solo 500mA, se togli anche la corrente per il micro e il driver... nun glia fà.  (Spero di averlo scritto correttamente)  smiley-mr-green

Bellino il carro.  smiley-wink
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

c'è,  i motorini gli ho trovati in giro così, non gli ho comprati. quindi non so reperire i datasheet perchè non c'è scritto niente. Non so proprio cosa fare. Poi comunque ho provato con un alimentatore a collegare il tutto  va perfettamente. Ma il codice è giusto?? A me sembra di aver fatto tutto correttamente ma evidentemente c'è qualcosa di sbagliato e non so cosa. Potete aiutarmi?? smiley-cry smiley-cry smiley-cry smiley-cry smiley-cry Grazie.
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 114
Posts: 7205
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Secondo me c'è un errore anche nel codice.
Prova così...
Code: (http://codebender.cc/sketch:19427)
#include <AFMotor.h>
AF_DCMotor motorDX(2, MOTOR12_64KHZ);
AF_DCMotor motorSX(1, MOTOR12_64KHZ);
int triggerPort = 7;
int echoPort = 8;

void setup() {                
motorDX.setSpeed(230);
motorSX.setSpeed(255);
pinMode(triggerPort, OUTPUT);
pinMode(echoPort, INPUT);
Serial.begin(9600);
Serial.println(F("Sensore ultrasuoni: "));
motorDX.run(FORWARD);
motorSX.run(FORWARD);
}

void loop(){
long range = distance();
if(range > 20) {
motorDX.run(FORWARD);
motorSX.run(FORWARD);
}
  else{
   motorDX.run(RELEASE);
   motorSX.run(FORWARD);
}
}

long distance(){
digitalWrite(triggerPort, LOW);
digitalWrite(triggerPort, HIGH);
delayMicroseconds( 10 );
digitalWrite( triggerPort, LOW );
long duration = pulseIn(echoPort, HIGH);
long r =  duration / 59;
Serial.print(F("durata: "));
Serial.print(duration);
Serial.print(F(" , "));
Serial.print(F("distanza: "));
if( r > 38000 )
   Serial.println(F("fuori portata"));
   else
     {
Serial.print(r);
      Serial.println(F(" cm"));
       }
return r;
}

Ho fatto qualche modifica.
Compila ma non l'ho provato perchè non ho la MotorShield.

p.s. Scusa per l'indentazione ma l'ho scritto su codebender e non con l'IDE.
Puoi comunque aggiustarla col comando "Formattazione automatica" nel menù strumenti.  smiley-wink
« Last Edit: September 25, 2013, 11:56:53 am by PaoloP » Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22973
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao Mirko98.
Vedo che sei nuovo e non hai letto il regolamento.

Ti riassumo brevemente alcuni punti:
1) si deve mettere un titolo della discussione consono al problema, scrivere solo "problema robot" con 4 punti esclamativi non aiuta nessuno a capire cosa succede;
2) il codice si racchiude con gli appositi tag, se editi il tuo primo post vedrai come ho fatto io;
3) le foto non si mettono così grandi. Rallenti il caricamento del thread. Nel regolamento che ti ho citato c'è scritto come fare per inserire delle foto in maniera appropriata
4) la cosa che dà fastidio è l'"urgenza" nella richiesta. Qui tutti aiutano nel tempo libero  smiley-wink
5) ti è stato fatto presente più di una volta di aver fatto una richiesta in maniera non consona, potevi almeno sistemare le cose che ti avevano segnalato (il codice lo hai messo alle 15:51, da allora non hai avuto tempo di leggere il regolamento e racchiuderlo fra i tag?)  smiley-sweat
« Last Edit: September 25, 2013, 06:17:37 pm by leo72 » Logged


Disperso nel nauseante oceano della burocrazia
Offline Offline
Edison Member
*
Karma: 77
Posts: 2461
Io sono l'ultimo,
e parlero' al vuoto
in ascolto.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

... i motorini gli ho trovati in giro così ...

... e, se non mi sbaglio, sono pure uno diverso dall'altro, almeno a giudicare dalle immagini ... se uno e' a 5V ed uno a 12 o piu, e' ovvio che uno andra' piu lento o magari neppure partira' ... ed anche se partisse, e se fossero entrambi da 5v, non e' detto che andrebbe diritto, perche' potrebbero avere forze e velocita' diverse smiley-wink

Prima cosa da fare, trovare due motori identici, meglio ancora se demoltiplicati, dato che con quel raggio di ruota, alcuni motori potrebbero non farcela neppure a muoverla, se accoppiati direttamente ... ormai non costano neppure molto ... http://www.ebay.com/itm/2pcs-x-DC-Motor-Geared-Motor-Uniaxial-Robot-Smart-Car-1-288-/181145252592?pt=LH_DefaultDomain_0&hash=item2a2d1932f0 ... e in asta magari li paghi anche meno http://www.ebay.com/itm/2PCS-DC-3v-6V-1-48-Gear-Motor-For-Robot-/181225005168?pt=LH_DefaultDomain_0&hash=item2a31da2070
Logged

"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.

Pages: [1]   Go Up
Jump to: