- PVSM.RU - https://www.pvsm.ru -
Привет!
Сегодня я хочу показать вам проект, над которым я работал последние пару лет и наконец выпускаю первую пригодную для использования версию. Это pyLCI — Python-based Linux Control Interface [1], внешний интерфейс для компьютеров с Linux, который позволяет взаимодействовать с системой посредством символьных дисплеев и кнопок. С помощью написанных под этот интерфейс приложений можно выполнять большое количество задач, связанных с администрированием и настройкой системы, а также запускать различные скрипты и выполнять команды. И всё это — не завися от монитора с клавиатурой!
А ещё мой интерфейс:
Заинтересованы? Прошу под кат.
Через год-два я наконец-таки смог начать работать с Raspberry Pi. Это было интересно, и я придумал для себя новый проект — устройство с Raspberry Pi и множеством дополнений, которые бы превращали её в более-менее сравнимый по функционалу компьютер. Его планировалось вставлять в отсек 5.25 персонального компьютера, вывести провода на заднюю панель, подключить HDMI-кабелем к монитору и использовать как плеер/лёгкий браузер/т.п. Довести проект до логического завершения не получилось — не хватало лёгкого интерфейса управления этим добром. Были безуспешные попытки подключить экран от Нокии 3310 для вывода хоть чего-то, но одного лишь экрана всё равно не хватало…
Что ж, не вышло — так не вышло. Через какое-то время я заинтересовался носимыми компьютерами. Не в последнюю очередь из-за Fallout с извечным Pip-Boy, в интерфейсе которого я тогда проводил много времени ;-) Pip-Boy меня заинтересовал, но не только тем, что с его помощью можно было вылечиться перед очередной перестрелкой. Я уже какое-то время чувствовал, сколько скрытого потенциала есть в Linux-устройствах — Android тому примером. Проблемы начинаются около UI.
UI — одна из проблем, из-за которой я забросил свою панель управления. UI с нуля определять не так и просто — нужно знать, где дать свободу, а где ограничить пользователя твоего UI и того, кто будет на его основе создавать приложения.
А ещё UI сейчас в основном приспособлены под графические дисплеи. Которые огромны, неудобны и легко бьются, ну и так далее. Везёт, если есть тачскрин. Если нет — вози мышкой. Возвращаясь к носимым компьютерам — какая, к чёрту, носимость с огромным дисплеем?
Через какое-то время я полностью погряз в Raspberry Pi. Сейчас у меня в комнате под разные задачи приспособлены 4 штуки, ещё 2 свободны. Проблемы с их настройкой — нужно либо по сети лезть, либо по UART. По сети — какой там IP? Он вообще получен? А то что-то роутер молчит… UART? Ага, если только он не отключен. Был случай, когда пришлось монтировать SD-карту под другим компьютером и править параметры загрузчика… Как по мне, слишком сложно. Неоправданно сложно.
Что делать? Где брать вдохновение для решения всех этих проблем?
Вот здесь.
Да, в старых мобильных телефонах. Максимально простые системы меню для конфигурации, которые мы использовали в мобильниках и куче других устройств задолго до появления Raspberry Pi, но почему-то не перенесли дальше, туда, где их сейчас не хватает.
Пока это довольно маленький список, но его очень легко пополнять. pyLCI — это своего рода фреймворк, который легко расширяем «приложениями» на Python для добавления в него той или иной функции. Этим приложениям он предоставляет устройства ввода-вывода, которые можно использовать для общения с пользователем, как и набор основных элементов UI — вроде элемента меню. Таким образом, при написании приложения можно не концентрироваться на железе или нюансах логики UI (типа вложенных меню) и полностью посвятить себя решению основной цели =)
Нужен HD44780-совместимый дисплей. Типа такого:
Постоянный обитатель всяческих starter kits, сам стоимостью около 2$ (eBay).
Ещё нужны кнопки. Типа таких:
Или даже в составе этого:
Ещё 1-5$. Даже используя I2C-экспандеры (1$ штука), реально уложиться в 7-10$/комплект.
Если точнее, сейчас поддерживаются в основном GPIO-подключённые устройства (для Raspberry Pi) и I2C->GPIO экспандеры, как и USB HID устройства ввода. В планах:
Всем заинтересованным предлагаю ознакомиться с документацией [10], ну и инструкцией по установке [11]. Интересует разработка своего приложения? У меня есть небольшой crash course [12] и примеры в качестве кода уже написанных приложений [13].
Пожалуй, на этом на сегодня закончу. Меня очень интересует ваше мнение о моей идее/реализации, как и то, заинтересованы ли вы её использовать для своих Linux-устройств. Здесь [14]можно оценить планы на ближайшее будущее системы, как и примерный список приложений, которые будут добавлены в стандартную поставку в будущем.
Автор: CRImier
Источник [15]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/ui/116882
Ссылки в тексте:
[1] pyLCI — Python-based Linux Control Interface: http://pylci.readthedocs.org/en/latest/index.html
[2] моей самой первой статье на Хабре: https://habrahabr.ru/post/188108/
[3] когда садишься работать: https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%BA%D1%80%D0%B0%D1%81%D1%82%D0%B8%D0%BD%D0%B0%D1%86%D0%B8%D1%8F
[4] (больше информации здесь): http://pylci.readthedocs.org/en/latest/apps/wpa_cli.html
[5] Просматривать IP/MAC адреса интерфейсов: http://pylci.readthedocs.org/en/latest/apps/network.html
[6] Менять громкость: http://pylci.readthedocs.org/en/latest/apps/volume.html
[7] Переключать треки в консольном плеере: http://pylci.readthedocs.org/en/latest/apps/mocp.html
[8] Сканировать I2C шину на наличие девайсов: http://pylci.readthedocs.org/en/latest/apps/i2ctools.html
[9] Выключать и перезагружать компьютер: http://pylci.readthedocs.org/en/latest/apps/shutdown.html
[10] документацией: http://pylci.readthedocs.org/en/latest/
[11] инструкцией по установке: http://pylci.readthedocs.org/en/latest/setup.html
[12] небольшой crash course: http://pylci.readthedocs.org/en/latest/app_mgmt.html
[13] кода уже написанных приложений: https://github.com/CRImier/pyLCI/tree/master/apps
[14] Здесь : http://pylci.readthedocs.org/en/latest/plans.html
[15] Источник: https://geektimes.ru/post/273794/
Нажмите здесь для печати.