Pages: [1] 2   Go Down
Author Topic: "robotizzare" una macchinina telecomandata  (Read 3477 times)
0 Members and 1 Guest are viewing this topic.
Rome
Offline Offline
God Member
*****
Karma: 1
Posts: 989
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

L'altro giorno sono stato a un mercatino dell'usato a Roma (via Conca D'Oro), e mi sono imbattuto in un'inaspettata occasione!
C'e' una tizia che vende (credo che il mercatino ci sia tutti i weekend) delle stupide automobiline telecomandate da 4 soldi (anzi, da 12 euro); ne ho comprata una e smontata, e dentro c'e' un circuito con un chippetto RX 2CS:
http://tec.icbuy.com/upload/silan/TX-2C(RX-2C)AY.pdf

Guardando il datasheet, si intuisce che il chip è fatto per controllare due ponti H, che credevo fosse quindi cio' che contiene il circuitino che ho trovato nella macchinina.
Così ho pensato: e se invece del chip di bordo, ci collego una arduino e dei sensori?
Detto-fatto.  smiley

Ho collegato la arduino ai piedini 6,7, 10 e 11 (senza nemmeno bisogno di staccare il chip di bordo)., che controllano direzione di moto e direzione di sterzata... e questo è tutto! Ho il mio primo robot!   smiley
Per il momento ovviamente puo' solo svolgere compiti preprogrammati, ma ora provero' ad aggiungere dei sensori; ovviamente sempre in ottica economica: due normali led IR da usare come "distanziometro" per farla fermare prima che sbatta contro gli ostacoli.
Poi dovro' installarci una Ardweeny invece che una "pesantissima" Arduino: la macchinina è poco piu' grande della arduino stessa!
Logged

0
Online Online
Shannon Member
****
Karma: 132
Posts: 10497
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bella mossa! hai un telaio già costruito, e se riesci ad intercettare il segnale della ricevente e della trasmittente, puoi inviare comandi attraverso di essi, magari pilotandola dal pc... uhmm quante idee! devo cercare la mia vecchia macchina radiocomandata!
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Rome
Offline Offline
God Member
*****
Karma: 1
Posts: 989
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ci avevo pensato, ma se mando i comandi tramite il telecomando, la macchinina non è autonoma, quindi non è un robot, ma rimane un giocattolo!
Invece voglio mettergli il "cervello elettronico" a bordo. Anche perche' se mettessi a bordo anche dei sensori, per fargli inviare i dati al "cervello" collegato al telecomando... mi servirebbe comunque una arduino anche a bordo per gestire l'invio dei dati!
Logged

0
Online Online
Shannon Member
****
Karma: 132
Posts: 10497
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

diventa un drone. magari i comandi che passi non sono per pilotarlo, ma semplicemente per modificareil suo comportamento (guida aggressiva/cauta, ecc..)

Sarebbe bello avere una comunicazione full-duplex, in modo da poter leggere a pc i dati rilevati da arduino ecc...

dai un'occhiata alle vecchie discussioni, c'è una discussuine su come usare i led IR come sensori per distanza molto economici ma comunque molto validi
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Rome
Offline Offline
God Member
*****
Karma: 1
Posts: 989
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

E così, sono riuscito a costruire il mio primo robot.  smiley-cool
Con una arduino, una macchinina da 12 euro e due led IR che avevo nel cassetto.  smiley-eek
Roba da pazzi.  smiley-eek

Eccovi lo sketch:

Code:
#define irEmitter 12            // polo positivo emettitore
#define irReceiverN 7          // polo negativo ricevitore
#define irReceiverP 9   // polo positivo ricevitore

#define LEFT 8
#define RIGHT 10
#define FORWARD A3
#define BACKWARD A0

long distance = 0;
int interval = 15;

void setup() {
  Serial.begin(57600);             // inizializza seriale a 9600 baud
  pinMode(irEmitter, OUTPUT);      // il led emettitore è un output
  pinMode(irReceiverP, OUTPUT);    // il polo positivo del led ricevitore è un output
  digitalWrite(irReceiverP, LOW);  // e deve essere LOW
 
  pinMode(LEFT,OUTPUT);
  pinMode(RIGHT,OUTPUT);
  pinMode(FORWARD,OUTPUT);
  pinMode(BACKWARD,OUTPUT); 
}


int focus() {
 distance = readLight(true) - readLight(false);
 if(distance < 0) distance = 0;
 // processing
 int data = int(Serial.read());    //ottieni seriale
 if(data == '1') interval++;       //se processing chiede di aumentare aumenta
 if(interval > 0) if(data == '2') interval--; //se non sei a 0 diminuisci
 Serial.print(interval);           //spedisci a processing distanza
 Serial.print(" ");                //suddivisa da uno spazio
 Serial.println(distance);         //e l'intervallo
 return distance;
}

double readLight(boolean lightOn) {
 digitalWrite(irEmitter, lightOn ? HIGH : LOW);
 pinMode(irReceiverN, OUTPUT);
 digitalWrite(irReceiverN, HIGH); //carico ricevitore di induttanza
 long reading = 0;
 pinMode(irReceiverN, INPUT);
 digitalWrite(irReceiverN, LOW);
 long lightTime = millis();
 while((millis() - lightTime) < interval)
  if(digitalRead(irReceiverN) == 0)
   reading++;

 return reading;
}

void GoForward() {
  digitalWrite(FORWARD,HIGH);
  digitalWrite(BACKWARD,LOW); 
}
   
void GoBackward() {
  digitalWrite(FORWARD,LOW);
  digitalWrite(BACKWARD,HIGH); 
}


void StopEngine() {
  digitalWrite(FORWARD,LOW);
  digitalWrite(BACKWARD,LOW); 
}

void loop() {
  while (focus() < 200) {
    GoForward();
  }
  GoBackward();
}

La macchinina va avanti finchè non vede un ostacolo, poi va indietro finche' non lo vede piu', poi rivà avanti....  smiley-razz
'na cretinata.... ma lo decide da sola, quindi è un robot a tutti gli effetti!
Unico problema: una arduino standard e una batteria sono TROOOOOPPO pesanti per questa macchinina.... quindi le ruote girano solo se la tengo in mano!  smiley-roll Domani devo passare alla versione Ardweeny...

Probabilmente dovò aggiungere anche un'isteresi, perche' per quei due secondi che la macchinina riesce a camminare da sola prima che il peso "ciucci" tutte le batterie di bordo  smiley-roll , siccome va molto piano va "in stallo" quando arriva alla distanza critica dall'ostacolo.

Logged

Napoli
Offline Offline
Full Member
***
Karma: 0
Posts: 200
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Complimenti!

Volevo fare una cosa del genere con una vecchia macchinina che ha mio zio che ha la ricetrasmittente rotta...

Ma come sensore formato dai due led hai utilizzato il codice di gioblu che si trovava qualche topic fa?
Logged

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

Ciao JumpJack non sai che piacere vedere una mia invenzione essere utile a qualcuno  smiley-mr-green!!
Fai qualche foto e magari un video!! Sono curioso di vedere l'oggetto!!
Perchè non carichi un articolo sulla tua realizzazione (magari potrebbe essere utile a qualcun altro  smiley-mr-green)
http://www.gioblu.com/index.php?option=com_content&view=article&layout=form&Itemid=15
« Last Edit: March 23, 2011, 09:22:20 pm by gbm » Logged

Community robotica / programmazione Arduino
www.gioblu.com

Rome
Offline Offline
God Member
*****
Karma: 1
Posts: 989
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Complimenti!

Volevo fare una cosa del genere con una vecchia macchinina che ha mio zio che ha la ricetrasmittente rotta...

Ma come sensore formato dai due led hai utilizzato il codice di gioblu che si trovava qualche topic fa?
Esatto.

Ciao JumpJack non sai che piacere vedere una mia invenzione essere utile a qualcuno  smiley-mr-green!!
Fai qualche foto e magari un video!! Sono curioso di vedere l'oggetto!!
Perchè non carichi un articolo sulla tua realizzazione (magari potrebbe essere utile a qualcun altro  smiley-mr-green)
http://www.gioblu.com/index.php?option=com_content&view=article&layout=form&Itemid=15
Sì, infatti ho preparato un articolo... ma per il sito del "gruppo arduino" che sta organizzando DigitalRome di settembre, mi spiace!
http://jumpjack.altervista.org//digitalrome/progetti/macchinina/index.xhtml
Logged

Rome
Offline Offline
God Member
*****
Karma: 1
Posts: 989
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Cavolo, sembra che il metodo dei led IR sia molto piu' sensibile alla luce di quello che credevo, nonostante abbia usato gli infrarossi! Il comportamento della macchinina cambia profondamente lontano o vicino alla finestra!
Logged

0
Online Online
Shannon Member
****
Karma: 132
Posts: 10497
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

prova a fare una specie di "tettuccio" in modo da tenere i led sempre in ombra, dovrebbe funzionare

edit: ancora meglio se li metti in una scatola
« Last Edit: March 31, 2011, 02:19:04 pm by lesto » Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 573
Posts: 12633
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Sì, infatti ho preparato un articolo... ma per il sito del "gruppo arduino" che sta organizzando DigitalRome di settembre, mi spiace!
http://jumpjack.altervista.org//digitalrome/progetti/macchinina/index.xhtml
Ciao, perché se clicco sul link mi appare una pagine che mi dice "la risorsa è qui" e cliccando cerca di scaricarmi il file index invece di aprire la pagina?
(Ho procurato una macchinina.... smiley-grin)
Logged


Rome
Offline Offline
God Member
*****
Karma: 1
Posts: 989
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Sì, infatti ho preparato un articolo... ma per il sito del "gruppo arduino" che sta organizzando DigitalRome di settembre, mi spiace!
http://jumpjack.altervista.org//digitalrome/progetti/macchinina/index.xhtml
Ciao, perché se clicco sul link mi appare una pagine che mi dice "la risorsa è qui" e cliccando cerca di scaricarmi il file index invece di aprire la pagina?
(Ho procurato una macchinina.... smiley-grin)
Che appaia quella fastidiosissima pagina è "normale", perche' Altervista funziona cosi', ahime'. Pero' è strano che il browser cerchi di scaricare il file invece di aprirlo!

Pero' in teoria la pagina "di intermezzo" dovrebbe apaprirti solo se clicki sul link dalla pagina principale del nostro sito, mentre se scrivi questo nella barra-indirizzi dovrebbe aprirsi subito la pagina... o no?
http://jumpjack.altervista.org//digitalrome/progetti/macchinina/index.xhtml
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 573
Posts: 12633
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Niente da fare, sono andato direttamente sulla home del tuo sito, mi fa entrare nelle altre due sezioni, invece su questa mi propone di scaricare l'home page, sarà la desinenza xhtml o il nome index1? Il sito sulla programmazione ha una pagina html "semplice" e si apre. smiley-eek
Logged


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

Io ho appena provato sia con Chrome che con FF sotto Linux: a parte che a volte compare la pagina di intermezzo, cliccando su "qui" arrivo alla pagina del progetto.
Logged


Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 573
Posts: 12633
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Io ho la coppia maledetta WinXP-IE8, speriamo che jumpjack risolva la cosa, vorrei proprio realizzarlo questo progettino.
Logged


Pages: [1] 2   Go Up
Jump to: