Forum des utilisateurs de Blockly(s)

Blockly@rduino => HHEEELLLPPP !!! => Discussion démarrée par: Yoann le décembre 04, 2017, 03:51:15 pm

Titre: Problème utilisation capteur de distance sharp 0A41SK (GP2Y0A41SK0F)
Posté par: Yoann le décembre 04, 2017, 03:51:15 pm
Bonjour,

J'ai acheté des capteurs sharp GP2Y0A41SK0F pour avoir une information de distance pour un robot.

Le code qui est généré est le suivant :

#include <SharpIR.h>

int distance;

SharpIR toto(0, 430);

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

}

void loop() {
  distance = toto.distance();
  Serial.print("distance =");
   Serial.println(distance);

}


et j'obtiens le message d'erreur suivant :
"exit status 1
within this context"
Pour la ligne
distance = toto.distance();


Est-ce que l'erreur vient de moi ou du code généré par le block ?
Titre: Re : Problème utilisation capteur de distance sharp 0A41SK (GP2Y0A41SK0F)
Posté par: Bzhtitude le décembre 04, 2017, 07:56:26 pm
Bonsoir,

1. Quel blockly utilise-tu ?
2. As tu bien installer la librairie requise "SharpIR.h" ? Elle n'est pas par défaut.
3. Dans les préférences, peux tu rendre le compilateur plus verbeux : afficher les détails pendant la compilation et avertissement du compilateur "tout".

Bon courage.

Titre: Re : Problème utilisation capteur de distance sharp 0A41SK (GP2Y0A41SK0F)
Posté par: Yoann le décembre 05, 2017, 01:45:57 pm
Bonsoir,

1-J'utilise une version modifiée par un collègue que j'ai déposé sur un hébergement 1&1 : http://blockly.collegelusignan.fr (http://blockly.collegelusignan.fr)

2-J'ai vu que le code appelait la library sharpIR.h, je l'ai installé

3-J'ai modifié le compilateur : j'obtiens le message orange suivant :

C:\Users\YGUYON~1.008\AppData\Local\Temp\arduino_modified_sketch_556685\sketch_dec05a.ino:5:20: warning: large integer implicitly truncated to unsigned type [-Woverflow]

SharpIR toto(0, 430);

                    ^

In file included from C:\Users\YGUYON~1.008\AppData\Local\Temp\arduino_modified_sketch_556685\sketch_dec05a.ino:1:0:

U:\Arduino\libraries\SharpIR\src/SharpIR.h: In function 'void loop()':

U:\Arduino\libraries\SharpIR\src/SharpIR.h:40:13: error: 'uint8_t SharpIR::distance' is private

     uint8_t distance;

             ^

sketch_dec05a:13: error: within this context

   distance = toto.distance();

                   ^

sketch_dec05a:13: error: expression cannot be used as a function

   distance = toto.distance();

                            ^

Utilisation de la bibliothèque SharpIR version 1.1.0 dans le dossier: U:\Arduino\libraries\SharpIR
exit status 1
within this context

Titre: Re : Problème utilisation capteur de distance sharp 0A41SK (GP2Y0A41SK0F)
Posté par: Bzhtitude le décembre 05, 2017, 07:20:52 pm
Bonsoir,

je vois 2 pistes...

1) Renommer la variable "distance" en "distance1" ou "mydistance" de façon à ne pas avoir une variable et une fonction avec le même nom.

2) le type int n'a pas l'air d'être apprécier par le compilateur ... tu peux essayer ( sans garantie)  uint8_t distance ou byte distance ...

Je ne vois rien d'autre, tu peux faire quelques tests et non redire les résultats de compilation?

Bon courage.
Titre: Re : Problème utilisation capteur de distance sharp 0A41SK (GP2Y0A41SK0F)
Posté par: SebCanet le décembre 06, 2017, 12:13:30 am
Mince, j'ai fait une faute de frappe...
Ce n'est pas la fonction 'distance()' mais 'getDistance()'.
Je corrige ça, merci de poursuivre les tests pour être sûr à propos de ce matériel.

Sinon elle a quoi de particulier ta version modifiée ?
Titre: Re : Problème utilisation capteur de distance sharp 0A41SK (GP2Y0A41SK0F)
Posté par: Yoann le décembre 06, 2017, 09:58:51 am
Ok ça fonctionne. J'ai les données sur le moniteur série.
La précision est moyenne (erreur : 5cm mesurés pour 7cm réels) mais c'est lié au composant. La documentation indique une courbe de mesure compliquée à faible distance. J'ai lu sur un forum qu'on pouvait retrouver l'équation de la courbe avec plusieurs points de mesures et une feuille de tableur. Pour l'instant c'est suffisant.

Merci pour le dépannage.

Un truc bizarre : si j'appel mon télémètre "toto" dans le setup, le bloc de mesure me propose "toto" ou "toto_1" si je configure l'ajout de nouveau blocs.

Cela me permet déjà d'offrir une alternative à mes élèves pour le capteur de distance (par rapport à l'ultrason).

Pour ce qui est de ma version par rapport à blockly.technologiecollege.fr, d'abord elle est obsolète  ;D et le lien que j'utilise sur mon site l'affiche en français avec les blocs que j'utilise le plus fréquemment (grove, sharp, arduino...)
Titre: Re : Problème utilisation capteur de distance sharp 0A41SK (GP2Y0A41SK0F)
Posté par: SebCanet le janvier 25, 2018, 12:56:54 am
Voir la même question ici : http://blockly.technologiescollege.fr/forum/index.php/topic,124.msg1832.html?PHPSESSID=rju688smun48tipalndl6nlgs0#new (http://blockly.technologiescollege.fr/forum/index.php/topic,124.msg1832.html?PHPSESSID=rju688smun48tipalndl6nlgs0#new)