23.07.2013 Views

Multirörelseplattform - Chalmers tekniska högskola

Multirörelseplattform - Chalmers tekniska högskola

Multirörelseplattform - Chalmers tekniska högskola

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!