Labyrinthe du solveur Robot, à l’aide de l’Intelligence artificielle avec Arduino (3 / 10 étapes)

Étape 3: Installation et test des nouveaux capteurs

Le nouveau tableau de maintenant 7 capteurs, est monté sur un chemin que 5 ceux d’origine est utilisés exclusivement pour le contrôle PID (et détection de la « gamme complète », a expliqué plus tard) et la nouvelle gauche 2 à utiliser pour la détection d’intersection gauche et à droite uniquement.

Un examen rapide, il faut se rappeler comment fonctionnent les 5 capteurs « numériques » originales :

Si un capteur est centré par rapport à la ligne noire, seulement ce capteur spécifique produira un maximum. De l’autre côté, l’espace entre les capteurs doit être calculé pour permettre que 2 capteurs peuvent couvrir toute la largeur de la ligne noire en même temps, produit également un signal élevé sur les deux capteurs.

Comment fonctionnent les 2 nouveaux capteurs « analogiques » :

Si un des capteurs est centré par rapport à la ligne noire, la sortie sera une valeur analogique, qui produit normalement une sortie au soufflet Arduino ADC "100" (n’oubliez pas que l’ADC délivre une puissance de 0 à 1023). Avec des surfaces plus légers, la valeur de sortie sera plus élevée (j’ai testé 500 à 600 sur papier blanc, par exemple). Cette valeur doit être testée sur des situations différentes de matériaux légers et surfaces pour définir la constante de seuil exacte à utiliser dans votre cas (voir la photo ici).

En regardant le code Arduino, chacun des capteurs est définis avec un nom spécifique (considère que le capteur de suivre ligne original, plus à gauche doit être affecté d’une étiquette de « 0 ») :

const int lineFollowSensor0 = 12 ; À l’aide d’entrée numérique

const int lineFollowSensor1 = 18 ; À l’aide de Analog Pin A4 comme entrée numérique

const int lineFollowSensor2 = 17 ; À l’aide de A3 broche analogique comme entrée numérique

const int lineFollowSensor3 = 16 ; À l’aide de Analog broche A2 comme entrée numérique

const int lineFollowSensor4 = 19 ; À l’aide de Analog Pin A5 comme entrée numérique

const int farRightSensorPin = 0 ; Broche analogique A0

const int farLeftSensorPin = 1 ; Les broches analogiques A1

Pour mémoriser, possible 5 capteur tableau d’origine lorsqu’il suit une ligne de sortie sont :

  • 1 1 1 1 1
  • 0 0 0 0 0
  • 0 0 0 0 1
  • 0 0 0 1 1
  • 0 0 0 1 0
  • 0 0 1 1 0
  • 0 0 1 0 0
  • 0 1 1 0 0
  • 0 1 0 0 0
  • 1 1 0 0 0
  • 1 0 0 0 0

Avec l’ajout de 2 nouveaux, leurs sorties possibles sont :

  • Capteur de l’extrême gauche : Sortie analogique supérieur ou inférieur à un seuil
  • Capteur de l’extrême droite : Sortie analogique supérieur ou inférieur à un seuil

Afin de stockage des valeurs de chaque capteur une variable de tableau est créée pour les capteurs numériques 5 originales :

int LFSensor [5] = {0, 0, 0, 0, 0} ;

Et deux variables entières pour les 2 nouveaux capteurs analogiques :

int farRightSensor = 0 ;
int farLeftSensor = 0 ;

Chaque position du tableau et variables sera constamment mis à jour avec la sortie de chacun des capteurs :

LFSensor [0] = digitalRead(lineFollowSensor0) ;

LFSensor [1] = digitalRead(lineFollowSensor1) ;

LFSensor [2] = digitalRead(lineFollowSensor2) ;

LFSensor [3] = digitalRead(lineFollowSensor3) ;

LFSensor [4] = digitalRead(lineFollowSensor4) ;

farRightSensor = analogRead(farRightSensorPin) ;

farLeftSensor = analogRead(farLeftSensorPin) ;

Avoir 5 sondes, comme vu dans le projet de Robot ligne suiveur, permet la génération d’une variable de « erreur » qui aidera à contrôler la position du robot sur la ligne. En outre, une variable appelée « mode » servira pour définition si le robot suit une ligne, sur une ligne continue, une intersection ou pas du tout.

Cette variable « mode » servira également avec les capteurs "loin LEFT/RIGHT". Pour la représentation, nous allons examiner les capteurs loin gauche et droite ayant 3 états possibles: H (dépasser le seuil), L (inférieur au seuil) et X (sans objet). Pour les sorties numériques, sera l’habitude 0, 1 et nous présentera également le X:

  • X 1 1 1 1 1 X == > mode = CONT_LINE ; erreur = 0 ;
  • H 0 X X X X L == > mode = RIGHT_TURN ; erreur = 0 ; (Voir l’exemple à l’image ci-dessus)
  • L X X X X 0 H == > mode = LEFT_TURN ; erreur = 0 ;
  • X 0 0 0 0 0 X == > mode = NO_LINE ; erreur = 0 ;
  • H 0 0 0 0 1 H == > mode = FOLLOWING_LINE ; erreur = 4 ;
  • H 0 0 0 1 1 H == > mode = FOLLOWING_LINE ; erreur = 3 ;
  • H 0 0 0 1 0 H == > mode = FOLLOWING_LINE ; erreur = 2 ;
  • H 0 0 1 1 0 H == > mode = FOLLOWING_LINE ; erreur = 1 ;
  • H 0 0 1 0 0 H == > mode = FOLLOWING_LINE ; erreur = 0 ;
  • H 0 1 1 0 0 H == > mode = FOLLOWING_LINE ; erreur = -1 ;
  • H 0 1 0 0 0 H == > mode = FOLLOWING_LINE ; erreur = -2
  • H 1 1 0 0 0 H == > mode = FOLLOWING_LINE ; erreur = -3 ;
  • H 1 0 0 0 0 H == > mode = FOLLOWING_LINE ; erreur = -4 ;

Donc, mettre en œuvre la logique ci-dessus dans la fonction :

Sub readLFSsensors()

retourne les variables « mode » et « erreur » qui servira à la logique du programme.

Il est important de tester la logique des capteurs avant de suivre le projet. La fonction ci-dessous est incluse dans le code et peut être utilisée pour des fins de test :

Sub testSensorLogic(void)
{

Serial.Print (farLeftSensor) ;

Serial.Print ("< == RIGH gauche == >") ;

Serial.Print (farRightSensor) ;

Serial.Print (« mode: ") ;

Serial.Print (mode) ;

Serial.Print ("erreur:") ;

Serial.println (erreur) ;

}


Articles Liés

Comment à l’aide de vieux moteurs moteurs avec Arduino et pilote A4988

Comment à l’aide de vieux moteurs moteurs avec Arduino et pilote A4988

J'ai été en utilisant moteurs pas à pas pendant un certain temps maintenant, et ils sont fantastiques pour toutes sortes de projets robotiques.Aujourd'hui, je vais partager les choses que j'ai appris jusqu'ici sur la réutilisation de vieux moteurs pa
Main robotisée contrôlée par geste avec Arduino + saut Motion

Main robotisée contrôlée par geste avec Arduino + saut Motion

Bonjour à tous,Comme promis, j'ai fait une instruction complète étape par étape pour mon projet final universitaire !Tout d'abord : Désolé pour mon mauvais anglais ! Si quelque chose n'est pas clair, s'il vous plaît laisser un commentaire.La main est
Comment faire pour mesure courant CA à l’aide de capteur à effet Hall avec Arduino ou autres microcontrôleurs commune

Comment faire pour mesure courant CA à l’aide de capteur à effet Hall avec Arduino ou autres microcontrôleurs commune

S'il vous plaît voir une nouvelle approche plus simple iciObjectif : Ce Instructable montre comment faire une boîte d'interface qui, lorsque raccordé à une rallonge, permet de microcontrôleurs communs comme l'Arduino à mesure AC courant comme un sign
Robot suiveur de ligne axée sur l’Arduino à l’aide du capteur de ligne Pololu QTR-8RC

Robot suiveur de ligne axée sur l’Arduino à l’aide du capteur de ligne Pololu QTR-8RC

mise à jour février 2012 : ce guide est présenté sur le blog de Adafruithttp://www.Adafruit.com/blog/2012/02/14/Arduino-Based-Line-Follower-robot/Il s'agit de Faz3a II, mon premier robot ligne-qui suit, qui je l'espère aussi à utiliser pour la résolu
Joystick contrôlée des bras du Robot à l’aide d’un Arduino

Joystick contrôlée des bras du Robot à l’aide d’un Arduino

Objectif et description du présent guideCette instructable est une main pour un projet d'école que nous avons fait. Le but de ce projet était de créer un contrôle de bras de robot à l'aide des Sticks. Nous avons dû utiliser un Arduino Uno pour le con
Distance robot contrôlé à l’aide de la télécommande Arduino et T.V.

Distance robot contrôlé à l’aide de la télécommande Arduino et T.V.

Cette voiture contrôlée à distance peut être déplacée autour à l'aide de pratiquement n'importe quel genre de distance tels que TV, AC etc..Il utilise le fait que la télécommande émet IR(infrared).Cette propriété est faite usage d'à l'aide d'un récep
Le sans fil, détection de l’Obstacle, bip Robot à l’aide des Arduinos !

Le sans fil, détection de l’Obstacle, bip Robot à l’aide des Arduinos !

Il s'agit d'un obstacle sans fil contrôlé, autonome détection robot !Un temps, j'avais fait ce Instructable et voulait faire quelques mises à jour majeures depuis.Voici les caractéristiques du robot:-1.HE de contrôle sans fil en utilisant des 433 mod
Maison bras robotisé à l’aide de pièces Standard en utilisant Arduino et un traitement GUI

Maison bras robotisé à l’aide de pièces Standard en utilisant Arduino et un traitement GUI

J'ai récemment pris sa retraite et une des choses que je me suis promis était que lorsque j'ai prenaient leur retraite j'allais terminer tous les projets que j'ai dû courir dans ma tête depuis que je suis un adolescent. C'est une cinquantaine d'année
Commander votre Robot à l’aide de téléphone portable

Commander votre Robot à l’aide de téléphone portable

CE tutoriel complet est également disponible sur mon site WebBonjour monde dans ce post je vais vous montrer comment faire pour contrôler le robot à l'aide de téléphone portable. Contrôler un robot à l'aide de téléphone portable n'est pas si compliqu
COMMANDE manuelle / autonome ROBOT (à l’aide de la TECHNIQUE de FUSION de capteur)

COMMANDE manuelle / autonome ROBOT (à l’aide de la TECHNIQUE de FUSION de capteur)

DTMF ou Dual Tone Multiple Frequency est chouette petite voie de contrôle des machines à votre téléphone portable. Cette instructable vous, lecteur doux montre comment faire un moins cher que la saleté DTMF contrôlée robot qui peut également fonction
Mur en suivant le Robot à l’aide de 555 Timer

Mur en suivant le Robot à l’aide de 555 Timer

EDIT :Ce robot est également au concours de Robot pour la catégorie des 12-18 ans.Avant-propos :Dans ce instructable je vais écrire les idées de base que j'ai utilisé pour faire un mur suite robot sans n'importe quel microcontrôleur. Le robot dans ce
Robot quadrupède à l’aide de 2 servos avec arduino fait maison

Robot quadrupède à l’aide de 2 servos avec arduino fait maison

hey tout le mondeSi vous avez obtenu un arduino mini et deux servos standard, vous pouvez faire un petit robo qui marche sur deux 4 pattes d'animal familier.mais dans le projet, j'ai n'a pas utilisé un arduino original. J'ai utilisé un microcontrôleu
Ligne de base suivant Robot avec Arduino

Ligne de base suivant Robot avec Arduino

07/09/2015Il a été quelques années puisque nous avons affiché initialement ce Robot suivant ligne de base avec tutorial Arduino, et il semble tellement de gens a jugé utile que nous devrions poster une mise à jour qui se déroule courant Arduino bibli
Comment faire un téléphone Mobile et l’ordinateur contrôlé 3D Robot imprimé avec Arduino - IoBot.

Comment faire un téléphone Mobile et l’ordinateur contrôlé 3D Robot imprimé avec Arduino - IoBot.

Si vous cherchez un moyen de contrôler un Arduino basé des périphériques, cette instruction vous montrera comment le faire en s'appuyant simple robot.Le IoBot peut être contrôlé par une application mobile et l'ordinateur via LAN ou câble USB. L'appli