Servo ansteuern



  • Hallo zusammen,
    ich bin mir nicht sicher, ob ich hier mit meiner Frage richtig bin.

    Ich habe eine grundsätzliche Frage zur Ansteuerung eines Servos aus dem Modellbau. Ich nutze als I/O-Modul ein USB-gesteuertes Interface (CompuLab). Dieses Modul besitzt einige digitale Ausgänge, dich ich steuern kann. Also das Interface ist kein Problem.
    Jetzt möchte ich für ein Projekt ein Servo über die digitalen Pins steuern. Hierbei geht es um lediglich 5V, die über solch einen Pin ausgegeben werden. Ich habe im www gelesen, dass man ein Servo über ein sog. PWM-Signal ansteuern soll. Nur bin ich nicht ganz schlau daraus geworden. Ich interpretiere das so:
    Das Servo soll auf dem Pluspol über eine bestimmte Zeit mit 5V angesteuert werden um sich zu bewegen. Wie man lesen kann, totaler Anfänger auf diesem Gebiet.
    Hat jemand bereits so etwas mal realisiert?

    Gruß
    Torsten



  • Hallo,

    also im Prinzip geht das mit dem C++ Builder und an USB angeschlossener Hardware. Aber nicht ganz so, wie du das beschrieben hast.

    Zum Thema Servos schau vielleicht mal hier
    http://rn-wissen.de/wiki/index.php/Servos

    Damit sind wir beim Problem. Man könnte so ein PWM-Signal theoretisch mit einem digitalen Ausgang erzeugen, aber dann müsste man so ein Signal zeitlich sehr präzise schalten. Da geht es schon in Richtung Mikrosekunden, nicht Millisekunden. Kurz: Das kann der PC nicht.

    Statt einem I/O-Modul musst du einen Mikrocontroller nehmen, der hat intern spezielle Hardware die solche Signale erzeugen kann.

    Im Normalfall muss dazu ein Programm für den Controller geschrieben werden, was im allgemeinen Fall etwas Einarbeitung erfordert.

    Es gibt aber heute auch einfache Lösungen, wo man nicht so tief in die Programmierung einsteigen muss:

    Die bekannteste ist Arduino
    http://arduino.cc/
    da gibt es auch Infos zu PWM und Servos
    http://arduino.cc/en/Reference/AnalogWrite
    http://arduino.cc/en/Reference/Servo

    Etwas professioneller ist mbed
    http://mbed.org/platforms/
    auch wieder mit Doku zu PWM und Servo
    http://mbed.org/handbook/PwmOut
    http://mbed.org/cookbook/Servo

    Ich schrieb oben "normalerweise muss man die programmieren". Es gibt aber auch die Möglichkeit eine Art "Befehlsinterpreter" auf den Controller zu laden. Dann kann man vom PC einfach Befehle senden, um auf dem Controller entsprechende Vorgänge auszulösen.

    Bei Arduino ist das Firmata
    http://arduino.cc/en/reference/firmata
    bei mbed RPC
    http://mbed.org/users/mbed_official/code/mbed-rpc/



  • Hallo,

    vielen Dank für diese hilfreichen Infos. Das es nicht so einfach wird hatte ich mir bereits gedacht. Da ich mich mit dem Bereich "Automation" etwas näher beschäftigen möchte, bin ich auch schon auf das Arduino gestoßen. Dieses scheint ja weit verbreitet zu sein und somit wird es wohl eine große Unterstützung dazu geben.
    Ich werde mich mal näher mit Arduino beschäftigen...
    Dazu eine Frage: Da es ja unterschiedliche Arduino-Boards gibt, welches währe für diesen Zweck das richtige?

    Viele Grüße
    Torsten



  • Erst mal etwas einfaches. Der Uno sollte für den Anfang reichen, alternativ der Leonardo, damit kann man auch eine USB-Maus oder Tastatur simulieren, das ist vielleicht auch manchmal nützlich.

    Wenn man für den PC C++ programmiert, kommt einem die Arduino IDE und die Programm winzig vor. Da kann man sich leicht hereinfinden.

    Die oben verlinkte andere Plattform arbeitet im einfachsten Falle mit einer browserbasierten IDE. Die kann man sich auch erst einmal so ansehen. Allerdings ist mbed modernere 32-Bit Technik mit 3,3 V Logik. (Manche, nicht alle, Rechner vertragen aber 5 V an den Eingängen.)

    Aber mbed ist echtes C++, da gehen Sachen wie std::vector usw. Arduino ist zwar auch C++ aber ohne Standardbibliotheken, die machen auf 8 Bit Rechnern auch nicht viel Sinn.


Log in to reply