Parlons Arduino > Vos projets

Utilisation du laser vl53lxx

(1/2) > >>

BricoTrain2024:
Bonjour à toutes et tous. Je suis un pépé, relativement débutant.
J'ai en projet, de réaliser 2 ascenseurs de quai, et un principal, pour ma gare principale.
Les 2 de quai, auront une position basse pour le personnel, 1 pour le quai et celle de la passerelle. J'ai déjà rassemblé un peu de matériel et élaboré le principe. Un micro moto réducteur, 1 tige filetée et un écrou relié à la cabine. Et un module vl53lxx laser qui mesurera le déplacement de la cabine. Le tout sur Arduino. Le principe en soi est simple, mais certainement par "radinisme", ce projet, et surtout mes connaissances, m'obligerait à utiliser 3 Arduino, car les adresses I2C des modules sont fixées à 0x29.
Honnêtement, il y a plein de façon pour contourner la difficulté (emploi de relai, commutant sur les lasers, etc.). Mais je me dis, que cela serait "plus propre", s'il existait un moyen d'adresser les vl53lxx, directement par programmation. Naturellement, je me tourne vers vous (qui avez l'air d'être doué avec Arduino, en tous cas plus que moi qui débute). J'en profite pour remercier tous les auteurs et intervenants, car je me suis inspiré de leurs publications pour réaliser ma rétro, et cela fonctionne nickel. Voilà, s'il n'y a pas de possibilité, je n'en mourais pas, mais, j'envisage aussi de les utiliser pour d'autres applications, là pour de la détection, ces modules peuvent être utilisés jusqu'à 4 m, et pourraient être utile dans certaines circonstances. J'espère que vous pourrez m'épauler et comme je n'ais pas trouvé de post sur le sujet, que cela pourra intéresser des personnes qui trouveraient aussi que ces micro lasers pourraient être utile. Bon WE. PS, soyez indulgeant pour l'orthographe.

Dominique:
Est-ce qu’un multiplexeur I2C ne ferait pas l’affaire comme :
https://www.gotronic.fr/art-module-multiplexeur-i2c-ada2717-26051.htm

BricoTrain2024:
Bonjour Dominique, merci de votre réponse, je commande et je fais un essai. Cela devrait correspondre pile poil à mon soucis. Dès que je reçois, je fais un essai (c'est un lot de 5 pièces, cela me met un peu à l'abri d'une mauvaise manip). Je vous tiens au courant des résultats. Je ne connaissais pas du tout ce produit. Merci encore et bon WE.

Remi:
Bonjour à tous,

Il me semble qu'il est possible de changer l'adresse des modules Vl53lxx par logiciel lors de l'initialisation.
Sur le site d'Adafruit, la méthode est expliquée mais en anglais. Il faut refaire ce changement à chaque démarrage du logiciel de commande.
Vous trouverez ci dessous le principe de ce changement (traduction du site Adafruit).
Le lien vers le site est donné en fin de message.

***************************
Connexion de plusieurs capteurs

I2C n’autorise qu’une adresse par périphérique, vous devez donc vous assurer que chaque périphérique I2C a une adresse unique. L’adresse par défaut pour le VL53L0X est 0x29 mais vous pouvez changer cela dans le logiciel.

Pour définir la nouvelle adresse, vous pouvez le faire de deux façons. Pendant l’initialisation, au lieu d’appeler lox.begin(), appelez lox.begin(0x30) pour définir l’adresse sur 0x30. Ou vous pouvez, plus tard, appeler lox.setAddress(0x30) à tout moment.

La bonne nouvelle est qu’il est facile à changer, la partie ennuyeuse est que les autre capteurs doivent être arrêté. Vous pouvez arrêter chaque capteur en connectant la broche XSHUT à une broche de microcontrôleur, puis effectuer quelque chose comme ce pseudo-code :

    Réinitialisez tous les capteurs en réglant toutes leurs broches XSHUT bas pour delay(10), puis réglez toutes les XSHUT haut pour sortir de la réinitialisation
    Gardez le capteur #1 éveillé en gardant la broche XSHUT haute
    Arrêter tous les autres capteurs en tirant les broches XSHUT vers le bas
    Initialiser le capteur n° 1 avec lox.begin(new_i2c_address) Choisir n’importe quel nombre mais pas 0x29 . Aller avec 0x30 à 0x3F est probablement correct.
    Gardez le capteur #1 éveillé, et sortez le capteur #2 de la réinitialisation en réglant sa broche XSHUT haute.
    Initialisez le capteur n° 2 avec lox.begin(new_i2c_address) Choisissez n’importe quel nombre sauf 0x29 et celle déjà définie sur le premier capteur
    Répétez l’opération pour chaque capteur, en activant chacun d’eux, en définissant une adresse unique.

Notez que vous devez le faire chaque fois que vous mettez sous tension, les adresses n'étant pas sauvegardées (par défaut 0x29)!
il faut donc inclure cette partie dans l'initialisation de l'application.

***************************
Lien vers le site Adafruit

https://learn.adafruit.com/adafruit-vl53l0x-micro-lidar-distance-sensor-breakout/arduino-code

A+  Remi


BricoTrain2024:
Bonjour à toutes et tous.
Merci de vos réponses, de mon coté, j'ai enfin reçu les multiplexeurs TCA9548A, et fait l'essai.
Bon, comme je ne suis que très moyennement doué, cela m'a pris un peu de temps.
Il suffit de mettre les VL53L0x  en tableau, puis avec l'appel (tcaselect(t);) sélectionner les sorties voulues. Et ensuite traiter les données.
Je pense, que je peux mettre ce post comme résolu, mais je ne sais pas trop comment faire.
Bonne journée

Navigation

[0] Index des messages

[#] Page suivante

Utiliser la version classique