Obsah:
- Zásoby
- Krok 1: Shromážděte zásoby
- Krok 2: Připojení modulu NRF k Arduinu
- Krok 3: Pojďme se pustit do kódování
- Krok 4: Autorova poznámka
Video: Mějte své dronové gesto pod kontrolou v krocích 10: 4 $
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Tento instruktáž je průvodcem k přeměně vašeho R/C drona na dron ovládaný gesty za méně než 10 $!
Jsem člověk, který je velmi inspirován sci-fi filmy a snaží se, aby se technologie ve filmu ukázala v reálném životě. Tento projekt je inspirací pro dva takové filmy: „STAR WARS: The Empire Strikes Back“a „Project Almanac“. V obou filmech vidíte létající objekt (X-wing Starship & R/C Drone), který byl ovládán pouhými pohyby rukou. To mě inspirovalo k vytvoření něčeho podobného…
Očividně nevlastním X-wing, takže bohužel musím pracovat se svou Mini R/C Quadcopter.
Plán tedy je - na mém notebooku poběží skript pro zpracování obrazu, který bude nepřetržitě hledat mou ruku a sledovat jeho pozici ve video rámečku. Jakmile získá souřadnice ruky, odešle příslušný signál do dronu a to se provede pomocí Arduina připojeného k notebooku spolu s přijímacím modulem NRF24L01 2,4 GHz, který může přímo komunikovat s deskou přijímače jakéhokoli R/C Drone.
Zásoby
- Notebook/stolní počítač s nainstalovanou webovou kamerou a Pythonem. (Používám svůj notebook W indows s vestavěnou webovou kamerou a systémem Python 2.7.14)
- Jakýkoli R/C dron běžící na frekvenci 2,4 GHz. (JJRC H36 v mém případě)
- Arduino UNO spolu s programovacím kabelem. (Používám jeho klon, protože je levnější)
- Modul bezdrátového transceiveru antény NRF24L01 2,4 GHz. (Koupil jsem to odsud za pouhých 99 ₹ (1,38 $))
- Deska adaptéru 3,3 V pro bezdrátový modul 24L01. (Koupil jsem to odtud za pouhých 49 ₹ (0,68 $))
- Propojovací vodiče mezi muži a ženami x7
Krok 1: Shromážděte zásoby
Krok 2: Připojení modulu NRF k Arduinu
Nyní, když máte všechny součásti, začněme zapojovat modul NRF do Arduina.
- Nejprve vložte modul NRF do slotu na adaptéru. Můžete se na to podívat na výše uvedeném obrázku.
-
Poté vezměte vodiče Male to Female a připojte adaptér NRF k Arduinu následujícím způsobem: (Viz schéma zapojení výše)
- Pin adaptéru NRF - kolík Arduino
- VCC - 5v
- GND - GND
- CE - digitální pin 5
- CSN - analogový pin 1
- SCK - digitální pin 4
- MO - digitální pin 3
- MI - analogový pin 0
- IRQ - nepoužívá se
- Jakmile je připojení hotové, připojte Arduino k počítači pomocí USB kabelu Arduino Programming a jste téměř hotovi.
Krok 3: Pojďme se pustit do kódování
Nyní začíná těžká část … !!!
Celý kód jsem nevytvořil sám. Místo toho jsem vzal části a kousky kódu od různých vývojářů a všechny jsem s trochou vylepšení integroval do jednoho. Proto jsou všem původním tvůrcům poskytnuty řádné kredity.
Zde si můžete stáhnout všechny připojené kódy a zajistit, aby fungovaly. Nebo můžete jít do mého úložiště Github, kde budu neustále aktualizovat nejnovější kód pro lepší sledování.
Ruční sledování:
Pro ruční sledování se v tomto projektu používá klasifikátor Haar Cascade. Haar Cascade je trénován překrytím pozitivního obrazu nad sadou negativních obrazů. A tato natrénovaná data jsou obvykle uložena v souborech „.xml“. Na internetu můžete získat soubory Klasifikátoru téměř čehokoli, nebo si dokonce můžete vytvořit vlastní. Pro tento projekt, který jsme potřebovali, aby byl ovládán gesty rukou, jsem pro detekci rukou použil první klasifikátor pojmenovaný jako „closed_frontal_palm.xml“od Aravinda Nambissana. Tento kód můžete vyzkoušet spuštěním kódu „hand_live.py“v mém repo.
Výběr kódu NRF24, aby odpovídal vašemu dronu:
Podle výrobce a modelu vašeho dronu se tedy můžete obrátit na úložiště Github - „nrf24_cx10_pc“vytvořené společností Perry Tsao a vybrat správný kód Arduino, který bude spuštěn a který bude odpovídat jeho frekvenci. Vytvořil pěkný návod k ovládání svého CX10 Drone přes PC.
Když jsem používal dron JJRC H36, odkazoval jsem se na jiné úložiště Github - „nrf24_JJRC_H36_pc“, což byla vidlice repo Perry Tsao vytvořená Lewisem Cornickem k ovládání jeho JJRC H36 přes PC.
Příprava Arduina:
Rozbil jsem Lewisovo repo na můj Github, který můžete naklonovat, pokud pracujete na stejném dronu. Do svého Arduino Uno musíte jednou nahrát kód „nRF24_multipro.ino“, aby se spároval s vaším Drone pokaždé, když spustíme náš skript Python.
Testování sériové komunikace:
Ve stejném repo můžete také najít kód „serial_test.py“, který lze použít k testování sériové komunikace skriptu Python s Arduino a zda se váš dron spáruje nebo ne. Nezapomeňte změnit COM port v kódu podle COM portu vaší desky Arduino.
Integrace všeho do jednoho kódu:
Integroval jsem tedy všechny tyto kódy různými vývojáři a vytvořil jsem si vlastní kód „handserial.py“. Pokud děláte přesně to samé, co dělám s úplně stejným dronem, pak můžete přímo spustit tento kód a pak můžete ovládat dron pouhým pohybem pěsti do vzduchu. Kód nejprve sleduje pěst ve video rámečku. V závislosti na souřadnici Y pěsti kód odešle hodnotu škrticí klapky do dronu, čímž se zvýší nebo sníží, a podobně v závislosti na souřadnici X v pěst, kód odešle hodnotu křidélka dronu, aby šla doleva nebo doprava.
Krok 4: Autorova poznámka
K tomuto projektu bych chtěl zvláště zmínit 4 body:
- Jak již bylo uvedeno dříve, tento kód není zcela vytvořen mnou, ale pracuji na něm nepřetržitě a bude aktualizovat kód pro lepší sledování v mém úložišti Github. V případě jakýchkoli dotazů nebo aktualizací můžete navštívit úložiště nebo pingnout na Instagram.
- V současné době používáme webovou kameru notebooku, která neumožňuje mít perspektivu pohledu dronu, ale v případě potřeby lze pro účely sledování použít také kamery namontované na dronu. To pomůže mít lepší přehled a nakonec lepší kontrolu.
- Pro tento projekt používám dron JJRC H36, který je jedním z nejlevnějších dronů dostupných na trhu, a proto postrádá gyroskopickou stabilitu. To je důvod, proč byste mohli mít pocit, že se pohyb ve videu otřásá, ale pokud používáte dron slušné kvality s dobrou stabilitou, tomuto problému nebudete čelit.
- Chtěl jsem si pohrát s počítačovým viděním a ovládáním dronů, proto jsem začal s tímto projektem. Ale po práci na počítačovém vidění mám pocit, že to není optimální řešení pro ovládání dronu. V budoucnu tedy plánuji vyrobit nějaký druh rukavicového zařízení s gyroskopickým senzorem pro ovládání dronu. Sledujte tedy novinky…
Pokud se vám tento návod líbil, lajkujte a sdílejte a také pro něj hlasujte.
To je prozatím vše.. Uvidíme se brzy příště…
Doporučuje:
Flashujte zavaděč Arduino v krocích ATMega328: 4
Flash Arduino Bootloader na ATMega328: Questo tutorial ci permette di caricare il Bootloader nel caso in cui l'ATmega, presente su una bord di nostra creazione, sia vergine; přijít ad esempio nel caso in cui si vuole realizzare la Drivemall
Herní design rychlým pohybem v 5 krocích: 5 kroků
Game Design in Flick in 5 Steps: Flick je opravdu jednoduchý způsob, jak vytvořit hru, zejména něco jako logická hra, vizuální román nebo dobrodružná hra
Rozpoznání tváře na Raspberry Pi 4B ve 3 krocích: 3 kroky
Detekce obličeje na Raspberry Pi 4B ve 3 krocích: V tomto Instructable provedeme detekci obličeje na Raspberry Pi 4 s Shunya O/S pomocí Shunyaface Library. Shunyaface je knihovna pro rozpoznávání/rozpoznávání obličejů. Cílem projektu je dosáhnout nejrychlejší rychlosti detekce a rozpoznávání s
Nejmenší auto na světě s elektronickou kontrolou stability!: 5 kroků (s obrázky)
Nejmenší auto na světě s elektronickým řízením stability: Máte jedno z těch malých aut s colou? A jeho ovladatelnost je na nic? Pak přichází řešení: Arduino 2,4 GHz " Micro RC " proporcionální úprava ovládání! Vlastnosti: Proporcionální ovládání Arduino " Micro RC " konverze
Hackujte své servo V1.00 - proměňte své servo v výkonný lineární pohon: 7 kroků
Hack Your Servo V1.00 - Proměňte své servo v výkonný lineární pohon: Za předpokladu, že máte nástroje a servo, můžete si jej postavit za pár peněz. Aktuátor se vysouvá rychlostí přibližně 50 mm/min. Je to docela pomalé, ale velmi silné. Podívejte se na moje video na konci příspěvku, kde malý pohon