Étape 5: Croquis code de s’exécuter le robot
LE CODE DE SKETCH ARDUINO
Ce code bêta lecteurs axée sur l’Arduino servomotorisées balayage radar IR pour réaliser un obstacle avoidance et servo contrôle.
Dernière Version : Beta 0.8 22 octobre 2011
Ce code a été écrit pour être aussi documenté que possible. J’ai utilisé la syntaxe verbeuse et élargie au lieu de code compact pour le rendre plus facile à comprendre et à port aux autres langages de programmation. À l’exception de l’IR en lisant le code, cette esquisse pas copiée à partir de n’importe quel projet, mais j’ai profité de l’expérience collective de beaucoup d’autres. N’importe qui peut utiliser et modifier ce code avec attribution.
Ce robot se déplace à l’aide de direction différentielle. Pour faire tourner, une roue doit se déplacer plus vite que l’autre, de même ou en face de la direction pour une période de temps. J’ai utilisé des tâtonnements pour trouver cette valeur de temps. ce sera différent pour votre propre robot.
Ces valeurs dépendent de nombreux facteurs tels que la taille de la roue, poids de robot, qualités de surface, traction, etc.. Il est préférable de tester votre robot à la surface de la cible (par exemple, disque de sumo, sol en marbre) pour arriver à des valeurs de travail si vous n’avez pas à les changer plus tard.
Remarque : Pour arrêter les servos, j’ai simplement « détacher » dans le programme puis « attaché » quand j’ai besoin d’eux pour se déplacer à nouveau. C’était mieux que le maux de tête d’essayer de comprendre le point de stop de chaque servo que j’ai modifié pour rotation continue.
La logique de pseudo fonctionne comme suit :
PROGRAMME D’INSTALLATION
Configuration des constantes physiques et environnementaux comme le calendrier des tours de roue, distance de sécurité pour l’obstacle, etc. ;
Démarrer le robot ;
Scan à gauche, vers l’avant, droite ;
Aller dans le sens d’une plus grande place ;
BOUCLE
Continuer à aller vers l’avant lors de l’analyse à venir ;
Si Obstacle atteint alors arrêter et scan dans toutes les directions (gauche, devant, à droite)
Aller dans le sens d’une plus grande place ;
Si les Obstacles trouvent sur tous les degrés de directions puis Backturn 360 puis analyser dans toutes les directions agin (gauche, avant, droite)
Si l’Obstacle se trouve dans toutes les directions puis STOP ;
RÉPÉTEZ LA BOUCLE
C’est tout.
Sur le plan logique, j’ai 3 section principale du code de l’esquisse :
1) mise en place des constantes, des variables physiques et environnementales.
2) logique pour mettre IR servo et lire les distances et avertissement de l’obstacle.
3) logic pour mettre les servos de la roue avant, gauche, droite, 360 et simplement inversée.
Encore une fois, il s’agit de code bêta mais ça marche.
Voici une autre vidéo d’enregistrement, mais de moins bonne qualité (prise avec le Nokia 5800 appareil photo)