Programmerade robotarm (5 / 7 steg)
Steg 5: Koden
Projektet är inte komplicerat, men det har många variabler. Det klokaste är att tydligt definiera dem och låta hans kommentarer på en unik fil:
ArmDefine.h
Denna fil bör också ange minimum, maximum och inicial servon vinklar. Den kod som finns i den här självstudiekursen har två uppsättningar av parametrar för robotarmar som jag testat i mitt projekt (naturligtvis endast en grupp av konstanterna ska användas):
MeArm 4-DOF
- #define minGrip 15
- #define minBase 0
- #define minShou 60
- #define minElbw 60
- #define maxgrepp 45
- #define maxBase 170
- #define maxShou 180
- #define maxElbw 150
- #define midGrip 30
- #define midBase 87
- #define midShou 138
- #define midElbw 100
SS 3-DOF
- #define minGrip 75
- #define minBase 5
- #define minShou 5
- #define minElbw 0
- #define maxgrepp 125
- #define maxBase 150
- #define maxShou 155
- #define maxElbw 0
- #define midGrip 100
- #define midBase 90
- #define midShou 90
- #define midElbw 0
Varje arm har en annan uppsättning parametrar och det är viktigt att du hittar rätt för din. Vad jag föreslår är att initialt potentiometrar (KRUKAR) fortfarande på dess mittpunkt och kartläggning av PWM utgångar är inställda på att standardvärdena: Max = 255, Min = 0 och mitten av = 126 ("#defines" ovan). Dem, börja varierande krukor (taget) och följ i Serial Monitor (eller LCD) Vad bör de lägsta och högsta värden där armen fungerar korrekt. De kommer att slutvärdena ska användas för de inställningar (ändra min ursprungliga värden på ArmDefine.h.
För "inspelning" uppsättningar koordinater (eller steg) som roboten ska spela, jag kommer att använda datamatriser:
- gripPosition int [100].
- basePosition int [100].
- shouPosition int [100].
- elbwPosition int [100].
- positionIndex int = 0;
Observera att jag inte håller "sparade" position och i slutet av programmet "robot", indexet är tillbaka till noll och roboten kommer att vänta på inspelningen av en ny sekvens (programmet är förlorad). Alternativt kan du hålla dessa data arrayer i Arduino EEPROM, t.ex. Gör det, programmet skulle köras igen eller ens kan du ha flera lagrade program.