Mobiler Asuro mit fest montiertem Greifarm Zum nachbauen
Hallo
Ich möchte ein neues Projekt vorstellen.
Ich habe meinen Asuro mit einem neuen Greifarm ausgestattet der fest am Robo montiert ist und mit dem der Asuro sich auch bewegen kann.
So war der Aufbau geplant:
Bild hier
Hier ein paar Fotos der Entstehung:
Auf dieser Halterung wird der Arm später gesetzt. Die Halterung besteht aus einem zurecht geschnittenem Stück Aluminium und 2 langen Schrauben die durch die gebohrten Löcher eingelassen wurden.
Die Halterung wird dann später an den Asuro geschraubt:
Bild hier
2 Servomotoren mit einem Abstand aneinander fixiert:
Bild hier
Die Greifer aus kleinen gesägten Metallschienen:
Bild hier
Greifer werden angebracht und der Greifkopf ist fertig:
Bild hier
Der Mittelteil besteht aus zurechtgeschnittenen Aluminiumschienen so ist der Arm relativ leicht. Zwischen den Schienen sind die Servos passend montiert.
Bild hier
Der Greifkopf wird an den Mittelteil montiert:
Bild hier
Nun werden noch die Kabel etwas geordnet und ein kleiner Schalter zur Regelung der Stromversorgung wird angebracht:
Bild hier
Der Greifarm ist soweit fertig:
Bild hier
Bild hier
Am Ende wird er noch an den Asuro geschraubt:
Bild hier
Hier ein paar kleine Videos des Arms
Video 1: http://www.youtube.com/watch?v=zVLRwRaELbo
Video 2: http://www.youtube.com/watch?v=byIxVQU6Ug0
Hier der Quellcode zum ersten Video (Sehr simpel und noch nicht ausgereift):
Code:
by Thund3r
#include "asuro.h"
int main(void)
{
Init();
int z;
int x;
StatusLED(OFF);
while(PollSwitch()<2);
while(1)
{
for(x=0; x<15; x++)
{
Servog1(100);
Servog2(100);
}
pause();pause();
for(x=0; x<18; x++)
{
Servog1(33);
Servog2(180);
}
pause();pause();
for(x=0; x<15; x++)
{
Servoh(90);
Sleep(3); Sleep(3); Sleep(3); Sleep(3);
}
pause();pause();
for(x=0; x<15; x++)
{
Servod(33);
}
pause();pause();
for(x=0; x<15; x++)
{
Servod(180);
}
pause();pause();
for(x=0; x<15; x++)
{
Servod(100);
}
pause();pause();
for(x=0; x<15; x++)
{
Servoh(160);
Sleep(255); Sleep(255); Sleep(255); Sleep(255);
}
pause();pause();
}
while(1);
return 0;
}
void pause(void)
{
int i;
for(i=0;i<100;i++)
Sleep(200);
}
void Servog1(int pos) // Erster Greifer
{
StatusLED(GREEN);
Sleep(pos);
StatusLED(OFF);
Sleep(255);Sleep(255);Sleep(255); Sleep(255);Sleep(255);Sleep(255);
StatusLED(GREEN);
Sleep(pos);
StatusLED(OFF);
Sleep(255);Sleep(255);Sleep(255); Sleep(255);Sleep(255);Sleep(255);
}
void Servog2(int pos) // Zweiter Greifer
{
StatusLED(RED);
Sleep(pos);
StatusLED(OFF);
Sleep(255);Sleep(255);Sleep(255); Sleep(255);Sleep(255);Sleep(255);
StatusLED(RED);
Sleep(pos);
StatusLED(OFF);
Sleep(255);Sleep(255);Sleep(255); Sleep(255);Sleep(255);Sleep(255);
}
void Servoh(int pos) // Hebender Servo
{
FrontLED(ON);
Sleep(pos);
FrontLED(OFF);
Sleep(255);Sleep(255);Sleep(255); Sleep(255);Sleep(255);Sleep(255);
FrontLED(ON);
Sleep(pos);
FrontLED(OFF);
Sleep(255);Sleep(255);Sleep(255); Sleep(255);Sleep(255);Sleep(255);
}
void Servod(int pos) // Drehender Servo
{
BackLED(ON,ON);
Sleep(pos);
BackLED(OFF,OFF);
Sleep(255);Sleep(255);Sleep(255); Sleep(255);Sleep(255);Sleep(255);
BackLED(ON,ON);
Sleep(pos);
BackLED(OFF,OFF);
Sleep(255);Sleep(255);Sleep(255); Sleep(255);Sleep(255);Sleep(255);
}
Gruß Thund3r