PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Servo PWM aus der Soundkarte



vohopri
06.05.2007, 14:52
Hallo,

hab mal versucht, ein PWM Servo Signal für ein Standard Modellbau Servo mit dem PC zu erzeugen und über die Soundkarte aus zu geben.

Und siehe da: Es funktioniert.

http://www.jbergsmann.at/screen.GIF

Ein delphi Programm erzeugt mit waveout die Signale. Dazu braucht es keine fremden Komponenten und keine fremde dll.

http://www.jbergsmann.at/soundcard-servo-interface-schaltbild-500.GIF

und ein Interface präsentiert sie dem Servo. Das dreht dann entsprechend.

grüsse
Hannes

Jon
06.05.2007, 15:02
Sieht gut aus!
Wie hast du das PWM Signal mit der Soundkarte hergestellt? Das hört sich irgendwie kompliziert an.

jon

vohopri
06.05.2007, 15:21
Die Signale werden über die Wave Audio Funktionen des Windws API generiert. Das ist gar nicht kompliziert. Diese Funktionen sind in der msdn library von Microsoft dokumentiert und von Delphi, VB, C++ und anderen Sprachen nutzbar.

Hannes

radbruch
06.05.2007, 15:34
Sehr nett. Servos sind echt univerell ansteuerbar. O:)

vohopri
06.05.2007, 15:37
Joo und vor allem sehr billig - zumindest zur Zeit.

Hannes

PicNick
06.05.2007, 15:39
@vohopri: Ich nehme an, 8-Bit Mono reicht ? Welche Sample-rate nimmst du ?

Jon
06.05.2007, 15:39
Hast du damit eigentlich noch mehr vor oder ist das nur ein "So aus Spaß" Kleinprojekt?

jon

vohopri
06.05.2007, 16:16
Ja, MONO reicht.
8 bit reichen auch, feiner braucht die Impulshöhe nicht eingestellt zu werden.
Sampling rate hängt davon ab, welche Auflösung du haben willst. Bei 44100 löst du den bereich von 1ms (1ms bis 2ms) in Schritten von rund 0.02 ms auf.

Vor habe ich gar nichts, sondern ich bin der Lust auf Basteln hilflos ausgeliefert. Nein im Ernst: Mein nächstes Programm erzeugt bereits PPM für 2 Kanäle. Wenn ich Zeit finde, werd ich mir ein Interface dafür zusammen braten. Und dann, ja dann werden wir sehen. Denkbar ist vieles und die verfügbare Zeit ist kanpp. Der Spass und die Neugier sind das Wichtigste dabei.

Hannes

PicNick
06.05.2007, 16:23
Danke für die Info.
Interessant wäre es doch, mit dem anderen Kanal eine multiplexer zu synchronisieren, damit man mehrere Servos steuern kann ( a la RC Anlage)

Keksdose
06.05.2007, 16:35
Mich würde ja der Delphi Quelltext interessieren. Kannste den evtl. mal hier reinstellen oder mir schicken ?

vohopri
06.05.2007, 16:56
@ robert:
Wie du das mit Multplex über den anderen Kanal meinst kann ich grad nicht nach vollziehen. Multiplex betreibe ich lieber - so wie beschrieben- über ppm. Die Fernsteueranlagen machen das auch so. Der Vorteil ist, dass ich nicht nur 2, sondern 10 bis 20 Servo Kanäle realisieren kann und die über einen einzigen HF oder IR Kanal übermitteln kann.

@ Thomas:
Sourcefile veröffentliche ich nicht. Über details kann man sich immer unterhalten und die Quelle für die Grundlagen habe ich ja weiter oben genannt.

grüsse,
Hannes

Keksdose
06.05.2007, 17:02
hm schade is doch ne schöne bastelei find ich. Wieso willste den Quelltext denn nicht veröffentlichen ? Schaltplan haste doch auch veröffentlicht ? Was spricht denn dagegen ?

vohopri
06.05.2007, 19:46
Thomas,

du brauchst dafür keinen fremden Quelltext. Das ist einfach und schnell programmiert. Es handelt sich um dokumentierte API Funktionen. Da brauchst du nicht mal viel nach zu denken.

grüsse,
der Vohopri

raoul4
07.05.2007, 20:12
Das ist wie in der Schule. Abschreiben bringt dir rein garnichts. Also selbst ist der Mann bzw. die Keksdose ;)

Keksdose
08.05.2007, 00:12
Nur weil ich einen kurzen blick auf den code werfen wollte wird mir gleich unterstellt ich wollte abgucken. Ich guck gerne code anderer leute an einfach nur so aus spaß und daraus lernt man auch ;)
Ich kann bereits ziemlich gut delphi (siehe programme auf meiner HP) und zu denen wo es noch quelltext gibt (mir ist leider auch schon welcher abhanden gekommen) kann man sich den da auch runterladen.
Also nur ums klarzustellen: Ich wollts nur angucken und nicht nachbauen oder abgucken oder sagen ich hätts gemacht. Sowas macht man einfach nicht und das sollte jedem klar sein ;)

vohopri
08.05.2007, 17:44
Hallo Thomas,

ich würde den scherzhaft - ironischen Kommentar vom Abschreiben nicht so bitter ernst nehmen. Hast du den Zwinkersmily von raoul übersehen? Ich persönlich nehme mal an, dass du echtes Interesse an den Themen hast und an deiner Website hab ich gleich gesehen, dass du ein aktiv schöpferischer Mensch bist.

Die Grundlagen über die verwendeten API Funktionen erfährst du aus der msdn library besser als aus dem Code eines Sonntagsprogrammierers. Und allfällige konkrete Fragen diskutiere ich hier herzlich gerne. Da du vor allem lernen willst, wird dir dieser Weg sicher auch recht sein.

grüsse,
Hannes

vohopri
19.06.2007, 17:04
Hallo,

es gibt ein Versionsupdate:

http://www.jbergsmann.at/Soundcard-to-servo-inteface.GIF

Diese Verbesserte Variante kann einen breiteren Bereich unterschiedlicher Eingangsspannungen verarbeiten. Und das ohne, dass der Eingangsspannungsteiler verstellt werden muss.

Und weil das oft ein Thema ist: Es ist absolut kein Jitter sichtbar, hörbar, spürbar.

Grüsse,
Hannes

vohopri
08.06.2009, 13:58
Hallo,

Kollege Pilotzi hat per PN eine Anfrage gestellt und ich bin sicher, er hat nichts dagegen, wenn ich ihn hier zitiere und die Antwort hier schreibe. Ich denke thematisch passt das perfekt und wer Lust hat, kann mitlesen oder auch eigene Fragen beitragen.


... das du viel vom PC ansteuerst. Nun frage ich mich wie du die PWM per Software über die Soundkarte machst, denn du brauchst doch normalerweise für die Stromversorgung der Servos den gleichen Stromkreis wie für das PWM signal. ...

Die Antwort ist, dass das keineswegs der selbe Stromkreis sein muss. Beim rc Standardservo sind 3 Anschlüsse herausgeführt:
Masse, Signal und Stromversorgung.

Eine beliebige Stromversorgung mit passender Spannung (Flachbatterie, Steckernetzteil, usw.) legst du an Masse und Stromversorgung vom Servo.

Die Masse wird zusätzlich noch mit der Interfacemasse verbunden und der Signaleingang geht auf Interface Ausgang.

Weiters geht Interfacemasse an den Masseanschluss des Lineoutkabels vom Computer, und der Interfaceeingang geht an die Signalleitung des Lineout.

Die Interfaceschaltung ist gleich hier oben abgebildet.

Ich hoffe, dass das die Frage beantwortet, sonst bitte nochmals nachfragen.

grüsse,
Hannes

Richard
08.06.2009, 18:42
Moin moin Hannes.

Ich weiß Du magst es nicht besonders wenn eine Zwischenfage " in Deinem
Thread gestellt wird.

Es währe aber sehr nett von Dir wenn Du, auch gerne in einem eigenen
Thread, einmal auf die Soundkarten Ein/Ausgänge eingehen könntest.

Wer will sich schon seine Soundkarte "abschießen". :-(

Danke, Richard

vohopri
08.06.2009, 19:28
Hallo Richard,

doch ich mag Zwischenfragen.

Und ich bedanke mich für die Frage. Sie passt eigentlich auch recht gut gleich hier rein, wo es ums Grundsätzliche geht.

Was die Soundkarte verträgt, steht in der Gebrauchsanleitung.

Ich achte drauf, dass die Eingangsspannung nicht mehr als 1 V wird. Der Eingang hat ohnehin eine Spannungsbegrenzung, wenn man die in Anspruch nimmt, muss man aber zumindest den Strom begrenzen. Eine Strombegrenzung kann ein kleiner Kondensator oder ein grosser Widerstand sein. Ausserdem achte ich drauf, dass keine Gleichspannungsbelastung auf dem Eingang liegt.

Beim Line Out schalte ich immer ein Interface dazwischen. Das sind dann meistens nur 2 Transistoren und wenn man dann doch einmal unvorsichtig ist, hat man einen Schaden von 5 Cent. Das Interface verwende ich oft auch als Impulsformer. Durch Übersteuerung eines Transistors wird der Impuls, der aus der Soundkarte abgerundet rauskommt wieder schön eckig.

Da ist mir noch nie etwas passiert, aber ich kann nur empfehlen, bei dem, was man tut, auch konsequent mit zu denken. So weit, so allgemein, aber vielleicht gibt es noch speziellere Fragen.

grüsse,
Hannes

Richard
08.06.2009, 21:58
Moin moin Hannes.

Bedienungsanleitung iss guut, ich weiß nicht einmal ob bei meiner 5..6
Jahren alten aldi Kiste eine dabei war b.z.w. wie weit diese ins Deteil
geht. 1 V ss ist Videonorm für Audio habe ich nie so echtes Interesse
aufbringen können. Eine DC Trennung mittels eines C sollte sinnvoll
und recht einfach sein, etwas aufwändiger ist da schon die Eingangsspannung
begrenzung. Optimal währe da eine automatische Spannungsbegrenzug
dann aber mit Anzeige damit Menschmitbekommt wann das Eingengssignal
verfälscht wird. Obwohl beim Okar sieht man es ja auch auf dem Bildschirm.

Optimal währe ein Fed Eingangsverstärker mit wie beim Oskar 20 Mohm
Eingangswiderstand. Ich habe hier noch Originalschaltplähne von meinen
alten 2 * 50 MHz HM 512, muß ich mir tatsächlich mal näher ansehen.
Das ist alles noch "zu Fuß" = diskret aufgebaut und sollte sich abkupfern
lassen.

Gruß Richard

vohopri
09.06.2009, 06:56
Hallo Richard,

Das ist unnötig viel Aufwand.

Ein Softwareoszi mit seinem bescheidenen Frequenzgang ist kein Messgerät und wird durch einen aufwändigen Eingangsverstärker keines werden.

Was ich oft mache ist:
Frequenzmessung, Drehzahlmessung, Servoimpulse beurteilen, PPM (rc Multiplex) beurteilen, PWM Signale beurteilen.
Das geht alles PERFEKT, denn die Zeitachse ist doch sehr genau.
Ausreichend gut geht noch das Einstellen von Arbeitspunkten und der Linearität im unteren bis mittleren Audiobereich.

Dafür brauche ich, wie gesagt - abhängig von der Anwendung - nicht mehr als:
Spannungsteiler, Koppelkondensator, Koppelwiderstand.

grüsse,
Hannes