Hinder undvika spel (6 / 9 steg)

Steg 6: Hinder uppdatering Array



Vad gör detta projekt ett spel är att du måste undvika de hinder som kan komma till 3 möjliga lägen (vänster, mitten och höger positioner). Detta innebär att vi måste hålla koll på våra hinder och skicka nya efter en viss tid passerar.

Detta innebär att vi kommer att behöva följande:

1) en reg matris att lagra hinder.

2) en räknare för att hålla reda på om eller inte tillräckligt med tid har förflutit för att veta om vi måste skicka ett nytt hinder.

3) ett sätt att generera nya hinder. (vi kommer att använda vår slumpgenerator)

4) ett sätt att flytta dessa "hinder". Vi kommer att kunna bli av med den nedersta raden som "går" vår position vektor och även infoga våra nya hinder i toppen av arrayen hinder.

1) för att hålla reda på hinder, använder vi en reg kallas "TotalArray". TotalArray använder index från 0 till 3 från slutet för hinder och de sista 3-indexet för det vi kallar vår "Position". Till exempel: I våra projekt använder vi en TotalArray med index från [0:20], så allt från 0:17 kommer att vara våra hinder, och allt från 18:20 kommer att vara vår nuvarande ståndpunkt.

Det är viktigt att veta 2 saker specifika till vårt genomförande.

en) du måste veta att hinder tolkas i grupper om tre. Så när vi skriver på skärmen eller kontroll för att se om ett hinder har kolliderat med vår ståndpunkt, måste vi tänka på de hinder 3 index i taget.

Så de första 3 hinder är TotalArray [0:2], de kommande tre skulle vara TotalArray [3:5] och så vidare.

b) hinder göra aldrig det till den sista raden där positionen indexen är. Detta innebär att placera indexerar 18:20 kommer alltid bara ha en bit vara en 1.

2) den här räknaren räknar på posedge av styrelsens inbyggd klocka som tas från PIN Y2. En parameter måste också instantieras för att konstatera vad räknares värde måste vara för att få veta att tiden har förflutit signalering för ett nytt hinder för genereras och sedan sätta in i hinder delen av matrisen. Ju större värde för den här parametern, kommer att ju längre tiden mellan nya hinder som genereras, och desto lättare spelet spela.

3) vår slumpgenerator måste "återvända" ett 3 bitars binärt värde. Vi påverka detta genom att ge slumpgenerator modulen en reg komma åt och ändra när det genererar ett nytt värde. Vi kan ta denna reg och använda den för vår updateObstacleArray modul. 3 bit värdet kommer att motsvara de nya hinder som kommer att dyka upp i 0:2 index. En sak att tänka på här är att vi inte kan ha det nya hindret vara fallet: 3' b111 eftersom det skulle innebära användaren skulle ha något sätt att undvika hindret och det är inte roligt! (Vi är trevliga människor!) Att ta hand om detta i den slumpmässigt generera modul.

Det finns ett annat fall som vi inte kan ha hända och så är fallet där en 3' b110 hinder följs av en 3' b011 hinder eftersom detta gör också en automatisk förlust scenario. I stället för kontroll av detta fall, skapa vi istället en linje av 3' b000 mellan varje hinder så att användaren kan alltid finna en väg genom hinder.

4) när tiden förflyter den fördefinierade period konstanta parametern (från 2), måste vi flytta våra hinder. Förutsatt att det finns ingen kollision mellan ett hinder och ett p-värde, kommer att då vi uppdatera matrisen för att återspegla denna tidens gång med ett nytt hinder. (Vi återkommer till denna kollision kontroll.)

Vi måste göra ett nytt hinder visas i den översta raden i TotalArray, bli av med den nedersta raden av hinder och skjuta allt från den övre delen av hinder ner en rad.

Detta sker med hjälp av en tempArray.

...

...

Förutsatt att tiden löper ut så att ett hinder måste genereras.

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

input randSig [0:2];

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

börja

om första/översta i matris är tom gen nya obs och push ursprungliga obsAr "down"

innebär varje hinder är separerade av en tom vågrät linje mellan hinder

om (randSig! = 3' b111)

börja

tempArray [3:17] < = TotalAr [0:14]; lagra de topp 15 delarna

tempArray [0:2] = randSig; Att skapa det nya hindret från randomsignal

TotalAr [0:17] = tempArray [0:17]; att sätta den nya hinder matrisen tillbaka i TotalArray

slutet

annat

börja

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

tempArray [0:2] = 3' b000; Se det nya hindret en tom rad om det fanns ett hinder i den översta raden att börja.

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

slutet

slutet

...

...

Denna kod är vad skulle användas för att sätta det nya hindret högst upp liksom flytta de gamla hindren ned en rad.

Se Steg
Relaterade Ämnen

Arduino hinder undvika Robot

I detta instructable jag kommer att visa dig hur man gör egna hinder undvika robot!Vi kommer att använda Arduino uno styrelsen och en ultrasonic sensor. Om roboten identifierar ett objekt framför den, med hjälp av en liten servomotor, söks igenom omr...

DIY autonoma linje spårning med hinder undvika Robot (Rover)

Varning: gör din dator ljusstyrka låg, eftersom detta projekt avger en hög nivå av AWESOMENESS som kan skada dina ögon :D 3:)Projektet deltog i RoboCup 2015 Egypten lokal tävling och vann "Bästa Design Award" med mitt lag Abdelrahman Alaa, Ahmad...

Själv hinder undvika Robot

Det är en själv hinder undvika robot. Den använder två ping sensorer för att upptäcka hinder. Det använder en Adafruit L293D Motor sköld för att driva fyra högt vridmoment 12 volts motorer. Det också en Arduino UNO R3 feawtures som en mikrokontroller...

Hinder undvika Robot använder Arduino

Hej stötarna i detta instructable kommer vi att se hur man gör en autonom hinder undvika Robot.This robot är utformat och programmeras på ett sådant sätt att man undviker kollision. Roboten i grunden rör sig framåt och när den upptäcker ett objekt/hi...

Hinder undvika Robot med hjälp av IR-modul gränssnitt med Mediatek LinkIt en stiger ombord

I denna Intructable, kommer du att vara kompetent att göra An hinder undvika Robot med IR modul med L293D och Mediatek Linkit en bräda.Steg 1: krav L293D motorn förarens IC.2 IR-sensorn moduler.Chassi för Bot.Mediatek LinkItOne styrelsen2 100 RPM mot...

Hinder undvika Robot med IR-sensorer utan Microcontroller

Detta projekt är Tja ett äldre projekt, jag gjorde det 2014 i juli eller augusti, månad tänkte dela den med er. Dess en enkel hinder undvika robot som använder IR-sensorer och fungerar utan mikrokontroller. IR-sensorer använder opamp IC dvs LM358N. D...

Hinder undvika Robot

Detta instructable är den skriftliga versionen av min "Arduino: hur till bygga en hinder att undvika Robot" Youtube video som jag har lagt upp nyligen. Jag rekommenderar dig att kolla upp.Så, utan vidare, låt oss komma igång!Steg 1: Ett chassi!...

Hur man bygger hinder undvika Robot för nybörjare med Arduino handledning

Denna Tutorial är för alla att komma igång med arduino. Vi kommer att bygga ett hinder att undvika robot som använder en ultrasonic sensor för HC SR-04 för att upptäcka objekt och 2 kontinuerlig (360 grader) servon wired till ett externt batteri. Det...

Hinder undvika Robot - Motor sköld

Hej killar! Detta är en enkel och grundläggande handledning för att göra en hinder att undvika Robot... Läs på...Steg 1: Material som krävs för Att bygga hinder att undvika roboten behöver du-Arduino Uno R3 (vi rekommenderar att du använder Arduino U...

Fjärrstyrda hinder undvika Robot med PIC mikrokontroller

Jag använder pic 16f877aservo motor ultraljud modul inriktad motor motor driver och 20 mhz kristall.I robotteknik är hinder skatteundandragande uppgiften att tillfredsställa vissa kontroll mål omfattas av icke-korsningen eller icke-kollision position...

Arduino L293D hinder undvika Robot

Vad du behöver att göra det är.1. Arduino uno.2. chassi kit av något slag.3. L293D motoriska drivande chip.4. makten smidig jag använde 0.5 mah li-po batteri på 7.4v5. massor av ledningar6. ultra sonic avstånd sensor7. potentiometerNär du lägger kode...

Nexys-2 ljus Dodger spel

Minns du spendera hela eftermiddagen spela arkad stil spel som barn? Asteroider, Pac-Man, Galaga, Space Invaders, Breakout, Missile Command eller något annat. Har du någonsin velat återskapa spel som de av nostalgi, men visste inte var du ska börja?...

NFC kort kontrolleras Remote bil

detta är en fjärrkontroll bil. Inte kontrolleras av allestädes närvarande fjärrkontroller, som joystick, men en uppsättning NFC kort. Det gör det en utmaning att rationellt tänkande. Vill ha det köra smidigare och snabbare? Det beror på hur du utform...

Autonomus vägg följande hinder att undvika Arduino Rescue Bot

jag är en ha som huvudämne elektroteknik och varje år mitt college gren av IEEE tävlar i en studenttävling hårdvara. Förra årets tävling var inspirerad av naturkatastroferna i Haiti och Chile (tävlingen hölls en vecka efter jordbävningen i Japan). De...

Hur man gör ett hinder att undvika Robot

hinder att undvika robot är en enkel robot som drivs av en arduino och vad den gör är att det bara strövar runt och undviker hinder. Den upptäcker hinder med en HC-SR04 ultrasonic sensor med andra ord om roboten sinnen objekt nära till det, det tar a...

Robot-hinder att undvika.

HINDER ATT UNDVIKA ROBOTFINANSIERAS AV, INTEL KENYA TILLSAMMANS MED SOCIETY OF ENGINEERING STUDENTER AUTOMATION CLUB JKUAT.MEDLEMMAR:1 ANTONIUS KARIUKI2 ERIC KINYANJUI3 EMMANUEL KINYANJUIPROJEKTET INSTRUCTABLE:KRAV:1 INTEL GALILEO GENERATION 2 STYREL...

Hinder att undvika Robot V2

nyligen gjorde jag en instructable på en enkel hinder undvika robot. I detta instructable jag kommer att genomföra en panorering PING))) sensor, till skillnad från den tidigare roboten som har sensorn var stillastående. Jag kommer att använda denna t...

Hinder Avoider Robot använder Arduino Uno och IR-närhet Sensor

Följ stegen för att skapa ett hinder undvika Robot använder Arduino Uno och IR-rörelsesensorSteg 1: Delar krävs1) Arduino Uno R3 (klon kommer att göra)2) IR närhet sensorer (2 rekommenderas)3) chassi med motorer4) bakbord5) L293D Motor förare ombord6...

CupBots - 3D tryckt Robotic plattform för Arduino och Raspberry Pi

Här är en stor helg robotics projekt att genomföra med vänner eller folk på din lokala maker utrymme. Behöver du en 3D-skrivare händig till 3D tryck STL filer bifogas som en del av stegen nedan och en kopp, i mitt fall, jag använder en venti kopp frå...