IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

logiciel de controle de maquette


Sujet :

VB.NET

  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut logiciel de controle de maquette
    bonjour tout le monde,
    voila, j'ai quelques compétences en programmation et j'aimerais en profiter pour créer un programme dans le but de controler une maquette de bateau a moteur, ou un avion à l'aide d'un joystick d'ordinateur (l'appreil sera biensur piloté depuis un pc).
    j'aimerais utiliser visual basic car il est très performant, mais je dois avouer que je ne sais pas du tout comment gérer le joystick. pourriez-vous me dire quelles bibliothèques je devrais utiliser et tout et tout ...
    je dois dire que c'est un projet assez important pour mois, mais je ne sais pas comment m'y prendre -_-

    comment dois_je faire dans mon programme pour dire qee je dois utiliser le joystick, comment dire, "si je pousse le manche vers la gauche, l'appareil tournera a gauche ..."
    enfin vous voyez ^^

    merci pour votre aide

  2. #2
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Sans parler d'interfacage joystick pour le moment, comment comptes tu envoyer tes infos sur ta maquette ? Une telecommande classique envoie les info au servo de la maquette en analogique, ton PC va sortir du numerique, tu as de quoi convertir ?
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  3. #3
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    j'ai pensé a ca aussi,, il doit bien y avoir un moyen de convertir les signaux ...
    mais le plus urgent c'est plutot la programmation des actions et tout ...
    c'est la premiere fois que j'essai un truc comme ca, quelle galère !!

  4. #4
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Tu trouveras ici un code en C je crois sur le pilotage d'un joystick :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
        using System;
        using System.Drawing;
        using System.Collections;
        using System.ComponentModel;
        using System.Windows.Forms;
        using System.Data;
        using Microsoft.DirectX;
        using Microsoft.DirectX.DirectInput;
        namespace test_manette
        {
        public class Form1 : System.Windows.Forms.Form
        {
        private System.ComponentModel.IContainer components;
        private System.Windows.Forms.TextBox lbjoy;
        private System.Windows.Forms.Timer timer1;
        private Hashtable joy;
        public Form1()
        {
        InitializeComponent();
        Device joystick=null;
        joy = new Hashtable();
        int i=0;
        foreach(
        DeviceInstance di in
        Manager.GetDevices(
        DeviceClass.GameControl,
        EnumDevicesFlags.AttachedOnly))
        {
        joy.Add(i,new Device(di.InstanceGuid));
        i++;
        }
        if(joy.Count == 0)
        {
        MessageBox.Show("pas de manettes");
        throw new Exception();
        }
        //entre la variation des axes.
        for(i = 0; i<joy.Count;i++)
        {
        joystick = (Device)joy[i];
        foreach(DeviceObjectInstance doi in joystick.Objects)
        {
        if((doi.ObjectId & (int)DeviceObjectTypeFlags.Axis) != 0)
        {
        joystick.Properties.SetRange(
        ParameterHow.ById,
        doi.ObjectId,
        new InputRange(-5000,5000));
        }
        }
        //met l'axe des manettes en mode absolue.
        joystick.Properties.AxisModeAbsolute = true;
        //change le niveau de cooperation.
        joystick.SetCooperativeLevel(
        this,
        CooperativeLevelFlags.NonExclusive |
        CooperativeLevelFlags.Background);
        //active le devices pour la capture.
        joystick.Acquire();
        }
        }
        protected override void Dispose( bool disposing )
        {
        if( disposing )
        {
        if (components != null)
        {
        components.Dispose();
        }
        }
        base.Dispose( disposing );
        }
        #region Windows Form Designer generated code
        private void InitializeComponent()
        {
        this.components = new System.ComponentModel.Container();
        this.lbjoy = new System.Windows.Forms.TextBox();
        this.timer1 = new System.Windows.Forms.Timer(this.components);
        this.SuspendLayout();
        //
        // lbjoy
        //
        this.lbjoy.Location = new System.Drawing.Point(0, 48);
        this.lbjoy.Multiline = true;
        this.lbjoy.Name = "lbjoy";
        this.lbjoy.Size = new System.Drawing.Size(344, 112);
        this.lbjoy.TabIndex = 0;
        this.lbjoy.Text = "textBox1";
        //
        // timer1
        //
        this.timer1.Enabled = true;
        this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
        //
        // Form1
        //
        this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
        this.ClientSize = new System.Drawing.Size(344, 310);
        this.Controls.Add(this.lbjoy);
        this.Name = "Form1";
        this.Text = "Manette";
        this.ResumeLayout(false);
        }
        #endregion
        [STAThread]
        static void Main()
        {
        Application.Run(new Form1());
        }
        private void timer1_Tick(object sender, System.EventArgs e)
        {
        Device joystick=null;
        string info="";
        for(int y = 0; y<joy.Count;y++)
        {
        joystick = (Device)joy[y];
        info += "Joystick["+y.ToString()+"]: ";
        //recupere le state du joystick.
        JoystickState state = joystick.CurrentJoystickState;
        //Capture les Positions.
        info += "X:" + state.X + " ";
        info += "Y:" + state.Y + " ";
        info += "Z:" + state.Z + " ";
        //Capture les boutons.
        byte[] buttons = state.GetButtons();
        for(int i = 0; i < buttons.Length; i++)
        {
        if(buttons[i] != 0)
        {
        info += "Button:" + i + " ";
        }
        }
        info +="\r\n";
        }
        lbjoy.Text = info;
        }
        }
        }

    Perso, je ne pense pas que ce soit la gestion du joystick qui soit le plus dur a faire (surtout que j'ai jamais essaye ), mais par contre il va te falloir un convertisseur digital/analogique pour envoyer ca sur ta telecommande, a moins qu'il n'y ait des telecommandes avec une entree digitale ????
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  5. #5
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    pour la partie conversion des signaux, je demanderais à un de mes profs, ca devrait aller je pense. je vais lire le code que tu m'as passé maintenant, merci beaucoup :

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Logiciel de controle onduleur
    Par guigui69 dans le forum Sécurité
    Réponses: 1
    Dernier message: 05/08/2009, 17h25
  2. [MySQL] logiciel pour realiser une maquette
    Par jerem7286 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/03/2008, 17h42
  3. Réponses: 6
    Dernier message: 05/09/2006, 23h11
  4. Logiciel de controle du "Wake up on lan"
    Par HNT dans le forum Hardware
    Réponses: 1
    Dernier message: 04/10/2005, 06h56
  5. Logiciel controle de pc a distance
    Par Mut dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 04/05/2005, 12h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo