Динамическая клавиатура. Динамическая MIDI-клавиатура на микроконтроллере PIC16F84: особенности конструкции и программирования

Как устроена динамическая MIDI-клавиатура на PIC16F84. Каковы основные компоненты схемы. Как реализована чувствительность к силе нажатия клавиш. Какие функции выполняет программа микроконтроллера. Как сделать колесо pitch bend/modulation.

Содержание

Особенности конструкции динамической MIDI-клавиатуры на PIC16F84

Динамическая MIDI-клавиатура на микроконтроллере PIC16F84 представляет собой интересный проект для любителей электронной музыки и программирования микроконтроллеров. Давайте рассмотрим основные особенности ее конструкции:

  • Использование микроконтроллера PIC16F84 в качестве «мозга» устройства
  • Матричная схема опроса клавиатуры с помощью мультиплексоров
  • Реализация чувствительности к силе нажатия (velocity) программным способом
  • Возможность подключения колеса pitch bend/modulation
  • Наличие кнопок управления и светодиодного индикатора

Схемотехника клавиатурной матрицы

Ключевым элементом конструкции является матричная схема опроса клавиатуры. Как она работает?


  • Клавиши организованы в матрицу 8×6 (48 клавиш)
  • Используются два мультиплексора КР1533КП7 для опроса состояния клавиш
  • Один мультиплексор опрашивает «нажатые» контакты, другой — «отпущенные»
  • Микроконтроллер последовательно подает адреса на мультиплексоры и считывает состояние контактов

Такая схема позволяет опрашивать большое количество клавиш, используя минимум выводов микроконтроллера.

Реализация динамической чувствительности клавиатуры

Одной из главных особенностей данной клавиатуры является ее чувствительность к силе нажатия клавиш (velocity). Как это реализовано?

  • Каждая клавиша имеет два контакта — верхний и нижний
  • При нажатии сначала размыкается верхний контакт, затем замыкается нижний
  • Микроконтроллер измеряет время между размыканием верхнего и замыканием нижнего контакта
  • Чем быстрее нажата клавиша, тем меньше это время и тем больше значение velocity

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


Программная обработка нажатий клавиш

Программа микроконтроллера выполняет следующие основные функции при обработке нажатий клавиш:

  • Циклический опрос состояния всех клавиш через мультиплексоры
  • Измерение времени между размыканием верхнего и замыканием нижнего контакта каждой клавиши
  • Вычисление значения velocity на основе измеренного времени
  • Формирование и отправка MIDI-сообщений Note On/Off с соответствующим значением velocity
  • Отслеживание одновременно нажатых клавиш (до 10 штук)

Реализация колеса pitch bend/modulation

Интересной особенностью данной клавиатуры является возможность добавления колеса pitch bend/modulation. Как оно реализовано?

  • Используется потенциометр, подключенный через АЦП к микроконтроллеру
  • АЦП реализован программно по методу последовательных приближений
  • Для преобразования цифрового кода в аналоговый сигнал используется резистивная матрица R-2R
  • Программа преобразует положение колеса в соответствующие MIDI-сообщения pitch bend или modulation

Такой подход позволяет добавить в клавиатуру полноценное колесо управления высотой тона или модуляцией звука.


Дополнительные функции клавиатуры

Помимо основной функции игры нот, клавиатура имеет ряд дополнительных возможностей:

  • Транспонирование в пределах ±15 полутонов
  • Назначение тембров (MIDI-программ) на разные пресеты
  • Регулировка громкости для каждого пресета
  • Режим наложения двух тембров (TWIN)
  • Режим стерео с эффектом расстройки (STEREO)
  • Поддержка педали сустейна

Эти функции делают клавиатуру более универсальным инструментом для живого исполнения или студийной работы.

Особенности программирования микроконтроллера PIC16F84

При разработке программы для данной клавиатуры были использованы следующие приемы программирования PIC16F84:

  • Использование прерываний от встроенного таймера для отсчета времени и управления динамической индикацией
  • Программная реализация передачи данных по MIDI-интерфейсу
  • Использование таблиц для хранения адресов обработчиков кнопок и другой константной информации
  • Программная реализация АЦП по методу последовательных приближений

Эти приемы позволяют максимально эффективно использовать ограниченные ресурсы микроконтроллера PIC16F84.


Конструктивное исполнение клавиатуры

При изготовлении клавиатуры автор использовал следующий подход:

  • За основу взята клавиатура от советского конструктора «Старт»
  • Количество контактных групп под каждой клавишей уменьшено до двух для снижения высоты конструкции
  • Электронная схема собрана методом навесного монтажа без разработки печатной платы
  • Корпус изготовлен из листового металла

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


Подробно о клавиатурах цифровых пианино

«Звучит как акустическое фортепиано» – это лучший комплимент, который можно сделать в адрес цифрового инструмента. Сегодня мы поговорим о выборе цифрового пианино, а точнее, о главном критерии выбора – клавиатуре.

Механизм работы

На чугунную основу внутри корпуса натянуты металлические струны. Каждая клавиша имеет молоточковый механизм, который приходит в действие при нажатии на клавишу: молоток ударяет по струне, она начинает вибрировать, и мы слышим звук. Его громкость зависит от силы удара по струне, то есть от силы нажатия на клавишу. 


Звукообразование происходит внутри закрытого пространства и зависит от многих факторов: сорта древесины, лака, сложных конструкционных особенностей, механики клавиш и т.д. 


При этом вы получаете полностью натуральный звук. На этом плюсы акустического пианино, пожалуй, заканчиваются. А вот из минусов можно отметить большой вес и размер, необходимость постоянной настройки и подверженность влиянию внешней среды.

Механизм образования звука в пианино

Цифровые пианино не имеют сложной механики, а звукообразование происходит за счет цифровой схемы, которая генерирует звук.

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


 Игра на цифровом пианино

История создания инструмента

Путь к современному молоточковому механизму занял не один десяток лет. Сначала клавиши были легкими, а благодаря пружинам после нажатия сразу возвращались в исходное положение. Сейчас такие клавиши используются в синтезаторах. Позже стали утяжелять каждую клавишу, чтобы достигнуть более натуральных ощущений при игре, при этом пружинный механизм был сохранен. И только потом появились специальные молоточковые механизмы, которые имитируют клавиатуру акустического пианино. Они повторяют всю цепь удара – от клавиши до молоточка, который в случае цифрового пианино бьет не по струне, а по специальным датчикам – сенсорам. Их количество может варьироваться от 1 до 3, что тоже косвенно влияет на нюансы игры. Например, полунажатие клавиши должно звучать соответственно, а сверхмедленное нажатие не должно воспроизводить звуков вообще.


 Работа сенсоров в пианино

Основные типы клавиатур электронных инструментов

Молоточковая (hammer action)

Делится на два вида: градуированную молоточковую (graded hammer action) и балансную молоточковую (balanced hammer action).

  • Градуированную клавиатуру имеют большинство цифровых пианино, она призвана обеспечивать ощущения от прикосновений к клавишам такие же, как при игре на акустических фортепиано. Слово „graded“ означает, что клавиши в нижнем регистре нажимаются немного тяжелее, а в верхнем регистре – легче, как в акустических фортепиано, где толщина и длина струн разная и усилия на нажатие клавиш распределены соответственно. Такая клавиатура помогает воспроизводить все нюансы тембров с глубокой градацией звуковой окраски, зависящей от силы удара.

  • Балансная молоточковая клавиатура тоже обеспечивает ощущение игры на акустических фортепиано, но без распределения по силе нажатия от нижней октавы к верхней. Чаще всего ее можно встретить в синтезаторах и MIDI-клавиатурах.

Синтезаторная (synth action), или клавиатура органного типа

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


Синтезаторная клавиатура

Полувзвешенная клавиатура (semi-weighted)

У такой клавиатуры клавиши могут быть по размеру и форме как синтезаторными, так и фортепианными. Однако при этом они не имеют молоточковую механику, а просто нажимаются заметно тяжелее, чем в синтезаторной. После акустического фортепиано такой клавиатурой пользоваться легче, чем синтезаторной.

Итак, молоточковую клавиатуру цифрового пианино отличают:

  • 88 полноразмерных клавиш, разных по весу (в верхнем регистре – легкие, в нижнем – тяжелые), что полностью соответствует акустическому аналогу.


 Клавиатура semi-weighted

  • Чувствительность клавиш к силе нажатия.

    Сила нажатия на клавишу определяет громкость звучания ноты. Чувствительность всей клавиатуры задается определенными предустановками, чаще всего для этой функции выделены отдельные кнопки “Touch” (“Hard” – для экспрессивной игры, “Medium” – стандарт, “Soft” – для детей с неокрепшими пальчиками и другие). На практике же всегда используется стандартный Medium-режим.

  • Дискретизация чувствительности к силе нажатия для каждой конкретной клавиши. Например, в некоторых моделях CASIO существует 128 вариантов силы (или интенсивности) нажатия на клавишу. Значит и уровней громкости извлекаемой ноты будет тоже 128. Этому важному нюансу производители уделяют большое внимание, так как от этого зависит способность инструмента передать все краски произведения, его выразительность или экспрессию.


Электронное пианино с полувзвешенной клавиатурой

Типы механизмов

Клавиатура является самой важной частью цифрового пианино, поэтому мировые производители, постоянно совершенствуют механику клавиатур своих инструментов, патентуют и дают им названия. Рассмотрим самые популярные из них.

ROLAND

Клавиатура ROLAND PHA-4 (Progresive Hummer Action – прогрессивное молоточковое действие) передает естественные ощущения игры на большом концертном рояле. В ней отсутствуют какие-либо пружины, предусмотрен только молоточковый механизм, что способствует реалистичному сопротивлению клавиши. Также некоторые модели инструментов имеют функцию Escapement (послекасание или отпускание), которая позволяет передать все нюансы игры Pianissimo и Fortissimo. Специальное мягкое демпфирование позволяет добиться меньшего механического шума при сильной игре.


Механизм клавиатуры ROLAND PHA-4

Покрытие клавиш может быть двух видов: «под пластик» или «под слоновую кость» (Ivory Feel). В последнем случае на клавиатуре удобней играть, так как даже слегка влажные пальцы не скользят по поверхности.

Клавиатура PHA-4 выпускается в трех модификациях: старшая CONCERT, средняя PREMIUM и младшая STANDARD.

YAMAHA

Компания YAMAHA давно и успешно использует в своих инструментах механизм клавиатуры GH-3 (Graded Hummer 3), в котором цифра «3» указывает на наличие трех сенсоров на одной клавише, что позволяет более точно воспроизвести интенсивность нажатия на нее. Именно YAMAHA стала первопроходцем в этом вопросе. Сейчас три сенсора устанавливают и в устройствах других производителей.


Механизм клавиатуры GH-3 

KAWAI

Это не самый известный в обывательских кругах, но один из лучших производителей японских цифровых пианино. Если вы любитель классики, то цифровые пианино KAWAI – это ваш выбор.


 Клавиатура пианино KAWAI

В серии цифровых пианино CA (Concert Artist) используется клавиатура RM3, клавиши механизма которой имеют полную длину, что идеально подходит классическим исполнителям. Настоящая клавиатура рояльного типа в сочетании с превосходным классическим звучанием фортепиано сделали эту марку очень популярной во многих странах.


Клавиатура RM3

В серии KAWAI CN используется клавиатура с пластиковыми клавишами, которая получила название RH II (Responsive Hammer II). Каждая клавиша этого механизма имеет не менее трех сенсоров касания для полной передачи особенностей любого музыкального произведения. 


Клавиатура с пластиковыми клавишами RH II

CASIO

Имея более тридцати лет опыта производства электронных музыкальных инструментов, компания CASIO каждый год выпускает более новые серии инструментов, совершенствуя их клавиатуру. Несмотря на относительно невысокую цену, цифровые пианино, особенно серии Celviano и Privia, имеют весьма достойную механику, удовлетворяющую требованиям преподавателя музыкальной школы. В последних версиях цифровых пианино CASIO также имеется несколько сенсоров на каждой клавише. Дополнительно «градация чувствительности» к скорости касания (velocity) разделена на 128 частей, что позволяет передать малейшие нюансы и характер любого произведения.


Клавиатуры CASIO

Теперь вы знаете, что механика всех видов клавиатур электронных пианино очень сложна. Производители уделяют ей особое внимание, доводя до совершенства клавишный механизм в своих проектных мастерских.

Динамическая MIDI клавиатура на PIC16F84

Клавиатура предназначена для подключения к внешнему саунд-модулю или компьютеру (при наличии соответствующего интерфейса) с использованием MIDI протокола – для записи музыки в секвенсерную программу или живого исполнения. Количество клавиш в предложенном варианте 48, может быть увеличено без переделки схемы до 64. Отличительной особенностью предлагаемой клавиатуры является чувствительность к силе удара по клавише.

История создания устройства

Некоторое время назад в связи с покупкой квартиры я вынужденно лишился шикарного инструмента, выполнявшего у меня роль MIDI клавиатуры – это была легендарная YAMAHA DX-7. Когда печаль поутихла, во всей остроте и неприглядности встал вопрос: а на чем же работать? Именно в этот момент стараниями моего приятеля в мои загребущие ручонки попала полусобранная схема на КР1816ВЕ39 (по супостатски этот процессор зовется 8048). Схема проста и в сборке, и в наладке, и, главное, подвернулась под руку в нужное время. Клавиатуру я  собрал в виде матрицы 8×6, применив КР1533ИД7 и КР1533КП7. Не обошлось и без ложки дегтя – два недостатка этой схемы насмерть убивают все ее достоинства: отсутствие чувствительности к скорости нажатия клавиши (динамики) и колеса PITCH WEEL. Ну, я когда-то программировал на Z-80 (и даже сделал работающий секвенсор) и решил тряхнуть стариной. Z-80 как CPU я решительно отмел, как морально устаревший. Кроме того, не хотелось много паять, и я решил взять за основу этот самый девайс на КР1816ВЕ39, оснастив его еще одним мультиплексором для размыкающих (верхних) контактов клавиш. Я отыскал документацию (вы не поверите – в библиотеке, книга «Проектирование цифровых устройств на однокристальных микропроцессорах») на ассемблер КР1816ВЕ39 и накарябал программу…  И тут выяснилось, что у приятеля сдох программатор ПЗУ, и зашить программу просто нечем… От горя я совсем потерял разум и решил переписать тот же алгоритм под PIC. За полдня был спаян программатор (LUDIPIPO), затем макет из панельки, КР1533ИД7 и пары КР1533КП7, а весь монтаж сделан МГТФом без всякой печатки. И процесс пошел…

Сначала был запущен нединамический вариант программы (его я тоже привожу для тех, у кого клавиатура имеет один контакт на клавишу). Потом запустилась динамическая версия. И тут созрела мысль добавить кнопки и индикатор. Дело в том, что у меня без дела давно валялась платка WAVEBLASTER (дочерний wavetable синтезатор для очень старых звуковух). Подключивши ее к моему творению, я получил нечто, на чем можно играть (в меру сил и таланта) без компьютера, что иногда довольно удобно. Это и определило набор функций на кнопках – он может пригодиться при подключении к звуковым модулям при  “живой” игре. Функции кнопок легко изменить, написав свои обработчики и используя мои процедуры опроса и индикации. Кое-как собранная в железном корпусе клавиатура оказалась удобнее, чем YAMAHA PSS (все же полноразмерные клавиши, педаль и, главное, динамика!). В разгаре творческого процесса возникло труднопреодолимое желание сделать версию MIDI клавиатуры чисто для компьютера – индикатор и кнопки необязательны, но нужны колеса PITCH WEEL и MODULATION. Некоторое время я с ним боролся, но, в конце концов, сдался и снова включил паяльник. Электронику собрать несложно, с механикой – несколько сложнее, и я начал морщить лоб над устройством колеса. Поразмыслив, я решил отказаться от второго колеса — все равно я никогда не кручу их сразу оба, обычно сначала пишу ноты и  pitch, затем дописываю modulation. Не последним соображением было и уменьшение в два раза объема столь любимых мною механических работ. Для менее ленивых я ниже объясню, как почти не усложняя схему сделать два колеса. Чтобы все-таки иметь возможность писать modulation, я решил организовать три режима работы колеса: pitch на 2 полутона, pitch на 1 полутон (удобно), и modulation. Переключать это все можно одной кнопкой, а индицировать режим – парой светодиодов. Чтобы упростить схему, остальные кнопки и индикаторы я ликвидировал, для работы с современными программами-секвенсорами это все не нужно.

Колесо, конечно же, должно быть надето на ось потенциометра, это-то понятно, а вот к чему его подключить? Первой мыслью было использовать одновибратор на таймере 555. Но расчет показал, что будет трудно добиться точности и стабильности измерения длительности импульса при попытке обеспечить приемлемую частоту опроса колеса, ведь процессор в основном занят измерением времени переключения клавиатурных контактов. Остался путь использования аналого-цифрового преобразователя (АЦП). Поскольку у меня использовался Pic16F84 без встроенного АЦП, я вспомнил инженерное прошлое (и родной завод) и сделал АЦП из нескольких резисторов с компаратором (и куска программы). Получилось просто, дешево и довольно точно.

Я привожу обе схемы – и с кнопками, и с колесом, а также программы для них. При желании обе схемы можно легко совместить, слегка изменив адреса внешних устройств, нужно только помнить, что режим CHORUS (STEREO) использует pitch для получения расстройки и его нужно или убрать, или озаботится передачей pitch с расстройкой по каналам.

Итак – собственно клавиатура

Схема устройства

Первым появился нединамический вариант, нечувствительный к силе удара по клавише – для проверки работоспособности макета.

Я использовал PIC16F84 в качестве процессора из нескольких соображений: эта микросхема доступна, дешева и удобно программируется, кроме того – именно она оказалась у меня под руками. Внимание: PIC16C84 не годится — у него ОЗУ всего 36 ячеек и программа не будет работать. Впрочем, схема с колесом использует меньше ячеек ОЗУ и ее программу можно втиснуть и в PIC16C84, сократив еще пару ячеек, например MIDCH (присвоив постоянный MIDI канал всем передаваемым данным).

Схема динамической клавиатуры с индикацией приведена ниже:

Схема во многом традиционна — трудно изобрести велосипед без педалей и колес.J Порт B работает на передачу — младшие 7 бит выводят адрес клавиши в матрице или данные для внешних устройств (индикатор и ЦАП колеса). Старший бит используется для вывода MIDI данных последовательным кодом — преобразование и вывод сделаны программными. Поэтому кварц должен быть на 4 MHz, если вы не хотите переписывать процедуру вывода байта по MIDI. Два младших бита порта A работают на прием — на них поступают сигналы с мультиплексоров “отпущенных” и “нажатых” контактов клавиш, а три старших бита определяют адрес внешнего устройства (через еще один дешифратор КР1533ИД7). В схеме с колесом от дешифратора адреса внешнего устройства я отказался для упрощения схемы и освобождения старшего бита порта PA4 для ввода данных с компаратора, поэтому адреса клавиатуры и кнопок другие. При совмещении схем эту микросхему придется вернуть, для дешифрации адреса использовать биты порта PA2 и PA3,и адресовать 4 устройства: клавиатуру, кнопки, регистр данных динамической индикации и регистр знакоместа динамической индикации. Индикацию режимов колеса придется переписать.

Схема с колесом PITCH WEEL / MODULATION выглядит так:

На каждую клавишу ставится один диод для развязки. Резисторы на входах мультиплексоров не должны быть более 8k, иначе возможны глюки из-за емкости монтажа. Индикатор — любой с общим анодом на 3 разряда, если выводы сегментов каждого разряда выведены отдельно, выводы одноименных сегментов нужно объединить — индикация динамическая и разряды зажигаются последовательно. Кнопки любые, без фиксации, дребезг контактов давится программно. Светодиоды установлены возле одноименных кнопок и индицируют включение соответствующих режимов, кнопки «+» и «- » светодиодов не имеют. Транзисторы на индикаторе любые маломощные высокочастотные обратной проводимости. Два регистра КР1533ИР23 использованы для  поочередного защелкивания адреса и кода  текущего разряда индикатора (светодиоды тоже сгруппированы в два квазиразряда). У меня использована стандартная клавиатура от еще советских электроорганов на 48 клавиш (она выпускалась и отдельно как радиоконструктор «СТАРТ», и довольно широко распространена). Чтобы уменьшить высоту клавиатуры и толщину инструмента, из шести контактных групп под каждой клавишей оставлено две, и все это обрезано и переклеено. Вообще достаточно одной переключающей группы на клавишу, но так было удобней клеить. Сборные шины “отпущенных” и “нажатых” контактов имеют длину 8 клавиш. При желании можно использовать и клавиатуру, где вместо переключающей группы контактов используется две пары замыкающих контактов – одна пара замыкается в начале движения клавиши, другая в конце (как на инструментах YAMAHA). В этом случае сигнал на PA0 нужно подавать с инверсного выхода мультиплексора (вывод 6). Без изменений в схеме можно использовать клавиатуру на 64 клавиши (стандарт – 61, т.е. 5 октав). При необходимости число клавиш может быть увеличено хоть до 127, для этого в схему нужно ввести еще один дешифратор КР1533ИД7.

Очень важно хорошо отстроить механику — верхние контакты ОБЯЗАТЕЛЬНО должны замыкаться при отпускании клавиш. Если этого не сделать, программа считает такие клавиши нажатыми и пытается их обрабатывать, поэтому повторное нажатие этих клавиш звука не дает. Кроме того, максимальное количество одновременно звучащих нот – 10 (если у кого-нибудь на руках выросло больше пальцев, это количество легко изменить), и не отпущенные клавиши уменьшают это количество. Из этих же соображений число клавиш, указанное в процедуре опроса клавиатуры, должно ОБЯЗАТЕЛЬНО совпадать с количеством реальных клавиш. Дребезг контактов давится программно.

Для резистивной матрицы R-2R АЦП желательно подобрать резисторы с точностью 1–2%, причем абсолютные значения могут быть и другие, важно отношение. Впрочем, сильно увеличивать номинал не стоит, это увеличит время преобразования из-за входной емкости компаратора. Я использовал SMD резисторы без подбора, хотя измерения показали, что в одной монтажной полоске резисторы обычно согласованы с точностью выше 1%. Я уверен, что схема будет работать и с неточными резисторами, но линейность характеристики ухудшится. Само колесо сделано из ручки от старого телевизора и имеет пружинку на оси потенциометра, возвращающую его в среднее положение. Для удобства настройки механики, при включении питания с нажатой кнопкой режима, включается отладочная программа, зажигающая светодиод, когда колесо находится в среднем положении, это позволяет точно настроить нулевой положение колеса на оси потенциометра. Если есть потребность и желание сделать отдельное колесо MODULATION, его нужно подключить к свободному элементу компаратора (их там четыре), причем матрица R-2R у обоих колес общая. Для коммутации выходов компараторов лучше применить дополнительную микросхему, а в качестве управляющего сигнала использовать PA2.

При желании можно собрать динамический вариант клавиатуры и без индикации, кнопок и колеса PITCH WEEL / MODULATION – просто не собирая неиспользуемую часть схемы. Все изменяемые параметры будут установлены по умолчанию при включении питания…

Питать это все можно от чего угодно, ток потребления зависит от конкретного индикатора и не превышает 100 mA. У меня прямо на плате стоит стабилизатор 7805 без радиатора (его хорошо видно на фотографии). Небольшой радиатор нужен, если на него подавать более 9v. Компаратор питается напряжением 9 – 12 v, желательно стабилизированным. Да, я использовал микросхемы советского производства из старых запасов – существует большое количество их современных аналогов, замена возможна и даже желательна – современные аналоги имеют меньшее потребление.

Программа

Алгоритм обработки нажатых клавиш происходит от предложенного в журнале «Микропроцессорные средства и системы» №5 за 1986г. Именно эта публикация (а точнее, ошибка в предложенной программе) и побудила меня к изучению ассемблера. Собственно, оттуда взята лишь идея записывать номер каждой нажатой клавиши в специально выделенную область ОЗУ (CHAN), чтобы при повторном опросе клавиатуры не обрабатывать снова уже обработанную клавишу. У меня под каждую из нажатых клавиш (всего не более 10) отведено две ячейки ОЗУ: в первой записывается номер нажатой клавиши, во второй – ее VELOCITY (скорость нажатия). Повторюсь – этих ячеек всего 20 и начальный адрес задан именем CHAN. Признаком свободной пары является установленный старший бит первой ячейки. Установленный старший бит второй ячейки означает, что NOTE ON для этой клавиши уже передано и в дальнейшей обработке она не нуждается.

Подробно описывать всю программу я не буду, исходник изобилует комментариями и для подготовленного человека вполне доступен. Для остальных я даю сразу готовые прошивки в файле Dinamic.hex и Pitchmod.hex. Поясню только некоторые неочевидные моменты. Ну, прежде всего о динамике: в момент размыкания верхних контактов клавиши ее номер записывается в первую ячейку первой же свободной пары из области CHAN, одновременно сбрасывая признак свободной пары. Во вторую ячейку записывается начальное значение VELOCITY = 127. Чувствительность клавиатуры определяется частотой следования прерываний, так как обработка прерывания уменьшает значения VELOCITY для всех клавиш, NOTE ON которых еще не передано. Прерывания вызываются встроенным таймером. В момент замыкания нижних контактов клавиши в соответствующей ячейке CHAN  устанавливается признак «переданности» и передается NOTE ON с текущей VELOCITY. Для улучшения кривой чувствительности уменьшение значений VELOCITY идет по логарифмическому закону: из текущего значения VELOCITY вычитается 1/16 его часть, уменьшенная на 1. Таким образом, во время движения клавиши от верхнего контакта к нижнему значение VELOCITY в соответствующей ячейке CHAN уменьшается по логарифмическому закону, и чем быстрее движется клавиша, тем больше VELOCITY в момент замыкания нижних контактов клавиши и передачи NOTE ON. Прерывания также управляют динамической индикацией, это сделано для устранения мерцания индикатора.
Функции кнопок: TRANSPOSE — все тональности приводятся к любимому ля-минору: диапазон +/- 15 полутонов. PRG назначает тембр (инструмент) для заданного пресета (UP1-UP5), а VOL – его громкость. Текущий параметр выводится на индикатор и может изменяться кнопками «+» и «-».TWIN выводит «двойной» тембр – звучат одновременно один из пресетов (UP1-UP5) и, одновременно пресет LOWER. STEREO выводит звук текущего пресета в правый и левый стереоканалы с небольшой «расстройкой» (эффект «хорус»). Кнопка SPLIT не задействована. Педаль SUSTAIN схемотехнически выполнена, как одна из кнопок, емкость ее провода не должна быть очень большой. Адреса обработчиков кнопок собраны в таблицу в начале программы, при изменении функций кнопок можно подставить свои.

АЦП колеса наполовину программный, работает по алгоритму последовательных приближений, матрица R-2R выполняет преобразование “цифра — аналог”. Вначале на матрицу R-2R подается 1 в старшем разряде, и компаратор определяет, много это или мало. Если мало, в старшем разряде остается 1, если много – 0.Далее то же самое происходит с каждым следующим младшим разрядом (всего 6 шагов) и мы получаем шестибитное число, соответствующее углу поворота колеса. Такая точность мне представляется достаточной, но можно добавить еще один бит, увеличив матрицу и программу преобразования.

Конструкция

В качестве собственно клавиатуры я использовал конструктор «Старт» советского производства, сейчас, пожалуй, легче найти старую неработоспособную Ямаху или Касио, это решит и проблему изготовления корпуса – если он конечно у старого инструмента относительно цел…

Печатная плата не разрабатывалась – я посчитал нецелесообразным для изготовления единичного экземпляра устройства тратить время на разводку и изготовление платы, а макет был изготовлен на монтажной плате с помощью перемычек из МГТФа. В качестве разъема  и шлейфа к клавиатуре был использован шлейф от флоппи-дисководов из компьютера с соответствующим разъемом с каждой стороны – это облегчает сборку/разборку готового устройства.

В моем случае корпус был выгнут из тонкой листовой стали (что было под руками) – с деревянными боковинами (как у старых советских инструментов).

Ну вот, вкратце, и все. Творческих успехов!

Список радиоэлементов
ОбозначениеТипНоминалКоличествоПримечаниеМагазинМой блокнот
Схема №1.
МикроконтроллерPIC16F841Поиск в магазине ОтронВ блокнот
МикросхемаКР1533ИД71Поиск в магазине ОтронВ блокнот
МикросхемаКР1533КП71Поиск в магазине ОтронВ блокнот
Линейный регулятор

LM7805

1Поиск в магазине ОтронВ блокнот
Диод

КД522А

64Поиск в магазине ОтронВ блокнот
Конденсатор22 пФ2Поиск в магазине ОтронВ блокнот
Конденсатор0. 1 мкФ2Поиск в магазине ОтронВ блокнот
Электролитический конденсатор100 мкФ2Поиск в магазине ОтронВ блокнот
Резистор

220 Ом

2Поиск в магазине ОтронВ блокнот
Резистор

6.8 кОм

8Поиск в магазине ОтронВ блокнот
Кварцевый резонатор4 МГц1Поиск в магазине ОтронВ блокнот
Клавишная кнопка64Поиск в магазине ОтронВ блокнот
Схема №2.
МикроконтроллерPIC16F841Поиск в магазине ОтронВ блокнот
МикросхемаКР1533ИД72Поиск в магазине ОтронВ блокнот
МикросхемаКР1533КП72Поиск в магазине ОтронВ блокнот
МикросхемаКР1533ИР232Поиск в магазине ОтронВ блокнот
Линейный регулятор

LM7805

1Поиск в магазине ОтронВ блокнот
Биполярный транзистор

КТ315А

5Поиск в магазине ОтронВ блокнот
Диод

КД522А

80Поиск в магазине ОтронВ блокнот
Конденсатор22 пФ2Поиск в магазине ОтронВ блокнот
Конденсатор0. 1 мкФ2Поиск в магазине ОтронВ блокнот
Электролитический конденсатор100 мкФ2Поиск в магазине ОтронВ блокнот
Резистор

180 Ом

7Поиск в магазине ОтронВ блокнот
Резистор

220 Ом

2Поиск в магазине ОтронВ блокнот
Резистор

6.8 кОм

16Поиск в магазине ОтронВ блокнот
Резистор

8 кОм

1Поиск в магазине ОтронВ блокнот
Кварцевый резонатор4 МГц1Поиск в магазине ОтронВ блокнот
3-х разрядный светодиодный цифровой индикатор, с общими анодами.1Поиск в магазине ОтронВ блокнот
СветодиодКрасный12Поиск в магазине ОтронВ блокнот
Клавишный переключатель64Поиск в магазине ОтронВ блокнот
Кнопка16Поиск в магазине ОтронВ блокнот
Схема №3.
МикроконтроллерPIC16F841Поиск в магазине ОтронВ блокнот
МикросхемаКР1533ИД71Поиск в магазине ОтронВ блокнот
МикросхемаКР1533КП72Поиск в магазине ОтронВ блокнот
Компаратор

LM339

1Поиск в магазине ОтронВ блокнот
Линейный регулятор

LM7805

1Поиск в магазине ОтронВ блокнот
Диод

КД522А

80Поиск в магазине ОтронВ блокнот
Конденсатор22 пФ2Поиск в магазине ОтронВ блокнот
Конденсатор0. 1 мкФ4Поиск в магазине ОтронВ блокнот
Электролитический конденсатор100 мкФ3Поиск в магазине ОтронВ блокнот
Резистор

220 Ом

2Поиск в магазине ОтронВ блокнот
Резистор

680 Ом

2Поиск в магазине ОтронВ блокнот
Резистор

1 кОм

5Поиск в магазине ОтронВ блокнот
Резистор

2 кОм

7Поиск в магазине ОтронВ блокнот
Резистор

6. 8 кОм

17Поиск в магазине ОтронВ блокнот
Резистор

10 кОм

1Поиск в магазине ОтронВ блокнот
Переменный резистор10 кОм1Поиск в магазине ОтронВ блокнот
Кварцевый резонатор4 МГц1Поиск в магазине ОтронВ блокнот
СветодиодКрасный1Поиск в магазине ОтронВ блокнот
СветодиодЗеленый1Поиск в магазине ОтронВ блокнот
Клавишный переключатель64Поиск в магазине ОтронВ блокнот
Кнопка16Поиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:
  • midi. rar (14 Кб)
Теги:
  • MIDI
  • PIC
  • Микроконтроллер

Динамическая клавиатура — Аластер Бриз

 

Динамическая клавиатура теперь доступна в Google Play.

Pro: https://play.google.com/store/apps/details?id=com.alastairbreeze.dynamickeyboardpro ​​
Бесплатно: https://play.google.com/store/apps/details?id=com.alastairbreeze.dynamickeyboard

Динамическая клавиатура! Клавиатура, которая меняется, когда вы печатаете, чтобы облегчить набор текста!
Умный, быстрый и точный!

Динамическая клавиатура — первая в мире динамическая клавиатура.
У нас есть новые технологии, такие как сенсорные экраны, но мы все еще используем их так, как будто они
были статичные кнопки, без анимации! Как это нам поможет?

Использование технологий машинного обучения и алгоритмов искусственного интеллекта Я был
в состоянии создать базу данных разведки, которая помогает изменить видимость ключей и
размер в зависимости от вероятности этой буквы в данном контексте. Тренировался с
миллионов слов на 31 языке.

Вместо того, чтобы быть навязчивой и уродливой, как интеллектуальный ввод, эта клавиатура помогает вам
текущий метод набора текста для повышения точности без потери места на экране.
Например: если вы нажмете клавишу «h», клавиши e, o, u, i и y расширятся, как обычно, h
за ключом следуют эти буквы. Когда они вырастут, они теперь с большей вероятностью будут
срабатывает, а такие клавиши, как z и т. д., остаются маленькими, так как они вряд ли понадобятся.

Этот стиль предсказания не требует ввода текста, он помогает вашим собственным навыкам
увеличить скорость и точность. Вы даже не заметите, что он там через некоторое время!

Это не кейлоггер! Нет разрешений, связанных с данными, или интернета
разрешения в этом приложении. Это приложение ПОЛНОСТЬЮ БЕЗОПАСНО!

Характеристики:

  • Символы прогнозирования для повышения точности и скорости изменения размера
  • Плавная анимация
  • Полная настройка (только Pro)
  • Цвета или пресеты на выбор (только Pro)
  • Много ярлыков (например, смахивание влево = удаление последнего слова, двойное нажатие пробела или сдвиг)
  • Оптимизировано для планшетов
  • Режим разделения планшета (только Pro)
  • Батарея оптимизирована
  • Несколько языков одновременно. (Только Pro)
  • Сейф
  • Простота установки
  • Голос Google интегрирован! (только выбранные версии 4.0+)
  • Автокоррекция (только 4.0+)
  • HD-шрифты

Я очень ценю ваш интерес к приложению!

При покупке полной версии! ОГРОМНОЕ спасибо за помощь в развитии приложения, и вы позволите мне помочь в развитии будущих продуктов!

Обратная связь Добро пожаловать!
Пожалуйста, свяжитесь со мной с любыми ошибками, я сделаю все возможное, чтобы исправить их! 😉

Если вы хотите добавить язык или раскладку клавиатуры, просто свяжитесь со мной!

Динамическая клавиатура – ​​Часто задаваемые вопросы

В) Как установить автокоррекцию языка? А) Автокоррекция использует встроенную в ОС Android проверку орфографии. Это означает, что для смены языка необходимо зайти в Настройки/Язык и ввод/Проверка орфографии/(кнопка с глобусом) В) Как мне получить тему из рекламного ролика? А) В про версии перейдите на Динамическую… Продолжить чтение Динамическая клавиатура — FAQ →

Динамическая клавиатура — языки и раскладки!

Языки Список поддерживаемых в настоящее время языков: Албанский Хорватский Чешский Датский Голландский Английский (CA) Английский (Великобритания) Английский (США) Эстонский Финский Французский Немецкий Венгерский Исландский Индонезийский Итальянский Латышский Литовский Малайский Норвежский Польский Португальский (Европа) Португальский (Бразилия) Румынский Сербский Латинский Словацкий Словенский Испанский Шведский Швейцарский (немецкий) Турецкий Вот языки, над которыми я работаю… Продолжить чтение Динамическая клавиатура — языки и раскладки! →

Справка

Как установить: Загрузите приложение с любой торговой площадки. Запустите приложение запуска, которое находится в вашем ящике приложений. Сначала нажмите кнопку «Включить». Затем щелкните галочку слева от надписи «Динамическая клавиатура», чтобы включить ее. Вы будете предупреждены о безопасности приложения. Но помните, в приложении есть … Продолжить чтение Справка →

Вы бы купили «динамическую» клавиатуру?

Перейти к содержимому

Представляем клавиатуру с электронными чернилами, которая меняется по вашему желанию.

By

  • David Zaxarchive page

1 февраля 2013 г.

Когда вы смотрите на свою клавиатуру, чувствуете ли вы когда-нибудь, что она слишком… статична?

Я тоже, но я все еще заинтригован этой концепцией от дизайнеров Максима Мезенцева и Александра Сухих (представлена ​​на сайте Yanko Design, затем замечена Gizmodo). По сути, это клавиатура, клавиши которой сами по себе являются экранами — в частности, экранами электронных чернил. Это может быть благом для двуязычных людей во всем мире.

Концепция Мезенцева и Сухи пока только концепция. Но не поверите, но что-то подобное уже делалось раньше. У меня давний интерес к клавиатурным инновациям (см. «В поисках идеальной клавиатуры»), но я даже не знал о причудливой клавиатуре, придуманной Артемием Лебедевым и его студией.

Несколько лет назад Арт Лебедев создал клавиатуру Оптимус, которая выпускалась в нескольких вариантах. Например, Optimus Maximus, помимо того, что звучит как Transformer, сам может трансформироваться в клавиатуру, подходящую для любого языка: «кириллица, древнегреческий, грузинский, арабский, квенья, хирагана и т. д.… и так до бесконечности». Устройство оснащено 113 OLED-дисплеями с частотой кадров 10 кадров в секунду.

Чтобы уменьшить износ, сами экраны встроены в структуру клавиш, так что вы нажимаете только на прозрачный колпачок клавиши. Программное обеспечение под названием Optimus Configurator поможет вам расставить триповую клавиатуру по своему вкусу.

Пролистывание сайта Арта Лебедева вызывает какое-то головокружение. Двуязычные и трехъязычные, конечно, выиграют от такого устройства, но также и видеоредакторы, дизайнеры или любые пользователи специализированного программного обеспечения, которые не так хорошо запоминают сочетания клавиш. Одно изображение на сайте представляет собой набор из десяти клавиш слева, на которых изображены значки различных приложений или сервисов: Gmail, Firefox, YouTube, MS Word. Вы можете иметь один ключ, чтобы показать вам погоду. Вы можете иметь еще одно отображение слов и их определений.

Вы начинаете понимать, что, когда ваша клавиатура также является программируемым экраном — или набором из 113 таких экранов, — ваша клавиатура становится чем-то вроде главного экрана вашего смартфона или рабочего стола вашего компьютера. Он становится своего рода командным центром или приборной панелью, возможности которого ограничены только вашим воображением.

Модель «Максимус», выпущенная в 2007 году, в настоящее время недоступна, согласно данным на сайте Артемия Лебедева, но вы можете заказать более новую аналогичную модель «Оптимус Популярис», выпущенную в декабре 2011 года. Она немного компактнее оригинальной модели «Оптимус». предложение, и использует ЖК-дисплей, а не OLED для отображения клавиш. Однако это обойдется вам в 1086 долларов, так что это не для дилетанта. Прежде чем раскошеливаться на такое бабло, нужно иметь вескую причину перейти с QWERTY на еще не популярную альтернативу Bowie-Ear-Smiley.

Дэвид Закс

Продолжайте читать

Самые популярные

Оставайтесь на связи

Иллюстрация Роуз Вонг предстоящие события и многое другое.

Введите адрес электронной почты

Политика конфиденциальности

Спасибо за отправку вашего электронного письма!

Ознакомьтесь с другими информационными бюллетенями

Похоже, что-то пошло не так.

У нас возникли проблемы с сохранением ваших настроек. Попробуйте обновить эту страницу и обновить их один раз больше времени. Если вы продолжаете получать это сообщение, свяжитесь с нами по адресу customer-service@technologyreview.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *