Din första riktiga robot den lätt sätt, lära sig alla grunderna samtidigt på det :) (49 / 51 steg)
Steg 49:
Programmering
Skriv in denna kod i din editor, och tryck på F5 när roboten är ansluten:
viktigaste:
readadc 0, b0
debug
gå till största
Nu tar din hand framför robot´s huvudet och ser hur den rörliga b0 ändras värdet. Du kan använda den kunskap som vunnits för att besluta vad som ska hända när (hur nära saker ska få innan..)
Du kan märka hur saker start att gå "fel" om saker är för nära "ögon"; Skarpa görs att arbeta med saker som är från 10-80 CM bort. Saker som ligger närmare verkar vara ytterligare ett sätt, som kan vara en utmaning till program.
Du kan få många andra avstånd sensorer som inte har detta problem. Men skarpa är den billigaste, och easiset till program, så det är därför jag gjorde en "dålig" val för dig, ledsen ;) Titta och se vad alla använder, innan du bestämmer dig för en uppgradering.
Nu råder jag er att sätta din robot på en tändsticksask eller liknande, som hjulen kommer att börja vrida.
Skriv in denna kod i din editor, och tryck på F5 när roboten är ansluten:
hög 4
låga 5
Ett av hjulen ska vända i en riktning. Vända din hjul fram? Om så är fallet, är anvisningen för att hjulet vända framåt.
Om hjulet vänder bakåt, kan du prova detta:
låg 4
High 5
För att stänga det andra hjulet, måste du ange
hög 6
låga 7
(eller tvärtom för motsatt riktning.)
Vad som händer här är att med hjälp av endast alternativ som mikrokontroller; effekt på eller av (hög / låg) å det har stift, det befallande motor kontrollern som motor A eller B i läget framåt eller bakåt.
låg 4
låga 5
låga 6
låga 7
stannar alla motorer
Servo du redan har provat.
Hela vägen till sidan är:
servo 0, 75 vänta 2
den andra sidan är:
servo 0, 225 vänta 2
- och center:
servo 0, 150 vänta 2
Här är ett litet program som kommer (bör, om allt är bra, och infogar de rätt parametrarna för hög/låg som passar ditt ledningar till motorerna) gör roboten kör runt, stannar framför saker, ser att varje sida att besluta vilken är bäst, ändra på det sättet och kör mot nya äventyr. Koden har jag gjort så kallade påpekanden: grejer skrivet att förklara vad som händer.
Du kan skriva sådana kommentarer eller kommentarer själv i koden, det är en bra idé att hålla koll.
De är skrivet med en "tecken. Dock kopiera denna text från här kan ändra det till något annat, och du kommer att behöva rätta det manuellt, ledsen. Redigeringsprogram för programmering har färgkoder, som kommer att hjälpa visar dig vad det känner igen som kommentarer och vad som kod.
Symbol dangerlevel = 70' hur långt bort sak bör, innan vi reagera?
symbol tur = 300' Detta anger hur mycket som ska vändas
symbol servo_turn = 700' Detta sätter för hur lång tid vi bör vänta på servo inaktivera (beroende på it´s hastighet) innan vi mäta avstånd
huvudsakliga: "den viktigaste loopen
readadc 1, b1 "läsa hur mycket avstånd framåt
om b1 < dangerlevel sedan
GOSUB nodanger ' om inget driva framåt, framåt
annat
GOSUB whichway ' om hinder framåt sedan besluta vilken väg är bättre
slut om
gå till huvudsakliga "detta avslutas loopen, resten är bara sub rutiner
nodanger: "detta borde vara din kombination att göra roboten enheten framåt, dessa behöver du sannolikt att justera för att passa sättet du har fast dina robotar motorer
High 5: hög 6: låg 4: låg 7
returnera
whichway:
GOSUB totalhalt "först stoppa!
"Titta ett sätt:
GOSUB lturn ' titta åt sidan
Pausa servo_turn ' vänta för servo vara avslutad vrida
readadc 1, b1
GOSUB totalhalt
"Titta åt andra hållet:
GOSUB rturn "ser till en annan sida
Pausa servo_turn ' vänta för servo vara avslutad vrida
readadc 1, b2
GOSUB totalhalt
"Bestämmer vilken är ett bättre sätt:
om b1
GOSUB body_lturn
annat
GOSUB body_rturn
slut om
returnera
body_lturn:
hög 6: låg 5: låg 7: hög 4' Detta bör din kombination som förvandlar roboten ett sätt
paus slå: gosub totalhalt
returnera
body_rturn:
High 5: låg 6: låg 4: hög 7' Detta bör din kombination som förvandlar roboten åt andra hållet
paus slå: gosub totalhalt
returnera
rturn:
servo 0, 100' titta åt sidan
returnera
lturn:
servo 0, 200' ser till andra sidan
returnera
totalhalt:
låg 4: låg 5: låg 6: låg 7' låg på alla 4 stannar roboten!
Servo 0,150' ansikte fram
vänta 1' frysa alla för en sekund
returnera
Med några smarta programmering och tweaking, du kan göra robot enheten, slå it´s huvud, fatta beslut, göra små justeringar, sväng mot "intressant hål" såsom dörröppningar, arbetar på samma gång, när du kör. Det ser ganska coolt om du gör roboten spin medan huvudet vänder ;)
Rolig tid
Du kan också koppla en lampa eller LED till stift 2 & slipade och skriva (kom ihåg LED´s behöver vända på rätt sätt)
Hög 2
slå på lampan, och
Låg 2
att stänga av ;)