- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 3542

Thema: Willas Shrediquette Tricopter / Quadrocopter / Hexacopter

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker Avatar von Picojetflyer
    Registriert seit
    03.08.2004
    Ort
    Sauerland
    Beiträge
    247
    Zitat Zitat von jevermeister Beitrag anzeigen
    Ich weiß was sicher hilft dagegen: QUADROCOPTER!!! Damit hat der Servo nicht mehr gezittert
    Oder ein Hexa Meiner ist übrigends fertig und letzten Sonntag hat er den ersten Looping geschafft.

    Nils, du nutzt jetzt ja auch das HMC Kompass-Modul und den Bosch Luftdruck Sensor. Wie sind denn deine Erfahrungen damit? Wie kommt das Kompassmodul mit den Magnetfeldern der Motoren klar? Ich hab ja auch das Flydusense mit LLC und will die gleichen Sensoren nutzen nur eben mit Bascom.

    Zu den Servo-Problem, ich bin fast der Meinung dass, das ein Bascom Problem ist bzw stören sich die beiden Interrupts von Empfänger und Servo. Den gleichen Fehler konnte ich mit meinen SPI Versuche erzeugen. Der SPI Interrupt störte extrem den Servo Interrupt.

    Ich hab z.Z. auch ein kurioses Phänomen, Ich flieg ja mit ein Flyduino V2, (Mega2560) , Flydusense mit WMP und BMA Sensoren und Quax4428 Reglern. Funktioniert soweit alles bestens, trotz Update raten um die 160Hz liegt der Hexa wie ein Brett in der Luft. Wenn ich den Akku anstecke wird alles initialisiert und die Motoren pfeifen ihre Start Melodie. Aber die Regler reagieren erst auf den Mode Schalter wenn ich das Flyduino mit angesteckten Akku resete. Das muss am Flyduino liegen, mit den Triguide hatte ich das Phänomen nicht.

    Gruß

    Matthias

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von Bammel
    Registriert seit
    11.12.2004
    Ort
    Bremen
    Alter
    38
    Beiträge
    1.400
    wie wäre es am anfagn des servo-irq die interrupts abzuschalten und am ende wieder ein!?
    Der miniatur Quadrocopter: www.nanoquad.de

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    40
    Beiträge
    3.416
    sofern er nicht selbstgestricke IRQ-Handler benutzt passiert das abschalten der Interrupts (cli(); und sei(); ) automatisch am Anfang und Ende des Blocks!
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  4. #4
    Erfahrener Benutzer Begeisterter Techniker Avatar von Picojetflyer
    Registriert seit
    03.08.2004
    Ort
    Sauerland
    Beiträge
    247
    Zitat Zitat von Ceos Beitrag anzeigen
    sofern er nicht selbstgestricke IRQ-Handler benutzt passiert das abschalten der Interrupts (cli(); und sei(); ) automatisch am Anfang und Ende des Blocks!
    Öhm sind cli() und sei() nicht Interrupt Makros von WinAVR??? Und soweit ich weis muss man in Assembler explizit die Interrupts in der Interrupt Routine mit CLI abschalten. Bascom scheint aber wirklich die Interrupts abzuarbeiten bevor ein anderer ausgeführt werden kann. So verstehe ich jedenfalls die Hilfe. Also so wie Ceos es auch sagte. Nur was ist wenn der Empfänger Interrupt ausgeführt wird und grade zum Anfang des Interrupts eigendlich der Servo Interrupt fällig wäre. Ich weiß nicht wie lange Bascom braucht um aus den ersten Interrupt raus zu kommen. Man bedenke das 0,5ms ein voller Ausschlag am Servo bedeutet.

    Gruß

    Matthias

  5. #5
    Erfahrener Benutzer Roboter-Spezialist Avatar von deHarry
    Registriert seit
    17.08.2010
    Beiträge
    597
    Zitat Zitat von Picojetflyer Beitrag anzeigen
    Nur was ist wenn der Empfänger Interrupt ausgeführt wird und grade zum Anfang des Interrupts eigendlich der Servo Interrupt fällig wäre. Ich weiß nicht wie lange Bascom braucht um aus den ersten Interrupt raus zu kommen. Man bedenke das 0,5ms ein voller Ausschlag am Servo bedeutet.
    Ich glaube irgendwo mal ca. 30 Clocks für das Auftauchen aus einer IRQ-Routine gelesen zu haben. Macht bei 16 MHz der TriGuide etwas unter 2 µs. Für den Vollauschlag braucht man also 250 IRQ-Returns... verkraftbar, wenn ich mich nicht verrechnet habe, oder?
    Wieviel Schritte macht der Servo von Anschlag bis Anschlag in der TriGuide?
    Gruß
    Harald
    __________________
    Modellbau&Elektronik
    www.harald-sattler.de

  6. #6
    Erfahrener Benutzer Begeisterter Techniker Avatar von Picojetflyer
    Registriert seit
    03.08.2004
    Ort
    Sauerland
    Beiträge
    247
    Mein Gedanke war....
    Der Servopin (High oder Low) wird verändert wenn OVF1 ausgelöst wird. Also der Timer1 überläuft. Der Timer1 wird ja z.B. mit ca. 62535 vorgeladen. Bei einen Teiler von 8 schafft der Controller die fehlenden 3000 Schritte bis 65535 in gut und gerne 1,5ms was Mittelstellung am Servo bedeutet. Wenn jetzt z.B. bei 65534 irgendein andere Interrupt ausgelöst wird, wird das OVF1 Bit ignoriert da erst mal der andere Interrupt ausgelöst wird. Der Timer1 läuft trotzdem über und zählt weil er kein neuen Wert zugewiesen bekommen hat von 0 bis 65535 hoch. Was dann ca. 32ms pause am Servo Pin bedeutet. Selbst wenn er im laufenden Programm mit 62535 wieder vorgeladen wird fehlt den Servopin immer noch ein Schritt was dann ja die doppelte Signalzeit bedeutet. Also 3ms was für das Servo so oder so ein Vollausschlag bedeutet. Ich errinere mich an das Oszi-Bild von Nils. Da war deutlich eine zweite Flanke zu sehen. Zudem laufen im Standard Tricopter Programm insgesamt 3 Interrupts.
    Aus anderen Projekten hab ich das Phänomen schon öfters beobachtet vor allem wenn man viel in einen Interrupt abarbeitet oder es um Zeit kritischen Sachen geht.

    Gruß

    Matthias

  7. #7
    Erfahrener Benutzer Roboter-Spezialist Avatar von deHarry
    Registriert seit
    17.08.2010
    Beiträge
    597
    Zitat Zitat von Picojetflyer Beitrag anzeigen
    Wenn jetzt z.B. bei 65534 irgendein andere Interrupt ausgelöst wird, wird das OVF1 Bit ignoriert da erst mal der andere Interrupt ausgelöst wird. Der Timer1 läuft trotzdem über und zählt weil er kein neuen Wert zugewiesen bekommen hat von 0 bis 65535 hoch. Was dann ca. 32ms pause am Servo Pin bedeutet.
    Ok, agreed.
    Dann verstehe ich (und wir alle) aber immer noch nicht, warum der Code monatelang lief (und auch jetzt noch bei verschiedenen Anwendern läuft) und erst ab irgendwann meint, er müsste ab jetzt immer hohl drehen...

    Ich will aber jetzt keine Begründung aus dir rauskitzeln, wenn du die hättest, hättest du uns bestimmt auch ohne meine Aufforderung davon erzählt
    Gruß
    Harald
    __________________
    Modellbau&Elektronik
    www.harald-sattler.de

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests