Jak ovládat roboty pomocí herního ovladače a Arduina

  • Joseph Goodman
  • 0
  • 2929
  • 163
reklama

Arduiny a podobné kompatibilní desky jsou jedním z přístrojů pro kutily pro kutily kdekoli. Ať už jste začátečník, který teprve začíná s Arduino, nebo někdo, kdo je už ve vašem životě uvádí, poskytuje platformu pro nespočet úžasných projektů.

Dnes budeme zkoumat kreativní způsob, jak ovládat servo pomocí zpracování a řadiče Xbox360. Pokud již máte dost důvtipný vývoj her, možná vás bude zajímat náš tutoriál Custom Game Controller, který používá Unity.

Tento tutoriál předpokládá trochu předchozí znalosti, pokud se jedná o váš první vpád do hry Arduino, můžete najít našeho průvodce Arduino užitečným zde. Podobně, pokud používáte Java poprvé, může to být trochu matoucí. Zatímco zpracování používá zjednodušenou verzi platformy, tyto koncepty a tipy Java mohou stále pomoci.

Co potřebuješ

  • 1 x Arduino. Dnes používáme OSN.
  • 1 x hobby servo. Všechno, co bude fungovat s piny Arduino.
  • 1 x kabelový řadič Xbox360. I když to bude technicky fungovat téměř s jakýmkoli ovladačem.
  • Několik připojovacích vodičů.

Kromě těchto věcí budete také muset stáhnout Zpracování a Arduino IDE ze svých příslušných webových stránek.

Příprava Arduina

Nejprve potřebujeme připojit servo. Barvy vodičů se zde mohou lišit, ale obecně platí Červené se připojí k 5v pin, a hnědý nebo Černá připojit k GND kolík. Datová linka, která je obvykle žlutá nebo oranžový, připojí k pin 10.

Zkontrolujte zapojení a připojte Arduino k počítači. Otevřete Arduino IDE.

Otevřete náčrt StandardFirmata na adrese Soubor> Příklady> Firmata> StandardFirmata. Tato skica nastavuje desku pro externí ovládání sériového portu a je stejná jako v našem článku o ovládání Arduina pomocí Pythonu Jak programovat a ovládat Arduino pomocí Pythonu Jak programovat a ovládat Arduino pomocí Pythonu Nelze přímo programovat Arduino v Pythonu, ale můžete jej ovládat přes USB pomocí programu Python. Zde je návod. . Nahrajte náčrtek na tabuli.

Pokud se nahrávání nezdaří, zkontrolujte, zda jste vybrali správné údaje o desce a portu Nástroje Jídelní lístek.

Naše Arduino je připraveno jít!

Nastavení zpracování

Otevřete zpracování, budete uvítáni prázdnou skici. Než tu něco uděláme, musíme si nainstalovat několik knihoven. Vydejte se na Skica a vyberte Importovat knihovnu> Přidat knihovnu. To přinese Správce příspěvků který bude vypadat dobře známý všem uživatelům Arduino venku.

Aby to fungovalo, musíme nainstalovat tři knihovny. První nahoře je Ovládání hry Plus knihovna. To nám umožní používat náš herní ovladač se zpracováním. Vyhledejte jej pomocí vyhledávacího okna a v pravém dolním rohu klikněte na tlačítko nainstalovat. Game Control Plus potřebuje pro svůj konfigurační nástroj nainstalovanou další knihovnu, takže ji pojďme získat hned teď. Hledejte G4P knihovnu a nainstalujte ji také.

Nakonec potřebujeme Arduino (firmata) knihovna. Uhádli jste, hledali a klikněte na install. Po instalaci těchto věcí jsme připraveni začít s testováním, že všechno bude fungovat. Dnes pracujeme s Windows 10, ale zpracování je k dispozici pro většinu platforem, včetně Raspberry Pi. Představte si možnosti!

Testování Arduina

Než se pustíme do vytváření vlastní skici, vyzkoušejte Arduino a Servo se zpracováním. otevřeno Soubor> Příklady, a vyberte ArduinoServo z Přispívané knihovny / Arduino (firmata) složku. Použijeme to k otestování našeho serva, ale nejdřív budeme možná muset změnit pár věcí.

Procházejte skici dolů a najděte tento řádek:

println (Arduino.list ());

Pokud je okomentován, odeberte obě lomítka dříve println (Arduino.list ());, a uložte náčrt. Spusťte ji kliknutím na ikonu přehrávání a dejte pozor na konzolu dole. Zobrazí se vše, co je k vašemu COM přístavy.

V mém případě byl můj Arduino na COM 8, což byl třetí zde uvedený port. To je důležité, protože kód v řádku níže má Pole jehož hodnota určuje, který port COM použít.

Musíme to změnit tak, aby odrážel náš COM port. Pro mě to byla třetí pozice, nebo index číslo 2:

arduino = nový Arduino (toto, Arduino.list () [2], 57600);

Abychom tento test mohli otestovat, musíme provést několik dalších malých změn v tomto kódu. Přejděte dolů na místo, kde jsou nastaveny piny Arduino, a komentujte zde jeden z řádků. Změňte druhý na Pin 10.

//arduino.pinMode(4, Arduino.SERVO); arduino.pinMode (10, Arduino.SERVO);

Musíme udělat totéž v Kreslit() metoda:

arduino.servoWrite (10, omezení (mouseX / 2, 0, 180)); // arduino.servoWrite (4, omezení (180 - mouseX / 2, 0, 180)); 

Uložte náčrt a spusťte jej. Měli byste být schopni posunout serva pohybem myši tam a zpět přes okno, které program generuje.

Pokud to pro vás nefunguje, zkontrolujte zapojení serva a zkontrolujte, zda máte správnou pozici pole pro váš port COM. Jakmile víte, že Arduino mluví pěkně se zpracováním, je čas jít dál.

Konfigurace řadiče

Knihovna Game Control Plus, kterou používáme, má také výkonnou konfiguraci. Ujistěte se, že je ovladač připojen, otevřete Konfigurátor Příklad projektu a spustit jej. Získáte nabídku jako je tato:

Klikněte na název kontroléru a objeví se mnohem větší konfigurační okno.

Může to vypadat docela skličující, ale je navrženo tak, aby bylo co nejjednodušší. Na levé straně vyplňte první klíč názvem, který chcete použít jako proměnnou. Tato proměnná bude ovládat polohu serva, takže ji budu nazývat servoPos.

V rámečku vedle ní můžete uvést stručný popis toho, co dělá. Nyní zvedněte ovladač a pohněte hůlkou, kterou chcete použít se svým servem. Malý experiment ukazuje, že pravý palec odpovídá krabici X Rotation. Přetáhněte čáru mezi servoPos proměnné a toto pole.

Nyní musíme uložit naši konfiguraci jako datový soubor. V pravém horním rohu okna vyplňte Role zařízení pole a Název souboru pole.

Název souboru je důležitý, protože jej budete používat v kódu. Jednoduše to říkám voláním xbs. Klikněte na Ověřte pak Uložit. Tím se zapíše soubor s pokyny pro náš řadič, který můžeme použít později.

Příprava složky vlastní skici

Pojďme nastavit naši pracovní složku. Otevřete prázdnou pracovní skicu a uložte ji pod libovolným jménem. Tím se vytvoří adresář v úložišti.

Nyní přejděte na Dokumenty / Zpracování / knihovny / GameControlPlus / příklady / Konfigurátor a zkopírujte složku označenou data. Tato složka obsahuje konfigurační soubor, který jsme právě vytvořili. Přejděte do adresáře nově uložené prázdné skici a vložte datovou složku.

Vytvoření vlastní skici

Nyní je vše na svém místě a my můžeme začít dělat náčrtek pomocí našich dvou knihoven. Tento krok krok za krokem projdeme, ale pokud si přejete skočit dopředu, můžete si stáhnout úplnou složku skici a dat. Všimněte si, že budete možná muset upravit kód tak, aby odrážel vaše Arduino COM porty.

Začněte importováním všech potřebných knihoven:

import processing.serial. *; import net.java.games.input. *; import org.gamecontrolplus. *; import org.gamecontrolplus.gui. *; importovat cc.arduino. *; import org.firmata. *;

Musíme také prohlásit naše ControlDevice, I / O, a Arduino, spolu s plovák držet hodnoty z našeho palce:

ControlDevice kont; Ovládání ControlIO; Arduino arduino; plavat palec;

Náš založit() metoda vytvoří malé okno, instanci řadiče a porovná zařízení s naším konfiguračním souborem. Zde je důležité opravit název souboru našeho konfiguračního datového souboru:

neplatné nastavení () velikost (360, 200); control = ControlIO.getInstance (this); cont = control.getMatchedDevice ("xbs"); if (cont == null) println ("not not chump"); // napsat lepší výkazy než já System.exit (-1);  // println (Arduino.list ()); arduino = nový Arduino (toto, Arduino.list () [2], 57600); arduino.pinMode (10, Arduino.SERVO); 

Rovněž zkontrolujeme, zda v této fázi neexistuje žádný použitelný řadič, a v případě potřeby ukončíme program. Zatímco okno vytvořené pomocí velikost() není potřeba, později nám poskytne zpětnou vazbu, zda získáváme užitečné hodnoty od našeho kontroléru. Inicializujeme také naše Arduino a připojíme se sem stejně jako při testování.

Nyní vytvoříme malou metodu, jak získat vstupní hodnotu z našeho ovladače a namapovat ji na hodnoty, které bude naše servo používat:

public void getUserInput () thumb = map (cont.getSlider ("servoPos"). getValue (), -1, 1, 0, 180); 

Tento jeden řádek kódu používá náš datový soubor k získání naší pojmenované kontroly servoPos, který je spojen s pravým palcem ovladače a čte z něj hodnoty. Poté namapuje hodnoty a uloží hodnotu do našeho palec float proměnná.

Právě teď se tento kód nikdy nezavolá, nyní to vyřešíme.

void draw () getUserInput (); pozadí (palec, 100,255); arduino.servoWrite (10, (int) palec); 

kreslit() je podobný smyčka() metoda v Arduino IDE. Každý snímek nazývá getUserInput () metoda a aktualizuje palec hodnota. Tuto hodnotu používá ke změně červené hodnoty Pozadí() což nám dává vizuální ukazatel změny hodnoty. Poté zapíše tuto hodnotu do serva pomocí arduino.servoWrite () funkce. Všimněte si, že musíme obsadit palec jako celočíselná hodnota, protože funkce servoWrite bere jako argumenty dvě celá čísla (číslo kolíku a úhel).

Zkontrolujte chyby v kódu, uložte je a klikněte na Spustit. Po malém zpoždění inicializovat Arduino by to mělo vypadat takto:

Ovládání pomocí herního ovladače a Arduina: Dokončeno!

Tento projekt byl v mnoha ohledech do hloubky pro nezkušený programátor Naučte se s kódovacími projekty: 9 Kurzů Udemy pro začátečníky Naučte se s kódovacími projekty: 9 Kurzů pro Udemy pro začátečníky Skutečným problémem je najít dobré programovací návody a kurzy, které nejenže vás naučí potřebné dovednosti, ale u praktických projektů. To je místo, kam Udemy vstupuje. Navzdory fantastickým knihovnám, které nám pomáhají. Představuje nový způsob přemýšlení o řízení robotů a dalších zařízení, která stavíte.

Tento projekt by dokonale odpovídal našemu průvodci při vytváření laserové věže Pew Pew! Jak se staví laserová věž s Arduino Pew Pew! Jak se staví laserová věž s Arduinem Nudíte se? Mohu také postavit laserovou věžičku. , což vám dává plnou kontrolu. Mohli byste si nastavit piezový bzučák jako v našem jednoduchém alarmu Arduino Jak vytvořit jednoduchý výstražný systém Arduino Jak udělat jednoduchý výstražný systém Arduino Detekujte pohyb, poté vystrašte sakra z vetřelce pomocí vysokých tónů zvukových signálů a blikajících světel. Zní to zábavně? Samozřejmě, že ano. To je cílem dnešního projektu Arduino, vhodného… tutoriálu a pomocí ovladače změňte rozteč bzučáku nebo barvy světel.

Nebo byste mohli, dobře, postavit masivního robota a převzít zemi. Pokud jste měli dostatečně dlouhý kabel USB!




Bisher hat noch niemand einen Kommentar zu diesem Artikel abgegeben.

O moderní technologii, jednoduché a cenově dostupné.
Váš průvodce ve světě moderních technologií. Naučte se, jak používat technologie a pomůcky, které nás každý den obklopují, a naučte se, jak objevovat na internetu zajímavé věci.