HacKeyboard, um teclado mecânico de hardware aberto – parte I

Olá a todos! 🙂 Após algum tempo sem escrever nada no blog estou finalmente de volta com um projecto novo que tenho vindo a desenvolver aos poucos (simultaneamente com outros 3 ou 4 projectos que também deverão estar prontos em breve 🙂 ). Na realidade até estou a usar o próprio projecto para escrever esta publicação. Apresento-vos o espetacular, o fantástico, o magnífico… HacKeyboard!

Hackeyboard

Afinal, o que é o HacKeyboard?

Parece ser um teclado de computador, e é um teclado de computador, mas não é um teclado qualquer. A sua história e as suas funções escondidas fazem dele muito mais do que isso. “Debaixo do capot” acabam por encontrar as seguintes características e funcionalidades:
  • Interruptores SMK Alps Mount: Sim, é um teclado NKRO (N-Key Roll Over) completamente mecânico com os velhinhos mas bons interruptores SMK Alps Mount. Por baixo de cada tecla existe um interruptor que dá ao utilizador um feedback audível e táctil bastante próprio dos teclados antigos dos anos 80.
  • Tamanho compacto:  tem um formato “tenkeyless” (não tem o teclado numérico) e layout Português.
  • Comandos especiais para gravar até 12 macros: se costumam trabalhar com folhas de cálculo e frequentemente têm a penosa tarefa de ter de repetir as mesmas coisas em diversas células, com o HacKeyboard podem gravar até 12 sequências de teclas diferentes, podendo cada sequência ser composta por 150 teclas. Se são “gamers” e querem disparar, saltar, andar para o lado e recarregar a arma com um só click, o HacKeyboard também é capaz de tratar disso; São programadores e querem escrever as vossas estruturas if, while e for automaticamente? Adivinharam! O HacKeyboard também consegue fazer isso! Ah, e é tudo feito utilizando combinações de teclas, sem ser necessário qualquer software. Está tudo embebido no firmware do microcontrolador do teclado.
  • Keylogger interno: Exactamente, podem gravar tudo o que vocês/outras pessoas que usem o teclado escrevam  no teclado. O que é que podem fazer com essa informação? Deixo isso à vossa imaginação! Lembrem-se apenas que com grande poder vem também uma grande responsabilidade!
  • HUB USB interno: Tem um conector micro USB adicional onde se pode ligar uma daquelas pen drives micro USB que apareceram recentemente no mercado ou qualquer outro dispositivo USB utilizando um cabo USB OTG.
  • Armazenamento interno de 8GB secreto: bem… agora que estou a dizer isto já não é secreto 😛 O HacKeyboard tem uma pen drive USB interna de 8GB que nunca será vista pelo computador a menos que seja pressionada uma combinação específica de teclas. Perfeito para armazenar as fotografias/vídeos/documentos secretos.
  • 4 modos de iluminação LED: O HacKeyboard tem um anel de LEDs RGB à sua volta que pode funcionar de quatro modos diferentes: estático, “arco-íris”, sequenciador de LEDs (ao estilo do KITT) e respiração. As cores podem também ser configuradas usando apenas combinações de teclas sem ser necessário qualquer software. Se não for pressionada nenhuma tecla durante algum tempo, o modo de respiração é activado automaticamente.
  • Hardware e software 100% abertos: podem reprogramar o microcontrolador para mudar as combinações de teclas, adicionar modos de iluminação, fazer o que vos apetecer (Desafio: meter um modo para jogar Pong 1D no teclado 😉 ).
  • EEPROM interna: qualquer macro ou configuração de cor que seja feita é guardada numa EEPROM interna. O teclado pode ser desligado sem problemas, que da próxima vez que for ligado continua a ter todas as macros e configurações de cor definidas anteriormente.
  • USB-HID: é um dispositivo USB HID normal, o que significa que utiliza um driver genérico e funciona em Linux, Windows e Mac.

Ah e grande parte das peças foi retirada de teclados velhos, tornando-o um projecto bastante barato de desenvolver 🙂

Gostaram das funções especiais? Vamos ver como se usam

Tal como mencionado anteriormente, qualquer uma das funções especiais do teclado pode ser usada sem ser necessário qualquer software específico. Tudo é feito utilizando combinações de teclas. Na fila de teclas superior, à direita, está estava a tecla Pause/Break, que talvez 99,9% dos utilizadores actuais de computadores nunca usaram e nem sabem para que pode ser usada. Apesar de saber para o que pode ser usada, não a uso e, por isso, substituí-a por uma tecla Power, que é a tecla que faz toda a magia acontecer no teclado. Quando a tecla Power é pressionada, o teclado entra no modo “Power”, onde se podem usar algumas outras teclas para usar as funções especiais do teclado. Segue-se abaixo a lista de sequências de teclas para utilizar os comandos especiais:

Hackeyboard

Guardar macros:

  • <Power>, <S>, <Fx>: O teclado entra no modo “power” e fica pronto para guardar uma macro na posição <Fx> (Fx pode ser qualquer tecla de F1 a F12). Qualquer coisa que seja escrita com o teclado depois desta sequência de teclas será guardada na posição <Fx>. Para sair do modo de gravação de macros, basta pressionar <Power>.

Reproduzir macros:

  • <Power>, <Fx>: O teclado entra no modo “power”, reproduz a macro guardada na posição <Fx> e sai do modo “power”.

Activar/Desactivar o keylogger:

  • <Power>, <L>: O teclado entra em modo “power”, activa/desactiva o keylogger interno e sai do modo “power”.

Reproduzir o histórico do keylogger:

  • <Power>, <K>: O teclado entra em modo “power”, reproduz o histórico do keylogger e sai do modo “power”.

Activar/Desactivar o armazenamento interno USB de 8GB:

  • <Power>, <P>: Esta sequência de teclas irá activar/desactivar o armazenamento interno USB de 8GB e sair do modo “power”. É recomendado que antes de desactivar o mesmo seja feita a remoção segura do dispositivo de armazenamento USB no sistema operativo do computador.

Mudar as cores:

  • <Power>, <R/G/B>, <+/->: Esta sequência de teclas irá mudar a quantidade de Vermelho(R)/Verde(G)/e azul(B) no anel de LEDs. Se for pressionado o <+> irá aumentar a componente de cor escolhida e se for pressionada a tecla <-> a componente de cor escolhida irá diminuir.
  • Depois de modificar a cor a operação pode ser cancelada ao carregar em <Power> e o anel de LEDs irá restaurar a cor predefinida anterior ou pode-se guardar a cor escolhida como a nova cor predefinida. Existem 4 cores que podem ser configuradas ao pressionar diferentes teclas:
    • <C>: Ao pressionar esta tecla a cor escolhida será guardada para o modo de funcionamento normal do teclado.
    • <D>: Ao pressionar esta tecla a cor escolhida será guardada para o modo “power”.
    • <E>: Ao pressionar esta tecla, a cor escolhida será guardada para sinalizar quando se entra no modo de guardar macros mas ainda não foi escolhida a posição de gravação.
    • <3>: Ao pressionar esta tecla, a cor escolhida será guardada para sinalizar quando se está em modo de gravação de macro e a posição de gravação já foi escolhida. Tudo o que for escrito quando esta cor é apresentada será guardado na posição de macro escolhida.
  • Para terminar a configuração de cores e voltar ao modo normal de utilização do teclado, basta carregar na tecla <Power>

Porque raio fui eu “gastar” o meu tempo a construir um teclado?

Bem, algum tempo atrás deram-me um pequeno conjunto de computadores e periféricos de computador velhos e entre eles encontrava-se um antigo teclado IBM Modelo M2 com interruptores do tipo “buckling spring” e layout Português. O som “click click click” das teclas trouxe ao de cima a nostalgia de usar aqueles teclados antigos que quase pareciam máquinas de escrever pelo barulho que faziam. Se nasceram no anos 80 ou antes disso sabem do que estou a falar. O teclado tinha um conector PS2, que liguei num computador desktop velho. Funcionou perfeitamente e pensei imediatamente que o teclado que uso no dia a dia iria ser substituído assim que conseguisse arranjar um conversor de USB para PS2.  Contudo, assim que consegui arranjar um fiquei desapontado porque a tecla “< >”  não funcionava. Comprei outro conversor diferente, mas o resultado foi o mesmo. Parece que os adaptadores não foram feitos para serem usados com o layout Português. :/

Entretanto, comecei a investigar um pouco mais sobre teclados e acabei por descobrir que existem comunidades como a GeekHack e a Deskthority com discussões intermináveis sobre teclados mecânicos: novos produtos, colecções de teclados vintage, modificações de teclados, teclados DIY, etc. Quem adivinharia? Enquanto lia esses forums, vi alguns teclados mecânicos compactos sem teclado numéricos e decidi que queria ter um! Contudo, mais uma vez fiquei desapontado por descobrir que não existia um único teclado mecânico compacto com layout em Português a ser fabricado. Parece que o mercado português é pequeno demais para ser lucrativo para os fabricantes. Mesmo falando de teclados mecânicos em português com o tamanho normal, penso que só existem uns 3 ou 4 e desses só metade têm um layout 100% português, uma vez que os outros parecem ter sido adaptados de outra língua, visto que têm algumas teclas de tamanho diferente e alguns símbolos estão em posições diferentes. Apenas recentemente o Ozone Strike Battle (que parece ser muito fixe, mas não tão fixe como o HacKeyboard, é claro 🙂 ) apareceu no mercado e apesar de aparecer em alguns sítios como tendo o layout português, não tive ainda a oportunidade de confirmar se é realmente um layout PT-PT ou um adaptado. Ah!… e há mais uma coisa bastante comum nos teclados mecânicos… são bastante caros!

Acabei por me encontrar numa situação em que queria mesmo um produto que não podia comprar em lado nenhum. Pareceu o fim do caminho, mas não o foi… Vivemos numa era em que a informação está disponível gratuitamente na Internet e as ferramentas de fabricação digital estão a entrar na casa do “comum mortal”. Considerando-me um Maker, a solução foi simples: “Vou fazer o meu próprio teclado”, decidi.

HacKeyboard

Estão a gostar do projecto? Sigam o link para ler o resto e para ver o conjunto completo de fotos da construção: [HacKeyboard, um teclado mecânico de hardware aberto – parte II]


Achou esta publicação útil? Deseja contribuir para outros projectos envolvendo ciências computacionais, electrónica, robótica ou mecatrónica que serão publicados neste blog? Se sim, pode fazer uma doação utilizando o botão do Paypal abaixo. Obrigado! 🙂

Donate



  • Facebook
  • Twitter
  • Google Plus
  • LinkedIn
  • Reddit
  • Delicious
  • StumbleUpon
  • Digg
  • RSS
  • Email
  • Print