Acessando Remotamente a ASUS Tinker Board




Introdução

Você já pensou se é possível realizar o controle de pinos GPIOs da ASUS Tinker Board através de outro computador? A resposta é sim. Neste tutorial utilizaremos o protocolo de rede SSH (Secure Shell) para acionar e desligar terminais GPIO da Tinker Board através do emulador de terminal Putty.

Lista de Materiais

Estabelecendo a Conexão com Outro Computador

Para acessar remotamente a Tinker Board é necessário conectar a placa através de um cabo de rede ao seu roteador, assim como o seu computador também deve estar conectado no mesmo. Com a placa conectada e ligada, abra o terminal de comandos "LXTerminal" (neste tutorial estamos utilizando o sistema operacional Debian, oficial da ASUS) para que possamos determinar o endereço IP de sua placa. Com o terminal aberto, envie o comando ip addr. Esse comando irá retornar uma série de informações, como pode ser visto na imagem abaixo.

ip-addr
Informações de Retorno do Comando "ip addr"

De acordo com a imagem acima, o IP da placa é 192.168.0.154, porém esse valor de IP deve ser diferente na sua rede.

Com o IP da placa descoberto, agora iremos estabelecer conexão com a placa através do computador. Para isso utilizaremos o programa Putty, portanto é necessário realizar o download e a instalação deste programa.

Após o processo de instalação do Putty, e com o programa aberto, é possível observar uma janela como na imagem abaixo.

putty
Janela Principal do Putty

Agora, para acessarmos remotamente a Tinker Board, basta digitar corretamente o endereço de IP obtido pelo comando ip addr no campo "Host Name (or IP Address)". Recomendamos que salve a configuração do endereço de IP de sua placa para que não seja necessário realizar todo o processo anterior novamente. Para isso, basta digitar um nome de sua preferência no campo "Saved Sessions", e então, com o endereço de IP configurado corretamente, clicar no botão "Save", como na imagem abaixo.

putty saved
Salvando as Configurações no Putty

Com as configurações salvas, agora basta abrir a comunicação entre os dispositivos conectados, neste caso o seu computador e a Tinker Board. Ao pressionar o botão "Open", é aberta uma nova janela de confirmação de conexão, então confirme a confiança. Após a confirmação, uma nova janela de atenção é exibida com a mensagem que a conexão foi feita corretamente, e basta fechá-la para que a janela de comandos seja aberta, como na imagem abaixo.

janela aberta
Janela de Login

Para realizar o login, basta digitar "linaro" para tanto o usuário, quanto a senha. Esses usuário e senha são padrões para os dispositivos com este sistema operacional, porém, caso você tenha alterado anteriormente o login e senha de seu sistema, é necessário utilizar os valores atuais. Vale lembrar que, diferentemente do login, a senha não é impressa na tela de comandos, portanto digite com cuidado para não ter de repetir o processo. Após realizado o login, você terá uma tela como na imagem abaixo.

login feito
Login Efetuado

Com o login efetuado e com o terminal aberto, agora iremos utilizar os locais de acesso das portas GPIOs da placa para acender e apagar LEDs através de comandos.

Acionando e Desligando LEDs

Circuito

Para realizar o experimento de acender e apagar o LED através de comandos enviados pelo Putty, monte o circuito a seguir.

circuito
Circuito Elétrico

Software

Para descobrir o endereço de arquivo necessário para acionar e desligar um LED através de um porta GPIO, utilizamos o comando sudo gpio readall #need GPIO_C_Library. Esse comando retorna um relatório com todas as portas GPIOs, assim como seus estados atuais (1 ou 0), suas direções (entrada ou saída), seus endereços físicos e os locais de arquivos da CPU. O relatório retornado pelo comando pode ser visto na imagem abaixo.

portas gpio
Relatório de Portas GPIOs

Infelizmente, nem todas as portas GPIOs podem ser acessadas da maneira que iremos ver nesse tutorial. Na verdade, apenas uma não pode, a porta CPU 17.

Para acessar as portas GPIOs através dos locais de arquivos, é necessário ter acesso de superusuário. Para ter acesso de superusuário, basta enviar o comando sudo su. Após executar esse comando, é possível observar que o cabeçalho de comandos foi alterado, como na imagem abaixo.

super usuario
Acesso de Superusuário

Agora que o acesso de superusuário está garantido pelo sistema operacional, podemos acessar os locais de arquivos responsáveis por determinar o valor e a direção do pino GPIO desejado. Neste caso utilizamos, como exemplo, o pino físico 40 com endereço de CPU 188. Para isso necessitamos exportar a porta que será utilizada através do comando echo 188 > /sys/class/gpio/export, como pode ser visto com a imagem abaixo.

exportando gpio
Exportando a Porta GPIO

Após exportar a porta 188, precisamos configurar essa mesma porta como uma saída, para que ela possa ligar um LED. O comando utilizado para isso é echo out > /sys/class/gpio/gpio188/direction, como é possível observar na imagem abaixo.

definindo saida
Definindo a Porta GPIO como Saída

Agora, para acender o LED, é necessário alterar o valor da porta que estamos utilizando através do comando echo 1 > /sys/class/gpio/gpio188/value, como pode ser visto na imagem abaixo.

alterando valor
Alterando o Valor da Porta GPIO para 1

Após enviar o comando, é possível observar que o LED do circuito físico montado com a Tinker Board está aceso.

Depois de ligar o LED, é recomendado desligá-lo, configurar o pino utilizado como uma entrada e, além disso, desfazer a exportação da porta 188 da pasta acessada. Para isso, utilizamos os comandos contrários dos utilizados anteriormente, como pode ser visto na imagem abaixo.

desfazendo
Desfazendo o Procedimento de Acesso Remoto

Isso irá garantir que, para projetos futuros, as configurações utilizadas para acender um simples LED não irão influenciar na execução de sensores ou atuadores conectados à essa mesma porta GPIO.

Indo Além

LED L
LED BuiltIn da Tinker Board Aceso

Assim como a BlackBoard UNO, a Tinker Board, por incrível que pareça, também possui um LED interno em seu circuito. Ele também pode ser acessado através deste mesmo processo realizado para alterar o valor de um terminal GPIO. Porém, diferentemente das portas GPIO, para acender e apagar esse LED interno são utilizados locais de arquivos diferentes.

Para acender o LED indicado na imagem ao lado, utilize o comando echo 1 > /sys/class/leds/led1-led/brightness. Isso fará com que o LED laranja fique aceso.

Não se esqueça de, depois de observar o LED built-in aceso, desacioná-lo, para não correr o risco de obter um comportamento inesperado da placa. Para fazer isso, utilize o comando echo 0 > /sys/class/leds/led1-led/brightness.




Avatar