Obstacle Avoidance jeu (6 / 9 étapes)

Étape 6: Obstacle mise à jour tableau

Ce qui fait de ce projet un jeu, c’est que vous devez éviter les obstacles qui peuvent se résumer dans les 3 positions possibles (positions de gauche, de milieu et de droite). Cela signifie que nous devons garder une trace de nos obstacles et envoyer des nouvelles après qu’une certaine période de temps passe.

Cela signifie que nous aurons besoin de ce qui suit :

1) un tableau de reg pour stocker les obstacles.

2) un compteur pour suivre ou non le temps écoulé pour savoir si nous devons envoyer un nouvel obstacle.

3) un moyen de générer de nouveaux obstacles. (nous allons utiliser notre générateur aléatoire)

4) un moyen de se déplacer ces « obstacles ». Va falloir être en mesure de se débarrasser de la rangée inférieure qui « passe » notre vecteur position, et aussi insérer notre nouvel obstacle dans le haut du tableau obstacle.

1) afin de garder une trace de l’obstacle, nous utilisons un reg appelé "TotalArray". TotalArray utilise les indices de 0 à l’index 3 à partir de la fin pour les obstacles et les 3 derniers pour ce que nous appelons notre « Position ». Par exemple : dans notre projet, nous utilisons un TotalArray avec des index de [0:20], donc tout de 0:17 aura nos obstacles, et allant à 18:20 sera notre position actuelle.

Il est important de savoir 2 choses spécifiques à notre mise en œuvre.

a) que vous devez savoir que les obstacles sont interprétés par groupes de trois. Quand nous sommes écrit à l’écran ou pour vérifier si un obstacle est entré en collision avec notre position, nous avons donc de penser à l’index d’obstacles 3 à la fois.

Donc les 3 premiers obstacles sont TotalArray [0:2], les trois suivantes serait TotalArray [3, 5] et ainsi de suite.

b) obstacles rendent jamais sur la dernière ligne où sont les indices de Position. Cela signifie que la Position de l’index 18:20 ne puisse avoir qu’un bit est un 1.

2) ce compteur décompte progressif sur la posedge de Conseil d’administration construit dans l’horloge qui est tiré du PIN Y2. Un paramètre doit également être instancié pour indiquer que la valeur du compteur doit être afin de savoir que le temps soit écoulé signalisation pour un nouvel obstacle à être généré puis mettre dans le passage d’Obstacles du tableau. Plus la valeur de ce paramètre, plus le temps entre les nouveaux obstacles générés et facile le jeu jouera.

3) notre générateur de nombres aléatoires doit "retourner" une valeur binaire de 3 bits. Nous effectuons cela en donnant le module générateur aléatoire un reg pour accéder et changer quand il génère une nouvelle valeur. Nous pouvons prendre ce reg et utilisez-le pour notre module updateObstacleArray. Cette valeur de bit 3 correspondra à la nouvel obstacle qui s’affichera dans le 0:2 indexe. Une chose à considérer ici est que nous ne pouvons pas avoir le nouvel obstacle soit ainsi: 3' b111 car cela signifierait l’utilisateur aurait aucun moyen d’éviter l’obstacle et ce n’est aucun drôle ! (Nous sommes des gens sympas!) Pour s’occuper de cela dans le random générer le module.

Il y a un autre cas que nous ne pouvons pas arriver et c’est le cas où un obstacle 3' b110 est suivi par un obstacle 3' b011 parce que cela donne aussi un scénario de perte automatique. Au lieu de vérifier dans ce cas, nous avons plutôt de créer une ligne de 3' b000 entre tous les obstacles afin que l’utilisateur peut toujours trouver un chemin à travers les obstacles.

4) lorsque le temps est écoulé le paramètre constant période prédéfini (de 2), nous devons déplacer nos obstacles. En supposant qu’il n’y a aucune collision entre un obstacle et une valeur de position, puis nous mettrons à jour le tableau pour tenir compte de ce passage du temps avec un nouvel obstacle. (Nous y reviendrons à ce contrôle de collision).

Nous devons faire un nouvel obstacle s’affichent dans la ligne supérieure de la TotalArray, se débarrasser de la rangée inférieure des obstacles et tout pousser sur la partie supérieure des obstacles sur une seule ligne.

Ceci est accompli en utilisant un tempArray.

...

...

En supposant que temps est écoulé afin qu’un obstacle doit être généré.

Reg TotalAr [0:20]
tempArray reg [0:17]

randSig d’entrée [0:2] ;

Si (obsAr [0:2] == 3' b000)

commencer

Si le premier/haut de gamme est vide gen nouvel obs et pousser original obsAr « down »

implique que chaque obstacle est séparé par une ligne vide horizontale entre les obstacles

Si (randSig! = 3' b111)

commencer

tempArray [03:17] < = TotalAr [0:14] ; stocker les éléments top 15

tempArray [0:2] = randSig ; Créer le nouvel obstacle de la randomsignal

TotalAr [0:17] = tempArray [0:17] ; remettre le nouveau tableau d’obstacle dans le TotalArray

fin

d’autre

commencer

tempArray [03:17] < = TotalAr [0:14] ;

tempArray [0:2] = 3' b000 ; Faire le nouvel obstacle une ligne vide s’il y avait un obstacle dans la rangée du haut pour commencer.

TotalAr [0:17] = tempArray [0:17] ;

fin

fin

...

...

Ce code est utilisé pour mettre le nouvel obstacle au Sommet ainsi que les vieux obstacles. Abaissez une ligne.

Articles Liés

Encore une autre ligne qui suit / Obstacle Avoidance 2RM voiture

Encore une autre ligne qui suit / Obstacle Avoidance 2RM voiture

Cette voiture robot n'est pas nouveau. Instructables et Youtube sont parsemés d'une voiture robot similaire à celui-ci et honnêtement ces affectations m'a inspiré pour mettre sur pied ce kit robotique abordable que j'ai pu distribuer à mon atelier de
Arduino Nano : Infrarouge Obstacle Avoidance capteur avec Visuino

Arduino Nano : Infrarouge Obstacle Avoidance capteur avec Visuino

Capteurs infrarouges évitement d'obstacles sont bon marché, petits capteurs souvent utilisées dans des robots et projet Arduino pour détecter des objets à proximité du capteur.Les capteurs infrarouges fonctionnent en envoyant une lumière infrarouge a
BASIC ARDUINO OBSTACLE AVOIDANCE ROBOT

BASIC ARDUINO OBSTACLE AVOIDANCE ROBOT

créer un arduino simple fonction obstacle avoidance robotÉtape 1: exigences MATÉRIAUX REQUIS1. Ofcourse Arduino Uno (tout autre Office compatible) X 12. châssis pour robot (j'ai utilisé une voiture RC de mon frère)3. un L293D double pont en h ic4. un
Obstacle Avoider Robot en utilisant Arduino Uno et capteur de proximité IR

Obstacle Avoider Robot en utilisant Arduino Uno et capteur de proximité IR

Suivez les étapes pour créer un Obstacle éviter Robot en utilisant Arduino Uno et IR capteur de proximitéEtape 1: Eléments requis1) Arduino Uno R3 (Clone fera l'affaire)2) capteurs de proximité IR (2 recommandé)3) châssis avec moteurs4) planche5) Con
Une Arduino Infrared contrôlé et Obstacle Avoidance Robot

Une Arduino Infrared contrôlé et Obstacle Avoidance Robot

Salut tout le monde,Cette Instructables est divisé en deux phases, qui le rend approprié pour les débutants et les concepteurs de robot intermédiaire.La première phase couvre l'utilisation de l'arduino nano Conseil seulement comme contrôleur. Avec ce
Jouet à Obstacle Avoider

Jouet à Obstacle Avoider

J'ai visité notre magasin d'occasion et trouvé quelques jouets qui je pense pourrait être transformé en un robot autonome. J'ai porté une attention particulière au réservoir parce que j'ai pensé qu'il serait vraiment facile à contrôler avec les rails
Arduino Obstacle Avoidance Robot

Arduino Obstacle Avoidance Robot

Hé les gars,Matériel :1 microcontrôleur Arduino - http://www.robotshop.com/en/arduino-uno-usb-microc...2 Servos rotation continue - parallax http://www.robotshop.com/en/parallax-futaba-contin...1 180 degré Hi-Tec Servo HS-422 - http://www.robotshop.c
Obstacle Avoider Robot à l’aide de la carte relais

Obstacle Avoider Robot à l’aide de la carte relais

tout droit, alors j'ai décidé de faire un robot avec une carte à relais. Je n'ai jamais utilisé une carte de relais dans ma vie et c'était la première fois que je travaillais avec elle. J'ai d'abord pensé qu'il serait vraiment compliqué, mais il s'es
Comment faire un Obstacle évitant Robot

Comment faire un Obstacle évitant Robot

Obstacle évitant robot est un robot simple qui est actionné par un arduino et ce qu'il fait c'est qu'il erre juste autour et évite les obstacles. Il détecte les obstacles avec un capteur à ultrasons HC-SR04 en d'autres termes si le robot détecte obje
Obstacle en évitant le Robot en utilisant Arduino

Obstacle en évitant le Robot en utilisant Arduino

Hé les gars dans ce instructable nous allons voir comment faire un obstacle autonome en évitant Robot.This robot est conçu et programmé de telle sorte qu'il évite la collision. Le robot se déplace essentiellement vers le bas et dès qu'il détecte un o
Arduino Obstacle évitant Robot

Arduino Obstacle évitant Robot

Dans ce instructable je vais vous montrer comment faire votre propre obstacle évitant robot !Nous allons utiliser la carte de Arduino uno et un capteur à ultrason. Si le robot détecte un objet devant lui, à l'aide d'un petit servomoteur, il balaye la
ÉVITEMENT d’obstacles avec le KY-032

ÉVITEMENT d’obstacles avec le KY-032

Salut tout le monde! J'ai fait un autre exemple de projet, j'utilise le KY-032 pour vous montrer comment obstacle avoidance capteurs fonctionnent. Le code est simple mais fonctionne très bien pour des choses simples. À partir du code, vous pouvez cré
Obstacle en évitant de Robot par ultrasons avec evive (Arduino alimenté embarqué plate-forme)

Obstacle en évitant de Robot par ultrasons avec evive (Arduino alimenté embarqué plate-forme)

Nous avons construit un obstacle en évitant le robot à l'aide d'evive. Contrairement à d'autres, nous avons monté notre capteur à ultrasons sur un servo. Donc après la détection de collision, le robot analyse quelle direction est le meilleur pour all
Robot Arduino-basé avec radar IR

Robot Arduino-basé avec radar IR

le prototype de robot dans ce Instructable est mon deuxième axée sur l'Arduino « slumbot » qui est un robot autonome. Il est attaché ainsi que des restes et des articles ménagers. Le robot « voit » avec un IR numérisation capteur entraîné en rotation