Просмотр полной версии : BandData decoder для Kenwood
Страницы :
1
2
3
4
5
[
6]
7
ни в одном из них нет УКВ
TS-2000 как это нет укв
TS-2000 как это нет укв
ну ОЙ, значит есть
Вот тогда и 23 см надо включить, а вот 70МГц это вопрос, есть ли он в них. в 2к нету его.
А управление ФНЧ и ФНЧ как можно реализовать ? Или это уже из области фантастики. Выходов видимо хватит и на эти заморочки.
ну очень просто
если попадает в 1 из 14 любительских диапазонов, то включается соответствующий пин
если не попадает и частота <50МГц то 1 появляется на пине для ФНЧ
если не попадает и частота >50МГц то 1 появляется на пине для ФВЧ
ЮРИЙ UR7TU
29.11.2014, 01:25
UT0UM у меня вообще то IC 765, приемник Afedri. Программа любимая SDR Consol. Программа управляет по САТ трансивером, ну и приемником естественно. Нужно устройство, которое бы управляло полосовыми фильтрами от САТ. Я сечас использую полосовики от IC, но это "широкие ворота" слишком. Вот и возник вопрос как сделать управление полосовиками приемника . В программе есть возможность выбора модели трансивера для управления по САТ. Но я не подумал, что это должно учитываться и в ардуино. То есть основное устройство это приемник, а трансивер только передатчик. Возможно даже один приемник и 2 ТХ - один на КВ, другой на УКВ. Вот и интересуюсь возможно такое сделать или нет. И "во скоко" эти хотелки могут обойтись.
UT0UM у меня вообще то IC 765, приемник Afedri. Программа любимая SDR Consol. Программа управляет по САТ трансивером, ну и приемником естественно. Нужно устройство, которое бы управляло полосовыми фильтрами от САТ. Я сечас использую полосовики от IC, но это "широкие ворота" слишком. Вот и возник вопрос как сделать управление полосовиками приемника . В программе есть возможность выбора модели трансивера для управления по САТ. Но я не подумал, что это должно учитываться и в ардуино. То есть основное устройство это приемник, а трансивер только передатчик. Возможно даже один приемник и 2 ТХ - один на КВ, другой на УКВ. Вот и интересуюсь возможно такое сделать или нет.
IC765 другая система САТ команд
этот скетч не подойдет
надо подправить скетч, але потрібно мати час і натхнення
ЮРИЙ UR7TU
29.11.2014, 01:45
Я все понял. Спасибо большое за информацию. Як що в мене з"явится надхнення обов"язково звернусь до вас. :)
To UT0UM
С TS-450S не будет работать?
UA9TL, должно работать, у них у всех команда статуса IF есть.
Код под альдруину простой можно всегда допилить под свои нужны, к примеру попадется какой-то лог, который не через IF опрашивает статус, а отдельно VFO-A или B. Случай редкий, но не исключен.
To UT0UM
С TS-450S не будет работать?
будет
1. берем ардуинуСпасибо
Спасибо за информацию!
Подскажите, какую именно ардуину взять, что должно быть в комплекте?
Спасибо
Спасибо за информацию!
Подскажите, какую именно ардуину взять, что должно быть в комплекте?
любую (кроме PRO MINI - в ней нет USB порта)
больше ничего не надо
антенные реле можно подключить к пинам через транзисторные ключи или через оптопары
маленькая котрая с USB называется PRO MICRO
антенные реле можно подключить к пинам через транзисторные ключи или через оптопары
или купить готовые блоки с промежуточным реле. 2,4,8 реле есть может и на 16 есть не интересовался.
бывают и просто с 5В реле и с опторазвязкой. По мне так этот вариант удобнее не надо заморачиваться соединил платки шлейфиком и готово.
типа таких http://www.ebay.com/sch/i.html?_from=R40&_trksid=p2059210.m57 0.l1313.TR0.TRC0.H0&_nkw=Relay+Module+Sh ield+for+Arduino&_sacat=0
ЮРИЙ UR7TU
29.11.2014, 20:05
UT0UM, скажите а платы ардуино с USB, отличаются количеством выходов или у всех этих плат оно одинаковое ? В вопросе какой ардуино лучше видимо имелось ввиду в каком больше выходов. Выходов то надо как можно больше, на всякий случай... :)
А саму ардуину где выгоднее купить, подскажите ссылки!
UT0UM, скажите а платы ардуино с USB, отличаются количеством выходов или у всех этих плат оно одинаковое ? В вопросе какой ардуино лучше видимо имелось ввиду в каком больше выходов. Выходов то надо как можно больше, на всякий случай... :)
тогда берите Arduino Mega2560 (http://arduino.ru/Hardware/ArduinoBoardMega2560 ) там 70 выходов
а для данного проекта Arduino Nano будет в самый раз
и дешево и маленькая и выходов достаточно
только берите с нормальным USB чипом Ft232 от FTDI
а то щас много каких то китайских аналогов, а там мало ли что с драйверами
хотя они ОЧЕНЬ дешевые, стоит меньше 3-х долларов уже с пересылкой!!!
вот взял на пробу (http://www.ebay.com/itm/181591402576?_trksid =p2059210.m2749.l264 9&ssPageName=STRK%3AME BIDX%3AIT)
вот тут написано как для нее драйвер ставить (http://arduino-project.net/driver-ch340g/)
выгоднее всего покупать на ebay или aliexpress
а то щас много каких то китайских аналогов, а там мало ли что с драйверами
там на мега8 как приавило USB to COM бывают с PL2303. или сразу с USB контроллеры стоят
конструкции проверены временем проблем нет.
а вот с FT могут быть проблемы если чип левый, новые драйвера FT портят эти чипы.
ЮРИЙ UR7TU
29.11.2014, 20:48
UT0UM спасибо за информацию. Думаю многим пригодится.
там на мега8 как приавило USB to COM бывают с PL2303
щас такого и не найти наверное
по просьбе UA9TL выкладываю последние проверенные скетчи
там стоит скорость ком порта 4800, кому надо - исправьте на свою
Запустил недавно свой вариант бэнд-декодера (cat-kenwood) . Скетч писал сам. Кто не умеет , тот может взять скетчи предоставленные UT0UM.
Моя конструкция имеет два сериал-юсб порта, и может работать в связке как с компом, так и без компа.
Прототип декодера на видео:
youtu.be/y59YtnlYmC8
Моя конструкция имеет два сериал-юсб порта, и может работать в связке как с компом, так и без компа.
Дмитрий доброе время суток!!!!
Можно посмотреть Ваш скетч, очень актуально для нового транзисторного РА.
С уважением Виктор R2PM
Запустил недавно свой вариант бэнд-декодера (cat-kenwood) . Скетч писал сам. Кто не умеет , тот может взять скетчи предоставленные UT0UM.
Моя конструкция имеет два сериал-юсб порта, и может работать в связке как с компом, так и без компа.
Дмитрий добрый день!!!!
Хочу повторить бэнд-декодер для транзисторного РА можите прислать мне на почту скетч.
rd3pq@rambler.ru
Спасибо большое.
С уважением Виктор R2PM
Хочу повторить бэнд-декодер для транзисторного РА можите прислать мне на почту скетч.
Давайте я тут выложу упрощенный вариант, с одним портом. Вариант на два и более портов еще в стадии тестирования и вылавливания ошибок.
В принципе информации там достаточно, чтоб дописать код под Ваши задачи. Еще есть такой вариант и для Айкома.
Код для Кенвуда, УКВ 144 и 430 тоже там есть :
/*
* UR7HFO (c)2016 KENWOOD simple band decoder for Arduino NANO or UNO.
*
* Default COM port speed 9600 8N1 (8 - data, N - parity, 1 - stop bit)
*
* Relay output pins:
*
* 160 band - 2 pin
* 80 band - 3 pin
* 40 band - 4 pin
* 30 band - 5 pin
* 20 band - 6 pin
* 17 band - 7 pin
* 15 band - 8 pin
* 12 band - 9 pin
* 10 band - 10 pin
* 6 band - 11 pin
* 2 band - 12 pin
* 0.7 band - 13 pin
*
* Only if LCD display exist:
* LCD on UNO I2C bus pins - A4(SDA), A5(SCL).
*
*/
/* ******************* Begin user setting ******************** ****** */
// Uncomment for I2C_LCD display 20x4
// #define I2C_LCD
// default COM port speed.
unsigned int SERIAL_SPEED = 9600;
/* ******************** * End user setting ******************** ******* */
#ifdef I2C_LCD
// Add your address here. Find it from I2C Scanner
// i2c 20x4 0x27-address display
#define I2C_ADDR 0x27
#define BACKLIGHT_PIN 3
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <LCD.h>
LiquidCrystal_I2C lcd(I2C_ADDR,En_pin, Rw_pin,Rs_pin,D4_pin ,D5_pin,D6_pin,D7_pi n);
#endif // I2C_LCD
// Relay pins
#define b160 2
#define b80 3
#define b40 4
#define b30 5
#define b20 6
#define b17 7
#define b15 8
#define b12 9
#define b10 10
#define b6 11
#define b2 12
#define b430 13
#define RDWR_CAT_TIMEOUT 100
// Hardware serial max buffer len 64.
char tmpCatBufKenwood[65];
String Freq = "";
unsigned int band = 0;
unsigned long freq = 0;
//
// Used procedure.
//
long GetFreqKenwood(void) ;
void DisplayInitDraw(void );
unsigned int NewWriteBand(unsigne d long);
// Setup procedure
void setup()
{
pinMode(b160, OUTPUT);
pinMode(b80, OUTPUT);
pinMode(b40, OUTPUT);
pinMode(b30, OUTPUT);
pinMode(b20, OUTPUT);
pinMode(b17, OUTPUT);
pinMode(b15, OUTPUT);
pinMode(b12, OUTPUT);
pinMode(b10, OUTPUT);
pinMode(b6, OUTPUT);
pinMode(b2, OUTPUT);
pinMode(b430, OUTPUT);
// China relay module (inverted)
digitalWrite(b160, HIGH);
digitalWrite(b80, HIGH);
digitalWrite(b40, HIGH);
digitalWrite(b30, HIGH);
digitalWrite(b20, HIGH);
digitalWrite(b17, HIGH);
digitalWrite(b15, HIGH);
digitalWrite(b12, HIGH);
digitalWrite(b10, HIGH);
digitalWrite(b6, HIGH);
digitalWrite(b2, HIGH);
digitalWrite(b430, HIGH);
#ifdef I2C_LCD
DisplayInitDraw();
#endif
Serial.begin(SERIAL_ SPEED);
Serial.setTimeout(RD WR_CAT_TIMEOUT);
Freq.reserve(128);
}
//
// Main loop
//
void loop()
{
freq = GetFreqKenwood();
band = NewWriteBand(freq);
#ifdef I2C_LCD
if(band)
{
lcd.setCursor(4,0);
lcd.print(" ");
lcd.setCursor(4,0);
lcd.print(band);
}
if(freq)
{
lcd.setCursor(4,1);
lcd.print(" ");
lcd.setCursor(4,1);
lcd.print(freq);
}
#endif
delay(250);
}
//
// Kenwood GetFreq.
//
long GetFreqKenwood()
{
// Kenwood freq request.
Serial.print("IF;");
Serial.flush();
// Read Kenwood response.
while ( Serial.available() )
{
memset(tmpCatBufKenw ood, 0, sizeof(tmpCatBufKenw ood));
Serial.readBytesUnti l(';', tmpCatBufKenwood, sizeof(tmpCatBufKenw ood));
}
Freq = String(tmpCatBufKenw ood);
if ( (Freq.substring(0,2) == "IF") && (Freq.substring(0,3) != "IF;") )
{
Freq = Freq.substring(2,14) ;
while(Freq[0] == '0')
{
Freq.remove(0, 1);
}
return Freq.toInt();
}
return 0;
}
//
// Display Init
//
#ifdef I2C_LCD
void DisplayInitDraw(void )
{
lcd.begin(20,4);
lcd.setBacklightPin( BACKLIGHT_PIN, POSITIVE);
lcd.setBacklight(HIG H);
lcd.home();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("UR7HFO KENWOOD");
lcd.setCursor(0,1);
lcd.print("BAND DECODER");
delay(2000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("BND");
lcd.setCursor(0,1);
lcd.print("FRQ ");
}
#endif // I2C_LCD
//
// NewWriteBand.
//
unsigned int NewWriteBand(unsigne d long freq)
{
// 160 m
if ( (freq >= 1700000 && freq <= 2100000) || freq == 1 )
{
digitalWrite(b160, LOW);
digitalWrite(b80, HIGH); digitalWrite(b40, HIGH); digitalWrite(b30, HIGH); digitalWrite(b20, HIGH); digitalWrite(b17, HIGH);
digitalWrite(b15, HIGH); digitalWrite(b12, HIGH); digitalWrite(b10, HIGH); digitalWrite(b6, HIGH);
digitalWrite(b2, HIGH); digitalWrite(b430, HIGH);
return 160;
}
// 80 m
if ( (freq >= 3400000 && freq <= 3900000) || freq == 3 )
{
digitalWrite(b80, LOW);
digitalWrite(b160, HIGH); digitalWrite(b40, HIGH); digitalWrite(b30, HIGH); digitalWrite(b20, HIGH); digitalWrite(b17, HIGH);
digitalWrite(b15, HIGH); digitalWrite(b12, HIGH); digitalWrite(b10, HIGH); digitalWrite(b6, HIGH);
digitalWrite(b2, HIGH); digitalWrite(b430, HIGH);
return 80;
}
// 40 m
if ( (freq >= 6900000 && freq <= 7300000) || freq == 7 )
{
digitalWrite(b40, LOW);
digitalWrite(b80, HIGH); digitalWrite(b160, HIGH); digitalWrite(b30, HIGH); digitalWrite(b20, HIGH); digitalWrite(b17, HIGH);
digitalWrite(b15, HIGH); digitalWrite(b12, HIGH); digitalWrite(b10, HIGH); digitalWrite(b6, HIGH);
digitalWrite(b2, HIGH); digitalWrite(b430, HIGH);
return 40;
}
// 30 m
if ( (freq >= 9900000 && freq <= 10200000) || freq == 10 )
{
digitalWrite(b30, LOW);
digitalWrite(b80, HIGH); digitalWrite(b40, HIGH); digitalWrite(b160, HIGH); digitalWrite(b20, HIGH); digitalWrite(b17, HIGH);
digitalWrite(b15, HIGH); digitalWrite(b12, HIGH); digitalWrite(b10, HIGH); digitalWrite(b6, HIGH);
digitalWrite(b2, HIGH); digitalWrite(b430, HIGH);
return 30;
}
// 20 m
if ( (freq >= 13900000 && freq <= 14450000) || freq == 14 )
{
digitalWrite(b20, LOW);
digitalWrite(b80, HIGH); digitalWrite(b40, HIGH); digitalWrite(b30, HIGH); digitalWrite(b160, HIGH); digitalWrite(b17, HIGH);
digitalWrite(b15, HIGH); digitalWrite(b12, HIGH); digitalWrite(b10, HIGH); digitalWrite(b6, HIGH);
digitalWrite(b2, HIGH); digitalWrite(b430, HIGH);
return 20;
}
// 17 m
if ( (freq >= 17900000 && freq <= 18300000) || freq == 18 )
{
digitalWrite(b17, LOW);
digitalWrite(b80, HIGH); digitalWrite(b40, HIGH); digitalWrite(b30, HIGH); digitalWrite(b20, HIGH); digitalWrite(b160, HIGH);
digitalWrite(b15, HIGH); digitalWrite(b12, HIGH); digitalWrite(b10, HIGH); digitalWrite(b6, HIGH);
digitalWrite(b2, HIGH); digitalWrite(b430, HIGH);
return 17;
}
// 15 m
if ( (freq >= 20900000 && freq <= 21600000) || freq == 21 )
{
digitalWrite(b15, LOW);
digitalWrite(b80, HIGH); digitalWrite(b40, HIGH); digitalWrite(b30, HIGH); digitalWrite(b20, HIGH); digitalWrite(b17, HIGH);
digitalWrite(b160, HIGH); digitalWrite(b12, HIGH); digitalWrite(b10, HIGH); digitalWrite(b6, HIGH);
digitalWrite(b2, HIGH); digitalWrite(b430, HIGH);
return 15;
}
// 12 m
if ( (freq >= 24700000 && freq <= 25100000) || freq == 24 )
{
digitalWrite(b12, LOW);
digitalWrite(b80, HIGH); digitalWrite(b40, HIGH); digitalWrite(b30, HIGH); digitalWrite(b20, HIGH); digitalWrite(b17, HIGH);
digitalWrite(b15, HIGH); digitalWrite(b160, HIGH); digitalWrite(b10, HIGH); digitalWrite(b6, HIGH);
digitalWrite(b2, HIGH); digitalWrite(b430, HIGH);
return 12;
}
// 10 m
if ( (freq >= 27000000 && freq <= 29800000) || freq == 28 || freq == 29 )
{
digitalWrite(b10, LOW);
digitalWrite(b80, HIGH); digitalWrite(b40, HIGH); digitalWrite(b30, HIGH); digitalWrite(b20, HIGH); digitalWrite(b17, HIGH);
digitalWrite(b15, HIGH); digitalWrite(b12, HIGH); digitalWrite(b160, HIGH); digitalWrite(b6, HIGH);
digitalWrite(b2, HIGH); digitalWrite(b430, HIGH);
return 10;
}
// 6 m
if ( (freq >= 49000000 && freq <= 55000000) || (freq >= 50 && freq <= 54) )
{
digitalWrite(b6, LOW);
digitalWrite(b80, HIGH); digitalWrite(b40, HIGH); digitalWrite(b30, HIGH); digitalWrite(b20, HIGH); digitalWrite(b17, HIGH);
digitalWrite(b15, HIGH); digitalWrite(b12, HIGH); digitalWrite(b10, HIGH); digitalWrite(b160, HIGH);
digitalWrite(b2, HIGH); digitalWrite(b430, HIGH);
return 6;
}
// 2 m
if ( (freq >= 143500000 && freq <= 146000000) || (freq >= 143 && freq <= 146) )
{
digitalWrite(b2, LOW);
digitalWrite(b80, HIGH); digitalWrite(b40, HIGH); digitalWrite(b30, HIGH); digitalWrite(b20, HIGH); digitalWrite(b17, HIGH);
digitalWrite(b15, HIGH); digitalWrite(b12, HIGH); digitalWrite(b10, HIGH); digitalWrite(b160, HIGH); digitalWrite(b6, HIGH);
digitalWrite(b430, HIGH);
return 2;
}
// 0.7 m
if ( (freq >= 420000000 && freq <= 450000000) || (freq >= 420 && freq <= 450) )
{
digitalWrite(b430, LOW);
digitalWrite(b80, HIGH); digitalWrite(b40, HIGH); digitalWrite(b30, HIGH); digitalWrite(b20, HIGH); digitalWrite(b17, HIGH);
digitalWrite(b15, HIGH); digitalWrite(b12, HIGH); digitalWrite(b10, HIGH); digitalWrite(b160, HIGH); digitalWrite(b6, HIGH);
digitalWrite(b2, HIGH);
return 430;
}
/*
// No amateur band found, disable all relay.
digitalWrite(b430, HIGH);
digitalWrite(b2, HIGH);
digitalWrite(b6, HIGH);
digitalWrite(b80, HIGH);
digitalWrite(b40, HIGH);
digitalWrite(b30, HIGH);
digitalWrite(b20, HIGH);
digitalWrite(b17, HIGH);
digitalWrite(b15, HIGH);
digitalWrite(b12, HIGH);
digitalWrite(b10, HIGH);
digitalWrite(b160, HIGH);
*/
return 0;
} // End NewWriteBand.
Дмитрий здравствуйте!!!
Спасибо.
Подскажите какой средой пользовались, среда 1.6.5 дала ошибку при компелировании.
По ICOM большая разница?
Виктор R2PM
С айкомом разница существенная.
Среда использовалась и 1.6.6 , и 1.6.7 , а какую выдало ошибку ?
Небольшой офтопик. Для Айкома нужно читать например вот эту статью - http://www.plicht.de/ekki/civ/civ-p1.html
Результат работы -
https://youtu.be/8QZmv1Nr7HA
ИКОМ
void ic706_QRG()
{
listen:
if (Serial.available() > 0) {
buffget[0] = Serial.read();
}
if (buffget[0] == 254)
{
buffget[0] = 0;
delay(1);
for (byte i=0;i<10;i++) { // get next 10 bytes
if(Serial.available( ) > 0) {
buffget[i]=Serial.read(); // load buffget with next 10 characters
delay(2); //delay 1 ms if true, time for buffer fill
}
}
delay (10); // delay is required to process buffer, do not remove !
if (buffget[0] == 254 and ((buffget[3] == 0) or (buffget[3] == 3) or (buffget[3] == 5)) and buffget[9] == 253) { // again FE , as 2nd character ?
MHZ = (buffget[7]);
MHZ = MHZ - (((MHZ/16) * 6)); // Transform bytes ICOM CAT
if (MHZ >= 100) goto listen; // wrong byte
KHZ = buffget[6];
KHZ = KHZ - (((KHZ/16) * 6)); // Transform bytes ICOM CAT
if (KHZ >= 100) goto listen; // wrong byte
HZ = buffget[5];
HZ = HZ - (((HZ/16) * 6)); // Transform bytes ICOM CAT
if (HZ >= 100) goto listen; // wrong byte
//
blink_led();
NoCAT=0;
freq = ((MHZ * 1000) + (KHZ * 10) + (HZ /10)); // QRG variable stores frequency in MMkkkH format
}
}
}
Среда использовалась и 1.6.6 , и 1.6.7 , а какую выдало ошибку ?
Изменена опция сборки, пересобираем все
sketch_band_kenwood_ 2:383: error: invalid suffix "N1" on integer constant
sketch_band_kenwood_ 2.ino: In function 'void setup()':
sketch_band_kenwood_ 2:379: error: redefinition of 'void setup()'
sketch_band_kenwood_ 2:99: error: 'void setup()' previously defined here
sketch_band_kenwood_ 2:381: error: 'c' was not declared in this scope
sketch_band_kenwood_ 2:381: error: 'UR7HFO' was not declared in this scope
sketch_band_kenwood_ 2:381: error: expected ';' before numeric constant
sketch_band_kenwood_ 2:479: error: a function-definition is not allowed here before '{' token
sketch_band_kenwood_ 2:523: error: a function-definition is not allowed here before '{' token
sketch_band_kenwood_ 2:551: error: a function-definition is not allowed here before '{' token
sketch_band_kenwood_ 2:767: error: expected '}' at end of input
invalid suffix "N1" on integer constant
ИКОМ
Изменена опция сборки, пересобираем все
sketch_band_icom.ino : In function 'void ic706_QRG()':
sketch_band_icom:9: error: 'buffget' was not declared in this scope
sketch_band_icom:11: error: 'buffget' was not declared in this scope
sketch_band_icom:36: error: 'MHZ' was not declared in this scope
sketch_band_icom:43: error: 'KHZ' was not declared in this scope
sketch_band_icom:48: error: 'HZ' was not declared in this scope
sketch_band_icom:52: error: 'blink_led' was not declared in this scope
sketch_band_icom:53: error: 'NoCAT' was not declared in this scope
sketch_band_icom:54: error: 'freq' was not declared in this scope
'buffget' was not declared in this scope
... was not declared in this scope
курим это (http://arduino.ru/Reference)
вдумчиво
rd3pq,
sketch_band_kenwood_ 2:379: error: redefinition of 'void setup()'
sketch_band_kenwood_ 2:99: error: 'void setup()' previously defined here
Так не годиться, у Вас как минимум 2 функции setup()
Вот Вам в архиве файл, просто разархивируйте его на комп, откройте в среде Ардуино, скомпилируйте , и загрузите в контроллер.
Сегодня закончил работу с BandData decoder для KENWOOD конструкции UT0UM(последние скетчи в п.522).
Огромнейшая благодарность Алексею за помощь в отладке скетчей.
Оба варианта (без лога и с логом) работают отлично( в том числе и с определением SSB участков)
Очень простая и нужная конструкция!!!
последние скетчи
прикреплены к этому сообщению
скорость порта 4800
будет работать с любым радио Кенвуд и, наверное, с новыми ЕСу (950, 2000, 1200, 3000, 5000)
прикреплены к этому сообщению
скорость порта 4800
будет работать с любым радио Кенвуд и, наверное, с новыми ЕСу (950, 2000, 1200, 3000, 5000)
А какую плату покупать, схемку и пр. - можно?
Ну так сказать - для чайников...
А какую плату покупать, схемку и пр. - можно?
Ну так сказать - для чайников...
нет там никакой схемы
подключаете любую ардуину к ЮСБ компа
настраиваете ВСПЕ (как описано в этой теме)
и получаете на нужны ножках ардуины +5В, в зависимости от бенда
а дальше делаете с ними что хотите (подаете на реле, ключи, оптопары итд)
откройте в среде Ардуино, скомпилируйте , и загрузите в контроллер.
Дмитрий доброе время суток!!!!
Спасибо, всё получилось. Проектирую дальше...
С уважением Виктор R2PM
настраиваете ВСПЕ (как описано в этой теме)
Можно и так, но я пришел к схеме , когда бэнд-декодер имеет два интерфейса, один аппаратный uart ( в случае уно-нано программный SoftwareSerial) посредством max232 подключается прямо к трансиверу, а свободный юсб-ком порт ардуины используется для подключения компа с логгером. Это актуально если у трансивера только 1 ком порт. Для кенвуда 590 , такая схема ненужна, так как у него и rs232 и юсби порты есть.
Можно и так
так было сделано, чтобы показать, что можно все делать исключительно программным способом
без всяких портов, шнурков, максов итд
трансивер в любом случает уже подключен к компу, так зачем к нему еще что-то подключать?
Всю необходимую информацию можно получить с этого компа через USB
Много полезного в теме написано, а фото реальных конструкций будут ?
Предлагаю начать делиться фотографиями. Как делали конструкцию, и что из этого вышло.
У меня такое вышло, протоколы Icom, Kenwood, YaesuBCD.
Интерфейсы USB-serial, CI-V, BCD, RS-232
Тип протокола, порт, скорость порта, выбирается тремя кнопками, диапазоны 1.8 - 430 мгц. Восьмидесятка разбита на два раздельных участка CW и SSB.
231197231198231199
Много полезного в теме написано, а фото реальных конструкций будут ?
Предлагаю начать делиться фотографиями. Как делали конструкцию, и что из этого вышло.
У меня такое вышло, протоколы Icom, Kenwood, YaesuBCD.
Интерфейсы USB-serial, CI-V, BCD, RS-232
Тип протокола, порт, скорость порта, выбирается тремя кнопками, диапазоны 1.8 - 430 мгц. Восьмидесятка разбита на два раздельных участка CW и SSB.
Дмитрий доброе время суток!!!!
Очень понравилась Ваша конструкция и возможности её. Дмитрий если не трудно поделитесь скетчем и схемой, можно в личку. Спасибо большое.
С уважением Виктор R2PM
Для желающих собрать мой вариант, при этом не изучая программирование на Ардуино, выкладываю готовую прошивку под Ардуино Мега, и коротенькую инструкцию .
Для желающих собрать мой вариант, при этом не изучая программирование на Ардуино, выкладываю готовую прошивку под Ардуино Мега, и коротенькую инструкцию .
только вот переключать антенные реле другими реле очень стремно,
если использовать на прием и передачу разные антенны, то могут не успеть
у меня в ts-590 то ли 20 то ли 25 мс задержка
и реле только в самом антенном коммутаторе, а в бендекодере оптопары+ключи
и все равно, иногда бывает, что переключение антенн идет на горячую
если использовать на прием и передачу разные антенны, то могут не успеть
Полностью согласен, промежуточные реле там лишние, только задержку добавляют. Я делал для себя, да плюс эти готовые блоки реле лежали без дела, поэтому их и поставил )) Правильно конечно же оставить только оптопару и ключ на транзисторе.
эти готовые блоки реле лежали без дела
у меня так и лежат без дела :)))
Правильно конечно же оставить только оптопару и ключ на транзисторе
так на Ваших блоках оптопара уже есть, осталось вместо реле поставить ключ :)))
Да по хорошему все это нужно переписать под НАНО , разработать плату, это было бы правильно, и дешевле, но меня и так устроило, так как делал для себя, и хотелось чтобы все собиралось как из кубиков в детском конструкторе :smile:
переписать под НАНО
а какая разница коду мега там или нана?
а какая разница коду мега там или нана?
Кроме количества uart, количества ацп, и количества цифровых выводов, разницы никакой нет. У нано просто выводов не хватит на все хотелки, можно было бы навсесить все это на шину I2C, но пока времени на это нет.
можно было бы навсесить все это на шину I2C
Или на 595 регистры.
У нано просто выводов не хватит на все хотелки
ой, а у меня как то хватило...
... и на кенвуд и на есу и на айком и на управление усилителем по BCD и на индикацию
индикация на восемь семисегментников, плюс 8 двухцветных светодиодов
и 11 независимых кнопок
еще и на прием/передачу антенны разные выбираются
и все это на одной Нане без I2C и 595 :)
знаю, пойду возьму с полки пирожок...
... или медаль себе куплю
на управление усилителем по BCD
Да, надо бы добавить эту функцию.
ой, а у меня как то хватило...
Ну так молодец ! Что тут скажешь :smile:
плюс 8 двухцветных светодиодов
Для чего применяются именно двухцветные светодиоды ?
управление усилителем по BCD
А какой используется усилитель? Можно взять пример как у Чехов с выводом в любом формате (cat, civ, bcd), да и самому это несложно дописать, но реально оно кому нужно ?
применяются именно двухцветные светодиоды
8 антненн - 8 светодиодов
на прием светит зеленым, а на передачу красным
мигают, когда приходят данные частоты с трансивера (примерно раз в сек)
А какой используется усилитель?
КРА500
и еще бенддекодер по САТ устанавливает в трансивере мощность по диапазонам, чтобы не было перекачки РА
Kia2700d
12.04.2016, 15:43
И шо, это все на одной нане?!
Добавил выход в формате BCD для управления внешним усилителем, исправил небольшой баг с дисплеем.
Назначение пинов Arduino Mega:
/* * UR7HFO (c)2016 band decoder for Arduino Mega. (ver 1.0)
*
* LCD I2C bus pins - 20(SDA), 21(SCL)
*
* Button COM port speed up\down - 22 pin
* Button mode Kenwood\Icom\Yaesu - 23 pin
* Button TRX port selector - 24 pin
*
* Relay output pins:
*
* 160 band - 26 pin
* 80-CW band - 27 pin
* 80-SSB band - 28 pin
* 40 band - 29 pin
* 30 band - 30 pin
* 20 band - 31 pin
* 17 band - 32 pin
* 15 band - 33 pin
* 12 band - 34 pin
* 10 band - 35 pin
* 6 band - 36 pin
* 2 band - 37 pin
* 0.7 band - 38 pin
*
*
* Yaesu BCD_A - A0 pin // Yaesu DIN8 connector pin 4.
* Yaesu BCD_B - A1 pin // Yaesu DIN8 connector pin 5.
* Yaesu BCD_C - A2 pin // Yaesu DIN8 connector pin 6.
* Yaesu BCD_D - A3 pin // Yaesu DIN8 connector pin 7.
*
* PC Logger CAT port - TX0(1), RX0(0) Serial (USB onboard)
* TRX CAT port 1 - TX1(18), RX1(19) Serial1 (CI-V)
* TRX CAT port 2 - TX2(16), RX2(17) Serial2 (RS-232)
* TRX CAT port 3 - TX3(14), RX3(15) Serial3 (USB-COM)
*
* BCD_A_OUT - 40 pin
* BCD_B_OUT - 41 pin
* BCD_C_OUT - 42 pin
* BCD_D_OUT - 43 pin
*
*/
К кенвуду подключается на выбор или с помощью max232 в типовом включении, или через юсб и программы vspe.
К айкому подключается в штатный CI-V интерфейс (гнездо 3.5 мм) с помощью следующего интерфейса.
232020
Прошивка для Ардуино Меги
Добавил выход в формате BCD для управления внешним усилителем, исправил небольшой баг с дисплеем.
Дмитрий доброе время суток!!!!
Спасибо за проект! Есть просьба последний вариант прошивки выложить для программирования в среде Andruino/
С уважением Виктор R2PM
Ардуино я взял в руки совсем недавно, так что пардон, написал как смог.
Добавлено через 12 минут(ы):
С Айкомом ардуина сама запрашивает частоту у трансивера, сделано иначе чем описано тут - http://remoteqth.com/wiki/index.php?page=Band+ decoder+for+Arduino# ICOM_CIV поэтому и CI-V интерфейс выполнен иначе.
Код во вложенном файле:
Продолжая играться с бэнддекодером, легко можно сделать такой режим для работы сплитом, когда одно радио может использоваться чтоб слушать пайлап.
https://youtu.be/JJ604oU6pII
Дмитрий доброе время суток!!!
Подскажите пожалуйста как вы подключаете к компьютеру, как к ведущему трансиверу и к ведомому, например TS950 ведущий, а IC 781 ведомый через омни риг аппаратного журнала.
Ваш проект собрал - всё запустилось, единственное отличие от Вашего проекта - это в подключение LCD, у меня он подключен без расширения, т.е параллельное вкл.
С уважением Виктор R2PM
Подскажите пожалуйста как вы подключаете к компьютеру, как к ведущему трансиверу и к ведомому, например TS950 ведущий, а IC 781 ведомый через омни риг аппаратного журнала.
Добрый день, программа Omni Rig в этом процессе не участвует. Ведущим трансивером является Айком, но можно и переписать под свои задачи. Алгоритм такой:
1) Cам бенд -декодер (без участия компа) отправляет в Айком команду запроса частоты .
2) Далее ждет ответ от Айкома, и при его получении декодирует, и включает нужное антенное реле.
3) Затем бенддекодер преобразует полученную частоту в формат команды установки частоты Кенвуд, и отправляет через заданный сериал-порт в Кенвуд.
Ваш проект собрал - всё запустилось, единственное отличие от Вашего проекта - это в подключение LCD, у меня он подключен без расширения, т.е параллельное вкл.
Хорошо :)
Установка обоих гетеродинов Кенвуда по CAT протоколу выглядит так :
//
// kenwood_OUT
//
void kenwood_OUT(long freq)
{
String strFreq = String(freq);
Serial3.print("FA" + strFreq + ";");
Serial3.print("FB" + strFreq + ";");
Serial3.flush();
}
1) Cам бенд -декодер (без участия компа) отправляет в Айком команду запроса частоты .
А если айком подключен к компу с логом, то пул прекращается и просто слушает пролетающий поток?
В варианте синхронизации двух аппаратов желательно предусмотреть, чтобы какое-то одно VFO синхронизировало. Т.е. чтобы просто выбрав другой VFO можно было отказаться от синхронизаций без лишний действий.
А если айком подключен к компу с логом, то пул прекращается и просто слушает пролетающий поток?
Так как Вы пишите нужно будет сделать в следующей прошивке, то есть отслеживать, активна ли программа логгер, или нет.
Это будет самое правильное решение.
Сейчас сделано достаточно примитивно, бенд декодер не определяет есть активность от логгера или нет, вместо этого но все транслирует от логгера в трансивер, и от трансивера в логгер через раздельные сериал интерфейсы. Раз в 1 секунду, эта трансляция останавливается, и бенд декодер сам посылает трансиверу запрос на частоту, и декодирует ответ, далее трансляция логгер-трансивер возобновляется, и все в цикле повторяется.
Да, надо сделать следящую систему чтобы если данные бегут - не делать свой опрос. А если не бегут, скажем более 10 секунд - уже начинать свой опрос аппарата. Так было сделано еще в самом первом декодере, с которого начиналась эта ветка форума.
В варианте синхронизации двух аппаратов желательно предусмотреть, чтобы какое-то одно VFO синхронизировало. Т.е. чтобы просто выбрав другой VFO можно было отказаться от синхронизаций без лишний действий.
Да это не сложно совсем, но сейчас проверить нет возможности, так как Айком уже забрали у меня.
Оставить только например одну строку установки Кенвудовского гетеродина - Serial3.print("FA" + strFreq + ";");
Оставить только например одну строку установки Кенвудовского гетеродина - Serial3.print("FA" + strFreq + ";");
Пока временно (ардуина лежит еще на столе без дела) сделал для себя синхронизацию двух аппаратов через самописную программку для винды, то синхронизирую только VFO-B основного аппарата, чтобы работать сплитом. Т.е. с первого аппарата передаю со сплитом (VFO-B), и слушаю на нем же DX (VFO-A). А на дополнительном аппарате слушаю пайлап и его частота настройки синхронизируется с VFO-B на основном.
Если не нужна синхронизация, просто использую основной аппарат в VFO-A, ничего более не переключая.
Может быть есть и другие применения, тут надо подумать, какие комбинации еще нужны для чего.
Дмитрий спасибо за ответ!!!!
То что в этой прошивке Айком ведущий - понятно, но у меня куча устройств работающих по протоколу CI-V (антенный коммутатор, с возможностью "разноса" антенн; селективный измеритель мощности и КСВ, автомат тюнер и т.п.) работающие в режиме "прослушки". Так вот когда ведущим становится Кенвод мне с выхода бенд декодера нужен протокол CI-V - это первое.
Второе - практически 70% управляются трансивера с аппаратного журнала, а не наоборот.
Вот такой мой подход к устройству.
Дмитрий есть ещё один нюанс (может это у меня только) - приходиться долго держать кнопки для переключения.
С уважением Виктор R2PM
Дмитрий есть ещё один нюанс (может это у меня только) - приходиться долго держать кнопки для переключения.
Там опрос идет идет с интервалом в одну секунду, поэтому для переключения нажатую кнопку нужно удерживать, я делал для себя, и мне это показалось не критично, можно конечно сделать чаще.
Так вот когда ведущим становится Кенвод мне с выхода бенд декодера нужен протокол CI-V - это первое.
Можно и эту функцию дописать, но проблема в том, что Айком у меня уже забрали, и проверять и тестировать уже нет возможности. Поэтому в данный момент должен оставить этот проект "как есть". Может быть еще возможность такая будет, но обещать я не могу.
Так вот когда ведущим становится Кенвод мне с выхода бенд декодера нужен протокол CI-V - это первое.
Можно и эту функцию дописать, но проблема в том, что Айком у меня уже забрали, и проверять и тестировать уже нет возможности.
Доброе время время суток!!!
Дмитрий, если хотите, то могу по тестировать .
С уважением Виктор R2PM
Дмитрий доброе время суток!!!!
Не удалось состыковать с IC 781 и бенд декодер, скорость 9600. На экране в нижней строке ICOM ff88 40 на третьей строке PORT CI-V 9600. К оптопарам подаю Tx1 Rx1. Без данного бенд декодера всё работает без проблем.
Может надо править скетч по 781?.
Виктор R2PM
На экране в нижней строке ICOM ff88
Так Вы в скетче установите правильное значение адреса для Вашей модели Айкома, значение ff88 , это для модели IC-7100
Добавлено через 7 минут(ы):
http://www.plicht.de/ekki/civ/civ-p31.html Тут можно посмотреть.
В тексте программы ищете строку
const char CIV_ADRESS = 0x88; // CIV input HEX Icom (0x88 for ic-7100)
Вместо значения 0x88 поставте значение 0x26 .
Вместо значения 0x88 поставте значение 0x26 .
Поправил - результат тот же. Блок с трансивером не "подружмлся"
R2PM
Поправил - результат тот же. Блок с трансивером не "подружмлся"
Проверте, какая скорост CI-V интерфейса установлена в самом трансивере. Скорости в логгере, бэнд-декодере, и трансивере, должны быть одинаковы. Мельком глянул мануал на ic-781 , то что увидел, то там фигурируют возможные скорости - 300, 600, 1200, 2400.
Может он просто не может работать на 9600 ? Попробуйте везде установить скорость 2400 и проверить.
Может он просто не может работать на 9600 ? Попробуйте везде установить скорость 2400 и проверить.
Дмитрий доброе утро!!!!
Так в обычном режиме (без блока) он работает без промблем на скорости 9600.
Сегодня попробую без оптопар 817 -х.
R2PM
Да, надо сделать следящую систему чтобы если данные бегут - не делать свой опрос. А если не бегут, скажем более 10 секунд - уже начинать свой опрос аппарата. Так было сделано еще в самом первом декодере, с которого начиналась эта ветка форума.
Немного продвинулся в этом направлении, сейчас в стадии тестирования.
Немного продвинулся в этом направлении, сейчас в стадии тестирования.
с кенвудом и айкомом это легко
а вот с есу 857 я так и не добил
там такой формат команд, что нельзя отловить их начало
а вот с есу 857 я так и не добил
Я еще в том направлении не копал, потому что нету есу857 у меня, но можно попробовать, а потом потестить, можно на одной из ардуин сделать эмулятор езу, ну и проверить ...
Вот хотя бы это
----Read Frequency / Mode Status---------------------------------
{0x00,0x00,0x00,0x00 ,CAT_RX_FREQ_CMD}
Read the frequency and mode as: {0x00,0x00,0x00,0x00 ,03}
The radio will then output 5 bytes of data to report the current frequency and mode:
{D1,D2,D3,D4,D5}
Data:
D1-D4 = frequency
D5 = mode (same as set mode)
Eg: {0x00,0x00,0x00,0x00 ,0x03} gets the current freq & mode
Result from radio is:
{0x43,0x97,0x00,0x00 ,0x08}
which means:
439.700MHz in mode 08 (FM)
----------------------------------------------------------------
*/
То есть пихайте ему принудительно эту 5 байтовую последовательность - {0x00,0x00,0x00,0x00 ,03}
Затем пауза 10....100 мс , и потом читаем из буфера уарт, что нам трансивер ответил
Добавлено через 12 минут(ы):
Или в пассивном режиме , слушаете логгер на предмет посылки последовательности 0x00,0x00,0x00,0x00 ,0x03
и если такая посылка прошла , то уже слушаем трансивер, что он нам ответит.
Кукин Николай Николаевич
25.05.2016, 17:05
с кенвудом и айкомом это легко
а вот с есу 857 я так и не добил
там такой формат команд, что нельзя отловить их начало
Все там ловится (в Y857) и расшифровывается, у Евгения RZ3QS блок управления антенн уже 2 года работает, а также блок управления выходным каскадом, где в автоматическом режиме определятся , подключен лог с компом или нет, декодируется весь поток от лога и управляется переключением фильтров, антенн, диапазонов. При этом все это работает как по протоколу кенвуду, sdr, айкому, так и по есу857 по сат с участием лога или без подключенного компьютера. При этом, хотя у кенвуда и sdr протокол одинаков, работа с этими аппаратами происходит по-разному.Прогу писал я, обкатывал Евгений.Труда положено было много.
Если Вы все делаете с использованием идеологии ардуино, то даже не знаю, что сказать. Я до конца так и не разобрался с ардуино, не понимаю, как там вообще что либо люди пишут. Мне показалось, что идеология этой вещи не предполагает создание машины прерываний, а без этого будет очень трудно, скорей всего даже невозможно читать поток с есу857.
Чтобы декодировать поток от есу нужно одновременно контролировать время, за которое идет передача по уарту, отслеживать паузы в потоке, после этого проверять содержимое принятого в уарт, определять, что этот поток идет с трансивера, и после этого уже можно декодировать весь обмен между трансивером и логом. На это Вам потребуется пара таймеров, один из которых измеряет время передачи байта, а другой измеряет таймаут перерыва в передаче, а также приемный и передающий уарт, обслуживаемый только по прерываниям, кроме того необходимо использовать еще внешнее прерывание для распознавания и трансляции входящего потока с компьютера.
Евгений все описание конструкции выкладывал здесь на сайте.
Мне показалось, что идеология этой вещи не предполагает создание машины прерываний
Очень даже предполагает прерывания. У меня (новая версия декодера ) работает используя прерывание от аппаратного таймера например. Но сам декодер реализован только для Кенвуда и Айкома. СДР-ы тоже можно добавить, но пока тестировать нет возможности, так как нет ни СДР трансиверов, ни FT-857.
Для простых людей не программистов, Ардуино это самое то, что нужно )))
Или в пассивном режиме , слушаете логгер на предмет посылки последовательности 0x00,0x00,0x00,0x00 ,0x03
и если такая посылка прошла , то уже слушаем трансивер, что он нам ответит.
как?
пином RX ардуино подключается либо к компу, либо к трансиверу
как?
Имелось ввиду использование двух сериал интерфейсов, один подключен к компу, другой к трансиверу.
Между этими интерфейсами гуляет трафик от трансивера к компу, и от компа к трансиверу, ну а Вы нужную информацию отлавливаете и декодируете.
Если нет второго уарта, то тогда только SoftwareSerial библиотека поможет.
Имелось ввиду использование двух сериал интерфейсов, один подключен к компу, другой к трансиверу.
Между этими интерфейсами гуляет трафик от трансивера к компу, и от компа к трансиверу, ну а Вы нужную информацию отлавливаете и декодируете.
Если нет второго уарта, то тогда только SoftwareSerial библиотека поможет.
а
ну так да, без вопросов
Кукин Николай Николаевич
25.05.2016, 18:56
Имелось ввиду использование двух сериал интерфейсов,
............
Если нет второго уарта, то тогда только SoftwareSerial библиотека поможет.
Для обработки потока, поступающего с компьютера и ответов трансивера на команды лога не надо двух сериал интерфейсов. Достаточно ОДНОГО аппаратного уарта в микроконтроллере.
Это было уже давно реализовано еще UT1WPR (увы, ныне SK).
Механика предельно проста. Передающий вывод сом-порта компьютера подключается на вход ноги внешнего прерывания процика INT0 или INT1. Передающая нога уарта процика подключается к приемной ноге сом-порта трансивера. Выходная нога сом-порта трансивера цепляется одновременно на приемную ногу уарта и компьютера.
По работающему внешнему прерыванию дергается выходная нога уарта процика в такт перепадам уровней с сом-порта компьютера. Так осуществляется трансляция всего потока в трансивер из компьютера. Задержка в передаче уровней с входа INT0(1) на выходную ножку TX уарта составляет порядка одной микросекунды, что вообще никак не влияет на качество передачи. Одновременно с этим делом процик знает, что лог управляет трансивером и ему не надо вмешиваться в трафик, он только слушает ответы трансивера, распознает там ответ на частоту и декодирует ее. Если в течении 1-2 секунд на входе внешнего прерывания не будет перепадов уровня, это для процика означает отсутствие подключенного лога и он включает свой уарт на передачу и сам начинает запрос частоты у трансивера. При этом еще приходится процик держать за шкварник, так как скорость, с какой он может задолбить трансивер командами просто поражает.
В случае с кенвудом и sdr все прозрачно. С айкомом тоже достаточно просто,для него INT0(1) уже не нужно благодаря особенности схемы подключения, но там сначала надо, чтобы был предусмотрен режим автоматического определения сетевого адреса подключенного айкома с сохранением его в памяти процика. После этого чтение протокола не составляет труда.
В случае с есу857 приходится еще дополнительно с использованием таймеров отсчитывать время побайтной передачи и ловить паузы в передаче трансивера на запросы лога. Кроме того, считать байты переданные трансивером в пакете ответа и анализировать байт, идентифицирующий частоту.
Таким образом в такой схеме не надо никаких переключателей компьютер-трансивер, при подключении лога к работающей системе процик-трансивер, автоматом передается управление логу и автоматом управление обратно передается процику в случае прекращения запросов с компьютера. И, самое главное, все работает!
Передающий вывод сом-порта компьютера подключается на вход ноги внешнего прерывания процика INT0 или INT1. Передающая нога уарта процика подключается к приемной ноге сом-порта трансивера. Выходная нога сом-порта трансивера цепляется одновременно на приемную ногу уарта и компьютера.
для этого придется хакнуть ардуину
Достаточно ОДНОГО аппаратного уарта в микроконтроллере.
У меня их просто 4 штуки аппаратных, поэтому я пошел по "экстенсивной технологии" :smile:
Таким образом в такой схеме не надо никаких переключателей компьютер-трансивер, при подключении лога к работающей системе процик-трансивер, автоматом передается управление логу и автоматом управление обратно передается процику в случае прекращения запросов с компьютера.
Да, по похожему принципу и у меня сделано, переключение работы с логгером, и без логгера происходит автоматически.
У Вас выше весьма оригинальное решение описано с декодированием есу857 .
Добавлено через 5 минут(ы):
Классное решение у Вас в наличии автоматического определения модели Айкома по ci-v адресу, так как айкомов просто огромное колличество, и перебирать все просто очень долго.
Кукин Николай Николаевич
26.05.2016, 09:47
Классное решение у Вас в наличии автоматического определения модели Айкома по ci-v адресу, так как айкомов просто огромное колличество, и перебирать все просто очень долго.
По айкому. Тут ничего пионерского нет.
При отработке протокола айкома отсюда: http://www.radiodv.net/my_icom_civ.php были украдены исходники, но после прочтения/изучения практически все было переделано под требования разрабатывавшейся конструкции, часть было выкинуто, часть добавлена, что-то упрощено (например, автоматическое определение скорости работы сом-порта выкинуто за ненадобностью). Исключена возможность "широковещательного" режима айкома. Запоминание ограничено одним адресом, т.к. не слишком часто меняем трансивер на столе.
По есу857.
Есть еще как минимум два способа, как с помощью одного сом-порта работать с протоколом есу. Оба они требуют чтение и анализ входного потока с компьютера. Один вариант - это когда по активности на ноге INT0(1) происходит переключение приемной ноги аппаратного уарта с трансивера на прием с компьютера с помощью какой-нибудь логики типа 155ЛА3. При этом используются аппаратные возможности процика и анализируется, а чего же хочет компьютер. При таком способе требования к использованию таймеров уменьшаются, однако полностью не исключаются.
Другой вариант - на базе INT0(1) создавать второй софтовый уарт с использованием еще одного таймера для контроля скорости передачи уарта. Такая работу вообще была принята без энтуазизма, и сначала мы с Евгением отрабатывали протокол с переключением входа уарта. В результате непрерывного отпиливания лишнего получилось то, что получилось без аппаратных извратов.
Николай Николаевич, здравствуйте!
С этой работой.... сами понимаете)))))
Совершенно мимо прошел от меня Ваш проект по этой теме)))) 39 страница, пост 382. Очень понравилось. Но задумки немного другие, второй день опять "размусоливаю" тему для себя, время, вроде, должно появиться)))) (с трудом верится, но )))). А можно исходники того проекта? Они, как я понимаю, в Си.))))
Созрело более-менее универсальное устройство. Суть заключается в том, что немного переделываем Ваше))) Остаются два регистра- 16 выходов за глаза))) Но добавляется:
1 4 "ноги"- BCD по типу есовского. Кому не нужно много комбинаций на регистрах- их просто не паяют, на эти 4 "ноги" вешается обычный двоично-десятичный дешифратор с ключами на выходах и т.д. Кому надо- загоняют эти выхода на управление РА или то и другое вместе.
2 Используем еще 2 "ноги" Одна вход от РТТ, другая с задержкой- выход РТТ- это на усилитель. Да и мало ли)))
3 Тут эти 2 регистра. Вот тут и имеем разбивку диапазонов на участки, тут и нужно входящее РТТ.
4. Еще одна "нога"- вывод моды. А почему бы и нет?)))
"Съели" 10 ножек. Думаю, что флеша займет около половины. Пару повороток можно запихнуть с некоторыми наворотами.)))
Где-то тут проскочило, что для реализации алгоритма "подслушки" в Ардуино надо её "хакать". А зачем? Для шинки ТХ в сторону трансивера надо использовать другой вывод. Не тот, где штатный UART. Штатный используется со стороны компа. Вывод макса 232 который от трансивера в сторону компа вешается вывод ТХ ардуинки. А остальное- как у предложил и реализовал Виктор. Библиотеку серийника надо будет перелопачивать немного. А может, и не надо. Не смотрел. Да и не программист я)))
Кукин Николай Николаевич
14.06.2016, 10:28
Александр, посмотрите личку.
Николай Николаевич, видел)))) Отвечу завтра. Вымотался на работе последние несколько дней!)))) Дома почти не бываю.)))
еще на прием и передачу выбираются разные антенны
надо только PTT от трансивера к декодеру подключить
наконец то многострадальный прототип обрел покой в корпусе
296589 296590
6 лет прожил собранный на соплях на куске пластика :ржач:
(и, кстати, ни разу не глюкнул)
Пассажир
17.09.2018, 08:39
Вот здесь тоже интересный бенд кодер: http://radio-zavalinka.ucoz.ru/publ/bandcoder_v1_0/1-1-0-15
Работает с разными протоколами. Один минус нет никакой информации об этом проекте(схемы, прошивки).
Один минус нет никакой информации об этом проекте(схемы, прошивки).
Сейчас развожу плату своего варианта бенд декодера для кенвуда, если мне самому понравится его окончательный вид и работа, то выложу в этой теме прошивку.
Сам бендекодер выпонен как часть (дополнение) к интерфейсу комп-трансивер. Возможно опционально добавлю cw-ключик туда, но он там не сильно то и нужен, разве чтобы перебивать передачу CW из програмы логгера по линии DTR. Вход частоты в формате кенвуд, выход в формте Yaesu BCD , собственно на реле антенного коммутатора, и опционально в формате ICOM бродкаст. Также дотачивается опциональный секвенсор для задержек реле трансивер-усилитель-антенный коммутатор, но еще не все мне нравится в его работе.
Черновик схемы во вложенном файле. Пока частично схема смакетирована и работает. Интерфейс для кенвуда будет только один, это rs-232 скорости две 9600 и 115200. Гальваническая развязка от компа есть.
В общем декодер для Кенвуда собран. Пока вроде все работает, продолжаю тестирование.
299154
Короткий видео обзор платы -
www.youtube.com/watch?v=JbbZgt6pCY4& feature=youtu.be
В ходе проверок работы, нашел у себя ошибочку в схеме, а именно, не инвертируется сигнал DTR. Саму работу декодера это не затрагивает, но из-за этого неправильно работает манипуляция CW из логгера.
Поэтому, чтобы не переделывать плату, это легко устраняется перепрограммирование м микросхемы FT232RL.
1) Ставим драйвер для FT232RL под свою виндовс (32 или 64 бит)
2) Скачиваем и запускаем утилиту FT_PROG (чтобы не запутаться , оставляем подключенной к компу только одну FT232RL)
3) Находясь в окошке программы FT_PROG нажимаем F5 , и мы должны увидеть следующее окошко, где в меню нужно включить инверсию сигнала DTR
4) Запрограммировать FT232RL нажав CTRL+P
После, вытащить девайс из юсб, и снова подключить к юсб. Теперь сигнал DTR будет инвертирован и CW манипуяция из логгера будет нормальной.
299331
Саму утилиту можно скачать с офф. сайта - https://www.ftdichip.com/Support/Utilities/FT_Prog_v3.6.88.402% 20Installer.exe
Добавлено через 15 минут(ы):
По схеме (пост 592) - http://www.cqham.ru/forum/showthread.php?9366-BandData-decoder-%E4%EB%FF-Kenwood&p=1564349&viewfull=1#post15643 49
Компоненты J3, C45, c38, R40, U10, BF1, R53, U8, R45, R50, R51 можно не паять, так как в данной версии платы и прошивки они использоваться не будут.
I2C OLED экранчик покупал тут - https://ru.aliexpress.com/item/1pcs-0-96-blue-0-96-inch-OLED-module-New-128X64-OLED-LCD-LED-Display-Module/32643950109.html?spm =a2g0s.9042311.0.0.2 74233edJ2mUFh
Прошивка во вложенном файле (скорость CAT по умолчанию 9600)-
Есть лишние платы (3 шт) этой версии бенд декодера, размером 100 на 70 мм, заводского изготовления. Кому нужно, то обращайтесь в личном сообщении.
Вот здесь описание (http://www.ra0sms.ru/p/automatic-band-decoder.html) моей версии Band Decoder для трансиверов с протоколом Kenwood.
Смотрю тема замолчала три года назад, а жаль, появился вопрос. Если ещё кто из обсуждающих эту тему здесь просматривает то отзовитесь. Я пишу программу для ардуино с возможностью вести журнал связей, моя конструкция на меге с компом через USB и сериальную программу SerialMonitor_x64_1_ 7_1 работает, вручную подсовываю данные считанные с маламута-читает на ура. Маламут тоже по CAT работает, а вот напрямую соединяю мегу с маламутом по USB, посылаю запрос(IF;), а трансивер молчит. Всё что мог сделал, но пока результата нет. Может кто что подскажет.
Для кенвуда все сообщения заканчиваются символом ;
Запрос отсылается так IF; FA; FB; и т.д.
У айкомов окончание данных заканчивается как $FD
Спасибо за ответ. Там почему-то в моём сообщении после IF смайлик вставился, а я там печатал IF;. Из полученных данных выделяю частоту и моду. Но работает это только с сериальной программой, а миаламут на запросы не отвечает. Такое ощущение, что не устанавливается связь по USB между мегой и трансивером. В маламуте USB сделан прямо на STM, от гнезда сигналы через резисторы 33 Ом и BAV-99 идут прямо на порты проца. У меня вместо BAV-99 применены BAT54S, а они шоттки, может они сигналы "сажают", хотя с компом всё работает.
У ардуины скорость по USART задаётся в меге.
CH340 преобразователь. Проблема может быть в железе.
Нужно у Евгения R3DI спросить как сделан обмен. Возможно устройства не могут договорится на какой скорости общаться им или что то для подтверждения нужно что подключение есть но ардуина этого не шлёт.
Нужно чем то посмотреть - логическим анализатором или программой free serial monitor взяв ещё одну ардуину и подключится к основной "перекрёстно" используя её как переход RS232/USB что там в запросах/ответах.
Powered by vBulletin® Version 4.1.12 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot