mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PWM-Erzeugung für Nichtswissende


Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ihr Mikrocontroller,

ich hab die Suche schon bemüht und viel Nützliches erfahren, leider sind 
viele Sachen für mich böhmische Dörfer.
Als erstes zu meiner Anwendung: ich entwickle gerade im Rahmen meiner DA 
für ein kleines Unfallgutachterbüro ein kostengünstiges 
Spurführungssystem für Crashfahrzeuge. Dafür wird eine induktive 
Spurführung verwendet,im Rahmen dieser sendet eine Lenkantenne ein 
Spannungssignal. Dieses wird mit einem Messystem aufgenommen und 
ausgewertet. Software hierfür kann noch gewählt werden (entweder Matlab, 
Simulink,o.ä.). Als Lenkung werden Servomotoren mit dem Lenkrad 
gekoppelt, für diese benötige ich das PWM-Signal. Das Messsystem hat 
digitale Ausgänge (TTL) und analoge Ausgänge (-10V bis +10V, 0,1A). Nun 
zu meiner Frage, kann man das PWM softwaremäßig erzeugen und über die 
Ausgänge ausgegeben oder brauche ich da noch zusätzliche Bausteine?
Wie schon geschrieben, das System soll günstig sein, im Fahrzeug wird ja 
auch was kaputtgehen. Verwendet wird hier ein kleines Notebook mit 
Flashspeicher und als Messystem dient das USB-AD16f von BMCM.
Ich kann mir vorstellen das die USB-Verbindung sicher nicht ideal ist, 
anders geht es aber erstmal nicht. Kann meinen Auftraggeber erst von 
anderen Sachen überzeugen wenn das hier scheitert. :(

Sorry für den langen Text, aber besser zuviel geschrieben als zu wenig.

LG
Steffen

Autor: Axel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Steffen,
wieso Not-book für das bischen Regelung.
Lässt sich mit einem AVR einfacher und rüttelfaster aufbauen.

Es gibt hier schon eine Menge Beiträge zu Servomotoren am AVR.
Das Analogsignal muss dann noch an die 0-5V des AVR angepasst werden.


Axel

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und das Anpassen ist das Problem, wenn ich nen Spannunsbereich von 20V 
auf 5V verkleinern muss und gerade das Wichtige im Bereich von -1V bis 
+1V passiert ist wahrscheinlich die Auflösung von so einem AVR nicht 
groß genug, oder irre ich mich da?
Falls ich irren sollte, kann man auch diverse PID-Regler, Beobachter 
o.ä. programmieren? Stecke da echt noch in den Kinderschuhen, sowas 
lernt man im Studium nicht wirklich.

LG
Steffen

Autor: Axel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn des Wichtige sich in diesem kleinen Bereich abspielt, musst Du das 
Signal in diesem Bereich eh verstärken.

Programmieren kann man auf dem AVR so ziemlich alles, matürlich aich 
kleine Regler.

Axel

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie jetzt Signal verstärken? Was gewinne ich damit wenn ich einen 
bestimmten Teil eines Signals verstärke, den Rest jedoch dann ausser 
Acht lasse? Oder raff ich das mit der Verstärkung jetzt nicht?
Also brauchen tue ich den ganzen Spannungsbereich, nur besonders wichtig 
für die Regelung wird denk ich mal der Bereich von -1V bis +1V sein, das 
wird sich aber erst bei den Tests zeigen wie sich die Spannung ändert.

Autor: DerWarze (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibt mehrere einfache Lösungen für das Problem.
Es ist ja möglich, ganz ohne Controller, spannungsgesteuerte PWM mit 
entsprechenden IC oder einer OPV-Schaltung zu bauen.
Wenn hauptsächlich der Bereich um den Nullpunkt der Spannung 
interessiert und der Rest des Bereiches weniger genau verarbeitet werden 
soll bietet sich ein nichtlinearer Verstärker an, ist aber nicht so 
simpel das genau und stabil hinzubekommen wenn man damit keine Erfahrung 
hat.
Die andere Variante wäre einen automatisch umschaltenden Verstärker zu 
nehmen (ähnlich den in automatisch umschaltenden DMM) was recht leicht 
genau zu realisieren ist.
Nur, wenn Dein Messystem sowohl TTL als auch analoge Ausgabe hat so 
verwende doch die digital ausgegebenen Werte. Controller mit PWM-Ausgabe 
+ Motortreiber dahinter und fertig.

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zitat: Nur, wenn Dein Messystem sowohl TTL als auch analoge Ausgabe hat 
so
verwende doch die digital ausgegebenen Werte. Controller mit PWM-Ausgabe
+ Motortreiber dahinter und fertig.

Also den digitalen Ausgang kann ich nicht direkt dazu verwenden sondern 
muss auf jeden Fall den Umweg über nen Controller machen? Wozu der 
Motortreiber? Ich dachte das PWM-Signal wird vom Servoempfänger direkt 
umgewandelt?
Ich merk schon das wird nicht einfach, abrer danke schonmal für die 
Hilfe.
Vielleicht geh ich mal nen Schritt zur Seite um vom Schlauch 
runterzukommen. :D

Steffen

Autor: Sinusgeek (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ich dachte das PWM-Signal wird vom Servoempfänger direkt umgewandelt?

Ups... - hier riecht es nach Missverständnissen...

Das liest sich, als ob Du ein Modellbauservo meinst.

In Deinem ersten Post ist aber von einem Servomotor die Rede. Dazu 
kommen Begriffe wie DA (Diplomarbeit), Unfallgutachterbüro, 
Spurführungssystem, Crashfahrzeuge, Crashfahrzeuge und Simulink. Das 
suggeriert nun wieder eine Ebene, auf der Modellbauservos nichts zu 
suchen haben. Servomotor_ und _Modellbauservo_ ist nämlich _Zweierlei 
und auch ein Servomotor (falls es ein DC-Motor ist) kann per PWM 
gesteuert werden. Die PWM von Modellbauservos ist zwar eine PWM, würde 
ich aber Servoimpuls oder Kanalimpuls nennen, um es klar von der 
Motor-PWM (also dem Takten des Motorstroms durch PWM) unterscheiden zu 
können.

~

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ne sind schon Modellbauservos, frag mich nicht wieso. Aber die Lenkung 
per Fernsteuerung funzt eigentlich recht gut. Nur soll das Ganze jetzt 
automatisiert werden. Es soll halt preislich im Rahmen bleiben, die 
Einzelkomponenten sollen günstig und schnell austauschbar sein usw. 
LowCost halt. ;)
Versprech ich mir zuviel von Allem? Ich bin halt kein Informatiker und 
kein E-Techniker und für das meiste was hier steht muss ich googlen 
und/oder Wikipedia besuchen.

Autor: Ing HTL (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>für ein kleines Unfallgutachterbüro ein kostengünstiges

Hoffentlich begutachten die nicht meine Zukünftigen Unfälle..

Autor: Sinusgeek (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gut, dann ist das mit den Servos geklärt. Wo genau ist da Dein Problem?

Die Servos werden über Impulse gesteuert, die sich etwa alle 20 ms 
wiederholen. Die mechanische Position (Sollwert), die das Servo anfahren 
soll, ist mittels Impulsbreite codiert. Üblich ist 1,5 ms für die 
Neutralstellung (Mitte), und 1,0 ms bzw. 2,0 ms für den Arbeitsbereich. 
Bei einigen Servos reicht der Arbeitsbereich von 0,7 ms bis 2,3 ms. Dein 
System muss also alle 20 ms einen Impuls erzeugen, dessen Impulsbreite 
die gewünschte Position definiert.

Dafür reicht eigentlich ein kleiner Mikrocontroller (z.B. 8-Bit-AVR), 
wobei ich jetzt nicht beurteilen kann, was der Controller sonst noch 
alles so machen muss. Ich habe Servoimpulse bisher immer auf AVR in ASM 
programmiert, das wird für Dich aber kaum die erste Wahl sein, wenn Du 
(beruflich oder hobbymäßig) weder aus der Informatikecke noch aus der 
Elektronikecke kommst.

~

Autor: steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie die Modellbauservos ansich funktionieren weiß ich ja auch schon. 
Mein Problem ist wie ich das Signal erzeuge.
Brauche ich zusätzlich noch einen Controller der das Signal erzeugt oder 
kann ich das über den Schlepptop machen und mittels der digitalen 
Ausgänge des Messsystems ausgeben?
Für nen Noob ist das alles ganz schön starker Tobac und nicht grad 
einfach sich da reinzufitzen.
Achso um die Kommentare bezüglich des Gutachterbüros mal nicht so im 
Raum stehen zu lassen. Dort wird grundlegende Forschung bezüglich 
Unfallhergängen, Kontrahentenbewegungen, Deformationen und 
Auslaufbewegungen betrieben. Allerdings wird sowas nicht immer unbedingt 
gefördert also wird mit z.T. simplen Methoden gearbeitet. ;)
Wenns mit nem Modellbauservo funktioniert warum dann was anderes und 
teureres nehmen?

gruß
Steffen

Autor: Sinusgeek (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Müsste ich vom PC aus Modellbauservos steuern, dann würde ich einen 
ATTiny2313 mit MAX232 und Baudratenquarz einsetzen und ein ASM-Programm 
schreiben, das per UART Kommandos empfängt, decodiert, und die 
Positionen der Servos ins Positionsarray schreibt. Im Hintergrund in 
einem Timer1-Compare-Interrupt werden dann die Servoimpulse reihum 
generiert. Auf einfachste Weise geht bis zu 8 Servoimpulse, mehr ist 
aber auch möglich. Falls Du dazu meine Hilfe wünscht, kannst Du mich ja 
anschreiben (Nick@gmx.de).

Betreffs Gutachterei: Ein Modellbauservo kann gut die Lenkung eines 
Modells betätigen, beim Original-Auto ist es hoffnungslos überfordert. 
Chrashtests mit Modellen halte ich für nicht aussagekräftig (um nicht 
"lächerlich" zu sagen).

~

Autor: steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was heisst hoffnungslos überfordert? Die Lenkung funktioniert mit zwei 
Servos, glaubs mir ruhig. Sind zwar keine großen Lenkwinkel möglich aber 
der Wagen soll ja auch mehr oder weniger nur geradeaus fahren. Und es 
werden keine Modelle verwendet sondern richtige Autos. ;) Einziges 
Problem derzeit, die Servos stellen erst bei ner bestimmten 
Fahrgeschwindigkeit, zumindest wenn der Wagen ohne Servolenkung ist. Man 
darf halt die Stellkraft solcher Servos, oder um bei der Sache zu 
bleiben Modellbauservos, gepaart mit nem passenden Hebelarm zum Lenkrad 
hin nicht unterschätzen.
Also brauch ich auf alle Fälle noch einen zusätzlichen Controller?! 8 
Kanäle brauch ich nicht, zur Zeit werden nur die zwei Servos für die 
Lenkung angetrieben, evtl. noch einer für die Notbremsung. Mal schauen, 
vllt. kommt noch einer fürs Gasgeben. Macht zusammen also 4 Kanäle, 
wobei zwei ja gleich sind, also eigentlich 3.
gruß
Steffen

Autor: Sinusgeek (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> glaubs mir ruhig.

Ob ich Dir das glaube, oder auf'm Bau fällt 'ne Schaufel um, wo ist der 
Unterschied. Ich brauche das nicht, daher ist mir das auch egal. Ich 
wäre nur nicht auf die Idee gekommen, ein normales Auto mit einem 
Modellbauservo lenken zu wollen. Da hätte ich schon einen 
DC-Getriebemotor in der Größenordnung eines Wischermotors eingesetzt. 
Ein Akkuschrauber-Antrieb mit nachgeschalteter Untersetzung käme wohl 
auch in Frage.

> Also brauch ich auf alle Fälle noch einen zusätzlichen Controller?!

Das kann ich nicht beurteilen. Ich weiß nicht, wie genau die 
Impulserzeugung mit einem WINDOWS- oder anderem 
Multitasking-Betriebssystem wird.

Ich würde (zur Servoimpulserzeugung) die Mittel einsetzen, mit denen ich 
umgehen kann und die geforderte Genauigkeit garantieren kann. Und dies 
wäre in diesem Falle eben ein kleiner AVR, also der Tiny2313.

~

Autor: micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
my 2ct:

Im Prinzip könnte man die Servo-Impulse auch durch einen PC erzeugen. 
Allerdings braucht man dann ein RealTime-System, d.h. ein System das 
eine Antwort in einer genauen Zeitspanne garaniert. Und gängige 
PC-Betriebsysteme, insbesondere Windows, sind alles andere als RealTime. 
Für Linux gibt es IMHO einige Erweiterunge, das einfachste wäre aber 
vermutlich einen kleinen Controller zu nehmen. Beispiel finden sich im 
Forum genug. Eventuell schaust Du mal auf http://www.roboternetz.de/

Das mit der Ansteuerung der Servos habe ich noch nicht ganz verstanden. 
Wie wird das ganze gesteuert? Auf dem Boden liegen Metall-Schienen, im 
Fahrzeug Spulen und es wird eine Art "Line-Follower" gebaut?

PS: erinnert mich an Mythbusters, die haben auch Modellbau-Servos (wenn 
auch sehr kräftige) für RC-"Autos" genommen. IMHO relativ Standard im 
Stunt-Bereich!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.