Comment ouvrir une page web en soulevant un objet posé sur un microrupteur

Signaler
Messages postés
5
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
31 mars 2008
-
Messages postés
5
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
31 mars 2008
-
Bonjour,

J'ai réalisé une application (jeux pour enfants) à partir d'un logiciel de création de site web.
Pour rendre ludique ce jeu je voudrais qu'en soulevant un objet posé sur microrupteur (contacteur qui peut être connecté à la DB15 du PC) cela déclenche l'ouverture d'une page web.
Il y aurait 4 objets qui chacun déclencherait une page web différente.

Ma question : est-ce possible ?
si oui avec merci de me donner quelques pistes pour démarrer

6 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Salut
Oui, tout est possible.
La question est : où en es-tu ?
Lancer l'affichage d'une page Web ?
Détecter un contact ?

DB15 : connais pô
Il faudrait savoir à quoi correspond ce connecteur.
DB9/DB25 (port série) : tu peux essayer d'utiliser les signaux logiques genre RTS, CTS ...
Sinon, il y a aussi le connecteur parallèle ou encore un des contacts d'un clic souris

Il va falloir te renseigner sur ces interfaces ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
14782
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
16 avril 2021
154
Bonjour

Je pense qu'il parle du DB15 du port jeu (mais je ne sais pas comment y accéder autrement que par DirecX, DirectInput).

Nous captons le cockpit coupable qui a capoté
VB (6, .NET1&2), C++, C#.Net1
Mon site
Messages postés
5
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
31 mars 2008

Bonjour

C'est exact c'est le DB15 du port jeux.
L'intérêt que je voyais est d'une part il peut commander les 4 entrées / sorties nécessaire et d'autre part un seul DB15 peut être connecté aux 4 microrupteurs

Le microrupteur permet un contact tout ou rien tel qu'on peut en voir sur ce site
http://fr.farnell.com/jsp/search/results.jsp?N=0&No=75&Ntk=gensearch_004&Ntt=microrupteur&Ntx=
Un microrupteur à levier (comme le premier indiqué sur le site) ferait l'affaire

L'objet est posé dessus et en le soulevant cela déclenche l'ouverture de la page web (fichier htm).

Cordialement
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Ok
Hors mis le côté bricolage que tu peux facilement réaliser en achetant et bricolant une game-pad USB à 7 euros, ton vrai soucis est "Comment récupérer les états des boutons poussoirs d'une game-pad"
Je n'ai pas la réponse.
Fais des recherches là dessus et reviens poser cette question dans le forum si tu ne trouves pas

Quand tu auras trouvé la solution et mis en application ton projet, j'espère que nous fera l'honneur de poster ta source.
Ce genre de sujet n'est pas fréquent et, je trouve, intéressant.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Re
Je viens de faire une petite recherche et ... il existe des APIs pour questionner les gamepad et retourner, entree autre, la position des boutons.
J'ai fait l'essai avec ma gamepad qui a plein de boutons et ça marche très bien, suffira de décoder du binaire (nouveau challenge !)
Essaye ça qui est extrait modifié de API-Guide, un guide avec des exemples en VB6 de l'utilisation des APIs Windows (XP, pas Vista), API-Guide, gratuit par ce http://logiciel.codes-sources.com/logiciels/API-Guide-197.aspx

Option Explicit



' defines and structures
Const JOY_BUTTON1 = &H1
Const JOY_BUTTON2 = &H2
Const JOY_BUTTON3 = &H4
Const JOY_BUTTON4 = &H8
Const JOYERR_BASE = 160
Const JOYERR_NOERROR = (0)
Const JOYERR_NOCANDO = (JOYERR_BASE + 6)
Const JOYERR_PARMS = (JOYERR_BASE + 5)
Const JOYERR_UNPLUGGED = (JOYERR_BASE + 7)
Const MAXPNAMELEN = 32
Const JOYSTICKID1 = 0
Const JOYSTICKID2 = 1



Private Type JOYINFO
   X As Long
   Y As Long
   Z As Long
   Buttons As Long
End Type
Private Type JOYCAPS
   wMid As Integer
   wPid As Integer
   szPname As String * MAXPNAMELEN
   wXmin As Long
   wXmax As Long
   wYmin As Long
   wYmax As Long
   wZmin As Long
   wZmax As Long
   wNumButtons As Long
   wPeriodMin As Long
   wPeriodMax As Long
 End Type



Private Declare Function joyGetDevCaps Lib "winmm.dll" Alias "joyGetDevCapsA" (ByVal id As Long, lpCaps As JOYCAPS, ByVal uSize As Long) As Long
Private Declare Function joyGetNumDevs Lib "winmm.dll" () As Long
Private Declare Function joyGetPos Lib "winmm.dll" (ByVal uJoyID As Long, pji As JOYINFO) As Long
'



Private Function GetJoystick(ByVal joy As Integer, JI As JOYINFO) As Boolean
   If joyGetPos(joy, JI) <> JOYERR_NOERROR Then
      GetJoystick = False
   Else
      GetJoystick = True
   End If
End Function



'  If IsConnected is False then it returns the number of
'  joysticks the driver supports. (But may not be connected)
'
'  If IsConnected is True the it returns the number of
'  joysticks present and connected.
'
'  IsConnected is true by default.
Private Function IsJoyPresent(Optional IsConnected As Variant) As Long
   Dim ic As Boolean
   Dim i As Long
   Dim j As Long
   Dim ret As Long
   Dim JI As JOYINFO



   ic = IIf(IsMissing(IsConnected), True, CBool(IsConnected))



   i = joyGetNumDevs



   If ic Then
      j = 0
      Do While i > 0
         i = i - 1   'Joysticks id's are 0 and 1
         If joyGetPos(i, JI) = JOYERR_NOERROR Then
            j = j + 1
         End If
      Loop



      IsJoyPresent = j
   Else
      IsJoyPresent = i
   End If



End Function
'  Fills the ji structure with the minimum x, y, and z
'  coordinates.  Buttons is filled with the number of
'  buttons.
Private Function GetJoyMin(ByVal joy As Integer, JI As JOYINFO) As Boolean
   Dim jc As JOYCAPS



   If joyGetDevCaps(joy, jc, Len(jc)) <> JOYERR_NOERROR Then
      GetJoyMin = False



   Else
      JI.X = jc.wXmin
      JI.Y = jc.wYmin
      JI.Z = jc.wZmin
      JI.Buttons = jc.wNumButtons



      GetJoyMin = True
   End If
End Function
'  Fills the ji structure with the maximum x, y, and z
'  coordinates.  Buttons is filled with the number of
'  buttons.
Private Function GetJoyMax(ByVal joy As Integer, JI As JOYINFO) As Boolean
   Dim jc As JOYCAPS
   If joyGetDevCaps(joy, jc, Len(jc)) <> JOYERR_NOERROR Then
      GetJoyMax = False
   Else
      JI.X = jc.wXmax
      JI.Y = jc.wYmax
      JI.Z = jc.wZmax
      JI.Buttons = jc.wNumButtons
      GetJoyMax = True
   End If
End Function



Private Sub Timer1_Timer()
    'KPD-Team 1999
    'URL:
http://www.allapi.net/


    'E-Mail:
[mailto:KPDTeam@Allapi.net
KPDTeam@Allapi.net
]


    Dim JInfo As JOYINFO
    'Clear the form
    Me.Cls
    'Print the information to the form
    Me.Print "Number of joysticks the driver supports:" + Str$(IsJoyPresent(False))
    Me.Print "Number of connected joysticks:" + Str$(IsJoyPresent(True))
    GetJoystick JOYSTICKID1, JInfo
    Me.Print "Number of buttons:" + Str$(JInfo.Buttons)   ' c'est ici que ça se passe
    GetJoyMax JOYSTICKID1, JInfo
    Me.Print "Max X:" + Str$(JInfo.X)
    Me.Print "Max Y:" + Str$(JInfo.Y)
    Me.Print "Max Z:" + Str$(JInfo.Z)
    GetJoyMin JOYSTICKID1, JInfo
    Me.Print "Min X:" + Str$(JInfo.X)
    Me.Print "Min Y:" + Str$(JInfo.Y)
    Me.Print "Min Z:" + Str$(JInfo.Z)
End Sub


Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés


<hr />
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
5
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
31 mars 2008

Bonjour,

Merci pour les informations qui me font déjà bien avancer.
Je vois cela et je vous tiens au courant

Cordialement