2WD röst kontrollerat Robot med Arduino och BitVoicer Server (4 / 7 steg)
Steg 4: Planering Robot rörelser
Även om roboten har endast två DC-motorer, är det kapabla att utföra en serie komplexa rörelser. För att hålla detta Instructable så enkla som möjligt, valde jag att definiera endast om tre dussintals grundläggande enhetliga rörelserna och några komplexa rörelser bildas av kombinationen av de grundläggande rörelserna.
Som ni kan se på bilderna i steg 2, använder jag inte rotation sensorer i hjulen, ultraljudssensorer eller någon annan typ av sensor för att mäta avståndet från objekt eller rest avståndet. Detta förhindrar roboten utför hög precision rörelser. Dock kan kontrollera endast riktningen och hastigheten på motorerna du uppnå en nivå av precision tillräckligt bra för att flytta roboten runt.
Det första du behöver veta för att kunna beräkna den nödvändiga körningstiden för varje rörelse är medelhastigheten robot. Att placera ett måttband parallell till roboten och aktivera båda motorerna samtidigt för en eller två sekunder, rest avståndet och härleda hastigheten. I min konfiguration fick jag 13.7 cm per andra anställa 62,5% av den maximala varvtal (250/400, se Pololu Arduino bibliotek). Med andra ord, om du vill flytta roboten 1 meter (100 cm) framåt, motorerna hade aktiveras samtidigt för 7.299270... sekunder. Jag har valt att hålla tiden räknar i millisekunder resolutionen, men om du vill uppnå högre rörlighet precision, överväga att öka fastheten till mikrosekunder. Lång historia kort, att flytta roboten 1 meter, jag har till aktivera båda motorerna samtidigt för 7299 millisekunder. Från detta nummer blir allt regel av tre andra sträckor. För att utföra båge eller cirkelrörelser, har ett hjul att gå snabbare än den andra. Om du vill flytta roboten sidor, endast ett hjul har till vara aktiverat eller båda i motsatta riktningar (att slå på sin egen axel). Här har du kommer att använda vissa trigonometri för att räkna ut avståndet reste av varje hjul och för hur länge varje motor måste vara aktiverad. En bra utgångspunkt för dessa begrepp finns i följande länkar (jag inte tänker gå längre om detta här): http://rossum.sourceforge.net/papers/CalculationsForRobotics/CirclePath.htm och http://math.stackexchange.com/questions/60176/move-two-wheeled-robot-from-one-point-to-another.
Som ni kan se i slutet av videon ovan, göra jag också roboten "Rita" vissa grundläggande geometriska former (kvadrat, triangel och cirkel) på golvet. Dessa rörelser uppnås genom en kombination av grundläggande rörelserna (t.ex. gå framåt, vända, gå framåt, vända, etc.). Kombinationen av dessa rörelser görs i BitVoicer Server Röst Schema och du kommer inte se dem i den Arduino skiss presenteras i nästa steg.