Проект №1 (A.A.)

Проект №1 (в разработке): реплика RPN-калькулятора типа MK-61 в форм-факторе стандартного девятнадцатикнопочного нумпада. Индикаторная панель: семисегментные индикаторы разрядов + индикаторы режима работы. Возможность исправления последней введенной цифры. Возможность подключения к ПК как hid-устройства и передачи результата вычислений поразрядно.

Комментарии

Нельзя ли поподробнее? На нашем сайте это давняя и животрепещущая тема, к реализации которой желающие присоединиться найдутся.

Буквально несколько слов.
Первое: проект, конечно же, некоммерческий. Причины: сейчас на рынке подержанные калькуляторы типа МК-61, МК-56, МК-52 продаются по ценам ниже себестоимости и ниже себестоимости любых реплик. При желании и настойчивости можно приобрести за 200-300 руб.
Второе: если речь идет о любительском коллективном интересе, то стоит обсудить некоторые стандарты, например, раскладку клавиш. У ПМК их тридцать, у нумпада 19. Я в отдельном комментарии изложу свои соображения по поводу раскладки.

На мой взгляд, клавиши 0-9, +, -, /, * используются как есть. BackSpace - отмена предыдущего символа. Enter - Cx (а в одном из дополнительных режимов - передача результата). На управление режимами остаются 2 клавиши - NumLock (иногда это Tab) и "двойной 0" (00).

Есть несколько вариантов их использования:
(1) обе клавиши для переключения режимов (как азбука Морзе, каждому режиму - своя последовательность наборов нажатий управляющих клавиш).
(2) одна для переключения режимов набора (типа F,K), другая для переключения АВТ/ПРГ

Кроме того, для дополнительных режимов можно использовать принцип, применяемый в кнопочных телефонах: одно,двух и трехкратное нажатие одной клавиши (0-9 и арифметических операций) приводит к вводу разных символов/команд.

Есть еще один, на мой взгляд привлекательный вариант.
Версия первая: NumLock - открывающая скобка, Enter - закрывающая. Всё, что между ними, - код команды. В этой схеме даже кнопка 00 не особо нужна.
Версия вторая (аналог Alt-последовательности на ПК): все, что набирается при прожатой кнопке NumPad - код команды. Кнопка 00 опять свободна.

Тема очень интересная. А можно несколько изображений, если есть, для полноты картины?

Пока проект не завершен, даже не на стадии реализации, а на стадии разработки. Хочется вначале семь раз отмерить, потом один раз отрезать.

И моя точка зрения, начинка может меняться, например, увеличиваться разрядность, это первое, что приходит на ум. Неизменной же останется система команд, которая может расширяться, но не может изменяться. Я поясню почему. Большинство молодых людей (школьников, студентов) вообще ничего не слышали про RPN, Для них вопрос, зачем она нужна, вполне естественный. Другое дело, когда человек уже обучен на кружке или на каких-то еще занятиях вычислениям и составлению программ для RPN-калькуляторов. Тогда он будет стремиться развиваться дальше. А это значит, что система RPN-команд, которой его обучили - фиксированная, по мере возможностей универсальная. И команды МК-52/61 - самый удачный вариант, потому как этих калькуляторов довольно много.

Теперь посмотрим на нумпад (цифровой блок). У него уже заданы ограничения. В базовой версии 19 кнопок (иногда 18, но таких сейчас все меньше и меньше). Есть уже нумпады-калькуляторы, но простейшие, непрограммируемые. И не RPN.

Хочется сразу же задать самый оптимальный перевод клавиш ПМК на язык нумпада. И по возможности выработать и обосновать стандарт.

Помимо F и K кода нет у клавиш ШГ→ и ШГ←, а также у комбинаций F CF, F АВТ и F ПРГ. Вводить код можно, если есть 16 клавиш. Но это крайне неудобно, например, для тригонометрии.

В теории можно, конечно, даже поддерживать в ОЗУ копию «настоящей» клавиатуры, которую и скармливать полному эмулятору. Но чем ближе она к родной, тем проще будет владельцу этого ПМК. Первоначальная идея о корпусе МК-56 с начинкой от МК-61 намного привлекательней.

Если брать родное железо от МК-61, то клавиша BackSpace точно не получится. При эмуляции же можно хранить несколько предыдущих состояний, откатываясь к ним по BS.

Переделка МК-56 - это совсем другая идея. Наверняка, кто-то это уже делал, поскольку само просится. Есть поломанные МК-56, у них внутренности выходят из строя чаще, чем корпус. Корпус практически вечный. А есть битые МК-61, с поврежденным корпусом (все, что мы держим в руках, когда-нибудь из них падает), а чаще просто с вышедшими из строя кнопками. И проще расположить начинку МК-61 в корпусе МК-56, чем восстанавливать сам МК-61.

Кроме того, реплики-симуляторы МК-61 лучше, на мой взгляд, делать именно под корпус МК-56. Но это другая тема.

Если речь идет RPN-калькуляторе в форм-факторе нумпада, то мне лично нравится больше всего такой вариант ввода действий:
команды можно вводить двумя альтернативными способами, первый годится и для 18-клавишных нумпадов - нажимается < NumLock >, затем код команды (это все-все, кроме цифр и арифметических операций, в том числе и операции работы со стеком, и смена режимов АВТ/ПРГ, и ШГ, и вызов функций), затем < Enter >, например, < NumLock ><1><2><7>< Enter >. систему команд можно расширять до бесконечности, если будет нужно. Но все команды придется учить. Тем операциям. у которых в Мк-61 не было кода, придется его присвоить.
Второй вариант только для 19-клавишных нумпадов - он для тех, кто привык к alt-послдовательностям: вначале прожимается "00", потом вводится код команды, потом "00" отжимается. По своему опыту могу сказать, при быстром наборе у меня иногда alt-отжимается слишком рано и последний символ выходит из alt-последовательности, но у кого-то набор идеальный и этот вариант понравится больше.

Учить команды норм. Учить номера команд (коды операций) это слишком сурово. Даже на советских ПМК не каждый без таблиц мог назвать код, скажем, арктангенса. А сейчас народ куда менее фанатичный.

Что может помочь, так это ЖКИ с подсказкой. Которая всплывает по нажатию хоть 00, хоть NumLock и помогает выбрать клавишами сперва группу функций, а потом и саму функцию. Нечто вроде программных клавиш и системы меню HP 50g.

Учить команды норм. Учить номера команд (коды операций) это слишком сурово.

Полностью согласен

Типа такого?

У нас обсуждалась идея реплики с полным соответствием клавиш, некий "МК-61 gold", с ЖКИ и питанием от одной-двух батареек-таблеток типа CR2032 и возможностью перепрошивки. Я бы лично такой приобрел с удовольствием.

Если делать МК-61 gold на основе эмулятора, в нём лучше расширить память программ до 112 шагов (00…L1), добавить регистр F и нововведения Сергея Фролова, в том числе связь с ПК через USB.

Дисплейчик лучше ЖКИ поставить. Можно даже отечественный от МК-161, чтобы иметь возможность хранить программы на внутреннем «диске» под именами, а не адресами.

В идеале можно в прошивку включить текстовый редактор и компилятор с метками. Если взять из colorForth предварительную компиляцию, исходный код программ редактор сможет будет хранить очень компактно (ИП0 как байт 60), а вводить теми же клавишами, что и в режиме F ПРГ.

Да, было такое обсуждение. Я бы тоже не прочь заиметь такую реплику МК-61. Как владелец DM42 говорю :)

Сейчас вспомнилось, что я примерно такого ожидал от МК-161, когда мы тут были в предвкушении выхода этой модели.

Если оптимизировать цену изделия, я бы все-таки взял за основу обычный 19-разрядный нумпад. Например, DEXP CN-3003, CN-6001 или аналоги. По крайней мере, верхнюю крышку с клавиатурой, она уже готова и доступна. Есть место для размещения индикаторной панели. Проверил сейчас цены - 150-200 руб. Наверное, с aliexpress будет еще дешевле.

А, может, заморочнуться с чем-то наподобие такого калькулятора с Aliexpress? Форм-фактор привлекательный и удобный. Этот калькулятор рассчитан на питание от одной ААА батарейки, что есть гуд.

Если даташит на экран не найти, то выкинуть его и вставить любимый всеми ардуинщиками алфавитно-цифровой 16x2. На этом форуме мы неоднократно пытались выдать самоделки с таким экраном.

Примерный вид - только проводной.

C aliexpress. Но это двадцатитрехклавишный с 12-разрядным дисплеем. Встроен простенький непрограммируемый калькулятор.

Дело вкуса, конечно, но такой дизайн МК61 сложно назвать репликой. Мне лично не очень интересно, опять же, это дело вкуса

Насколько я правильно понял, идея набора на девятнадцатиклавишном нумпаде кодов, соответствующих более многочисленным клавишам ПМК Электроника-61 в разных режимах, не вызывает энтузиазма. Лично мне выучить, пусть и не сразу, несколько десятков кодов на устройстве, которым планируется пользоваться очень часто, довольно просто. При наличии небольшой подручной таблички процесс обучения становится необременительным. Кроме того, при необходимости всегда можно изготовить конкретный экземпляр устройства со своей уникальной системой кодов.

Пока я, наверное, буду сам реализовывать именно этот вариант в силу простоты его реализации. Если все получится, думаю, можно будет продумать реализацию RPN на более сложных гибридах нумпада и ПМК (с примерным внешним видом как, например, у Targus PAUK001 со стандартными кнопками нумпада + дополнительными кнопками калькулятора).

А чем плоха идея разместить эту табличку внутри самого ПМК, выводя её как меню?

Например функция 12 «косинус» набирается на клавиатуре, как Ф12. При нажатии Ф даётся подсказка, где в частности указано, что 1 это тригонометрия. При нажатии 1 появляется уже другой экран, где 2 отвечает за косинус.

Конечно, эту систему можно доработать до совместимости с МК-61, где косинус это 1D или 1Г.

Так тоже можно, но это дольше. Весь вопрос в том, зачем вообще нужен нумпад-калькулятор. Например, если мне нужно проделать сложные расчеты в какой-либо вычислительной задаче, относящейся к реальной жизни, я это сделаю на МК-52 или МК-61. Нумпад-калькулятор нужен, когда необходимо вводить результаты вычислений в какое-то приложение на компьютере или же в ту или иную форму в браузере. Это могут быть и адреса в БД, и пароли на сайтах, и ключи / последовательности ключей шифрования, какие-то другие расчеты, выполняемые довольно часто в большом объеме, требующие длинных чисел на выходе, но с типизированными и каждый раз стандартными действиями. При этом скорость работы с устройством имеет значение. Последовательность < NumLock ><1><8><5>< Enter > я пробиваю на автомате подобно alt-последовательности почти вслепую, а в меню мне придется всматриваться. Вообще автоматизация генерации ключей/паролей существенно снижает нагрузку на память. Запомнить несколько десятков кодов легче, чем дюжину шестнадцатиразрядных протоключей. А я весьма подозреваю, что с развитием технологий "умного дома" и "интернета вещей" потребность обеспечения безопасности будет только расти.

Все зависит от приложений. Если нужны действия, включающие в себя не только десятичные вычисления, а например, работу со смешанной символьно-цифровой (например, преобразования base26 - base36 - base64) информацией, то опять можно воспользоваться эмулятором калькулятора на изолированном планшете, где дополнительно стоят программы преобразования символьно-цифровой информации. И вот там меню как раз будут в самый раз. Скорость в этой ситуации не имеет значения.

Дольше программировать или дольше пользоваться?

Подсказка на индикаторе всего лишь облегчает изучение системы меню. Если комбинации клавиш уже выучены, вчитываться в меню на индикаторе нет необходимости. Можно даже предусмотреть программное отключение. Сам вывод меню достаточно шустр, чтобы не отнимать времени.

Другими словами, < NumLock ><1><8><5>< Enter > выбирает последовательно 1, 8 и 5 пункты вложенных меню. При этом если владелец знает эту комбинацию наизусть, смотреть на индикатор приходится не больше, чем на клавиатуру при слепом 10-пальцевом методе печати.

Кто нибудь думал о таком варианте?
Их активно ковыряют ардуинщики, например на nrf51822 -Cortex-M0 256Kb/32Kb,32МГц, nrf52832 - Cortex-M4F 512Kb/64Kb,64МГц ...
Mecrisp-stellaris и эти контроллеры поддерживает.
или есть и такой проект Mecrisp Cube (C, Forth) http://spyr.ch/twiki/bin/view/MecrispCube/WebHome

P.S. Раздел изысканий по фитнес браслетам на 4pda https://4pda.ru/forum/index.php?showforum=862
изделие популярное и массовое с ценой от минимума (отдельно комплектуха дороже выйдет, а ещё её надо как то сдизайнить.)
Индикатор можно заменить на большего размера.

Надеюсь, народ с другими подходами тоже ответит. Мой подход за 10+ лет не менялся. Проект ПМК настолько не требователен к комплектующим, что может быть основан на отечественных запчастях. То есть русских, белорусских, украинских в первую очередь. Если что выпускает внезапно Туркмения или Казахстан, тоже интересно. :-)

К сожалению, за эти 10+ лет было обнаружено неприятное свойство отечественных продуктов. Ими сильно интересуются русские спецслужбы, почему-то считающие себя «патриотами», что приводит к самоизоляции таких проектов внутри узкой тусовки путинской агентуры — а у производителя возникает характерная ненависть ко всем соотечественникам, кто не толпится в этой лжепатриотической околовластной кормушке.

Даже если изначально проект некоммерческий, как МК-161, он мутирует в «независимость от» покупателей. То есть к мнению владельцев ПМК производитель быстро перестаёт прислушиваться, ведь доход от нас это «плохая рыночность», а сверхдоход тех воров, кто охамел настолько, что переписывает под себя Конституцию и разгоняет дубинками обманутых избирателей на Болотной — самая желанная морковка.

Тем не менее, желание использовать отечественную элементную базу есть. Даже если для этого придётся совместно с политиками переписать весь код производственных отношений в России. Всё равно существующий пока приводит лишь к очевидной деградации, по крайней мере за пределами военки.

Насчёт интереса российских спецслужб к отечественной комплектухе - в конце 2015 лично начал прорабатывать возможность организации ОКР отечественной ПЛИС - и даже вышел на военный завод, который подумывал это дело профинансировать. Разговаривал с Микроном, окупаемость даже военной приёмки была под вопросом. Соответственно звонил в ФСБ и Гостайну - местные ФСБшники были очень удивлены, но каких-либо явных ограничений с их стороны не было, да и Гостайна заявила о своей причастности только в случае применения задумываемой микросхемы в конечном изделии. В итоге моих похождений так ничего и не вышло, переговоры окончились ничем, но через почти год Миландр анонсировал разработку ПЛИС М1 собственной архитектуры и разработки.
Так что, наши органы либо слабо интересуются нашей комплектухой, либо делают вид что не интересуются.
З.Ы. Подробностей не будет.

Я больше про отношения между людьми, на примере МК-152 и МК-161. Как удалось собрать костяк сообщества, но бюджет на дизайн и рекламу были так себе и в массы калькулятор не пошёл. Производитель явно хотел не изучать и расширять свою аудиторию, а влиять на наши политические взгляды. Это уже прошлое, но на ошибках надо учиться.

По разработке ПМК будущего интересно как раз использование отечественного процессора. Если получится превратить новый ПМК в полезный и относительно популярный инструмент, он будет продвигать в массы процессор. Больше школьников и студентов, инженеров и самодельщиков научатся под него писать программы, что положительно повлияет и на другие проекты с этим процессором.

Если такого отечественного ЦПУ пока нет, имеет смысл уже начать его разрабатывать на основе ПЛИС. Так как когда созреет политическое решение или найдётся спонсор для выпуска камня, хорошо бы уже иметь отлаженный проект процессора, с написанной под него прошивкой.

Насколько я понимаю, стоимость выпуска камня это миллионы рублей. Валютных миллиардеров в стране теперь много. Момент, когда кому-нибудь из них будет интересно подтолкнуть родную промышленность и запомниться чем-то хорошим, однажды наступит. Но к нему надо быть готовым, иначе опять весь пар уйдёт в архитектуру Интел. Которая и без нашей поддержки прекрасно себя чувствует.

Российских процессоров, досягаемых для простого потребителя не так уж и мало. Есть такая игрушка - Raspberry Pi, микрокомпьютер на основе однокристального процессора, получившего бешеную популярность.
Отечественный производитель не ударил в грязь лицом и выпустил свой микрокомпьютер MB77.07 имевшего помимо лицензируемого ARM1176 ядро нейропроцессора собственной разработки NMC3, который в свою очередь у нас лицензируют японцы.
Не смотря на доки по нейропроцессору и отлаженные минимальные прошивки, я не могу сказать, что любители сильно им заинтересовались. Всего-то с аппаратом плотно работали человек десять. Доки на процессор, правда, выдавали под NDA... Недавно Модуль как очнулся от сна и выложил документацию в свободный доступ, но поезд ушёл.
Кстати, в каком-то вузе лабораторные работы по нейропроцессору на микрокомпьютере делают - мне преподаватель писал, что студенты намучались с ним, примеров мало.
Не собираются сейчас сообщества. Просто некому стало программировать. Специалист как правило не будет связываться, аргументируя бесперспективностью аппарата на бытовом уровне.

Платка приятная. Но, судя по питанию 12 Вт (5 В, 2.5 А), это больше для настольного ПМК. Есть ли вариант К1879ХБ1Я для малопотребляющих устройств?

Очень не хотелось бы связываться с ARM. ПМК это проект, продолжающий полностью отечественную архитектуру. Операционка пишется с нуля (учитывая, конечно, опыт МК-61 и МК-161), так что выгоды от уже существующих разработок под ARM мы не получим, а его высокая производительность избыточна. Обработка телесигнала на первом этапе не нужна. Нам бы обработку звука отточить и отладить — уже хорошо.

Конечно, если полностью отечественной архитектуры нет и всем лень экспериментировать с FPGA, можно и ARM. Но вопрос с энергопотреблением для карманного ПМК важен. Если перспектив в этом направлении нет, то и двигаться в такую сторону не стоит.