Aller au contenu


Photo
- - - - -

VL53L0x

VL53L0x Arduino

  • Veuillez vous connecter pour répondre
7 réponses à ce sujet

#1 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male

Posté 20 août 2018 - 03:33

Coucou les Maker's, Ben voilà j'étais super content de moi sur le reste de mon code et arrivé au capteur de distance VL53L0x, je me retrouve coincé et je ne comprend pas pourquoi, même si j'ai bien compris le message d'erreur.

Donc voici le souci sur Arduino : 

 

Ceci est le code d'origine d'exemple du VL53L0x qui fonctionne très bien.

 

/* This example shows how to use continuous mode to take
range measurements with the VL53L0X. It is based on
vl53l0x_ContinuousRanging_Example.c from the VL53L0X API.

The range readings are in units of mm. */

#include <Wire.h>
#include <VL53L0X.h>

VL53L0X sensor;

void setup()
{
  Serial.begin(9600);
  Wire.begin();

  sensor.init();
  sensor.setTimeout(500);

  // Start continuous back-to-back mode (take readings as
  // fast as possible).  To use continuous timed mode
  // instead, provide a desired inter-measurement period in
  // ms (e.g. sensor.startContinuous(100)).
  sensor.startContinuous();
}

void loop()
{
  Serial.print(sensor.readRangeContinuousMillimeters());
  if (sensor.timeoutOccurred()) { Serial.print(" TIMEOUT"); }

  Serial.println();
}
 
Voici mon code séparé du main et qui me donne une erreur à le compile : 
 
#include "CD_VL53L0x.h"
#include <VL53L0X.h>

VL53L0X sensor;

sensor.init();
sensor.setTimeout(300);
sensor.startContinuous(0);    //Continu

unsigned int readVl53l0x () 
{
  sensor.readRangeContinuousMillimeters();

  if (sensor.timeoutOccurred())
  {
    Serial.print(" TIMEOUT");
  }

  return sensor;
}

J'ai placé le Wire.begin(); dans le main au setup (sinon j'avais aussi des erreurs à la compile du au Wire) puisque si je dis pas de bêtise cela permet juste de dire que la carte arduino est en maître pour contrôler VL53L0x, et donc j'ai ça comme erreur :
 

CD_VL53L0x.cpp:11: error: 'sensor' does not name a type
 sensor.init();
 ^
CD_VL53L0x.cpp:12: error: 'sensor' does not name a type
 sensor.setTimeout(300);
 ^
CD_VL53L0x.cpp:13: error: 'sensor' does not name a type
 sensor.startContinuous(0);    //Continu
 ^
sketch\CD_VL53L0x.cpp: In function 'unsigned int readVl53l0x()':
CD_VL53L0x.cpp:42: error: cannot convert 'VL53L0X' to 'unsigned int' in return
   return sensor;
          ^
exit status 1
'sensor' does not name a type

Et donc là je ne vois pas trop le pourquoi du comment, pourtant je créer bien l'objet sensor et ensuite je fais appel aux méthodes...

Par contre si je place tout le code dans le main avec le Wire.begin(); ça fonctionne...

 
 
 
 

signature_01.png -->

 

Mon Tipeee
 


#2 Path

Path

    Made By Humans

  • Modérateur
  • PipPipPipPipPip
  • 2 504 messages
  • Gender:Male
  • Location:Paris

Posté 20 août 2018 - 10:08

Un exemple où j'utilise 4 capteurs : https://github.com/Path000/Hector/tree/master/old/tourelle-stepper-VL53L0X Si ça peut aider.

Le include wire.h est avec le sensor.

Si tu veux réutiliser une variable ou un objet déclaré dans un autre fichier, je t'invite à reprendre ton bouquin de cpp à l'endroit où ils parlent de extern ;) Tu as un exemple ici dans StateMachine.h https://github.com/Path000/Hector/tree/master/Hector-Due 

Ces 3 variables son déclarées dans le .ino

extern RPLidar lidar;
extern Ecran ecran;
extern StateMachine stateMachine;



#3 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male

Posté 21 août 2018 - 08:11

Hum, va falloir bien la jouer là, Externe en plus je l'ai utilisé le jour même, mais sur le moment avec le VL j'ai pas tilter, Merci Path je vais regarder dans cette direction ;)

 

Edit : sur ton premier lien "page not found" il y a un espace en trop à la fin de l'url et pareil pour le second lien.


Modifié par Oliver17, 21 août 2018 - 08:56 .

signature_01.png -->

 

Mon Tipeee
 


#4 Path

Path

    Made By Humans

  • Modérateur
  • PipPipPipPipPip
  • 2 504 messages
  • Gender:Male
  • Location:Paris

Posté 21 août 2018 - 09:53

corrigé merci



#5 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male

Posté 21 août 2018 - 03:35

Tite question, ton wire.h tu prends celui fournit par arduino ou alors tu as copié le fichier dans ton dossier avec ton .ino ??

 

Car lorsque je veux me servir de wire.h avec un Wire.begin(); ça me dit "'Wire' does not name a type"...


signature_01.png -->

 

Mon Tipeee
 


#6 Path

Path

    Made By Humans

  • Modérateur
  • PipPipPipPipPip
  • 2 504 messages
  • Gender:Male
  • Location:Paris

Posté 21 août 2018 - 08:53

Dans le define, il y a < et > cela te donne une indication. Cela indique que c'est à l'emplacement normal, avec les autres lib de l'IDE.

#7 Path

Path

    Made By Humans

  • Modérateur
  • PipPipPipPipPip
  • 2 504 messages
  • Gender:Male
  • Location:Paris

Posté 25 août 2018 - 12:28

Du coup ? T'en es où ?



#8 Oliver17

Oliver17

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 758 messages
  • Gender:Male

Posté 25 août 2018 - 03:34

Du coup c'est bon pour le code avec class etc etc, le truc c'est l'échange avec les deux cartes, je me douté bien que il y avait un hic de se coté la :)

 

d'ou mon autre post pour essayer de faire comme avec arduino...

(là suis sur mes imprimantes, donc pas de code pour l'instant. ^^).


signature_01.png -->

 

Mon Tipeee
 






Aussi étiqueté avec au moins un de ces mots-clés : VL53L0x, Arduino

0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users