Étape 4: Programmation de l’Arduino
Cellules photoélectriques
Comme décrit plus haut, les cellules photoélectriques et les servos étaient connectés à l’Arduino même. L’Arduino a été ensuite programmé pour lire d’entrée de cellules photoélectriques. L’Arduino sorties valeurs entières entre 0 et 1023 pour luminosité différente. Le code comporte une variable pour le seuil. Cela doit être définie par la mesure de la production de cellules photoélectriques pour lumière de fond et avec le laser pointant vers elle. Nous nous sommes retrouvés à l’aide de valeurs comprises entre 200 et 900, selon à quelle vitesse le laser s’installe et la quantité de lumière il y avait dans la salle que nous utilisions.
Servos
Les servos peuvent être déplacés par l’écriture d’une valeur comprise entre 0 et 180, ce qui équivaut à leur gamme complète de 180 degrés. Selon quelles cellules photoélectriques a dépassé le seuil, les servos ajustera le laser de positionnement pour rester pointé vers la cible.
Assurez-vous de vérifier dans quelle direction les servos tournent. Dans notre cas, le servo horizontal était à la position 0 dans l’extrême-gauche et 180 à l’extrême droite. Le servo vertical était à la position 0 en haut et à 180 en bas. Si c’est différent, le code doit être adapté pour les servos de toujours passer le laser comme prévu.
Deux principaux mécanismes ont été mis en place :
1 / petits ajustements
Tout d’abord, les photocellules qui entourent la cible réelle provoquent les servos déplacer le laser en direction de la cible, par exemple si la photocellule droite est touchée par le laser, elle se déplacera vers la gauche.
2 / recherche de modèles
Le second mécanisme sont des modèles de recherche différents. Si aucune cellule ne détecte le laser, et il n’y a également aucune information sur des contacts antérieurs avec photocellules stockés, le laser commence à exécuter un modèle de recherche. Le premier modèle de recherche qui a été mis en place simplement scanné un carré dans lequel l’objectif devait être de balayer de haut en bas, lentement déplaçant latéralement tout en faisant ainsi.
Le deuxième modèle de la recherche est plus sophistiqué : il commence le balayage dans le centre de la zone carrée, puis tourne vers l’extérieur jusqu'à ce qu’il a recouvert toute la surface. Le principal avantage de ceci est que la recherche commence à l’endroit dont la probabilitΘ pour trouver la cible. Une autre différence à l’algorithme de recherche première est que ce modèle de recherche ajuste la zone il scanne chaque fois que le laser se connecte à la cible : ces coordonnées sont alors ensemble comme le nouveau centre de la zone de recherche doit le signal se perdre. Les deux modèles de recherche redémarrer si la cible n’est pas acquis après que la zone a été couvert.
Voici les illustrations des motifs de recherche et deux fichiers de code Arduino qui exécutent le système avec chacun des modèles de recherche.