Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2012-12-08 22:42:50 Arduino+télémètre à ultra son+Pure data

Pertuit
membre
Date d'inscription: 2011-11-21
Messages: 59

Arduino+télémètre à ultra son+Pure data



Bonjour,

Désolé de ce mail un peu long (et un peu technique), mais il faut être précis sur le sujet. J'ai pas mal galéré pour mettre au point des transferts de données entre des capteurs analogiques ou numériques et pure data (je ne suis ni informaticien, ni électronicien, juste un musicien un peu curieux) et aujourd'hui cela fonctionne assez bien. Dès que j'aurais un moment, je déposerai un vade-mecum sur le forum pour que cette expérience soit profitable à d'autres novices comme moi (les sources d'informations sont nombreuses et pas toujours directes sur le sujet).

Mais je me casse un peu les dents sur un télémètre à ultra son (URM37 V3.2 Ultrasonic Sensor) dont les branchements sont un peu moins classiques que les capteurs basiques. En fait, côté Arduino, je m'en suis sorti, mais pas côté Pure Data, c'est pourquoi je m'adresse à ce forum dans l'espoir de trouver quelqu'un qui soit allé plus loin que moi dans la compréhension de l'échange de données entre Arduino et Pure Data.

Pour les capteurs "classiques" (Infra Rouge, piezzo, etc.), le programme standard d'Arduino (Standard Firmata) avec la solution Pduino qui fonctionne assez bien et permet de récupérer les valeurs analogiques et numériques mesurées. Mais pour le télémètre à US, le programme est différent et Pduino ne semble pas convenir.

Le branchement du capteur numérique se fait en appliquant le mode passif PWM.
Pin 1 alim (capteur) -> 5V (Arduino)
Pin 2 terre (capteur) -> terre (Arduino)
Pin 4 PWM (capteur) -> Pin 3 (Arduino)
Pin 6 COMP/TRIG (capteur) -> Pin 5 (Arduino)

Avec le programme fourni par DFRobot (http://www.dfrobot.com/wiki/index.php?t … SEN0001%29), le branchement du capteur sur la carte fonctionne correctement et la console Arduino affiche bien la distance (calculée en cm). Mais Pduino ne semble pas capable de récupérer les données car il fonctionne avec le Standard Firmata.

Savez-vous ce qu'il faut modifier dans Pure data pour que cela fonctionne avec le Standard Firmata ou avec le programme de DFRobot ? Le module "comport" de Pure Data n'est pas vraiment simple à comprendre.

Merci aux experts de ce domaine.

Cordialement,

RP.

Programme DFRobot utilisé :
// # Editor    :Jiang from DFRobot
// # Data      :18.09.2012
// # Product name:ultrasonic scanner
// # Product SKU:SEN0001
// # Version :  0.2
// # Description:
// # The Sketch for scanning 180 degree area 4-500cm detecting range
// # Connection:
// #       Pin 1 VCC (URM V3.2) -> VCC (Arduino)
// #       Pin 2 GND (URM V3.2) -> GND (Arduino)
// #       Pin 4 PWM (URM V3.2) -> Pin 3 (Arduino)
// #       Pin 6 COMP/TRIG (URM V3.2) -> Pin 5 (Arduino)
// #
int URPWM = 3; // PWM Output 0-25000US,Every 50US represent 1cm
int URTRIG=5; // PWM trigger pin

unsigned int Distance=0;
uint8_t EnPwmCmd[4]={0x44,0x02,0xbb,0x01};    // distance measure command

void setup(){                                 // Serial initialization
  Serial.begin(9600);                         // Sets the baud rate to 9600
  PWM_Mode_Setup();
}

void loop()
{
PWM_Mode();
delay(20);
}                      //PWM mode setup function

void PWM_Mode_Setup(){
  pinMode(URTRIG,OUTPUT);                     // A low pull on pin COMP/TRIG
  digitalWrite(URTRIG,HIGH);                  // Set to HIGH
 
  pinMode(URPWM, INPUT);                      // Sending Enable PWM mode command
 
  for(int i=0;i<4;i++){
      Serial.write(EnPwmCmd[i]);
   }
}

void PWM_Mode(){                              // a low pull on pin COMP/TRIG  triggering a sensor reading
    digitalWrite(URTRIG, LOW);
    digitalWrite(URTRIG, HIGH);               // reading Pin PWM will output pulses
     
    unsigned long DistanceMeasured=pulseIn(URPWM,LOW);
     
    if(DistanceMeasured==50000){              // the reading is invalid.
      Serial.print("Invalid");   
   }
    else{
      Distance=DistanceMeasured/50;           // every 50us low level stands for 1cm
   }
  Serial.print("Distance=");
  Serial.print(Distance);
  Serial.println("cm");
}

Hors ligne

 

#2 2012-12-09 23:24:23 Re : Arduino+télémètre à ultra son+Pure data

dwan
membre
Date d'inscription: 2011-01-24
Messages: 307

Re: Arduino+télémètre à ultra son+Pure data



À mon avis, continuer à utiliser Firmata/pduino à ce stade, c'est se mettre des bâtons dans les roues. Si Le programme que tu as collé fonctionne et envoie bien des données, c'est 95% du boulot de fait.

Hors ligne

 

#3 2012-12-10 09:52:46 Re : Arduino+télémètre à ultra son+Pure data

Pertuit
membre
Date d'inscription: 2011-11-21
Messages: 59

Re: Arduino+télémètre à ultra son+Pure data



Oui, c'est bien mon avis... Mais la difficulté est de traduire correctement les données transmises par Arduino dans PD avec le module "comport"...

Mais, EUREKA !! J'ai finalement trouvé la solution ce matin en appliquant un module de conversion.

Avec le programme Arduino ci-dessus, j'utilise le patch Pd ci-joint et cela fonctionne très bien !

La mesure du télémètre URM37 est extrêmement précise. C'est super !!

Cordialement.

Hors ligne

 

#4 2012-12-10 09:59:03 Re : Arduino+télémètre à ultra son+Pure data

dwan
membre
Date d'inscription: 2011-01-24
Messages: 307

Re: Arduino+télémètre à ultra son+Pure data



cool smile

Hors ligne

 

#5 2012-12-10 11:36:57 Re : Arduino+télémètre à ultra son+Pure data

sakramh
membre
Lieu: clichy-sous-bois
Date d'inscription: 2008-12-02
Messages: 829
Site web

Re: Arduino+télémètre à ultra son+Pure data



Je viens de regarder les spécifications du télémètre : 4cm > 5m, rs232, et genre 15 € .
Plutôt bien le bidule .
Mais vu que çà sort en rs232 doit y avoir moyen de se passer d'un arduino , non ?


le code est l'alchimie de l'âge du silicium

Hors ligne

 

#6 2012-12-10 12:14:31 Re : Arduino+télémètre à ultra son+Pure data

Pertuit
membre
Date d'inscription: 2011-11-21
Messages: 59

Re: Arduino+télémètre à ultra son+Pure data



???
Je ne vois pas comment...

Hors ligne

 

#7 2012-12-10 12:39:09 Re : Arduino+télémètre à ultra son+Pure data

sakramh
membre
Lieu: clichy-sous-bois
Date d'inscription: 2008-12-02
Messages: 829
Site web

Re: Arduino+télémètre à ultra son+Pure data



Ben (sauf à ne pas avoir de port com rs232 sur sa machine (yen a plus sur les mac, je pense)) en le raccordant dessus, doit y avoir moyen de lire les valeurs directement dans pd sans la traduction usb .
Le port rs232 est encore beaucoup utilisé dans l'industrie (robotique) avec justement des capteurs en tous genres .

Dernière modification par sakramh (2012-12-10 12:41:39)


le code est l'alchimie de l'âge du silicium

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024