Obstakel vermijden spel (6 / 9 stap)

Stap 6: Hindernis Update Array


Wat maakt dit project een spel is dat je vermijden van de hindernissen die moet omlaag in de 3 mogelijk standpunten (links, Midden of rechts komen kunnen). Dit betekent dat we moeten houden van onze obstakels en nieuwe verzenden als een bepaalde periode is verstreken.

Dit betekent dat we zullen het volgende nodig:

1) een reg matrix voor het opslaan van de obstakels.

2) een teller voor het bijhouden van al dan niet voldoende tijd verstreken om te weten als we moeten Stuur een nieuw obstakel.

3) een manier voor het genereren van nieuwe obstakels. (we zullen gebruik onze generator van het random)

4) een manier om deze "belemmeringen" bewegen. We moet kunnen om zich te ontdoen van de onderste rij die "" onze positie vector passeert, en ook onze nieuwe obstakel in de bovenkant van de belemmering array invoegen.

1) om de belemmeringen bij te houden, gebruiken we een reg genaamd "TotalArray". De indexen van 0 aan de index 3 van het einde voor de hinderpalen, en die laatste 3 TotalArray gebruikt voor wat wij noemen onze "positie". Bijvoorbeeld: In ons project gebruiken we een TotalArray met indexen van [0:20], dus alles uit 0:17 zal onze obstakels, en alles van het 18:20 zullen onze huidige positie.

Het is belangrijk om te weten 2 specifieke dingen aan onze uitvoering.

a) u moet weten dat er belemmeringen worden geïnterpreteerd in groepjes van drie. Dus als we schrijven naar het scherm of controleren om te zien als een belemmering heeft botste met ons standpunt, moeten we denken aan de obstakels 3 indexen tegelijk.

Dus de eerste 3 hindernissen TotalArray zijn [0:2], de volgende drie zou TotalArray [3:5], enzovoort.

b) belemmeringen maken nooit het naar de achterlijn waar de positie indexen zijn. Dit betekent dat de positie 18:20 indexeert zal alleen ooit hebben een beetje een 1 worden.

2) deze teller telt omhoog op de posedge van de Raad van bestuur van gebouwd in klok die is ontleend aan PIN Y2. De exemplaren van een parameter moet ook worden gemaakt om te verklaren wat de waarde van de teller moet zijn om te weten dat de tijd verstreken signalering voor een nieuwe hindernis worden gegenereerd en zet dan in het gedeelte van de belemmeringen van de matrix. Hoe groter de waarde van deze parameter, zal des te langer de tijd tussen nieuwe belemmeringen worden gegenereerd, en des te gemakkelijker het spel spelen.

3) onze random number generator moet "terugkeer" 3 bits binaire waarde. We voeren dit door het geven van de generator van willekeurige module een reg te openen en wijzigen wanneer het genereert een nieuwe waarde. We nemen deze reg te gebruiken voor onze updateObstacleArray module. Deze 3 bits waarde komt overeen met het nieuwe obstakel dat in de 0 verschijnen zal: 2 indexen. Één ding om te overwegen hier is dat we niet de nieuwe hindernis worden het geval: 3' b111 omdat dat betekenen dat zou de gebruiker geen manier zou hebben om het obstakel te vermijden en dat is niet leuk! (We zijn aardige mensen!) Om te zorgen voor dit in de willekeurige module wordt gegenereerd.

Er is een ander geval hebben we niet kunnen gebeuren en dat is het geval wanneer een 3' b110 obstakel wordt gevolgd door een 3' b011 obstakel omdat hierdoor ook een auto verlies scenario. In plaats van controleren voor deze zaak, creëren wij in plaats daarvan een lijn van 3' b000 tussen elke hindernis zodat de gebruiker altijd een weg door de obstakels vindt.

4) als de tijd verstrijkt de vooraf gedefinieerde periode constante parameter (vanaf 2), moeten we onze hindernissen bewegen. Ervan uitgaande dat er geen botsing tussen obstakel en een postion waarde is, dan zal worden bijgewerkt de array om te reflecteren dit verloop van de tijd met een nieuwe hindernis. (We zullen terugkomen op deze botsing controle.)

We moeten een nieuwe hindernis worden weergegeven in de bovenste rij van de TotalArray, ontdoen van de onderste rij van de obstakels en alles uit het bovenste gedeelte van de hinderpalen worden één rij naar beneden duwen.

Dit wordt gedaan met behulp van een tempArray.

...

...

Ervan uitgaande dat de tijd verstrijkt zodat een belemmering moet worden gegenereerd.

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

invoer randSig [0:2];

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

beginnen

Als eerste/bovenkant van array is leeg gen nieuwe obs en duw oorspronkelijke obsAr "down"

betekent dat elk obstakel is gescheiden door een lege horizontale lijn tussen obstakels

Als (randSig! = 3' b111)

beginnen

tempArray [3:17] < = TotalAr [0:14]; opslaan van de top 15 elementen

tempArray [0:2] = randSig; Creëren van het nieuwe obstakel van de randomsignal

TotalAr [0:17] = tempArray [0:17]; brengen de nieuwe hindernis array terug in de TotalArray

einde

anders

beginnen

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

tempArray [0:2] = 3' b000; Controleer de nieuwe hindernis een lege rij als er een obstakel in de bovenste rij om te beginnen.

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

einde

einde

...

...

Deze code is wat zou worden gebruikt om het leggen van de nieuwe hindernis boven evenals de oude obstakels één regel naar beneden verplaatsen.

Gerelateerde Artikelen

Arduino Nano: Infrarood obstakel vermijden Sensor met Visuino

Arduino Nano: Infrarood obstakel vermijden Sensor met Visuino

Infrarood obstakel vermijden sensoren zijn goedkoop, kleine sensoren vaak gebruikt in robots en Arduino project om te ontdekken van objecten in de buurt van de sensor.De infrarood sensoren werken door een infrarood licht met enige regelmaat te sturen
BASIC ARDUINO obstakel vermijden ROBOT

BASIC ARDUINO obstakel vermijden ROBOT

maken een eenvoudige arduino gebaseerde obstakel vermijden robotStap 1: vereisten BENODIGDE MATERIALEN1. natuurlijk Arduino Uno (een andere compatibele board) X 12. Chasis voor robot (ik gebruikte een van mijn broer's RC auto)3. een L293D Dual h-brug
Nog een andere lijn volgende / obstakel vermijden 2WD auto

Nog een andere lijn volgende / obstakel vermijden 2WD auto

Deze robot auto is niets nieuws. Instructables en Youtube zijn doorspekt met een soortgelijk aan deze robot-auto en eerlijk deze boekingen inspireerde mij om samen te stellen deze betaalbare robotics kit dat ik hand-out kon op mijn Robotics workshop
Ultrasone obstakel-vermijden Robot

Ultrasone obstakel-vermijden Robot

Dit is mijn poging om het ontwerpen en bouwen van een obstakel te vermijden robot! RekaBot (vernoemd naar een fee (:) kan detecteren obstakels met een ultrasone sensor die met hulp van een servo kunt verplaatsen. Op basis van de metingen die ze neemt
How to Build obstakel vermijden Robot voor Beginners met Arduino Tutorial

How to Build obstakel vermijden Robot voor Beginners met Arduino Tutorial

Deze Tutorial is voor iedereen aan de slag met arduino. Wij zullen bouwen obstakel te vermijden robot die gebruikmaakt van een ultrasone sensor voor HC SR-04 om objecten en 2 continu (360 graden) servo's aangesloten op een externe batterijvoeding te
Remote Controlled obstakel vermijden Robot met PIC Microcontroller

Remote Controlled obstakel vermijden Robot met PIC Microcontroller

Ik gebruik pic 16f877aservo motor ultrasone module afgestemd motor motor stuurprogramma en 20 mhz kristal.In robotica is obstakel te vermijden de taak van het voldoen aan enkele doelstelling van de controle niet-splitsing of niet-botsing functie bepe
Hoe maak je een obstakels vermijden Robot - Arduino stijl

Hoe maak je een obstakels vermijden Robot - Arduino stijl

je altijd al wilde maken van een van deze coole robots die in principe elk object kunnen vermijden. Maar je niet genoeg geld om te kopen een van die erg duur zijn hoefde, met reeds gesneden delen waar alle materialen waar er voor u. Als u als me bent
Arduino obstakel vermijden Robot

Arduino obstakel vermijden Robot

De kerels van Hey,Materiaal:1 Arduino Microcontroller - http://www.robotshop.com/en/arduino-uno-usb-microc...2 parallax continu roterende Servos - http://www.robotshop.com/en/parallax-futaba-contin...1 180 graad Hi-Tec HS-422 Servo - http://www.robot
Obstakel te vermijden Robot met arduino

Obstakel te vermijden Robot met arduino

OBSTAKEL - VERMIJDEN ROBOTEen obstakel te vermijden ROBOT is een die kan een obstakel te vermijden met behulp van ultrasone sensor en navigeren in haar eigen pad. Met een breadboard gekoppeld aan de robot kunt u plezier spelen binnen een korte period
Obstakel te vermijden Robot met behulp van IR Module geïnterfacet met een boord van Mediatek LinkIt

Obstakel te vermijden Robot met behulp van IR Module geïnterfacet met een boord van Mediatek LinkIt

In deze Intructable zal u worden kunnen te maken een obstakel vermijden Robot met behulp van IR module met L293D en Mediatek Linkit een boord.Stap 1: vereisten L293D Motor Driver IC.2 IR Sensor Modules.Chassi voor Bot.Mediatek LinkItOne-Board2 100 RP
Obstakel te vermijden Arduino auto

Obstakel te vermijden Arduino auto

Hallo iedereen ik ben hier delen wat ik maak een obstakels vermijden van arduino auto. Ik gebruikte hier gemakkelijk beschikbaar materiaal, deze robo blijven uitvoeren naar voren totdat en tenzij elk obstakel kwam voor auto laten zien en maak...Stap
OBSTAKEL te vermijden met de KY-032

OBSTAKEL te vermijden met de KY-032

Hallo mensen! Ik maakte een ander voorbeeld-project, ben ik met behulp van de KY-032 om u te tonen hoe obstakel vermijden sensoren werken. De code is eenvoudig maar werkt prima voor eenvoudige dingen. Van de code kunt u grotere projecten bouwen.Het o
TurtleDuino Object vermijden Robot

TurtleDuino Object vermijden Robot

Hallo, in dit instructable ik zal tonen u stap voor stap hoe te bouwen van de TurtleDuino, een object vermijden robot, met een Arduino UNO microcrontroller aan boord. Ik ontwierp de TurtleDuino met behulp van materiaal van de hardware winkel (Home De
Obstakel ontwijkt Robot met behulp van de Arduino Uno en de nabijheid van de IR Sensor

Obstakel ontwijkt Robot met behulp van de Arduino Uno en de nabijheid van de IR Sensor

Volg de stappen voor het maken van een obstakel vermijden Robot met behulp van Arduino Uno en IR Sensor van de nabijheidStap 1: Onderdelen die nodig zijn1) Arduino Uno R3 (kloon zal doen)2) IR naderingssensoren (2 aanbevolen)3) chassis met motoren4)