P-канальный полевой транзистор
Обнаружил, что транзисторы, которые я поставил в поливалку и которыми коммутирую делитель напряжения и датчик влажности почвы, не самые подходящие — я использовал n-канальные IRLML2402, которые мне любезно подсказал Леонид Каганов. Они отлично открываются при уровнях трёхвольтовой логики, на которой работает ESP-8266, и держат большой ток. Но для коммутирования нагрузки, если нужно разрывать плюсовой провод питания, не годятся — для этого обычно используют p-канальные транзисторы, например IRLML6402. Заказал на AliExpress, но посылка так и не приехала — где-то потерялась по дороге. Заказал ещё раз, транзисторы приехали, но после того как я их поставил в устройство, выяснилось, что при уровнях трёхвольтовой логики транзистор полностью не запирается — на нагрузке вместо нуля оказывается 2.6 вольта. То ли прислали из бракованной партии, то ли прислали транзисторы другого номинала. Бог любит троицу — заказал ещё раз, на этот раз на Amazon, чтобы прислали побыстрее: не терпится начать отлаживать софт для устройства.
Update. Подумалось, а не перепутал ли я сток с истоком? Если да, то это объясняет почему транзистор не закрывается. Напряжение в 2.6 вольт это очень похоже на падение напряжения на паразитном диоде полевого транзистора.... Приду домой проверю эту гипотезу...
Update 2. Блин, точно, в отличии от обычных транзисторов где n-p-n и p-n-p включаются почти одинаково эммитером к низу, полевые транзисторы "переворачивают" при работе в режиме ключа. Поэтому p-канальные транзисторы нужно подключать верх-ногами - истоком к плюсу и стоком к нагрузке! Теперь стало все на свои места, век живи, век учись.
Универсальная раскладка клавиатуры
Меня всегда раздражало, что знаки препинания на русской и английской клавиатурах расположены в разных местах. Но настоящий ад начался, когда я переехал в Германию и начал пользоваться немецкой раскладкой.
Если на английской и русской раскладках различия хотя бы ограничиваются знаками препинания, то немецкая — это отдельная история. Тут не только точка и запятая прячутся куда-то подальше, но и привычные клавиши вдруг оказываются в неожиданных местах. При этом я умею печатать вслепую, но этого недостаточно — запомнить местоположение всех знаков препинания в трёх раскладках оказалось невозможной задачей.
Часто замечаю, что не помню, где находится нужный символ в русской раскладке — и специально переключаюсь на английскую или немецкую, чтобы его набрать. Это прерывает поток мысли, замедляет набор текста и вызывает раздражение. Особенно бесят умляуты на немецкой клавиатуре — они оккупировали те клавиши, где в английской раскладке были нужные знаки. А если символ прячется под левым Alt, приходится выкручивать кисть в стиле ручной Камасутры, чтобы нажать сразу две неудобные клавиши.
Теперь, когда я научился настраивать кастомную клавиатуру при помощи ZMK, стало интересно — справится ли он с этой задачей? ZMK — это прошивка для кастомных клавиатур на базе операционной системы реального времени Zephyr. И использовать его просто как посредника между кнопкой и символом — значит бездарно тратить его потенциал. Хочется задействовать всю его мощь, чтобы создать действительно умную раскладку, которая адаптируется под мои реальные задачи и привычки.
И тут у меня возник вопрос: а можно ли сделать так, чтобы все знаки препинания были на одних и тех же клавишах — вне зависимости от того, включена русская, немецкая или английская раскладка?
Оказалось, можно! И работает это потрясающе удобно.
Русскую раскладку почти не пришлось трогать — в ней мало специфических символов. В немецкой я убрал умляуты с основных клавиш и перенёс их под правый Alt, а на их места вернул знаки препинания, совпадающие с английской раскладкой.
До:
После:
Теперь я буквально влюблён в свою раскладку. Набирать текст стало в разы проще и приятнее. Осталось довести проект до ума, собрать обе половинки клавиатуры — и носить её с собой. Потому что печатать на чужих клавиатурах после этого просто невозможно.
Выложил прошивку на github.
Ложные друзья переводчика
В русском языке есть множество фальшивых немецких слов — такие слова звучат как немецкие, но немцы их не используют, например, «парикмахер» или «шлагбаум». Сегодня в мастерской узнал, что штангенциркуль по-немецки совсем не штангенциркуль!
Название заимствовано из старонемецкого языка и почти точно копирует оригинальное «Stangenzirkel», но в современном языке это слово отсутствует. По-немецки штангенциркуль называется «Messschieber» или «Schieblehre» — соответственно, «раздвижной измеритель» или «раздвижная линейка».
Кстати, по-английски штангенциркуль будет calipers — видимо, слово родственно слову «калибр».
Новости клавиатуростроения
Подключение клавиатуры к микроконтроллеру оказалось не проблемой. Оказалось, что шилды Arduino Pro Micro и Nice!nano совместимы по выводам, поэтому можно использовать те же ноги, что и в инструкциях для Pro Micro. Чтобы залить прошивку, достаточно подключить Nice!nano к компьютеру проводом USB Type-C и дважды закоротить вывод reset с землёй на плате — после этого плата автоматически определяется как флешка, на которую нужно скопировать файл с прошивкой.
Сегодня я наконец разобрался, какие клавиши за что отвечают и как можно переключать слои. Столбцы на левой половине клавиатуры оказались в порядке, а столбцы на правой пришлось угадывать методом научного тыка. Выяснилось, что Aurora Sofle, прошивку которой я взял за основу, переключает слои с помощью клавиш, которые я просто не припаял. Чтобы не перепаивать устройство, я решил немного модифицировать прошивку. Благодаря тому, что сборка прошивки настроена через CI/CD GitHub'а, с этим почти не возникло проблем. Пока что я не придумал, как лучше организовать переключение языков: мне нравилось использовать для этого CapsLock, но на этой клавиатуре его по определению нет. Временно можно использовать Alt-Control, как и раньше, но, думаю, сделать отдельную клавишу для переключения не будет проблемой — нужно будет только решить, какую именно и где её разместить...
Пока устройство выглядит довольно брутально — с проводами и контроллерами снаружи. Заказал необходимые детали на AliExpress. Как приедут, запрячу всё внутрь, и будет почти идеально.