Acessando Remotamente a ASUS Tinker Board
![](/upload/tutoriais/251_header_pt_H.png)
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
![](/upload/tutoriais/251_header_pt_L.png)
Lista completa de produtos
comprar![](https://s3-sa-east-1.amazonaws.com/robocore-lojavirtual/1126/images/1126_1_M.png?20210809105731)
ASUS Tinker Board S
![](https://s3-sa-east-1.amazonaws.com/robocore-lojavirtual/739/images/739_1_M.png?20240605163749)
Fonte Chaveada 5V 3A com Conector micro USB
![](https://s3-sa-east-1.amazonaws.com/robocore-lojavirtual/701/images/701_1_M.png?20240605163322)
Cabo HDMI x HDMI 2m
![](https://s3-sa-east-1.amazonaws.com/robocore-lojavirtual/985/images/985_1_M.png?20240626161709)
Protoboard 400 Pontos
![](https://s3-sa-east-1.amazonaws.com/robocore-lojavirtual/1079/images/1079_1_M.png?20240522085037)
WorkPlate 400 - Preta
![](https://s3-sa-east-1.amazonaws.com/robocore-lojavirtual/1081/images/1081_1_M.png?20240625133742)
LED 5mm Vermelho (10 unidades)
![](https://s3-sa-east-1.amazonaws.com/robocore-lojavirtual/1102/images/1102_1_M.png?20240617102345)
Resistor 300Ω - Pacote com 10 unidades
![](https://s3-sa-east-1.amazonaws.com/robocore-lojavirtual/1314/images/1314_1_M.png?20210726115532)
Jumper Premium 10cm Macho-Fêmea - 40 Unidades
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](https://www.robocore.net/upload/tutoriais/251_img_1_H.png?971)
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](https://www.robocore.net/upload/tutoriais/251_img_2_H.png?266)
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](https://www.robocore.net/upload/tutoriais/251_img_3_H.png?118)
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](https://www.robocore.net/upload/tutoriais/251_img_4_H.png?688)
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](https://www.robocore.net/upload/tutoriais/251_img_5_H.png?393)
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](https://www.robocore.net/upload/tutoriais/251_img_6_M.png?921)
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](https://www.robocore.net/upload/tutoriais/251_img_7_H.png?813)
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](https://www.robocore.net/upload/tutoriais/251_img_8_H.png?745)
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](https://www.robocore.net/upload/tutoriais/251_img_9_H.png?901)
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](https://www.robocore.net/upload/tutoriais/251_img_9_H.png?405)
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](https://www.robocore.net/upload/tutoriais/251_img_11_H.png?365)
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](https://www.robocore.net/upload/tutoriais/251_img_9_H.png?541)
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](https://www.robocore.net/upload/tutoriais/251_img_12_M.png?669)
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
.