Оглавление:

Двустороннее радио NRF24 для телеметрии: 9 шагов (с изображениями)
Двустороннее радио NRF24 для телеметрии: 9 шагов (с изображениями)

Видео: Двустороннее радио NRF24 для телеметрии: 9 шагов (с изображениями)

Видео: Двустороннее радио NRF24 для телеметрии: 9 шагов (с изображениями)
Видео: Подключение и настройка nRF24L01 к Arduino (модуль беспроводной связи) 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 (для arduino pro mini, если он у вас есть с USB-соединением, он вам не понадобится).
  6. Arduino IDE (программное обеспечение). Загрузите отсюда.
  7. В моем случае я также использовал:
  • Серво. Кто угодно может получить. Мне нравится SG90, маленький, разработанный для Arduino.
  • Потенциометр (от 10 кОм до 20 кОм). Можно купить в местном магазине электроники или использовать джойстик для Arduino. Есть несколько изображений из тех, что у меня есть. Я также получил один от сломанного контроллера дистанционного управления дрона, просто чтобы дать вам несколько идей
  • 4 одинаковых нормальных резистора. Я использовал 10к, которые достал из дедушкиного дома. Я использую их как делители напряжения.
  • Небольшая перфорационная плата с медными площадками (которую я тоже получил от дедушки) для спайки резисторов между собой.
  • Булавки. Используется для простого подключения соединительных кабелей от Arduino к резисторам.
  • 2s липо аккумулятор. Я использую его для питания одного из моих ардуинов. К нему подключаются резисторы и считывают его напряжения. Я намерен подключить свою ардуино к 2-х батарее дрона, так как ей не нужен внешний источник питания, и в то же время сообщать мне, сколько заряда осталось.
  • Паяльник и припой. Требуется спаять резисторы, монтажную плату и контакты.

Шаг 2: Функция и код

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

После того, как все материалы упомянуты, давайте поговорим о функциях модулей.

Как это работает: назовем один Arduino «A», а другой «B». В моем случае, после программирования обоих, я подключил их к соответствующему радиочипу и добавил потенциометр к Arduino A, а резисторы и сервопривод к Arduino B. Модуль A отправляет значения в B и перемещает сервопривод. B считывает напряжения 2-х секундной батареи и отправляет их обратно в A. Затем весь круг начинается снова. Поскольку A получает значения, которые не выражаются механически, он подключен к программатору, через который мы можем считывать их с помощью последовательного монитора (включенного в Arduino IDE)

Код: я называю скетч для Arduino A (связанный с программатором и потенциометром) TwoWayRadio_1, а скетч для Arduino B TwoWayRadio_2WithServo

TwoWayRadio_1 и TwoWayRadio_2WithServo можно найти чуть ниже этого абзаца. Внутри каждого кода есть объяснение, чтобы все было легче понять.

Шаг 3: Пайка модулей: делитель напряжения и потенциометр

Модули пайки: делитель напряжения и потенциометр
Модули пайки: делитель напряжения и потенциометр
Модули пайки: делитель напряжения и потенциометр
Модули пайки: делитель напряжения и потенциометр
Модули пайки: делитель напряжения и потенциометр
Модули пайки: делитель напряжения и потенциометр
Модули пайки: делитель напряжения и потенциометр
Модули пайки: делитель напряжения и потенциометр

Этот шаг не является обязательным, так как вы можете просто использовать джойстик с потенциометром, разработанный специально для Arduino, и использовать другой модуль вместо делителя напряжения. Однако я все спланировал (включая коды) для этих модулей.

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

Это самая легкая часть на этапе пайки. Вам просто нужно припаять несколько перемычек к вашему потенциометру. Если вы хотите, вы можете сначала припаять потенциометр к монтажной плате, а затем припаять несколько контактов. Когда вам нужно его использовать, просто подключите соединительные кабели к Arduino, а затем к контактам на монтажной плате. Когда кабель не используется, вы можете удалить его и использовать для другого проекта. Однако если вы сделаете то же, что и я, вы можете оставить потенциометр припаянным непосредственно к кабелям

  • Если вы делаете то же самое, что и я, возьмите три соединительных кабеля «мама-мама», отрежьте один из концов и удалите изоляцию, оставив небольшой кусок медной проводки на каждом проводе.
  • Нагрейте паяльник и припаяйте модифицированные перемычки к контактам потенциометров. Если можете, попробуйте выбрать разные цвета, чтобы запомнить, какой из них - vcc, gnd и «сигнальный» (средний). Подключите эти кабели к соответствующим аналоговым контактам на Arduino. В начале шага есть несколько изображений того, как он выглядел в конце. Потенциометр не обычный, это маленькое колесико с пятью штырями. Мне потребовалось некоторое время, чтобы узнать, что из чего. Постарайтесь сделать это проще и используйте обычный потенциометр, как показано в шаге МАТЕРИАЛЫ.
  • Если вы припаиваете его к монтажной плате, возьмите потенциометр и монтажную плату и спаяйте их вместе с помощью паяльника.
  • Возьмите шпильки (три) и поместите их наиболее удобным образом. Используйте припой, чтобы соединить каждый вывод и выводы потенциометра. Не подключайте более двух контактов, иначе это не сработает (это приведет к короткому замыканию).
  • Возьмите несколько перемычек «мама-мама» или «мама-папа» и подключите их от вашего Arduino к новому модулю потенциометра (помните, какой именно).

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

  • Эта часть немного сложнее. Вам понадобится четыре резистора, пять контактов и монтажная плата. Я разработал код, который будет использоваться для батареи 2 с (двухэлементной), но вы также можете использовать его для 1 с, немного изменив эскиз Arduino и оборудование. Я включил изображения двух делителей напряжения, которые я сделал, один только с 2 резисторами (для батарей 1s) и один с четырьмя (как вы уже догадались: 2s батарейки).
  • Начнем с 2-х. У меня нет изображений процесса сборки, так как я начал читать эту инструкцию через некоторое время после того, как закончил пайку. Я прилагаю изображения окончательного результата, поэтому постараюсь быть максимально ясным.
  • Начните с монтажной платы и 5 контактов. Припаяйте их вплотную к бокам и не позволяйте им касаться друг друга.
  • Припаяйте резисторы, как показано на последнем изображении в начале шага (небольшая принципиальная схема). Соединения между каждым резистором и выводом выполнены припоем. Постарайтесь занять как можно меньше места.
  • Когда вы закончите, он должен выглядеть примерно так, как на фотографиях готового делителя напряжения, которые я разместил выше.
  • Делитель напряжения 1 с в основном такой же, за исключением того, что вы используете только три контакта и два резистора. Я добавил изображения того, как это выглядит после завершения. Просто посмотрите на схему 2s и представьте ее без сигнального провода 1, среднего провода и резисторов r2 и r3, и вот оно, у вас есть!
  • Итак, если вам нужен делитель напряжения на 1 с, это может быть немного сложнее, чем просто использовать 2 с.

Шаг 4: программирование вашего Arduino

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

Шаг 5: все соединяем

Подключение всего
Подключение всего
Подключение всего
Подключение всего
Подключение всего
Подключение всего
Подключение всего
Подключение всего
  1. После программирования обоих ардуинов нам нужно все подключить, чтобы они заработали. Здесь нам понадобится все, о чем говорилось ранее: модули arduinos, nrf24, кабели, сервопривод, программатор, делитель напряжения, потенциометр и т. Д.
  2. Сначала мы подключим ардуино, которое работает с программатором. В начале шага изображения соединений nrf24. Вывод irq, который, как говорят, идет к выводу 8 на Arduino, вообще не подключен. Остальное такое же, как на изображении для обоих arduinos (вы можете прочитать примечания внутри изображений для получения дополнительной информации)
  3. Vcc для радио может быть подключен к 3,3 или 5 В. Иногда это работает только с одним из них. Попробуйте с 3.3, а затем с 5, если это не сработает. Для 3.3 используйте вывод 3.3В на программаторе. Мне пришлось это сделать, как вы увидите на изображениях готового продукта.
  4. Подключите программатор к Arduino, как сказано в предыдущем шаге.
  5. Подключите «сигнальный» кабель потенциометра к аналоговому контакту A0.
  6. Подключите «Положительный» потенциометра к Vcc (только 5 В, а не 3,3), а «Отрицательный» к Gnd.
  7. Переходите на другую ардуино.
  8. Подключите радио, как было сказано ранее, согласно изображениям.
  9. Подключите сигнальный кабель сервопривода (оранжево-желто-белый. Проверьте спецификации сервопривода) к цифровому контакту 2, его заземление - к Gnd Arduino, а положительное - к Vcc на Arduino.
  10. Подключите сигнальный кабель 1 от делителя напряжения к контакту A0, а сигнальный провод 2 к контакту A1.
  11. Подключите с помощью макроплаты отрицательный кабель делителя напряжения, заземление Arduino и заземление аккумулятора (черный кабель на штекере jst).
  12. Подключите «средний кабель» от делителя напряжения к среднему аккумулятору, между красным и черным проводами штекера jst (белого цвета).
  13. Подключите «положительный» кабель от делителя напряжения к положительной клемме аккумулятора и к Raw Arduino. Не подключайте напрямую к Vcc, так как этот вывод предназначен специально для 5 В. Необработанный вывод использует любое напряжение выше 3,3 или 5 В до 12 В и регулирует его. Контакты Vcc становятся выходами с напряжением 5 В.

Ваш почти готов! Готовая продукция должна выглядеть, как на изображениях выше. Перепроверяйте каждое соединение, чтобы избежать короткого замыкания.

Шаг 6: активизируйте свой проект

  • Ваш Arduino с сервоприводом получил питание на последнем этапе, когда вы подключили батарею ко всей цепи. Итак, вам просто нужно подключить другой Arduino к USB-порту, и все готово!
  • Переместите потенциометр, и вы увидите, как движется сервопривод. В моем случае сервопривод прикреплен к 1-осевому подвесу камеры, который ограничивал угол, поэтому мне пришлось настроить параметры. Во всяком случае, вы найдете это в коде.
  • Чтобы увидеть напряжения, после подключения программатора к компьютеру откройте программное обеспечение arduino и нажмите «Ctrl + Shift + m». Откроется окно с надписью «Serial Monitor». Внизу этого окна есть опция, которая читает «(число) бод». Щелкните по нему и выберите «9600». Закройте монитор и снова откройте его, нажав те же клавиши, и вы должны начать видеть множество вводимых значений. Вы не сможете увидеть, что это за значения, из-за скорости, с которой они поступают, но если вы отключите программист остановит их, и вы сможете их прочитать. Я пытаюсь получить что-то, с помощью которого можно было бы автоматически построить график для просмотра напряжений или представить их светодиодами, но это все еще в процессе.
  • Даже если вы не можете четко видеть значения, поскольку они передаются так быстро, просто знайте, что это наконец-то работает и что вы можете изменить его в соответствии со своими потребностями!

Шаг 7: демонстрация

Ну, это видео, на котором я включил его и немного использовал, чтобы показать вам, как он должен работать.

Шаг 8: Дополнительные идеи о том, как использовать этот проект

Еще идеи о том, как использовать этот проект
Еще идеи о том, как использовать этот проект
Еще идеи о том, как использовать этот проект
Еще идеи о том, как использовать этот проект
Еще идеи о том, как использовать этот проект
Еще идеи о том, как использовать этот проект

Вот несколько идей, которые вы можете построить, взяв это за основу. Скажите мне, если вы сделаете один из них, или если вы попытаетесь и не можете, чтобы я мог помочь!

  • Вместо того, чтобы считывать напряжения, измените код так, чтобы он возвращал температуру, давление, высоту и т. Д. Я нашел чип BMP180 весьма полезным для этого.
  • Измерьте расстояния с помощью модуля HC-SR04 и отправьте их обратно на первый Arduino. Используйте сервопривод, чтобы направить датчик куда хотите.
  • Добавьте еще один сервоканал для перемещения камеры вверх и в сторону; например, на радиоуправляемой машине.
  • Добавьте три других сервоканала (или больше!) И сделайте свой собственный радиоуправляемый передатчик и приемник для квадрокоптера, самолета, вертолета, радиоуправляемой машины и т. Д.!
  • Измените сервопривод прожектора и добавьте его к своему дрону! Вы также сможете контролировать интенсивность света (может потребоваться несколько транзисторов и изменение кода).
  • Вместо того, чтобы считывать напряжения на компьютере, проявите творческий подход и добавьте ЖК-модуль, или вы можете сделать плату с 6 светодиодами (два зеленых, два желтых и два красных), которые будут выключать их один за другим, когда батарея разряжается и начнет мигать, когда уровень заряда батареи упадет ниже выбранного вами напряжения. Я сделал эту маленькую доску и разместил изображение в начале шага.

Чтобы все было понятно, если вы собираетесь создать один из этих проектов, имейте в виду, что вам придется изменить оба кода и, возможно, некоторые соединения. Пожалуйста, помните, что нельзя жарить вашу доску, делая что-то глупое.

Если у вас есть еще идеи или вам нужна помощь в реализации одного из этих проектов, напишите в разделе вопросов!

Шаг 9: Устранение неполадок

Исправление проблем
Исправление проблем

По правде говоря, большинство проблем, с которыми я столкнулся до сих пор, были связаны с частью эскиза, которую вы уже решили. Я постараюсь рассказать вам как можно больше проблем, чтобы максимально вам помочь.

Во-первых, если вы пытаетесь загрузить скетч, но не можете, попробуйте следующее:

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

Убедитесь, что вы выбрали правильную плату, процессор и программатор.

Убедитесь, что соединение между компьютером и программатором, и программатором, и ардуино хорошее.

Если вы используете pro mini, попробуйте нажать кнопку сброса как можно скорее после появления сообщения «загрузка».

Обо всем этом говорится в шаге ПРОГРАММИРОВАНИЕ ВАШЕГО ARDUINO.

Во-вторых, проверьте все связи между всем:

Если ваш Arduino не включается, это явно проблема с напряжением. Проверьте, правильно ли подключены кабели и нет ли короткого замыкания.

Если он включается, но не работает, убедитесь, что все соединения находятся там, где они должны быть, что Arduino, запрограммированный для подключения к сервоприводу и делителю напряжения, действительно подключен к ним (другими словами, убедитесь, что вы не перепутали их вверх), попробуйте нажать кнопку сброса на обоих из них и посмотреть, что произойдет. В крайне редких случаях вся вина может быть на модуле NRF24. Я нашел один из своих, который работает только от 5 вольт, а другой, который работает только от 3,3 В. Проверьте, решает ли это что-нибудь. Также со мной случилось, что только один Arduino работал с радио 3,3 В, а другой работал только с 5 В. Удивительно, правда?

В-третьих, если вы можете переместить сервопривод, но напряжение неправильное, проверьте соединения с делителем напряжения, как на схеме в шаге 3, и соединение с Arduino. Если, с другой стороны, вы получаете напряжения, но не можете правильно переместить сервопривод, проверьте потенциометр и его соединения, соединение сервопривода с цифровым выводом, а также с Vcc и Gnd, и если сервопривод застрял, сломался или в короткое замыкание. Попробуйте заменить его другим сервоприводом. Убедитесь, что цифровой контакт совпадает с указанным в коде

Ну, это почти все, что могло прийти мне в голову по поводу проблем, с которыми вы можете столкнуться. Надеюсь, этого никогда не случится, и счастливых проектов!

Спасибо, что прочитали мою инструкцию! Пожалуйста, поделитесь и проголосуйте за участие в конкурсе ПЕРВЫЙ АВТОР!

Рекомендуемые: