Как известно, люди делятся на две категории: на тех, кто переключает раскладку с помощью 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 есть некоторая задержка после нажатия комбинации переключения языка. При этом кубик срабатывает быстрее, чем индикатор, что очень удобно. Больше года использую данную систему и уже не могу представить, как без этого работать.
Если пост понравится, доработаю программу, добавив описанный выше недостающий функционал.
Комментарии (103)
FreeManOfPeace
23.12.2017 16:18>Как известно, люди делятся на две категории: на тех, кто переключает раскладку с помощью Ctrl+Shift и тех, кто использует Alt+Shift.
Как однобоко, а как же те кто переключают с помощью Caps Lock, например?alltiptop
23.12.2017 16:57+1У тех как индикатор в основном работает лампочка Caps Lock и проблем не возникает совсем. А кубик красивый, да.
Alex_ME
23.12.2017 18:20Редко, но встречаются клавиатуры без лампочек. Например на моей, A4Tech, ни для одной из клавиш (Caps, Num и Scroll Lock) их нет. Вместо них вот такое всплывающее окно:
vconst
23.12.2017 17:09Много лет пользуюсь Пунто и раскладку переключаю правым ctrl, на всех системах дома и на работе.
sapient Автор
23.12.2017 18:02Пунто пробовал, но когда пишешь код, он не всегда корректно переключает.
artemev
23.12.2017 18:10Это частично решается через исключения. А вообще, Пунто очень полезная штука!
MarazmDed
23.12.2017 20:51Зачем оставлять Punto на автопереключение раскладки? Ставим Punto, вырубаем автопереключение. Тычем текст, видем, что накосячили, нажимаем PrtScr и радуемся жизни.
vconst
23.12.2017 22:37Никогда не пользовался его автоматикой, соответственно и проблем таких никогда не было.
sapient Автор
23.12.2017 18:01Да, фраза не претендует на научность. Но, чего греха таить, обыграв этот мем, планировалось собрать перепись «альтернативщиков».
vmchaz
23.12.2017 22:44Идея переключения вообще убога.
Лучше включать нужные раскладки — например,
Caps — английская
Shift+Caps — русская
Ctrl+Caps — третья
Alt+Caps — четвёртая
Ctrl+Shift+Caps — работает как оригинальный Capssapient Автор
23.12.2017 23:36Бесспорно, но что делать, когда у каждого приложения свой язык? Переключился на приложения и каждый раз включать раскладку N, даже если там уже стоит N или каждый раз смотреть на иконку, какой там язык?
olvin_hh
23.12.2017 23:55> в Linux переключение действует на уровне ядра, а не на уровне приложения, что даёт много неочевидных проблем
А не расскажете, каких? Любопытно)
dmitryrf
24.12.2017 10:23Это был идеальный вариант, но последних версиях убунты такую возможность удалили :(
Daniil1979
24.12.2017 11:46А ещё есть те, кто использует два Shift-a, но это совсем редкость. А опытные админы, чтобы не терять время, сначала нажимают Ctrl+Shift, а затем сразу Alt+Shift.
AlexandrDP
23.12.2017 17:17Лет пять использую комбинации
Ctr+Shift+8 — Язык1
Ctr+Shift+9 — Язык2
Ctr+Shift+0 — Язык3
Главное перед началом набора текста сказать себя на каком языке набираешь.
На раскладку не смотрю вообще.sapient Автор
23.12.2017 18:13Пробовал устанавливать комбинацию для каждого языка, не прижилось.
Во-первых, далеко тянутся. Во-вторых, я владею слепым методом набора, но, так как цифровой ряд редко использую, цифровые клавиши в слепую не научился. Потому пришлось бы каждый раз подсматривать.
И, главное, если открыто много программ, то при переключении приложений (Alt+TAB) с таким способом придется нажимать комбинацию для Языка1, даже если в открывшемся приложении этот язык уже выставлен. Или, снова таки, смотреть ни индикатор.
Я использую Ctrl-Shift, при этом не приходится делать ни каких лишних движений, чтобы узнать, на какой язык переключился. Цвет кубика видно периферийным зрением. Мозг настолько адаптировался, что все это уже работает на полном автомате.
BInc
23.12.2017 22:00Аналогично. Но у меня комбинации, которые нажимаются одной рукой:
Alt+Shift+1
Alt+Shift+2
Alt+Shift+3
Тайком устанавливаю их на всех компьютерах, на которых доводится работать.VolodjaT
24.12.2017 00:29та же история. Уже выработалась привычка автоматически нажимать комбинацию требуемого языка перед началом печати
phantom-code
23.12.2017 18:02Есть еще много способов переключения раскладки, смотрите немного шире привычного мира Windows. Многие, например, используют Caps Lock.
sapient Автор
23.12.2017 18:05Вопрос не в способе переключения (в Windows, кстати, тоже Caps Lock можно использовать). Вопрос в отображении текущего языка приложения. При чем кубик будет работать в любой ОС, в которой установится драйвер виртуального COM-порта Arduino.
sapient Автор
23.12.2017 18:35Вообще, есть много уже реализованных идей на основе Arduino:
- WEB-управление кондиционером или другим устройством (ESP8266+Drupal);
- офисная сигнализация с WEB-управлением (Arduino + Ethernet Shield + Drupal);
- сбор статистики с теплицы (ESP8266+датчики тока, температуры, влажности, давления + Drupal).
Есть нереализованные идеи:
- контроль интернет-провайдеров в виде цифровой индикации пинга (Arduino + Ethernet Shield + LED матрица);
- этот же кубик доделать, сделав индикацию сообщений (с почты о важных письмах или новых комментариев на сайте) в виде мигающею индикации.
Вопрос только, на сколько эта тематика востребована на гиктаймсе.
Psychosynthesis
24.12.2017 10:35Про ESP и её связку с CMS интересно.
Единственный вопрос, который мучает лично меня — НУ ПОЧЕМУ DRUPAAAL&^%&!%?
Нет, серьёзно, есть же более подходящие варианты.sapient Автор
24.12.2017 19:07В холиварах типа какая лучше CMS или язык программирования в частных проектах (для себя) всегда выигрывает вариант «Что лучше знаю, на том и пишу».
Я с Drupal давно работаю, от него в данном случае нужно только ядро, респонсивная тема (Bootstrap + less), удобное подключение Highcharts для рисования графиков. Дальше свой модуль и удобное API в Drupal для работы с формами и базой (чтобы запросы с Arduino записывать в свою таблицу). И все, WEB-интерфейс с авторизацией и правами готов.
Ясно, что все можно и без CMS сделать, как и без Arduino. Но я не настолько люблю паять, чтобы свои платы травить. Если делать все с нуля, по ходу и желание закончить проект пропадет. Тут главное, после того, как идея проекта возникла, быстро его реализовать. Как раз кирпичики типа Arduino и CMS позволяют в работе сосредоточиться больше на самом проекте.
А Вы про какие варианты имеете ввиду? Какая-то CMS/CMF или другое что-то?Psychosynthesis
25.12.2017 12:01Ну, не соглашусь. Если я вижу, что для моих целей CMS, которую я хорошо знаю — избыточна, я скорее всё-таки потрачу время на изучение аналога, либо вообще попытаюсь велосипед написать. Хотя это лично мой подход.
Вообще я имел ввиду просто другую CMS, менее громоздкую. Что-нибудь в духе Textolite, например.
sumanai
23.12.2017 18:48Нюанс еще в том, что раскладка в операционной системе – это на самом деле раскладка на текущую программу, а не на все (не удивлюсь, если не все это замечали)
С Windows 10 по умолчанию это не так, в MacOS, кажется, тоже.sapient Автор
23.12.2017 18:52Ух ты, таки да, сам работаю на 7-ке и 10-ке и даже не заметил. Кубик то на 7-ке стоит.
staticlab
23.12.2017 21:15Причём даже раньше можно было это поведение настроить.
AntonyMcGreen
23.12.2017 23:03И сейчас можно. В Win 8.1: Панель управления — Язык — Дополнительные параметры — Переключение методов ввода — метод ввода для каждого приложения
staticlab
24.12.2017 01:36Спасибо, но я подразумевал, что настроить можно было даже раньше, а не только лишь в новых системах.
robux
23.12.2017 19:19У меня при включении русского загорается светодиод "ScrollLock" на клаве,
при английском — выключается. Вдобавок флаг меняется в трее возле часиков.
Но идея с кубиком тоже неплоха, да.
Melnix
23.12.2017 19:59В Linux Mint настроил аналогично, причем штатными средствами. В моем первом дистрибутиве ASP Linux 7.3 так по умолчанию было. Мне понравилось. Теперь всегда так настраиваю. Надо будет поискать, как в Windows подобное сделать можно.
DmitryMry
25.12.2017 10:15Насколько помню, делал с помощь какой-то утилитки. Но возникала проблема с некоторыми программами. Например, в Excel невозможно было пользоваться стрелками при включенном русском языке — вместо перемещения в соседнюю ячейку, сдвигался весь вид. Помучился несколько месяцев, затем перешёл на Caps Lock (объединённая раскладка клавиатуры, а не спец. утилита).
linux_art
23.12.2017 21:23У меня на каждом окне сверху справа возле кнопок флажок раскладки отображается :) Ещё удобнее (особенно когда в разных окнах разная раскладка). Xxkb сильно упрощает этим жизнь :)
Jmann
23.12.2017 19:31Девайс вроде кажется удобным(мое мнение). Я например не владею мастерством слепого набора текста и посматриваю на клавиатуру, как раз световая сигнализация может мне помочь узнать на какой я сейчас раскладке. Но… Я работаю в последнее время только на лэптопах и тут для меня лишний провод и девайс, в автозагрузке болтается прога работающая с VCP Arduino. К тому же подсветка может отвлекать, а порой и раздражать. Как вариант, реализовать вежливую(интим)-подсветку по датчику освещенности, ну и HC05 можно приконектить, а устройство сделать в виде какой-нить прищепки на монитор с семисегментным индикатором (меня понесло =)).
sapient Автор
23.12.2017 19:50HC05 можно, даже программу не нужно будет переписывать, он в системе как COM-порт виден. По поводу подсветка может раздражать — можно настроить под себя яркость каждого светодиода и даже менять яркость в зависимости от освещенности (добавив датчик освещенности). Но по опыту года использования скажу, что не раздражает абсолютно. Это на видео оно кажется ярко, на самом деле в глаза не светит, воспринимается просто как цветной кубик.
voidptr0
23.12.2017 19:32Ну, конечно, пользуюсь тремя языками под Mint. Но мне индикатора «Scroll Lock» — за глаза. Если где-то в «автоматическом» чет-нечет ошибся — просто вместо " ї " полезут " ъ ".
Serge78rus
23.12.2017 19:44+2if (Serial.available() > 0) { delay(100); inByte = Serial.read();
Зачем здесь задержка?
if (inByte == '2') { // RU //... } else if (inByte == '1') { // EN //... } else if (inByte == '3') { //UA //... }
Для подобных вещей в C и C++ существует switchsapient Автор
23.12.2017 19:57Давно это писалось, видимо был использован какой-то пример чтения порта, в данном случае не критично.
Да, switch красивее будет.
Mercury13
23.12.2017 19:54По поводу переключения. Я сейчас использую Punto Switcher в ручном режиме: английский — LCtrl, русский — RCtrl. Так и хочется написать свою программу, чтобы работала с тремя языками — правда, вечный облом.
acedece14
23.12.2017 19:59Функции автоматического поиска порта. Это легко сделать, Arduino при старте будет посылать некий код, программа будет перебирать порты и остановиться в случае его прочтения.
А если у меня в ком-порт гильотина или другой важный прибор без crc в протоколе обмена подключён? Плохой способ, проще получить из ОС список портов и их имена.sapient Автор
23.12.2017 20:00Список портов и сейчас получаю. Т.е., если в системе только один порт — ничего и искать не нужно, в списке будет только один порт. По поводу имен — хорошая идея. А зачем Вам гильотина на компе? Или это не то, о чем я подумал? :-)
LevaLeva
23.12.2017 20:17Пару лет назад сдался и перешел на дефолтный Альт-Шифт. А так с девяностолохматого года правоверный досовский Кантрл-Шифт был.
Но бог с ним. Десятка неимоверно бесит русским по-умолчанию. В 7 такого не было, чтобы я по три раза пароли набирал русским языком, переключив на английский. Что там творится — не знаю.
Поэтому в тему бы яркий индикатор в углу с текущей раскладкой. Софтовый.
А путнтосвитчер до сих пор переводит точку в «ю». Как можно не допилить алгоритмы, имея под рукой русскую клаву?sapient Автор
23.12.2017 20:21Софтофый, чтобы был заметен периферийным зрением, нужно большим делать, а это потеря полезной части экрана. Путнтосвитчер мне из-за таких глюков и не понравился.
ploop
23.12.2017 20:39Софтофый, чтобы был заметен периферийным зрением, нужно большим делать
Какой-нибудь яркий квадрат/круг поверх окон, до первого движения мышой или нажатия клавиши, до первой активности короче, чтобы не мешал.
А так да, со стандартными индикаторами проблема.
Olanonymous
24.12.2017 03:30Десятка неимоверно бесит русским по-умолчанию.
Это решаемо. Клик по индикатору раскладки ? Настройки языка ? Дополнительные параметры даты и времени ? Изменение способа ввода
Здесь выстраиваем предпочтительный порядок переключения языков, самый первый — язык по умолчанию для только что открытого приложения. Устанавливаем в качестве первого английский.
Тут же жмём ссылку Дополнительные параметры ? Применить языковые параметры к экрану приветствия, системным учетным записям и новым учетным записям пользователей ? Вкладка «Дополнительно», жмём «Копировать параметры», подтверждаем запрос UAC.
Получаем английский по умолчанию, как для приложений так и запросов UAC, экрана входа — можно нормально набирать пароли, ничего не переключая. Бонусом, в эти экраны копируется метод переключения раскладки, больше никакого раздражения от того, что в системе установлен Ctrl+Shift, а системные диалоги вроде UAC требуют Alt+Shift.
deniska2
24.12.2017 02:11А для пингвина приложение есть/будет?
sapient Автор
24.12.2017 02:12Я точно не буду писать — больше по винде.
nathanael
24.12.2017 03:35А есть такое решение чтобы раскладка высвечивалась прямо рядом с курсором?
А то мне все эти индикаторы внизу на панели или диоды на клавиатуре не помогают, потому что я на курсор смотрю и не обращаю внимания на них – мне хоть завешай всё вокруг гигантскими световыми баннерами с языками я всё равно буду ошибаться иногда.
Было бы удобно если бы в верхней части обычного курсора был маленький флажок или код раскладки (на MacOS).mistergrim
24.12.2017 10:44Таковых полно (ввиду простоты реализации) —
https://everylang.net/ru
http://www.amlpages.com/Rus/amlmaple.htm
И им подобные.
nick0x01
24.12.2017 11:39habrahabr.ru/post/138940 (под Windows, вдруг кому будет полезно) — с кодом, который можно изменить под свои требования.
mistergrim
24.12.2017 10:46Использовать программы, которые переключают темы Windows – не каждому понравятся разноцветные панель задач или окна.
А вот такой вариант я искал, и что-то не нашёл, буду благодарен, если кто-нибудь подскажет.
sapient Автор
24.12.2017 19:11На хабре уже было: habrahabr.ru/post/248919.
mistergrim
25.12.2017 02:10Это очень просто ищется. И, конечно же, на современной ОС (10) не работает.
burivuh26
24.12.2017 13:12На Windows настроил через Punto по левому/правому Ctrl (один — русский, второй — английский).
на MacOS в High Sierra появилась возможность по капслоку переключать.
SL_RU
24.12.2017 13:36У меня клавиша ctrl переключает раскладку, клавиша CapsLk работает как контрол и светодиод капслока индицирует текущую раскладку(горит — рус, не горит — анг)
bodqhrohro
24.12.2017 13:56Использую LoloSwitcher. На LShift стоит US, на RShift — RU, на AltGr — UA. Перед вводом в определённой раскладке просто включаю её, не учитывая текущую. Переключение настолько удобное и ненавязчивое, что я уже даже знаки пунктуации, которые есть и на кириллических раскладках, ввожу в английской.
igorp1024
24.12.2017 14:16Интересно, что в Windows есть некоторая задержка после нажатия комбинации переключения языка
Как же я ненавижу эту долбанную задержку. Причём она есть не только в винде, но и в убунте. Уже не знаю как там какой приоритет кому задать, чтобы этот переключатель работал как нужно.
p.s. Извините, накипело.sapient Автор
24.12.2017 19:13Я вот тоже всегда удивлялся этой задержке. В кубике выставил 100 миллисекунд — вполне комфортно, хотя можно было и меньше поставить.
simplix
24.12.2017 15:11Нюанс еще в том, что раскладка в операционной системе – это на самом деле раскладка на текущую программу, а не на все (не удивлюсь, если не все это замечали). Т.е, если сейчас активен Word c английской раскладкой, то, переключившись в браузер, там может быть другая раскладка.
Не совсем так, система позволяет выбирать — использовать отдельную раскладку в каждой программе или глобальную, делается это в Панель управления\Часы, язык и регион\Язык\Дополнительные параметры\Переключение методов ввода (Win10).
luthers
24.12.2017 19:18Можно оставить всего лишь один резистор — между катодом светодиода и пином GND.
ver-sta
24.12.2017 19:18Не обязательно раскладку выделять посредством зрительной информации. Как вариант использовать разный звук нажатий клавиш для разных раскладок. Эта опция есть в xneur (видимо и в punto).
sapient Автор
24.12.2017 19:20Лично меня такие звуки отвлекают. А если еще в офисе несколько рабочих мест? В этой какофонии никто ничего не разберет.
soul32bit
24.12.2017 21:58Прошу прощения, а зачем нужен микроконтроллер?
По спецификации RS-232 логическая еденица это +3...15В, логический ноль это -3...15В (относительно земли). Значения токов не помню, но для зажигания светодиода хватает (причем с конкретным запасом). У нас есть два выхода, которые «статичны» — DTR и RTS. Таким образом подключив (через резистор) два встречно включенных светодиода (допустим красный и зеленый) к контакту «DTR» и «земле» мы получим индикацию двух языков — русский и английский. Ну а если кому мало — есть еще RTS.
Еще раз прошу прощения, писал из любви в искусству :-)sapient Автор
24.12.2017 22:05Ну так все равно на ноутбуке COM-порта нет, напрямую не получится.
А так запас на будущее, дальше можно:
- подключить датчик освещенности для регулирования яркости светодиодов при разной освещенности;
- оповещения о событиях миганием разных цветов (почта, комментарии и т.д.);
- обратная связь: нажал на кубик — экран заблокировался (эмуляция WIN+L);
- и другое.
Делалось же из любви к Arduino :-)
soul32bit
25.12.2017 12:15Ох, слона то я и не заметил :-) Сам весь вечер удивлялся — неужели com-порт дожил до наших дней… Сорри, был невнимателен.
dimaviolinist
24.12.2017 22:05Я бы сделал на sn74hc595n или sn74hc164 (10 центов). Если нужен ещё ШИМ, то NE555 (5 центов). Не то, что бы ардуинка за 2,5 доллара напрягает бюджет, просто зажигать светодиодик процессором…
Но это только мои закидоны, понимаю.
helg1978
27.12.2017 07:08что бы убрать задержку переключения в Windows надо отредактировать
HKEY_CURRENT_USER\Control Panel\Accessibility\Keyboard Response\DelayBeforeAcceptance
выставив 50 мс например
Ig_B
А еще лучше подсоединить к ардуино акселерометр и переворачивая кубик изменять раскладку. Шесть раскладок хватит почти для всех.
sapient Автор
Была такая идея, но это just for fun, очень не удобный способ переключения. А вообще собирался вместо USB использовать Bluetooth с автономным питанием, тогда кубик можно ставить где угодно. Но подумал, что это не очень экологично да и плюс еще заряжать иногда нужно было бы.
Ig_B
Bluetooth с автономным питанием это хорошая идея. В большинстве акселерометров есть прерывание на переворот, можно его ловить и передавать в комп, дублируя вспышкой определенного цвета, и на верхнюю грань нанести название раскладки. Посмотрел, и ясно какая раскладка включена.
qsoggg
не получается, когда при переключении окна язык сменился. переварачивать кубик?
Kirillko312
Для этого нужна отдельная робо-рука)
ozonar
Шесть дисплеев!
instalator
Есть такой готовый Xiaomi mi magic cube