Professional Robot (16 / 16 steg)
Steg 16: programmering
viktigaste:
readadc 0, b0
Felsöka goto main
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 och 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 är gjord för att arbeta med objekt 10-80 cm bort. Saker som är närmare än 10 cm (4 tum) 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 enklaste till program, så det är därför jag gjort sådant "dåliga" val för dig, ledsen ;) Titta och se vad alla andra 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) på stiften, 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 centrum:
servo 0, 150
vänta 2
Här är ett litet program som kommer att (bör, om allt är bra och om du har rätt parametrar 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. I koden jag har gjort så kallade anmärkningar: 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 skrivna med en apostrof (eller ett enda Citat) 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 loop readadc 0, b1" läsa hur mycket avstånd ahead om b1 < dangerlevel då gosub nodanger 'om ingenting framåt, drive framåt annars gosub whichway' om hinder framåt sedan besluta vilken väg är bättre slutet om goto 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 motors hög 5: hög 6: låg 4: låg 7 avkastning
whichway: gosub totalhalt "först stoppa!
"Titta ett sätt: gosub lturn"ser att ena sidan paus servo_turn"vänta på servo vara avslutad vrida readadc 0, b1 gosub totalhalt
"Titta åt andra hållet: gosub rturn"ser till en annan sida paus servo_turn"vänta på servo vara avslutad vrida readadc 0, b2 gosub totalhalt
"Bestämmer vilken är ett bättre sätt: om b1
body_lturn: hög 6: låg 5: låg 7: hög 4' Detta bör din kombination de vänder roboten en paus sätt vända: gosub totalhalt avkastning
body_rturn: hög 5: låg 6: låg 4: hög 7' Detta bör din kombination som förvandlar roboten andra sätt paus slår: gosub totalhalt avkastning
rturn: servo 0, 100' titta åt sidan tillbaka
lturn: servo 0, 200' ser till andra sidan tillbaka
totalhalt: låg 4: låg 5: låg 6: låg 7' låg på alla 4 stannar roboten! Servo 0,150' ansikte vidarebefordra vänta 1' frysa alla i en sekund
Med några smart programmering och tweaking, du kan göra robot enheten, slå huvudet, 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 lysdioder behovet att vända på rätt sätt)
Hög 2
slå på lampan, och
Låg 2
att stänga av ;) - Vad sägs om en Laser-penna, monterad på en extra servo? Då kan du göra roboten aktivera lasern runt och slår av och på, peka ut platser... Du kan göra något nu :) Att trycka på "Hjälp" i programmering redaktörer tar fram alla möjliga intressanta tutorials och info!
Kanske prova det här: dra ut servo och tar upp den gula chipet. Infoga den Darlington som du tog ut tidigare. Koppla in högtalaren till 2 stift ovan var servo, tat utgång 1. Och kasta i LED, eller vad det var som du hittat på utgång 2. Sedan program det ungefär så här:
ljud 1, (100, 30) hög 2 vänta 1 låg 2 ljud 1, (105, 60)
Som bör göra ett ljud och aktivera något, göra ett nytt sound och stänga av den igen.
Eller den mer intressant, kontrollera skarpa finns fortfarande i krok en högtalare upp till stift 1 och sedan program här:
buller: readadc 0, b0 ljud 1, (b0, 2) gå till buller.
Snälla rösta på mig.
(namn-ariska
Age-13)
LYCKA till