annuncio

Comprimi
Ancora nessun annuncio.

Interfaccia FPV per Flight System G940

Comprimi
X
  • Filtro
  • Ora
  • Visualizza
Elimina tutto
nuovi messaggi

  • Interfaccia FPV per Flight System G940

    Chiedo a tutti voi del forum se esiste un interfaccia FPV per Flight System G940.

    Sollevare un modello di aereo o ancora meglio di elicottero seduto da una consolle con occhiali 3d.

    Ma gestire il tutto come nella realtà con i pedali del G940 il rotore di coda ed impugnando la barra del ciclico con la destra come nel simulatore per poi regolare il governor (collettivo + gas ) con i comandi a sinistra.
    "volare è impossibile" era un sognatore io continuerò nelle orme di mio Padre.
    Matilde sua figlia.

  • #2
    no non esiste

    forse qualche cosa di artigianale ma di produzione niente, sarebbe un buon spunto di inizio per i nostri smanettoni programmatori...

    Commenta


    • #3
      interfaccia FPV per FLIGHT SYSTEM G940

      PCTX ServoCommander

      E' un software progettato per consentire ai dispositivi di input come, mouse, tastiere e joystick pad il controllo standard apparecchiature RC.

      Quando viene utilizzato con il PCTx, 25 Servo Controller, o WiFi Servo Controller Il software permette assi joystick, pulsanti, cursori, e chiama ad essere mappato a R / C servi e controller del motore.

      Tutto ciò che può essere collegato a un ricevitore A / R, C o servo regolatore può essere configurato e controllato con ServoCommander.

      Il software supporta tutte le finestre del joystick e dispositivi di input tra cui gamepad, joystick, cerchi in gioco così come l'auricolare z800 e il mouse.

      C'è anche un interfaccia web che può essere utilizzato per controllare un dispositivo remoto su Internet!

      per maggiori dettagli visitare il link

      Endurance R/C -ServoCommander
      "volare è impossibile" era un sognatore io continuerò nelle orme di mio Padre.
      Matilde sua figlia.

      Commenta


      • #4
        ...e allora se lo sapevi perchè l'hai chiesto

        Commenta


        • #5
          interfaccia FPV per FLIGHT SYSTEM G940

          Ti ringrazio Gualtiero infatti sei stato proprio tu a darli l'imbeccata di risolvere il problema in ambito informatico.

          Come vedi mi sono subito dato da fare documentandomi nel web.

          Ma per prudenza ho inviato al seguente indirizzo tech@endurance-rc.com

          il seguente messaggio :

          Dear Endurance r/c software PCTX ServoCommander can be compatible with Logitch Flight System G940 in the FPV.

          Spero che la Endurance RC mi degni di risposta positiva; perchè effettivamente
          anche se occorrerebbe un micro pc per interfacciare il tutto si potrebbe volare
          con logitech FLIGHT SYSTEM G940 rendendo l FPV ancora più entusiasmante di
          quanto attualmente sarà.
          "volare è impossibile" era un sognatore io continuerò nelle orme di mio Padre.
          Matilde sua figlia.

          Commenta


          • #6
            Originariamente inviato da Mach .99 Visualizza il messaggio
            ...e allora se lo sapevi perchè l'hai chiesto


            Per Volare é impossibile:
            Puoi rivolgerti anche a Melihk...il prodotto è decisamente più giovane e più cheap dell'endurance oltre che in continuo sviluppo grazie anche alla comunità di RcGroups:
            CompuFly USBtoPPM Converter
            Supporta qualsiasi periferica che dialoghi in usb; non avrai problemi con il tuo G940 ma scordati il force-feedback. L'unico prodotto in commercio che lo supporta e solo per una ristretta cerchia di game controller (al momento uno..) è questo:
            ForceFly [ForceFly] - $279.95USD : New Generation Hobbies, The Art of FPV Flying
            Ma stiamo parlando di un' altra cosa visto che oltre al discorso del FFeedback veramente ingegnoso è un vero e proprio usb host. Che significa? Che con i primi due avrai sempre bisogno di un pc dietro e con questo no; puoi attaccarlo direttamente alla tua radio e configurarlo a piacere.
            Ciao!

            PS: Mi permetto di sottolineare un aspetto che emerge quasi sempre dai tuoi post..una specie di autocompiacenza nel cercare conforto dai tuoi insuccessi modellistici o dai tuoi sogni di poter volare senza sforzo in una poltrona con i popcorn a fianco e una marea di elettronica intorno. Beh, scordatelo... Non lo dico per smontarti, anzi. Il volo per sua stessa natura è impegno, regola e disciplina. Niente sta su in aria per regalo o caso, checchè qui dentro qualcuno sostenga voti a favore dell'imprivvisazione.
            Buttati all'aria aperta, rompi, disfa con il tuo coassiale o con l'ultimo dei giocattoli ma rischia piuttosto che sognare voli "crashproof" o emozioni lontane anni luce dalla realtà del vento. Anche con il tuo bel 940 e la manetta del collettivo a fianco sarà un bel casino tenere un 450 in aria, orientarti, avere pieno controllo del sistema video e controllare tutta la marea di paremetri presenti nel videopilotaggio! Un passo alla volta.
            Ri-ciao!
            sandro

            Commenta


            • #7
              @Volare é impossibile:
              E tu affideresti il tuo modello nelle "mani" di un sistema macchinoso e instabile come Windows?

              Everybody sing this song

              Commenta


              • #8
                interfaccia FPV per FLIGHT SYSTEM G940

                Frazz per ripetere la famosa frase posso confermare che sò come crascerà ma non sò come e se mai volerà; ma prima o poi dovrò risicare no, e quindi vedremo.

                Riguardo agli insuccessi ; ti do ragione Frazz; ma converrai come tutti che più che
                compiacenza è una forma di farsi coraggio a non gettare subito la spugna; faccio
                un esempio;

                sintetizzare una sostanza in chimica per un chimico significa usare la teoria ma correre i rischi che corri nel fare la pratica del laboratorio e significa anche andare in contro a dei pericoli e a volte a degli insuccessi dovuti sempre ai dei fattori imprevisti.

                Se oggi possiamo discutere accademicamente su ciò che discutiamo; questo è
                retaggio del nostro bagaglio culturale; della nostra educazione ; e della visione
                del mondo che abbiamo.

                IL mio schema mentale magari non sarà condivisibile dai più; ma credimi che mi
                è sembrato demenziale fare un programma televisivo per sapere quale era
                l'Italiano più grande di tutti i tempi.

                Io che come riferimento ho sempre avuto Leonardo da Vinci, ed è anche grazie a
                lui se il volo oggi è realtà, non avrei perso tempo a fare una farsa di programma.
                Secondo me in ogni individuo esiste la potenzialità del genio; occorre solo tirarla
                fuori, e per farlo occorre essere disposti a vivere anche l'impopolarità è gli insuccessi.

                Non mangio il pop corn perchè serve solo a far fare soldi al dentista; in quanto a Guglio dico da Ubuntiano che ha perfettamente ragione sul sistema operativo
                Microsoft.

                XP e Vista sono dei monoblocchi che fanno da grande fratello alle lobbi che ci controllano , e che decidono il mercato e le nostre sorti.
                Per la gente comune che non ha dimestichezza con comandi da terminale e non opera in modalità super utente con routine di programmazione, questi sistemi operativi però sono una panacea perchè non occorre una seria istruzione.
                "volare è impossibile" era un sognatore io continuerò nelle orme di mio Padre.
                Matilde sua figlia.

                Commenta


                • #9
                  Allora bisogna anche trovare un programma che giri in ambiente nix...

                  Everybody sing this song

                  Commenta


                  • #10
                    interfaccia FPV per FLIGHT SYSTEM G940

                    Guglio mettiamo il caso nostro che è quello più probabile perchè il 90 % dei software sono Winzoz che come una piovra li fornisce assieme al dispositivo specifico che noi dobbiamo utilizzare quì le cose iniziano a complicarsi; perchè
                    difficilmente troveremo un programma di configurazione che giri nativamente su GNU/Linux per cui il primo tentativo da fare nel caso ci venga fornito un software che funziona solamente su MicroWinzoz è tendare di far funzionare tale programma con Wine.
                    Wine è più di un emulatore e una volta configurato istallato wine, dovremo incrociare le dita e sperare che il software Winzoz funzioni con wine.

                    Se tutto andrà bene basterà configurare il nostro software per farlo comunicare sulla COM1 (o sulla porta che abbiamo creato in wine) per far funzionare il tutto anche sotto GNU/Linux; altrimenti occorrerà munirsi di pazienza certosina e cominciare da zero.

                    Cominciare da zero significa che per prima cosa dovremo collegare i dispositivi
                    USB uno per volta e lanciare il comando lsusb per ottenere i codici esadecimali
                    vendor e productor che dovranno essere inseriti da terminale in un file che li farà
                    riconoscere ad ogni avvio.

                    Passo successivo è complicatissimo perchè entreremo sicuramente in un linguaggio di programmazione che implica l'assegnazione di funzioni on off delle periferiche di imput e di output con varianti step salti condizionati loop etc.
                    tipiche e specifiche in ogni tipo di linguaggio di programmazione.

                    Mi riservo di ampliare la letteratura in questione per la nostra fattispecie; il che
                    mi ricorda una autosfida vinta nel 1982 quando programmai un Radio joystick per un Commodore 64 istallato su una fiat 500 ed alimentato con Inverter.

                    Trasmisi la versione di Latino a mia sorella usando un videosender amplificando il canale 36 con un finalino da un watt.

                    Mi sono formato negli anni 80 con quella sorta di Latino dei programmatori che sta alla base di ogni linguaggio L'MS DOS; e tuttora quando vedo annaspare qualche analista Aziendale in banali problemi spesso li risolvo con semplici routine in MS DOS con estenzione bat.
                    "volare è impossibile" era un sognatore io continuerò nelle orme di mio Padre.
                    Matilde sua figlia.

                    Commenta


                    • #11
                      E installare un bel virtualbox con winzoz potrebbe funzionare?
                      Dalle mie (poche) esperienze in ambiente nix con Wine ho sempre avuto problemi

                      Everybody sing this song

                      Commenta


                      • #12
                        Guglio ecco un esempio di linguaggio programmazione tratto

                        da Melihk CompuFly USBtoPPM Converter di cui ho appreso esistenza da

                        Frazz e non ho resistito a decoprimerlo per vedere alcune routine di programma

                        sebbene per quanto riguarderà gli eseguibili non potrò far nulla.

                        Le righe di programma che seguono come immaginavo strutturano un programma principale che si avvale di sotto programmi a cui sono attribuite le
                        funzioni della periferica di Imput ComPort1; e avvia il diagnostico per stabilire
                        la porta se è di tipo seriale o no.

                        Successivamente noterai persino le sub routine che servono a calibrare i segnali
                        PPM e quindi alla attribuzione dei canali in modalità normale o reverse; quindi per la taratura delle escursioni dei servi; ed infine impostati tutti i parametri ha
                        persino un timer di 8 secondi per avviare il riavvio del sistema con tutti i parametri
                        registrati, chiedendo anche di spegnere la radio.




                        {
                        * Name: unit1.pas
                        * Project: Flytron Compufly USBtoPPM converter interface 1.0
                        * Author: Melih Karakelle
                        * Creation Date: 2010-02-15
                        * Tabsize: 4
                        * Copyright: (c) 2010 by Flytron.com
                        * License: GNU GPL v2 (see License.txt)
                        * This Revision: $Id: unit1.pas 2010-03- 10 10:03:19Z cs $
                        }


                        unit Unit1;

                        interface

                        uses
                        Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
                        Dialogs, StdCtrls, CPort, Buttons, ExtCtrls, ComCtrls,
                        DxJoystick,Math,IniFiles;

                        type
                        TForm1 = class(TForm)
                        ComPort1: TComPort;
                        DxJoystick1: TDxJoystick;
                        Timer1: TTimer;
                        GroupBox1: TGroupBox;
                        Button3: TButton;
                        ComboBox1: TComboBox;
                        ComboBox3: TComboBox;
                        GroupBox2: TGroupBox;
                        Reverse1: TCheckBox;
                        Reverse2: TCheckBox;
                        Reverse3: TCheckBox;
                        Reverse4: TCheckBox;
                        Reverse5: TCheckBox;
                        Reverse6: TCheckBox;
                        Reverse7: TCheckBox;
                        Trim7: TScrollBar;
                        Trim6: TScrollBar;
                        Trim5: TScrollBar;
                        Trim4: TScrollBar;
                        Trim3: TScrollBar;
                        Trim2: TScrollBar;
                        Trim1: TScrollBar;
                        ServoBar1: TProgressBar;
                        Label7: TLabel;
                        Label9: TLabel;
                        ServoBar2: TProgressBar;
                        ServoBar3: TProgressBar;
                        Label10: TLabel;
                        Label11: TLabel;
                        ServoBar4: TProgressBar;
                        ServoBar5: TProgressBar;
                        Label12: TLabel;
                        Label13: TLabel;
                        ServoBar6: TProgressBar;
                        ServoBar7: TProgressBar;
                        Label14: TLabel;
                        Label15: TLabel;
                        Label16: TLabel;
                        EPA1: TScrollBar;
                        EPA2: TScrollBar;
                        EPA3: TScrollBar;
                        EPA4: TScrollBar;
                        EPA5: TScrollBar;
                        EPA6: TScrollBar;
                        EPA7: TScrollBar;
                        GroupBox3: TGroupBox;
                        ComboBox2: TComboBox;
                        GroupBox4: TGroupBox;
                        Label1: TLabel;
                        barX: TProgressBar;
                        btn1: TPanel;
                        btn2: TPanel;
                        btn3: TPanel;
                        btn4: TPanel;
                        btn8: TPanel;
                        btn7: TPanel;
                        btn6: TPanel;
                        btn5: TPanel;
                        btn9: TPanel;
                        btn10: TPanel;
                        btn11: TPanel;
                        btn12: TPanel;
                        btn16: TPanel;
                        btn15: TPanel;
                        btn14: TPanel;
                        btn13: TPanel;
                        barRY: TProgressBar;
                        barRX: TProgressBar;
                        barRZ: TProgressBar;
                        barZ: TProgressBar;
                        BarY: TProgressBar;
                        Label2: TLabel;
                        Label3: TLabel;
                        Label4: TLabel;
                        Label5: TLabel;
                        Label6: TLabel;
                        Memo1: TMemo;
                        Shape1: TShape;
                        red_dot: TShape;
                        barS2: TProgressBar;
                        Label17: TLabel;
                        Label18: TLabel;
                        barS1: TProgressBar;
                        procedure FormCreate(Sender: TObject);
                        procedure FormDestroy(Sender: TObject);
                        procedure PPM(channel: integer; value : integer);
                        procedure Servo(channel,value,max : integer; inverse : boolean;trim: integer;epa: integer);
                        procedure Timer1Timer(Sender: TObject);
                        procedure Button3Click(Sender: TObject);
                        procedure ComboBox2Change(Sender: TObject);
                        procedure Reverse1Click(Sender: TObject);

                        private
                        { Private declarations }
                        public
                        { Public declarations }
                        end;

                        var
                        Form1: TForm1;
                        posX,posY,posZ,posHTX,posHTY,posRX,posRY,posRZ,pos SWC,posS1,posS2 : integer;

                        eksen_value : array of integer;
                        eksen_max : array of integer;
                        eksen : array of integer;

                        implementation

                        {$R *.dfm}

                        function read_ini():bool;
                        var
                        ini: TIniFile;
                        i:string;
                        j: integer;
                        begin
                        ini := TIniFile.Create(extractfilepath(application.ExeNam e)+'settings.ini');
                        try

                        Form1.ComPort1.Port := ini.ReadString('SETTINGS','PORT','COM1');
                        Form1.ComboBox2.Text := Form1.ComPort1.Port;

                        Form1.ComboBox1.ItemIndex := ini.ReadInteger('SETTINGS','ChannelCount',5);
                        Form1.ComboBox3.ItemIndex := ini.ReadInteger('SETTINGS','PPMType',0);


                        Form1.Reverse1.Checked := ini.ReadBool('INVERT','CHANNEL1',false);
                        Form1.Reverse2.Checked := ini.ReadBool('INVERT','CHANNEL2',false);
                        Form1.Reverse3.Checked := ini.ReadBool('INVERT','CHANNEL3',false);
                        Form1.Reverse4.Checked := ini.ReadBool('INVERT','CHANNEL4',false);
                        Form1.Reverse5.Checked := ini.ReadBool('INVERT','CHANNEL5',false);
                        Form1.Reverse6.Checked := ini.ReadBool('INVERT','CHANNEL6',false);
                        Form1.Reverse7.Checked := ini.ReadBool('INVERT','CHANNEL7',false);

                        Form1.Trim1.Position := ini.ReadInteger('TRIM','CHANNEL1',0);
                        Form1.Trim2.Position := ini.ReadInteger('TRIM','CHANNEL2',0);
                        Form1.Trim3.Position := ini.ReadInteger('TRIM','CHANNEL3',0);
                        Form1.Trim4.Position := ini.ReadInteger('TRIM','CHANNEL4',0);
                        Form1.Trim5.Position := ini.ReadInteger('TRIM','CHANNEL5',0);
                        Form1.Trim6.Position := ini.ReadInteger('TRIM','CHANNEL6',0);
                        Form1.Trim7.Position := ini.ReadInteger('TRIM','CHANNEL7',0);

                        Form1.EPA1.Position := ini.ReadInteger('EPA','CHANNEL1',100);
                        Form1.EPA2.Position := ini.ReadInteger('EPA','CHANNEL2',100);
                        Form1.EPA3.Position := ini.ReadInteger('EPA','CHANNEL3',100);
                        Form1.EPA4.Position := ini.ReadInteger('EPA','CHANNEL4',100);
                        Form1.EPA5.Position := ini.ReadInteger('EPA','CHANNEL5',100);
                        Form1.EPA6.Position := ini.ReadInteger('EPA','CHANNEL6',100);
                        Form1.EPA7.Position := ini.ReadInteger('EPA','CHANNEL7',100);

                        for j:=1 to 7 do
                        eksen[j] := ini.ReadInteger('CHANNELS','CHANNEL'+inttostr(j),j );

                        finally
                        ini.Free;
                        end;
                        Result := True;
                        end;

                        function write_ini():bool;
                        var
                        ini: TIniFile;
                        i:string;
                        begin
                        ini := TIniFile.Create(extractfilepath(application.ExeNam e)+'settings.ini');
                        try
                        ini.WriteString('SETTINGS','PORT',Form1.ComboBox2. Text);

                        ini.WriteInteger('SETTINGS','ChannelCount',Form1.C omboBox1.ItemIndex);
                        ini.WriteInteger('SETTINGS','PPMType',Form1.ComboB ox3.ItemIndex);

                        ini.WriteBool('INVERT','CHANNEL1',Form1.Reverse1.C hecked);
                        ini.WriteBool('INVERT','CHANNEL2',Form1.Reverse2.C hecked);
                        ini.WriteBool('INVERT','CHANNEL3',Form1.Reverse3.C hecked);
                        ini.WriteBool('INVERT','CHANNEL4',Form1.Reverse4.C hecked);
                        ini.WriteBool('INVERT','CHANNEL5',Form1.Reverse5.C hecked);
                        ini.WriteBool('INVERT','CHANNEL6',Form1.Reverse6.C hecked);
                        ini.WriteBool('INVERT','CHANNEL7',Form1.Reverse7.C hecked);

                        ini.WriteInteger('TRIM','CHANNEL1',Form1.Trim1.Pos ition);
                        ini.WriteInteger('TRIM','CHANNEL2',Form1.Trim2.Pos ition);
                        ini.WriteInteger('TRIM','CHANNEL3',Form1.Trim3.Pos ition);
                        ini.WriteInteger('TRIM','CHANNEL4',Form1.Trim4.Pos ition);
                        ini.WriteInteger('TRIM','CHANNEL5',Form1.Trim5.Pos ition);
                        ini.WriteInteger('TRIM','CHANNEL6',Form1.Trim6.Pos ition);
                        ini.WriteInteger('TRIM','CHANNEL7',Form1.Trim7.Pos ition);

                        ini.WriteInteger('EPA','CHANNEL1',Form1.EPA1.Posit ion);
                        ini.WriteInteger('EPA','CHANNEL2',Form1.EPA2.Posit ion);
                        ini.WriteInteger('EPA','CHANNEL3',Form1.EPA3.Posit ion);
                        ini.WriteInteger('EPA','CHANNEL4',Form1.EPA4.Posit ion);
                        ini.WriteInteger('EPA','CHANNEL5',Form1.EPA5.Posit ion);
                        ini.WriteInteger('EPA','CHANNEL6',Form1.EPA6.Posit ion);
                        ini.WriteInteger('EPA','CHANNEL7',Form1.EPA7.Posit ion);
                        finally
                        ini.Free;
                        end;
                        Result := True;
                        end;

                        procedure EnumComPorts(Ports: TStrings);
                        var
                        KeyHandle: HKEY;
                        ErrCode, Index: Integer;
                        ValueName, Data: string;
                        ValueLen, DataLen, ValueType: DWORD;
                        TmpPorts: TStringList;
                        begin
                        ErrCode := RegOpenKeyEx(
                        HKEY_LOCAL_MACHINE,
                        'HARDWARE\DEVICEMAP\SERIALCOMM',
                        0,
                        KEY_READ,
                        KeyHandle);

                        if ErrCode <> ERROR_SUCCESS then
                        raise EComPort.Create(CError_RegError, ErrCode);

                        TmpPorts := TStringList.Create;
                        try
                        Index := 0;
                        repeat
                        ValueLen := 256;
                        DataLen := 256;
                        SetLength(ValueName, ValueLen);
                        SetLength(Data, DataLen);
                        ErrCode := RegEnumValue(
                        KeyHandle,
                        Index,
                        PChar(ValueName),
                        {$IFDEF DELPHI_4_OR_HIGHER}
                        Cardinal(ValueLen),
                        {$ELSE}
                        ValueLen,
                        {$ENDIF}
                        nil,
                        @ValueType,
                        PByte(PChar(Data)),
                        @DataLen);

                        if ErrCode = ERROR_SUCCESS then
                        begin
                        SetLength(Data, DataLen - 1);
                        TmpPorts.Add(Data);
                        Inc(Index);
                        end
                        else
                        if ErrCode <> ERROR_NO_MORE_ITEMS then
                        raise EComPort.Create(CError_RegError, ErrCode);

                        until (ErrCode <> ERROR_SUCCESS) ;

                        TmpPorts.Sort;
                        Ports.Assign(TmpPorts);
                        finally
                        RegCloseKey(KeyHandle);
                        TmpPorts.Free;
                        end;

                        end;

                        // PPM Signal Push to Device
                        procedure TForm1.PPM(channel,value : integer);
                        var
                        data : string;
                        begin
                        data := 'SET'+chr(channel)+chr(value div 256)+ chr(value mod 256);
                        if (COMPort1.Connected) then COMPort1.WriteStr(data);
                        end;

                        // SERVO SIGNAL CALCULATION
                        procedure TForm1.Servo(channel,value,max : integer; inverse : boolean;trim: integer;epa: integer);
                        var
                        data : integer;
                        begin

                        data := floor(1024 *(value /max));

                        data := ((data - 512) * epa) div 100 ;
                        if (data>512) then data := 512;
                        if (data<-512) then data := -512;
                        data := data + 512;

                        data := data + (5*trim);


                        if (data<0) then data := 0;
                        if (data>1024) then data := 1024;
                        if inverse then data := 1024 - data;



                        if (channel<16) then PPM(channel,700+data);



                        if (channel=1) then ServoBar1.Position := data;
                        if (channel=2) then ServoBar2.Position := data;
                        if (channel=3) then ServoBar3.Position := data;
                        if (channel=4) then ServoBar4.Position := data;
                        if (channel=5) then ServoBar5.Position := data;
                        if (channel=6) then ServoBar6.Position := data;
                        if (channel=7) then ServoBar7.Position := data;

                        end;



                        procedure TForm1.FormCreate(Sender: TObject);
                        var
                        i:integer;
                        Ports: TStrings;
                        begin

                        SetLength(eksen_value, 100);
                        SetLength(eksen_max, 100);
                        SetLength(eksen, 100);

                        Ports := TStringList.Create;
                        EnumComPorts(Ports);
                        ComboBox2.Items := Ports;

                        form1.Tag := 2;
                        read_ini();
                        form1.Tag := 3;

                        //COMPort1.Connected := true;

                        posHTX := 512;
                        posHTY := 512;
                        //Blank();

                        DxJoystick1.Active := true;
                        Timer1.Enabled:= true;
                        end;

                        procedure TForm1.FormDestroy(Sender: TObject);
                        begin
                        COMPort1.Connected := false;
                        end;




                        procedure TForm1.Timer1Timer(Sender: TObject);
                        begin

                        posRZ:=0;
                        posX := DxJoystick1.PositionX ;
                        if posX>barX.Max then barX.Max := posX;
                        if posX<barX.Min then barX.Min := posX;
                        barX.Position := posX ;

                        posY := DxJoystick1.PositionY ;
                        if posY>barY.Max then barY.Max := posY;
                        if posY<barY.Min then barY.Min := posY;
                        barY.Position := posY ;

                        posZ := DxJoystick1.PositionZ ;
                        if posZ>barZ.Max then barZ.Max := posZ;
                        if posZ<barZ.Min then barZ.Min := posZ;
                        barZ.Position := posZ ;

                        posRX := DxJoystick1.PositionRX ;
                        if posRX>barRX.Max then barRX.Max := posRZ;
                        if posRX<barRX.Min then barRX.Min := posRZ;
                        barRX.Position := posRX;

                        posRY := DxJoystick1.PositionRY ;
                        if posRY>barRY.Max then barRY.Max := posRY;
                        if posRY<barRY.Min then barRY.Min := posRY;
                        barRY.Position := posRY;

                        posRZ := DxJoystick1.PositionRZ ;
                        if posRZ>barRZ.Max then barRZ.Max := posRZ;
                        if posRZ<barRZ.Min then barRZ.Min := posRZ;
                        barRZ.Position := posRZ;


                        posS1 := DxJoystick1.PositionSlider1 ;
                        if posS1>barS1.Max then barS1.Max := posS1;
                        if posS1<barS1.Min then barS1.Min := posS1;
                        barS1.Position := posS1;

                        posS2 := DxJoystick1.PositionSlider2 ;
                        if posS2>barS2.Max then barS2.Max := posS2;
                        if posS2<barS2.Min then barS2.Min := posS2;
                        barS2.Position := posS2;


                        if (DxJoystick1.PointOfView1<>-1) then
                        begin
                        if (DxJoystick1.PointOfView1>0) AND (DxJoystick1.PointOfView1<18000) AND (posHTX < 1024) then posHTX := posHTX + 50;
                        if (DxJoystick1.PointOfView1>18000) AND (DxJoystick1.PointOfView1<36000) AND (posHTX > 0) then posHTX := posHTX - 50;
                        if ((DxJoystick1.PointOfView1>27000) OR (DxJoystick1.PointOfView1<9000)) AND (posHTY < 1024) then posHTY := posHTY + 50;
                        if ((DxJoystick1.PointOfView1<27000) AND (DxJoystick1.PointOfView1>9000)) AND (posHTY > 0) then posHTY := posHTY - 50;
                        end;


                        red_dot.Left := 260 + floor(sin(DegToRad(DxJoystick1.PointOfView1 div 100))*35);
                        red_dot.Top := 212 - floor(cos(DegToRad(DxJoystick1.PointOfView1 div 100))*35);

                        if (DxJoystick1.PointOfView1=-1) then begin red_dot.Left := 260; red_dot.Top := 212; end;



                        if DxJoystick1.Button[2] then
                        begin
                        posHTX := 512;
                        posHTY := 512;
                        end;

                        //barHTX.Position := posHTX ;
                        //barHTY.Position := posHTY ;


                        if DxJoystick1.Button[5] then posSWC := 1024;
                        if DxJoystick1.Button[6] then posSWC := 0;



                        if DxJoystick1.Button[1] then btn1.color:=clRed else btn1.color:=clSilver;
                        if DxJoystick1.Button[2] then btn2.color:=clRed else btn2.color:=clSilver;
                        if DxJoystick1.Button[3] then btn3.color:=clRed else btn3.color:=clSilver;
                        if DxJoystick1.Button[4] then btn4.color:=clRed else btn4.color:=clSilver;
                        if DxJoystick1.Button[5] then btn5.color:=clRed else btn5.color:=clSilver;
                        if DxJoystick1.Button[6] then btn6.color:=clRed else btn6.color:=clSilver;
                        if DxJoystick1.Button[7] then btn7.color:=clRed else btn7.color:=clSilver;
                        if DxJoystick1.Button[8] then btn8.color:=clRed else btn8.color:=clSilver;
                        if DxJoystick1.Button[9] then btn9.color:=clRed else btn9.color:=clSilver;
                        if DxJoystick1.Button[10] then btn10.color:=clRed else btn10.color:=clSilver;
                        if DxJoystick1.Button[11] then btn11.color:=clRed else btn11.color:=clSilver;
                        if DxJoystick1.Button[12] then btn12.color:=clRed else btn12.color:=clSilver;
                        if DxJoystick1.Button[13] then btn13.color:=clRed else btn13.color:=clSilver;
                        if DxJoystick1.Button[14] then btn14.color:=clRed else btn14.color:=clSilver;
                        if DxJoystick1.Button[15] then btn15.color:=clRed else btn15.color:=clSilver;
                        if DxJoystick1.Button[16] then btn16.color:=clRed else btn16.color:=clSilver;



                        //caption := inttostr(DxJoystick1.PointOfView1);

                        eksen_value[1] := barX.Position;
                        eksen_max[1] := barX.Max;
                        eksen_value[2] := barY.Position;
                        eksen_max[2] := barY.Max;
                        eksen_value[3] := barZ.Position;
                        eksen_max[3] := barZ.Max;
                        eksen_value[4] := barRX.Position;
                        eksen_max[4] := barRX.Max;
                        eksen_value[5] := barRY.Position;
                        eksen_max[5] := barRY.Max;
                        eksen_value[6] := barRZ.Position;
                        eksen_max[6] := barRZ.Max;
                        eksen_value[7] := barS1.Position;
                        eksen_max[7] := barS1.Max;
                        eksen_value[8] := barS2.Position;
                        eksen_max[8] := barS2.Max;
                        eksen_value[10] := posHTX;
                        eksen_max[10] := 1024;
                        eksen_value[11] := posHTY;
                        eksen_max[11] := 1024;
                        eksen_value[12] := posSWC;
                        eksen_max[12] := 1024;


                        Servo(1,eksen_value[eksen[1]],eksen_max[eksen[1]],Reverse1.checked,Trim1.Position,EPA1.Position );
                        Servo(2,eksen_value[eksen[2]],eksen_max[eksen[2]],Reverse2.checked,Trim2.Position,EPA2.Position);
                        Servo(3,eksen_value[eksen[3]],eksen_max[eksen[3]],Reverse3.checked,Trim3.Position,EPA3.Position);
                        Servo(4,eksen_value[eksen[4]],eksen_max[eksen[4]],Reverse4.checked,Trim4.Position,EPA4.Position);
                        Servo(5,eksen_value[eksen[5]],eksen_max[eksen[5]],Reverse5.checked,Trim5.Position,EPA5.Position);
                        Servo(6,eksen_value[eksen[6]],eksen_max[eksen[6]],Reverse6.checked,Trim6.Position,EPA6.Position);
                        Servo(7,eksen_value[eksen[7]],eksen_max[eksen[7]],Reverse7.checked,Trim7.Position,EPA7.Position);


                        {

                        Servo(1,barX.Position,barX.Max,Reverse1.checked,Tr im1.Position,EPA1.Position );
                        Servo(2,barY.Position,barY.Max,Reverse2.checked,Tr im2.Position,EPA2.Position);
                        Servo(3,barZ.Position,barZ.Max,Reverse3.checked,Tr im3.Position,EPA3.Position);
                        Servo(4,barRZ.Position,barRZ.Max,Reverse4.checked, Trim4.Position,EPA4.Position);
                        Servo(5,posHTX,1024,Reverse5.checked,Trim5.Positio n,EPA5.Position);
                        Servo(6,posHTY,1024,Reverse6.checked,Trim6.Positio n,EPA6.Position);
                        Servo(7,posSWC,1024,Reverse7.checked,Trim7.Positio n,EPA7.Position);

                        }
                        //Blank();


                        end;

                        procedure TForm1.Button3Click(Sender: TObject);
                        var
                        i: integer;
                        begin
                        timer1.Enabled := false;

                        COMPort1.WriteStr('SET'+chr(21)+chr(0)+chr(Combobo x1.ItemIndex+1));
                        sleep(500);
                        COMPort1.WriteStr('SET'+chr(22)+chr(0)+chr(Combobo x3.ItemIndex));


                        for i:=0 to 20 do
                        begin
                        COMPort1.WriteStr(chr(255));
                        sleep(10);
                        end;

                        write_ini();
                        ShowMessage('PPM Stream Type Changed, CompuFly will reboot automatically in 8 seconds'+chr(10)+'This setting will record into the Compufly you dont need setup it in next time');
                        ShowMessage('Please restart your transmitter from Power On/Off');
                        timer1.Enabled := true;

                        end;

                        procedure TForm1.ComboBox2Change(Sender: TObject);
                        begin
                        write_ini();
                        comport1.Port := ComboBox2.Text;
                        end;

                        procedure TForm1.Reverse1Click(Sender: TObject);
                        begin
                        if form1.Tag = 3 then write_ini();
                        end;

                        end.
                        "volare è impossibile" era un sognatore io continuerò nelle orme di mio Padre.
                        Matilde sua figlia.

                        Commenta


                        • #13
                          Eheeh ma io di questo codice non sono capace di modificare una cippa, apro il cancello di casa via sms e mi si accendono le luci in casa quando fa buio ma funziona tutto con un motore in PHP

                          Everybody sing this song

                          Commenta


                          • #14
                            Interfaccia FPV per Flight System G940

                            Guglio forse ho esagerato un tantino; ma quello che quotidianamente utilizziamo
                            nei comuni oggetti domotici come telefonini ; palmari ; Radiocomandi hanno come
                            comune denominatore la programmazione delle loro memorie interne meglio
                            conosciute come eprom.

                            Quindi il tuo sms apre il cancello avvalendosi proprio utilizzando una similia di quel
                            geroglifico che ti ho postato.

                            Tornando un passo indietro ma senza cadere in contraddizione perchè Ubuntiano
                            pacatamente dico; XP è instabile ma se XP se ne sta isolato in un micro pc senza
                            porcherie e con il minimo indispensabile per girare e fare una cosa sola ma fatta bene forse dico forse potrebbe lontano da assurdi aggiornamenti ed assillanti trojan mostrare il lato non oscuro della forza.
                            Uomo + PC = Forza Invincibile
                            PC - Uomo = Stupidità al quadrato
                            Uomo - PC = Creatività al quadrato
                            "volare è impossibile" era un sognatore io continuerò nelle orme di mio Padre.
                            Matilde sua figlia.

                            Commenta


                            • #15
                              In teoria dovrebbe funzionare, senza drivers (ovviamente) e soprattutto senza il velenoso antivirus...
                              Comunque ho provato a collegare la mia tx esky al pc con il cavo training in dotazione ma mi par di capire che questo adattatore decodifica e basta e nessuna porta com viene occupata..
                              Mi sembra abbastanza strano...

                              Originariamente inviato da volare è impossibile Visualizza il messaggio
                              Guglio forse ho esagerato un tantino; ma quello che quotidianamente utilizziamo
                              nei comuni oggetti domotici come telefonini ; palmari ; Radiocomandi hanno come
                              comune denominatore la programmazione delle loro memorie interne meglio
                              conosciute come eprom.

                              Quindi il tuo sms apre il cancello avvalendosi proprio utilizzando una similia di quel
                              geroglifico che ti ho postato.

                              Tornando un passo indietro ma senza cadere in contraddizione perchè Ubuntiano
                              pacatamente dico; XP è instabile ma se XP se ne sta isolato in un micro pc senza
                              porcherie e con il minimo indispensabile per girare e fare una cosa sola ma fatta bene forse dico forse potrebbe lontano da assurdi aggiornamenti ed assillanti trojan mostrare il lato non oscuro della forza.
                              Uomo + PC = Forza Invincibile
                              PC - Uomo = Stupidità al quadrato
                              Uomo - PC = Creatività al quadrato

                              Everybody sing this song

                              Commenta

                              Sto operando...
                              X