Controle van de Arduino met Gamepad (4 / 5 stap)

Stap 4: Samenstellen van stukken


Als u volledig alle materialen in de vorige stappen begrepen, moet u zitten kundig voor schrijven een XBox-controller-naar-UART-interface of PC-Arduino communicatie uit te voeren op uw eigen.

Als laatste voorbeeld zal ik gebruik maken van een zeer eenvoudige contraption: een Arduino met enkele LED's en de zoemer.

Ik wilde oorspronkelijk een kleine RC auto te bouwen, maar als gevolg van langdurige vertragingen in de levering van de onderdelen die ik niet zal kunnen om het te doen ten minste voor een andere week of zo... Hebt u een paar EasyDriver planken kan u richting pin in plaats van gele LED, en motor stap pin in plaats van rode LEDs (zie schema hierboven). Een piëzo-zoemer aangesloten op pin D3 reageert op elke druk op de knop op de controller.

De volledige functiebeschrijving neer op dit:

  1. Lees de XBox controller staat en het omvormen van een korte, maar goed gedefinieerde tekenreeks.
    In mijn geval ben ik alleen verzenden motor snelheid, richting en de status van de knop, zodat het bericht ziet er als volgt:
    LLL RRR D BBBB
    waarbij LLL is de motorsnelheid van links, RRR is de motorsnelheid van recht en BBBB knopstatus van de vertegenwoordigt.
    D is een motor richting, waarin slechts twee waarden: 1 voor voorwaarts en 0 voor achteruit.
    Zowel LLL RRR zal worden genormaliseerd voor deadzones en geschaald naar kleinere waarden (tot 255)

    Als alternatief kunt u de onbewerkte XINPUT gegevens verzenden met arduino en verwerken het op de microcontroller zelf.

  2. Volgende, wij verzenden dit bericht via UART Arduino
  3. Alle motor snelheden verkregen waarden instellen en controleren van de status van de knop om te bepalen aanvullende acties
  4. Sommige gegevens verzenden naar PC (ik ben gewoon het verzenden van motor snelheden voor foutopsporing)
  5. Opgehaalde gegevens wordt verwerkt tot sommige visuele representatie. Alles wat die je wilt, zij het een eenvoudige tekstuitvoer in consolevenster, oftewel de GUI-gebaseerde productie, zoals voortgangsbalken, diagrammen, stroomdiagrammen of zelfs OpenGL rendering gebruiken

We hebben al geleerd hoe om te lezen van de UART berichten met behulp van gebeurtenissen, zodat we echt niet hoeft te maken over de juiste timing. PC-side-code kan verder verbeterd worden met deze leuke dingen, zoals multithreading en asynchrone communicatie, maar wij dat vandaag niet zal doen.

Dus, laten we beginnen met Arduino.

Bijgevoegd is een eenvoudige schets voor onze RC auto. Niets bijzonders, gewoon instellen motor snelheid afhankelijk van de positie van de analoge stick.

sqrt(LX*LX+ly*ly) stelt de omvang van de motorsnelheid

LY sign(-or +) regelt het de richting van de beweging (vooruit- of terugspoelen).

Op basis van de waarde van LX zetten we het verschil tussen links en rechts motorsnelheid. Als LX positief is, dan links motor is ingesteld op de huidige waarde van de snelheid, en rechts van de motor uses(128-LX). Als LX negatief is, toewijzen we waarden andersom.

Ik heb een kleine klasse, genaamd XBoxUart, die alle dingen die we geleerd hebben eerder in één programma combineert gemaakt op de PC zijde.

Gebruik onderstaande links om te downloaden van de broncode voor de PC en Arduino-kant.

Ten eerste, het uploaden van de schets van de arduino. U kunt testen of het werkt door een seriële Monitor op 115200 BZV en verzenden gegevens handmatig. Bijvoorbeeld message "100 100 1 0" is een equivalent van moving forward 100 stappen (links en rechts motors) met geen knoppen ingedrukt. Reactie moet je strijkers, weergegeven in de screenshot hierboven.

Opmerking: Vergeet niet de naam van de COM-poort wijzigen in wat uw Arduino CDC is. Hebt u een HC-05-module, kunt u het rechtstreeks op de Arduino RX en TX pinnen, als u wilt om het te proberen zonder draden.

Nu kunt u compileren van de C++-code in Visual Studio, beginnen uw XBox-controller, start het programma op uw PC en zie hoe LED's (of motoren) hun gedrag met beweging van de analoge stick veranderen! Elke knop in te drukken zal leiden tot de zoemer. De output in het consolevenster zal zijn vergelijkbaar met wat je op de laatste screenshot ziet.

Gerelateerde Artikelen

Controle van de Arduino met behulp van android app

Controle van de Arduino met behulp van android app

In deze instructables ga ik uit te leggen hoe de controle van de arduino IO pinnen met behulp van een android app, die we hier schrijven.De mededeling zal via ethernet en gebruiken we het GET-verzoek voor het activeren van de IO.Laten we beginnen!Sta
Controle van een Arduino met PHP

Controle van een Arduino met PHP

hier is hoe te maken van je Arduino doen meer dan het internet zonder een ethernet of wifi schild. Dit is een eenvoudige manier om uw project bestuurbaar overal in de wereld!Stap 1: Platform CompatabilityDeze methode werkt niet onder Windows. Ik kan
Controle van een Arduino met uw iPhone

Controle van een Arduino met uw iPhone

Hey!Dit Instructable toont je hoe om te controleren van een Arduino met een iPhone zonder te programmeren van uw eigen applicatie van iOS. We gonna een LED flash maar u kunt ook een heleboel andere dingen mee doen!We zullen met behulp van een Arduino
Controle van de Arduino met visual basic 6.0

Controle van de Arduino met visual basic 6.0

Dit instructable is onderdeel van mijn boek Arduino + visual basic 6.0 (aanbrengen in uw eigen software controle arduino Robot.Visual basic 6.0 is een zeer oude versie sommigen kunnen vragen waarom we gebruik wilt maken van visual basic 6.0. Visual b
Controle van uw Arduino met een afstandsbediening

Controle van uw Arduino met een afstandsbediening

benieuwd over hoe om te controleren alles in uw huis met een eenvoudige afstandsbediening? Het is vrij eenvoudig en goedkoop.Stap 1: Verzamel spullen Hier is wat u nodig heeft:-Arduino (ik gebruik UNO)-Solderless breadboard-Een infrarood ontvanger-So
Controle van een Arduino met uw telefoon.

Controle van een Arduino met uw telefoon.

In dit Instructable zal ik laten zien hoe om te controleren uw spullen met uw telefoon en de arduino board. Ik heb alles gecontroleerd uit rookmachines ook Kerstmis licht is met dit programma.Video:Sorry dat de video is nogal vreemd, want mijn camera
Controle van de arduino met behulp van Blynk via usb

Controle van de arduino met behulp van Blynk via usb

Dit is mijn tweede instructable. In dit instructable zal ik laten zien hoe u kunt besturen LED met behulp van Blynk.Blynk is een applicatie die ons dashboard, evenals connectiviteit biedt. die u kunt downloaden van google play store (voor Android). &
Hoe de controle van de arduino met een mail

Hoe de controle van de arduino met een mail

Er zijn een heleboel oplossingen waarmee een Arduino board: web oplossingen, desktop applicatie oplossingen, hardwareoplossingen. Maar hoe zit het met e-mail? Ja, vind je iets op het web, maar ze nodig hebben voor ethernet schilden en vaak is Arduino
Controle van de Arduino met Android telefoon via Bluetooth

Controle van de Arduino met Android telefoon via Bluetooth

Hallo mensen, hier kunt u leren hoe u kunt besturen Arduino met Android telefoon via Bluetooth. U kunt uw smartphone als een afstandsbediening voor u verlichting van het huis systeem of u kunt gebruiken als een drone externe enz.Om de verbinding tuss
Controle van de Arduino met behulp van PHP

Controle van de Arduino met behulp van PHP

Ik heb onlangs gezien een heleboel problemen met betrekking tot PHP en Arduino. Vele mensen weten niet over feiten zoals die een arduino een 2 tweede (!) vertraging moet voordat het eventuele berichten via seriële kunt ontvangen. Er zijn een paar and
Controle van een Arduino met een horloge (TI eZ430 Chronos)

Controle van een Arduino met een horloge (TI eZ430 Chronos)

het horlogeDe Texas Instruments eZ430 Chronos is een coole gadget. Het heeft bidirectionele radiocommunicatie, en een gehele bos van sensoren: temperatuur, druk, versnelling.Het is in feite een development kit voor de MSP-430 (een low-power microcont
Controle van de Arduino met Blynk [USB] [beginners] Wireless overal in de wereld

Controle van de Arduino met Blynk [USB] [beginners] Wireless overal in de wereld

Hier is hoe u kunt besturen arduino met blynk via USB van overal in de wereld!Stap 1: Hier is hoe u kunt besturen arduino met blynk via USB van overal in de wereld!Bekijk en geniet!
Controle van de Arduino met Facebook - de gemakkelijke manier

Controle van de Arduino met Facebook - de gemakkelijke manier

Hallo vrienden vandaag ga ik u tonen hoe te verbinden uw Arduino aan FACEBOOK en extern beheren uw Arduino van overal in de wereld via uw Facebook-Account. OK dit is hoe het werkt, er is een Facebook-account die is aangesloten op de Arduino via een c
Controle van de arduino met visual studio via bluetooth

Controle van de arduino met visual studio via bluetooth

Hallo iedereen,Hier zullen we beheren een via bluetooth met uw pc o.l.v. een progam wirtten met visual studiowat je nodig hebt is:1) Arduino (een)2) Bluetooth-Module (hc05 of hc 06)3) geleid4) 2 weerstanden (10ko en 15ko)en u kunt het doen ;)alle cod