Lieber Besucher, herzlich willkommen bei: RCLine Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

21

Montag, 27. Februar 2006, 00:24

Hat das eigentlich einen bestimmten Grund, warum Du gerade "PB5" nimmst ?
Da hängt nebenbei noch "SCK" für den ISP dran. Weiß nicht was passiert, wenn da z.B. der ISP auch noch mit dranhängt während Du testest.

Nimm' einfach mal einen anderen Port, egal ob's jetzt mit Analogservos funktioniert auf PB5.

Gruß.
Rainer
Dieser Beitrag wurde schon 6322 mal editiert, zum letzten mal von Gwydion am 20.02.2007 00:00.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Gwydion« (27. Februar 2006, 00:25)


^____

RCLine User

  • »^____« wurde gesperrt

Wohnort: anonymisiert

Beruf: anonymisiert

  • Nachricht senden

22

Montag, 27. Februar 2006, 10:54

Hallo,

Also wenn ihr mich fragt ist das ansteigende Impulsdach auf einen falsch eingestellten Tastkopf am Oszi zurückzuführen.

Ich gehe davon aus, dass die Y-Ablenkung auf 1 V/cm eingestellt ist. Dann wäre die Amplitude zu klein. Wie hoch ist die Betriebsspannung des Prozessors?
Zeigt der Impuls den unbelasteten Ausgang?

Die Betriebsspannung muss 5 Volt betragen damit man die interne Triggerschwelle des Servoverstärkers erreicht. Diese leigt je nach Servoverstärker unterschiedlich hoch.
Man darf auch nicht vergessen, dass ein C-MOS Ausgang bei 5 Volt nur etwa 0,5 mA treiben kann.

Zitat

wieso zum Geier macht Bascom 35ms anstatt 20ms Pause??


Weil es ein nicht richtig programmiert zu sein scheint. Man kann davon Ausgehen, dass auch der Rest nicht Optimal läuft.

Gruss Bruno

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »^____« (27. Februar 2006, 10:55)


Ecofan

RCLine User

  • »Ecofan« ist der Autor dieses Themas

Wohnort: Schweiz, Zürich

Beruf: Gymischüler

  • Nachricht senden

23

Montag, 27. Februar 2006, 11:16

Also, ich bring jetzt mal absolute Klarheit über mein Aufbau hier ins Spiel, sonst reden wir noch lange im Käse rum...

Also: Zum Prozzi: Es ist ein ATmega8, der an einem 6MHz Quarz läuft. Er steckt auf einem Steckbrett und hat die volle Grundbeschaltung (Reset: Pullup und Kondi, an der Versorgung auch Kondis zum Blocken) Betrieben wird er mit 5V von einem 7805. Der 7805 wird mit 12V vom Netzteil versorgt.
Der ATmega wird "extern" programmiert, ich nehme ihn vom Breadboard weg, stecke ihn in meinen selbstgebauten Programmieradapter und progge ihn dort. Das funktioniert alles einwandfrei.
Diese "Karte" auf dem Breadboard wo der AVR drin ist funktioniert auch einwandfrei. Die hab ich da, weil ich so mehr Platz hab und noch ein LCD zum debuggen dranhängen kann.

Dass die schräge Flanke vom Oszi kommt halte ich für unmöglich, denn ich kann auch PWMs von diesem AVR oszillografieren, und die sehen sauber aus. Beim Analogen ist ja auch alles OK..
Ich habs vorher mal an einem anderen Port gehabt: Gleiches Problem.

Nun zum Schaltplan. Es ist nicht nötig, dass ich ihn poste. Es ist wirklich nur der AVR, der Quarz, die Kondis und das Servo. Ich poste euch aber mal ein paar Photos vom Aufbau.

Nun zum Quellcode:
Hier ist er:

$regfile="m8def.dat"
$crystal=6000000

config servos=1 , servo1=Portb.5 , Reload=10
ddrb.5=1
Enable Interrupts
Dim W as Byte

W=43

Do

servo(1)=w
Incr w
waitms 15

If w=115 then
w=43
endif
loop



So dreht das Servo von links nach rechts und zurück. Das tut es auch, aber eben nicht bis an die Anschläge, was auf den schrägen Puls zurückzuführen ist.
Beim Puls ist nur die oberste Kante bei 5V.

Es folgen noch Bilder vom Aufbau.

Herzliche Grüsse und vielen Dank

Mario
»Ecofan« hat folgendes Bild angehängt:
  • Aufbau 1.jpg
" Das Nötige ist einfach und das Komplizierte ist unnötig" ----- Michail Kalaschnikow

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Ecofan« (27. Februar 2006, 12:24)


Ecofan

RCLine User

  • »Ecofan« ist der Autor dieses Themas

Wohnort: Schweiz, Zürich

Beruf: Gymischüler

  • Nachricht senden

24

Montag, 27. Februar 2006, 11:16

Noch mehr Aufbau
»Ecofan« hat folgendes Bild angehängt:
  • Aufbau 2.jpg
" Das Nötige ist einfach und das Komplizierte ist unnötig" ----- Michail Kalaschnikow

Ecofan

RCLine User

  • »Ecofan« ist der Autor dieses Themas

Wohnort: Schweiz, Zürich

Beruf: Gymischüler

  • Nachricht senden

25

Montag, 27. Februar 2006, 11:17

das Letzte Bild
»Ecofan« hat folgendes Bild angehängt:
  • Aufbau 3.jpg
" Das Nötige ist einfach und das Komplizierte ist unnötig" ----- Michail Kalaschnikow

26

Montag, 27. Februar 2006, 12:27

Hi Mario,

Zitat

Original von Ecofan
Beim Puls ist nur die oberste Kante bei 5V.


demnach kann's die Impulsverformung nicht sein, denn die Logikpegel 0 und 1 sind eindeutig! Selbst, wenn der high-Pegel z.B. nur bei 3V liegt, wird das Servo funktionieren. Probier's doch einfach mal aus, indem Du das Ausgangssignal von Deinem Epfänger über ein RC-Glied zum Servo hin "verunstaltest", z.B. Empfängerausgang über 1kOhm, Kondi 1..10 nF am Servoimpuls auf Masse, ggf. auch noch einen Widerstand zum Kondi parallel, um den max. Impuls pegel unter 4V abzusenken - Ich wette, das Servo wird auch noch funktionieren, wenn das Signal schlimmer aussieht, als auf Deinem Skope-Bild.

Grüße,

Thomas

Ecofan

RCLine User

  • »Ecofan« ist der Autor dieses Themas

Wohnort: Schweiz, Zürich

Beruf: Gymischüler

  • Nachricht senden

27

Montag, 27. Februar 2006, 12:39

Ist aber trotzdem strub, dass der Empfänger das Signal sauber hinkriegt, der Mega aber net... (Wie ist das jetzt mit den Pullups?)

Wenn jetzt diese struben Flanken keine Störung verursachen, wieso kann ich dann das Servo nicht so sauber steuern wie der Empfänger?
Ich krieg es ja nicht in die Begrenzung, es hört einfach auf, etwas zu tun, wenn ich unter 33 und über 115 gehe...
Was kann denn das sein? Die Pulspause von 35ms? Ich werde in ein paar Stunden mal euren Code draufbügeln. Mal sehen, was der zu Stande bringt..

Herzlichen Gruss
Mario
" Das Nötige ist einfach und das Komplizierte ist unnötig" ----- Michail Kalaschnikow

^____

RCLine User

  • »^____« wurde gesperrt

Wohnort: anonymisiert

Beruf: anonymisiert

  • Nachricht senden

28

Montag, 27. Februar 2006, 15:08

Hallo,

Zitat

Dass die schräge Flanke vom Oszi kommt halte ich für unmöglich,


Schön für Dich, dann wird es ja wohl so sein. Das dies aber einen Einfluss hat wenn die Amplitude tatsächlich 5 Volt beträgt halte ich auch für ausgeschlossen.

Da scheinen wohl die 35 mS das Problem zu sein.

Gruss Bruno

michi-02

RCLine User

Wohnort: Hamburg

  • Nachricht senden

29

Montag, 27. Februar 2006, 15:54

Hallo Mario und alle anderen,

wenn ich mich Irre, bitte Korrigieren, da ich selber nur analoge Servos benutze.
Analoge Servos bekommen alle 20 mS einen Impuls umd einen neue Stellung zu beziehen. Digitale dahin werden alle 400 uS mit einem neuen Impuls versorgt. Daher wird es wohl auch mit der normalen BASCOM ansteuerung nicht Funktionieren. Siehe auch folgenden Link:

http://www.roboternetz.de/wissen/index.p…nd_Analogservos

Viele Grüße

Michael

Ecofan

RCLine User

  • »Ecofan« ist der Autor dieses Themas

Wohnort: Schweiz, Zürich

Beruf: Gymischüler

  • Nachricht senden

30

Montag, 27. Februar 2006, 16:03

Falsch! Das ist die Ansteuerung vom Motor IM Servo! Der Motor kriegt alle 400 Mikrosekunden einen Puls, die Elektronik, die den Motor steuert, kriegt vom Empfänger alle 20ms einen Puls und aktualisiert die Motorstellung alle 400 Mikrosekunden.
Digitale und Analoge unterscheiden sich in der Ansteuerung nicht.

Dennoch: Wieso ist die Flanke schräg, und wieso lässt Bascom alle 35ms einen Puls raus? Könnt ihr mal schnell bei euch den Bascom-Befehl servo(x) testen, und schauen, wann die Pulse kommen?

Herzlichen Gruss

Mario
" Das Nötige ist einfach und das Komplizierte ist unnötig" ----- Michail Kalaschnikow

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Ecofan« (27. Februar 2006, 16:03)


michi-02

RCLine User

Wohnort: Hamburg

  • Nachricht senden

31

Montag, 27. Februar 2006, 16:18

Hallo Mario,

eben mal das Scope rangehängt. bei mir kommt alle 33mS ein Impuls.


habe nochmal Dein Testprogramm geladen und den Wert "If W = 110 Then"
auf 140 geändert. Jetzt läuft mein Servo von links nach rechts.

Viele Grüße

Michael

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »michi-02« (27. Februar 2006, 16:38)


Ecofan

RCLine User

  • »Ecofan« ist der Autor dieses Themas

Wohnort: Schweiz, Zürich

Beruf: Gymischüler

  • Nachricht senden

32

Montag, 27. Februar 2006, 16:46

Hmm, Ok, dann stehe ich mit den 35ms nicht alleine da.
Könnte jemand mal ein digital-Servo mit der Bascom-Routine ansteuern, und schauen, ob es läuft?

Herzlichen Gruss und Danke
Mario
" Das Nötige ist einfach und das Komplizierte ist unnötig" ----- Michail Kalaschnikow

Bruchflieger

RCLine User

Wohnort: 18km südl. der Lutherstadt Wittenberg

Beruf: Energieelektroniker / HWK-Meister E-technik

  • Nachricht senden

33

Montag, 27. Februar 2006, 16:58

die 35msek kommen von deiner niedrigen Taktrate. Die Bascom Servo routine die du verwendest hat mit dem gleichen reload bei verschiedenen Taktraten auch unterschiedliche Widerholfrequenzen... - im Roboternetzforum gab es dazu mal einen Fred, wo die das ausgemessen hatten. Weiß jetzt aber nicht mehr wie der hieß...
Spiele mal ein bischen mit dem Preload rum mal etwas erhöhen oder absenken - teilweise hatten die Preloads von 3 oder 4 verwendet!!! - allerdings verschiebt sich dann auch der Bereich, in dem das Servo die 1,0 - 2,0 ms erhält ( ich meine die Werte, die du an Servo(1)= xxx übergibst sind dann anders - mußt mal rumprobieren - hast ja ein Oszi...
Grüße Dani.

Ecofan

RCLine User

  • »Ecofan« ist der Autor dieses Themas

Wohnort: Schweiz, Zürich

Beruf: Gymischüler

  • Nachricht senden

34

Montag, 27. Februar 2006, 17:06

Ok, dann wurschtel ich mal am Preload rum!

Ich hab zudem mal eure Routine draufgeknallt. Die hat 25ms Pause zwischen den Pulsen, funktioniert sonst aber gut!
Ich kann das Servo in die Eine Begrenzung jagen. Die Pulse sind genau gleich verwurschtelt. Jetzt geh ich mal daran, den Preload zu testen.

Herzlichen Gruss
Mario
" Das Nötige ist einfach und das Komplizierte ist unnötig" ----- Michail Kalaschnikow

Bruchflieger

RCLine User

Wohnort: 18km südl. der Lutherstadt Wittenberg

Beruf: Energieelektroniker / HWK-Meister E-technik

  • Nachricht senden

35

Montag, 27. Februar 2006, 17:13

Hi Mario - Stimmt ich bin doof - bei 6MHZ muß ja auch noch die Fixpause angepaßt werden in dieser Zeile:
Fixpause = 2304 - Fixpause

Da muß die 2304 in 1875 umgeändert werden weil 20msek bei 6MHz und Prescaler 64 1875 Counts dauern und nicht 2304

und bei 8MHz muß dort eine 2500 stehen
Grüße Dani.

Ecofan

RCLine User

  • »Ecofan« ist der Autor dieses Themas

Wohnort: Schweiz, Zürich

Beruf: Gymischüler

  • Nachricht senden

36

Montag, 27. Februar 2006, 18:40

Huch, ich glaub, ich kriegs mit Bascom noch hin...

Hab mal eine Messreihe aufgestellt:

Reload : Pause zwischen Pulsen in ms

10:35
5:27
4:21
3:19

Ich werde also einen Preload von 3 für meine Servos nehmen!
Jetzt muss ich noch die Werte rausfinden.

Werde bald berichten.

Herzlichen Gruss
Mario
" Das Nötige ist einfach und das Komplizierte ist unnötig" ----- Michail Kalaschnikow

Ecofan

RCLine User

  • »Ecofan« ist der Autor dieses Themas

Wohnort: Schweiz, Zürich

Beruf: Gymischüler

  • Nachricht senden

37

Montag, 27. Februar 2006, 18:56

Verdammt! Was ist denn jetzt passiert?
Hab das Servo wieder an den Empfänger gehängt, um zu sehen, welche Pulsbreiten es braucht.
Da fiel mir auf, dass er zu Beginn IMMER in Mittelstellung fährt, egal wo der Knüppel ist.
nach einer Weile riecht es plötzlich "versengt" ==> 7805 ist glühend heiss, ebenso das Servo...

Die Signale sahen korrekt aus!

Was ist denn das jetzt? Ich lass die beiden mal abkühlen...

Edit: Das Servo ist wohl hinüber ==> es zieht nur schon ohne Signal strom wie blöd. Ich machs mal auf. Was war der Grund? Es war nicht in der Begrenzung, das kam urplötzlich!
" Das Nötige ist einfach und das Komplizierte ist unnötig" ----- Michail Kalaschnikow

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Ecofan« (27. Februar 2006, 18:58)


^____

RCLine User

  • »^____« wurde gesperrt

Wohnort: anonymisiert

Beruf: anonymisiert

  • Nachricht senden

38

Montag, 27. Februar 2006, 19:05

Hallo Mario,

Zitat

Das Servo ist wohl hinüber ==> es zieht nur schon ohne Signal strom wie blöd.


Ja, das kannst Du entsorgen. Weshalb das passiert ist kann man aus der Ferne nicht sagen. Hast Du es etwa einmal falsch gepolt?

Gruss Bruno

Ecofan

RCLine User

  • »Ecofan« ist der Autor dieses Themas

Wohnort: Schweiz, Zürich

Beruf: Gymischüler

  • Nachricht senden

39

Montag, 27. Februar 2006, 19:06

Nein, niemals falsch gepolt. Ich hatte es am Sender am Laufen, und plötzlich drehte es sich einfach nicht mehr.
" Das Nötige ist einfach und das Komplizierte ist unnötig" ----- Michail Kalaschnikow

Ecofan

RCLine User

  • »Ecofan« ist der Autor dieses Themas

Wohnort: Schweiz, Zürich

Beruf: Gymischüler

  • Nachricht senden

40

Montag, 27. Februar 2006, 20:30

Also, ich hab indes mal mein zweites Digitalservo (gleicher Typ) drangehängt und ausgemessen.

Ich hab einen Reload-Wert von 3 drin.
Das Servo kann ich von 54 bis 245 bewegen.
54 ist der untere mechanische Anschlag.
Wenn ich über 245 gehe, macht das Servo gar nix, ist aber noch nicht am Anschlag! Wenn ich viel drüber gehe, dann dreht er wieder an den anderen Anschlag zurück.
Die Pulse sind immernoch schief.
So gefällts mir jetzt nicht schlecht, das Servo macht einigermassen was ich will, es springt auch sofort an.
Nur, dass ich es in den "oberen" Anschlag nicht treiben kann, stört mich noch... Ich hab die 20ms Pause.

Frage: Wenn ich jetzt einen anderen Quarz nehmen würde, den Reload aber bei 3 lasse, hab ich dann wieder eine andere Pause zwischen den Pulsen, oder ist der Reload-Wert Frequenzunabhängig?

Herzlichen Gruss
Mario
" Das Nötige ist einfach und das Komplizierte ist unnötig" ----- Michail Kalaschnikow

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Ecofan« (27. Februar 2006, 20:36)