Quadroped Robot - (NIOSII församlingen) (9 / 13 steg)

Steg 9: Coding - Setup & springa slingan

Vi kommer nu koden installationen av systemet, och sedan lägga den i en enkel springa slinga.

Inställningen innebär att tillåta alla enheter att utlösa avbrott, och konfigurera motorerna på OFF.

Jag bör notera att denna kod föregås av avsnittet .data och handler funktioner. Följande påståenden har dessutom redan gjorts:

.EQU TIMER, 0x10002000
.EQU LEGO, 0x10000060
.EQU LEGO_IRQ11, 0x800
.EQU LEGO_IRQ8, 0x100
.EQU LEGO_Edge, 0x1000006C
.EQU JTAG_UART, 0x10001000
.EQU RESK.trans.buff, 0x10000010
.EQU LEDR, 0x10000000

Så, låt oss komma igång.

.section .text
.global pokemonmaster # lol. När du skriver koden för din robot, kalla dina funktioner vad du vill.
pokemonmaster:
Movia r27, 0x800000 / * initiera stacken (linje 4) * /
Movia r8, TIMER
Movia r9, 0x6500 / * ange s tid Countdown 10 andra 500000000 = 1DCD6500 * /
stwio r9,8(r8)
Movia r9, 0x1DCD
stwio r9,12(r8)
Movia r9, 0x0 / * se till att timern är ren * /
stwio r9,0(r8)
ldwio r9,0(r8) / * bara för att se vad som händer här * /

Movia r11, LEGO / * basadress för GPIO är nu i r11 * /
Movia r9, 0x07f557ff / * Lego kontroll styrelsens initiering i r9 * /
stwio r9, 4(r11) / * butiker i riktning registrera * /
Movia r9, 0xFFFFFFFF
stwio r9, 0(r11)
# E:load:value
Movia r9, 0xff3ffbff / * Sensor 0, tröskeln är HEX E 1111|1-111|0-0-1-1-11-11-11-11-10-11-11-11-11-11 * /
stwio r9,0(r11)
# E:load:value
Movia r9, 0xff3fefff / * Sensor 1, ingång är HEX E 1111|1-111|0-0-1-1-11-11-11-10-11-11-11-11-11-11 * /
stwio r9,0(r11)

Movia r9, 0xffbfffff / * inaktivera sensorer för lastning * /
stwio r9,0(r11)

Movia r9, 0xffdfffff / * anger till driftläge * /
stwio r9,0(r11)

movia r9,0x18000000 /******************************************************************/
stwio r9,8(r11)

Movia r8, JTAG_UART / * r8 innehåller nu JTAG_UART basadressen * /
/ * Berätta UART begära avbrott när tecken tas emot * /
Addi r9, r0, 0x1 / * set bit 0 (REI) av CSR registret till 1 * /
stwio r9, 4(r8)

Addi r9, r0, 0x900 / * anger bitar 11 och 8 i ctl3 till 1 * /
wrctl ctl3, r9

Movia r9, 1
wrctl ctl0, r9

Movia r9, LEGO_Edge / * klart lego sensor kanten avtryckaren * /
stwio r0,0(r9)

run_loop:
Movia r9, RESK.trans.buff
Movia r20, LEGO

ldwio r19,0(r20)
Srli r19, r19, 26
stwio r19,0(r9)
Movia r9, LEGO_Edge
stwio r0,0(r9)
br run_loop

.global wall_escape_left
wall_escape_left: / * visade kvar ett visst avstånd för att undvika en vägg * /
Movia r8, TIMER
STW r0,0(r8)

Movia r9, 0x4 / * startar timern men inte kontinuerlig (måste avsiktligt omstart) * /
STW r9,4(r8) / * starta timern för en 1 period springa * /
Movia r4, LEGO / * flyttar adressen till motor controller till r4 för funktionen * /
Addi sp, sp, -16
STW r11,12(sp)
STW r9,8(sp)
STW r8,4(sp)
STW ra,0(sp)
kalla motors_turn_left
LDW ra,0(sp)
LDW r8,4(sp)
LDW r9,8(sp)
LDW r11,12(sp)
Addi sp, sp, 16
LEFT_LOOP:
LDW r9,0(r8) / * ta reda på om flaggan har gått upp (en period har passerat) * /
Movia r10, 0x00000001
och r9, r9, r10
BEQ r9, r10, LEFT_CLEAR / * om timern är timeout... * /
br LEFT_LOOP
LEFT_CLEAR:
STW r0,0(r8) / * Avmarkera flaggan * /
Addi sp, sp, -16
STW r11,12(sp)
STW r9,8(sp)
STW r8,4(sp)
STW ra,0(sp)
Movia r4, LEGO
Ring motors_forward / * börja gå framåt igen * /
LDW ra,0(sp) / * föra tillbaka avsändaradressen * /
LDW r8,4(sp)
LDW r9,8(sp)
LDW r11,12(sp)
Addi sp, sp, 16 / * krympa stacken tillbaka ner * /
ret

.global wall_escape_right
wall_escape_right:
Movia r8, TIMER
STW r0,0(r8)

Movia r9, 0x4
STW r9,4(r8)
Movia r4, LEGO / * flyttar adressen till motor controller till r4 för funktionen * /
Addi sp, sp, -16
STW r11,12(sp)
STW r9,8(sp)
STW r8,4(sp)
STW ra,0(sp)
kalla motors_turn_right
LDW ra,0(sp)
LDW r8,4(sp)
LDW r9,8(sp)
LDW r11,12(sp)
Addi sp, sp, 16
RIGHT_LOOP:
LDW r9,0(r8)
Movia r10, 0x00000001
och r9, r9, r10
BEQ r9, r10, RIGHT_CLEAR
br RIGHT_LOOP
RIGHT_CLEAR:
STW r0,0(r8)
Addi sp, sp, -16
STW r11,12(sp)
STW r9,8(sp)
STW r8,4(sp)
STW ra,0(sp)
Movia r4, LEGO
kalla motors_forward
LDW ra,0(sp)
LDW r8,4(sp)
LDW r9,8(sp)
LDW r11,12(sp)
Addi sp, sp, 16
ret

Om det var alldeles för förvirrande, är jag helt glad att besvara frågan. Bara be dem nedan.

Se Steg
Relaterade Ämnen

Chassis de Robot con Orugas Impresas sv 3D

3D tryckt Robot Tank chassis.(Du kan hitta svenska instruktionerna nedan)Este es el primer paso para la construcción de un robot tanque (por las orugas, ingen tiene armas). De diseño abierto, y con el objetivo de que pueda ser utilizado sv aplicacion...

Android Zombiebot

Bygga denna Zombiebot som du kan fjärrstyra med Android Bluetooth-enheten. Baserat på Android Robot Controller från www.roboticintelligencesoftware.com.Steg 1: Delar som behövs Android Robot Controller leverantör: www.roboticintelligencesoftware.com...

Svärm Bots: Montering och kooperativa Transport

Hej alla,Detta instructable handlar om "Swarm Bots: montering och kooperativa Transport" i vilken vi kan bygga våra egna master och slave robot, slav kommer att följa master robot och vi kommer att kontrollera master robot med vår smartphone. De...

Barns Robot kostym med ljudeffekter, godis detektor och mer

jag gjorde min dotter denna robot kostym till halloween. Jag blev inspirerad av denna Kid Robot kostym. Jag tog mig i lite av en annan riktning och till några mer nyheter såsom lampor i antenner och öron, en big button-kontrollen med en ljudeffekt fö...

Hur man bygger robot halloween kostymer.

Dessa kostymer var ett år i vardande för brainstorming, skissa, och utforma följt av en tredagars cram session att få dem byggde i tid för vår Halloweenfest.Vi brukar alltid gå överbord för Halloween men i år tror jag vi överträffade oss själva. Dett...

Bygga Mongoose mekatronik Robot: del 1 chassi & växellåda

detta är först i en serie av illustrerade anvisningarna för montering av Mongoose Robot kit finns från blueroomelectronicsMongoose höjdpunkter:Kraftfull PIC18F2525 mikrokontroller (32KHz till 32MHz)Hårdvara PWM kontrollerad SN754410 H-Bridge med term...

Amigurumi Instructable Robot... Kär!

i detta, min allra första Instructable, jag visar dig hur man virka din egen Instructable Robot och hans kärlek-Bot!Du behöver följande:3mm virknålKamgarn vikt garn i följande färger (guld/gul, svart, rött, rosa och grå). Du behöver inte så mycket, o...

Bygga en robot Lego Multigraph

Skulle inte du njuta av att bygga och använda en robot som drar abstrakt konst kan använda i din konst och hantverk projekt? Lego Multigraph, är även om det hade inga praktiska tillämpningar, roligt både att bygga och driva! Detta är en iteration på...

30lb kämpar Robot-Nyx

jag byggde nyligen en ny 30£ kämpar robot för NERC Sportsman klassen och Dragon * Con Robot strider händelser. Detta instructable kommer att följa byggprocessen och kommer att innehålla länkar till delar leverantörer, bearbetning resurser och DXF-rit...

3D tryckt Walking Robot

Denna 3D tryckt Walking Robot är just den sak att hålla uppsikt över skrivbordet. Jag försökte hålla det så enkelt som möjligt med ett minimum av delar. Om du har några frågor på bygga, fråga bara.Njut!Vad du behöver:1Tamiya 3-växlad vev axel växellå...

6WD robot med aluminiumchassi

Syftet med detta instructable är att bygga en grundläggande, liten och mobil robot, enkel men resistenta, kunna röra sig lätt genom många ytor med precision.Efter många upplevelser, jag är i en punkt där jag tror att jag har uppnått bra resultat och...

En praktisk Robot

jag kalla det en praktisk robot för ett antal skäl. Det kan vara att använda varje dag som de flesta människor som arbetar runt huset skulle ha. Med hjälp av många överskott objekt hålls kostnaderna nere. Robot arm kan lyfta över en 2 lb objekt från...

API för en webbplats kontrolleras Robot

"Dessa material och den information som finns i detta instructable är från studenter på programvara för platser (www.softwareofplaces.com) klass vid PUC-Rio universitet. Innehållet representerade här är studentens sista projekt för klass utvärdering...

En Arduino Shield som omvandlar din Radio styrd bil till en Robot

Jag har sett en massa Instructables som beskriver hur en Radiostyrd bil kan konverteras till en robot. De flesta av dessa kräver att R/C bil mottagare styrelsen ändras så att avsnittet RF i mottagaren kringgås med vänster/höger/framåt/bakåt signalern...

Android kontrollerade Robot för nybörjare (A till Z)

Gillar du robotar? Är du ny i robotteknik? Har du tänker bygga en Robot från grunden? Om ja, är detta instructables för dig. I detta instructables jag visar dig hur du kan bygga en robot från början, jag också visa dig hur du kan kontrollera du robot...

Android G1 följetong till Arduino Robot

lära sig hur din Android mobiltelefon kan styra en robot med en Arduino ombord. Telefonen tar kommandon via telnet från en annan telefon eller en PC, så kan du fjärrstyra roboten. Detta projekt kommer annars inte ändra G1 så du kan fortsätta använda...

Arduino modulär Robot

Jag skapade detta instructable att visa min utveckling av ett modulärt arduino robot projekt för MAKEcourse vid University of South Florida (makecourse.com).Denna robot använder en 3d tryckt fall utformade i SolidWorks som använder brickor och platse...

Arduino sol spårning Robot

Detta är en enkel solar tracker som automatiskt orienterar sig mot solen eller ljusa källa av ljus som solen. Om du placerar solpaneler på denna robot kan det öka sin produktivitet med 90 till 95%. Första att skapa en sol spårning robot kan blir ljud...

Autonoma Sumo bekämpa Robot med pneumatiska Flipper - hur man

denna Sumo Bot utformad, byggdes, programmerad och testade under en 12 veckors period för en av mitt sista år engineering klasser. Syftet var att konstruera och bygga en lätt helt självständiga sumo kämpar robot för en i klassen Sumo Bot konkurrens....