- 12V Akku mit 280 Ah bauen         
Seite 7 von 9 ErsteErste ... 56789 LetzteLetzte
Ergebnis 61 bis 70 von 88

Thema: Delta Roboter

  1. #61
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Anzeige

    E-Bike
    Hallo

    Naja, so wirklich brauchbar ist das in meiner Spielzeuggröße wohl nicht.

    Irgendwie zieht sich das Projekt nun auch etwas in die Länge. Für die Potis (die noch nicht verwendet werden) habe ich mit Irrwegen locker 3 Wochen gebraucht, die Basis ist verändert, eine kleine Adapterplatine wurde zusammengelötet und der RP6 hat nun einen genutzten USRBUS und einen dritten "freien" ADC. Zudem habe ich endlich eine pfiffige Servoansteuerung gefunden die sich mit den RP6-Libs verträgt. Und schliesslich habe ich noch einen kleinen Greifer zusammengebastelt, der wiederrum war nach einer Stunde fertiggebogen:

    Bild hier   Bild hier   Bild hier  
    Bild hier   Bild hier   Bild hier  
    (Digitales 5€-Miniservo: https://www.roboternetz.de/phpBB2/ze...ag.php?t=42121)

    Zusammengebaut sieht das nun so aus:

    Bild hier   Bild hier  
    http://www.youtube.com/watch?v=O1G1xVg6CcU
    http://www.youtube.com/watch?v=94sjwaqIeAI


    Das Programm (für einen 8MHz-Mega32) fährt stur die einzelnen Positionen an:

    Code:
    // Parallele Kinematik                                            21.3.2008 mic
    // RP6 steuert Deltaroboter mit Greifer
    
    #include "RP6RobotBaseLib.h"
    
    // Servoausgänge 1-4
    #define servoinit {DDRB |= (1<<PB7); PORTB &= ~(1<<PB7); DDRC |= 0b01110000; PORTC &= ~0b01110000;}
    #define servo1on  PORTC |=  (1<<PC4)
    #define servo1off PORTC &= ~(1<<PC4)
    #define servo2on  PORTC |=  (1<<PC5)
    #define servo2off PORTC &= ~(1<<PC5)
    #define servo3on  PORTC |=  (1<<PC6)
    #define servo3off PORTC &= ~(1<<PC6)
    #define servo4on  PORTB |=  (1<<PB7)
    #define servo4off PORTB &= ~(1<<PB7)
    
    typedef struct
    {
       uint16_t pos1, pos2, pos3, pos4;
    	uint8_t pause;
    } schritt;
    
    schritt schrittfolge[10];
    uint8_t servo1, servo2, servo3, servo4, s[5]={0,200,200,200,200};  //oben offen
    uint16_t adc1, adc2, adc3;
    
    void getadcs(void)
    {
    	adc1=readADC(7);
    	adc2=readADC(1);
    	adc3=readADC(0);
    }
    int main(void)
    {
    	initRobotBase();
    	getadcs();
    	servoinit;
    
    	//Timer2 Initialisierung
    	TCCR2 = (0 << WGM21) | (0 << COM20) | (1 << CS22); // Normal Mode, prescaler /64
    	TIMSK |= (1 << TOIE2); // Timer2 Overflow-Interrupt erlauben
       //TIMSK &= ~(1 << TOIE2); // Timer2 Overflow-Interrupt verbieten
    
    	servo1=s[1];
    	servo2=s[2];
    	servo3=s[3];
    	servo4=s[4];
    	while(1)
    	{
      	servo1=200; // hoch
      	servo2=200;
    	servo3=200;
    	mSleep(600);
    
     	servo4=154; // aufpicken
    	mSleep(200);
     	servo1=150;
      	servo2=150;
    	servo3=150;
    	mSleep(400);
    
      	servo1=220; // hoch
      	servo2=220;
    	servo3=220;
    	mSleep(400);
    	servo2=70;  // rueber
    	servo3=250;
    	mSleep(150);
      	servo1=130;
    	mSleep(500);
    
    	servo4=170; // oeffnen
    	mSleep(200);
    	servo1=120; // neu positionieren
    	servo2=60;
    	servo3=240;
    	mSleep(300);
    	servo4=154; // schliesen
    	mSleep(200);
    
      	servo1=200; // hoch
      	servo2=120;
    	servo3=240;
    	mSleep(200);
    
      	servo1=220; // mitte oben
      	servo2=220;
    	servo3=220;
    	mSleep(600);
      	servo1=170; // runter
      	servo2=170;
    	servo3=170;
    	mSleep(500); // fallenlassen
    	servo4=170;
    	mSleep(300);
    	}
    	return(0);
    }
    ISR (TIMER2_OVF_vect)
    {
    	static uint8_t servo_nr=0, grundimpuls=0;
    	static uint16_t impulspause;
    	if(servo_nr)
    	{
    		if(grundimpuls++ & 1) TCNT2=200; else
    		{
    	   	if(servo_nr==1) {TCNT2=servo1; servo1on; impulspause-=servo1;}
    	   	if(servo_nr==2) {TCNT2=servo2; servo1off; servo2on; impulspause-=servo2;}
    	   	if(servo_nr==3) {TCNT2=servo3; servo2off; servo3on; impulspause-=servo3;}
    	   	if(servo_nr==4) {TCNT2=servo4; servo3off; servo4on; impulspause-=servo4;}
    	   	if(servo_nr==5) {servo4off; servo_nr=0;}
    	   	if(servo_nr) servo_nr++;
    		}
    	}
    	else
    	{
    	   if(impulspause>256) impulspause-=256;
    			else {TCNT2=-impulspause; servo_nr++; impulspause=1500;}
    	}
    }
    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  2. #62
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.05.2006
    Alter
    35
    Beiträge
    122
    Hei,

    echt super der Greifer!!!
    und mit nur einem Servo.
    Ist wirklich ne gute alternative zum Saugnapf.
    Danke!
    Anything that can go wrong, will go wrong. Kabel sind entweder zu lang oder zu kurz...

  3. #63
    Erfahrener Benutzer Robotik Einstein Avatar von vohopri
    Registriert seit
    11.09.2004
    Ort
    südlich der Alpen
    Beiträge
    1.708
    Ha,

    was für eine elegante Konstruktion. Sowas begeistert mich immer.

    Nur die arme Katze bekommt keine Bälle mehr geworfen.

    grüsse,
    Hannes

  4. #64
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    12.10.2006
    Ort
    Kohlenpott
    Alter
    37
    Beiträge
    263
    Auf der Hannovermesse hat wohl Jemand meine/unsere Idee geklaut.
    Generell war dieses Jahr deutlich mehr im Bereich Linearkinematik zu sehen.
    Fast in jeder Halle stand ein Hexapod. Einer war sogar so klein dass er problemlos als Überrschsungsei-Extra daher kommen könnte..

    Das Ding auf dem Bild konnte man selber steuern.. also jeden Servo einzeln.
    Wird Zeit dass ich mir auch mal einen baue.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken fgr.jpg  

  5. #65
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    09.05.2004
    Ort
    Bielefeld / Paderborn
    Beiträge
    1.253
    Ich hab meinen Deltabot jetzt auch mal zusammengebastelt und werd mich mal ein wenig mit Mathe rumschlagen. Ich habe ein recht interessantes Paper für die Inverse Kinematik gefunden, welches ich mal auseinandernehmen werde:

    http://www.cim.mcgill.ca/~paul/clavdelt.pdf

    edith: Fotos

    Bild hier   Bild hier   Bild hier  

  6. #66
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    12.10.2006
    Ort
    Kohlenpott
    Alter
    37
    Beiträge
    263
    Klasse!
    Woher hast du die Teile? Wasserstrahl?

    Hat mal jemand überlegt ob mit einem Hexapod nicht auch eine CNC-Fräse machbar wäre, zumindist für kleine Gravuraufgaben bzw. weiche Materialien?

  7. #67
    Benutzer Stammmitglied
    Registriert seit
    02.10.2007
    Ort
    Saalfeld
    Alter
    35
    Beiträge
    78
    hi,

    sowas gibt es schon : )

    hier ein kleines Video^^

    http://www.youtube.com/watch?v=7hEXwyJ2B78

  8. #68
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    09.05.2004
    Ort
    Bielefeld / Paderborn
    Beiträge
    1.253
    also cool ist es schon (delta cnc). aber ein karthesischer aufbau ist für sowas einfacher, weil leichter zu steuern und mechanisch stabiler. den geschwindigkeitsvorteil eines deltas kannst du in einer eigenbau-fräse vermutlich sowieso nicht nutzen.
    meine teile hab ich überigens mit der cnc gefräst.

  9. #69
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    09.05.2004
    Ort
    Bielefeld / Paderborn
    Beiträge
    1.253
    Ich hab vor ein paar Tagen auch mal ein kleines Video gemacht. Eine Kinematik hab ich immernoch nicht realisiert. Mehr zur Ansteuerung steht im Beschreibungstext des Videos.

    http://www.youtube.com/watch?v=emdhIxwYEc8

  10. #70
    Hello all, please forgive the English.
    I designed and built the Delta Tau controlled deltas found on YouTube.
    http://www.youtube.com/watch?v=Gv5B63HeF1E
    I have spent many years working on parallel kinematic mechanisms. Delta Robots and Hexapods.
    http://www.youtube.com/watch?v=bQtT4EDyQVU

    The hexapod joints are 12mm ball magnets, constrained with a simple four bar linkage on the base... or actually the top, as it is hung upside down.

    The delta robot inverse kinematics can be calculated using simple trigonometry, projection of triangles, law of cosines.
    Hexapod kinematics are a different matter. I encourage everyone to discover the benefits of parallel kinematic mechanisms. They are superior in rigidity, speed, cost.
    My friend and colleague has a website on the subject http://www.parallemic.org/

Seite 7 von 9 ErsteErste ... 56789 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests