Boa tarde Garagistas!

Uma dúvida. É possível ler a tecla ESC do teclado do computador na serial do arduino?

Obrigado.

Exibições: 352

Responder esta

Respostas a este tópico

Até onde sei, não.

O que você pode fazer, é desenvolver um software no computador que faça a leitura dos botões pressionados em seu teclado e, a depender do que foi pressionado, enviar um dado "N" para a serial. Da mesma forma, seu arduino deverá ter acesso a serial do computador (usb) além de ter desenvolvido um código que faça uma leitura constantemente dos dados da serial.

Olá, Rodrigo!

   Eu não consegui entender se você quer ligar um teclado de PC diretamente no Arduino ou se você quer ligar o Arduino ao PC pela serial e ter um sinal enviado ao Arduino quando alguém pressiona a tecla 'ESC'

Imaginando a primeira opção:

   Os primeiros teclados de PC com interface USB que surgiram tanto funcionavam com protocolo USB como com protocolo PS/2, que é muito parecido com I2C.  Isto se devia ao fato de que precisavam ser compatíveis com computadores mais antigos, que não tinham USB.

   Se os novos continuam assim, não sei, mas, se continuarem, você está com sorte, pois até um Arduino UNO é capaz de implementar uma interface PS/2.

   Neste caso, seriam apenas 2 sinais, DATA e CLK, além, é claro, de +5VCC e GND para alimentar o teclado e referenciar ambos ao mesmo potencial.

   Não achei na Internet nenhum sketch que tenha interfaceado o teclado do PC com o Arduino, mas há muitos exemplos dos fabricantes de microcontroladores, inclusive provavelmente a Atmel ( now Microchip ), neste sentido.

   Não deve ser difícil adaptá-los para o Arduino.

   Abraço!

   D.T. Ribeiro.

P.S.: Já procurou se não tem algo parecido no canal do Carlos Kwiek no YouTube?

Olá Rodrigo!

   Se, entretanto, a sua opção for por ler a tecla ESC pela serial, então vale o que o Thiago Merces disse.

   Fiz o seguinte teste:

   Escrevi um sketch ( veja anexo, tire o final txt da extensão ) para ler um caracter pela serial do Arduino e piscar o LED_BUILTIN se o caracter recebido for o ESC.

   Como fiz para jogar o ESC do teclado do PC pela serial?

   Bem, é só um teste, muito provavelmente você não poderá utilizar este método na tua aplicação e terá de desenvolver um software para isto, conforme orientação do Thiago.

   Mas, só para testar, vale:

   Depois de carregar o sketch no Arduino, abri o 'command prompt' do Windows e digitei

         copy con COM2

   Este comando pode ser traduzido por: 'copie o que eu digitar no teclado do PC para a serial COM2'

   Onde COM2 é a serial do PC onde o Arduino está ligado.

   A seguir pressionei e soltei a tecla ESC e, em seguida, pressionei e soltei a tecla ENTER ( este é um dos problemas, enquanto não digitar ENTER o dado não sai pela serial do PC ).

O código da tecla ESC chegou no Arduino e ele fez o que estava programado para fazer caso isto acontecesse.

Para terminar o comando copy do PC, digite control-Z.

Conclusão: Se você puder rodar um programa no PC que envie pela serial alguma informação quando alguém pressionar a tecla ESC, vai funcionar.

Abraço!

D.T. Ribeiro

Faltou o anexo   :-)

Anexos

   E também esqueci de dizer que as duas seriais ( Arduino e PC ) devem estar comas mesmas configurações, taxa de comunicação, data bits, paridade, stop bits.

Olá.

  Se o cenário for:

  Vc no PC usando um programa de terminal padrão (TTY), daqueles que enviam cada tecla digitada é só aguarda um ASCII 27, que corresponde ao ESC. 

   Já se for um terminal do tipo moderninho, onde vc tem que dar enter para ele enviar a linha toda isso pode não funcionar. Cada terminal pode ter um jeito, mas não é padrão permitir pq não faz sentido para uso padrão.

   Recomendo usar um terminal TTY, aih fica simples.

   Se a resposta não for essa diria que não entendi a pergunta...

   Veja mais em: 

https://forum.arduino.cc/t/is-there-any-way-to-type-special-charact...

   Tem sugestões de programas de terminal do tipo TTY.

   Agora... se vc quer ganchar uma informação do teclado do PC para que o arduino seja avisado quando o usuário apertou o ESC mesmo que não esteja no modo terminal... complica... Mas é possivel. Vc teria que fazer um programa que ganche o handle do teclado. Isso é bem complexo. Possivelmente conseguiria com o visual studio, delphi, coisas assim. 

  Ref:

https://docs.microsoft.com/pt-br/dotnet/api/system.windows.input.ke...

  Obs: acho que não foi isso que vc perguntou, mas para armazenar conhecimento no forum:

 Deplhi é uma IDE que roda pascal, na piada do "Pra quem só conhece martelo, qualquer problema é prego", ele seria um martelete eletropneumático a bateria nuclear e ultrasonico da Makita...

Como interceptar teclas, mesmo que seu programa não esteja sob o foco (digitadas em outro programa).


https://www.thoughtco.com/intercepting-keyboard-input-1058465

Ref: Contextualizando a "piada": 

https://youtu.be/HEaIsKm-pao

   Citação: "Pra quem só conhece martelo, qualquer problema é prego"

   Muito boa, não conhecia.

   Vídeo do Fábio Akita muito bom também. Obrigado, embora eu não seja o O.P.( Original Poster :-).

D.T. Ribeiro

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço