Tartalomjegyzék:

NRF24 kétirányú rádió telemetriához: 9 lépés (képekkel)
NRF24 kétirányú rádió telemetriához: 9 lépés (képekkel)

Videó: NRF24 kétirányú rádió telemetriához: 9 lépés (képekkel)

Videó: NRF24 kétirányú rádió telemetriához: 9 lépés (képekkel)
Videó: Подключение и настройка nRF24L01 к Arduino (модуль беспроводной связи) 2024, Július
Anonim
NRF24 kétirányú rádió telemetriához
NRF24 kétirányú rádió telemetriához

Sziasztok srácok, a nevem Pedro Castelani, és elhozom nektek az első tanulságosat: kétirányú rádió építése arduino -val, hát, bármire is van szüksége.

Ebben a projektben két külön áramkört készítünk, amelyek vevőként és adóként is működnek. A legfontosabb összetevők két arduino kártya (mindegyik működik) és két nrf24 adó -vevő modul. Az én esetemben a másik arduino potenciométerrel vezérelek egy szervót, és egy kétcellás lipo akkumulátor feszültségét visszaküldöm az elsőhöz.

Kiegészítésként kívánom használni a drónomhoz, amely nem rendelkezik telemetriával és szervo kardánvezérléssel. Használhatja azonban más célokra is, például saját quadcopter, repülőgép, rc autó, stb. Építéséhez. A mellékelt kódból tetszés szerinti módosításokat is elvégezhet. Megpróbálom elmagyarázni azt is, hogyan kell helyesen módosítani (ami némi időbe telt, míg magamtól megtanultam, mivel megszoktam az nrf24 chip másfajta használatát).

1. lépés: Anyagok

Anyagok
Anyagok
Anyagok
Anyagok
Anyagok
Anyagok

A projekt elindításához ismernünk kell az összes szükséges alkatrészt. Az alábbiakban felsoroljuk a szükséges alapvető elemeket. A legtöbbet egy helyi elektronikai boltban vettem, ahol lakom, ezért nem tudom ajánlani Önnek a vásárlás helyét. Kipróbálhatod az Amazont vagy bármely más helyet. Nem azt mondom, hogy rendeld meg őket, de ez csak egy javaslat.

  1. Két Arduino tábla (bárkinek dolgoznia kell. Két arduino pro mini -m van, ami nagyon tetszik, mert 13 digitális tűvel és 8 analóggal rendelkezik, míg az Uno csak 6 analóggal rendelkezik).
  2. Két Nrf24 modul. Vannak olyanok, amelyek külső antennákkal rendelkeznek, amelyek nagyobb átviteli hatótávolsággal rendelkeznek. Válassza ki a legjobban tetszőket.
  3. Női-női és női-férfi áthidaló kábelek.
  4. Prototípus -tábla.
  5. Arduino programozó (arduino pro mini esetén, ha rendelkezik USB -kapcsolattal, akkor nem lesz rá szüksége).
  6. Arduino IDE (szoftver). Letöltés innen.
  7. Esetemben ezt is használtam:
  • Szervo. Bárki, akit megszerezhet. Tetszik az SG90, egy kicsi arduino -hoz.
  • Potenciométer (10 és 20 k ohm között). Megvásárolható a helyi elektronikai boltban, vagy használhatja az arduino számára készült joystickot. Van néhány kép a nálam lévőkről. Én is kaptam egyet egy törött drone rc vezérlőből, csak hogy néhány ötletet adjak
  • 4 egyenlő normál ellenállás. 10 ezer darabot használtam, amelyeket a nagyapám házából kaptam. Feszültségosztóként használom őket.
  • Kicsi rézpárna perforált lemez (amit én is a nagyapámtól kaptam) az ellenállások összeforrasztásához.
  • Csapok. Az arduino jumper kábeleinek egyszerű csatlakoztatására szolgál az ellenállásokhoz.
  • 2s lipo akkumulátor. Az egyik arduinóm áramellátására használom. Az ellenállások csatlakoztatva vannak hozzá, és leolvassák a feszültségeket. Arduino -t szándékozom csatlakoztatni a drónom 2s -es akkumulátorához, mivel nem igényel külső áramforrást, és ugyanakkor megmondja, mennyi akkumulátor van még hátra.
  • Forrasztópáka és forrasztópáka. Az ellenállások, a perforációs panel és a csapok összeforrasztásához szükséges.

2. lépés: Funkció és kód

Funkció és kód
Funkció és kód

Miután minden anyagot megemlítettünk, kezdjünk el beszélni a modulok funkciójáról.

Hogyan működik: Nevezzük az egyik arduino -t "A" -nak, a másikat "B" -nek. Az én esetemben mindkettő programozása után csatlakoztattam őket a megfelelő rádióchiphez, és hozzáadtam a potenciométert az arduino A -hoz, az ellenállásokat és a szervót pedig az arduino B -hez. B leolvassa a 2s akkumulátor feszültségét, és visszaküldi őket A -hoz. Ezután az egész kör újra kezdődik. Mivel A mechanikailag nem kifejezett értékeket vesz fel, a programozóhoz van csatlakoztatva, amelyen keresztül egy soros monitorral (az Arduino IDE -ben) olvashatjuk őket

Kód: Az arduino A vázlatát hívom (a programozóhoz és a potenciométerhez csatlakoztatva) TwoWayRadio_1, és a vázlatot az arduino B TwoWayRadio_2WithServo -hoz

A TwoWayRadio_1 és a TwoWayRadio_2WithServo közvetlenül a bekezdés alatt található. Minden kódon belül van egy magyarázat, hogy minden könnyebben érthető legyen.

3. lépés: Forrasztási modulok: feszültségosztó és potenciométer

Forrasztó modulok: feszültségosztó és potenciométer
Forrasztó modulok: feszültségosztó és potenciométer
Forrasztó modulok: feszültségosztó és potenciométer
Forrasztó modulok: feszültségosztó és potenciométer
Forrasztó modulok: feszültségosztó és potenciométer
Forrasztó modulok: feszültségosztó és potenciométer
Forrasztó modulok: feszültségosztó és potenciométer
Forrasztó modulok: feszültségosztó és potenciométer

Ez a lépés opcionális, mivel érdemes használni a potenciométer-joystickot, amelyet kifejezetten az arduino számára terveztek, és a feszültségosztó helyett egy másik modult használni. Én azonban mindent megterveztem (a kódokat is beleértve) ezekhez a modulokhoz.

Potenciométer:

Ez a rész a forrasztási lépésben a legegyszerűbb. Csak néhány jumper kábelt kell forrasztania a potenciométeréhez. Ha akarja, először forraszthatja a potenciométert a perforációs táblához, majd forraszthat néhányat a csapokból. Ha használni kell, csak csatlakoztassa az áthidaló kábeleket az arduino -hoz, majd a perfboardon lévő csapokhoz. Ha nem használja, eltávolíthatja a kábeleket, és felhasználhatja őket egy másik projekthez. Ha azonban úgy tesz, mint én, akkor hagyja a potenciométert közvetlenül a kábelekhez forrasztva

  • Ha úgy tesz, mint én, szerezzen be három női-női áthidaló kábelt, vágja le az egyik csúcsot, és távolítsa el a szigetelést, és hagyjon egy kis darab rézhuzalot minden huzalon.
  • Melegítse fel a forrasztópáka és forrasztja a módosított áthidalókat a potenciométerek csapjaihoz. Ha teheti, próbáljon különböző színeket kapni, hogy emlékezzen arra, melyik a vcc, a gnd és a "jelzés" (a középső). Csatlakoztassa ezeket a kábeleket az arduino megfelelő analóg csapjaihoz. A lépés elején néhány kép található arról, hogyan nézett ki. A potenciométer nem szokványos, valójában egy kis kerék, amelynek öt csapja volt. Beletelt egy kis időbe, mire rájöttem, melyik melyik. Próbálja meg könnyebben megtenni, és használjon normál potenciométert az ANYAGOK lépésben látható módon.
  • Ha perforációs lapra forrasztja, vegye be a potenciométert és a perfboardot, és forrasztja őket a forrasztópáka mellé.
  • Szerezze be a csapokat (három), és helyezze őket a legkényelmesebb módon. Forrasztással csatlakoztassa az egyes csapokat a potenciométer csapjaihoz. Ne csatlakoztasson kettőnél több érintkezőt, különben nem fog működni (rövidzárlatként fog működni).
  • Szerezzen be néhány női-női vagy női-férfi áthidaló vezetéket, és csatlakoztassa őket az arduino-ból az új potenciométer-modulhoz (ne feledje, melyik melyik).

2. Feszültségosztó:

  • Ez a rész egy kicsit bonyolultabb. Meg kell szereznie a négy ellenállást, öt csapot és a perfboardot. A kódot 2s -es akkumulátorhoz (két cella) használtam, de 1 -eshez is használhatod, ha kicsit megváltoztatod az arduino vázlatot és a hardvert. Mellékeltem az általam készített két feszültségosztó képét, az egyik csak 2 ellenállással (1 másodperces elemekhez), a másik pedig négydel (sejtette: 2 másodperces akkumulátorok).
  • Kezdjük a 2 -esekkel. Nincsenek képeim az építési folyamatról, mióta jó ideje elkezdtem forgatni ezt az utasítást, miután befejeztem a forrasztást. Mellékelek képeket a végeredményről, így megpróbálok minél világosabb lenni.
  • Kezdje a perfboard és 5 csap beszerzésével. Forrasztja őket közel az oldalhoz, és ne hagyja, hogy megérintsék egymást.
  • Forrasztja az ellenállásokat a lépés elején az utolsó képen látható módon (a kis kapcsolási rajz). Az egyes ellenállások és csapok közötti csatlakozásokat forrasztással kell elvégezni. Próbáljon a lehető legkevesebb helyet elfoglalni.
  • Ha elkészült, valahogy úgy kell kinéznie, mint a kész feszültségosztó képei, amelyeket fent közzétettem.
  • Az 1s feszültségosztó alapvetően ugyanaz, azzal a kivétellel, hogy csak három érintkezőt és két ellenállást használ. Mellékelem a képeket, hogyan néz ki, ha elkészült. Nézd csak meg a 2s diagramját, és képzeld el az 1 jelvezeték, a középső vezeték és az R2 és R3 ellenállások nélkül, és ott van!
  • Tehát, ha 1 -es feszültségosztót szeretne, lehet, hogy egy kicsit bonyolultabb, mint a 2 -es.

4. lépés: Az Arduino programozása

Az Arduino programozása
Az Arduino programozása
  1. Majdnem végeztünk!
  2. Miután letöltötte az Arduino IDE szoftvert az ANYAGOK lépésben linkelt webhelyről, töltse le a vázlatokat a FUNKCIÓ ÉS KÓD lépésből.
  3. Ezután nyissa meg őket az Arduino IDE -ben.
  4. Nyissa meg az "Eszközök" lehetőséget mindkét lapon, és kattintson a "Táblák" gombra. Válassza ki a tábláját a listából. Kattintson a "Processzor", majd a "Programozó" elemre, és válassza ki mindegyiket a tábla szerint. Ezután térjen vissza a vázlathoz. Nagyon kényelmes a tábla adatait az interneten keresni. Csak nézd meg a nevet és nézd meg a specifikációkat.
  5. Kattintson a "vázlat" elemre (fent), majd a "könyvtár felvétele", majd a "könyvtárak kezelése" elemre. Egy kis ablaknak kell kinyílnia a képernyő közepén. Írja be az "rf24" keresési lehetőséget. Töltse le a kívánt könyvtárat. Szükséges lesz a kód feltöltése az arduino táblára.
  6. Annak érdekében, hogy megbizonyosodjon róla, kattintson a "Kullancs" szimbólumra (balra fent), hogy ellenőrizze, nincs -e benne hiba. Ezután folytassa a feltöltést a jobbra mutató nyíl megnyomásával, a "Tick" szimbólum mellett.
  7. Ha az alaplapja Pro Mini, egy idő után elmagyarázom, hogyan kell mindent csatlakoztatni. Ha nem, csak töltse fel, és miután befejezte mindkét arduino programozását, az alábbi figyelmeztetés elolvasása után ugorjon a következő lépésre.
  8. Mivel két táblája van, ne feledje, hogy melyik kódot programozta, hogy elkerülje a jövőbeni problémákat.
  9. Tehát, ha rendelkezik Pro Mini -vel, szüksége lesz egy programozóra. Kétféle programozó létezik: 5 pin és 6 pin. Az 5 tűsre fogok összpontosítani, mivel ezek azok. A kapcsolatok a következők (az első pin programozó, majd arduino): Gnd-Gnd; 5v-Vcc (kivéve, ha a Pro Mini 3.3V, ebben az esetben 3.3v-Vcc); Rxd-Txo; Txd-Rxi. Mellékeltem egy tábla és programozó képet is, hátha ellenőrizni kell.
  10. Csatlakoztassa az arduinót a programozóhoz, a programozót pedig a számítógépéhez. Nyissa meg az IDE -t, és kattintson a feltöltés gombra. Ha megnézi a képernyő bal alsó részét, megjelenik egy "fordítás" üzenet. Abban a pillanatban, hogy ez az üzenet "feltöltéssé" válik, nyomja meg az arduino Pro Mini reset gombját. Egy idő után a vázlat befejeződik, és megjelenik egy üzenet: "Feltöltés kész". Ha ez megtörtént, akkor készen áll a következő lépésre.

5. lépés: Minden csatlakoztatása

Mindent összekötni
Mindent összekötni
Mindent összekötni
Mindent összekötni
Mindent összekötni
Mindent összekötni
Mindent összekötni
Mindent összekötni
  1. Miután mindkét arduinot beprogramoztuk, mindent össze kell kapcsolnunk, hogy működjön. Itt szükségünk lesz mindenre, amit korábban említettünk: az arduino -kra, az nrf24 modulokra, a kábelekre, a szervóra, a programozóra, a feszültségosztóra, a potenciométerre stb.
  2. Először összekapcsoljuk a programozóval működő arduinot. A lépés elején az nrf24 kapcsolatainak képei találhatók. Az irq csap, amely állítólag az arduino 8. tüskéjéhez megy, egyáltalán nincs csatlakoztatva. A többi ugyanúgy, mint a képen mindkét arduino esetében (további információkért elolvashatja a képeken található megjegyzéseket)
  3. A rádió Vcc -je 3.3 vagy 5 V -ra csatlakoztatható. Néha csak az egyikükkel működik. Próbálja ki 3.3 -mal, majd 5 -tel, ha nem működik. 3.3 esetén használja a programozó 3.3V -os tűjét. Ezt meg kellett tennem, amint azt a késztermék képein látni fogja.
  4. Csatlakoztassa a programozót az arduino -hoz az előző lépésben leírtak szerint.
  5. Csatlakoztassa a potenciométer "jel" kábelét az A0 analóg érintkezőhöz.
  6. Csatlakoztassa a potenciométer "pozitív" -át Vcc -hez (csak 5v, nem 3.3) és "negatív" -ot a Gnd -hez.
  7. Át a másik arduino -nak.
  8. Csatlakoztassa a rádiót az előbbiek szerint, a képek szerint.
  9. Csatlakoztassa a szervo jelkábelt (narancssárga-sárga-fehér. Ellenőrizze a szervó specifikációit) a 2-es digitális tűhöz, és a gnd-jét az arduino Gnd-hez, és pozitív az arduino Vcc-hez.
  10. Csatlakoztassa az 1 jelkábelt a feszültségosztóból az A0 érintkezőbe és a 2 jelvezetéket az A1 tűbe.
  11. Csatlakoztassa a protoboard segítségével a feszültségosztó negatív kábelét, az arduino gnd -jét és az akkumulátor gnd -jét (fekete kábel a jst dugón).
  12. Csatlakoztassa a feszültségosztó "középső kábelét" az akkumulátor középső kábeléhez, a jst dugó piros és fekete kábelei között (fehér színű).
  13. Csatlakoztassa a „pozitív” kábelt a feszültségosztóból az akkumulátor pozitív csatlakozójához és az arduino Raw -hoz. Ne csatlakoztassa közvetlenül a Vcc -hez, mivel ez a csap kifejezetten 5 voltos. A nyerscsap bármilyen 3.3 vagy 5–12 V feletti feszültséget használ, és szabályozza azt A Vcc csapok ezután kimenetek lesznek 5V -al.

Majdnem kész! A késztermékeknek a fenti képek szerint kell kinézniük. A rövidzárlat elkerülése érdekében ellenőrizze újra az összes csatlakozást.

6. lépés: Kapcsolja be a projektet

  • Az arduino a szervóval az utolsó lépésben kapott energiát, amikor csatlakoztatta az akkumulátort az egész áramkörhöz. Tehát csak csatlakoztatnia kell a másik arduinot egy USB porthoz, és kész!
  • Mozgassa a potenciométert, és látnia kell, hogyan mozog a szervó is. Az én esetemben a szervó egy 1 tengelyes kamera kardánhoz van rögzítve, ami korlátozta a szöget, ezért módosítanom kellett a paramétereket. Ezt mindenesetre megtalálod a kódban.
  • A feszültségek megtekintéséhez, miután csatlakoztatta a programozót a számítógéphez, nyissa meg az arduino szoftvert, és nyomja meg a "Ctrl+Shift+m" gombot. Megnyílik egy ablak "Soros monitor". Ennek az ablaknak az alján található egy "(szám) baud" felirat. Kattintson rá, és válassza a "9600" lehetőséget. Zárja be a monitort, és nyissa meg újra ugyanazon gombok megnyomásával, és sok érték érkezik. Nem láthatja, hogy melyek ezek az értékek a gyorsaság miatt, de ha lekapcsolja a programozó leáll, és elolvashatja őket. Próbálok valami olyat szerezni, amellyel automatikusan grafikonba lehet foglalni őket a feszültségek megtekintéséhez, vagy LED -ekkel ábrázolni, de ez még folyamatban van.
  • Annak ellenére, hogy lehet, hogy nem látja tisztán az értékeket, mivel ezek olyan gyorsan múlnak, csak tudja, hogy végre működik, és hogy szükségleteinek megfelelően módosíthatja!

7. lépés: Demo

Nos, ez a videó arról szól, hogy bekapcsolom, és csak egy kicsit használom, hogy megmutassam, hogyan kell működnie.

8. lépés: További ötletek a projekt használatához

További ötletek a projekt használatához
További ötletek a projekt használatához
További ötletek a projekt használatához
További ötletek a projekt használatához
További ötletek a projekt használatához
További ötletek a projekt használatához

Íme néhány ötlet, amelyeket ennek alapjaként építhet fel. Mondja el, ha készít egyet közülük, vagy ha megpróbálja, de nem sikerül, segíthetek!

  • Feszültségek olvasása helyett módosítsa a kódot úgy, hogy az visszaküldje a hőmérsékletet, a nyomást, a magasságot stb. A BMP180 chipet nagyon hasznosnak találtam ehhez.
  • Mérje meg a távolságokat a HC-SR04 modullal, és küldje vissza az első arduino-nak. A szervó segítségével bárhová irányíthatja az érzékelőt.
  • Adjon hozzá egy másik szervócsatornát a kamera felfelé és oldalra mozgatásához; például egy rc autón.
  • Adjon hozzá három másik szervócsatornát (vagy több!), És készítse el saját rc adóját és vevőjét quadcopter, repülőgép, helikopter, rc autó stb. Számára!
  • Cserélje ki a szervót egy fényszóróra, és adja hozzá a drónhoz! Ön is szabályozhatja a fény intenzitását (szükség lehet néhány tranzisztorra és némi kódváltásra)
  • Ahelyett, hogy számítógépen olvasná a feszültségeket, kreatívkodjon, és adjon hozzá egy LCD-modult, vagy készíthet egy 6 ledes táblát (két zöld, két sárga és két piros), amelyek egyenként kikapcsolják, amikor az akkumulátor lemerül, és villogni kezd, amikor az akkumulátor töltöttségi szintje a kiválasztott feszültség alá csökken. Elkészítettem ezt a kis táblát, és közzétettem egy képet a lépés elején.

Csak hogy minden világos legyen, ha egy ilyen projektet készít, ne feledje, hogy módosítania kell mindkét kódot és esetleg néhány kapcsolatot. Kérem, ne feledje, hogy ne süsse meg a deszkáját valami ostobasággal.

Ha további ötletei vannak, vagy segítségre van szüksége ezen projektek végrehajtásához, kérjük, tegye fel a kérdés rovatba!

9. lépés: Hibaelhárítás

Hibaelhárítás
Hibaelhárítás

Az igazat megvallva, a legtöbb probléma, amellyel eddig találkoztam, a vázlatrészhez kapcsolódott, amelyet már megoldott. Megpróbálok minél több problémát elmondani, hogy a legtöbbet tudjak segíteni.

Először is, ha megpróbálja feltölteni a vázlatot, de nem tudja, próbálja meg ezt:

Győződjön meg róla, hogy letöltötte a szükséges könyvtárakat (és a megfelelőket!).

Győződjön meg arról, hogy a megfelelő lapot, processzort és programozót választotta.

Győződjön meg róla, hogy jó a kapcsolat a számítógép és a programozó, valamint a programozó és az arduino között.

Ha pro mini -t használ, próbálja meg a "feltöltés" üzenet megjelenése után a lehető leghamarabb megnyomni a reset gombot.

Mindezekről az ARDUINO PROGRAMOZÁSA lépésben beszélünk.

Másodszor, ellenőrizze az összes kapcsolatot minden között:

Ha az arduino nem kapcsol be, akkor egyértelműen feszültségprobléma. Ellenőrizze, hogy a kábelek nincsenek megfelelően csatlakoztatva, és nincs -e rövidzárlat.

Ha bekapcsol, de nem működik, győződjön meg arról, hogy minden csatlakozás ott van, ahol lennie kell, és hogy a szervóhoz és feszültségosztóhoz való csatlakoztatásra programozott arduino valóban csatlakoztatta őket (más szóval, győződjön meg arról, hogy nem keverte fel), próbálja meg megnyomni mindkettő reset gombját, és nézze meg, mi történik. Rendkívül ritka esetekben az egész hibás az NRF24 modul. Találtam egyet az enyémből, amely csak 5 voltról működik, és egy másikat, amely csak 3.3 voltról működik. Ellenőrizze, hogy ez megold -e valamit. Velem is előfordult, hogy csak az egyik arduino dolgozott a 3.3v -os rádióval, a másik pedig csak az 5v -osal. Meglepő, nem?

Harmadszor, ha tudja mozgatni a szervót, de a feszültségek nem megfelelőek, ellenőrizze, hogy a feszültségosztóhoz való csatlakozások megegyeznek -e a 3. lépésben látható diagrammal, és a kapcsolat az arduino -val. Ha viszont megkapja a feszültséget, de nem tudja megfelelően mozgatni a szervót, ellenőrizze a potenciométert és annak csatlakozásait, a szervó csatlakozását a digitális tüskéhez, valamint a Vcc és Gnd -hez, és ha a szervó beragadt, eltört vagy be van kapcsolva rövidzárlat. Próbálja meg megváltoztatni egy másik szervóval. Győződjön meg arról, hogy a digitális tű megegyezik a kódban megadottal

Nos, ezek nagyjából mindazok, amik eszembe juthatnak a felmerülő problémákról. Remélem soha nem fognak megtörténni és Boldog projekteket!

Köszönöm, hogy elolvasta az Instructable -t! Kérlek osszátok meg és szavazzatok az ELSŐSZERŰ SZERZŐI versenyre!

Ajánlott: