Robotarm Trifecta (Science Olympiad) (10 / 14 steg)
Steg 10: programmering
Denna robot drivs av tre olika Arduino microcontroller styrelser. De två Arduino Mega Pro styrelserna kör båda samma program (mer eller mindre) medan tredje har ett mycket enkelt program bara för att styra lutningen och höjande av förlängning armen.
Vi har valt att använda tre styrelser så att, i händelse av ett tekniskt fel i en bit av kod på en arm, de andra vapen skulle kunna fortfarande fungera korrekt och fortfarande poäng poäng för tävlingen.
Det viktigaste inslaget i koden var PD kontroll för bas motorn. Detta gör att armen att flytta till sin plats utan någon abrupt stopp när det blir det. Syren motor förare var extremt lätt att skicka kommandon till, tack vare bibliotek från Dimension Engineering.
Dynamixel servon har en inbyggd PID kontroll, så allt som behövde göras var att skicka kommandona ståndpunkt till de. Eftersom vi använde servon från AX, MX och RX linjer, behövde vi två olika buffert marker. Vi lärde oss hur man använder Arduino för att kontrollera dessa servon från Savage elektronik och vi använder något modifierade versioner av hans bibliotek (ingår i mappen code). Allt som gjordes för att ändra dessa bibliotek för vårt bruk var att ändra den seriella porten i ett bibliotek så att varje buffert chip skulle ha sin egen seriell port.
När vi började skriva koden, skrev vi varje funktion steg för steg. Vi började genom att endast köra koden för bas motorn, sedan gick vi på att lägga bitarna en efter en längre ner armen. Vi ville se till att varje del av koden fungerat korrekt innan vi försökte varje funktion tillsammans för att minska risken för förstör allt vårt hårda arbete upp till som pekar.
Mappen koden här omfattar alla bibliotek behövs för koden ska sammanställa och Arduino skisser för varje arm.