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:
Externes Bild anzeigen
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:
Externes Bild anzeigen
2 Servomotoren mit einem Abstand aneinander fixiert:
Externes Bild anzeigen
Die Greifer aus kleinen gesägten Metallschienen:
Externes Bild anzeigen
Greifer werden angebracht und der Greifkopf ist fertig:
Externes Bild anzeigen
Der Mittelteil besteht aus zurechtgeschnittenen Aluminiumschienen so ist der Arm relativ leicht. Zwischen den Schienen sind die Servos passend montiert.
Externes Bild anzeigen
Der Greifkopf wird an den Mittelteil montiert:
Externes Bild anzeigen
Nun werden noch die Kabel etwas geordnet und ein kleiner Schalter zur Regelung der Stromversorgung wird angebracht:
Externes Bild anzeigen
Der Greifarm ist soweit fertig:
Externes Bild anzeigen
Externes Bild anzeigen
Am Ende wird er noch an den Asuro geschraubt:
Externes Bild anzeigen
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