Оглавление:
- Шаг 1: материалы
- Шаг 2: Функция и код
- Шаг 3: Пайка модулей: делитель напряжения и потенциометр
- Шаг 4: программирование вашего Arduino
- Шаг 5: все соединяем
- Шаг 6: активизируйте свой проект
- Шаг 7: демонстрация
- Шаг 8: Дополнительные идеи о том, как использовать этот проект
- Шаг 9: Устранение неполадок
Видео: Двустороннее радио NRF24 для телеметрии: 9 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:52
Привет, ребята, меня зовут Педро Кастелани, и я предлагаю вам свое первое руководство: построение двустороннего радио с помощью Arduino, ну, для чего вам это нужно.
В этом проекте мы сделаем две отдельные схемы, которые будут действовать как приемник и передатчик. Самыми важными компонентами являются две платы Arduino (все они работают) и два модуля трансивера nrf24. В моем случае я управляю сервоприводом с помощью потенциометра от другого Arduino и отправляю напряжение двухэлементной липо-батареи обратно на первую.
Я намерен использовать его в качестве дополнения к своему дрону, у которого нет телеметрии и управления подвесом сервопривода. Однако вы можете использовать его для других целей, например, для создания собственного квадрокоптера, самолета, радиоуправляемого автомобиля и т. Д. Из предоставленного кода вы также можете внести любые изменения в соответствии с вашими потребностями. Я также попытаюсь объяснить, как его правильно модифицировать (что мне потребовалось некоторое время, чтобы научиться самостоятельно, так как я привык к другому виду использования чипа nrf24).
Шаг 1: материалы
Чтобы начать наш проект, нам нужно знать все необходимые детали. Ниже приведен список основных необходимых. Я купил большинство из них в местном магазине электроники по месту жительства, поэтому я не смогу порекомендовать вам какое-либо место для их покупки. Вы можете попробовать Amazon или любое другое место. Я не говорю, что вы должны заказывать их там, но это всего лишь предложение.
- Две платы Arduino (любой должен работать. У меня есть две платы arduino pro mini, которые мне очень нравятся, потому что у них 13 цифровых контактов и 8 аналоговых, а у Uno только 6 аналоговых).
- Два модуля Nrf24. Есть некоторые с внешними антеннами, которые имеют больший диапазон передачи. Выберите те, которые вам больше всего нравятся.
- Кабели-перемычки «женщина-женщина» и «женщина-мужчина».
- Макетная доска.
- Программатор Arduino (для arduino pro mini, если он у вас есть с USB-соединением, он вам не понадобится).
- Arduino IDE (программное обеспечение). Загрузите отсюда.
- В моем случае я также использовал:
- Серво. Кто угодно может получить. Мне нравится 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 IDE с сайта, связанного с шагом МАТЕРИАЛЫ, загрузите эскизы с шага ФУНКЦИЯ И КОД.
- Затем откройте их в среде Arduino IDE.
- Откройте «Инструменты» на любой из обеих вкладок и нажмите «Доски». Выберите свою доску из списка. Нажмите «Процессор», а затем «Программист», выбирая каждый из них в соответствии с вашей платой. Затем вернитесь к эскизу. Информацию о вашей доске в Интернете довольно удобно смотреть. Просто найдите имя и посмотрите спецификации.
- Щелкните «эскиз» (вверху), затем «включить библиотеку», затем «управлять библиотеками». В центре экрана должно открыться небольшое окошко. Введите в поле поиска вариант «RF24». Скачайте нужную библиотеку. Необходимо будет иметь возможность загрузить код на плату Arduino.
- Чтобы убедиться, нажмите на символ «галочки» (вверху слева), чтобы убедиться, что он не содержит ошибок. Затем перейдите к загрузке, нажав стрелку, указывающую вправо, рядом с символом «Галочка».
- Если ваша плата Pro Mini, я объясню через некоторое время, как все подключить. Если это не так, просто загрузите его и, когда закончите программирование обоих arduinos, переходите к следующему шагу после прочтения предупреждения ниже.
- Поскольку у вас две платы, ПОМНИТЕ, какой код был запрограммирован каждой, чтобы избежать любых проблем в будущем.
- Итак, если у вас Pro Mini, вам понадобится программист. Есть два типа программаторов: 5-ти и 6-ти контактные. Я остановлюсь на 5-контактных, так как они у меня есть. Подключения следующие (первый вывод от программатора, затем от Arduino): Gnd - Gnd; 5 В-Vcc (за исключением случаев, когда ваш Pro Mini имеет 3,3 В, в этом случае это 3,3 В-Vcc); Rxd - Txo; Txd - Rxi. Я включил изображение платы и программатора, на всякий случай, если вам нужно проверить.
- Подключите ваш Arduino к программатору, а программатор к вашему компьютеру. Откройте IDE и нажмите кнопку загрузки. Если вы посмотрите в левую нижнюю часть экрана, вы увидите сообщение «компиляция». В тот момент, когда это сообщение превратится в «загрузка», нажмите кнопку сброса на Arduino Pro Mini. Через некоторое время скетч закончится, и появится сообщение «Готово». Как только это произойдет, вы готовы перейти к следующему шагу.
Шаг 5: все соединяем
- После программирования обоих ардуинов нам нужно все подключить, чтобы они заработали. Здесь нам понадобится все, о чем говорилось ранее: модули arduinos, nrf24, кабели, сервопривод, программатор, делитель напряжения, потенциометр и т. Д.
- Сначала мы подключим ардуино, которое работает с программатором. В начале шага изображения соединений nrf24. Вывод irq, который, как говорят, идет к выводу 8 на Arduino, вообще не подключен. Остальное такое же, как на изображении для обоих arduinos (вы можете прочитать примечания внутри изображений для получения дополнительной информации)
- Vcc для радио может быть подключен к 3,3 или 5 В. Иногда это работает только с одним из них. Попробуйте с 3.3, а затем с 5, если это не сработает. Для 3.3 используйте вывод 3.3В на программаторе. Мне пришлось это сделать, как вы увидите на изображениях готового продукта.
- Подключите программатор к Arduino, как сказано в предыдущем шаге.
- Подключите «сигнальный» кабель потенциометра к аналоговому контакту A0.
- Подключите «Положительный» потенциометра к Vcc (только 5 В, а не 3,3), а «Отрицательный» к Gnd.
- Переходите на другую ардуино.
- Подключите радио, как было сказано ранее, согласно изображениям.
- Подключите сигнальный кабель сервопривода (оранжево-желто-белый. Проверьте спецификации сервопривода) к цифровому контакту 2, его заземление - к Gnd Arduino, а положительное - к Vcc на Arduino.
- Подключите сигнальный кабель 1 от делителя напряжения к контакту A0, а сигнальный провод 2 к контакту A1.
- Подключите с помощью макроплаты отрицательный кабель делителя напряжения, заземление Arduino и заземление аккумулятора (черный кабель на штекере jst).
- Подключите «средний кабель» от делителя напряжения к среднему аккумулятору, между красным и черным проводами штекера jst (белого цвета).
- Подключите «положительный» кабель от делителя напряжения к положительной клемме аккумулятора и к 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, и если сервопривод застрял, сломался или в короткое замыкание. Попробуйте заменить его другим сервоприводом. Убедитесь, что цифровой контакт совпадает с указанным в коде
Ну, это почти все, что могло прийти мне в голову по поводу проблем, с которыми вы можете столкнуться. Надеюсь, этого никогда не случится, и счастливых проектов!
Спасибо, что прочитали мою инструкцию! Пожалуйста, поделитесь и проголосуйте за участие в конкурсе ПЕРВЫЙ АВТОР!
Рекомендуемые:
Умный буй [GPS, радио (NRF24) и модуль SD-карты]: 5 шагов (с изображениями)
Интеллектуальный буй [GPS, радио (NRF24) и модуль SD-карты]: в этой серии смарт-буй показана наша (амбициозная) попытка создать научный буй, который мог бы проводить значимые измерения в море с использованием стандартных продуктов. Это второй урок из четырех - убедитесь, что вы в курсе, и если вам нужно быстро
Музыкальная шкатулка для FM-радио на базе PIC16F1847 и AR1010: 5 шагов
Музыкальная шкатулка для FM-радио на базе PIC16F1847 и AR1010: Это мой первый пост с инструкциями. Я сделал приставку для цифрового FM-радио, используя этот дешевый модуль приемника FM-радио AR1010, который я купил на Ebay, и микроконтроллер PIC16F1847 от MICROCHIP. Почему ПИК? Почему бы не использовать Ардуино? Потому что у меня куча
Интернет-радио / веб-радио с Raspberry Pi 3 (без головы): 8 шагов
Интернет-радио / веб-радио с Raspberry Pi 3 (без головы): Привет. Вы хотите, чтобы ваш собственный радио-хостинг через Интернет, тогда вы находитесь в нужном месте. Я постараюсь уточнить как можно больше. Я пробовал несколько способов, которыми большинству из них требовалась звуковая карта, которую я не хотел покупать. но удалось фи
Симулятор игры для смартфона - играйте в игры для Windows, используя IMU для управления жестами, акселерометр, гироскоп, магнитометр: 5 шагов
SmartPhone Game Simulator - играйте в игры для Windows, используя IMU управления жестами, акселерометр, гироскоп, магнитометр: поддержите этот проект: https://www.paypal.me/vslcreations, сделав пожертвование на программы с открытым исходным кодом & поддержка дальнейшего развития
Простое двустороннее управление двигателем для Arduino: 4 шага
Простое двустороннее управление двигателем для Arduino: ВНИМАНИЕ: это небезопасный способ управления двигателем. Каждый вывод ввода / вывода может обрабатывать ток не более 40 мА. Я бы порекомендовал использовать H-Bridge или что-то в этом роде. Когда я говорю просто, я не имею в виду использование регулятора скорости. Но управлять двигателем напрямую