Obsah:

Obousměrné rádio NRF24 pro telemetrii: 9 kroků (s obrázky)
Obousměrné rádio NRF24 pro telemetrii: 9 kroků (s obrázky)

Video: Obousměrné rádio NRF24 pro telemetrii: 9 kroků (s obrázky)

Video: Obousměrné rádio NRF24 pro telemetrii: 9 kroků (s obrázky)
Video: Flipper Zero: Hackujeme RFID 🐬 (Adam Hořčica) 2024, Červenec
Anonim
Obousměrné rádio NRF24 pro telemetrii
Obousměrné rádio NRF24 pro telemetrii

Ahoj kluci, jmenuji se Pedro Castelani a přináším vám svůj první návod: sestrojení obousměrného rádia s arduinem pro cokoli, pro co to potřebujete.

V tomto projektu vytvoříme dva samostatné obvody, které budou fungovat jako přijímač i vysílač. Nejdůležitějšími komponentami jsou dvě desky arduino (všechny fungují) a dva transcieverové moduly nrf24. V mém případě ovládám servo potenciometrem z druhého arduina a posílám napětí dvoučlánkové lipo baterie zpět na první.

Mám v úmyslu jej použít jako doplněk pro svůj dron, který nemá telemetrii ani ovládání servopohonu. Můžete jej však použít k jiným věcem, jako je stavba vlastní kvadrokoptéry, letadla, auta na dálkové ovládání atd. Z dodaného kódu můžete také provádět jakékoli požadované úpravy podle svých potřeb. Pokusím se také vysvětlit, jak to správně upravit (což mi trvalo nějaký čas, než jsem se to naučil sám, protože jsem byl zvyklý na jiný druh použití čipu nrf24).

Krok 1: Materiály

Materiály
Materiály
Materiály
Materiály
Materiály
Materiály

Abychom mohli začít náš projekt, musíme znát všechny potřebné součásti. Níže je uveden seznam základních potřebných. Většinu jsem koupil v místním obchodě s elektronikou, kde bydlím, takže vám nebudu moci doporučit žádné místo k nákupu. Můžete zkusit Amazon nebo jakékoli jiné místo. Neříkám, že byste si je tam měli objednat, ale je to jen návrh.

  1. Dvě desky Arduino (kdokoli by měl fungovat. Mám dva arduino pro mini, které se mi hodně líbí, protože mají 13 digitálních pinů a 8 analogových, zatímco Uno má jen 6 analogových).
  2. Dva moduly Nrf24. Existují některé s externími anténami, které mají větší dosah přenosu. Vyberte si ty, které se vám nejvíce líbí.
  3. Propojovací kabely žena-žena a žena-muž.
  4. Prototypovací deska.
  5. Programátor Arduino (pro arduino pro mini, pokud jej máte s USB připojením, jej nebudete potřebovat).
  6. Arduino IDE (software). Stahujte odtud.
  7. V mém případě jsem také použil:
  • Servo. Kdokoli, koho můžete získat. Mám rád SG90, malý, určený pro arduino.
  • Potenciometr (mezi 10k a 20k ohmy). Lze zakoupit v místním obchodě s elektronikou nebo můžete použít joystick vyrobený pro arduino. Existuje několik obrázků těch, které mám. Také jsem dostal jeden z rozbitého ovladače RC dronu, jen pro představu
  • 4 stejné normální odpory. Použil jsem 10k, které jsem dostal z domu mého dědečka. Používám je jako děliče napětí.
  • Malá měděná podložka z perfboardu (kterou jsem také dostal od mého dědy) pro pájení rezistorů dohromady.
  • Špendlíky. Slouží k snadnému připojení propojovacích kabelů z arduina k rezistorům.
  • 2s lipo baterie. Používám to k napájení jednoho ze svých arduinos. K němu jsou připojeny odpory a čtou jeho napětí. Mám v úmyslu připojit mé arduino k 2s baterii mého dronu, protože nepotřebuje externí zdroj energie a zároveň mi řekne, kolik baterie zbývá.
  • Páječka a pájka. Potřebné k pájení rezistorů, perfboardu a pinů dohromady.

Krok 2: Funkce a kód

Funkce a kód
Funkce a kód

Jakmile jsou uvedeny všechny materiály, začněme mluvit o funkci modulů.

Jak to funguje: Nazvěme jedno arduino „A“a druhé „B“. V mém případě jsem je po naprogramování obou připojil k jejich odpovídajícímu rádiovému čipu a přidal potenciometr na arduino A a odpory a servo na arduino B. Modul A vysílá hodnoty do B a přesouvá servo. B načte napětí 2s baterie a pošle je zpět A. Poté celý kruh začíná znovu. Protože A přijímá hodnoty, které nejsou mechanicky vyjádřeny, je připojen k programátoru, pomocí kterého je můžeme přečíst pomocí sériového monitoru (součástí Arduino IDE)

Kód: Nazývám skicu pro arduino A (spojenou s programátorem a potenciometrem) TwoWayRadio_1 a skicu pro arduino B TwoWayRadio_2WithServo

TwoWayRadio_1 a TwoWayRadio_2WithServo najdete hned pod tímto odstavcem. Uvnitř každého kódu je vysvětlení, aby bylo vše srozumitelnější.

Krok 3: Pájecí moduly: Dělič napětí a potenciometr

Pájecí moduly: Dělič napětí a potenciometr
Pájecí moduly: Dělič napětí a potenciometr
Pájecí moduly: Dělič napětí a potenciometr
Pájecí moduly: Dělič napětí a potenciometr
Pájecí moduly: Dělič napětí a potenciometr
Pájecí moduly: Dělič napětí a potenciometr
Pájecí moduly: Dělič napětí a potenciometr
Pájecí moduly: Dělič napětí a potenciometr

Tento krok je volitelný, protože možná budete chtít použít pouze potenciometr-joystick navržený speciálně pro arduino a místo děliče napětí použít jiný modul. Naplánoval jsem však vše (včetně kódů) pro tyto moduly.

Potenciometr:

Tato část je asi nejjednodušší v kroku pájení. K vašemu potenciometru budete muset připájet propojovací kabely. Pokud chcete, můžete nejprve potenciometr připájet k perfboardu a poté pájet některé piny. Když ho potřebujete použít, stačí propojit propojovací kabely s arduinem a poté s piny na perfboardu. Pokud kabely nepoužíváte, můžete je odstranit a použít je pro jiný projekt. Pokud však budete postupovat stejně jako já, můžete potenciometr nechat připájet přímo ke kabelům

  • Pokud děláte to, co já, vezměte tři propojovací kabely žena-žena, přestřihněte jeden z hrotů a odstraňte izolaci a na každém vodiči nechte malý kousek měděného vedení.
  • Zahřejte páječku a připájejte upravené propojky k pinům potenciometrů. Pokud můžete, zkuste získat různé barvy, abyste si mohli pamatovat, která je vcc, gnd a „signální“(prostřední). Připojte tyto kabely k odpovídajícím analogovým pinům na Arduinu. Na začátku kroku je několik obrázků o tom, jak to nakonec vypadalo. Potenciometr není pravidelný, je to vlastně malé kolečko, které mělo pět pinů. Trvalo mi nějaký čas, než jsem zjistil, který byl který. Zkuste to udělat jednodušeji a použijte běžný potenciometr, jak je znázorněno v kroku MATERIÁLY.
  • Pokud jej pájíte na perfboard, pořiďte potenciometr a perfboard a připájejte je společně s páječkou.
  • Získejte kolíky (tři) a umístěte je nejpohodlnějším způsobem. Pomocí pájky vytvořte spojení mezi každým kolíkem a piny potenciometru. Nevytvářejte spojení mezi více než dvěma piny, jinak nebude fungovat (bude fungovat jako zkrat).
  • Získejte propojovací vodiče žena-žena nebo žena-muž a připojte je z vašeho Arduina k vašemu novému modulu potenciometru (pamatujte si, který je který).

2. Dělič napětí:

  • Tato část je trochu komplikovanější. Budete muset získat čtyři odpory, pět pinů a perfboard. Kód jsem navrhl tak, aby byl použit pro 2s baterii (dvoučlánkový), ale mohli byste ho použít i pro 1 s tím, že trochu změníte skicu arduina a hardware. Zahrnul jsem obrázky dvou děličů napětí, které jsem vytvořil, jeden s pouhými 2 odpory (pro 1s baterie) a jeden se čtyřmi (uhodli jste: 2s baterie).
  • Začněme dvojkou. Nemám představy o procesu stavby, protože jsem začal vtipkovat tento instruktáž hodně dlouho poté, co jsem skončil s jeho pájením. Vkládám obrázky konečného výsledku, takže se pokusím být co nejjasnější.
  • Začněte tím, že získáte perfboard a 5 pinů. Pájejte je blízko ke straně a nedovolte, aby se navzájem dotýkaly.
  • Pájejte odpory, jak je znázorněno na posledním obrázku, na začátku kroku (malé schéma zapojení). Spojení mezi každým odporem a kolíkem je provedeno pájkou. Pokuste se obsadit co nejméně místa.
  • Až budete hotovi, mělo by to vypadat podobně jako obrázky hotového děliče napětí, které jsem zveřejnil výše.
  • Dělič napětí 1 s je v zásadě stejný, s výjimkou, že používáte pouze tři piny a dva odpory. Přidal jsem obrázky, jak to vypadá po dokončení. Stačí se podívat na schéma pro 2s a představit si to bez signálního vodiče 1, prostředního vodiče a rezistorů r2 a r3 a tam to máte!
  • Pokud tedy chcete dělič napětí 1 s, může to být trochu komplikovanější než použití 2 s.

Krok 4: Programování Arduina

Programování Arduina
Programování Arduina
  1. Jsme téměř hotovi!
  2. Po stažení softwaru Arduino IDE z webu propojeného v kroku MATERIÁLY si stáhněte náčrty z kroku FUNKCE A KÓD.
  3. Poté je otevřete v Arduino IDE.
  4. Otevřete „Nástroje“na kterékoli z obou karet a klikněte na „Desky“. Vyberte si ze seznamu svoji desku. Klikněte na „Procesor“a poté na „Programátor“, přičemž každý z nich vyberte podle své desky. Poté se vraťte k náčrtu. Je docela výhodné podívat se na informace o vaší desce na internetu. Podívejte se na název a podívejte se na specifikace.
  5. Klikněte na „skica“(nahoru), poté na „zahrnout knihovnu“a poté „spravovat knihovny“. Uprostřed obrazovky by se mělo otevřít malé okno. Zadejte do možnosti vyhledávání „rf24“. Stáhněte si požadovanou knihovnu. Bude nutné mít možnost nahrát kód na arduino desku.
  6. Pro jistotu klikněte na symbol „Tick“(vlevo nahoře) a ověřte, že neobsahuje žádné chyby. Poté jej nahrajte stisknutím šipky směřující doprava vedle symbolu „Tick“.
  7. Pokud je vaše deska Pro Mini, za chvíli vysvětlím, jak vše propojit. Pokud tomu tak není, jednoduše jej nahrajte a po dokončení programování obou arduinos přejděte k dalšímu kroku po přečtení níže uvedeného varování.
  8. Vzhledem k tomu, že máte dvě desky, PAMATUJTE, na kterém kódu byl každý naprogramován, abyste se vyhnuli budoucím problémům.
  9. Pokud tedy máte Pro Mini, budete potřebovat programátor. Existují dva druhy programátorů: 5kolíkový a 6kolíkový. Zaměřím se na 5kolíkové, protože jsou to ty, které mám. Připojení jsou následující (první pin je od programátora, pak arduino): Gnd-Gnd; 5v-Vcc (kromě případů, kdy je váš Pro Mini 3,3v, v takovém případě je 3,3v-Vcc); Rxd-Txo; Txd-Rxi. Vložil jsem obrázek desky i programátoru, pro případ, že byste potřebovali zkontrolovat.
  10. Připojte arduino k programátoru a programátor k počítači. Otevřete IDE a klikněte na tlačítko pro nahrání. Pokud se podíváte do levé dolní části obrazovky, zobrazí se zpráva „kompilace“. Ve chvíli, kdy se tato zpráva změní na „nahrávání“, stiskněte tlačítko reset na arduino Pro Mini. Po chvíli se skica dokončí a zobrazí se zpráva „Dokončeno nahrávání“. Jakmile se to stane, jste hotovi a připraveni přejít k dalšímu kroku.

Krok 5: Připojení všeho

Propojení všeho
Propojení všeho
Propojení všeho
Propojení všeho
Propojení všeho
Propojení všeho
Propojení všeho
Propojení všeho
  1. Poté, co jsme naprogramovali oba arduino, musíme vše propojit, aby to fungovalo. Zde budeme potřebovat vše, co bylo zmíněno dříve: arduino, moduly nrf24, kabely, servo, programátor, dělič napětí, potenciometr atd.
  2. Nejprve připojíme arduino, které pracuje s programátorem. Na začátku kroku jsou obrázky připojení nrf24. Pin irq, který prý jde na arduino na pin 8, není vůbec připojen. Zbytek je stejný jako na obrázku pro oba Arduiny (pro více informací si můžete přečíst poznámky uvnitř obrázků)
  3. Vcc pro rádio může být připojeno k 3,3 nebo 5v. Někdy to funguje jen s jedním z nich. Zkuste to s 3.3 a potom 5, pokud to nebude fungovat. Pro 3.3 použijte pin 3.3v programátoru. Musel jsem to udělat, jak uvidíte na obrázcích hotového výrobku.
  4. Připojte programátor k arduinu, jak bylo řečeno v předchozím kroku.
  5. Připojte „signální“kabel potenciometru k analogovému pinu A0.
  6. Připojte „pozitivní“potenciometr k Vcc (pouze 5 V, ne 3,3) a „Negativní“k Gnd.
  7. Předejte druhé arduino.
  8. Podle obrázků připojte rádio, jak bylo řečeno výše.
  9. Připojte signální kabel serva (oranžovo-žlutobílý. Zkontrolujte specifikace pro servo) k digitálnímu pinu 2 a jeho GND k GND Arduina a jeho kladný pól k Vcc Arduina.
  10. Připojte signální kabel 1 od děliče napětí ke kolíku A0 a signální vodič 2 ke kolíku A1.
  11. Připojte pomocí protoboardu, záporného kabelu děliče napětí, GND Arduina a GND baterie (černý kabel na první zástrčce).
  12. Připojte „střední kabel“z děliče napětí ke střednímu kabelu mezi červeným a černým kabelem první zástrčky (bílá barva).
  13. Připojte 'kladný' kabel od děliče napětí ke kladnému pólu baterie a k arduino Raw. Nepřipojujte přímo k Vcc, protože tento pin je speciálně pro 5v. Surový pin používá jakékoli napětí nad 3,3 nebo 5v až 12v a reguluje jej Vcc piny se pak stanou výstupy s 5v.

Jste téměř hotovi! Vaše hotové výrobky by měly vypadat jako na obrázcích výše. Znovu zkontrolujte každé připojení, aby nedošlo ke zkratu.

Krok 6: Zapněte svůj projekt

  • Vaše arduino se servem bylo napájeno posledním krokem, když jste připojili baterii k celému obvodu. Stačí tedy připojit druhé arduino k USB portu a jste hotovi!
  • Přesuňte potenciometr a měli byste vidět, jak se pohybuje i servo. V mém případě je servo připevněno k 1 osému kamerovému závěsu, který omezoval úhel, takže jsem musel upravit parametry. Každopádně to v kódu najdete.
  • Chcete -li zobrazit napětí, po připojení programátoru k počítači otevřete software arduino a stiskněte „Ctrl+Shift+m“. Otevře se okno s nápisem „Serial Monitor“. Ve spodní části tohoto okna je možnost, která čte „(číslo) baud“. Klikněte na něj a vyberte „9600“. Zavřete monitor a znovu jej otevřete stisknutím stejných kláves a mělo by se začít zobrazovat mnoho hodnot, které přicházejí. Nebudete moci vidět, jaké jsou tyto hodnoty kvůli rychlosti, s jakou přicházejí, ale pokud odpojíte programátor, zastaví se a můžete si je přečíst. Snažím se získat něco, s čím je automaticky vykreslím, abych zobrazil napětí nebo je reprezentoval LED diodami, ale to je stále v procesu.
  • I když možná nevidíte hodnoty jasně, protože jdou tak rychle, stačí vědět, že to konečně funguje a že to můžete upravit tak, aby vyhovovalo vašim potřebám!

Krok 7: Demo

Toto je video, jak jej zapínám a používám jen trochu, abych vám ukázal, jak by měl fungovat.

Krok 8: Další nápady, jak tento projekt použít

Další nápady, jak tento projekt použít
Další nápady, jak tento projekt použít
Další nápady, jak tento projekt použít
Další nápady, jak tento projekt použít
Další nápady, jak tento projekt použít
Další nápady, jak tento projekt použít

Zde je několik nápadů, které můžete vytvořit pomocí tohoto jako základu. Řekněte mi, jestli jeden z nich vyrobíte, nebo pokud to zkusíte a nemůžete, mohu vám pomoci!

  • Místo čtení napětí upravte kód tak, aby odeslal zpět teplotu, tlak, výšku atd. Na to mi přišel čip BMP180 docela užitečný.
  • Změřte vzdálenosti pomocí modulu HC-SR04 a pošlete je zpět na první arduino. Pomocí serva nasměrujte senzor kamkoli chcete.
  • Přidejte další servo kanál pro pohyb kamery nahoru a do stran; například na RC auto.
  • Přidejte tři další servo kanály (nebo více!) A vytvořte si vlastní RC vysílač a přijímač pro kvadrokoptéru, letadlo, helikoptéru, RC auto atd.!
  • Vyměňte servo za světlomet a přidejte ho do svého dronu! Budete také moci ovládat intenzitu světla (možná budete potřebovat nějaké tranzistory a změnu kódu)
  • Namísto čtení napětí na počítači buďte kreativní a přidejte modul LCD, nebo můžete vytvořit 6vodičovou desku (dvě zelené, dvě žluté a dvě červené), které je budou postupně vypínat, jakmile se baterie vybije a začne blikat, když úroveň baterie klesne pod vámi zvolené napětí. Vytvořil jsem tuto malou tabuli a na začátek kroku jsem umístil obrázek.

Aby bylo vše jasné, pokud se chystáte provést jeden z těchto projektů, mějte na paměti, že budete muset upravit oba kódy a možná i některá spojení. Zkuste prosím pamatovat na to, abyste svou desku nesmažili tím, že uděláte nějakou hloupost.

Pokud máte další nápady nebo potřebujete pomoc s realizací jednoho z těchto projektů, napište prosím do sekce otázek!

Krok 9: Odstraňování problémů

Odstraňování problémů
Odstraňování problémů

Abych pravdu řekl, většina problémů, se kterými jsem se zatím setkal, souvisela s částí náčrtu, kterou jste již vyřešili. Pokusím se vám sdělit co nejvíce problémů, abych vám co nejvíce pomohl.

Nejprve, pokud se pokoušíte načíst skicu a nemůžete, zkuste toto:

Ujistěte se, že jste si stáhli potřebné knihovny (a ty správné!).

Ujistěte se, že jste vybrali správnou desku, procesor a programátor.

Ujistěte se, že spojení mezi počítačem a programátorem a programátorem a arduinem je dobré.

Pokud používáte pro mini, zkuste po zobrazení zprávy „nahrávání“stisknout tlačítko reset co nejdříve.

O všech těchto věcech se mluví v kroku PROGRAMOVÁNÍ VAŠEHO ARDUINA.

Za druhé, zkontrolujte všechna spojení mezi vším:

Pokud se vaše arduino nezapne, je to zjevně problém s napětím. Zkontrolujte, zda nejsou kabely správně připojeny a zda nedošlo ke zkratu.

Pokud se zapne, ale nefunguje, ujistěte se, že všechna připojení jsou tam, kde by měla být, že arduino naprogramované pro připojení k servo a dělič napětí je opravdu připojeno (jinými slovy, ujistěte se, že jste nemíchali nahoru), zkuste na obou stisknout tlačítko reset a uvidíte, co se stane. V extrémně vzácných případech může být celá vina na modulu NRF24. Našel jsem jeden z mých, který funguje pouze na 5 voltů a druhý, který funguje pouze na 3,3 V. Zkontrolujte, zda se tím něco vyřeší. Také se mi stalo, že pouze jedno arduino fungovalo s rádiem 3,3 V a druhé fungovalo pouze s 5 V. Překvapivé, že?

Za třetí, pokud můžete přesouvat servo, ale napětí je špatné, zkontrolujte, zda jsou připojení k děliči napětí stejná jako na obrázku v kroku 3 a připojení k arduinu. Pokud na druhé straně získáte napětí, ale nemůžete správně posunout servo, zkontrolujte potenciometr a jeho připojení, připojení serva k digitálnímu pinu a k Vcc a Gnd, a pokud je servo zaseknuté, zlomené nebo v zkrat. Zkuste to změnit jiným servem. Ujistěte se, že digitální pin je stejný jako ten, který je uveden v kódu

No, to jsou asi všechny věci, které by mě mohly napadnout ohledně problémů, se kterými se můžete setkat. Doufám, že se nikdy nestanou a šťastné projekty!

Děkuji, že jste si přečetli můj Instructable! Sdílejte a hlasujte v PRVNÍ ČASOVÉ soutěži AUTORA!

Doporučuje: