- Labornetzteil AliExpress         
Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 31

Thema: Minimallösung: Servo-Sensor

  1. #21
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.01.2009
    Ort
    NRW
    Beiträge
    562
    Anzeige

    Praxistest und DIY Projekte
    Hallo

    Ich habe ein Kabel vom ADC zum I/O montiert und die beiden sind mit dem Steuerpin des Servos verbunden.

    Hier ein kleines Video meiner Umsetzung an meinem Greifarm:

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

    Nochmals Dank radbruch

    Gruß Thund3r

  2. #22
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Ich habe ein Kabel vom ADC zum I/O montiert
    Aha!

    Aber trotzdem bleibt es verblüffend, weil du nach über zwei Jahren der erste bist, der diese Idee aufgreift und es quasi auf Anhieb funktioniert, obwohl du eine vollkommen andere Art der Servoansteuerung verwendest. Das ist echt der Hammer! Vielleicht sollte sich doch mal jemand erbarmen und das Signal auf der Servoleitung mit einem Oszi genau auf diesen Effekt hin untersuchen.

    Dein Projekt mit deinem Roboterarm gefällt mir natürlich auch gut ;)

    Um das Roboternetz-Forum zu pushen, und unsere Videos zusammen zu halten, haben wir mal vorgeschlagen, in den Tags der youtube-Videos auch ein "roboternetz" einzufügen. (Das wurde hier mal vorgeschlagen ;)

    btw: Kannst mir hierfür mal den Quellcode schicken:
    http://www.youtube.com/watch?v=U5HgMhHF9DU

    *gg*

    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!

  3. #23
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.01.2009
    Ort
    NRW
    Beiträge
    562
    Hallo

    Vielen Dank.

    Der Quellcode kommt über PN
    Aber verrat erstmal nichts wird ja für den Wettbewerb benutzt

    Gruß Thund3r

  4. #24
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.01.2009
    Ort
    NRW
    Beiträge
    562
    Hallo

    Hier nochmal der Quellcode für mein Video inkl. Erklärung:

    Code:
    // Servo-Sensor an einem Greifer                    4.3.2010  Thund3r
    
    
    static int reset,durch,durch2,stop,count; //Variablen die von verschiedenen Methoden verändert werden können
    
    void gtest(void)
    	{
    
    	int c;	  
      	if(reset==0) // Wird nur einma zu Beginn des Programmes aufgerufen
    
    		{
    		  	for(c=0;c<=50;c++)
    
    			{
    				ServoG(12);
    			}
    
    	 		for(c=0;c<=50;c++)
    
    			{
    				
    				ServoG(21);
    				if(durch>durch2) // Ermittelt den höchsten Schwellwert 
    
    				{
    					durch2=durch; // Speichert diesen
    				}
    				mSleep(40);
    			}
    			reset=1; // Damit es nur einmal ausgeführt wird
         		}
    		   
    	for(c=0;c<=50;c++)
    
    	{
    		ServoG(12); //Greifarm öffnet sich
    	}
    
    	setLEDs(0b0000);
    	mSleep(200);
    	
    	for(c=0;c<=50;c++)
    
    	{
    
    	if(stop==0) // Wenn alles ok Greif zu
    	{
            ServoG(21);
    	mSleep(40);
    	}
    
    	else {mSleep(50);} // Wenn Widerstand erkannt (s.u.) halte Position
         
    	 if(durch>durch2) //Wenn Belastung höher als ermittelter Grenzwert
    		{  
    			count++; // Anzahl der Grenzwertüberschreitungen
    		}
    		else{count=0;} // Wenn Grenzwert nur einmalig erreicht wurde verwerfe den Entrag
    		if(count==2) //Wenn Grenzwert 2 mal Überschritten wird tritt Aktion in Kraft (Anzahl variabel)
    		{
    			setLEDs(0b1111);
    			count=0;
    			stop=1; // Greifvorgang wird abgebrochen und Position gehalten s.o.
    		}
    	}
    	stop=0;
    	mSleep(200);
    	
    	}
    
    
    
    
    	void messG() // Messmethode
    	{
    
    	 uint16_t adc5 = readADC(ADC_5);  // Messwert einlesen
    	 clearLCD();
    	 durch=adc5; // Übergeben damit andere Methoden damit arbeiten können
    	 setCursorPosLCD(0, 0);
    	 writeStringLCD("Belastung: "); // Ausgabe auf LCD Display
    	 writeIntegerLCD(adc5, DEC);
    
    	}
    
    
    
    
    
    	 void ServoG(uint8_t pos) // Zur Ansteuerung des Servos
        	{
    
    	DDRC |= IO_PC7; // Pin auf Ausgang
         	PORTC |= IO_PC7;   // High
     	sleep(pos);          // Stellzeit
         	PORTC &= ~IO_PC7;   // Low
    	DDRC &= ~IO_PC7;   // Pin auf Eingang
    	sleep(5);
    	messG(); // messen
    	sleep(180);
    
    	}
    Prakitsch zum schonen der Greifmechanik, wenn der Arm etwas nicht zu fest drücken darf, um zu überprüfen ob die gewünnschte Servo Position erreicht wurde oder ob der Servo noch in Bewegung ist etc.

    Gruß Thund3r

  5. #25
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Eher zufällig bin ich hier mal wieder reingestolpert. Eigentlich schade, dass bisher außer Thund3r diesen Effekt niemand nutzte. Sein Video zeigt schön, wie man das umsetzen kann:
    http://www.youtube.com/watch?v=GDv6Ys0Wsgk

    Mich würde immer noch interessieren, ob man die Spannungsänderung auf der Signalleitung mit einem Osziloskop sehen kann. Das Testprogramm und die Messung selbst wäre wohl einfach: In der Impulspause das Signal nicht nach GND verbinden, sondern den Steuerpin auf Z-State schalten. Dann sollte in der Pulspause ein lastabhäniger Peek erkennbar sein. Die genaue Lage und Größe dieses Peeks würde mich interessieren. :)

    Auch heute noch eines meiner besten Filmchen:
    Bild hier  
    http://www.youtube.com/watch?v=39tOx0IxQ40

    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!

  6. #26
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Soltau - Niedersachsen
    Alter
    46
    Beiträge
    1.369
    Hallo mic,

    könnte das denn auch mit einem Controller und min. 6 Servos funktionieren - in Deinem Video wird ja nur einer ausgewertet?
    Hast Du vielleicht schon einen neueren Test mit digitalen Servos gemacht?

  7. #27
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.693
    ... Mich ... interessieren ... Spannungsänderung auf der Signalleitung mit einem Osziloskop sehen kann ...
    Das Testprogramm .. Impulspause ... den Steuerpin auf Z-State schalten ...
    Hallo Mic,

    derzeit arbeite ich an (m)einem Teststand für Servos, eher einem Prüfstand für eine Latte verschiedener Messungen (Leerlauf- und Lastströme, Positioniergenauigkeit, Speed, Beschleunigungen etc) an meinen Servos. Dabei wollte ich auch diesen Effekt mal verfolgen. Die Mechanik des Teststandes ist im Aufbau, als Platine nehme ich meinen KopfController für den Archie, die tasten-/LCD-gesteuerte Software läuft in wenigen Grundfunktionen.

    Nun habe ich genau diese Messung am Oskar mit dem High-Torque (siehe hier) gemacht mit folgenden Abgriffen:
    Steuerpin gegen GND. Das ergibt die an sich bekannte, saubere Rechteckspannung, die sich auch bei Lastmoment am Servoarm nicht ändert. Ein schulbuchmässiges Oszilloskopbild.
    Steuerpin gegen Vcc, Abgriff unmittelbar am Servostecker. Hier ist die Rechteckspannung invers, Nullwert deutlich verschoben - und - der Spannungshub scheint sich bei Lastmoment am Servoarm geringfügig zu ändern. Deutlicher ist bei einer Momentenlast die Änderung des gesamten Niveaus - also am Oskar angezeigte Null- und Pulsspannung. Dabei wabert das Signalbild am Schirm leicht, umso mehr, je mehr Last da ist. Das Signalbild verlagert sich insgesamt, der Hub Puls-keinPuls scheint sich auch tatsächlich gleichzeitig zu verändern.

    Dass ich bei einigen Messungen mit UART- und Prog rammer-Anschluss zum PC mit dem Netzteil in die Strombegrenzung von 1,5 A fuhr, wobei die Versorgungsspannung der Servoplatine von 8,00 V auf 7,0x V absank ist eine seltsame Nebenerscheinung, die ohne UART- und ohne Programmerverbindung verschwand. Der Servo ist dabei übrigens eine ganze Zeitlang ausgestiegen (brrrrr). Das Netzteil zur Platinen- und Servoversorgung (zwei getrennte 7805/78S05) hat keine GND-Verbindung zum Netz.

    Messungen des Controllers selbst in der von Dir vorgeschlagenen Art werde ich auch durchführen. Noch ist mir zu viel unklar.
    Ciao sagt der JoeamBerg

  8. #28
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Leute,

    ich bin immer noch ratlos, wodurch dieser Effekt zustande kommt.
    Etwas hilflose Fragen:
    1. In den Servo-Elektroniken sitzt ja wohl meist ein NE544 oder M51660L. Da ist der Impulseingang dieser ICs außen nicht beschaltet, so dass es nur um Effekte "aus dem IC heraus" handeln kann. Was kann das sein?
    2. Ist der Effekt wirklich völlig unabhängig von Schwankungen der Versorgungsspannung?
    3. Welche induktiven Effekte könnten eine Rolle spielen?

    Genauso hilflose Antwortversuche:
    1. Keine Ahnung.
    2. Ich denke: Nein. Wenn es z.B. im Servo-IC einen Eingangsspannungteiler gäbe, der an VCC liegt, könnte das ein Effekt sein. Was kann man überhaupt am Eingangspin 5 eines M51660L unter VCC messen?
    3. Da man in einer Impulspause die Spannung am Impulseingang des Servos mißt, könnten am Anfang der Pause Nachschwingungen eine Rolle spielen, dann spielt vielleicht auch eine Selbstinduktion eine Rolle, wenn im IC-Eingangskreis eine Induktivität wirkt.

    ... und:
    Was diese Effekt, wenn es sie gibt, dann mit dem Ausmaß der mechanischen Servobelastung zu tun haben könnten: Keine Ahnung.

    Klärt mich auf! Was tut sich da?
    Klappt das mit jeder Servo-Elektronik?
    Gruß
    Dirk

  9. #29
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Ich versuche mal eine Erklärung:

    Es wird oft gesagt: "Wer misst misst Mist". Ich denke, das trift hier zu, aber etwas anders, als man vermutet.

    Ein offener Eingang eines Chips wird sich durch interne Widerstände auf einen Spannungswert zwischen Vcc und GND einstellen. Gemeint ist hier die Spannung am Vcc Pin und am GND Pin. Etwas anderes kann der Chip ja nicht sehen. Während und nach dem Servo-Pulse wird ja der Motor eingeschaltet, es ist der Zeitpunkt des größten Stromes. Wenn der Eingang des Servo-ICs sich an seinem GND-Pin orientiert, misst man aus Sicht der Ansteuerelektronik am Steuersignal den Strom im Servo. Als Mess-Shunt fungiert dabei eine schlechte (zu hochohmige) Masseanbindung des Servos.

    Man misst also den suboptimalen (so nennt man heute wohl "Mist") Aufbau einer Baugruppe. Den gleichen Effekt hat man natürlich auch in der Vcc Leitung, je nach Messpunkt kommen da noch die Innenwiderstände einer suboptimalen (unterdimensionierten) Stromversorgung hinzu.

    Dies wäre meine, rein theoretische Erklärung des Phänomens.

    Ein solcher, eigentlich schlechter, Aufbau einer Elektronik (zu dünne, zu lange Drähte, zu viele zu schlechte Steckverbinder, zu hohe Leitungsinduktivitäte, zu dünne Leiterbahnen, unterdimensionierte Stromversorgungen etc) retten aber manche Elektronik oder auch Mechanik.

    Elektromoteren sind Biester, beim Anlaufen und beim Blockieren wollen sie hohe Ströme und liefern dabei hohe Momente. Und da sie durch diese Ströme nicht direkt zerstört werden, sondern erst durch die langsamer erfolgende Überhitzung, rettet ein "suboptimaler" Schaltungsaufbau, der als Strombegrenzung funktioniert, so manches Ritzel vor dem Zahnverlust und manche Wicklung vor dem Abbrennen.

    MfG Klebwax

    BTW: Hier wird in verschiedenen Threads über die Versorgung von Servos philosophiert. Ich habe aber noch nichts von wirklichen Messungen mit Shunt und Scope oder mit Stromzange und Scope gelesen. Alle berichteten Spitzenstromwerte stammen aus Vermutungen, schlecht übersetzten Produktbeschreibungen oder (eigentlich unbrauchbaren) Multimetermessungen. Da ich nur zwei jahrzehnte alte Servos aus der "Miniservo" Klasse besitze, kann ich selbst keine Messwerte beisteuern. Wenn ich einen Teststand für Servos bauen würde, hätte eine Strommessung mit guter zeitlicher Auflösung hohe Priorität.

    nochmal MfG
    Strom fließt auch durch krumme Drähte !

  10. #30
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Wenn der Eingang des Servo-ICs sich an seinem GND-Pin orientiert, misst man aus Sicht der Ansteuerelektronik am Steuersignal den Strom im Servo. Als Mess-Shunt fungiert dabei eine schlechte (zu hochohmige) Masseanbindung des Servos.
    Das könnte die gesuchte Erklärung des Effekts sein. Dann sollte man am Servo-GND auch eine Spannungsanhebung gegenüber dem ADC-GND messen können.

    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!

Seite 3 von 4 ErsteErste 1234 LetzteLetzte

Berechtigungen

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

12V Akku bauen