Enkla självbalanserande Robot med Galileo Gen 2 (5 / 6 steg)
Steg 5: Setup och Tuning
I byggnad roboten, utvecklade jag en tillfällig, dedikerad skiss för delsystemet (MPU-6050, BT modul, Motor sköld), att dela problemet upp i storlekar jag kunde hantera. Men även innan dess, det hela började med att få hjärtat av systemet, Galileo Gen 2 styrelsen, upp och kör.
Det finns en bra "komma igång" guide online där du installera enhetsdrivrutiner Android IDE och Galileo, och uppdatera FW i Galileos styrelse.
Obs: Eftersom både Bluetooth och MPU-6050 moduler använder 3.3V signalering, måste du flytta I/O spänning bygeln på Galileo ombord till 3.3V inställning för att inte skada modulerna.
Jag föreslår också att du tar dig tid att läsa in en bootable bild på ett SD-kort (se till att få den senaste bilden). Det gör din Arduino skiss som behålls om Galileo genom styrelsen makt cykler. På den negativa sidan, det ökar uppstart styrelsens Galileo (det tar på order 1 min att starta upp), men det är en bra avvägning i mina ögon.
Obs: jag försenad ta steget att starta från SD (Ja, eftersom jag är lat). Som ett resultat hade jag Tether roboten att min dator via USB-kabeln så jag kunde ladda ner skissen på varje makt cykel. Detta var en olägenhet som vände sig till katastrof, när roboten föll på USB-kabeln, bryta micro USB-kontakten på Galileo ombord. Jag har nu att tillgripa laddar nya skisser på SD-kortet på värden PC, och sedan starta Galileo från SD och flytta skissen till /sketch/sketch.elf via seriekonsoll Linux, och sedan starta om Galileo... allt eftersom värd-anslutning via USB fungerar inte längre. Så akta från min sorgliga berättelse, och anser dig varnade om du beslutar att driva din robot med USB-kabeln som är fäst.
Jag spelade också med montering platser som MPU-6050. Jag började med den monterad på elektronik-nivå, enligt Galileo styrelsen, men hittade flytta det till den motoriska nivån för bättre kontroll.
Den minst deterministiska fasen jag stött var absolut avgörande rätt P, jag och D värden för PID-regulator. Jag har hört detta är en svart konst, men nu har en mycket friskare respekt för processen efter att ha tillbringat en tid i den. Det var i denna fas av utvecklingen att jag lagt PID dataloggning på SD-kortet, så jag kunde räkna ut varje termin bidrag till produktionen. Det finns ett antal behandlingar för manuell PID sökning online, men jag hittade det bästa sättet att vara följande:
· Den I och med 0 tal D
· Öka P termen tills roboten nästan kan bo vertikala. Med motorerna valde jag, som var roboten racing över golvet lutar i en riktning
· Minska P benämna något och ökat den jag kalla tills roboten kan balansera, men gjorde det med svängningar
· Ökat D termen för att minska svängningen.
Fortfarande jag inte nöjd med de resultat jag har fått, eftersom de verkar vara antingen optimerad för bra balans, eller bra körning. Sökandet fortsätter...
Som för rulle kalibrering, jag gick tillbaka och kalibrerad MPU-6050 halvvägs genom utveckling, efter jag adderat rulla kalibrering förmågan. Till min förvåning när jag kalibrerat den MPU-6050 modulen, hittade jag inte rulla kalibrering ändringarna har en väsentlig inverkan.
Jag fann att justera Motor Slack gjort roboten mer lyhörd - upp till en punkt bortom vilken det började att svänga.