Teclado de cinco botões

As interfaces gráficas são úteis, mas às vezes faltam. Criar uma interface amigável é uma arte e um desperdício de recursos. Portanto, a maioria dos programas só pode ser acessada por meio do shell de comando.



A interface de linha de comando é fácil e conveniente de criar, expanda a funcionalidade sem se preocupar com o usuário.



Se precisar customizar algo, mas o item desejado não estiver no menu, você pode acessar a configuração com as mãos. Se não houver acesso à configuração, você terá que sofrer.



É o que trago para o fato de que mesmo tendo uma interface gráfica, uma textual pode ser muito útil, principalmente se algo não foi previsto durante o desenvolvimento.



As reflexões sobre o teclado no Flipper Zero geraram uma discussão lenta sobre a otimização dos métodos de entrada. Eu amo bicicletas também, então aqui estão algumas idéias loucas.



Rolagem de classificação inteligente



Começaremos com uma simples rolagem de símbolos.



Há texto digitado, navegação pelo texto - setas esquerda / direita. Para selecionar um símbolo, role para cima / para baixo em uma lista linear de todos os símbolos.



É muito estranho, vamos fazer algumas melhorias.



Com base no texto inserido pelo usuário, coletaremos estatísticas em n-gramas de caracteres. No caso mais simples, pegamos os 4 símbolos anteriores, classificamos a tabela de símbolos pela frequência de uso com este tetragrama. O usuário começa a rolar para baixo e encontra rapidamente o símbolo desejado. Ao rolar para cima, há um conjunto fixo de comandos de serviço, como espaço, excluir o caractere anterior, maiúsculas e minúsculas e layout.



Para uma gama restrita de tarefas, esse método seria adequado, mas para uma pessoa ainda é muito difícil. Você tem que se concentrar para não perder o sinal desejado e isso é cansativo.



imagem



Sistema ternário



E se você apenas se lembrar da localização dos intervalos de caracteres Unicode desejados?

Digamos o código do símbolo, confirmamos, digitamos o próximo.



Temos 5 botões. Se usarmos um para confirmar a entrada e o segundo para apagar o último dígito, existem 3 botões por número. Digamos para cima - 0, para a direita - 1, para baixo - 2.



Basta se acostumar com o sistema ternário e aprender as faixas dos códigos exigidos. A conveniência é questionável, mas se acostumar com esse método de entrada é muito mais fácil do que criar código Morse. Existe alguma redundância, é possível inserir de tudo, desde caracteres de controle a emojis, mas dificilmente alguém precisará usar mais de cem letras e sinais de pontuação.



imagem



Rolagem 2D



Vamos expandir a rolagem para várias linhas de símbolos, classificados por frequência de uso, de modo que a distância de Manhattan do ponto inicial ao símbolo seja maior quanto menos for usado.



imagem



Acontece muito mais conveniente, nenhuma preparação é necessária. Interface pobre e intuitiva, bastante adequada para uma tela pequena. Em telefones com botão de pressão, você pode discar todos os tipos de caracteres especiais de maneira semelhante. Mas, reduzindo o tamanho para uma linha, você pode fazer isso em telas muito pequenas.



imagem



A entrada deve ser controlada visualmente, então um treinamento longo não é necessário (código Morse hello) e a disposição dos caracteres deve ser estática, caso contrário, a discagem rápida não funcionará. Embora, talvez seja uma questão de hábito, se nossos botões usados ​​com frequência pulassem sob nossos dedos, o cérebro poderia se adaptar, mas nós temos o que temos.

Você também pode criar todos os tipos de códigos Huffman, mas essas são complicações desnecessárias, além da impossibilidade de expansão. O código Morse é um exemplo disso.



Aqui está um link para o código da demonstração usada na postagem



Incluída como uma biblioteca Python, a função ternária aceita opcionalmente uma string para edição. Para sair do modo de navegação, pressione a seta para cima. No modo de edição, o código ternário do caractere é digitado (cima - 0, direita - 1, baixo - 2, esquerda - apagar o último dígito, Enter - confirmar). Para sair, pressione Enter, a função retornará a linha editada.



Na função de rotação, tudo é muito mais simples - selecione um símbolo com as setas, confirme com o botão Enter. Na primeira linha superior: Inserir Tab, Shift, Backspace, Espaço, Alimentação de linha, Excluir e Caps Lock.



All Articles