Радио передатчик/приемник для RC модельки.

sirota
Offline
Зарегистрирован: 18.08.2015

Валяется у меня парочка РУ моделек. Корпуса хорошие, ходовка какая ни какая, но управление полный ноль. т.е. или полный газ, или влево до конца или вправо до конца. А я хочу сервой плавный поворот и шимом регулировать мощность двигателя. Уже достал аккумы, едут блоки повышающие и контроллеры заряда, остальось за логикой, в частности за радиоканалом.

я решил что подобного должно хватить - http://ru.aliexpress.com/item/1pcs-433Mhz-RF-transmitter-and-receiver-kit-for-Arduino-project-FREE-SHIPPING-3235/1308017760.html

Собрал схему. Написал код. Отсылается/применяется отменно, есть контроль ошибок. На прямую (проводком) вполть до 38400 дури хватает у дуинки. А вот соединил через эту парочку и... тишина. Ни 4800, ни 2400. Не пробовал пока просто кнопкой и светиком проверять, но продаван уверял что устройство сразу настроено и крутить его не надо. Да и попробовал проводком 4800, медленно, серва слишком подздно отвечает. Ставлю 38400 - реально вслед за стиком. Собственно вопрос - что еще из готового можно использовать?

Short Circuit
Short Circuit аватар
Offline
Зарегистрирован: 17.05.2015

приемник там дерьмовенький... не советую.  а ну и еще - разнесите метров на 10-20, передатчик запитайте от 9в.

sirota
Offline
Зарегистрирован: 18.08.2015

Спасибо. Правда не пробовал, лежат в упор друг к другу. Вечером озадачусь. А что еще можно применить? Думал отказаться от ардуинок и заюзать ESP-12. Мне по идее пинов хватит. Но я боюсь хватит ли производительности. Это и точку поддерживать и обменивать чем-то еще надо...

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

nRF24l01+ PA LNA - бьёт на 1100м(заявлено), сейчас на нем собираю аппаратуру для RC Drift модели 1:10.

Short Circuit
Short Circuit аватар
Offline
Зарегистрирован: 17.05.2015

на  433Mhz-RF-transmitter-and-receiver-kit-for-  тож заявленно на не менее 100 метров..  

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

nRF24l01 без усилителя  и обычной полосковой антенной до 80-100м. зависит конечно от ориентации антенн

n006
Offline
Зарегистрирован: 12.02.2015

nRF24L01+ (лучше с антенной, да дороже) без вариантов + супер либа RadioHead.

433 это не передатчики даже.

Вот можно ознакомиться Передатчик и приемник 433Мгц

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

интересная либа

sirota
Offline
Зарегистрирован: 18.08.2015

Спасибо, заказал 2 модуля пока без антенн ради пробы.

Олег М.
Олег М. аватар
Offline
Зарегистрирован: 22.11.2015

sirota пишет:
Спасибо, заказал 2 модуля пока без антенн ради пробы.

Как я понимаю, nRF24l01 это приемопередатчик, а две штуки - чтобы и в руках было и на борту.
А что с борта на землю передавать собираешься?
 

a5021
Offline
Зарегистрирован: 07.07.2013

Подтверждение приема.

sirota
Offline
Зарегистрирован: 18.08.2015

Как я понимаю каждое устройство и примник и передатчик. Мне надо 1 приемник и 1 передатчик в 2-х местах. Следовательно 2 устройства.

to a5021

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

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Тогда для начала почитайте классику жанра .....  ;)

http://arduino.ru/forum/proekty/radioupravlyaemyi-kater-iz-potolochki

http://arduino.ru/forum/proekty/tank-upravlyaemyi-dzhoistikom-ps-2

sirota
Offline
Зарегистрирован: 18.08.2015

А что читать-то? Кто как сделал ясно. У меня корпуса готовые. Скетча копейки - автообучение пределам потенциомеров и в бой. Линейно шпарим угол на серву, и так же линейно шпарим шим. полярность буду переключать транзисторами. двигатель тот что стоит в машинке в районе 1А, серва копейки. Питать буду от парочки ноутбучных банок. Зарядку для них давно заказал, повышающий преобразователь так же. Батарейки сами с защитой, так что меньше чем надо не разрядятся. Пульт возьму родной с машинки. Единственное поменяю потенциомеры на более качественные, ну и переделаю радимодуль.

a5021
Offline
Зарегистрирован: 07.07.2013

sirota пишет:

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

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

sirota
Offline
Зарегистрирован: 18.08.2015

Воможно стоит, но... пока не надо. Мне хватит

void timer() {
  if(currentTime >= (loopTimeSerial + 5000)){
    mydata.Gas = 100;
    //Тут останавливаем машинку по приичне отсутствия связи
  }
}

void loop() {
  //TIMER
  currentTime = millis();
  timer();
  //TIMER
  if (driver.recv(buf, &buflen))
{
  loopTimeSerial = currentTime;
memcpy(&mydata, buf, sizeof(mydata));
}
}

Более чем. Все равно будет еще таймер на моргание поворотников (пинов валом, канал "широкий", влеплю поворотники, включение заднего хода, свет фар, т.к. уже из коробки обмен в двух направлениях, можно еще обратно слать инфу скажем о заряде аккумов). так что таймер нужен все равно и вызываться все равно будет часто. Еще знакомый предложил заюзать его бесколлекторный двигатель с самолета на 2S, но у меня дифф с небольшим коэфф понижения передачи, боюсь улетит машинка сразу )

n006
Offline
Зарегистрирован: 12.02.2015

NRF24L01 в обе стороны могут передавать/принимать.

Т.е. если с модели послал и не принял подтверждения даже после повторов, то стоп. Вот и всё. И не надо ждать время. В либе примеры есть.

// шлем данные и ждем ответ/подтверждение
if ( rfdata.sendtoWait((uint8_t*)&dhtData, sizeof(dhtData), SERVER_ADDRESS) ) {
...
if ( rfdata.recvfromAckTimeout(buf, &len, 1000, &from) )
{
  // всё ОК
  ...
} else {
  // что-то пошло не так
  ...
}
}

 

n006
Offline
Зарегистрирован: 12.02.2015

В начале можно задать свои параметры.

#define RF_CHANNEL  73
rfdata.init(); // по умолчанию устанавливается 2.402 GHz (канал 2), 2Mbps, 0dBm
radio.setChannel(RF_CHANNEL); // устанавливаем свой канал
radio.setRF(RH_NRF24::DataRate1Mbps, RH_NRF24::TransmitPower0dBm);  // устанавливаем скорость 1Mbps
rfdata.setRetries(5);    // число попыток передачи, по умолчанию 3
rfdata.setTimeout(400);  // время таймаута передачи, по умолчанию 200мс

 

sirota
Offline
Зарегистрирован: 18.08.2015

n006 пишет:

В начале можно задать свои параметры

Спасибо. Жду... Уже взял у знакомого 2s банку липошек. Вертолет на них 5 минут летал. Думаю мне хватит за глаза. Сейчас ищу в своем городе чувака, вроде бы у него есть 3д принтер, попрошу его напечатать мне дифф под бесколлекторный двигатель... блин надо свой принтер покупать. Столько задумок и всегда сложности передать механическое усилие (