Multirörelseplattform - Chalmers tekniska högskola
Multirörelseplattform - Chalmers tekniska högskola
Multirörelseplattform - Chalmers tekniska högskola
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
genom kommandot Servo.write(degrees), där degrees är en grad mellan 0 och 179.<br />
Stegmotorn kräver en lite annorlunda variant (void MoveBase). Här skickar man<br />
in en grad som omvandlas till hur många steg som stegmotorn behöver ta för att<br />
uppnå den graden. Den kompenserar även för den graden som man för nuläget är<br />
på. Till exempel om man är på grad 45 på stegmotorn, och skickar in grad 90 till<br />
den. Så kommer den flyttas 45grader så att den totala graden blir 90.<br />
4.3.4 Serial Monitor Interface<br />
För att kunna provköra de olika motorerna och verkligen se så att uträkningarna<br />
har blivit rätt, skapade vi ett interface i Arduinos seriella com-port, vilken kan<br />
ses i figur 4.20 nedan. I tabell 7 kan de olika funktionerna för denna ses.<br />
Figur 4.20: Arduinos Com-port.<br />
Tabell 7: Funktioner för att kontrollera våra beräkningar.<br />
Funtion Input Commando Information<br />
void<br />
ForwardKinematics()<br />
1 Skriva ut X,Y,Z punkten för<br />
robotarmen från kända<br />
vinklar på de fyra motorerna.<br />
void MoveBase() 2 grad Ställa in stegmotorn<br />
(roterande plattan) på vilken<br />
grad man vill. Där grad är ett<br />
nummer mellan 0-360. Nya<br />
graden på motorn sparas då i<br />
en variabel som heter<br />
BaseDegrees.<br />
void<br />
InverseKinematics()<br />
3 Skriva ut graderna på de fyra<br />
motorerna från en känd<br />
koordinat X,Y,Z.<br />
void MoveTo(float X, 4 Flytta basplattan till en X,Y,Z<br />
40