O documento descreve como conectar componentes eletrônicos como LEDs e potenciômetros à placa Intel Galileo e controlar suas entradas e saídas digitais e analógicas através de programação no sistema de arquivos. Ele fornece instruções passo a passo para a montagem do circuito e código para ligar e desligar um LED e ler valores do conversor AD do potenciômetro.
03 - Intel Galileo: Controle de GPIO e Entrada Analógica
1. Intel Galileo: Acesso ao GPIO General Purpose Input/Output
Objetivo
Escrever e ler nos pinos de entrada e saída digital e analógica
14/11/2014
2. Intel Galileo: Acesso ao GPIO General Purpose Input/Output
Material necessário
Intel Galileo
Placa de prototipagem rápida (protoboard)
Resistor de 2,2Kohms
Potênciômetro com valor acima de 4,7 Kohms
Cabo para conexão
Script que habilita servidor Telnet na Galileo ( veja tutorial 2)
14/11/2014
3. Intel Galileo: Acesso ao GPIO General Purpose Input/Output
Conexão dos componentes
A Galileo apresenta o mesmo layout para Shield do Arduino. Para esse experimento
será utilizado o pino 7 como entrada e saída digital e o pino A0 com entrada analógica
14/11/2014
entrada e saída digital
4. Intel Galileo: Acesso ao GPIO General Purpose Input/Output
Conexão dos componentes
A Galileo apresenta o mesmo layout para Shield do Arduino. Para esse experimento
será utilizado o pino 7 como entrada e saída digital e o pino A0 com entrada analógica
14/11/2014
entrada analógica
5. Intel Galileo: Acesso ao GPIO General Purpose Input/Output
Conexão dos componentes
14/11/2014
ligar um cabo do ponto
7 no protoboard
6. Intel Galileo: Acesso ao GPIO General Purpose Input/Output
Conexão dos componentes
14/11/2014
inserir o resistor no
protoboard
7. Intel Galileo: Acesso ao GPIO General Purpose Input/Output
Conexão dos componentes
14/11/2014
conectar o led ao
resistor
8. Intel Galileo: Acesso ao GPIO General Purpose Input/Output
Conexão dos componentes
14/11/2014
Ligar um fio entre o
Led e o ponto GND
da placa
9. Intel Galileo: Acesso ao GPIO General Purpose Input/Output
Conexão dos componentes
14/11/2014
inserir o
potenciômetro no
protoboard
10. Intel Galileo: Acesso ao GPIO General Purpose Input/Output
Conexão dos componentes
14/11/2014
Conectar um fio entre o
terminal do potenciômetro
e o ponto da protoboard
que vai ligado ao GND da
placa
11. Intel Galileo: Acesso ao GPIO General Purpose Input/Output
Conexão dos componentes
14/11/2014
Conectar o terminal
central do potenciômetro
ao ponto AO da placa
12. Intel Galileo: Acesso ao GPIO General Purpose Input/Output
Conexão dos componentes
14/11/2014
Ligar o terminal do
potenciômetro no
ponto 3.3V da placa
13. Intel Galileo: Acesso ao GPIO General Purpose Input/Output
Montagem Completa
14/11/2014
Confira todas as
conexões antes de
alimentar a placa
14. Intel Galileo: Acesso ao GPIO General Purpose Input/Output
Programação: Saída Digital
Para controlar a porta GPIO pelo sysfs é preciso exportar a mesma escrevendo
o número da porta para /sys/class/gpio/export.
A GPIO 27 corresponde ao pino 7 na shield do Arduino portanto deve-se
escrever:
# echo -n "27" > /sys/class/gpio/export
14/11/2014
15. Intel Galileo: Acesso ao GPIO General Purpose Input/Output
Programação: Saída Digital
Em seguida é preciso indicar a direção como entrada “in” ou saída “out”
# echo -n "out" > /sys/class/gpio/gpio27/direction
14/11/2014
16. Intel Galileo: Acesso ao GPIO General Purpose Input/Output
Programação: Saída Digital
Para controlar uma carga que consome maior corrente como um LED é
preciso configurar o modo do drive do chip CY8C9520A como strong
# echo -n "strong" > /sys/class/gpio/gpio27/drive
14/11/2014
17. Intel Galileo: Acesso ao GPIO General Purpose Input/Output
Programação: Saída Digital
Para ligar o LED o arquivo deve receber o valor “1”
# echo -n "1" > /sys/class/gpio/gpio27/value
14/11/2014
18. Intel Galileo: Acesso ao GPIO General Purpose Input/Output
Programação: Saída Digital
Para desligar o LED o arquivo deve receber o valor “0”
# echo -n “0" > /sys/class/gpio/gpio27/value
14/11/2014
19. Intel Galileo: Acesso ao GPIO General Purpose Input/Output
Programação: Entrada Analógica
A entrada analógica na Galileo é implementada com o chip conversor
analógico digital AD7298 com resolução de 12 bits gerando valores de 0
a 4095. A entrada analógica é multiplexada com pinos de GPIO de forma
que é necessário como passo inicial habilitar a entrada analógica.
# echo -n "37" > /sys/class/gpio/export
# echo -n "out" > /sys/class/gpio/gpio37/direction
# echo -n "0" > /sys/class/gpio/gpio37/value
14/11/2014
AD7298
20. Intel Galileo: Acesso ao GPIO General Purpose Input/Output
Programação: Entrada Analógica
Com a entrada analógica conectada o valor lido é obtido com a leitura
do Sysfs.
# cat /sys/bus/iio/devices/iio:device0/in_voltage0_raw
3245
14/11/2014
AD7298
Entrada A0 da Shield Arduino da Galileo
21. Intel Galileo: Acesso ao GPIO General Purpose Input/Output
Programação: Entrada Analógica
Gire o eixo do potênciômetro e a seguir execute o comando para
verificar a alteração na leitura
# cat /sys/bus/iio/devices/iio:device0/in_voltage0_raw
14/11/2014
22. Intel Galileo: Acesso ao GPIO General Purpose Input/Output
Autor:
Prof. Dr. Marco Túlio Chella
DCOMP - Departamento de computação
UFS - Universidade Federal de Sergipe
Agradecimento
A Intel que cedeu a placa Galileo para o desenvolvimento desse trabalho.