Arduino-baserad robot med IR radar (5 / 5 steg)
Steg 5: Skiss kod att köra roboten
ARDUINO SKISS KOD
Denna beta koden drev Arduino-baserad servo-driven svepande IR radar att utföra hinder skatteundandragande och servo kontroll.
Senaste Version: Beta 0,8 oktober 22, 2011
Denna kod skrevs att vara lika självdokumenterande som möjligt. Jag använde mångordiga och utökad syntax i stället för kompakt kod att göra det lättare att förstå och till port till andra programmeringsspråk. Med undantag av IR läsa koden, var denna skiss kopieras inte från någon projekt men jag gynnats av den kollektiva erfarenheten av många andra. Alla kan använda och ändra denna kod med erkännande.
Denna robot drag med differentierad styrning. För att vända, måste ett hjul flytta snabbare än andra i samma eller motsatt riktning för en viss tidsperiod. Jag brukade prova hitta denna tidsvärde. Det kommer att vara olika för din egen robot.
Dessa tidsvärden beror på många faktorer såsom hjulstorlek, robot vikt, ytan kvaliteter, dragkraft, etc. Det är bäst att testa din robot på mål ytan (sumo skiva, marmor golv) att komma fram till arbetande värden så du behöver inte ändra dem senare.
Obs: För att stoppa servon, jag helt enkelt "ta bort" dem i programmet sedan "attache" dem när jag behöver dem att flytta igen. Detta var bättre än huvudvärk av försökande till räkna ut stopp punkt för varje servo som jag ändrade för kontinuerlig rotation.
Pseudo logiken fungerar enligt följande:
SETUP
Setup miljö och fysiska konstanter som tidpunkten för hjulet snurrar, säkert avstånd till hinder, etc;
Starta robot;
Skanna den vänster, framåt, höger;
Röra sig i riktning mot större utrymme;
LOOP
Hålla sig i rörelse framåt under genomsökningen.
OM hindret nådde sedan stoppa och skanna i alla riktningar (vänster, framåt, höger)
Röra sig i riktning mot större utrymme;
OM hinder finns på alla riktningar sedan Backturn 360 grader sedan igenom i alla riktningar agin (vänster, framåt, höger)
OM hinder finns i alla riktningar sedan stopp;
UPPREPA SLINGA
Det var allt.
På den logiska nivån har jag 3 huvudavsnittet i skiss-koden:
1) införande av konstanter, fysiska och miljömässiga variabler.
2) logik att vända IR servo och Läs avstånd och hinder varning.
3) logik att vända hjulet servon framåt, vänster, höger, 360, och helt enkelt bakåt.
Återigen, detta är beta koden men det fungerar.
Här är en annan video inspelningen, men sämre kvalitet (tagna med Nokia 5800 kamera)