- Labornetzteil AliExpress         
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 32

Thema: Servo am asuro

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    06.05.2007
    Alter
    35
    Beiträge
    305

    Servo am asuro

    Hi leute,

    Ich will nur mal etwas mit einem/zwei servo(s) rumspielen, und hab hier irgendwo gelesen das man einen am asuro anschließen könnte.

    Da wo Con1/2 ist soweit ich weiss.
    Also wie funktioniert das genau? Und wie kann ich ihn dann ansteuern?

    Gruß
    Raz

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    37
    Beiträge
    5.091
    Wo du die Servos anschließt ist prinzipiell egal. Man schließt die Servos aber auf einen Anschluss mit Hardware PWM, sonst muss man mit Software PWM arbeiten. Du benötigst eine PWM mit ca 20ms und einen Puls zwischen 1 und 2 ms (Position).

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    06.05.2007
    Alter
    35
    Beiträge
    305
    Hätte ich soviel ahnung hätte ich schon gewusst wo ichs anschließ und wie ichs ansteuer, hab ich aber nicht.
    Ich will ja nicht mein ganzen asuro auseinandernehmen, und auch möglichst nicht die anderen funktionen beeinträchtigen, deswegen frag ich hier ja wie ich ihn am besten wo anschließ...
    Will ja keins von beiden kaputt machen

    Raz

  4. #4
    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

    Hardware-PWM ist für Servos nicht wirklich ideal:
    https://www.roboternetz.de/phpBB2/ze...ag.php?t=48204

    Ich würde die Servos an den LEDs anschliessen (Front, Status oder Back), mit Einschränkungen wäre auch ein Anschluss an den Linien- oder Odosensoren (oder gar am Tastenpin ;) möglich. Ansteuerung dann per Software-PWM, je nach Anwendung blockierend oder per ISR:
    https://www.roboternetz.de/phpBB2/ze...ag.php?t=44146

    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!

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    06.05.2007
    Alter
    35
    Beiträge
    305
    Aber wo schließ ich den PWM an? Wenn er software seitig ist garnicht oder wie?
    Er muss doch an irgend ein IO pin vom mega8 oder nicht?

    Gruß
    raz

  6. #6
    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

    Ich würde die Servos an den LEDs anschliessen
    ... meint selbstverständlich den PWM-Anschluss des Servos. Spannungsversorgung für die Servos kommt an Bat+/Bat- (oder externe Versorgung).

    Ein Beispiel: Anschluss an den Back-LEDs

    Die PWM-Leitung des Servos kommt an den gemeinsamen Punkt von T11, D15, R18 und PC1(Pin 24) für links, T12, D16, R20 und PC0 (23) für rechts. Hier (und an Vcc/GND) könnte man (isolierte) Drähtchen anlöten deren Enden man in die Servostecker stecken könnte (verzinnen). Das Programm dafür:
    Code:
    // Servoansteuerung mit Sleep() an BackLEDs (blockierend)             6.7.09 mic
    
    // Der drehbereich meiner Servos lag hier zwischen 15 und 90. Die Werte gelten
    // für eine 36kHz-Library. Bei Verwendung der orginalen 72kHz-Lib muss man die
    // Zeiten oder die Sleep()-Aufrufe verdoppeln!
    
    // (nicht getestet!)
    
    #include "asuro.h"
    
    int main(void) {
    
    	Init();
    	StatusLED(YELLOW);
    	while (1){
    		BackLED(ON,OFF); // Impuls Servo 1 on
    		Sleep(15);
    		// Sleep(15); // 72kHz
    		BackLED(OFF,ON); // Impuls Servo1 off, Servo2 on
    		Sleep(90);
    		// Sleep(90); // 72kHz
    		BackLED(OFF,OFF);  // Impuls Servo2 off, auf 20ms warten
    		Sleep(255);Sleep(255);Sleep(255);
    		//Sleep(255);Sleep(255);Sleep(255);  // 72kHz
    	}
    	return(0); // wird nie erreicht!
    }
    ich hoffe das funktioniert so halbwegs, ich kann es im Moment nicht selbst testen.

    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!

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    22.04.2011
    Beiträge
    16
    Hallo Radbruch,

    ich wollte fragen, wo genau am Asuro der gemeinsame Punkt von T12,D16,R20 und PC0 (23) ist?
    Ich Suche nun schon eine Weile, find aber nichts!
    Vielen Dank!

    LG

  8. #8
    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

    Wie weiter oben schon beschrieben ist das kein echter "Punkt", es ist vielmehr an allen Pins das selbe Signal. Beste Stelle zum Anzapfen des Signals wäre deshalb Pin 23 (PC0) am Mega8-Sockel für die rechte BackLed, bzw. Pin 24 (PC1) für die Linke (Mega8 vor dem Löten rausziehen!).

    Wenn man zusätzlich den PD7 auf Ausgang/Low setzt, blinkt die entsprechende BackLED mit dem an PC0/1 erzeugten Servosignal.

    Gruß

    mic

    https://www.roboternetz.de/community...?53073-Pin-PC0
    Geändert von radbruch (04.05.2011 um 18:44 Uhr) Grund: Link eingefügt
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    22.04.2011
    Beiträge
    16
    Ich habe die PWM-Leitung jetzt an PC0 gelötet und die BackLED ausgelötet, aber es passiert nichts, wenn ich den asuro einschalte. ich versuche das ganze mit folgendem programm:
    #include "asuro.h"

    int main()
    {
    int j=0;
    Init();
    while (1 == 1)
    {
    for (j=0;j<70;j++)
    {
    StatusLED (RED);
    BackLED (OFF,ON);
    Msleep (1);
    BackLED (OFF,OFF);
    Msleep (100);
    }
    for (j=0;j<70;j++)
    {
    StatusLED (YELLOW);
    BackLED (OFF,ON);
    Msleep (2);
    BackLED (OFF,OFF);
    Msleep (100);
    }

    }
    }

    eingentlich sollte der servo doch nun alle 7 sekunden von der einen extrem stellung in die andere fahren?!
    habt ihr eine Idee woran das liegt, dass er nichts tut?
    Vielen Dank!
    LG

    ich habe jetzt mal mit dem multimeter die spannung zwischen ic0 und masse gemessen, hier erhalte ich immer 7s lang 0,07V und 7s lang 0,11V, also müsste sich der servo doch bewegen?!
    Geändert von oliver123 (06.05.2011 um 17:36 Uhr) Grund: Neue Erkenntnis

  10. #10
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Die BackLED hätte auch drin bleiben können, sie stört bei der Servoansteuerung nicht. Je nach Doku sollte der Servoimpuls zwischen 0,5 und zwei Millisekunden lang sein. Meine Billigservos lagen immer bei etwa 0,5 bis 1,5ms. Der Impuls sollte alle 20ms wiederholt werden. Für eine Impulslänge von 1ms mit einer 36kHz-Library würden sich dann folgende Sleep()-Parameter aufdrängen:

    Sleep(36) als Impulslänge
    Msleep(19) als Pause

    50 Impulse würden dann 1 Sekunde dauern.

    Zum Testen einer Position kann man das Servo von Hand vorsichtig auf die jeweiligen Endpositionen drehen und dann mit dem Impuls ansteuern:
    http://www.youtube.com/watch?v=CaVxa6zH2bI
    Geändert von radbruch (06.05.2011 um 17:54 Uhr)
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress