Forum: Mikrocontroller und Digitale Elektronik Servo mit Frequenz steuern


von Josef (Gast)


Lesenswert?

Hallo Forum,

Ich würde gerne einen Servo über die Frequenz der Stimme steuern --> Um 
so höher die Stimme desto mehr dreht der Servo in eine Richtung und das 
gegenteilige wenn die Stimmfrequenz nieder ist soll er wieder zurück 
drehen.

Die kann ich das mit einen Atmega lösen ?


danke...

von Uwe (Gast)


Lesenswert?

Buhahahaha das muß man sich mal Bildlich vorstellen !
Wie kommt man auf son Scheiß ?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Uwe schrieb:
> Wie kommt man auf son Scheiß ?
Das frage ich mich bei deinem Post aber auch...

Josef schrieb:
> der Servo
Ist vermutlich so ein Modellbau-Servo, nicht eine Servo-Achse aus der 
Industrie?

> Die kann ich das mit einen Atmega lösen ?
Das ist gar nicht so einfach, weil "die Stimme" ein ausserordentlich 
komplexes Frequenzgemisch ist.

Ich würde eine AD-Wandler nehmen, 128 Samples aufzeichnen und dann eine 
FFT oder eine DFT drüber laufen lassen. Mit der daraus ermittelten 
höchsten Frequenz dann eine PWM für das Servo ausgeben...

von micha (Gast)


Lesenswert?

Mikrofon(Vorverstärker) -> digitalisieren(AD-Wandlung) -> FFT (Frequenz 
bestimmen) -> PWM für Servo

Schau mal bei ELM Chan (http://elm-chan.org/works/akilcd/report_e.html); 
dort findest Du ein Audio-FFT Beispiel; Wenn Du das 
verstanden/implementiert hast ist die Servo-Ansteuerung dann trivial :-)

von Josef (Gast)


Lesenswert?

Hallo,

Ja das ist ein einfacher Modellbau-Servo.
Werde ich gleich mal nachsehen, ich hoffe ich versteh das mit der FFT.
Hab ich noch nie gemacht!

Danke!

von Josef (Gast)


Lesenswert?

Gibt es wo eine gute Beschreibung für FFT (verwendung Atmega)

von Udo S. (urschmitt)


Lesenswert?

Lothar Miller schrieb:
> Ich würde eine AD-Wandler nehmen, 128 Samples aufzeichnen und dann eine
> FFT oder eine DFT drüber laufen lassen. Mit der daraus ermittelten
> höchsten Frequenz dann eine PWM für das Servo ausgeben...
Widerspruch: Du hast da immer ein Haufen Oberwellen drin. Ich würde den 
Grundton nehmen.
@Josef: Bevor du versuchst eine FFT zu verstehen und in einem 8 Bit µC 
zu implementieren, solltest du erst mal einen Modellbauservo über den µC 
ansteuern. Als ersten Versuch mit einem Poti am AD Wandler.
Danach kannst du anfangen Tonsignale auszuwerten.

von Josef (Gast)


Lesenswert?

@Udo

Ist schon vor mir und funktioniert super!

lg

von Mike J. (emjey)


Lesenswert?

Ich würde es so machen dass die Frequenz vom Mikro über einen 
Kondensator entkoppelt und dann mittels OpAmp verstärkt wird, so dass 
nur High/Low-Pegel am Ende rauskommen.
Dann baut man eine Ladungspumpe die mit der Frequenz betrieben wird, je 
höher die Frequenz desto mehr Strom fließt in einen kleinen Kondensator.

Über einen Entladewiderstand kann man dann die Spannung messen und der 
AVR kann aus der resultierenden Spannung das Servosignal (1-2ms lang / 
20ms Intervall) erzeugen.

von Udo S. (urschmitt)


Lesenswert?

Josef schrieb:
> @Udo
>
> Ist schon vor mir und funktioniert super!
>
> lg
Ok, das war bei der Frage nicht klar.

Was man versuchen könnte ist ähnlich wie Mike das schon angerissen hat 
einen analogen Frequenz Spannungswandler (F/U-Wandler) zu bauen. Da 
gibts diverse Beispiele im Netz, mit NE555, mit OPs usw.
Aber wie gesagt, was da dann rauskommt ist schwierig zu sagen, da 
Sprache nicht aus einem Ton, sondern aus einer Vielzahl von Frequenzen 
besteht.
Selbst wenn jemand versucht einen 'reinen' Ton zu singen hat der noch 
Oberwellen.
Versuch macht kluch :-)

von Gästchen (Gast)


Lesenswert?

Hi,

sowei ich weiß fahren Modelbauservos nahezu konstante Geschwindigkeit 
die nur gering mit der Versorgungsspannung variiert: mit PMW steuerst du 
nur die Richtung oder du kannst die Mittelposition anfahren. Da geht es 
um Drehmoment. Ein normales Elektromotörchen wäre hier sinnvoller da du 
hier die Drehzahl regeln könntest.
Jedenfalls diesen Punkt mit Geschwindigkeit checken bevor du dir so 
einen Servo bestellst.

PS: Aber sicher würde ich so etwas in Aktion sehen: LOL.

Gruß.

von Josef (Gast)


Lesenswert?

@Gästchen

Das Ergebniss sieht so aus:

Auf dem Servo ist eine Led montiert die auf ein Plexi leuchtet, auf dem 
Plexi ist eine Skala von 0-10 graviert. Wenn nun Jemand davor steht soll 
er einen Ton von sich geben. Um so höher (Frequenz) der ton um so höher 
leuchtet die Led auf die Skala.

Später möchte ich gerne das mit einem Laserponiter machen der auf eine 
Mauer zeigt.

von Ernst B. (puravida)


Lesenswert?

Gästchen schrieb:
> Hi,
>
> sowei ich weiß fahren Modelbauservos nahezu konstante Geschwindigkeit
> die nur gering mit der Versorgungsspannung variiert: mit PMW steuerst du
> nur die Richtung oder du kannst die Mittelposition anfahren. Da geht es
> um Drehmoment. Ein normales Elektromotörchen wäre hier sinnvoller da du
> hier die Drehzahl regeln könntest.
> Jedenfalls diesen Punkt mit Geschwindigkeit checken bevor du dir so
> einen Servo bestellst.
>
> PS: Aber sicher würde ich so etwas in Aktion sehen: LOL.
>
> Gruß.

Mit der PWM steuert man nicht die Richtung sondern die Position. Egal 
welche Position, nicht nur die Mittenposition.

Die Geschwindigkeit läßt sich bei einem Modellbauservo auch regeln, ist 
nur eine Frage der PWM über die Zeit von IST-Position zu SOLL-Position.

LG

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Udo Schmitt schrieb:
>> der höchsten Frequenz dann eine PWM für das Servo ausgeben...
> Widerspruch: Du hast da immer ein Haufen Oberwellen drin.
> Ich würde den Grundton nehmen.
Korrekt. Ich auch...  ;-)

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Das Thema Stimmen-Grundfrequenz bestimmen hatten wir gerade:
Beitrag "Grundfrequenz einer Sprachdatei bestimmen"

von Udo S. (urschmitt)


Lesenswert?

Gästchen schrieb:
> sowei ich weiß fahren Modelbauservos nahezu konstante Geschwindigkeit
> die nur gering mit der Versorgungsspannung variiert: mit PMW steuerst du
> nur die Richtung oder du kannst die Mittelposition anfahren. Da geht es
> um Drehmoment. Ein normales Elektromotörchen wäre hier sinnvoller da du
> hier die Drehzahl regeln könntest.

@Gästchen:
[ ] Du weisst was ein Modellbauservo ist und wie man ihn ansteuert :-)

@Josef: Es kommt jetzt darauf an was du lieber machst, basteln oder 
programmieren.
Wenn programmieren, dann kannst du es mit einer möglichst einfachen FFT 
Auswertung versuchen. Die niedrigste Frequenz ist dann wichtig.
Wenn Basteln, dann einen einfachen Frequenz/Spannungswandler bauen. Der 
muss für das Spielchen ja keinerlei besondere Anforderungen bzgl. 
Linearität oder Genauigkeit erfüllen.
Christoph: Da kann sich Josef ja mal einlesen, aber für seine Anwendung 
dürfte das eine Nummer zu aufwendig sein.

von GroberKlotz (Gast)


Lesenswert?

Hallo Josef,

lass Dich nicht abschrecken, schau einfach mal auf diese Seite. 
[http://www.sprut.de/electronic/pic/16bit/dsp/fft/fft.htm]
Da werden die Grundzüge der FFT recht verständlich erläutert.

Gruss
GroberKlotz

von Josef (Gast)


Lesenswert?

Guten Morgen (war ne lange Nacht)
aber jetzt funktioniert es. Ich Habe mir einen Mikrofonverstärker 
aufgebaut und geh mit dem Pegel (0-2,5V) auf einen ADC Eingang vom 
Atmega8. Die FFT gebe ich an der RS232 aus und das ist schon sehr 
brauchbar.

Nun habe ich noch eine Frage, wenn ich Pfeife so bekomme ich bei 
ca.1,2Khz das Signal. Wenn ich laut Pfeife so sehen ich dass Pfeifen 
fast 3mal am Spektrum (schwächer als das als die erste kurve). Ist das 
dass Echo vom Raum ? Gibt es eine Methode wie ich das weg rechnen kann ?

Danke Josef

von Anja (Gast)


Lesenswert?

Josef schrieb:
> Nun habe ich noch eine Frage, wenn ich Pfeife

Was machst Du eigentlich wenn das Servo in den Pausen wo Dir die Luft 
ausgeht dagegenpfeift?

Gruß Anja

von Anja (Gast)


Lesenswert?

Josef schrieb:
> Ist das
> dass Echo vom Raum ?

Sind vermutlich Oberwellen weil dein Verstärker übersteuert.
-> ALC einbauen.

Gruß Anja

von Gästchen (Gast)


Lesenswert?

Udo Schmitt schrieb:
> @Gästchen:
> [ ] Du weisst was ein Modellbauservo ist und wie man ihn ansteuert :-)

Ja ich weiß was ein Modellbauservo ist, eins für 200€ (BLS152) liegt auf 
meinem Tisch.

Sonst noch Fragen?

von Carsten W. (Gast)


Lesenswert?

.... man braucht doch keine FFT.
Bissch'n Tiefpassfilter, vielleicht auch analog.

Tiefpassfilter,
Nulldurchgangsschalter
Hysterese
sind 10 Zeilen Code.

Dann nochmals 10 für die Frequenzauswertung.

von I <3 technik (Gast)


Lesenswert?

Hallo,

ich habe auch noch mal eine frage zu dem Thema allerdings im etwas 
weitergedachtem sinne:

meine idee ist es ein ton mit einer bestimmten frequenz zu erzeugen dei 
es mit pc oder sowas und diesen ton über gsm also handy netz zu 
übertragen(durch einen bestehenden anruf) an ein anderes handy zu 
übertragen, und an den handy lautsprecher den chip anzuhängen der die 
ton frequenz des gesendeten tons erkennt und dann zb einen servo motor 
ansteuert. für verschiedene motoren verschiedene frequenzen versteht 
sich. Dadurch könnte man zb ein modellflugzeug mit unbegrentzter 
recihweite steuern.

doch die frage ist was das für ein chip sein muss der die entsprechenden 
frequenzen ermittelt und davon ausgehend die servos ansteuert?

gerne rückmeldungen und kommentare zur idee oder lösung... :)

von Heinz (Gast)


Lesenswert?

> ich habe auch noch mal eine frage zu dem Thema allerdings im etwas
> weitergedachtem sinne:

Probleme mit der Tastaur - oder bist du nur zu faul einen anständigen 
Beitrag zu schreiben?

von Karl H. (kbuchegg)


Lesenswert?

I <3 technik schrieb:

> doch die frage ist was das für ein chip sein muss

Paprika. Eindeutig Paprika-Chips.

Klassische Chips oder die mit Zwiebeln funktionieren nicht so gut.

von I <3 technik (Gast)


Lesenswert?

Heinz schrieb:
>> ich habe auch noch mal eine frage zu dem Thema allerdings im etwas
>> weitergedachtem sinne:
>
> Probleme mit der Tastaur - oder bist du nur zu faul einen anständigen
> Beitrag zu schreiben?

Ja das liegt an der Tastatur vom Handy ;)



Karl Heinz Buchegger schrieb:
> I <3 technik schrieb:
>
>> doch die frage ist was das für ein chip sein muss
>
> Paprika. Eindeutig Paprika-Chips.
>
> Klassische Chips oder die mit Zwiebeln funktionieren nicht so gut.

Ja schön darauf wär ich auch noch selber gekommen ...
Hat noch einer ne vernünftige Antwort ?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Du könntest die Touch Töne des Telefons ( DTMF ) benutzen und diese mit 
z.b. dem alten Schlachtross MT8870 auswerten. Aber das für ein Flugzeug 
zu nehmen , geht einfach nicht , denn
1. Du musst ja oft mehrere Servos gleichzeitg im Griff haben,z.B. 
Drossel und Höhenruder , während die Querruder gebraucht werden usw. . 
Jeweils nur einen Kanal zu steuern, hat den garantierten Absturz zur 
Folge.

2. Ohne optische Rückmeldung und mit den Verzögerungen des GSM Netzes 
kannst du ein Flugzeug nicht steuern. Hast du jemals probiert, mit dem 
Auto eine Schlaglochstrasse zu fahren und immer eine Sekunde zu warten, 
bevor du gegenlenkst ? Geht nicht und ist für die Umgebung sehr 
gefährlich.

von I <3 technik (Gast)


Lesenswert?

ja schon, aber bei einem bestehendem telefonat ist garkeine oder 
minimale verzögerung vorhanden oder? und kann man nicht mit multiplexing 
arbeiten ? dann könnte man ja mehere töne senden... ? ja das mit dem 
flugzeug war vielleicht zu weit gedacht da man ja keine livebild 
übertragung hat ,aber es geht eigentlich nur ums prinzip :)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.