Guidage par induction pour un robot avec Arduino UNO

Oui, pas besoin d'écran lcd si ton arduino est relié à ton PC. Il suffit d'ouvrir la console série, avec l'icône en haut à droite de la fenêtre de l'IDE. Pour afficher des choses tu disposes des instructions Serial.print et Serial.println

Message déplacé dans la rubrique adéquate....

lesept:
Oui, pas besoin d'écran lcd si ton arduino est relié à ton PC. Il suffit d'ouvrir la console série, avec l'icône en haut à droite de la fenêtre de l'IDE. Pour afficher des choses tu disposes des instructions Serial.print et Serial.println

Désolé, je ne comprend pas la procédure pour afficher sur l'écran de mon ordi.

Jacques3012

Bonjour

J'utilise un kit générateur de boucle. Ce système fonctionne très bien et il est couplé sur un Arduino UNO sur les entrées analogiques A0 et A1.

Pour une meilleure compréhension du système un lien vers le kit serait utile.
Fournit-il des tensions contineus compatibles avec les entrées A0 et A1 ?

Quote from: lesept on 18-05-2019, 20:18:54

Oui, pas besoin d'écran lcd si ton arduino est relié à ton PC. Il suffit d'ouvrir la console série, avec l'icône en haut à droite de la fenêtre de l'IDE. Pour afficher des choses tu disposes des instructions Serial.print et Serial.println

Désolé, je ne comprend pas la procédure pour afficher sur l'écran de mon ordi.

Analysez l'exemple AnalogInOutSerial fourni avec l'environnement Arduino dans la catégorie 'basic' des exemples , il permet d'afficher dans le Terminal Arduino (=sur l'écran de l'ordinateur) les données lues sur une entrée analogique

En procédant ainsi il sera possible de connaitre les valeurs successives des variables du programme et voir ce qui coince, ce qui ne fonctionne pas comme prévu.

Bon voici le kit vendu par une compagnie reconnu. L'émetteur est conçu avec un 555 et émet une fréquence dans la boucle. Le récepteur est un LM324N et il est couplé avec deux inductance. Si vous voulez le schéma, je peut essayer de le trouver. C'est un kit compatible avec Arduino comme spécifié sur la photo.

Pour ce qui est des lectures des deux entrées A0 et A1, j'ai mis deux photos une pour chacune des entrées.
Une chose, je ne réussis pas a obtenir plus de 150 comme lecture dans les deux entrées analogique, le LM324 devrait me donner 5 volts au max, ce que je n'obtiens pas.

1.JPG

2.JPG

Je vous reviens avec la troisième photo, ca ne veut pas fonctionner pour l'instant

Jacques3012

Pour une meilleure compréhension du système un lien vers le kit serait utile.

A défaut de photo , donner un lien permettant de connaître la marque et le modèle du kit
Le schéma de l'émetteur et surtout du récepteur seraient également bienvenus pour comprendre la nature des signaux envoyés sur les deux entrées analogiques.

On a comme indices 'marque réputée', 555 et LM324 ...mais pas forcément envie de jouer aux devinettes....

Question subsidiaire : quelles était la distance approximative entre le fil et les bobines lorsque les essais ont ete effectués ?

Voila le kit. Je vous reviens avec les plans. J'aimerai savoir quel est la résolution sur les entrées analogique car si je met l'entrée directement sur le 5 volts, j'obtiens au max 204 comme lecture, c'est normal ?

Et pour répondre a votre question, les capteurs sont a 7 centimètres du fil. J'ai amélioré la précision de mes lectures en ajoutant un condensateur de 100uf sur chacune des entrées de la carte Arduino, soit A0 et A1. C,est beaucoup plus précis comme lecture maintenant

Jacques3012

Voila le kit. Je vous reviens avec les plans. Je m'étais trompé quand a la lecture apparaissant sur les tableaux, je vous ai donné les lectures des sorties et non des entrées.Pour les entrées, j'obtiens environ 750 comme lecture au maximum de la captation.

Et pour répondre a votre question, les capteurs sont a 7 centimètres du fil. J'ai amélioré la précision de mes lectures en ajoutant un condensateur de 100uf sur chacune des entrées de la carte Arduino, soit A0 et A1. C,est beaucoup plus précis comme lecture maintenant

Jacques3012

si je met l'entrée directement sur le 5 volts, j'obtiens au max 204 comme lecture, c'est normal ?

Non. Avec la référence utilisée couramment pour un AnalogRead() Vcc on obtient 1024 pour une entrée analogique dont la tension est égale à la tension d'alimentation.(résolution 10 bits)

remarque : en ne mettant pas de lien cliquable comme demandé vers le kit mais seulemenent une photo vous ralentissez l'aide , en particulier de la part de ceux de plus en plus nombreux qui consultent le forum avec leur smartphone

Le lien suivant (présent sur la page du produit) aurait dû être fourni dès le premier message (cf Règle du Forum)

on y trouve ce second lien qui décrit le kit et donne les schémas

D'après la notice le signal de sortie est une sinusoïde d'une trentaine de kHz centrée sur 2,6V

Question : votre code est-il un code fourni par Robotshop pour ce kit ?

al1fch:
Non. Avec la référence utilisée couramment pour un AnalogRead() Vcc on obtient 1024 pour une entrée analogique dont la tension est égale à la tension d'alimentation.(résolution 10 bits)

Je m'étais trompé, je lisais les sorties et non les entrées. J'obtiens 750 environ lorsque les capteurs sont directement au dessus du fil de périmètre, a 7 centimètres de hauteur

al1fch:
remarque : en ne mettant pas de lien cliquable comme demandé vers le kit mais seulemenent une photo vous ralentissez l'aide , en particulier de la part de ceux de plus en plus nombreux qui consultent le forum avec leur smartphone

Le lien suivant aurait dû être fourni dès le premier message (cf Règle du Forum)
DIY Perimeter Wire Generator and Sensor | RobotShop Community
Les schémas de l'émetteur et du récepteur y figurent, montages simplistes pour l'un comme pour l'autre...
D'après la notice le signal de sortie est une sinusoïde d'une trentaine de kHz centrée sur 2,6V

Question : votre code est-il un code fourni par Robotshop pour ce kit ?

Je suis nouveau ici et donc pas habitué, mais je vais corriger mes erreurs. Pour ce qui est du code, non ce n'est pas un code fournis, je n'en trouves pas, j'ai donc pris un code qui servait pour alimenter deux moteurs a l'aide d'un joystick, que j'ai modifié et j'essai de me débrouiller avec ça, et c'est pourquoi je demande de l'aide. Je fais des test mais c'est pas évident quand on ne comprend pas trop le principe de la programmation. Je fouille pour essayer de trouver croyez moi. Et j'apprécie vos commentaires, soyez s'en certain.

Jacques3012

Voici une description de mon projet. Je veux créer un robot qui suivra le fil de la boucle, a une vitesse que je pourrai déterminer a l'aide d'un clavier et j'utiliserai un afficheur 2 lignes 16 caractères pour me permettre d'ajuster les différents paramètres, soit la vitesse de déplacement du robot ainsi que les heures de départ, le niveau des batteries avant une recharge, le voltage des batteries et quelque autres paramètre a déterminer. Ce robot, sera entraîné par deux moteurs et d'une roue libre a l'avant, et devra être équipé d'un détecteur de présence pour l'arrêter d'entrer en contact avec l'objet ou une personne, et devra se remettre en marche lorsqu'il n'y aura plus de détection. Le robot se déplacera a environ 4 mètres par minutes.

Le robot doit partir a des heures précise, quelque fois par jour. Il suivra le fil jusqu'au bout d'un couloir ou il devra se recharger en position avant s'il en a besoin. Lorsque la recharge sera terminé, a une heure précise, il devra sortir de sa base de recharge se retourner et repartira vers son point de départ en suivant le fil de la boucle qui sera décalé d'environ 45 centimètres par rapport a l'allé. Rendu au point de retour, il se retournera pour attendre son prochain cycle de départ et ainsi de suite, a tous les jours.

Le robot sera alimenté par deux batteries de 12 volts en série pour alimenter les deux moteurs de traction, qui sont des moteurs DC 24 volts de 450 watts chacun qui seront alimenté chacun par une carte MD30C de marque Cytron.

Il y aura un autre moteur identique aux roues de traction qui fera tourner un tambour lorsque le robot se déplacera. Lui aussi sera alimenté par une carte pour me permettre de faire varier sa vitesse, vitesse qui sera ajusté au départ mais qui ne variera pas pendant le déplacement.

Voila une bonne description du projet.

Jacques3012

OK

Sous réserve d'un examen plus approfondi de votre code il me semble que quelques composants courants permettrait de rendre le kit un peu plus 'compatible Arduino' en présentant aux deux entrées analogiques d'Arduino des tensions quasi continues dont la valeur refléterait la distance entre fil et boibines

il suffirait d'ajouter pour chacune des 2 voies une diode courante, une résistance et un condensateur
Je ne garantit rien, c'est juste une proposition à tester !!
interface.png

interface.png

J'ai fait plusieurs essais et c'est celui ci qui me donne le plus de stabilité.

Pour ce qui est du code, je suis bien conscient qu'il y aura plusieurs modifications a faire, je ne fais que contrôler les entrées et sorties présentement mais rien de bien concret.

Comment mettre des images directement sur la page ?

Jacques3012

mettre les images dans le corps du message ? ça se faite en 3 temps :

  1. enregistrer l'image en 'attachement' au message,
  2. consulter le massage et en profitre pour copier le lien de l'image
  3. rééditer le message et avec l'icône "Insert an image" copier le lien de l'image

voilà pour votre image attachée au message ci-dessus :

Donc maintenant le programme dispose de données exploitables concernant la distance de chaque bobine avec le fil ?

al1fch:
Donc maintenant le programme dispose de données exploitables concernant la distance de chaque bobine avec le fil ?

Merci pour l'info de l'image.
Pour le voltage, a distance (6 centimètres entre le centre de chacune des inductances et le fil) et hauteur égale (7 centimètres) , j'ai 2.46 volts sur chacune des entrées et 2,70 volts si je place les inductances directement au dessus du fil. Donc une différence de 0,4 volts. Mais je pourrais distancer mes inductances car présentement, elles sont, centre a centre a 11,5 centimètres

Jacques3012

Bonjour.

Est-ce que l'on peut insérer des vidéos ici ?

Jacques3012

Bonjour al1ch

al1fch:
Non. Avec la référence utilisée couramment pour un AnalogRead() Vcc on obtient 1024 pour une entrée analogique dont la tension est égale à la tension d'alimentation.(résolution 10 bits)
......

1023!

Cordialement,
bidouilleelec

Jacques3012:
J'ai fait plusieurs essais et c'est celui ci qui me donne le plus de stabilité.

Pour ce qui est du code, je suis bien conscient qu'il y aura plusieurs modifications a faire, je ne fais que contrôler les entrées et sorties présentement mais rien de bien concret.

Comment mettre des images directement sur la page ?

Jacques3012

Le condensateur de 470µF sur l'anode de la diode me perturbe. Tu es certain de la valeur. A 30kHz un condensateur de cette valeur devrait se comporter comme un court-circuit.

Bonjour al1ch

Quote from: al1fch on 19-05-2019, 18:31:43

Non. Avec la référence utilisée couramment pour un AnalogRead() Vcc on obtient 1024 pour une entrée analogique dont la tension est égale à la tension d'alimentation.(résolution 10 bits)
......

1023!

Cordialement,
bidouilleelec

Bonjour bidouilleelec
Oups.....tout à fait merci de corriger . (on part de zéro... pas de 1..... :wink: )