WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Simulationen > Home Cockpit - Das Forum für die "Bastler"

Home Cockpit - Das Forum für die "Bastler" Cockpitbauer tauschen Pläne, Erfahrungen, Meinungen über den Bau von Homecockpits aus...

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 07.05.2007, 14:01   #1
philharmony
Master
 
Registriert seit: 11.03.2003
Alter: 41
Beiträge: 610


philharmony eine Nachricht über ICQ schicken
Standard Servos ansteuern (ja, mit AVR-nC ;) )

Moin, ich habe mich jetzt mal an die Möglichkeiten des PWM-Generators der Atmels gemacht.
Dabei gibts natürlich mal wieder Probleme.
Und zwar kann ich nen Servo anhängen (habe mal vorsichtshalber nen ganz billigen genommen, aber der S8051BB reagiert genauso).
Wenn ich den Servo anschliesse, dann summt er die ganze Zeit ziemlich laut, verstellt zwar seine Position, aber kommt einfach nicht zur ruhe, der Motor wird dabei auch recht schnell ziemlich heiss).
Ich hole mir die 5V vom VTG-Pin des PortB, Gnd ebenso und das PWM-Signal vom OC0 pin (PinB3) und zwar vom STK500-Board.

Hier mal der C-Code des Programms

Zitat:

#include <avr/io.h>



int main(void)
{

int seta, setb;

DDRB=0xff;
DDRA=0x00;
PORTA=0xff;
OCR0=128;
TCCR0 = (1<<WGM00) | (1<<COM01) | (1<<CS00); // Timer Register auf Phasenrichtigen PWM-Mode setzen, die Art der High- und Low-Zeit bestimmen, kein Prescaling verwenden (mit 1024 wars aber genauso)

for(;

{

if (bit_is_set(PINA, PINA0))
{
if (seta==0)
{
OCR0 = OCR0+10;
seta = 1;
}
}

if (bit_is_clear(PINA, PINA0)) seta=0;

if (bit_is_set(PINA, PINA1))
{
if (setb==0)
{
OCR0 = OCR0-10;
setb=1;
}
}
if (bit_is_clear(PINA, PINA1)) setb=0;
} //Mit PINA0 und PINA1 kann ich den Soll-Wert um 10 hoch- bzw runtersetzen. Das drumrum dient dazu, dass Pro Tastendruck nur je einmal gezählt wird und nicht bei jedem Taktdurchgang...

}

Gibt es Maximalwerte/-frequenzen... die die Servos verstragen? Oder wo könnte noch der Fehler liegen?
philharmony ist offline   Mit Zitat antworten
Alt 08.05.2007, 17:07   #2
philharmony
Master
 
Registriert seit: 11.03.2003
Alter: 41
Beiträge: 610


philharmony eine Nachricht über ICQ schicken
Standard

Ich habe mir das ganze mal auf einer Oscilloskop-Software (Messung über Mic-Eingang der Soundkarte) angeschaut.
Es entsteht auhc wirklich ein recht guter PWM-Verlauf, die weite ändert sich durch tastendruck etc.
Allerdings "flackert" das ganze. Wenn ich einfach eine LED anschlisse und ihn recht langsam laufen lasse (Prescaler 1024 oder 256) dann Blink diese aber total gleichmässig.
Ich habe jetzt mal ein bisschen rumgesucht und was gefunden, wonach die Pulsweite bei Servos zw 1 und 2 Millisekunden liegen soll.
Ist damit jetzt einfach nur die "High-Time" gemeint oder die Frequenz des Signals?
Wie stelle ich das denn nun am besten ein?
Die angeschlossenen Servos fahren zwar wie schon beschrieben ihre Position an, stellen dort aber nicht ab sondern summen weiter.
In manchen Stellungen kann ich den Arm des Servos ein kleines bisschen von hand weiterschieben und dann ist ruhe, in der nächsten Position klappt das dann schon wieder nicht mehr.
Ich verstehe das ganze nicht, vielleciht weiss da jemand Rat.
Gruß
Phil
philharmony ist offline   Mit Zitat antworten
Alt 10.05.2007, 12:52   #3
philharmony
Master
 
Registriert seit: 11.03.2003
Alter: 41
Beiträge: 610


philharmony eine Nachricht über ICQ schicken
Standard

Ich brichte einfach mal weiter, vielleicht hilft es dem einen oder anderen, oder jmd fällt was auf was ich falsch mache.

Überlegung:
Servo will ein 20ms PWM-Signal, dabei zw 1 und 2 ms High-Time.
Mein Atmega läuft bei 3,6864mHz.
Das sind 3686,4 Clocks pro ms.
Ich stelle einen Vorzähler von 256 ein, also dauert ein Zälen von 0-256 (8bit-Counter, ein kompletter Durchlauf) ca 17ms.
Dann sind 15 Zählerschritte eta eine ms, 30 dann entsprechend 2ms.
Also muss mein Compare Match zwischen 15 und 30 liegen und dort von High auf Low wechseln. (Klar, 16bit counter is später besser, momentan reichen mir aber die 8bit)
Multimeter sollte eine Mittlere Spannung von (5V/256*15 bzw *30)=0,29V bis 0,58V messen, tut es auch.
Der Servo zittert aber beim anschliessen (als Betriebspannung nehme ich die 5V VTG vom STK500) und stellt mit sehr wenig Kraft (kann den 8051BB locker mit dem kleinen Finger verstellen während er stellt).
philharmony ist offline   Mit Zitat antworten
Alt 13.05.2007, 00:56   #4
AlTonno
Master
 
Registriert seit: 22.08.2003
Alter: 37
Beiträge: 623


Standard

Für Servos würd ich auf jeden Fall einen externen Treiber-Baustein nehmen, könnt mir vorstellen, dass die Ströme die da auftreten nix fürs STK sind... schau in die Richtung mal genauer in die Datenblätter...


kann hier leider nicht konkret helfen, hab mit der Konstellation (Mega+STK+Servo) noch keine wirkliche Erfahrung...

Mit Schrittmotoren ja, Servos leider net

lg
____________________________________
beste grüße,
Christopher Haus-Air =)
---------------------
w w w . s i m - m o d u l e s . a t
[ Avionic Kits for Flight Simulation ]
---------------------
VISIT
www.HAUS-AIR.at
Der einfachste Weg, sich selbst schnell mal ein Cockpit zu basteln...
AlTonno ist offline   Mit Zitat antworten
Alt 13.05.2007, 10:20   #5
philharmony
Master
 
Registriert seit: 11.03.2003
Alter: 41
Beiträge: 610


philharmony eine Nachricht über ICQ schicken
Standard

Problem is, ich finde keine vernünftigen Datenblätter zu den Servos, aber das mit dem Treiberbaustein klingt gut.
Würdet Ihr eigentlich eher TTL- oder CMOS-Bausteine in verbindung mit AVR-Controllern verwenden?
philharmony ist offline   Mit Zitat antworten
Alt 13.05.2007, 11:47   #6
kefali
Veteran
 
Registriert seit: 18.10.2006
Beiträge: 465


Idee

Wenn deine Endstufen MOSFETs sind,
dann käme CMOS in Frage.
Im anderen Fall, also herkömmliche Transistoren, könnten es auch TTL-Treiber tun/ausreichen.
kefali ist offline   Mit Zitat antworten
Alt 13.05.2007, 12:45   #7
philharmony
Master
 
Registriert seit: 11.03.2003
Alter: 41
Beiträge: 610


philharmony eine Nachricht über ICQ schicken
Standard

Äääähm...??? Was haben denn nC´s für Ausgangsarten? Also cmos-Bausteine habe ich bereits in Betrieb und sie Funktionieren auch...
philharmony ist offline   Mit Zitat antworten
Alt 13.05.2007, 14:08   #8
philharmony
Master
 
Registriert seit: 11.03.2003
Alter: 41
Beiträge: 610


philharmony eine Nachricht über ICQ schicken
Standard

Könnt Ihr mir nen Treiber-Baustein empfehlen? Finde da nix gescheides.
Am besten wäre einer mit nem kleinen Speicher drin, andernfalls müsste man halt eine Reihe D-Flipflops davor packen um dann mit nem Multiplexer auf einen Port des AVR 16 Servos zu legen.
Desweiteren suche ich noch ne schöne Liste mit mäglichst allen CMOS-Bausteinen, finde immer nur einezelne Baureihen, aber keine Gesamtübersicht, nach Themen sortiert zb.
philharmony ist offline   Mit Zitat antworten
Alt 13.05.2007, 16:35   #9
kefali
Veteran
 
Registriert seit: 18.10.2006
Beiträge: 465


Blinzeln

Den Servo, bzw. dessen Regelkreis über einen PIC zu "steuern", halte ich für eine sehr ungünstige Lösung. Der PIC sollte nur die Verbindung zwischen USB und dem Regelkreis als SOLLWERT-Geber dienen, damit die Regelung immer aufrechterhalten, d.h. der Regelkreis immer geschlossen bleibt.
Durch die Digitalen Signale des PIC und seine Sequenzen entstehen Totzeiten, bzw.
entsprechende Verzögerungsglieder 1. und 2. Ordnung (im Sinne der Regeltechnik).
Den PIC in den Regelkreis einzubeziehen, das würde ich nie machen.
kefali ist offline   Mit Zitat antworten
Alt 13.05.2007, 22:38   #10
philharmony
Master
 
Registriert seit: 11.03.2003
Alter: 41
Beiträge: 610


philharmony eine Nachricht über ICQ schicken
Standard

Ja, soweit bin ich jetzt auch, eben die AVRs alle via 2-wire-serial mit einem Master verbinden der am USB hängt.
Die ganzen Slaves sollten dann eben verschiedene Controller/Treiber-ICs mit Digital-werten füttern welche dann genau das tun wofür sie entwickelt wurden und zwar von Leuten die davon viel mehr Ahnung haben als ich
Daher eben die Frage welche günstigen Servo-Treiber-Bausteine es da so gibt...
philharmony ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:44 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag