Индикатор раскладки клавиатуры в виде цветного кубика на столе с помощью Arduino

''


Как известно, люди делятся на две категории: на тех, кто переключает раскладку с помощью Ctrl+Shift и тех, кто использует Alt+Shift. А еще есть счастливчики, кому это не нужно – те, у кого только одна раскладка (как правило, английская). Остальные завидуют им и мучаются с двумя, а то и с тремя раскладками: английский, русский, украинский (белорусский, казахский и т.д.).


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


  • Использовать отдельные комбинации на разные языки (Ctrl+1(2.3)) – программисты, которые работают в разных IDE, согласятся, что это не вариант, так как такие комбинации часто же заняты и перекрываются, а использовать другие в IDE непривычно. Нюанс еще в том, что раскладка в операционной системе – это на самом деле раскладка на текущую программу, а не на все (не удивлюсь, если не все это замечали). Т.е, если сейчас активен Word c английской раскладкой, то, переключившись в браузер, там может быть другая раскладка. И приходится или смотреть на иконку снова или же повторно вбивать, например, Ctrl+1, даже если язык не менялся.
  • Использовать программы типа Punto switcher, которые пытаются автоматически исправлять раскладку – не всегда это получается правильно и часто еще больше усложняет набор.
  • Использовать программы, которые переключают темы Windows – не каждому понравятся разноцветные панель задач или окна.

Идея


А давайте сделаем на основе Arduino кубик с LED подсветкой, который будет стоять на столе и менять свой цвет в зависимости от раскладки. Каждый язык – разный цвет. Например, английский – зеленый, русский – красный, украинский – синий. Это позволит видеть язык текущего приложения периферийным зрением.


''


Сразу говорю, это не сложно сделать даже не электронщикам.


Аппаратная часть


Нужно:


  • Arduino Micro – плюс платы в том, что есть micro-USB, что позволяет соединить его популярным кабелем с ПК. Можно использовать любую компактную плату с micro-USB.
  • RGB-светодиод. Можно использовать вместо него и 3 разноцветных светодиода.
  • 3 резистора 220 ом.
  • “кубик”.

В качестве “кубика” можно использовать что угодно. Я купил часы-будильник с Aliexpress.com в виде кубика. Вот так выглядит сам куб:


''


Понравились размеры, цена и дополнительное использование в виде датчика температуры (сами часы в кубике не точные, потому бесполезные). На том же Aliexpress.com можно найти и другие варианты:


  • пирамида-часы;
  • просто кубик с подсветкой.

Учитывая сегодняшние возможности, можно и на 3D принтере что-то напечатать. Да и просто использовать рамку с фото.


Пишем код


Тут все просто, читаем в цикле COM-порт. При чтении значения 1 – включаем зеленый светодиод, остальные гасим. При получении 2 — включаем красный светодиод, остальные гасим. При получении 3 — включаем синий светодиод, остальные гасим.


int inByte = 0;
int LED_R = 5;//красный пин
int LED_G = 6;//зеленый пин
int LED_B = 9;//синий пин
int RV = 255; // яркость
int GV = 255;// яркость
int BV = 255;// яркость
void setup() {
  Serial.begin(9600);
  pinMode(LED_R, OUTPUT);
  pinMode(LED_G, OUTPUT);
  pinMode(LED_B, OUTPUT);
}
void loop() {
  if (Serial.available() > 0) {
    delay(100);
    inByte = Serial.read();
    if (inByte == '2') { // RU
      analogWrite(LED_R, RV);
      analogWrite(LED_G, 0);
      analogWrite(LED_B, 0);
    } else if (inByte == '1') { // EN
      analogWrite(LED_R, 0);
      analogWrite(LED_G, GV);
      analogWrite(LED_B, 0);
    } else if (inByte == '3') { //UA
      analogWrite(LED_R, 0);
      analogWrite(LED_G, 0);
      analogWrite(LED_B, BV);
    }
  }
}

Паяем


Еще проще. Общий пин соединяем с землей (GND). Остальные через резистор 220 Ом с соответствующими пинами, как показано на рисунке.


''


Устанавливаем в куб, предварительно вырезав отверстие под разъем.


''


Программная часть


Тут немного сложней. При изменении языка нужно посылать на COM-порт соответствующее значение (1 или 2 или 3).


Для не программистов ниже есть ссылка на программу под Windows, которая это делает. Единственное, в программе нужно указать COM-порт, к которому подключена Arduino. Это не сложно узнать в диспетчере устройств. Программа после запуска сворачивается в трей, но ее нужно добавить в автозапуск при старте Windows.


''


Программа написана на Delphi, на данный момент не имеет:


  • Функции автоматического поиска порта. Это легко сделать, Arduino при старте будет посылать некий код, программа будет перебирать порты и остановиться в случае его прочтения.
  • Выбора языков. Программа работает только с русским, английским и украинским. Можно сделать возможность указывать по кодам любой язык.
  • Автозапуска программы.

Результат


''



Интересно, что в Windows есть некоторая задержка после нажатия комбинации переключения языка. При этом кубик срабатывает быстрее, чем индикатор, что очень удобно. Больше года использую данную систему и уже не могу представить, как без этого работать.


Скачать программу


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

Support the author
Share post
AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 115

    +3
    А еще лучше подсоединить к ардуино акселерометр и переворачивая кубик изменять раскладку. Шесть раскладок хватит почти для всех.
      0
      Была такая идея, но это just for fun, очень не удобный способ переключения. А вообще собирался вместо USB использовать Bluetooth с автономным питанием, тогда кубик можно ставить где угодно. Но подумал, что это не очень экологично да и плюс еще заряжать иногда нужно было бы.
        0
        Bluetooth с автономным питанием это хорошая идея. В большинстве акселерометров есть прерывание на переворот, можно его ловить и передавать в комп, дублируя вспышкой определенного цвета, и на верхнюю грань нанести название раскладки. Посмотрел, и ясно какая раскладка включена.
          0
          не получается, когда при переключении окна язык сменился. переварачивать кубик?
            0
            Для этого нужна отдельная робо-рука)
              0
              Шесть дисплеев!
          0
          Есть такой готовый Xiaomi mi magic cube
          +4
          >Как известно, люди делятся на две категории: на тех, кто переключает раскладку с помощью Ctrl+Shift и тех, кто использует Alt+Shift.
          Как однобоко, а как же те кто переключают с помощью Caps Lock, например?
            +2
            У тех как индикатор в основном работает лампочка Caps Lock и проблем не возникает совсем. А кубик красивый, да.
              +1
              Это удобно, когда 2 языка. У моего знакомого 4 языка в системе (английский, русский, украинский, иврит). За счет RGB светодиода можно сделать в кубике и 10 четко отличимых цветов.
                0
                За счёт лампочек можно 8, если лампочек 3
                  0
                  Можно ещё мигать :-)
                    +1
                    ШИМ же.
                  0

                  Редко, но встречаются клавиатуры без лампочек. Например на моей, A4Tech, ни для одной из клавиш (Caps, Num и Scroll Lock) их нет. Вместо них вот такое всплывающее окно:

                    0

                    Ну как редко — практически любая беспроводная клавиатура.

                  +4
                  Command-Space же!
                  +2
                  Много лет пользуюсь Пунто и раскладку переключаю правым ctrl, на всех системах дома и на работе.
                    0
                    Пунто пробовал, но когда пишешь код, он не всегда корректно переключает.
                      +2
                      Это частично решается через исключения. А вообще, Пунто очень полезная штука!
                        +2
                        Зачем оставлять Punto на автопереключение раскладки? Ставим Punto, вырубаем автопереключение. Тычем текст, видем, что накосячили, нажимаем PrtScr и радуемся жизни.
                          0
                          А как увидеть, что накосячил при вводе пароля? В принципе, каждому свое, я не спорю, что Punto полезный инструмент.
                            +2
                            а для паролей есть кипасс
                            0
                            скорее, Pause/Break, если по умолчанию
                            0
                            Никогда не пользовался его автоматикой, соответственно и проблем таких никогда не было.
                            0
                            точно так же делал много лет, пока не пересел на мак. еле отвык :/
                              +1
                              Я почти 20 лет работаю на маках, поставил его с макос сразу, как только его портировали. Соответственно — и на работе тоже: один правый контрол.
                                0
                                хм… даже не подумал чего-то что его портировали. спасибо.
                                вот только там теперь нет различия правый/левый, переключается по любому из них
                                  0
                                  И правда нет, даже не задумывался. Но мне проще, только две раскладки.
                            0
                            Да, фраза не претендует на научность. Но, чего греха таить, обыграв этот мем, планировалось собрать перепись «альтернативщиков».
                              +2
                              А как же Win+Space?
                                0
                                Таких не бывает
                                  0
                                  А как же сторонники Андроида с их Ctrl + пробел?
                                    0
                                    Ctrl+Space забыли
                                      +1
                                      Win + Space.
                                        0
                                        Идея переключения вообще убога.
                                        Лучше включать нужные раскладки — например,
                                        Caps — английская
                                        Shift+Caps — русская
                                        Ctrl+Caps — третья
                                        Alt+Caps — четвёртая
                                        Ctrl+Shift+Caps — работает как оригинальный Caps

                                        С одной стороны, в Linux здорово то, что куда больше возможностей для выбора клавиш переключения. С другой, в Linux переключение действует на уровне ядра, а не на уровне приложения, что даёт много неочевидных проблем
                                          0
                                          Бесспорно, но что делать, когда у каждого приложения свой язык? Переключился на приложения и каждый раз включать раскладку N, даже если там уже стоит N или каждый раз смотреть на иконку, какой там язык?
                                            +1
                                            > в Linux переключение действует на уровне ядра, а не на уровне приложения, что даёт много неочевидных проблем
                                            А не расскажете, каких? Любопытно)
                                              0
                                              Это был идеальный вариант, но последних версиях убунты такую возможность удалили :(
                                                +1
                                                Каких проблем?
                                                  0
                                                  Идея переключения вообще убога.

                                                  Вообще идея раскладок как режимов убога (см. книгу Джеффа Раскина).
                                                  0
                                                  А ещё есть те, кто использует два Shift-a, но это совсем редкость. А опытные админы, чтобы не терять время, сначала нажимают Ctrl+Shift, а затем сразу Alt+Shift.
                                                    0
                                                    я думал, это моё ноу-хау)
                                                  • UFO just landed and posted this here
                                                    0
                                                    Лет пять использую комбинации
                                                    Ctr+Shift+8 — Язык1
                                                    Ctr+Shift+9 — Язык2
                                                    Ctr+Shift+0 — Язык3
                                                    Главное перед началом набора текста сказать себя на каком языке набираешь.
                                                    На раскладку не смотрю вообще.
                                                      0
                                                      Пробовал устанавливать комбинацию для каждого языка, не прижилось.

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

                                                      И, главное, если открыто много программ, то при переключении приложений (Alt+TAB) с таким способом придется нажимать комбинацию для Языка1, даже если в открывшемся приложении этот язык уже выставлен. Или, снова таки, смотреть ни индикатор.

                                                      Я использую Ctrl-Shift, при этом не приходится делать ни каких лишних движений, чтобы узнать, на какой язык переключился. Цвет кубика видно периферийным зрением. Мозг настолько адаптировался, что все это уже работает на полном автомате.
                                                        –2
                                                        Левый шифт — англ
                                                        Правый шифт — рус
                                                          +1
                                                          А средний Shift — Язык3 :-)
                                                          0
                                                          Аналогично. Но у меня комбинации, которые нажимаются одной рукой:
                                                          Alt+Shift+1
                                                          Alt+Shift+2
                                                          Alt+Shift+3
                                                          Тайком устанавливаю их на всех компьютерах, на которых доводится работать.
                                                            0
                                                            та же история. Уже выработалась привычка автоматически нажимать комбинацию требуемого языка перед началом печати
                                                          +1
                                                          Есть еще много способов переключения раскладки, смотрите немного шире привычного мира Windows. Многие, например, используют Caps Lock.
                                                            0
                                                            Вопрос не в способе переключения (в Windows, кстати, тоже Caps Lock можно использовать). Вопрос в отображении текущего языка приложения. При чем кубик будет работать в любой ОС, в которой установится драйвер виртуального COM-порта Arduino.
                                                            0
                                                            Вообще, есть много уже реализованных идей на основе Arduino:

                                                            • WEB-управление кондиционером или другим устройством (ESP8266+Drupal);
                                                            • офисная сигнализация с WEB-управлением (Arduino + Ethernet Shield + Drupal);
                                                            • сбор статистики с теплицы (ESP8266+датчики тока, температуры, влажности, давления + Drupal).

                                                            Есть нереализованные идеи:

                                                            • контроль интернет-провайдеров в виде цифровой индикации пинга (Arduino + Ethernet Shield + LED матрица);
                                                            • этот же кубик доделать, сделав индикацию сообщений (с почты о важных письмах или новых комментариев на сайте) в виде мигающею индикации.

                                                            Вопрос только, на сколько эта тематика востребована на гиктаймсе.

                                                              +1
                                                              Про ESP и её связку с CMS интересно.
                                                              Единственный вопрос, который мучает лично меня — НУ ПОЧЕМУ DRUPAAAL&^%&!%?

                                                              Нет, серьёзно, есть же более подходящие варианты.
                                                                0
                                                                В холиварах типа какая лучше CMS или язык программирования в частных проектах (для себя) всегда выигрывает вариант «Что лучше знаю, на том и пишу».

                                                                Я с Drupal давно работаю, от него в данном случае нужно только ядро, респонсивная тема (Bootstrap + less), удобное подключение Highcharts для рисования графиков. Дальше свой модуль и удобное API в Drupal для работы с формами и базой (чтобы запросы с Arduino записывать в свою таблицу). И все, WEB-интерфейс с авторизацией и правами готов.

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

                                                                А Вы про какие варианты имеете ввиду? Какая-то CMS/CMF или другое что-то?
                                                                  0
                                                                  Ну, не соглашусь. Если я вижу, что для моих целей CMS, которую я хорошо знаю — избыточна, я скорее всё-таки потрачу время на изучение аналога, либо вообще попытаюсь велосипед написать. Хотя это лично мой подход.

                                                                  Вообще я имел ввиду просто другую CMS, менее громоздкую. Что-нибудь в духе Textolite, например.
                                                              +1
                                                              Нюанс еще в том, что раскладка в операционной системе – это на самом деле раскладка на текущую программу, а не на все (не удивлюсь, если не все это замечали)

                                                              С Windows 10 по умолчанию это не так, в MacOS, кажется, тоже.
                                                                0
                                                                Ух ты, таки да, сам работаю на 7-ке и 10-ке и даже не заметил. Кубик то на 7-ке стоит.
                                                                  0

                                                                  Причём даже раньше можно было это поведение настроить.

                                                                    0
                                                                    Посмотрел, сейчас тоже в 10-ке настраивается.
                                                                      0
                                                                      И сейчас можно. В Win 8.1: Панель управления — Язык — Дополнительные параметры — Переключение методов ввода — метод ввода для каждого приложения
                                                                        0

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

                                                                    +3

                                                                    У меня при включении русского загорается светодиод "ScrollLock" на клаве,
                                                                    при английском — выключается. Вдобавок флаг меняется в трее возле часиков.


                                                                    Но идея с кубиком тоже неплоха, да.

                                                                      +1

                                                                      В Linux Mint настроил аналогично, причем штатными средствами. В моем первом дистрибутиве ASP Linux 7.3 так по умолчанию было. Мне понравилось. Теперь всегда так настраиваю. Надо будет поискать, как в Windows подобное сделать можно.

                                                                        0
                                                                        Насколько помню, делал с помощь какой-то утилитки. Но возникала проблема с некоторыми программами. Например, в Excel невозможно было пользоваться стрелками при включенном русском языке — вместо перемещения в соседнюю ячейку, сдвигался весь вид. Помучился несколько месяцев, затем перешёл на Caps Lock (объединённая раскладка клавиатуры, а не спец. утилита).
                                                                        0
                                                                        У меня на каждом окне сверху справа возле кнопок флажок раскладки отображается :) Ещё удобнее (особенно когда в разных окнах разная раскладка). Xxkb сильно упрощает этим жизнь :)
                                                                        +1
                                                                        Девайс вроде кажется удобным(мое мнение). Я например не владею мастерством слепого набора текста и посматриваю на клавиатуру, как раз световая сигнализация может мне помочь узнать на какой я сейчас раскладке. Но… Я работаю в последнее время только на лэптопах и тут для меня лишний провод и девайс, в автозагрузке болтается прога работающая с VCP Arduino. К тому же подсветка может отвлекать, а порой и раздражать. Как вариант, реализовать вежливую(интим)-подсветку по датчику освещенности, ну и HC05 можно приконектить, а устройство сделать в виде какой-нить прищепки на монитор с семисегментным индикатором (меня понесло =)).
                                                                          0
                                                                          HC05 можно, даже программу не нужно будет переписывать, он в системе как COM-порт виден. По поводу подсветка может раздражать — можно настроить под себя яркость каждого светодиода и даже менять яркость в зависимости от освещенности (добавив датчик освещенности). Но по опыту года использования скажу, что не раздражает абсолютно. Это на видео оно кажется ярко, на самом деле в глаза не светит, воспринимается просто как цветной кубик.
                                                                          +1
                                                                          Ну, конечно, пользуюсь тремя языками под Mint. Но мне индикатора «Scroll Lock» — за глаза. Если где-то в «автоматическом» чет-нечет ошибся — просто вместо " ї " полезут " ъ ".
                                                                            +1
                                                                            if (Serial.available() > 0) {
                                                                                delay(100);
                                                                                inByte = Serial.read();
                                                                            

                                                                            Зачем здесь задержка?

                                                                                if (inByte == '2') { // RU
                                                                            //...
                                                                                } else if (inByte == '1') { // EN
                                                                            //...
                                                                                } else if (inByte == '3') { //UA
                                                                            //...
                                                                                }
                                                                            

                                                                            Для подобных вещей в C и C++ существует switch
                                                                              0
                                                                              Давно это писалось, видимо был использован какой-то пример чтения порта, в данном случае не критично.
                                                                              Да, switch красивее будет.
                                                                                +1
                                                                                А если в С есть switch, зачем там тогда конструкция else if? :)
                                                                                  –1
                                                                                  Очевидно, для случаев, когда она уместнее.
                                                                                    0
                                                                                    switch работает только на совпадение с целыми константами, в if может быть любое выражение, значение которого может быть приведено к логическому true или false. Как таковой конструкции else if нету, наоборот, else является необязательной частью if. В последнем утверждении Вы можете убедиться расставив в цепочке с else if операторные скобки. Приведенная выше конструкция
                                                                                    if (inByte == '2') { // RU
                                                                                    //...
                                                                                        } else if (inByte == '1') { // EN
                                                                                    //...
                                                                                        } else if (inByte == '3') { //UA
                                                                                    //...
                                                                                        }
                                                                                    

                                                                                    эквивалентена
                                                                                    if (inByte == '2') { // RU
                                                                                    //...
                                                                                    } else {
                                                                                      if (inByte == '1') { // EN
                                                                                    //...
                                                                                      } else {
                                                                                        if (inByte == '3') { //UA
                                                                                    //...
                                                                                        }
                                                                                      }
                                                                                    }
                                                                                    

                                                                                  +1
                                                                                  По поводу переключения. Я сейчас использую Punto Switcher в ручном режиме: английский — LCtrl, русский — RCtrl. Так и хочется написать свою программу, чтобы работала с тремя языками — правда, вечный облом.
                                                                                    0
                                                                                    Функции автоматического поиска порта. Это легко сделать, Arduino при старте будет посылать некий код, программа будет перебирать порты и остановиться в случае его прочтения.

                                                                                    А если у меня в ком-порт гильотина или другой важный прибор без crc в протоколе обмена подключён? Плохой способ, проще получить из ОС список портов и их имена.
                                                                                      0
                                                                                      Список портов и сейчас получаю. Т.е., если в системе только один порт — ничего и искать не нужно, в списке будет только один порт. По поводу имен — хорошая идея. А зачем Вам гильотина на компе? Или это не то, о чем я подумал? :-)
                                                                                      0
                                                                                      Пару лет назад сдался и перешел на дефолтный Альт-Шифт. А так с девяностолохматого года правоверный досовский Кантрл-Шифт был.
                                                                                      Но бог с ним. Десятка неимоверно бесит русским по-умолчанию. В 7 такого не было, чтобы я по три раза пароли набирал русским языком, переключив на английский. Что там творится — не знаю.

                                                                                      Поэтому в тему бы яркий индикатор в углу с текущей раскладкой. Софтовый.

                                                                                      А путнтосвитчер до сих пор переводит точку в «ю». Как можно не допилить алгоритмы, имея под рукой русскую клаву?
                                                                                        0
                                                                                        Софтофый, чтобы был заметен периферийным зрением, нужно большим делать, а это потеря полезной части экрана. Путнтосвитчер мне из-за таких глюков и не понравился.
                                                                                          0
                                                                                          Софтофый, чтобы был заметен периферийным зрением, нужно большим делать

                                                                                          Какой-нибудь яркий квадрат/круг поверх окон, до первого движения мышой или нажатия клавиши, до первой активности короче, чтобы не мешал.
                                                                                          А так да, со стандартными индикаторами проблема.
                                                                                          +2
                                                                                          Десятка неимоверно бесит русским по-умолчанию.

                                                                                          Это решаемо. Клик по индикатору раскладки ➔ Настройки языка ➔ Дополнительные параметры даты и времени ➔ Изменение способа ввода
                                                                                          Здесь выстраиваем предпочтительный порядок переключения языков, самый первый — язык по умолчанию для только что открытого приложения. Устанавливаем в качестве первого английский.

                                                                                          Тут же жмём ссылку Дополнительные параметры ➔ Применить языковые параметры к экрану приветствия, системным учетным записям и новым учетным записям пользователей ➔ Вкладка «Дополнительно», жмём «Копировать параметры», подтверждаем запрос UAC.

                                                                                          Получаем английский по умолчанию, как для приложений так и запросов UAC, экрана входа — можно нормально набирать пароли, ничего не переключая. Бонусом, в эти экраны копируется метод переключения раскладки, больше никакого раздражения от того, что в системе установлен Ctrl+Shift, а системные диалоги вроде UAC требуют Alt+Shift.
                                                                                          0
                                                                                          А для пингвина приложение есть/будет?
                                                                                            0
                                                                                            Я точно не буду писать — больше по винде.
                                                                                              0
                                                                                              Здравствуйте. А исходник программы не покажите?
                                                                                                0
                                                                                                Дайте в личку e-mail, отправлю.
                                                                                            0
                                                                                            А есть такое решение чтобы раскладка высвечивалась прямо рядом с курсором?
                                                                                            А то мне все эти индикаторы внизу на панели или диоды на клавиатуре не помогают, потому что я на курсор смотрю и не обращаю внимания на них – мне хоть завешай всё вокруг гигантскими световыми баннерами с языками я всё равно буду ошибаться иногда.
                                                                                            Было бы удобно если бы в верхней части обычного курсора был маленький флажок или код раскладки (на MacOS).
                                                                                            0
                                                                                            Использовать программы, которые переключают темы Windows – не каждому понравятся разноцветные панель задач или окна.

                                                                                            А вот такой вариант я искал, и что-то не нашёл, буду благодарен, если кто-нибудь подскажет.

                                                                                              0
                                                                                              На хабре уже было: habrahabr.ru/post/248919.
                                                                                                0

                                                                                                Это очень просто ищется. И, конечно же, на современной ОС (10) не работает.

                                                                                              0
                                                                                              На Windows настроил через Punto по левому/правому Ctrl (один — русский, второй — английский).
                                                                                              на MacOS в High Sierra появилась возможность по капслоку переключать.
                                                                                                0
                                                                                                У меня клавиша ctrl переключает раскладку, клавиша CapsLk работает как контрол и светодиод капслока индицирует текущую раскладку(горит — рус, не горит — анг)
                                                                                                  0

                                                                                                  Использую LoloSwitcher. На LShift стоит US, на RShift — RU, на AltGr — UA. Перед вводом в определённой раскладке просто включаю её, не учитывая текущую. Переключение настолько удобное и ненавязчивое, что я уже даже знаки пунктуации, которые есть и на кириллических раскладках, ввожу в английской.

                                                                                                    0
                                                                                                    Интересно, что в Windows есть некоторая задержка после нажатия комбинации переключения языка

                                                                                                    Как же я ненавижу эту долбанную задержку. Причём она есть не только в винде, но и в убунте. Уже не знаю как там какой приоритет кому задать, чтобы этот переключатель работал как нужно.
                                                                                                    p.s. Извините, накипело.
                                                                                                      0
                                                                                                      Я вот тоже всегда удивлялся этой задержке. В кубике выставил 100 миллисекунд — вполне комфортно, хотя можно было и меньше поставить.
                                                                                                      0
                                                                                                      Нюанс еще в том, что раскладка в операционной системе – это на самом деле раскладка на текущую программу, а не на все (не удивлюсь, если не все это замечали). Т.е, если сейчас активен Word c английской раскладкой, то, переключившись в браузер, там может быть другая раскладка.

                                                                                                      Не совсем так, система позволяет выбирать — использовать отдельную раскладку в каждой программе или глобальную, делается это в Панель управления\Часы, язык и регион\Язык\Дополнительные параметры\Переключение методов ввода (Win10).
                                                                                                        0
                                                                                                        Да, выше уже об этом написано, я не знал, что в 10-ке это можно.
                                                                                                        0

                                                                                                        Можно оставить всего лишь один резистор — между катодом светодиода и пином GND.

                                                                                                          0
                                                                                                          В данном случае можно, так как в примере используются или R или G или B. Но, если нужно будет добавить еще несколько языков (добавив при этом, например, желтый или фиолетовый цвет светодиода), то тогда не получим одинаковую яркость по всем цветам.
                                                                                                            0
                                                                                                            Согласен, тогда сопротивления придется подбирать под каждый светодиод эмпирически.
                                                                                                          0
                                                                                                          Не обязательно раскладку выделять посредством зрительной информации. Как вариант использовать разный звук нажатий клавиш для разных раскладок. Эта опция есть в xneur (видимо и в punto).
                                                                                                            0
                                                                                                            Лично меня такие звуки отвлекают. А если еще в офисе несколько рабочих мест? В этой какофонии никто ничего не разберет.
                                                                                                            0
                                                                                                            Прошу прощения, а зачем нужен микроконтроллер?

                                                                                                            По спецификации RS-232 логическая еденица это +3...15В, логический ноль это -3...15В (относительно земли). Значения токов не помню, но для зажигания светодиода хватает (причем с конкретным запасом). У нас есть два выхода, которые «статичны» — DTR и RTS. Таким образом подключив (через резистор) два встречно включенных светодиода (допустим красный и зеленый) к контакту «DTR» и «земле» мы получим индикацию двух языков — русский и английский. Ну а если кому мало — есть еще RTS.

                                                                                                            Еще раз прошу прощения, писал из любви в искусству :-)
                                                                                                              +2
                                                                                                              RS-232

                                                                                                              Осталось только найти его в ПК.
                                                                                                                0
                                                                                                                Ну так все равно на ноутбуке COM-порта нет, напрямую не получится.

                                                                                                                А так запас на будущее, дальше можно:

                                                                                                                • подключить датчик освещенности для регулирования яркости светодиодов при разной освещенности;
                                                                                                                • оповещения о событиях миганием разных цветов (почта, комментарии и т.д.);
                                                                                                                • обратная связь: нажал на кубик — экран заблокировался (эмуляция WIN+L);
                                                                                                                • и другое.

                                                                                                                Делалось же из любви к Arduino :-)
                                                                                                                  0
                                                                                                                  Ох, слона то я и не заметил :-) Сам весь вечер удивлялся — неужели com-порт дожил до наших дней… Сорри, был невнимателен.
                                                                                                                  0
                                                                                                                  Я бы сделал на sn74hc595n или sn74hc164 (10 центов). Если нужен ещё ШИМ, то NE555 (5 центов). Не то, что бы ардуинка за 2,5 доллара напрягает бюджет, просто зажигать светодиодик процессором…
                                                                                                                  Но это только мои закидоны, понимаю.
                                                                                                                    0
                                                                                                                    Расскажите, как в этом варианте светодиодик будет управляться с ПК.
                                                                                                                      0
                                                                                                                      С 595 я погорячился, хотя присобачив триггер к ней, можно даже и справиться двумя проводами. А вот sn74hc164 спокойно сейчас мигает мне RGB лентой семью цветами на двух проводах (от ардуинки, конечно, но точно так же это будет работать от USB).
                                                                                                                        0
                                                                                                                        Кажется, я промахнулся. Похоже, нужно подключать HID устройство или писать свой драйвер, чтобы просто дёргать USB D+ D-.
                                                                                                                        Прошу прощения.
                                                                                                                      +1
                                                                                                                      что бы убрать задержку переключения в Windows надо отредактировать
                                                                                                                      HKEY_CURRENT_USER\Control Panel\Accessibility\Keyboard Response\DelayBeforeAcceptance
                                                                                                                      выставив 50 мс например
                                                                                                                        0
                                                                                                                        Супер, нужно будет попробовать. Это для любой винды?
                                                                                                                          0
                                                                                                                          С семёрки, в XP такой настройки нет.
                                                                                                                            0
                                                                                                                            для 7 и 10 точно

                                                                                                                        Only users with full accounts can post comments. Log in, please.