- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 9 von 9

Thema: AX-12+ Servo ansteuerung

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2004
    Ort
    Aschbach
    Alter
    36
    Beiträge
    223

    AX-12+ Servo ansteuerung

    Anzeige

    Powerstation Test
    Hi Leute,


    ich versuche die letzte Zeit einen AX.-12+ Servo anzusteuern leider ohne Erfolg. Ich nutze die UART library von Peter Fleury jedoch bewegt sich der Servos kein Stück.
    Zum testen habe ich die TXD Leitung des Atmega32 auf die Data Leitung des AX-12 gehängt und ein Example aus dem AX-12 Datenblatt benutzt, dass die LED einschalten soll. Hat jemand Erfahrung mit dem AX-12 oder könnt ihr mir ein Tipp geben, warum dies nicht gehen könnte.


    Code:
    int main(void) {
    		
    uart_init(UART_BAUD_Select(1000000UL, F_CPU));
    
    sei();
    
    
    	uart_putc(0xff);
            uart_putc(0xff);
    	uart_putc(0xfe);
    	uart_putc(0x05);
    	uart_putc(0x03);
    	uart_putc(0x18);
    	uart_putc(0x01);
    	uart_putc(0x01);
    	uart_putc(0xdd);
    
    
    return 0;
    }


    Gruß,
    Sven

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

    Mach mal ein while(1); vor das return 0; denn sonst wird main() beendet und der Mega32 stürzt ins Nirwana bevor der USART etwas senden kann.

    Wenn das nicht hilft solltest du uns zumindest den Link zum Datenblatt des Servos anbieten...

    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. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2004
    Ort
    Aschbach
    Alter
    36
    Beiträge
    223
    Die while schleife hatte ich schon davor aber nochmal versucht leider ohne Erfolg.

    Das Datenblatt hatte ich ganz vergessen, hier der Link: http://www.crustcrawler.com/products...docs/AX-12.pdf

  4. #4
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Danke :) Ich hab' keine Ahnung wieviele Datenblätter ich inzwischen schon gesucht habe.

    Schau dir mal das Anschlußbeispiel auf Seite 7 an. Ich habe mir das Protokoll noch nicht angeschaut, aber ich befürchte, du mußt senden UND empfangen können. Das dürfte nur am TXD-Pin schwierig sein. Allerdings kenne ich die Fleury-Lib nicht, möglicherweise kann die eine Halbduplex (-immer nur einer sendet) -Funktion. Da es ein serieller Bus ist werden die Servos wohl eigene IDs haben. Ich muss mich erst etwas einlesen, das scheinen mir recht exotische Servos zu sein.

    Gruß

    mic

    [Edit]Ojeoje. Du bist ja Profi in Sachen Servo und serielle Busse. Ich bezweifle, dass ich etwas finde was du nicht erkennst :(
    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 Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Bad Bramstedt
    Alter
    45
    Beiträge
    1.369
    Hi zusammen,

    da ich mich auch für das programmseitige Ansprechen der AX-12 Servos interessiere, frage ich einfach mal nach ob es schon neue Erkenntnise gibt?

    Hast Du einen 74HC126D zwischen RXD und TXD + steuerleitungen gesetzt- oder kann man das halfduplex auch Software seitig beibringen?
    ( Bildsuche: CM-5 Schematic ) Mega128A - TTL Level half duplex.

    Hast du GND des Mega32 mit GND des AX-12 verbunden?
    - wenn nicht, dann solltest du das tun. Ich habe zwie LiPO's einen für den CM-5 Controller und einen für die Servos ging auch erst nicht weil ich Masse nicht verbundne hatte

    Da die Servos in der Tat jeweils eine eigene ID habe, sollte entweder ein Broadcastbefehl(ID 254) zum LEDRegister(25) gesendet werde, oder die ServoID pauschal über einen Broadcastbefehl in eine bekannte ID geändert werden oder die ID des Servos schon bekannt sein.
    Der Broadcastbefehl spricht alle ID's im Netzwerk an, aber erwartet keine Bestätigung eines Servos.

    Datenblatt des 74HC126D:
    http://www.datasheetcatalog.org/data...lrua0lycfy.pdf

    Link in Robosavy Forum für Bioloid's:
    http://robosavvy.com/forum/viewforum.php?f=5

    Sonst hab ich nur noch ne Lib - dazu kann ich Dir aber auch sonst nichts weiter sagen:
    http://www.dualpob.com/docs/html/files.html

    Vielleicht hilf Dir das weiter falls Du es noch nicht besucht hast.



    mfg

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2004
    Ort
    Aschbach
    Alter
    36
    Beiträge
    223
    HI Hexplorer,

    der 74HC126 ist verbaut, wie es in der Schaltung der Doku beschrieben ist. Es sollte auch softwareseitig machbar sein, doch wollte ich dies nicht über dies Software lösen.
    Auch GND ist verbunden und sollte funktionieren. Hba glaub ich auch schon jedes Forum abgesucht, indem ich was darüber gefunden habe. Wenn du dich auch für die Ansteuerung interessierst, könne wir vllt auch zusammen daran entwickeln?


    Mfg

  7. #7
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Bad Bramstedt
    Alter
    45
    Beiträge
    1.369
    Hi Sven04,

    es gibt hier mindestens einen User der es schon gemacht hat über einen fremden Controller (AVR32) ca. 18St AX-12 anzusteuern und zumindest je eine Soll-Servopositionen anzufahren. Von ihm weiß ich auch das dieser 74HC126 da mit ran muß und nicht schon im MCU drin ist - wer weiß ob ich das jemals selbst gesehen hätte.
    Und jemand anderes wollte mit Bascom das Bioloid-Protokoll verwenden.
    Ich frage gelegentlich mal nach wie der Stand der Dinge ist.

    Mein Bioloid-Roboter wird gerade leider immer noch über den Behavior Prorgammer und Motion-Editor programmiert, weil ich den CM-5 immer noch nicht in C programmieren kann.

    Ich habe zusätzlich den RP6 um mir darauf die Vorgänge im C-programmieren anzusehen und zu lernen, aber so richtig bin ich noch nicht dabei.
    Daran wollte ich auch einen AX-12 ausprobieren, aber soweit bin ich noch nicht.
    Leider kann ich Dir Softwareseitig noch überhaupt nicht wirklich helfen, was das entwickeln einer Ansteuerung ziemlich einseitig machen würde.
    Da das nicht meiner Vorstellung von "gemeinsam zusammen" entspricht und ich mir dann ziemlich mies vorkommen würde, kann ich leider nur hoffen das Du gelegentlcih einige Infos hier preis geben wirst ob und wie Du das Problem gelöst hast.

    Möglicherweise liegt der Fehler in der Packetform die Du benutzen möchtest, denn für mich sieht es aus als sendest du jeweils alles einzelnt, aber es sollte ein zusammen hängendes Packet sein. Ich weiß allerdings auch nicht ob man das so schreiben muß...


    mfg
    EDIT: 0xfe = 254 (erst denken, dann schreiben )

  8. #8
    Neuer Benutzer
    Registriert seit
    02.12.2007
    Ort
    Hochdorf, Schweiz
    Alter
    45
    Beiträge
    4
    Hi Sven

    Ich antwort mal hier in deinem Thread:
    Ich selber habe die AX-12 mit einem AVR32 am laufen (Hinweis: ist nicht das gleiche wie ein Atmega32)
    Die Ansteuerung läuft wie im Manual beschrieben mittels dieser Umschaltung mit dem 74HC126D.
    Hinweis: nicht benötigte Pins (ausser 8 und 11) an GND hängen und zur Sicherheit hab ich noch ein 47Ohm Widerstand in der Datenleitung. Und nicht vergessen, dieser Baustein braucht eine Versorgung! Also Pin 7 an GND und Pin 14 an +5V

    Zu beachten ist, dass die Baudrate auch Sinnvoll ist (Quarzabhängig). Bei mir läuft das ganze zurzeit mit einer Baudrate von 500000

    Kannst du die Servos auch ohne Schaltung ansteuern? Commandos kannst du auch ohne diese Schaltung senden!

    Gruss
    Ivo

  9. #9
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Bad Bramstedt
    Alter
    45
    Beiträge
    1.369
    Zitat Zitat von Sven04
    Hi,

    ich habe gelesen, das jemand die AX-12+ auch mit einem AVR32 angesteuert hat und finde die Idee eigentlich super, da auch noch genug Resourcen da sind, um IK zu implementieren. Nun wollte ich mal wissen, mit welcher Baudrate die Servos vom AVR32 aus angesteuert werden und ob es auch noch detailiertere Beschreibungen zum Aufbau der Hardware und der Software gibt?

    Gruß,
    Sven
    Hi,

    ja das wäre sicherlich interessant.
    Furioso hat es oben doch hier geschrieben.


    mfg

Berechtigungen

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

Labornetzteil AliExpress