- 3D-Druck Einstieg und Tipps         
Seite 166 von 355 ErsteErste ... 66116156164165166167168176216266 ... LetzteLetzte
Ergebnis 1.651 bis 1.660 von 3542

Thema: Willas Shrediquette Tricopter / Quadrocopter / Hexacopter

  1. #1651
    Erfahrener Benutzer Roboter-Spezialist Avatar von deHarry
    Registriert seit
    17.08.2010
    Beiträge
    597
    Anzeige

    Powerstation Test
    Hallo Hans,
    ok, jetzt habe ich verstanden. Ja, das klingt sehr gut. Ich bin gespannt, wie das klappt.
    Gruß
    Harald
    __________________
    Modellbau&Elektronik
    www.harald-sattler.de

  2. #1652
    Erfahrener Benutzer Fleißiges Mitglied Avatar von fat tony
    Registriert seit
    01.08.2007
    Ort
    Herford
    Alter
    40
    Beiträge
    147
    Mal zu Thema Fail-Save bei Senderausfall:
    http://forum.mikrokopter.de/topic-23783-1.html

  3. #1653
    Erfahrener Benutzer Roboter-Spezialist Avatar von jevermeister
    Registriert seit
    20.01.2011
    Ort
    Kiel
    Beiträge
    393
    So,

    Harry und Hans ich hab mir mal ein paar Gedanken gemacht und möchte das jetzt zur Diskussion stellen:


    Das Vorgehen ist folgendes:
    Im GUI Mode (Standby) den rechten Stick nach oben links bewegen. Beim Loslassen schaltet er die Kalibrierung an, nur dann funktioniert der Vorgang so mit dem Schalter während des Fluges. Das Ganze wird durch einen Doppelpieps bestätigt.

    Problem war das Halten der Sticks, das würde ja für ein unendliches Togglen sorgen daher die Zwischenvariable.

    Eins noch vorneweg: Hans mir ist aufgefallen, dass Willa die Kanäle erst kurz vor Ende des Loops bereinigt (also das umrechen auf -39...+39). Am Ende liest er dann neue Werte ein die von 61 bis 139 gehen.Du scheinst aber Teilweise schon mit bereinigten Werten zu rechnen. Habe ich da einen Denkfehler? Bei den Stickpositionen rechne ich jetzt mit Werten von 61 bis 139.

    Ganz unten: 61
    Mitte: 100
    Ganz oben: 139
    Ich weiß nicht wierum links und rechts ist.

    Ich hab das noch nicht getestet.

    Code:
    If State = 0 And Sempf(rollchannel) < 70 And Sempf(nickchannel) > 120 Then
        Sticksup_bo = 1                                         'Setzbit setzen  (Dient dazu zu verhindern das der zustand springt wenn ich dies ticks lange halte
     End If
     'Erst wenn ich die sticks wieder loslasse und das bitt gesetzt wurde, dann calibrierung übernehmen
     If State = 0 And Sempf(rollchannel) > 90 And Sempf(rollchannel) < 110 And Sempf(nickchannel) > 90 And Sempf(nickchannel) < 110 And Sticksup = 1 Then
        Toggle Xy_calibration_bo                                'Kalibrierung aktivieren/desaktivieren
        Sticksup = 0                                            ' Setzbit zurücksetzen
        Speakeron = 1                                          'Nils-Speaker: einschaltflag setzen
        Speakerduration = 250                                   'Nils-Speaker   : jeder 250te takt wird gepiept
        Speakerbeeps = 2                                        'Nils-Speaker: Anzahl der Pieps 4=unendlich
     End If
    
     If State > 0 Then                                          ' Acro oder Hover Mode ausgewählt
       If Sempf(5) > 0 And Sempf(throttlechannel) > 50 Then Switch_validation = 1       'Wenn größer als 0 (Acro) und Gas> 50 dann Kalibrierung scharf schalten   heir muss ich irgendwas einbauen damit ich nicht aus versehen was amche
       If Sempf(5) < -20 And Switch_validation = 1 And Xy_calibration_bo Then       'Betriebswahl auf Standbay ohne Gas wegzunehmen > Werte werden jetzt übernommen
         XY_Calibration_Bo = 0
         Switch_validation = 0
         Modification = 1                                       'Es wurden werte gemessen
         For I = 1 To 19                                        '20 mal messen und Summe bilden
         Xacc_offset = Xacc_offset + Getadc(4)
         Yacc_offset = Yacc_offset + Getadc(5)
         Next
         Xacc_offset = Xacc_offset / 20                         'Mittelwert bilden
         Yacc_offset = Yacc_offset / 20
         Speakeron = 1                                          'Nils-Speaker: einschaltflag setzen
         Speakerduration = 250                                      'Nils-Speaker   : jeder 250te takt wird gepiept
         Speakerbeeps = 2                                       'Nils-Speaker: Anzahl der Pieps 4=unendlich
       End If
     End If
    
     If Modification = 1 Then                                   'Gemessene Werte stehen zur verfügung
      If State = 0 Then                                         'Betriebswahl auf Standby
       If Motors_on = 0 Then                                    'Motoren aus
    
        Var(23) = Xacc_offset - 384
        Var(24) = Yacc_offset - 384
        For I = 1 To 33
            Writeeeprom Var(i) , I                              'Werte ins EEPROM schreiben
        Next
        'Fraglich ob das geht, oder ob er vorher in die LOOP hier unter geht..
        'evtl eine subroutine schreiben die am ende ausgeführt wird
        Speakeron = 1                                          'Nils-Speaker: einschaltflag setzen
        Speakerduration = 250                                   'Nils-Speaker   : jeder 250te takt wird gepiept
        Speakerbeeps = 2                                        'Nils-Speaker: Anzahl der Pieps 4=unendlich
        Do                                                      'Force RESET. Helps to know when eeprom is modified.
        Loop
       End If
      End If
     End If
    '===Ende Offsetübernahme =========
    Wie bereits oben erwähnt: Das ist eine Idee, wenn ich was Falsch gemacht habe dann bitte nicht zögern es zu sagen.

    Damit mir keiner vorwirft mich mit fremden Federn zu schmücken:
    Das ganze basiert auf Hans' Code, ich habe lediglich kleinere Anpassugnen vorgenommen.

    Nils

    ps.: Wäre das nicht ganz gut in einer Sub aufgehoben? Wirkt sauberer..

  4. #1654
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    24.05.2007
    Ort
    Im hohen Norden
    Beiträge
    227
    Hallo an alle,
    ein Tip:Bei einer Mittelwertbildung können die Sprünge der einzelnen Werte so heftig sein, dass der Mittelwert eigentlich nicht richtig zu gebrauchen ist. Von Mittelwert zu Mittelwert gibt es dann leider auch immer wilde Sprünge. Viel viel bessere Werte erlangt man mit einem gleitenden Mittelwert. Die Sprünge sind ausgeglichener und zu gebrauchen.

    Tschüss hier aus Eckernförde Peter
    _________________________________________________
    [-X Quis custodiet ipsos custodes
    Ground-Effect-Stability-Robot www.peter-holzknecht.de

  5. #1655
    Erfahrener Benutzer Roboter-Spezialist Avatar von jevermeister
    Registriert seit
    20.01.2011
    Ort
    Kiel
    Beiträge
    393
    @ Holzi: Der Gleitende Mittelwert ist hier überflüssig da wir nur ganz kurz messen. Aber der Hinweis ist natürlich richtig. (Eckernförde? Komm mal rum nach Kiel!!)

    @all, natürlich habe ich mich mit der Stickstellung versehen, hier der berichtigte Code mit 3mal kurz Piepen für deaktivieren der Funktion. Könnte man auch über die LED machen.

    Code:
    '===XY Kalibrierung über Funke==================================================         'Nils-XY Offset
    'Durch Bewegen des rechten Sticks nach oben links wird die XY Kalibierung aktiviert
     If State = 0 And Sempf(rollchannel) > 20 And Sempf(nickchannel) > 20 Then
        Sticksup_bo = 1                                         'Setzbit setzen  (Dient dazu zu verhindern das der zustand springt wenn ich dies ticks lange halte
     End If
     'Erst wenn ich die sticks wieder loslasse und das bit gesetzt wurde, dann Kalibrierung übernehmen
     If State = 0 And Sempf(rollchannel) > -10 And Sempf(rollchannel) < 10 And Sempf(nickchannel) > -10 And Sempf(nickchannel) < 10 And Sticksup_bo = 1 Then
        Toggle Xy_calibration_bo                                'Kalibrierung aktivieren/desaktivieren
        Sticksup_bo = 0                                         ' Setzbit zurücksetzen
        Speakeron = 1
        If Xy_calibration_bo = 1 Then                           'Falluntershceidung ob ein oder ausgeschaltet
          Speakerduration = 100                                 'Nils-Speaker   : jeder 100te takt wird gepiept
          Silenceduration = 100                                 'Nils-Speaker: Dauer der Stille
          Speakerbeeps = 2                                      'Nils-Speaker: Anzahl der Pieps 4=unendlich
        Else                                                    'Nils-Speaker: einschaltflag setzen
          Speakerduration = 50                                  'Nils-Speaker   : jeder 50te takt wird gepiept
          Silenceduration = 50                                  'Nils-Speaker: Dauer der Stille
          Speakerbeeps = 3                                      'Nils-Speaker: Anzahl der Pieps 4=unendlich
        End If
     End If
    
     If State > 0 Then                                          ' Acro oder Hover Mode ausgewählt
       If Sempf(5) > 0 And Sempf(throttlechannel) > 50 Then Switch_validation = 1       'Wenn größer als 0 (Acro) und Gas> 50 dann Kalibrierung scharf schalten   heir muss ich irgendwas einbauen damit ich nicht aus versehen was amche
       If Sempf(5) < -20 And Switch_validation = 1 And Xy_calibration_bo = 1 Then       'Betriebswahl auf Standbay ohne Gas wegzunehmen > Werte werden jetzt übernommen
         Xy_calibration_bo = 0
         Switch_validation = 0
         Modification = 1                                       'Es wurden werte gemessen
         For I = 1 To 19                                        '20 mal messen und Summe bilden
         Xacc_offset = Xacc_offset + Getadc(4)
         Yacc_offset = Yacc_offset + Getadc(5)
         Next
         Xacc_offset = Xacc_offset / 20                         'Mittelwert bilden
         Yacc_offset = Yacc_offset / 20
         Speakeron = 1                                          'Nils-Speaker: einschaltflag setzen
         Speakerduration = 100                                  'Nils-Speaker   : jeder 100te takt wird gepiept
         Silenceduration = 100                                  'Nils-Speaker: Dauer der Stille
         Speakerbeeps = 2                                       'Nils-Speaker: Anzahl der Pieps 4=unendlich
       End If
     End If
    
     If Modification = 1 Then                                   'Gemessene Werte stehen zur verfügung
      If State = 0 Then                                         'Betriebswahl auf Standby
       If Motors_on = 0 Then                                    'Motoren aus
    
        Var(23) = Xacc_offset - 384
        Var(24) = Yacc_offset - 384
        For I = 1 To 33
            Writeeeprom Var(i) , I                              'Werte ins EEPROM schreiben
        Next
        Do                                                      'Force RESET. Helps to know when eeprom is modified.
        Loop
       End If
      End If
     End If
    '===Ende Offsetübernahme =========
    Habe ich getestet und funktioniert. Jetzt gibts kein Versehentliches Neukalibrieren mehr.
    Habt ihr Verbesserungsvorschläge?
    Wer keinen Pieper hat einfach eine LED Routine einsetzen.

    Den Code Lade ich morgen auf meinen Blog

    Gruß
    Nils

  6. #1656
    Erfahrener Benutzer Roboter Genie Avatar von Bammel
    Registriert seit
    11.12.2004
    Ort
    Bremen
    Alter
    37
    Beiträge
    1.400
    Kann man das ganze nicht in ein sub setzen? dann könnte man das ganze so handhaben das man den originalsource von william nimmt und selbst einfach die sub mit einfügt. plus natürlich die definitionen der variablen usw.

    ich weiß garnet ob das möglich ist in Bascom einfach eine externe datei mit zu verknüfpen. dann müsste man nur den aufruf der subroutine in der haupschleife aufrufen. ich denke das wäre eine sehr konfortable einfache und auch individuellere lösung!
    und wohl auch für leute die nicht so viel vom programmieren verstehen einfacher!

  7. #1657
    Erfahrener Benutzer Roboter-Spezialist Avatar von jevermeister
    Registriert seit
    20.01.2011
    Ort
    Kiel
    Beiträge
    393
    Die Sub ist in arbeit, ist auch kein Problem, mit externen Dateien ist es schwierig glaube ich, Basic ist da zu begrenzt.

    Wenn Du willst pass ich dir das auf den Originalcode von Willa an!

  8. #1658
    Erfahrener Benutzer Roboter Genie Avatar von Bammel
    Registriert seit
    11.12.2004
    Ort
    Bremen
    Alter
    37
    Beiträge
    1.400
    nene also ich bekomme das ganze schon hin soweit fit bin ich in Bascom schon... ich benötige dies aber auch nicht! fliege ja nur im acro mode!
    dachte nur an die allgemeinheit!

  9. #1659
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Zitat Zitat von Bammel Beitrag anzeigen
    nene also ich bekomme das ganze schon hin soweit fit bin ich in Bascom schon... ich benötige dies aber auch nicht! fliege ja nur im acro mode!
    dachte nur an die allgemeinheit!
    Moin moin.

    Ausprobiert habe ich so etwas auch noch nicht, aber wenn man nur die Sub für sich compiliert sollte man das Ergebnis doch als Include.xyz einfügen können? Dazu einmal so eine include Datei näher untersuchen.

    http://ubuntuone.com/p/lRo/

    Gruß Richard

  10. #1660
    Erfahrener Benutzer Roboter Genie Avatar von Bammel
    Registriert seit
    11.12.2004
    Ort
    Bremen
    Alter
    37
    Beiträge
    1.400
    das hatte ich nun auch rausgefunden fand ich aber doof da das ganze dnan nicht mehr opensource ist!

Seite 166 von 355 ErsteErste ... 66116156164165166167168176216266 ... LetzteLetzte

Stichworte

Berechtigungen

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

12V Akku bauen