Programação GPIO

De Caninos Loucos
Ir para: navegação, pesquisa

Esta página explica como programar as saídas GPIO (General Purpose Input/Output) da Labrador, que são basicamente fios nos quais você pode enviar e receber dados. Para facilitar a programação, a placa Labrador é compatível com o formato da Raspberry Pi, e possui a biblioteca wiringK9, baseada na wiringPi, também da Raspberry Pi. Veja a seguir detalhes sobre a pinagem GPIO, e sobre como usar a wirkingK9.

Configuração dos pinos

A configuração de pinos para o cabeçalho compatível com Raspberry Pi é a seguinte:

caption Mapeamento do header de 40 pinos.

Primeiros passos

Instalando wiringK9

Para começar a usar a biblioteca wiringK9, o primeiro passo é instalá-la. Em sistemas Linux, os seguintes comandos são usados:

$ git clone https://github.com/caninos-loucos/wiringK9.git 
$ cd wiringK9
$ chmod +x ./build
$ sudo ./build

Incluindo e inicializando

Depois de instalar o wiringK9 ele estará pronto para ser usado em seus projetos, para isso você precisa incluir seu arquivo de cabeçalho em seu código usando a linha #include <wiringPi.h>.

Depois de incluído, o wiringK9 pode ser inicializado de quatro maneiras diferentes. Nós recomendamos o uso do seguinte comando:

int wiringPiSetupPhys (void);

Inicializar o GPIO dessa maneira garantirá que os números de pinos da Figura acima sejam usados. Assim, um exemplo de "blink" (piscar) no pino 7 (GPIOB18) ficaria assim:

#include <wiringPi.h>
int main (void)
{
  wiringPiSetupPhys () ;
  pinMode (7, OUTPUT) ;
  while (1)
  {
    digitalWrite (7, HIGH) ; delay (500) ;
    digitalWrite (7, LOW) ; delay (500) ;
  }
  return;
}

As outras formas de inicializar a biblioteca são usando uma das funções abaixo:

int wiringPiSetup (void) ;
int wiringPiSetupGpio (void) ;
int wiringPiSetupSys (void) ;

Se usar wiringPiSetupGPIO ou wiringPiSetupSys, a configuração do pino seguirá o número do GPIO original do chip Broadcomm usado no Raspberry Pi. Uma tabela com a equivalência pode ser encontrada na seção [pin].

Compilando

Finalmente, para compilar um código usando a biblioteca wiringK9, as seguintes linhas de comando são necessárias:

-I/usr/local/include -L/usr/local/lib -lwiringPi

Outros parâmetros que podem ser úteis, dependendo do ambiente em execução, são -lwiringPi, -lwiringPiDev e -lpthread.

Funções

As principais funções dessa biblioteca podem ser encontradas na tabela abaixo:
image

Mapeamento dos pinos na inicialização

Physical Numbering
wiringPiSetupPhys() wiringPiSetup() wiringPiSetupGpio() wiringPiSetupSys()
1
2
3 8 2 2
4
5 9 3 3
6
7 7 4 4
8 15 14 14
9
10 16 15 15
11 0 17 17
12 1 18 18
13 2 27 27
14
15 3 22 22
16 4 23 23
17
18 5 24 24
19 12 10 10
20
21 13 9 9
22 6 25 25
23 14 11 11
24 10 8 8
25
26 11 7 7
27 30 0 0
28 31 1 1
29 21 5 5
30
31 22 6 6
32 26 12 12
33 23 13 13
34
35 24 19 19
36 27 16 16
37 25 26 26
38 28 20 20
39
40 29 21 21