FrSky 2.4GHz FHSS, новый игрок на рынке 2.4ГГц
Ура! Вчера получил Фрскай! Сегодня удалось считать данные из передатчика😒. Из вч-блока берем TX (5В TTL) и GND, заводим в Ардуино d2, GND. Используется библиотечка NewSoftSerial. Она позволяет инвертировать сигнал, что нам и нужно. Код смотрим ниже. В будни прикручу мониторчик или светодиодные линейки для отображения уровня заряда батареи (А2 через делитель напряжения) и RSSI.
Протокол тут www.frsky-rc.com/download.asp
#include <NewSoftSerial.h> //download it from google
NewSoftSerial mySerial(2, 3, true); //RX TX invert
int endbit=0;
int head =0;
int prim =0;
int rssi =0;
int a1=0;
int a2=0;
void setup()
{
Serial.begin(9600);
// set the data rate for the NewSoftSerial port
mySerial.begin(9600);
} //end of setup
void loop() //7E-FE-DATA-7E, we should find: 7E-7E-FE-data1-data2-data3-
{
if (mySerial.available())
{
endbit = mySerial.read(),HEX;
if (endbit==0x7E) //we find 'the end of packet'
{
head = mySerial.read(),HEX; //read head
prim = mySerial.read(),HEX; //read PRImary
a1 = mySerial.read(),HEX; //read sensor A1
a2 = mySerial.read(),HEX; //read sensor A2
rssi = mySerial.read(),HEX; //read RSSI
}
}
delay(5);
if ((head==0x7E)&&(prim==0xFE)) //headbit + prim bit = DATA from D8R-II
{
Serial.print("rssi=");
Serial.print(rssi, DEC);
Serial.print(" A1=");
Serial.print(a1, DEC);
Serial.print(" A2=");
Serial.print(a2, DEC);
Serial.print("\r\n");
}
}//end of loop
сделал коаксиальный резонатор для приемника и для видеопередатчика
memberfiles.freewebs.com/55/89/…/P7170007.JPG (222 Kb)
для приемника делал из запасных антенн, чтоб поместилось в корпусе свободно
кончики навсяк случай заизолировал термоусадкой
антенны укорочены немного
дом испытания показали - ничего не показали 😃
на рандж тесте рукой можно загасить прием
на полной мошности фиг чего загасишь
коаксиальный резонатор для видео зделал пока короткозамкнутым (как и на приемнике)
если не будет деградации по видео, греться не будет дюже сильно - так и оставлю, если будет деградация - просто откушу замыкающий кончик
испытания по погоде - планирую завтра
испытания по погоде - планирую завтра
Ждём’с с нетерпением… 😃
Приобрел сервы hitec HS-225MG. До этого стояли китайские турниги. ВЧ и приемник Фрискай. Случилась такая проблема: работают они у меня крайне нестабильно (то не доходят до крайних положений, то в центр не возвращаются, то вдруг дребезжат). Не могу понять в чем причина? Может то что они аналоговые ? Как заставить их работать или здать в магазин.?
Вы не написали, что у Вас за приемник?
В моем (D8R), например, есть два режима - для аналоговых и для цифровых серв… Переключаются режимы длительным нажатием на кнопку в приемнике при выключенном передатчике… Индицируются режимы редким или частым миганием светодиода приемника при выключенном передатчике…
Я уже писал ранее… мой приемник, бывает, глючит - мигает редко, а сервы (аналоговые) “зудят”… Приходится переключить режимы - все приходит в норму…
Читайте инструкцию к своему приемнику…
Да d8r. Вот и у меня крутилось в голове про переключение режимов у серв. А как не помню (в мануале тоже не нашол). Большое спасибо - буду пробывать.
Здравствуйте!
имею приемник v8r7
по инструкции написано, что нажатие кнопки в течении 4 сек. включает рэндж тест, у меня не получается…в другой версии ренж тест?
Здравствуйте!
имею приемник v8r7
по инструкции написано, что нажатие кнопки в течении 4 сек. включает рэндж тест, у меня не получается…в другой версии ренж тест?
Кнопку надо давить на ВЧ-модуле, а не на приёмнике. 😃
ну в общем, в двух словах - оно работает
ура
там где раньше обрывалась связь - сегодня показывало чут ли не максимум
потери связи сегодня не было - но я и не летал на дальност - ибо камера сумерки как т опогано показывала и видео было не лучшим, шарки вообше а некоторых местах в чб сваливались - хотя писалка писала в цвете
(почему то против заходящего солнца)
еше раз чт осделал описано тут
adekamer.webs.com/tech.htm
Любопытно… У меня V8FR впал в кому после краша планера (знаю в чём дело, но пока лень заниматься - мелко там всё слишком), поэтому попробую резонансный фильтр на оставшемся в живых приёмыше V8R4. Там всего одна антенка… Какой длины делали резонатор, если не секрет?
расчет такой: диапазон 2400-2480, соответственно средняя точка 2440мгц
лямбда соответственно 123мм
четверть лямбды 30 мм
соответственно ус это четверть лямбды на 0.9 и равняется 27мм - я снял по 3-4 мм на каждом усу, длинные они очень
а вот поскольку волновое кабеля мне неизвестно - я взял усредненное 0.69 (среднее между распространнеми 0.65 и 0.71) и четвертьлямбды на 0.69 уже 20.7мм 😃 вот под 20 мм и делал 😃
memberfiles.freewebs.com/55/89/…/P7170007.JPG (222 Kb)
реально все очень мелко
подпаивался между разьемом на антенну и блокируюшим конденсатором
Как не прискорбно, но я покидаю стойкие ряды адептов Фруши, достал свою старушку (название произносить не буду , Геофизик знает!) .
Переделывать на большую дальность ( как у опальной аппы) , да некогда, думал обмануть стихию дешевизной ВЧ блока и приёмышей, да не вышло!
Извиняйте что не так, не поминайте в суе!
Творите , среди вас есть Кулибины, и да пребудет с вами э.д.с.
Павел, у меня тоже уже начали опускаться руки, санва на 40 с зимы отказывается работать 😦 а до этого летал и неплохо…
что только не пробовал, менял аппы и приемники
плюнул - взял FrSky и бац обломс…
но тем не менее нашел способ решить проблему…
в выходные попробую рандж тест в поле на даче без бустера - если даст полтора два км - я считаю с бустером можно и 5 выжать
сегодняшний полет меня заново окрылил радостью торжества победы…
может попробуете сделать как и я фильтр в приемник ?
я попой чую - у FrSky есть еше потенциал для развития в плане дальности…
можно антенны отстроить - можно бустер… телеметрия - не последнее дело…
Сегодня удалось считать данные из передатчика. В будни прикручу мониторчик или светодиодные линейки для отображения уровня заряда батареи (А2 через делитель напряжения) и RSSI.
Данные потекли! RSSI в попугаях и напряжение. Шкала двигается по пикселю.
Какая интересная тема! пол года лежит у меня сия китайская фриска, не до нее было и вот зашел почитать сюда что к чему и понял что ставить мне ее совершенно не зачем.
бустеры-шмустеры, борьба за пару км дальности и кольца, резонаторы и зуд серв, все смешалось в доме Облонских. 😃
Дядя Зигзаг, раз уж соскочил с фриски, звони-пиши в личку, ты меня не раз выручал и я чем смогу помогу-расскажу, ибо оффтоп тут.
Данные потекли!
Если не секрет,можно поодробней,про схему и прогу?
Данные потекли! Если не секрет,можно поодробней,про схему и прогу?
rcopen.com/forum/f4/topic186091/1702 - вот код для приема данных из ВЧ-блока.
Экран WH-1602(a,b,c,d)-“буква” (Winstar). Если буква N - без подсветки! www.winstar.com.tw/products_detail_ov.php?ProID=98… - маркировка ЖКИ. Если хотите таблицу русских\английских символов, берите с кодом “CT”. В ардуинку загружается библиотека LiquidCrystal, экран подключается по 4х-битной схеме. Если будете включать светодиодную подсветку, то не забудьте про балластные резисторы!
Вывод символов на экран - по примеру из библиотеки LiquidCrystal. Шкала - отрисовка собственных символов, как описано robocraft.ru/blog/arduino/503.html Я вычисляю количество “полных блоков 5*8 пикселей”, остаток дает единственный “1*8”, “2*8”, “3*8”, “4*8” блок.
Например, на картинке для RSSI 5 полных блоков и один “4*8” блок. Для напряжения - 2 полных блока и один “1*8”.
Код для приема данных и код для вывода на экран конфликтует по пину D2, нужно изменить. Также я подключил ногу Vo контраста на ШИМ вместо делителя 10кОм: int ledPin = 9; analogWrite(ledPin, 100);//V0 contrast.
/*
LiquidCrystal Library - Serial Input
Demonstrates the use a 16x2 LCD display. The LiquidCrystal
library works with all LCD displays that are compatible with the
Hitachi HD44780 driver. There are many of them out there, and you
can usually tell them by the 16-pin interface.
This sketch displays text sent over the serial port
(e.g. from the Serial Monitor) on an attached LCD.
The circuit:
* LCD RS pin to digital pin 12
* LCD Enable pin to digital pin 11
* LCD D4 pin to digital pin 5
* LCD D5 pin to digital pin 4
* LCD D6 pin to digital pin 3
* LCD D7 pin to digital pin 2
* LCD R/W pin to ground
* 10K resistor:
* ends to +5V and ground
* wiper to LCD VO pin (pin 3)
*/
// include the library code:
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int ledPin = 9; //я подключил ногу Vo контраста на ШИМ вместо делителя 10кОм.
int rssi = 102;
int rssilevel =0;
int rssilevelblock=0; //количество блоков в шкале rssi
int rssileveldrob=0; //количество палок в неполном блоке 0..5 rssi
float volt = 9.01;
int vlevel = 0;
int vlevelblock=0; //количество блоков в шкале
int vleveldrob=0; //количество палок в неполном блоке 0..5
int vl=0;
/* Описываем наши собственные символы в виде массивов битовых масок.
* Каждый символ - это восемь масок по пять бит.
*/
enum { SYMBOL_HEIGHT = 8 };
byte block[SYMBOL_HEIGHT] =
{
B11111,
B11111,
B11111,
B11111,
B11111,
B11111,
B11111,
B11111
};
byte one[SYMBOL_HEIGHT] =
{
B10000,
B10000,
B10000,
B10000,
B10000,
B10000,
B10000,
B10000
};
byte two[SYMBOL_HEIGHT] =
{
B11000,
B11000,
B11000,
B11000,
B11000,
B11000,
B11000,
B11000
};
byte three[SYMBOL_HEIGHT] =
{
B11100,
B11100,
B11100,
B11100,
B11100,
B11100,
B11100,
B11100
};
byte four[SYMBOL_HEIGHT] =
{
B11110,
B11110,
B11110,
B11110,
B11110,
B11110,
B11110,
B11110
};
void setup(){
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
/* Регистрируем собственные символы с кодами 0, 1 и 2 */
lcd.createChar(0, block);
lcd.createChar(1, one);
lcd.createChar(2, two);
lcd.createChar(3, three);
lcd.createChar(4, four);
analogWrite(ledPin, 100);//V0 contrast
lcd.setCursor(0, 0);
lcd.print("R ");
lcd.setCursor(0, 1);
lcd.print("V ");
}
void loop()
{
///test
if (volt<=12.2)
{
volt = volt+0.01;
delay(300);
}
if (volt>12) {volt=9;}
if (rssi<=256)
{
rssi = rssi+3;
delay(300);
}
if (rssi>256) {rssi=0;}
//end test
///////////шкала вольтажа////////////////////////////////////////////////////
//рисуем пустые клетки вольтажа
vl=2;
while (vl<16)
{
lcd.setCursor(vl, 1);
lcd.print(" ");
vl++;
}
vlevel = map(volt*1000, 9000, 11900, 0, 4000); //9-12V 0-4 000 palok
vlevelblock = vlevel/500; //целых блоков 0..8
vl=0;
while (vl<vlevelblock) //рисуем блоки
{
lcd.setCursor(vl+8, 1);
lcd.write(0); //our byte-char number 0
vl++;
}
//узнаем, сколько палочек в недостающем блоке
vleveldrob = (vlevel - vlevelblock* 500)/100;
lcd.setCursor(vlevelblock+8, 1); //поставили курсор в первую чистаю клетку
if (vleveldrob==1) { lcd.write(1); }
else if (vleveldrob==2) { lcd.write(2); }
else if (vleveldrob==3) { lcd.write(3); }
else if (vleveldrob==4) { lcd.write(4); }
///////////шкала RSSI////////////////////////////////////////////////////
//рисуем пустые клетки RSSI
vl=2;
while (vl<16)
{
lcd.setCursor(vl, 0);
lcd.print(" ");
vl++;
}
rssilevel = map(rssi*100, 0, 25600, 0, 4000); //0-256 0-4 000 palok
rssilevelblock = rssilevel/500; //целых блоков 0..8
vl=0;
while (vl<rssilevelblock) //рисуем блоки
{
lcd.setCursor(vl+8, 0);
lcd.write(0); //our byte-char number 0
vl++;
}
//узнаем, сколько палочек в недостающем блоке
rssileveldrob = (rssilevel - rssilevelblock* 500)/100;
lcd.setCursor(rssilevelblock+8, 0); //поставили курсор в первую чистаю клетку
if (rssileveldrob==1) { lcd.write(1); }
else if (rssileveldrob==2) { lcd.write(2); }
else if (rssileveldrob==3) { lcd.write(3); }
else if (rssileveldrob==4) { lcd.write(4); }
lcd.setCursor(2, 0);
lcd.print(rssi);
lcd.setCursor(2, 1);
lcd.print(volt);
}
Спасибо попробую.А левел конвертер надо ставить?
левел конвертер надо ставить?
Не надо.
Я любительским вольтметром измерил переменное напряжение на TX пине ВЧ-блока, показало 4.68 В.
Вообще, я беру данные из ВЧ-блока в Ардуино (ее TTL 0…5В). А из Ардуины ничего не отправляю в ВЧ-блок. В мануалах не нашел, сколько вольт можно подать на RX ВЧ-блока.
Насчет приемника - прочитал, что ему нужно 0~3.3В по каналу пользовательских данных. В А1, А2 вроде тоже только 3.3В (на выходных смогу измерить выход телеметрийного делителя напряжения, который приехал с ХК).
Страно.Пощупал осцилографом значения пляшут на ТХ от -5 до +5.Думаю мах323 стоит поставить.
О.Побежали цыферки через Турнигу 9х.😁
Кажется тоже в попугаях.Правда вешал через 323 по этой схемке.
ТХ от -5 до +5
Я читал об этом на рц-гроупс. Автор писал, что там “настоящий” RS232 ±Vdd, поэтому требуется shifter для получения 0…Vdd. Также сигнал инвертированный, но библиотека Ардуино умеет инвертировать сигнал. Схема шифтера+инвертора показана в манулах, но я обошелся куском провода вместо нее. Похоже, для Ардуинки -5В = “0”, +5 =“1”.