Voiture RC Arduino avec Camera FPV (6 / 15 étapes)

Étape 6: C# Application filetage et la XBox 360 contrôleur entrée

Le premier bit du logiciel que j’ai écrit pour ce projet a été pour la manette XBox 360 (vous avez peut-être remarqué que le nom du projet Visual Studio original a menées à la fin!). Vous y trouverez le code du contrôleur XBox dans la première partie du fichier « Form1.cs ». Comme mentionné dans l’étape précédente, ce code ne fonctionne que si le wrapper de dotnet Xinput a été configuré (i.e. « XInputDotNetPure.dll » a été ajouté comme une référence dans le projet c#, et « XInputInterface.dll » est dans le même dossier que le fichier .exe).

Le code fonctionne de façon répétée du scrutin le contrôleur pour récupérer l’état des boutons et des commandes analogiques. En raison de ce vote, j’ai réalisé que le programme aurait besoin de plusieurs threads, afin de travailler du tout. C’était un peu un défi, comme je n’avais pas écrit en fait une application multi-thread avant celui-ci. Après avoir regardé quelques exemples et didacticiels, j’ai décidé qu’il y aurait un thread d’application principal pour l’interface utilisateur graphique (GUI), un thread séparé pour la manipulation de la manette XBox 360 et plusieurs threads supplémentaires pour d’autres choses. Plusieurs threads permettent toutes ces choses de travailler en parallèle, sans aucun lag perceptible dans l’interface GUI.

Dans le fil de contrôleur Xbox, l’état du contrôleur est interrogé à environ 50Hz, donc il a toujours très courante. Ces données de contrôleur sont également reprises sur l’interface graphique, et les touches sont surlignés en orange. Pour ce faire, inter-threads données transferts étaient nécessaires. J’ai utilisé le concept de « délégués » pour permettre aux threads de "affecter" les uns les autres. Vous remarquerez également un certain nombre de variables « shared_... » qui sont utilisés à travers plusieurs threads.

Cette disposition du code a également un compteur qui assure le suivi du contrôleur "frames". Dans le cadre de mon code, les cadres se reporter à la lecture de l’état du contrôleur. Les compteurs « samplecount » et « oldsamplecount » sont utilisés pour que les pressions sur la touche longue sont correctement prises en compte. À titre d’exemple, j’ai affecté certains boutons numériques afin qu’une simple pression sur une fonction, et la presse suivante désactive cette fonction. Si une pression prolongée n’est pas gérée correctement, le programme bascule qui fonctionnent sous et hors tension en permanence. Le code gère correctement une pression longue comme une simple pression en comparant la valeur d’oldsamplecount contre samplecount. Si la différence entre les deux variables est trop petite, il est détecté comme une pression longue.

Articles Liés

Voiture de Arduino autonome avec capteur de proximité infrarouge

Voiture de Arduino autonome avec capteur de proximité infrarouge

Ce Instructable montre comment modifier une voiture RC preloved donc il peut être contrôlé par un Arduino. Puis l'Instructable va vous montrer comment faire le RC à exécuter qu'un code simple figure 8 a partir de là l'Instructable vous montrera comme
Voiture RC final d’espion - avec cam sans fil de la nuit vision !

Voiture RC final d’espion - avec cam sans fil de la nuit vision !

Il s'agit d'une voiture d'espion de construction complexe. J'ai utilisé une voiture de jouet de contrôle à distance de « mecano » et installé une nuit sans fil vision SpyCam cam que j'ai acheté sur ebay pour 20$ avec la livraison. Cette voiture origi
Voiture arrière vue caméra entrée Aux Input

Voiture arrière vue caméra entrée Aux Input

Lorsque vous avez terminé, vous pourriez avoir quelque chose comme ce https://www.youtube.com/watch?v=owsrApBPuQM. (C'est en utilisant l'app de couple, un hdmi au convertisseur de rca (alimenté par un chargeur de voiture usb) et un téléphone android)
Comment faire pour contrôler n’importe quelle voiture R/C avec un émetteur d’avion !

Comment faire pour contrôler n’importe quelle voiture R/C avec un émetteur d’avion !

Avez-vous déjà demandé si vous pouvez utiliser votre émetteur d'avion R/C pour contrôler n'importe quelle voiture R/C aussi bien ?Comment génial serait-il d'avoir 6 ou plusieurs canaux pour contrôler votre voiture R/C et également personnaliser chaqu
Arduino Ethernet caméra

Arduino Ethernet caméra

Je vais vous présenter un Arduino ethernet caméra.Vous pouvez prendre une photo à l'intérieur de la maison qui ont une cette caméra ethernet arduino par juste ouvrir le site web si vous suivez ce contenu.C'est une façon très facile et simple ne néces
Arduino avec manette de commande

Arduino avec manette de commande

Dernièrement, j'ai été curieux de connaître l'amitié avec Arduino ou n'importe quel autre microcontrôleur avec une manette de jeu afin d'avoir une interaction physique avec les choses que je fais, mais il semblait n'être aucun rapide ou bon marché mo
Débutants guident de construction de robots Arduino avec Bluetooth et Android

Débutants guident de construction de robots Arduino avec Bluetooth et Android

dans ce tutoriel, nous allons aller au cours de la construction d'un robot Arduino qui peut être contrôlé via bluetooth avec une téléphone/tablette Android. Il s'agit d'un guide de débutants qui va franchir brièvement le processus de câblage et de pr
Bâtiment de l’APP Android pour contrôler la voiture Smart Arduino (製作Android APP控制Arduino 智慧車)

Bâtiment de l’APP Android pour contrôler la voiture Smart Arduino (製作Android APP控制Arduino 智慧車)

Il s'agit d'un exemple de code créé à partir de APP MIT inventeur2. Pour montrer comment se connecter à Andruino par le biais de BT Vous pouvez le modifier par vous-même pour répondre à une fonction qui vous voulez. Bassically, il est vraiment facile
Arduino universel Bluetooth Connect - contrôle votre Arduino avec votre appareil Android

Arduino universel Bluetooth Connect - contrôle votre Arduino avec votre appareil Android

J'ai toujours voulu contrôler plus facilement mon Arduino avec mon Smartphone, mais j'ai jamais trouvé la solution parfaite pour le faire. Je ne veux pas dire que c'est parfait, mais il fait ce que je veux qu'il do...well pas complètement, mais je su
Geste contrôlé une voiture robotisée avec application android

Geste contrôlé une voiture robotisée avec application android

Plan quinquennal - geste contrôlée voiture robotisée avec Application Android. Code complet, y compris la transmission de données bluetooth et de reconnaissance de geste est disponible. Les personnes qui ont besoin de toute sorte d'aide concernant ce
Contrôler l’Arduino avec un téléphone Android via Bluetooth

Contrôler l’Arduino avec un téléphone Android via Bluetooth

Bonjour les gens, ici vous pouvez apprendre comment contrôler Arduino avec un téléphone Android via Bluetooth. Vous pouvez utiliser votre smartphone comme télécommande pour vous système d'éclairage à la maison, ou vous pouvez utiliser comme un etc. d
Comment utiliser et shield Arduino avec le Raspberry Pi

Comment utiliser et shield Arduino avec le Raspberry Pi

Ajouter Arduino boucliers pour le Pi de framboise peuvent être une très grande douleur. Vous finissez par avoir un désordre de fils courir et configuration du logiciel est un défi dans son propre droit.Voici une solution simple pour commencer à utili
Pyduino, interface Arduino avec Python par le biais de communication série

Pyduino, interface Arduino avec Python par le biais de communication série

Apprenez comment interfacer arduino par le biais de communication série avec python en utilisant la bibliothèque de pyduino. Il y a quelques autres tutoriels là-bas sur instructables quant à l'interface arduino avec python, mais ils ne vous montrent
Contrôler l’Arduino avec python basé web API (pas de php)

Contrôler l’Arduino avec python basé web API (pas de php)

Dans ce guide, je vais vous montrer comment contrôler votre appareil arduino d'une page Web ! Par la suite, je vais vous montrer comment contrôler votre arduino depuis votre appareil mobile et même créer une API basée sur le web pour contrôler votre