Étape 4: L’algorithme:: partie 2
Rencontrer un mur est la tâche la plus difficile dans le programme.
Solution... faire pivoter à droite de 90 degrés à continuer. Eh bien, idéalement 90 degrés, mais il est peu probable que vous êtes face au mur directement sur la tête. Les chances sont que vous êtes face à un léger angle. Alors, comment vous faites pivoter la bonne quantité ?
Si vous aviez des codeurs de la roue, ou mieux encore une boussole intégrée, vous pourriez mesurer avec précision l’angle. Mais ce projet est conçu pour fonctionner avec seulement les composants spécifiés. Donc le problème doit être résolu avec seulement deux capteurs, qui ne sont pas 100 % fiable, surtout à proximité d’un objet.
Une proposition de solution pourrait être de « time », combien de temps votre véhicule prend de faire un pivot de 90 degrés et l’utiliser. Cependant, comme les batteries s’affaiblissent, votre vitesse décroîtra, augmente le temps requis pour effectuer le pivot désiré. J’ai trouvé une solution chronométrée pour ne pas être assez précis.
J’ai expérimenté avec un certain nombre d’algorithmes qui ont divers degrés de succès et de la complexité. Voici celle que j’ai finalement opté pour... assez facile à comprendre et assez fiable pour travailler régulièrement.
Fondamentalement, le véhicule s’arrête, lit à angles multiples pour une lumière réfléchie plus élevée du capteur IR, fait un petit pivot et répète le processus jusqu'à ce que la plus haute lecture soit en vertu d’une limite prédéterminée.
La solution est « facile", comme dans « take it easy! ». Dans la vidéo, vous remarquerez que j’ai codé exprès pour « prendre son temps ». L’algorithme se trompe sur la prudence. Vous pouvez jouer avec elle pour accélérer les choses vers le haut si vous voulez. N’oubliez pas, accidents augmentent avec la vitesse:) Pendant que je dactylographie ceci, ma petite Rover qui s’est passé autour et autour d’un processeur en boîte en cours pendant 60 minutes sans mon intervention, serré prouver la cohérence de l’algorithme.
Si vous regardez les lectures sur le TM1638, le nombre de gauche représente le capteur IR (lecture lumière réfléchie), tandis que le nombre exact est venant de l’avant monté par ultrasons.