Съдържание:

NRF24 двупосочно радио за телеметрия: 9 стъпки (със снимки)
NRF24 двупосочно радио за телеметрия: 9 стъпки (със снимки)

Видео: NRF24 двупосочно радио за телеметрия: 9 стъпки (със снимки)

Видео: NRF24 двупосочно радио за телеметрия: 9 стъпки (със снимки)
Видео: Arduino nRF24L01+ Соединяем несколько Arduino по радиоканалу multi Connect Transmitter Receiver 2024, Ноември
Anonim
NRF24 Двупосочно радио за телеметрия
NRF24 Двупосочно радио за телеметрия

Здравейте момчета, казвам се Педро Кастелани и ви представям първата си инструкция: изграждане на двупосочно радио с arduino за, добре, за каквото и да ви е необходимо.

В този проект ще направим две отделни вериги, които ще действат като приемник и предавател. Най -важните компоненти са две платки arduino (всички те работят) и два nrf24 трансивър модула. В моя случай управлявам серво с потенциометър от другия arduino и изпращам напреженията на двуклетъчна липо батерия обратно към първата.

Възнамерявам да го използвам като добавка към моя дрон, който не притежава телеметрия или серво управление на кардан. Можете обаче да го използвате за други неща, като например изграждане на собствен квадрокоптер, самолет, радиоуправляема кола и т.н. От предоставения код можете също да направите всякакви модификации, които искате според вашите нужди. Ще се опитам също да обясня как да го променя правилно (което ми отне известно време, за да се науча сам, тъй като бях свикнал с друг вид употреба на чипа nrf24).

Стъпка 1: Материали

Материали
Материали
Материали
Материали
Материали
Материали

За да започнем нашия проект, трябва да знаем всички необходими части. По -долу е даден списък на основните необходими. Купих повечето от тях в местен магазин за електроника, където живея, така че няма да мога да ви препоръчам къде да ги купите. Можете да опитате Amazon или друго място. Не казвам, че трябва да ги поръчате там, но това е само предложение.

  1. Две платки Arduino (всеки трябва да работи. Имам два arduino pro mini, които много ми харесват, защото имат 13 цифрови пина и 8 аналогови, докато Uno има само 6 аналогови).
  2. Два модула Nrf24. Има някои с външни антени, които имат по -голям обхват на предаване. Изберете тези, които най -много ви харесват.
  3. Женски-женски и женски-мъжки кабели.
  4. Прототипна дъска.
  5. Arduino Programmer (за arduino pro mini, ако имате такъв с usb връзка няма да ви е необходим).
  6. Arduino IDE (софтуер). Изтеглете от тук.
  7. В моя случай използвах и:
  • Серво. Всеки, когото можете да получите. Харесва ми SG90, малък, предназначен за arduino.
  • Потенциометър (между 10k и 20k ома). Може да се купи в местен магазин за електроника или да използвате джойстика, направен за arduino. Има няколко изображения на тези, които имам. Получих и такъв от счупен безпилотен rc контролер, само за да ви дам няколко идеи
  • 4 равни нормални резистора. Използвах 10 хиляди, които получих от къщата на дядо си. Използвам ги като разделители на напрежение.
  • Малка медна перфорирана дъска (която също получих от дядо ми) за спояване на резисторите заедно.
  • Игли. Използва се за лесно свързване на джъмперните кабели от arduino към резисторите.
  • 2s липо батерия. Използвам го за захранване на едно от моите arduinos. Резисторите са свързани към него и отчитат напреженията му. Възнамерявам моят arduino да бъде свързан към 2s батерията на моя дрон, тъй като няма да се нуждае от външен източник на захранване и в същото време да ми каже колко батерия остава.
  • Поялник и спойка. Необходимо е да се запоят резисторите, перфорираната плочка и щифтовете заедно.

Стъпка 2: Функция и код

Функция и код
Функция и код

След като всички материали са споменати, нека започнем да говорим за функцията на модулите.

Как работи: Нека наречем един arduino "A", а другия "B". В моя случай, след като програмирах и двете, ги свързах към съответния им радио чип и добавих потенциометъра към arduino A, а резисторите и серво към arduino B. Модул A изпраща стойности към B и премества Servo. B отчита напреженията на 2s батерията и ги изпраща обратно до A. Тогава целият кръг започва отново. Тъй като A получава стойности, които не са изразени механично, той е свързан с програмиста, чрез който можем да ги прочетем със сериен монитор (включен в Arduino IDE)

Код: Извиквам скицата за arduino A (свързана с програмиста и потенциометъра) TwoWayRadio_1 и скицата за arduino B TwoWayRadio_2WithServo

TwoWayRadio_1 и TwoWayRadio_2WithServo могат да бъдат намерени точно под този параграф. Във всеки код има обяснение, само за да стане всичко по -лесно за разбиране.

Стъпка 3: Модули за запояване: Делител на напрежение и потенциометър

Модули за запояване: Делител на напрежение и потенциометър
Модули за запояване: Делител на напрежение и потенциометър
Модули за запояване: Делител на напрежение и потенциометър
Модули за запояване: Делител на напрежение и потенциометър
Модули за запояване: Делител на напрежение и потенциометър
Модули за запояване: Делител на напрежение и потенциометър
Модули за запояване: Делител на напрежение и потенциометър
Модули за запояване: Делител на напрежение и потенциометър

Тази стъпка е по избор, тъй като може просто да искате да използвате потенциометъра-джойстик, проектиран специално за arduino и да използвате друг модул вместо делителя на напрежението. Аз обаче планирах всичко (включени кодове) за тези модули.

Потенциометър:

Тази част е почти най -лесната в етапа на запояване. Просто ще трябва да запоите няколко джъмперни кабела към вашия потенциометър. Ако искате, първо можете да запоите потенциометъра към перфорираната плоча и след това да запоите някои от щифтовете. Когато трябва да го използвате, просто свържете джъмперните кабели към arduino и след това към щифтовете на перфборда. Когато не се използва, можете да премахнете кабелите и да ги използвате за друг проект. Ако обаче постъпите както аз, можете да оставите потенциометъра запоен директно към кабелите

  • Ако постъпвате така, както направих аз, вземете три женско-женски джъмпер кабела, отрежете единия от накрайниците и отстранете изолацията там, оставяйки по малко парче медно окабеляване на всеки проводник.
  • Загрейте поялника си и запоявайте модифицираните джъмпери към щифтовете на потенциометрите. Ако можете, опитайте се да получите различни цветове, така че да можете да запомните кой е vcc, gnd и „сигналния“(средният). Свържете тези кабели към съответните аналогови щифтове на arduino. В началото на стъпката има някои изображения за това как изглежда завършването. Потенциометърът не е обикновен, той всъщност е малко колело, което имаше пет щифта. Отне ми известно време, за да разбера кое е кое. Опитайте се да го направите по -лесно и използвайте обикновен потенциометър, както е показано в стъпка МАТЕРИАЛИ.
  • Ако го запоявате към перфорирана дъска, вземете потенциометъра и перфорираната плоча и ги запоявайте заедно с поялника си.
  • Вземете щифтовете (три) и ги поставете по най -удобния начин. Използвайте спойка, за да направите връзка между всеки щифт и щифтовете на потенциометъра. Не правете връзка между повече от два пина или няма да работи (ще действа като късо съединение).
  • Вземете няколко джъмперни проводници женско-женско или женско-мъжко и ги свържете от вашия arduino към новия си модул на потенциометър (запомнете кой е кой).

2. Делител на напрежение:

  • Тази част е малко по -сложна. Ще трябва да вземете четирите резистора, пет пина и перфборда. Проектирах кода да се използва за 2s батерия (две клетки), но можете да го използвате и за 1s, като промените малко скицата на arduino и хардуера. Включих снимки на два делителя на напрежение, които направих, един само с 2 резистора (за 1s батерии) и един с четири (познахте: 2s батерии).
  • Нека започнем с 2 -те. Нямам изображения на процеса на изграждане, откакто започнах да изчаквам тази инструкция доста време, след като приключих с запояването. Включвам изображения на крайния резултат, така че ще се опитам да бъда възможно най -ясен.
  • Започнете, като вземете перфборда и 5 пина. Запоявайте ги встрани и не им позволявайте да се допират един до друг.
  • Запоявайте резисторите, както е показано на последното изображение в началото на стъпката (малката електрическа схема). Връзките между всеки резистор и щифт са направени с спойка. Опитайте се да заемете възможно най -малко място.
  • Когато приключите, трябва да изглежда нещо като снимките на готовия делител на напрежение, който публикувах по -горе.
  • Делителят на напрежение 1s е по същество един и същ, с изключение на това, че използвате само три пина и два резистора. Включих снимки на това как изглежда, когато приключи. Просто погледнете диаграмата за 2s и си я представете без сигналния проводник 1, средния проводник и резисторите r2 и r3 и там, имате го!
  • Така че, ако искате делител на напрежение 1s, може да е малко по -сложно, отколкото просто да използвате 2s.

Стъпка 4: Програмиране на вашия Arduino

Програмиране на вашия Arduino
Програмиране на вашия Arduino
  1. Почти приключихме!
  2. След като сте изтеглили софтуера Arduino IDE от сайта, свързан в стъпка МАТЕРИАЛИ, изтеглете скиците от стъпката ФУНКЦИЯ И КОД.
  3. След това ги отворете в Arduino IDE.
  4. Отворете „Инструменти“във всеки от двата раздела и кликнете върху „Табла“. Изберете дъската си от списъка. Щракнете върху „Процесор“и след това върху „Програмист“, като изберете всеки от тях според вашата дъска. След това се върнете към скицата. Доста е удобно да погледнете информацията на вашия борд в Интернет. Просто погледнете името и вижте спецификациите.
  5. Кликнете върху „скица“(отгоре), след това „включете библиотека“, след това „управлявайте библиотеки“. В центъра на екрана трябва да се отвори малък прозорец. Въведете в опцията за търсене "rf24". Изтеглете библиотеката, която искате. Ще бъде необходимо да можете да качите кода на дъската на arduino.
  6. Просто за да се уверите, щракнете върху символа "Tick" (горе вляво), за да се уверите, че няма грешки. След това продължете да го качвате, като натиснете стрелката, сочеща надясно, до символа "Tick".
  7. Ако вашата платка е Pro Mini, след малко ще обясня как да свържа всичко. Ако не е, просто го качете и, когато приключите с програмирането на двата arduinos, преминете към следващата стъпка, след като прочетете предупреждението по -долу.
  8. Тъй като имате две платки, ЗАПОМНЕТЕ с кой код е програмиран всеки, за да избегнете бъдещи проблеми.
  9. Така че, ако имате Pro Mini, ще ви е необходим програмист. Има два вида програмисти: 5 -пинов и 6 -пинов. Ще се съсредоточа върху 5 пинови, тъй като те са тези, които имам. Връзките са както следва (първият щифт е от програмист, след това arduino): Gnd-Gnd; 5v-Vcc (освен ако вашият Pro Mini е 3.3v, в този случай е 3.3v-Vcc); Rxd-Txo; Txd-Rxi. Включих изображение както на платка, така и на програмист, само в случай, че трябва да проверите.
  10. Свържете вашия arduino към програмиста и програмиста към вашия компютър. Отворете IDE и щракнете върху бутона за качване. Ако погледнете лявата долна част на екрана, ще видите съобщение, което казва „компилиране“. В момента, в който това съобщение се превърне в „качване“, натиснете бутона за нулиране на arduino Pro Mini. След известно време скицата ще приключи и ще се появи съобщение „Готово качване“. След като това се случи, вие сте готови и сте готови да преминете към следващата стъпка.

Стъпка 5: Свързване на всичко

Свързване на всичко
Свързване на всичко
Свързване на всичко
Свързване на всичко
Свързване на всичко
Свързване на всичко
Свързване на всичко
Свързване на всичко
  1. След като сме програмирали и двата arduinos, трябва да свържем всичко, за да работи. Тук ще имаме нужда от всичко споменато по -горе: arduinos, nrf24 модули, кабели, серво, програмист, делител на напрежение, потенциометър и т.н.
  2. Първо ще свържем arduino, който работи с програмиста. В началото на стъпката са изображенията на връзките на nrf24. Пръцът irq, който се казва, че отива към пин 8 на arduino, изобщо не е свързан. Останалото е точно както в изображението и за двата arduino (можете да прочетете бележките в изображенията за повече информация)
  3. Vcc за радиото може да бъде свързан към 3.3 или 5v. Понякога работи само с един от тях. Опитайте с 3.3 и след това 5, ако няма да работи. За 3.3 използвайте 3.3v щифта на програмиста. Трябваше да направя това, както ще видите в изображенията на крайния продукт.
  4. Свържете програмиста към arduino, както е казано в предишната стъпка.
  5. Свържете "сигналния" кабел на потенциометъра към аналоговия извод A0.
  6. Свържете "Положително" на потенциометъра към Vcc (само 5v, а не 3.3) и "Отрицателно" към Gnd.
  7. Преминете към другия arduino.
  8. Свържете радиото, както е казано по -горе, според изображенията.
  9. Свържете сигналния кабел на серво (оранжево-жълто-бяло. Проверете спецификациите за серво) към цифров пин 2 и неговия gnd към Gnd на arduino и положителния към Vcc на arduino.
  10. Свържете сигнален кабел 1 от делителя на напрежението към щифт A0 и сигнален проводник 2 към извод A1.
  11. Свържете, използвайки протоборда, отрицателния кабел на разделителя на напрежението, gnd на arduino и gnd на батерията (черен кабел на jst щепсела).
  12. Свържете „средния кабел“от разделителя на напрежението към средния на батерията, между червените и черните кабели на jst щепсела (бял цвят).
  13. Свържете „положителния“кабел от делителя на напрежението към положителния извод на батерията и към Raw на arduino. Не свързвайте директно към Vcc, тъй като този извод е специално за 5v. Суровият щифт използва всяко напрежение над 3,3 или 5v до 12v и го регулира. Vcc пиновете след това се превръщат в изходи с 5v.

Почти сте готови! Вашите готови продукти трябва да изглеждат като изображенията по -горе. Проверявайте отново всяка връзка, за да избегнете късо съединение.

Стъпка 6: Захранване на вашия проект

  • Вашето arduino със серво се захранва последната стъпка, когато свържете батерията към цялата верига. Така че, просто трябва да свържете другия arduino към usb порт и сте готови!
  • Преместете потенциометъра и трябва да видите как се движи и сервото. В моя случай сервото е прикрепено към 1 -осен кардан на камерата, което ограничава ъгъла, така че трябваше да коригирам параметрите. Така или иначе ще намерите това в кода.
  • За да видите напреженията, след като свържете програмиста към компютъра, отворете софтуера arduino и натиснете „Ctrl+Shift+m“. Ще се отвори прозорец с надпис "Serial Monitor". В долната част на този прозорец има опция, която гласи "(номер) бод". Кликнете върху него и изберете „9600“. Затворете монитора и го отворете отново, като натиснете същите клавиши и трябва да започнете да виждате много стойности, които идват. Няма да можете да видите какви са тези стойности поради скоростта, с която идват, но ако изключите програмист, те ще спрат и можете да ги прочетете. Опитвам се да намеря нещо, с което автоматично да ги графикам, за да виждам напреженията или да ги представям със светодиоди, но това все още е в процес.
  • Въпреки че може да не виждате ясно стойностите, тъй като те преминават толкова бързо, просто знайте, че най -накрая работи и че можете да го промените, за да отговорите на вашите нужди!

Стъпка 7: Демо

Е, това е видеото, на което го захранвам и го използвам малко, за да ви покажа как трябва да работи.

Стъпка 8: Още идеи как да използвате този проект

Още идеи как да използвате този проект
Още идеи как да използвате този проект
Още идеи как да използвате този проект
Още идеи как да използвате този проект
Още идеи как да използвате този проект
Още идеи как да използвате този проект

Ето някои идеи, които можете да изградите, като използвате това като основа. Кажете ми, ако направите един от тях или ако опитате и не можете, за да мога да помогна!

  • Вместо да четете напрежения, променете кода така, че да изпраща обратно температурата, налягането, височината и т.н. Намерих чипа BMP180 доста полезен за това.
  • Измерете разстоянията с модула HC-SR04 и ги изпратете обратно към първия arduino. Използвайте серво, за да насочите сензора където искате.
  • Добавете друг серво канал, за да преместите камера нагоре и настрани; например на автомобил с дистанционно управление.
  • Добавете три други серво канала (или повече!) И направете свой собствен радиопредавател и приемник за квадрокоптер, самолет, хеликоптер, rc автомобил и т.н.!
  • Сменете серво за прожектор и го добавете към своя дрон! Също така ще можете да контролирате интензитета на светлината (може да се нуждаете от някои транзистори и промяна на код)
  • Вместо да четете напреженията на компютър, проявете креативност и добавете lcd модул или можете да направите 6-LED платка (две зелени, две жълти и две червени), която ще ги изключи един по един, когато батерията се изтощи и ще започне да мига, когато нивото на батерията падне под избраното от вас напрежение. Направих тази малка дъска и публикувах изображение в началото на стъпката.

Само за да стане ясно всичко, ако ще правите един от тези проекти, имайте предвид, че ще трябва да промените двата кода и може би някои връзки. Моля, опитайте се да не забравяте да не пържите дъската си, правейки нещо глупаво.

Ако имате още идеи или имате нужда от помощ при осъществяването на един от тези проекти, моля, публикувайте в секцията с въпроси!

Стъпка 9: Отстраняване на неизправности

Отстраняване на неизправности
Отстраняване на неизправности

Честно казано, повечето от проблемите, с които се сблъсках досега, бяха свързани с частта от скицата, която вече сте разрешили. Ще се опитам да ви разкажа колкото се може повече проблеми, за да ви помогна най -много.

Първо, ако се опитвате да качите скицата и не можете, опитайте това:

Уверете се, че сте изтеглили необходимите библиотеки (и правилните!).

Уверете се, че сте избрали правилната платка, процесор и програмист.

Уверете се, че връзката между компютъра и програмиста и програмиста и arduino е добра.

Ако използвате pro mini, опитайте да натиснете бутона за нулиране възможно най -скоро, след като се появи съобщението „качване“.

За всички тези неща се говори в стъпката ПРОГРАМИРАНЕ НА ВАШИЯ ARDUINO.

Второ, проверете всички връзки между всичко:

Ако вашият arduino не се включи, това очевидно е проблем с напрежението. Проверете дали кабелите не са свързани правилно и дали има късо съединение.

Ако се включи, но не функционира, уверете се, че всички връзки са там, където трябва да бъдат, че програмираното за свързване към серво и разделител на напрежение arduino е наистина свързано с тях (с други думи, уверете се, че не смесвате ги), опитайте да натиснете бутона за нулиране и на двамата и да видите какво ще се случи. В изключително редки случаи цялата вина може да бъде върху модула NRF24. Намерих един мой, който работи само на 5 волта и друг, който работи само на 3.3v. Проверете дали това решава нещо. Случвало ми се е също, че само едно arduino работи с 3.3v радио, а другото работи само с 5v. Изненадващо, нали?

Трето, ако можете да преместите серво, но напреженията са грешни, проверете връзките към делителя на напрежението, както е на диаграмата в стъпка 3, и връзката към arduino. Ако, от друга страна, получите напреженията, но не можете да преместите сервото правилно, проверете потенциометъра и неговите връзки, връзката на серво към цифровия щифт и към Vcc и Gnd и ако сервото е заседнало, счупено или в късо съединение. Опитайте да го смените с друго серво. Уверете се, че цифровият щифт е същият като този, посочен в кода

Е, това са почти всички неща, които биха могли да ми хрумнат за проблемите, които може да срещнете. Надявам се никога да не се случат и Щастливи проекти!

Благодаря ви, че прочетохте моята инструкция! Моля, споделете и гласувайте за конкурса за ПЪРВИ ПЪТ АВТОР!

Препоръчано: