Автор |
Сообщение |
|
Дата: 19 Янв 2019 18:02:27 · Поправил: NanoVHF (19 Янв 2019 18:04:48)
#
В качестве иллюстрации фокус с тонкими настройками:
Маленькая антенна на крыше.
При одних настройках невозможно понять где помехи, а где сигнал. При других - всё элементарно парсится. И это без фильтров и прочих прилад.
![](http://www.radioscanner.ru/uploader/2019/2019-01-19_17_55_55-.png) Увеличить
![](http://www.radioscanner.ru/uploader/2019/2019-01-19_17_57_40-.png) Увеличить |
|
Дата: 19 Янв 2019 18:24:48 · Поправил: ats52 (19 Янв 2019 18:42:46)
#
NanoVHF, я так и не понял, где у вас лучше прием. Картинки имеют разные полосы да и сыгналы на любительских диапазонах непостоянные.
Проще продемонстрировать прием СВ станций на ДВ при разных настройках , там картинки отличаются, как день и ночь. К примеру, при нулевой ПЧ они прослеживаются, а при низкой ПЧ отсутствуют. Так же при включенной АРУ не наблюдаются IMD, а при отключеннной и не правильно выставленном уровне усиления IMD в полный рост , а в SDRuno еще может выскочить и сообщение о перегрузке АЦП.
Nartov......Нашел я несколько продавцов на алиэкспрессе этого дивайса и почитал отзывы уже купивших людей дак вот как и говорилось мною, что больше всяких проблем с этими устройствами из от туда, чем их задуманная работа "братьями" нашими. .....- надо было еще и про оригинал прочитать, там тоже хватает косяков. Может и там есть ?
Я с уверенностью сказать не могу плохо или хорошо работает мой сабж, не с чем сравнивать. Заявленным параметра он соответствует. А спуры оригинального и сабжа никто не сравнивал.
|
Реклама Google
|
|
|
Дата: 19 Янв 2019 18:56:04
#
NanoVHF
ats52
Полностью с вами согласен!
p.s. А никто и не спорил.:)
p.s.s. Перед покупкой нужно понимать что и для чего ты покупаешь. Некоторые просто наверное думают что купят панорамник и все. Всех за "коки" поймал и подслушал.:)
|
|
Дата: 19 Янв 2019 19:12:21 · Поправил: Xand (19 Янв 2019 19:13:43)
#
В качестве иллюстрации фокус с тонкими настройками:
Хо отлично я бы сказал, хорошая платка! Диапазончик то тот еще, и в голом виде ... по мне так очень не плохо ... по сравнению с тем, что у меня было долгое время. :) РПУ Бурун
|
|
Дата: 19 Янв 2019 19:20:17 · Поправил: NanoVHF (19 Янв 2019 19:23:01)
#
По поводу спектров, смотрите внимательно.
Полоса одна и та же - 600кГц и усиление одинаково. Только на первом скрине у нас LowIF и тьма палок, а на втором скрине ZeroIF и количество левых палок меньше. По разному идёт преобразование и разное количество артефактов. На УКВ может быть с точностью до наоборот, но там и помех не так много. Конкретно КВ, просто показательно.
Подключаете магнитную антенну или миниВип и качество будет отличным. Комплект с планшетом уделывает всякого рада Дегены.
|
|
Дата: 19 Янв 2019 21:31:00 · Поправил: ats52 (19 Янв 2019 21:39:57)
#
|
|
Дата: 19 Янв 2019 21:50:09 · Поправил: rulez-alex (19 Янв 2019 21:54:31)
#
mini SDRPLAY vs RTL-SDR v3
Антенны одинаковые длиной 25 см.
Одновременная работа обоих устройств.
![](http://www.radioscanner.ru/uploader/2019/tmb/bezimannij.png) |
|
Дата: 19 Янв 2019 22:16:57 · Поправил: NanoVHF (19 Янв 2019 22:19:18)
#
ats52
А что у вас за драйвер с децимацией? У меня в последнем нет такого.
rulez-alex
На малых уровнях сигнала разница возможна и мала. Веселье начинается при больших антеннах и уровнях вещалок, когда обычный свисток затыкается.
|
|
Дата: 19 Янв 2019 23:10:12
#
что у вас за драйвер с децимацией? У меня в последнем нет такого.- Я их столько перепробовал, что уже и не знаю, возможно, что с инсталера MiricsSDRAPIInstaller_1.97.exe https://yadi.sk/d/0_GLx9yTVyv3JA |
|
Дата: 20 Янв 2019 02:24:10
#
Нет, в этом инсталлере драйвер без децимации. Может, всё что есть в кучу положите на Я-диск?
Попутно вопрос к обладателям полноценной платы-клона с фильтрами, работает ли движок LNA у вас?
|
|
Дата: 20 Янв 2019 03:45:40 · Поправил: Nartov (20 Янв 2019 04:19:01)
#
Спрошу у владельцев SDRPlay RSP1 и RSP1A.
1.Сильно греется этот девайс в рабочем состоянии?
2.На что следует обратить внимание при покупке, ну ревизия или еще что-нибудь?
|
|
Дата: 20 Янв 2019 10:39:13 · Поправил: NanoVHF (20 Янв 2019 10:40:23)
#
Синий свисток практически не греется, разве чуть-чуть тёплый.
Оригинальный RSP1 имеет размер платы раз в 5 больше, потому, вообще не грется.
|
|
Дата: 20 Янв 2019 10:45:46
#
работает ли движок LNA у вас?
Движок LNA всегда подвижен и работает или не работает в зависимости от Gain Reduction на границе значений 58 единиц.
|
|
Дата: 20 Янв 2019 11:50:09
#
|
|
Дата: 20 Янв 2019 11:53:55
#
NanoVHF
Улыбнули запиленные маркировки на микросхемах lna, коммутаторов и диодах )
Кстати, этот синий пан-адаптер уже по 65USD проскакивал на али, еще дешевле, чем сначала (73-75).
|
|
Дата: 20 Янв 2019 11:58:56 · Поправил: ats52 (20 Янв 2019 11:59:28)
#
rulez-alex, Движка LNA у моего сабжа нет, просто выключатель, у ПЧ есть и выключатель и движок. Им можно регулировать Кпер ПЧ, как в автомате, так и в ручную. Разницы в работе я не заметил при испытании по проверке чувствительности, ДД и при прочих измывательствах над настройкам, просто в ручном режиме настройка Кпер ПЧ делается дольше и могут быть не корректной.
|
|
Дата: 20 Янв 2019 15:00:39 · Поправил: rulez-alex (20 Янв 2019 15:11:13)
#
|
|
Дата: 20 Янв 2019 15:45:55
#
Попробовал архив. Нету там тоже децимации.
Окошко настроек - это вызываемая системная функция (в dll) и то что там нарисовано зависит от того драйвера, который стоит в системе, а не находится в папки с шарпом.
Скачал с я-диска - будем искать правильную dll
|
|
Дата: 20 Янв 2019 21:48:02
#
mini SDRPLAY vs RTL-SDR v3
Сравнил выше два приёмника в лоб. Чувствительность приёма сигналов и качество звука лучше в SDRPLAY.
|
|
Дата: 21 Янв 2019 10:41:53
#
Раз уж дал ссылку на ардуино крутилку, то все проверил сам, естественно с запросом текущей частоты. Выводы печальные, плугин работает не очень правильно для COM порта, ардуино не справляется и получает лишние не нужные данные как показал сниффер. Автор плугина молодец, все делал по правилам, но для телнета изначально и у него применен стандартный протокол JSON потому на запрос частоты запрос вида {"Command": "Get", "Method": "Frequency"} идет строка {"Result":"OK","Method":"Frequency","Value":400062500} которую надо успеть принять, отпарсить и получить значение частоты. Для ардуино есть библиотека JSON Parser которая увы не справляется с задачей... пока идет прием и парсинг, на скорости 115200, другой нет. Ты успеваешь провернуть энкодер на энную дистанцию и результат наложиться кашей. Пришлось отказаться на приеме данных от библиотеки парсера JSON в пользу функции Ардуино - Serial.parseInt(); Это немного не правильно, с точки зрения подхода, но функция берет из строки число и в него частенько попадает нужное нам значение текущей частоты :)
if (Serial.available()>0){
val = Serial.parseInt();
........}
Остается грамотно отказаться от посторонних цифр, а они есть в ответе...потому как когда плугин получает неправильную строку, он выдает свое приветствие с текущей версией плугина, которая имеет цифровое значение. Вот если написать код способный быстро удалить ненужные цифры, то все работает более менее шустро. На передачу применен тот же JSON парсер - удобно ну например так для начала инкремент частоты:
if (val > 1000) {
JsonObject& root2 = jb.createObject();
root2["Command"] = "Set";
root2["Method"] = "Frequency";
root2["Value"] = (val+1000);
root2.prettyPrintTo(Serial);
Serial.println();
jb.clear();}
else { Serial.println("parseObject() failed"); }
}
Короче заставить работать можно, но все как то не очень лицеприятно.
Используя парсер на прием можно делать так
DynamicJsonBuffer jb;
JsonObject& root = jb.parseObject(Serial);
val = root["Value"];
Но вот так он успевает очень редко...я отказался.
|
|
Дата: 21 Янв 2019 10:50:03
#
|
|
Дата: 22 Янв 2019 19:24:05 · Поправил: Avtomatizator (22 Янв 2019 19:28:28)
#
Xand
Не поленюсь и найду свой "старый" скетч, у меня всё работало нормально и "Мега" справлялась со всеми, возложенными на неё функциями, библиотеки и сам плагин работали отлично, без всяких "багов".
|
|
Дата: 22 Янв 2019 19:39:27
#
Не поленюсь и найду свой "старый" скетч,
Хорошо бы, значит у тебя опрос энкодера был по другому реализован :) У меня правда тоже работает, просто ошибки мимо пролетают,но они есть. Ну и если был запрос частоты то интересно. Без него вообще проблем нет.
|
|
Дата: 22 Янв 2019 19:55:07 · Поправил: Avtomatizator (22 Янв 2019 20:35:46)
#
Xand
Да с запросом частоты мне пришлось "по колдовать". Запрос у меня делался при первом импульсе от энкодера, для прикола выводил частоту на дисплей 1602, а потом на 2004. ошибок не было. P.S. Если не найду старый скетч, то, чуть позже, когда будет свободное время, вспомню былое и напишу новый скетч учтя старые наработки, главное, вспомнить, что я там своял:)
Кстати, вот ссылка на ещё один, модернизированный скетч ArduinoJson По моему, мы немного не в той теме "свистком" управляем:)) |
|
Дата: 22 Янв 2019 21:20:58
#
Ну вот тут и зарыта собака. Я пробовал без прерываний, как то не ровно работал энкодер. Нашел описание от товарища что привел выше ссылку. Энкодер заработал чудесно. Далее стал биться со снятием частоты. Тут пошли проблемы, ведь для комфортного кручения, необходимо иметь чтение частоты так сказать во время кручения, а это сложно. СОМ сниффер показывает кучу малу. В итоге, когда я отказался от джонсона при парсинге принятого - стало работать быстрее и в принципе можно не обращать внимания на пакеты с ошибками, все равно работает смена частоты. Но осталась проблема, чтобы не считывалась левая частота из сообщения от плугина с его номером версии. который он присылает в ответ на ошибочный пакет. Тогда идет рывок частоты в неизвестном направлении. На этом я бросил возиться, жду посылку с SDRPlay мне не нравится программа SDRSharp и смысл возиться с ее плугином для меня не актуален. Скачал API от Плэя, посмотрю что там можно будет сделать. Надо поискать решения с омни ригом, может все гораздо интереснее. Возился просто ради посмотреть что там и как в Шарпе.
|
|
Дата: 22 Янв 2019 21:25:56
#
Вот это не джонсон -
Serial.println("{\"Command\": \"Set\", \"Method\": \"Frequency\", \"Value\": "+String(newFrequency)+"}");
это мимо джонсона ручное создание пакета :)
А это я реально применяю джонсон для создания пакета
JsonObject& root2 = jb.createObject();
root2["Command"] = "Set";
root2["Method"] = "Frequency";
root2["Value"] = (val+1000);
root2.prettyPrintTo(Serial);
Serial.println();
jb.clear()
|
|
Дата: 22 Янв 2019 21:33:33
#
Вот чтение до символа конца строки - это надо попробовать тут есть зерно :)
String inData = Serial.readStringUntil('\n'); Эта строка мне нравиться!!!!!!!!
StaticJsonBuffer<200> jsonBuffer;
JsonObject& root = jsonBuffer.parseObject(inData);
if (!root.success()) {
Serial.println("cant_get_frequency");
delay(1000);
return;
}
frequency = root["Value"];
inData = "";
//Clear encoder counter
encoder.write(0);
|
|
Дата: 22 Янв 2019 22:21:03
#
Ну вот удалось сделать без ошибок...
Лог комсниффера
{"Name":"Net Remote","Version":"1.2.6250.23196"}
{
"Command": "Get",
"Method": "Frequency"
}
{"Result":"OK","Method":"Frequency","Value":109970000}
{
"Command": "Set",
"Method": "Frequency",
"Value": 109969000
}
{"Result":"OK"}
{
"Command": "Get",
"Method": "Frequency"
}
{"Result":"OK","Method":"Frequency","Value":109969000}
{
"Command": "Set",
"Method": "Frequency",
"Value": 109968000
}
{"Result":"OK"}
{
"Command": "Get",
"Method": "Frequency"
}
{"Result":"OK","Method":"Frequency","Value":109968000}
{
"Command": "Set",
"Method": "Frequency",
"Value": 109967000
}
{"Result":"OK"}
{
"Command": "Get",
"Method": "Frequency"
}
{"Result":"OK","Method":"Frequency","Value":109967000}
{
"Command": "Set",
"Method": "Frequency",
"Value": 109966000
}
{"Result":"OK"}
{
"Command": "Get",
"Method": "Frequency"
}
{"Result":"OK","Method":"Frequency","Value":109966000}
{
"Command": "Set",
"Method": "Frequency",
"Value": 109965000
}
{"Result":"OK"}
{
"Command": "Get",
"Method": "Frequency"
}
{"Result":"OK","Method":"Frequency","Value":109965000}
Ошибки при быстром вращении пролетают типа:
{
"Command": "Get",
"Method": "Frequency"
}
{"Result":"Error","Type":"Syntax error","Message":"{ \"command\": \"set\", \"method\": \"frequency\", \"value\": 109965000}{ \"command\": \"get\", \"method\": \"frequency\"}"}
{
"Command": "Set",
"Method": "Frequency",
"Value": 109966000
}
Но в принципе работает успешно...
|
|
Дата: 22 Янв 2019 22:26:34 · Поправил: Xand (22 Янв 2019 22:31:24)
#
Для комфорта осталось подумать о изменении константы изменения величины изменения частоты, надо проанализировать скорость вращения энкодера. И в принципе можно юзать. Скэтч вылижу выложу.
Кусочек с правильным чтением
String inData = Serial.readStringUntil('\n');
val = Serial.parseInt();
inData = "";
Т.е от джонсона я все равно в отказе на прием. Он не успевает за работой энкодера в режиме прерываний
а вот строчку что ты мне дал String inData = Serial.readStringUntil('\n');
Поиск конца строки я использовал.
|
|
Дата: 22 Янв 2019 22:49:35 · Поправил: Xand (23 Янв 2019 11:57:51)
#
Вот весь кусок что я применил для чтения и установки частоты. Без реализации варианта ловли ускорения энкодера. Мне не актуально вроде пока. Но может кому поможет или пригодиться.
Весь скэтч можно взять по ссылке автора работы с энкодером по прерываниям, http://codius.ru/articles/Инкрементальный_энкодер_принцип_действия_схемы_подключения_работа_с_Arduino
я изменил только void Loop
Для работы надо подключить скачать и библиотеку либо делать без нее формируя строку для передачи в ручную. Вот так:
Serial.print("{\"Command\": \"Set\", \"Method\": \"Frequency\", \"Value\": ");
Serial.print(frequency + (val +1000));
Serial.println("}");
Или с библиотекой как показано ниже ...
#include <ArduinoJson.h>
void loop()
{
if (actualcount != count) { // Чтобы не загружать ненужным выводом в Serial, выводим состояние
//actualcount = count; // счетчика только в момент изменения
// В объявлении переменных в начале скетча прописать long val = 0;
DynamicJsonBuffer jb;
JsonObject& root = jb.createObject();
root["Command"] = "Get";
root["Method"] = "Frequency";
root.prettyPrintTo(Serial);
Serial.println();
jb.clear();
String inData = Serial.readStringUntil('\n'); // Thanks Avtomatizator :) Получаем конец строки.
val = Serial.parseInt(); // Получаем значение частоты
inData = "";
if (actualcount > count){
// Если счетчик энкодера увеличился
if (val > 1000) {
JsonObject& root1 = jb.createObject();
root1["Command"] = "Set";
root1["Method"] = "Frequency";
root1["Value"] = (val+1000); // Передаем инкремент частоты
root1.prettyPrintTo(Serial);
Serial.println();
jb.clear();}
else { Serial.println("parseObject() failed"); }
}
if (actualcount < count){
// Если счетчик энкодера уменьшился
if (val > 1000) {
JsonObject& root2 = jb.createObject();
root2["Command"] = "Set";
root2["Method"] = "Frequency";
root2["Value"] = (val-1000); // Передаем декремент частоты
root2.prettyPrintTo(Serial);
Serial.println();
jb.clear();}
else { Serial.println("parseObject() failed");
}
actualcount = count;
}
actualcount = count;
}
}
Далее оригинальный
void A()
С остальными параметрами можно не заморачиваться, а просто выставлять нужные значения по нажиму соответствующих кнопок. Делать запросы на текущее состояние их значений, как я понимаю смысла нет. |
Реклама Google |
|