Arduino avec manette de commande (4 / 5 étapes)

Étape 4: Assembler les pièces

Si vous avez compris pleinement tous les matériaux dans les étapes précédentes, vous devriez être capable d’écrire une interface de contrôleur-à-UART XBox ou implémenter une communication PC-Arduino sur votre propre.

Comme dernier exemple je vais utiliser un engin très simple : un Arduino avec quelques LEDs et le buzzer.

Initialement je voulais construire une petite voiture RC, mais je ne serai pas capable de le faire au moins pour une autre semaine ou deux en raison de longs délais dans la livraison de pièces... Si vous avez une paire de planches EasyDriver vous pouvez vous connecter direction NIP au lieu de la LED jaune et broche moteur étape au lieu de LEDs rouges (voir schéma ci-dessus). Un piezo-buzzer relié à la broche D3 réagit sur n’importe quel bouton sur votre contrôleur.

La description fonctionnelle complète se résume à ceci :

  1. Lire l’état du contrôleur XBox et la transformer en une chaîne courte, mais bien définie.
    Dans mon cas je suis contente d’envoyer vitesses du moteur, de direction et d’État du bouton, donc le message ressemble à ceci :
    RRR LLL D benamer
    LLL désigne la vitesse du moteur gauche, Err est la vitesse du moteur droit et BBBB représente le bouton État.
    D est une direction du moteur, qui prend deux valeurs: 1 pour l’avant et de 0 pour vers l’arrière.
    Les LLL et RRR seront normalisées pour deadzones et mise à l’échelle de valeurs plus petites (moins de 255)

    Alternativement, vous pouvez envoyer des données brutes de XINPUT pour arduino et traitez-le sur le microcontrôleur lui-même.

  2. Ensuite, nous envoyons ce message sur UART pour Arduino
  3. Toutes les vitesses du moteur la valeur des valeurs acquises et vérifier l’état du bouton afin de déterminer les mesures supplémentaires
  4. Envoyer des données vers le PC (je vous envoie juste des vitesses du moteur pour le débogage)
  5. Données acquises sont transformées en une représentation visuelle. Utilisez ce que vous voulez, que ce soit une sortie de texte simple dans la fenêtre de la console, ou basé sur l’interface de sortie, tels que des barres de progression, graphiques, diagrammes ou même rendu OpenGL.

Nous avons déjà appris à lire UART messages à l’aide d’événements, donc nous n’avez pas vraiment à vous soucier du bon timing. Le code côté PC peut encore être amélioré avec des choses cool, comme la communication multi-threading et asynchrone, mais nous ne fera qu’aujourd'hui.

Donc, commençons par Arduino.

Un simple croquis pour notre voiture RC est jointe. Rien de spécial, juste réglage des vitesses du moteur selon la position du stick analogique.

sqrt(LX*LX+ly*ly) définit la grandeur de la vitesse du moteur

LY sign(-or +) contrôle de la direction du mouvement (vers l’avant / vers l’arrière).

Basé sur la valeur de LX, nous avons mis la différence entre la vitesse du moteur gauche et droit. Si LX est positif, puis à gauche moteur est définie sur la valeur actuelle de la vitesse et uses(128-LX) moteur à droite. Si LX est négatif, nous assigner des valeurs le chemin inverse.

Côté PC, j’ai créé une petite classe, appelée XBoxUart, qui combine toutes les choses que nous avons appris précédemment dans un seul programme.

S’il vous plaît, utilisez les liens ci-dessous pour télécharger le code source pour le côté PC et Arduino.

Tout d’abord, téléchargez le croquis de l’arduino. Vous pouvez tester si cela fonctionne en ouvrant un Serial Monitor à 115200 DBO et envoi de données manuellement. Par exemple le message "100 100 1 0" est un équivalent de se déplacer vers l’avant 100 étapes (moteurs gauche et droit) avec aucune pression sur les boutons. En réponse, vous devriez obtenir des cordes, illustrés dans la capture d’écran ci-dessus.

Remarque : N’oubliez pas de changer le nom de port COM à tout ce qui est votre CDC Arduino. Si vous avez un module HC-05, vous pouvez le connecter directement aux broches Arduino RX et TX, si vous voulez essayer sans fils.

Vous pouvez maintenant compiler du code C++ dans Visual Studio, démarrez votre contrôleur de XBox, lancer le programme sur votre PC et voir comment les LEDs (ou moteurs) changent leur comportement avec le mouvement du stick analogique ! En appuyant sur n’importe quel bouton déclenche l’avertisseur sonore. La sortie dans la fenêtre de la console sera semblable à ce que vous voyez sur la dernière capture d’écran.

Articles Liés

Préampli passif Arduino avec télécommande, atténuateur et channel selector

Préampli passif Arduino avec télécommande, atténuateur et channel selector

Bonjour à tous,Puisque vous m'avez soutenu que beaucoup dans mon dernier instructable j'ai été encouragé à améliorer davantage et à partager avec vous.Dans la génération précédente, j'ai eu bon marché préampli avec potentiomètre motorisé, distant et
Lumières de télécommande Arduino avec télécommande universelle

Lumières de télécommande Arduino avec télécommande universelle

j'ai se sont penchés en domotique depuis un certain temps, mais n'ont pas commis à lui tout de suite, surtout à cause de l'étiquette de prix. L'année dernière (2010) j'ai acheté ces prise de commande à distance marche/arrêt interrupteurs donc je pour
Contrôle Arduino RoverBot avec télécommande TV

Contrôle Arduino RoverBot avec télécommande TV

je suis un Hacker pauvres d'Arduino âgé de 15 ans, qui a peu d'accès aux composants et matériaux pour construire un robot Hi-Tech.  Je suis sûr qu'il y a beaucoup d'autres là-bas qui sont dans ma situation.  Ce petit Instructable va expliquer et démo
Commande de porte de Garage Bluetooth Arduino avec capteurs et personnalisable Android App

Commande de porte de Garage Bluetooth Arduino avec capteurs et personnalisable Android App

Utilisez un arduino pour activer le relais pour l'ouverture des portes de garage et serrures électriques.Une application Android personnalisable, se connecte à l'arduino via mot de passe bluetooth appairage.Un module de hc-05 bluetooth reçoit des com
Domotique en utilisant arduino avec wifi, bluetooth et télécommande IR

Domotique en utilisant arduino avec wifi, bluetooth et télécommande IR

Il s'agit d'un tutoriel pour montrer comment construire un système de domotique avec arduino Wifi [ESP8266-01], bluetooth (HC-05) et télécommande IR. Domotique se traduit par un accueil plus intelligent et est utilisé pour fournir un niveau de vie pl
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
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
Comment programmer un AVR (arduino) avec un autre arduino

Comment programmer un AVR (arduino) avec un autre arduino

cette instructables est utile si :* vous avez votre arduino avec atmega168 et vous avez acheté un atmega328 à vous magasin d'électronique. Il n'est pas un bootloader arduino* vous voulez faire un projet qui n'utilise pas arduino - juste une puce AVR
Servos de contrôle sur l’Internet via Arduino avec Teleduino

Servos de contrôle sur l’Internet via Arduino avec Teleduino

Servos ont de nombreuses utilisations et peut être beaucoup de plaisir à jouer avec. Quelque chose qui peut être des tas de plaisir prend le contrôle de jusqu'à 6 servos sur internet ! Imaginez les possibilités.Ce processus est rendu vraiment simple
ANT + et l’intégration de la Arduino avec Cateye Ergociser exercice vélo

ANT + et l’intégration de la Arduino avec Cateye Ergociser exercice vélo

Cette instructable explique comment intégrer ANT + émetteur/récepteur avec Arduino contrôleur dans un vélo d'exercice vintage 1987 pour permettre basé sur PC ou Garmin sport watch/vélo ordinateur enregistrement des données d'exercice comme 1) Cadence
Simple filaire manette de commande du moteur 2

Simple filaire manette de commande du moteur 2

je voulais depuis longtemps d'avoir une manette de contrôle (coffret), qui peut facilement changer le sens de 2 moteurs. J'ai donc fait un. Il n'est pas difficile à construire et fonctionne parfaitement. les coûts varient entre 2 et 4 euros. n'hésite
Contrôler un Arduino avec votre téléphone.

Contrôler un Arduino avec votre téléphone.

Dans ce Instructable je vais montrer comment contrôler vos trucs avec votre téléphone et la carte arduino. J'ai commandé tout de machines à fumée trop légères christmas populaire avec ce programme.Vidéo :Désolé, que la vidéo est un peu étrange parce
Rétro-ingénierie : Ampoule de LED RVB avec télécommande IR

Rétro-ingénierie : Ampoule de LED RVB avec télécommande IR

nous avons acheté 20 de ces ampoules LED RVB pour un parti au travail, mais j'ai été un peu déçu avec les fonctions de décoloration de couleur ils ont fourni. J'ai donc décidé de prendre un ingénieur apart, inverse le protocole infrarouge et voir si
Show Laser Arduino avec un contrôle complet XY

Show Laser Arduino avec un contrôle complet XY

mise à jour ! Voir étape 32 pour savoir comment utiliser ce projet avec un laser vert! Aussi - commander l' Instructable LaserTweet pour rendre ces données d'affichage projet de Twitter :Ce projet utilise un Arduino et certains haut-parleurs bon marc