Перейти к содержанию

Радиоуправление: 2X Arduino Uno & 2X Nrf24L01+


Рекомендуемые сообщения

На днях решил собрать относительно простую систему радиоуправления для модели автомобиля. Строил из того что было, а было две ATmega328 а вот модули трансиверы nRF24L01+ заказал на ebay.

Получилось довольно неплохо, всё работает шустро, задержки практически нет.

Код писал на Arduino IDE 1.05, Способ подключения трансиверов к ардуино и библиотеку к ним можно найти вот здесь.

Пожалуй упомяну здесь, что этим трансиверов нужно питание не больше 3,3В!

Передатчик:

- 2х 50к потенциометра;

- 2х тумблера;

- 1х переключатель для инвертирования вращения рулевой сервы;

- 1х выключатель питания;

- МК и трансивер питаются через общий 3,3В стабилизатор.

Приёмник:

- Драйвер двигателя состоит из полевого транзистора для регулирования скорости посредством ШИМ-модуляции, И двойного реле для изменения направления вращения.

- Импульсный преобразователь на 5В для питания МК, сервы (и светодиодов), Трансивер питается от отдельного 3.3В стабилизатора;

- Двух полевых транзисторов в SO-08 корпусе для управления любой другой нагрузкой (светодиодами).

Несомненно это не самая дешёвая реализация радиоуправления, (изначально планировалось использовать MSP430G2553), но оно работает и может быть в любой момент модифицировано и усовершенствовано. Радиус действия у этой аппаратуры не менее 10 метров.

Грабли:

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

P.S.: Некоторые аспекты, такие как схемотехника, я не описал должным образом, так как описывать то по сути нечего (с моей точки зрения). Но если будут вопросы, я на них постараюсь развёрнуто ответить.

post-9896-0-12816500-1382191776_thumb.jpg

post-9896-0-54114700-1382191787_thumb.jpg

post-9896-0-52042600-1382191796_thumb.jpg

post-9896-0-78651300-1382191808_thumb.jpg

RX.txt

TX.txt

Изменено пользователем ArkadiyAV
Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

  • 3 недели спустя...

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

есть несколько nRF24L01, брал для ду, но блок управления не очень понравился.

ArkadiyAV а не можете сделать на несколько каналов для простого включения/выключения нагрузки.Передатчик на меге8 или тини2313?

в наше время снег был белее и пушистей

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

ArkadiyAV а не можете сделать на несколько каналов для простого включения/выключения нагрузки.Передатчик на меге8 или тини2313?

Повторюсь, я использовал Arduino IDE (Mega328 с arduino UNO bootloader'ом) и библиотеку по указанной выше ссылке. Если будете опираться на эту же базу, то часть кода для реализации простого включения/выключения нагрузки уже есть в скетчах в первом посте.

За один раз я отправляю три значения, переменных. Первая кодирует скорость вращения мотора, вторая угол поворота сервопривода, а третья переменная управляет как раз двумя нагрузками, в моём случае светодиодами.

Я сделал это так:

В этом участке кода передатчика я "шифрую" два состояния переключателей в одной переменной:

 F_1_state = digitalRead(F_1);
F_2_state = digitalRead(F_2);
if(F_1_state == HIGH && F_2_state == HIGH){
F = 11;}
else if(F_2_state == HIGH){
 F = 10;}
 else if(F_1_state == HIGH){
 F = 1;}
 else{
	 F = 0;}

А этот участок кода декодирует эту переменную в приёмнике:

 if(msg[2] == 11){
digitalWrite(F_1, HIGH);
digitalWrite(F_2, HIGH);
}
else if(msg[2] == 10){
digitalWrite(F_1, HIGH);
digitalWrite(F_2, LOW);
}
else if(msg[2] == 1){
digitalWrite(F_1, LOW);
digitalWrite(F_2, HIGH);
}
else{
digitalWrite(F_1, LOW);
digitalWrite(F_2, LOW);
}

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

P.S.: Я не программист, поэтому мои решения не отличаются элегантностью.

P.P.S.: У меня нет ни мега8 ни тини2313 ни программаторов для них, так что напрямую помочь, увы, не смогу.

Изменено пользователем ArkadiyAV
Ссылка на комментарий
Поделиться на другие сайты

  • 4 месяца спустя...

В настоящем радиоправлении передатчик включается первым и ищет свободные частоты. Приемник при включении ищет пердатчик по уникальному коду (одинаковые у передатчика и приемника). Если передатчик замечает, что одна из частот занята, то он меняет частоту. Приемник при потере сигнала начинает искать передатчик снова. Количество пропорциональных каналов хотя бы 6 (лучше 12), дискретных сколько не жалко (хотя бы 8). А если еще сделать и обратную связь с теми же параметрами - получаем мечту любого моделиста :) И тогда не жалко будет даже мега ардуину, и модуль можно взять со встроенным усилителем и антенной.

А сколько каналов пропорциональных + дискретных сможет выдержать такая связка при 50 посылках в секунду?

Спасибо. Заинтересовался идеей.

Изменено пользователем Rjkley
Ссылка на комментарий
Поделиться на другие сайты

А сколько каналов пропорциональных + дискретных сможет выдержать такая связка при 50 посылках в секунду?

Дальше я это радиоуправление не расширял, и ответит на это вопрос дать не могу, но уверен, что возможность расширения есть.

Если верить производителю радио-модулей, то они могут обеспечить обмен данными со скоростью вплоть 2 Мб/с. Чем дальше расстояние, тем меньше, насколько меньше, надо тестировать.

Если ещё и передаваемые параметры хорошо сжать (я передаю 3 инта! Это просто, но громоздко), то это скажется на быстродействии положительным образом.

З.Ы.: Посмотри информацию в не русскоязычном интернете, там тоже встречаются несколько реализаций подобного управления.

Изменено пользователем ArkadiyAV
Ссылка на комментарий
Поделиться на другие сайты

  • 10 месяцев спустя...

проблема. скачиваю файл RX, копирую содержимое вставляю в аурдино делаю проверку и вот, а если делаю строку не октивной то ошибки дальше и их много

post-162567-0-97613600-1424973237_thumb.png

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...