![](http://rm9wy.ru/cutenews/uploads/blog-img/thumb.photo_2022-11-07_13-49-42.jpg)
Вот решил сделать такой на пробу. Хоть и не люблю я пики, и закрытые (без исходников) прошивки*, но тут привлекла массовая повторяемость, возможность передавать с клавиатуры, 4 ячейки памяти и возможность уходить в сон, что позволяет питать устройство от маленькой батарейки долгое время. Испытаю - будет видно! На печатной плате заложено много избыточных плюшек, наверняка не все буду использовать, но пусть будет! начато 07.07.2022
![](http://rm9wy.ru/cutenews/uploads/hp8/t.photo_2024-07-09_19-25-05.jpg)
![](http://rm9wy.ru/cutenews/uploads/add/t.photo_2024-08-03_13-07-28.jpg)
09.07.2024 Очень неторопясь продвигается строительство корпуса под эту конструкцию. Такими темпами, через пару лет завершу!
03.08.2024 Еще чуть обновил корпус - добавил ключик!
* - Справедливости ради скажу - автор всё-таки поделился исходниками прошивки. Интересно посмотреть на происходящее внутри!
![](http://rm9wy.ru/cutenews/uploads/blog-img/thumb.photo_2022-11-11_16-38-03.jpg)
11.11.2022 Поправив некоторые мелкие косячки в разводке дорожек печатной платы и "вкрячивания" переменного резистора, который удалось купить (рассчитывал на другой тип, но в продаже их нет, а ждать месяцы из китая невтерпёж), ключик в общем то запустился. Проблемой оказалась придуманная мною система питания процессора напряжением от резисторов подтяжки трансивера SW2013mini. А там подтяжка только 3,3 вольта.. И запаса энергии на электролите хватает на 3-4 точки или на пару тире... Попытка увеличить электролит на порядок кардинально ничего не меняет, хватает на символ - другой, а потом пищит, но трансивером уже не управляет... И львиную долю энергии сжирает светодиод индикации передачи. А отказываться от "красот" индикации не хочется. Буду придумывать варианты дальше... Самое простое - чуть модифицировать трансивер, развязав цепи ключа и 3,3 вольтового процессора трансивера диодиками и добавить резисторы подтяжки на 5 вольт, и сопротивлением чуть поменьше, чтоб обеспечить ток порядка 3-5 миллиампер (платка потребляет порядка 2,5 мА при нажатии ключа).
![](http://rm9wy.ru/cutenews/uploads/blog-img/thumb.photo_2022-11-17_11-49-10.jpg)
![](http://rm9wy.ru/cutenews/uploads/blog-img/thumb.photo_2022-11-17_11-49-14.jpg)
17.11.2022 Поменял электролит на ионистор, чтоб запаса энергии было поболее. Я в тестах не работаю, большого запаса не нужно.. Но тока через резисторы подтяжки всё равно мало, заряд ионистора идет оооочень долго и напряжения не хватает для устойчивого зажигания светодиода и открывания ключевого транзистора. Поэтому всё таки переделал подтяжку цепей ключа в трансивере на 5 вольт. Пришлось добавить два развязывающих диода и пару 1Ком резисторов на 5 вольтовую подтяжку. Сразу стало веселее! Ключ заряжает ионистор примерно 30 сек, а далее можно работать! При этом заряда ионистора в 0.3 Ф хватает для работы ключа даже через паузу в несколько дней.
P.S. При рассмотрении дорожек печатной платы миника выяснилось, что ключ подключается к микроконтроллеру через фильтры из резистора в 100 Ом и конденсатора в 0.01 мкФ, которых в принципиальной схеме трансивера нет... UPD - есть, я слепошарый...
![](http://rm9wy.ru/cutenews/uploads/blog-img/thumb.photo_2022-11-23_20-25-51.jpg)
23.11.2022 Добавил контроллер зарядки аккумулятора. Осталось найти очень миниатюрный Li-Po аккумулятор, желательно влезающий в оставшееся место. Ёмкость чем меньше тем лучше, ибо потребление крошечное, а при работе с клавиатурой всё равно придёться питать от внешнего источника через то-же mini-USB гнездышко, что и при зарядке. Так-же заменил резистор, регулирующий ток зарядки, на 10 кОм - максимальный, допустимый в даташите на микросхему 4056 для минимального тока зарядки в 250 мА.
p.s. Кондюк - временный эмулятор аккумулятора, без него контроллер сходит с ума. Вполне возможно, в итоге, придётся добавить небольшой электролитический конденсатор на постояннку.
PPS В одной из публикаций наткнулся на даташит с несколько отличающейся табличкой выбора зарядного тока:
- 30 кОм: 50 мА
- 20 кОм: 70 мА
- 10 кОм: 130 мА
- 5 кОм: 250 мА
- 4 кОм: 300 мА
- 3 кОм: 400 мА
- 2 кОм: 580 мА
- 1,66 кОм: 690 мА
- 1,5 кОм: 780 мА
- 1,33 кОм: 900 мА
- 1,2 кОм: 1000 мА (по умолчанию)
Надо будет померять, как реально обстоят дела с этим параметром!
![](http://rm9wy.ru/cutenews/uploads/blog-img/thumb.photo_2023-10-07_16-38-46.jpg)
07.10.2023 Не прошло и года, как удалось раздобыть разъёмы PS/2 на плату. Чуть чуть не подошли отверстия - футпринт под гнездо делал сам, доли милиметра не сошлись, и в итоге гнездо не ставится. Пришлось рассверливать отверстия и дремелем корректировать посадки под силовые плоские выводы экранирующего корпуса. Но это но это несложно. Проблема в том, что на клавиатуру нет никакой реакции. перепроверил разпиновку выводов - всё верно. С форума - UY1IF : "Собирал и версию с клавиатурой (не себе). Все работало. Уже не помню всех нюансов, но клавиатура подходит далеко не любого типа. Нужна более старого образца по-моему." Следуя совету, перепробовал пока две найденных заведомо рабочих клавиатуры. Пока не победил...
![](http://rm9wy.ru/cutenews/uploads/blog-img/t.photo_2023-10-25_12-02-47.jpg)
25.10.2023 Заработало! Во первых, оказались перепутаны дорожки clock и data, идущие на PS/2. Разбираться лень, я прошляпил при разводке платы, или на схеме ошибка. Пришлось порезать дорожки и поставить перемычки. Во-вторых, обнаружилась хитрая особенность взаимодествия кейера и клавиатуры - после подключения клавиатуры надо обязательно обресетить процессор, в противном случае с клавиатуры вместо отдельных символов передаёться какая то дичь! Поскольку по задумке автора, на кейере выключателя питания не предусмотрено - вместо этого контроллер отправляется в глубокий сон, пришлось добавить кнопочку reset, принудительно дергающую 4 ногу процессора, ну и не забывать после подключения клавиатуры нажать на эту "волшебную" кнопочку! Поправил свою версию печатки на будущее. Осталось довести до ума придуманный мною совмещенный вариант управления ключём и возможностью подключения в это же гнездо наушников для тренировок по работе на ключе. Туда же можно подключить УКВшку для использования в качестве маяка - будет возможность управлять ее включением на передачу и подавать туда звуковую модуляцию при нажатии на ключ. Точнее, это все работает, надо лишь подобрать некоторые номиналы резисторов для необходимых уровней звука.
Картинка обновлённой и справленной версии платы с моими доработками справа. Плата так же односторонняя с некоторым количеством проволочных премычек. Можно сделать вместо перемычек второй, верхний слой проводников. Два вариантных места под звукоизлучатель. Два варианта питающего мини-USB разъема - на плату и использование зарядника для Li-Po аккумулятора. Возможность питания от цепей поддтяжки ключа трансивера (разумеется без PC клавиатуры), необходимо установить ионистор. Возможность питания от часовой 3х вольтовой батарейки (опять же без PC).
В дальнейшем, если получится перекомпелить авторские исходники, попробую внедрить передачу паузы с клавиатуры по предложенному на одном их форумов рецепту. Инфа чуть ниже. Жаль, свободного времени всё меньше и меньше...
![](http://rm9wy.ru/cutenews/uploads/hp8/t.photo_2024-07-28_14-38-13.jpg)
![](http://rm9wy.ru/cutenews/uploads/hp8/t.photo_2024-07-28_14-38-28.jpg)
![](http://rm9wy.ru/cutenews/uploads/hp8/t.photo_2024-07-28_14-38-24.jpg)
28.07.2024 пока только промежуточные фотки.
![](http://rm9wy.ru/cutenews/uploads/add/t.photo_2024-08-03_13-07-28.jpg)
![](http://rm9wy.ru/cutenews/uploads/add/t.photo_2024-08-03_13-07-38.jpg)
03.08.2024 Почти финальный вариант! Корпус обзавёлся встроенным выдвижным простейшим ключиком - реально, несколько раз затирал содержимое ячеек памяти, а ни ключа, ни клавиатуры под рукой нет. Вот и решил добавить текстолитовую "пилу" - для неторопливой записи в ячейки памяти вполне подходит. Ну а чтоб выступающая ручка не занимала место и так в переполненной мобильной сумке с трансивером, сделал коромысло ключа убирающимся внутрь! Первоначально была мысль сделать сенсорный ключик на специальный крошечных платках, но потом понял, что нечем (на самом деле, есть чем, но пока заморачиваться не стал) управлять питанием платок, а без этого потребление тока от аккумулятора в спящем режиме сильно возрастет, ну а ставить механический выключатель как то стрёмно!
![](http://rm9wy.ru/cutenews/uploads/add/t.photo_2024-08-08_16-49-50.jpg)
![](http://rm9wy.ru/cutenews/uploads/add/t.photo_2024-08-08_16-49-45.jpg)
![](http://rm9wy.ru/cutenews/uploads/add/t.photo_2024-08-08_16-49-40.jpg)
08.08.2024 Финальный вариан "кишок". Страшненько, но для своих целей (переписать содержимое памяти) вполне работоспособно! Ну и батарейку добавил, всякие "удаленные" питания от цепей подтяжки ключа оказались излишне капризными, а питать от внешнего ЮСБ неудобно.
Работа с ключом RU3GA --- инструкция от RU3GA
Запись в ячейку памяти
Нажимаем на нужную кнопку памяти и удерживаем её в течение 2 сек. Устройство передаст " WR " и перейдет в режим ожидания ввода буквы. При записи --- паузы между буквами распознаются автоматически. Для установки паузы между словами нужно сделать паузу в передаче на 2 сек , при этом ключ передаст " R " --- это значит , что он понял раздел между словами и переходит в режим ожидания дальнейшего ввода. Он ждет , пока вы не начнете вводить следующее слово. Так что в паузах между словами можно сходить выпить кофе и потом с новыми силами продолжить запись. За три буквы до окончания памяти ячейки тон передачи меняется --- это сигнал к тому , что пора заканчивать запись. Окончание записи --- нажатие на любую кнопку.
Исправления ошибок при записи
Если был введен ошибочный символ , то даем серию точек больше шести. Ключ передаст « R » , это обозначает , что он перешел в режим коррекции , далее он передает « LAST »+« оследнюю правильно введенную букву » и переходит в режим ожидания ввода текста. Если ошибка была на первой букве , то ключ передаст « LAST NO ».
Пример: надо ввести в память « CQ DE RU3GA » . При вводе получилось « CQ DI »… Даем серию точек и ждем , ключ передает « R », затем « LAST D » и переходит в режим ожидания --- вводим дальше « E RU3GA » и нажимаем на любую кнопку для выхода из режима записи.
Можно править не только последнюю букву, но и все предыдущие.
Пример: надо ввести в память « CQ DE RU3GA » . При вводе получилось « CQ NI »… Даем серию точек и ждем , ключ передает « R », затем « LAST N » и переходит в режим ожидания. Даем еще серию точек --- ключ передает « R », затем « LAST Q » и переходит в режим ожидания. Вводим « DE RU3GA » и нажимаем на любую кнопку для выхода из режима записи.
Воспроизведение из ячейки памяти –-- короткое нажатие на соответствующую кнопку ячейки.
Остановка воспроизведения из памяти --- нажатие на любой контакт манипулятора или "клоподав".
Отключение\включение самопрослушивания --- нажимаем кнопку 1 , затем , не отпуская ее , нажимаем кнопку 2 и удерживаем их около 4 сек. Ключ передаст « OFF » и отключит самопрослушивание. Для включения --- повторяем те же действия --- ключ передаст « ON » и включит звук. Эта опция "запоминается" --- при повторном включении останется нужный режим.
Включение режима «настройки РА» --- нажимаем 1-ую , затем 3-ую кнопки и удерживаем их в течение 4 сек. Отключение --- нажатие на манипулятор, "клоподав" или на любую кнопку.
Реверс манипулятора --- нажатие 1-ой, затем 4-ой кнопки и удержание их в течении 4 сек. Ключ передаст « REV » и сменит раскладку манипулятора на противоположную. Эта опция запоминается и при повторном включении --- будет нужная вам раскладка точек-тире в манипуляторе.
Работа с Ямбическим ключём с памятью+PC Keyboard
Собственно сам ключ по своим электрическим параметрам и функциональному назначению органов управления полностью идентичен предыдущей конструкции
Остановимся только на работе с клавиатурой от PC .
Передача с клавиатуры текстов на английском и русском языке ( переключение языка с помощью клавиши Caps Lock --- при переходе на латиницу услышите «EN» , при переходе на кириллицу услышите «RU»)
Буфер памяти --- 60 символов --- поэтому если ваша скорость набора на клавиатуре даже сильно превышает скорость передачи CW --- ничего страшного --- контроллер все поймет и передаст как надо.
F1-F4 --- полностью соответствуют кнопкам ключа 1-4 --- т.е вы можете записать в память с манипулятора на кнопку 1, а воспроизвести нажатием на F1 и наоборот..
Остановить передачу из памяти в любой момент можно клавишей ESC ( ну либо нажатием на манипулятор , «клоподав» или любую кнопку ключа --- читайте описание самого ключа по вышеприведенной ссылке )
Запись с клавиатуры в ячейку памяти начинается с комбинации клавиш --- LeftAlt + F* , где (*) --- номер ячейки от 1 до 4.
Заканчивается запись либо по заполнению ячейки 30-ю символами (за три символа до окончания памяти тон начнет меняться --- это сигнал к тому , что пора запись заканчивать), либо нажатием той же клавиши ячейки , куда вы пишете (например F1 ).
Самопрослушивание при записи --- работает.
При ошибочном введении символа при записи --- работает клавиша BackSpace
Клавиша «Space» работает --- т.е если вам нужно сделать пробел между словами в передаче при записи в ячейку --- нажимайте её
Как известно , в разных языковых раскладках кнопка «? - /» работает по разному, что весьма неудобно. В данном случае эта кнопка в обоих раскладках работает как «/» , а передача «?» производится через клавишу F9 (как в контестовой программе N6TR --- для меня это очень привычно , для многих других , надеюсь , тоже )
F10 --- самопрослушивание «on\off»
F11 --- настройка РА «on\off»
F12 --- реверс манипулятора
Ссылки на исходные материалы:
Автор таки поделился исходниками своих прошивок. "Для тех кто что-то хочет "прикрутить своё" - исходники обоих конструкций. Все делалось в связке MPLAB+PICC
В тексте программ вроде делал комментарии для себя, поэтому все должно быть понятно. Ну и не судите строго за код - я все ж не программер , а просто любитель
"
http://www.cqham.ru/forum/showthread.php?15688-CW-%EA%EB%FE%F7-RU3GA&p=1284873&viewfull=1#post1284873
Зачёт! (хотя вряд-ли буду что-то измениять. Но OpenSource - !!!) Спасибо!
Немножко выжимок с форумов для себя: (а то заметил, что инфа из интернета иногда исчезает...)
http://www.cqham.ru/forum/showthread.php?15688-CW-%EA%EB%FE%F7-RU3GA&p=501993&viewfull=1#post501993
Александр (RU3GA), свое время поправил в Вашем исходнике передачу паузы(пробела) с клавиатуры. Кроме того, функцию декодирования элементов при записи в память с пилы тоже пришлось подправить, так как не совпадали временнЫе задержки вначале и конце цикла декодирования. Видимо это из-за разной системы команд пиков и авров при обработке компиляторам у меня получались циклы разной длительности. Разбираться в ассемблерном тексте я не стал, просто добавил несколько скобок в исходнике. В Вашей версии прошивки видимо получилось все нормально после компиляции.
По поводу К1ЕЛ ключа – там тоже не все шоколадно (это только на мой взгляд). Во всяком случае, все его возможности по изменению длительности и соотношения знаков я не стал претворять в жизнь, хотя места в памяти ключа еще вагон.
Из залетов в тексте я сумел найти дополнительно к тем перечисленным выше моментам, только неверную передачу какой-то буквы, но это уже было Вами исправлено к этому моменту.Кроме того, что-то было еще и с обработкой клавиш стрелок и правой цифровой клавиатуры. Это тоже все сделал на конус.
В Вашей конструкции вижу только один недостаток, обусловленный реализацией псевдо-АЦП: это очень большая неравномерность изменения скорости передачи при вращении потенциометра. Мы с Виктором Николаевичем это обсуждали, когда он отрабатывал свой ключ на меге8. Он поступил самым простым путем – поставил резистор с характеристикой, компенсирующей эту неравномерность, а я менял в программе коэффициент пересчета скорости в зависимости от напряжения с АЦП. В Вашей конструкции изменить программно это будет сделать затруднительно, поэтому выход только как у Виктора.
Если у Вас еще не пропало желание подправить текст для реализации паузы с клавиатуры, скажите, куда послать исходник, там все отмечу, что правил.
Николай.
http://www.cqham.ru/forum/showthread.php?15688-CW-%EA%EB%FE%F7-RU3GA&p=502178&viewfull=1#post502178
Смею доложить, что при передаче с комповой клавиатуры Александр предусмотрел в оперативной памяти ключа кольцевой буфер на 60 байтов, поступивших с клавиатуры. Это немного меньше, чем 60 нажатий на клавиши клавиатуры (потому на одно нажатие и отпускание клавиши клавиатура генерит не менее 3 байтов) , но более, чем выше крыши, чтобы даже люди с сильно-сильно развитыми щу-пальцами на любой практически используемой скорости передачи не смогли его перегрузить. Другой вопрос, что если в этом буфере встретится код, соответствующий клавише «пробел», то реакция на этот код при передаче нулевая – этот символ просто пропускается, и начинается обработка следующего символа в буфере. Этот код обрабатывается только в режиме записи сообщения в одну из ячеек памяти, которых всего 4 по 32 знака. Тогда при воспроизведении из ячейки пауза между словами будет воспроизведена.
При передаче 25-35 слов по 5 знаков в минуту пауза между словами спокойно выдерживается без нажатия на пробел. Поэтому, на мой непросвещенный взгляд, Александр прав: - считать это косяком можно лишь с достаточной мерой условности.
Ну, а чтобы никто не мог бросить фразу типа «ну-ну, пилите Шура, пилите…»,
Александр, можно изменить функцию обработки буфера клавиатуры так:
void play_comp_keyboard()
{
if ( scan_code_letter <= 0x5F )
{
if ( scan_code_letter == 0x29) // Если "пробел"
{
//==================== ==================== ==============
if ( write_comp_flag)
{long_pause_flag=1;
write_mem_comp_keybo ard();
}
else
{
delay_element(speed) ;
delay_element(speed) ;
delay_element(speed) ;
delay_element(speed) ;
}
}//if ( scan_code_letter == 0x29) // Если "пробел"
//==================== ==================== ==================== =====
… и будет людям так необходимая пауза
Всякое на подобную тему:
- Табличка с кодировками некоторых символов. Не для этого ключа RU3GA !!!
![](http://rm9wy.ru/cutenews/uploads/blog-img/cw-code-table.jpg)