Scaleheli und arduino Board

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • steveman
    Senior Member
    • 16.05.2007
    • 4226
    • Stefan
    • Österreich

    #1

    Scaleheli und arduino Board

    Mal eine frage, hat von euch schon jemand ein arduino Board im scaleheli verbaut und steuert damit seine Beleuchtung oder auch was anderes?
    Würde mich total interessieren, auch wenn jemand Feige Programme geschrieben hat.
    Lg Stefan
    Bo105, 2x Jetranger, Bell212, Ecureuil, Lama, Logos, Specter, Omp M2
  • fly3rman
    Member
    • 29.03.2013
    • 69
    • Dimitri

    #2
    AW: Scaleheli und arduino Board

    Habe einen Arduino Pro Mini auf meiner Drohne und treibe damit 1W Leds mit PWM, werden in den ersten 30 Sekunden immer heller, leuchten dann konstant und blitzen mit voller Power auf. Themales Mangement wird dann problematisch =)
    "Feige" Programme habe ich allerdings nicht =).
    Will man das ordentlich machen, bräuchte man eine PWM fähige Konstantstromquelle für jede LED.
    Was genaut hast du vor?
    Dimitri aus Berlin
    http://www.fly3rman.de/

    Kommentar

    • steveman
      Senior Member
      • 16.05.2007
      • 4226
      • Stefan
      • Österreich

      #3
      AW: Scaleheli und arduino Board

      Rotes, grünes, weißes dauerlicht
      Rote Blitzer
      Weiße Blitzer
      Wenn möglich das ganze ein und Ausschalten über die fernsteuerung.
      Habe das ganze schon fast fertig, allerdings weis ich nicht wie ich es über die Fernsteuerung schaltbar mache. Die Liter habe ich einfah ein und ausgeschaltet mit einem Delay dazwischen und das ganze im Loop.
      MfG Stefan
      Bo105, 2x Jetranger, Bell212, Ecureuil, Lama, Logos, Specter, Omp M2

      Kommentar

      • Taumel S.
        Senior Member
        • 31.12.2008
        • 26320
        • Helfried
        • Ã?sterreich

        #4
        AW: Scaleheli und arduino Board

        allerdings weis ich nicht wie ich es über die Fernsteuerung schaltbar mache
        Dazu gibt es eigene Programmbibliotheken im Internet. Umfangreich und anschaulich beschrieben beispielsweise im Buch "Arduino im RC-Modellbau".

        Kommentar

        • steveman
          Senior Member
          • 16.05.2007
          • 4226
          • Stefan
          • Österreich

          #5
          AW: Scaleheli und arduino Board

          Vielen dank.
          MfG Stefan
          Bo105, 2x Jetranger, Bell212, Ecureuil, Lama, Logos, Specter, Omp M2

          Kommentar

          • -JPB-
            Member
            • 16.01.2008
            • 103
            • Jan Philipp
            • Gütersloh

            #6
            AW: Scaleheli und arduino Board

            Hab auch ein Arduino in der Luft, es steuert zwei Servos an und bekommt dafur Input von einem Gyro und den Zweiten direkt vom Empfänger.

            LED dürfte kein Problem sein aber um eine kleine Transistoschaltung wirst Du nicht rum kommen. Es gibt auch fertige Relaisplatinen. Die Kosten keine 5 Euro für 2 Kanäle, Optokoppler inklusiv.

            Das Arduino Nano ist klein und leicht. Meistens bekommt man es ohne verlötete Stiftleisten, man kann also leicht Servokabel anlöten. Anbei ein Bild.

            Programmierung ist einfach. Du brauchst nur das USB Kabel und musst die Software runterladen.

            20141110_2202251625694145.jpg

            Kommentar

            • Thomas_CZ
              Member
              • 10.07.2009
              • 117
              • Thomas
              • München

              #7
              AW: Scaleheli und arduino Board

              Hallo,

              ich habe auf Basis eines Arduino Mega (Platine neu angefertigt, um eigene Hardware gleich on board zu haben) die Steuerung von einem Flettner aufgebaut.

              Damit werden alle Servos und auch frei parametrierbare ACL angesteuert. Funktioniert super.

              SourceCode im Anhang:
              Es sind mehrere Modes parametrierbar (Blinkmuster),
              Jeder Mode hat eine Sequenz an Timeslots, die in Dauer (uint16_t Time) und in LED Muster (Byte ACL) definiert werden können

              void SetACLParameter(byte Mode, byte Timeslot, byte ACL);
              void SetACLTime(byte Mode, byte Timeslot, uint16_t Time);

              Diese parametriere ich über die serielle Schnittstelle und speichere sie im EEPROM ab. von der Fernbedienung schalte ich die Modes dann mit SetMode bzw NextMode(void); durch.

              Hardware:
              für LEDs NPN Transistoren z.b. BCR114 und einen Strombegrenzungswiderstand.

              Vom Flettner wird später berichtet... soviel vorweg: als Trainer fliegt er schon! Somit kannst du das Arduino auch für komplexere Aufgaben verwenden.

              Gruß
              Thomas
              Angehängte Dateien
              Zuletzt geändert von Thomas_CZ; 11.11.2014, 06:57.

              Kommentar

              • sepp62
                Member
                • 26.06.2011
                • 341
                • Bernd

                #8
                AW: Scaleheli und arduino Board

                Ich habe diese Steuerung gebaut:



                Klein, billig, frei programmierbar und kaum Lötaufwand. Man kann über den Empfänger mehrere Beleuchtungsmuster inkl. einem Landescheinwerfer-Servo steuern

                Der "Treiberanteil" ist variabel nach Wunsch (Vorschlag liegt bei).

                Hat sich in meiner 500er-Huey bestens bewährt.

                Kommentar

                • athome
                  sudar.ch
                  Onlineshop
                  • 14.04.2009
                  • 802
                  • Lukacs
                  • Aargau (Schweiz)

                  #9
                  AW: Scaleheli und arduino Board

                  Hallo Stefan
                  Ja ich verwende in meiner Agusta ein Arduino Nano Board mit eigenem Treiber als Beleuchtung. Das ganze ist per Fernsteuerung schaltbar oder aber bei nicht eingesteckter Verbindung (Kanal) Leuchtet und Blinkt's auch so
                  Gruss Lukacs
                  Zuletzt geändert von athome; 11.11.2014, 20:30.
                  Homepage:
                  http://www.sudar.ch und http://www.turbinenheli.ch

                  Kommentar

                  • steveman
                    Senior Member
                    • 16.05.2007
                    • 4226
                    • Stefan
                    • Österreich

                    #10
                    AW: Scaleheli und arduino Board

                    Danke schon mal, da muss ich mich mit der Materie noch genauer befassen.
                    MfG Stefan
                    Bo105, 2x Jetranger, Bell212, Ecureuil, Lama, Logos, Specter, Omp M2

                    Kommentar

                    • Torsion
                      Member
                      • 15.07.2012
                      • 285
                      • Michael

                      #11
                      AW: Scaleheli und arduino Board

                      Zitat von steveman Beitrag anzeigen
                      ... da muss ich mich mit der Materie noch genauer befassen.
                      Einsteiger-Projekt: LED-Lichteffekte mit Arduino | c't

                      Als Einstieg kann man dies mal lesen. Die 4,20€ für die c't sind gut investiert. Gibt's bis Samstag auch noch am Kiosk zu kaufen.

                      Kommentar

                      • athome
                        sudar.ch
                        Onlineshop
                        • 14.04.2009
                        • 802
                        • Lukacs
                        • Aargau (Schweiz)

                        #12
                        AW: Scaleheli und arduino Board

                        Das könnte dir helfen

                        Meine Beleuchtung und Blinkprogramm für meine Agusta A109K2



                        /*

                        Blink Projekt für Agusta A109k2 mit Schalter um die Beleuchtung ein und auszuschalten
                        (Ohne Schalter ist die Anlage ein mit Schalter und Programmiert zwischen 1350 - 1460 können die LEDs abeschaltet werden)
                        Author: Lukacs Sudar Familie Sudar
                        Date: 18.6.14

                        Revision:1.1.0

                        */

                        #include <ServoIn.h>
                        #include <Timer1.h>

                        int InterneLed = 13; // Interne LED
                        int led2 = 2; // Ausgangspin für LED
                        int led3 = 3; // Ausgangspin für LED
                        int led4 = 4; // Ausgangspin für LED
                        int led5 = 5; // Ausgangspin für LED
                        int led6 = 6; // Ausgangspin für LED
                        int led7 = 7; // Ausgangspin für LED
                        int led8 = 8; // Ausgangspin für LED
                        int led9 = 9; // Ausgangspin für LED
                        int randNumber; // Zufallsnummer

                        // Definition und Zuweisung der Variablen, beziehungsweise ßbergabe der Konstanten an den Compiler
                        #define SERVOS 4
                        uint16_t g_values[SERVOS]; // Ausgabe Speicherort für die Servo- Werte
                        uint8_t g_workIn[SERVOIN_WORK_SIZE(SERVOS)]; // Dies wird benötigt, damit die ServoIn Funktion funktioniert
                        rc::ServoIn g_ServoIn(g_values, g_workIn, SERVOS); // Eine Routine aus der RC- Library wird initialisiert


                        // Die Setup Routine läuft einmal nach dem Reset:
                        void setup() {
                        // initialize the digital pin as an output.
                        pinMode(InterneLed, OUTPUT);
                        pinMode(led2, OUTPUT);
                        pinMode(led3, OUTPUT);
                        pinMode(led4, OUTPUT);
                        pinMode(led5, OUTPUT);
                        pinMode(led6, OUTPUT);
                        pinMode(led7, OUTPUT);
                        pinMode(led8, OUTPUT);
                        pinMode(led9, OUTPUT);
                        pinMode(10, INPUT);


                        // Das Servo Signal, welches die LEDs schalten soll muss an Digital Pin 10 angeschlossen werden, die Signale an Pins 11, 12 werde ebenfalls eingelesen und seriell ausgegeben



                        randomSeed(analogRead(0));

                        // Timer 1 wird für das Programm benötigt und wird hier initialisiert
                        rc::Timer1::init();


                        // Um ßnderungen an den Pins zu erkennen werden Pin Change Interrupts verwendet

                        // Es werden die Pin Change Interrupts für PB0-3 verwendet (entspricht dem Digital Pin 10)
                        PCMSK0 = (1 << PCINT2);

                        // Aktivieren des Pin Change Interrupts 0
                        PCICR = (1 << PCIE0);

                        // Beginne das ßberwachen der Pins
                        g_ServoIn.start();

                        // Initialisieren der seriellen Schnittstelle zwecks Debugging
                        Serial.begin(57600); // Baudrate von 57600
                        }

                        // the loop routine runs over and over again forever:
                        void loop() {

                        // Einlesen der hereinkommenden Werte
                        g_ServoIn.update();

                        // ab hier wird festgelegt, was mit den nun in g_values gespeicherten Servo- Werten passieren soll

                        // serielle Ausgabe der 4 eingelesenen Kanäle mit 57600 baud
                        Serial.print(g_values[0]);
                        Serial.println();
                        Serial.print(g_values[1]);
                        Serial.println();
                        Serial.print(g_values[2]);
                        Serial.println();
                        Serial.print(g_values[3]);
                        Serial.println();
                        Serial.println("********************************** *********");


                        // Auswertung der 1. Servo- Eingangs an Digital- Pin 10, wenn Wert zwischen 1350 und 1460 ist gehen die LEDs aus, bei allen anderen Werten an!
                        // (sobald man kein RC Signal anhängt pollt der Eingang deshalb muss der Wert breit gewählt werden 1350-1460)
                        if (g_values[2] >= 1350 && g_values[2] <= 1460)
                        {
                        digitalWrite(InterneLed, LOW); // abschalten der internen LED
                        digitalWrite(led2, LOW); // Grün Recht
                        digitalWrite(led3, LOW); // Rot Links
                        digitalWrite(led4, LOW); // Rot Blink unten
                        digitalWrite(led5, LOW); // Grün Blink oben
                        digitalWrite(led6, LOW); // Weiss hinten

                        }
                        else //if (g_values[2] > 1600)
                        {
                        digitalWrite(InterneLed, HIGH); // Anschalten der internen LED
                        digitalWrite(led2, HIGH); // Grün Recht
                        // hier dein Blinkmuster
                        }
                        }

                        // Ab hier folgt der Code, welcher für das Handling der Interrupts zuständig ist- dieser sollte nicht verändert werden

                        static uint8_t lastB = 0;

                        ISR(PCINT0_vect)
                        {
                        uint8_t newB = PINB;
                        uint8_t chgB = newB ^ lastB;
                        lastB = newB;

                        // Hat sich einer der Werte verändert?
                        if (chgB)
                        {
                        // Wenn ja- welcher?
                        if (chgB & _BV(0))
                        {
                        g_ServoIn.pinChanged(0, newB & _BV(0));
                        }
                        if (chgB & _BV(1))
                        {
                        g_ServoIn.pinChanged(1, newB & _BV(1));
                        }
                        if (chgB & _BV(2))
                        {
                        g_ServoIn.pinChanged(2, newB & _BV(2));
                        }
                        if (chgB & _BV(3))
                        {
                        g_ServoIn.pinChanged(3, newB & _BV(3));
                        }
                        }
                        }




                        Gruss Lukacs
                        Homepage:
                        http://www.sudar.ch und http://www.turbinenheli.ch

                        Kommentar

                        Lädt...
                        X