Самодельный передатчик (часть 2)

Denn

If TX have 2 channels PPM, TX nRF will send 32 bytes with 8 channels, but 3…8 channels is wrong. TX will transmit only 1 frequency - F1. I not know about IRQ and CRQ.

minhthien1988
Denn:

If TX have 2 channels PPM, TX nRF will send 32 bytes with 8 channels, but 3…8 channels is wrong. TX will transmit only 1 frequency - F1. I not know about IRQ and CRQ.

thanks Denn

mean is if i want use any channel ,i have to change code to suitable amount channel : Không chắc chắn:

EX , 2 channel is change code TX ,RX for 2 channel

Denn

No, code not change.

Вопрос к MSV: Сергей, а в вашей прошивке в2 можно в течение периода всего цикла ( 20 - 22 мс ) несколько раз передавать данные с интервалом 1-2 мс ?

msv

Если речь о nRF24L01, то там сам модуль настроен на передачу до 8 повторов при неполучении подтверждений. Суммарное время передачи + время ожидания подтверждения в этих 9-ти попытках получается чуть меньше 20мс.

Denn

Нет, я имел ввиду как у меня, без retransmit-ов. И на разной частоте.

msv

Денис, какой у тебя модуль? И зачем так часто передавать? Частоту можно менять каждые 20мс…
Ну а в принципе если используются прерывания от модуля, то можно по ним передачу включать. Правда есть вероятность что PPM будет подергиваться, но он при работе с цифровыми модулями особо и не нужен…

Denn

Просто я подумал, что 4 канала на передачу более помехоустойчивые, чем один 😃 А если частоту менять через 20 мс может быть начнутся подёргивания, если канал занят. На передачу использую модуль с усилителем, на приём стандартный nRF24L01+ . Про прерывания понял, буду иметь ввиду. Спасибо!

10 days later
tihsasha

Привет форумчанам! Большое спасибо за разработанный вами кодер.
Valera69 спасибо за идею самодельных джойстиков. 2 года назад я собрал передатчик и приёмник используя не из самодельного только трансиверы Xemix DP-1203 868мгц. Из кодера сигнал PPM подается на модуль из ATmega48 и DP1203. В приёмнике стоит также DP1203 и ATmega8A.
В DP1203 данные идут с МК в последовательном виде в отличии от SPI в nRF24L01. Правда по каналам я не скакал. В передатчике анализировал пачку PPM из кодера и одновременно гнал в эфир данные по предыдущей пачке. В приёмнике был режим FailSafe. 2 модуля DP1203 мне тогда приятель подарил. Потом я на Corony перешел. Больно дорого обходились бы приёмники для последующих моделей (DP1203 стоила 1500р). Недавно попробовал работать с nRF24L01 и СС1101. На ebay они не дорогие.

ubd

Гениально!

Корпус кисточкой что ли выкрашен?

minhthien1988

hello Denn

Your RX can add chip 24c02 , I think it’s necessary

it is this same Flysky

tihsasha
ubd:

Корпус кисточкой что ли выкрашен?

Нет. Губкой 😁 Это же на работу не влияет.

alexeykozin
tihsasha:

Нет. Губкой Это же на работу не влияет.

несколько озадачило,
сделать свою электронику, написать свой код - нужно, важно и круто
но зачем корпус и джойстики мастерить???
есть дешевые передатчики hk/frsky которые можно купить 1500-2000р
нормальный корпус, замечательная надежная механика.
ну если синий цвет нравится можно покрасить но тогда хотябы с балончика 😃

EagleB3
alexeykozin:

зачем корпус и джойстики мастерить???

А почему и нет? Если есть желание и возможность?

Торт, колбасу и пиво можно в магазине купить. Однако люди сами и пекут, и коптят, и варят…

Denn
minhthien1988:

hello Denn

Your RX can add chip 24c02 , I think it’s necessary

it is this same Flysky

Why?

ubd

Нет. Губкой

Я конечно уважаю всё что сделано своими руками. Но проще по моему из баллончика матовой краской покрасить.

minhthien1988
Denn:

Why?

Denn

it is work very good . However, when lost signal from TX , RX is still keep final signal . ???
So ,If you move Max stick and then lost signal , motor will run Max ,it can not stop .: O

Your RX just have final error is when lost signal , should returned at the first signal instead of keep final signal

Denn
minhthien1988:

Denn

Your RX just have final error is when lost signal , should returned at the first signal instead of keep final signal

I not understand this. When signal is lost , failsafe is work over 1-2 s. You need to program failsafe .

minhthien1988
Denn:

I not understand this. When signal is lost , failsafe is work over 1-2 s. You need to program failsafe .

Mean is this :

Example : signal max ESC is 1.9ms and Stop is 1.0ms .
When runing signal max 1.9ms then lost signal , Your RX keep signal output is 1.9ms instead return first signal .So ESC still run max . Can lost airplan or Crack .

So , add fuction Failsafe all Output (0 ->7 ) when lost signal

Channel 1…1.5ms
channel 2… 1.5ms
channel 3… 1.0ms ( throtle )
channel 4…1.5ms


channel 8…1.5ms

i think it is very importand.

Cheer.

Denn

You can program all channel for failsafe self. You must stand all stick into failsafe position, close and open input failsafe to ground (-).

minhthien1988
Denn:

You can program all channel for failsafe self. You must stand all stick into failsafe position, close and open input failsafe to ground (-).

pin failsafe is 32, i connect to Ground ( - ) . Led will OFF, however it still don’t change when lost signal .

So,i have to change code ? Is code here ?

void FileSafe(void) // ìíîãîêðàòíàÿ îøèáêà ïðè¸ìà
{
Kanal[0]=E_F_Kanal[0];
Kanal[1]=E_F_Kanal[1];
Kanal[2]=E_F_Kanal[2];
Kanal[3]=E_F_Kanal[3];
Kanal[4]=E_F_Kanal[4];
Kanal[5]=E_F_Kanal[5];
Kanal[6]=E_F_Kanal[6];
Kanal[7]=E_F_Kanal[7];

}

void Safe(void) // çàïèñü
{
F_Kanal[0]=Kanal[0];
F_Kanal[1]=Kanal[1];
F_Kanal[2]=Kanal[2];
F_Kanal[3]=Kanal[3];
F_Kanal[4]=Kanal[4];
F_Kanal[5]=Kanal[5];
F_Kanal[6]=Kanal[6];
F_Kanal[7]=Kanal[7];
FS_On=1;

}

void Safe1(void) // çàïèñü
{
E_F_Kanal[0]=F_Kanal[0];
E_F_Kanal[1]=F_Kanal[1];
E_F_Kanal[2]=F_Kanal[2];
E_F_Kanal[3]=F_Kanal[3];
E_F_Kanal[4]=F_Kanal[4];
E_F_Kanal[5]=F_Kanal[5];
E_F_Kanal[6]=F_Kanal[6];
E_F_Kanal[7]=F_Kanal[7];

}

Denn

failsafe save to EEPROM when you disconnect Ground ( - )