Sempre que ouvimos algo de Hacking
logo olhamos diretamente para segurança de aplicações talvez algo com foco em corrupção de
memória, ou então algo relacionado a Web. Bom, na real a palavra Hacking pode relacionar-se a
qualquer forma inteligente de se resolver um problema, ou em outras
palavras, se relaciona a soluções tanto incomuns, isso nos diz que
eletrônica também esta dentro desse estereótipo.
Como nos “artigos” anteriores não
foi visto algo entorno de eletrônica (algo empírico), então rumo a
algo diferente, simples e onde qualquer pessoa pode reproduzir:
sabe aquele controle remoto daquela TV velha? Podemos usar ele
em qualquer computador apenas utilizando um microcontrolador ligado a
um receptor de infra-vermelho , quem sabe para ajudar a automatizar
algumas tarefas como controlar um ventilador (vai precisar de relê),
atualizar aquele seu servidor com apenas um botão do controle e um
shellscript, passar slides de uma apresentação etc.
O que vamos precisar ?
1- Computador com algum Unix Like (nos testes foi usado um Fedora Linux)1- Controle remoto(no meu caso um samsung, o modelo “AA59-00469A”)1- Arduino nano 12,00 USD1- IR recv (vamos usar o “1838B”) 2,00 USD3 -Jumpers 1,00 USD1- Breadboard 2,50 USD
Total: 17,50 USD
Tente seguir a imagem (imagem feita
no Fritzing).
Então:
Fio verde seria terra(GND)Fio laranja seria 5vFio amarelo seria pino 6(entrada , vai passar os dados para o arduino)USB conectado no arduino(geralmente se tem um FTDI).
Por que não usar um attiny, PIC
etc?
Gosto de tentar pensar como MacGyver: quanto mais simples e mais barato melhor. Se um cardaço
e uma caneta resolver o problema, então para que complicar as
coisas? Iriamos perder tempo tentando corroer PCB, fazendo testes etc
(talvez seja nobre corroer o PCB em algo para ser feito em produção).
Fazendo Mapeamento de um controle remoto
Feito como planejado, agora precisamos
preparar o Software. Suponhamos que já tenha IDE do Arduino, então
só precisamos da biblioteca para lidar com a decodificação de
entradas do sinal do controle remoto.
Para tal feito:
$ git clone https://github.com/shirriff/Arduino-IRremote$ mv Arduino-IRremote ArduinoRemote; sudo cp -rf ArduinoRemote/ /usr/share/arduino/libraries
Então se tudo estiver OK na IDE do Arduino irá poder ver exemplos de códigos com controle remoto
na aba “File”.
Antes de desenvolver nosso código
precisamos fazer o mapeamento do controle remoto que vai ser usado.
Cada botão do controle representa um endereço diferente, e isso
varia de controle para controle.
Passamos o código para o Arduino e
então monitoramos a comunicação serial (onde esta circulado
de laranja na imagem). Em seguida apertamos as teclas do controle
remoto das quais queremos mapear, e anotamos os endereços.
Exemplo: ao apertar a tecla do controle
“1”, nos retorna o endereço “E13DDA28”.
Feito o mapeamento, vamos fazer o
programa para leitura da porta serial, para isso na teoria basta
executar um syscall open() no dispositivo
“/dev/ttyUSB0”(dependendo das condições do sistema pode
variar) e ir usando read() para cada entrada de dado.
Só ler entrada e interpretar cada
endereço não vai ser suficiente, seria interessante passar slides
de uma apresentação! Para isso vamos automatizar entradas do
teclado como se fosse usuário, então vamos usar o X11. De forma
sanar tal problema temos algumas bibliotecas chamadas libXtst e
libX11.
Para instalar:
Distribuições rpm like:$ yum install libXtst-devel libX11-develDistribuições deb like:$ apt-get install libXtst-dev libX11-dev
Para obter o código:
$ git clone https://github.com/CoolerVoid/arduino_ppt_walk
Repare onde foi implementado endereço
de cada tecla do controle:
Compilamos o código:
$ gcc IR_remote.c -o IR_remote -lX11 -lXtst -Wall
Então executamos e apontamos para o
dispositivo onde se encontra o Arduino:
$ ./IR_remote /dev/ttyUSB0
Abra sua apresentação, e use seu
controle remoto para passar os slides...
Um vídeo mostrando
seu funcionamento :
Conclusão
Isso só foi uma das
muitas atividades que podemos automatizar usando controle remoto.
Note que no botão “3”
do nosso programa faz tocar uma música em MP3. No contexto de
introdução ao hacking de controle remotos, com este artigo, já se
pode fazer muito. Talvez no futuro próximo possamos ver como fazer
um Jammer IR, ou mímico de controles remotos.
Referências :




Parabéns pelo projeto !
ResponderExcluirParabéns Antonio!
ResponderExcluir