Como piscar o LED usando Raspberry Pi -(Parte 07/38)

A Intel e o ARM são as duas famílias de processadores populares amplamente utilizadas em dispositivos computacionais. Os processadores Intel são usados ​​​​principalmente em computadores pessoais, enquanto os processadores ARM são otimizados para aplicações de sistemas embarcados. Os processadores ARM de última geração podem fornecer dispositivos de sistema embarcado com tanto poder computacional quanto a maioria dos PCs. O Raspberry Pi é uma placa de minicomputador de baixo custo projetada para ser usada como um PC para fornecer ensino de informática em escolas remotas, onde desktops caros não estão disponíveis. O pessoal do sistema embarcado está interessado nele, pois usa um microcontrolador baseado no processador ARM11 e, ao contrário da placa-mãe do PC, a placa Raspberry pi oferece muitas pinagens, como pinos GPIO, pinos de comunicação serial, etc., que permitem que sejam usados ​​​​em sistemas embarcados. aplicações do sistema.

A placa Raspberrypi usa chip controlador Broadcom que é um SoC (System on Chip). Este controlador possui todos os periféricos como temporizadores, controlador de interrupção, GPIO, USB, PCM / I2S, controlador DMA, mestre I2C, escravo I2C / SPI, SPI0, SPI1, SPI2, PWM, UART0 e UART1. Este SoC possui o poderoso processador ARM11 que roda em 700 MHz em seu núcleo. O controlador também possui uma unidade de processamento gráfico (GPU) que inclui VideoCore, MPEG-2 e MPEG-4. Ele também possui uma SDRAM de 512 MB.

Os sistemas operacionais como Archlinux ARM, OpenELEC, Pidora, Raspbmc, RISC OS e Raspbian e também Ubuntu versões estão disponíveis para a placa Raspberrypi. Os sistemas operacionais Linux, especialmente o Ubuntu, são preferidos para todos os tipos de programação e desenvolvimento. Este artigo discute como começar a acessar os pinos GPIO do javali Raspberrypid usando programação C feita no Ubuntu.

((wysiwyg_imageupload:10535:))

Neste projeto a placa Raspberrypi é carregada com Ubuntu e é acessado remotamente usando VNC. A placa Raspberrypi também é Conectado a internet. Existem 26 conectores que podem ser retirados da porta do conector da placa Raspberrypi. Todos os pinos do conector são retirados usando conectores fêmea de 13 * 2 pinos e na outra extremidade do fio conectores macho Burg stick de 26 pinos são conectados. Os conectores macho Burg stick permitem que cada pino da placa Raspberrypi seja conectado aos orifícios de uma placa de ensaio.

Para acessar os pinos que saem do controlador Broadcom da placa Raspberrypi usando a linguagem C, está disponível uma biblioteca C chamada “bcm2835”. O primeiro passo no processo de codificação C para acesso ao GPIO da placa Raspberrypi é instalar a biblioteca “bcm2835”. O bcm2835 biblioteca está disponível para download como um arquivo zip que precisa ser copiado para o pasta /home/pi. O arquivo zip aparece como bcm2835-1.26.tar.gz na pasta /home/pi.

O arquivo zip deve ser descompactado primeiro e depois iniciar o processo de instalação. Todo o processo aqui é feito usando o Linha de comando do Linux. O comando para descompactar a pasta zip é fornecido abaixo:

alcatrão zxvf bcm2835-1.26.tar.gz

Este comando irá descompactar o arquivo .gz em uma pasta chamada bcm2835-1.26 na qual todos os arquivos de origem estão presentes. Agora o usuário deve entrar nessa pasta para continuar o processo de instalação. Para entrar na pasta use o seguinte comando;

cd bcm2835-1.26

Agora use os seguintes comandos um por um para finalizar o processo de instalação.

./configure

fazer

sudo faça verificação

sudo make install

Assim que a instalação for concluída, a biblioteca pode ser incluída como um arquivo de cabeçalho em qualquer código C, como

#incluir

Cada pino da placa Raspberrypi é declarado dentro deste arquivo de cabeçalho como seu número ou nome do pino, etc. As funções para acessar esses pinos também estão disponíveis neste arquivo de cabeçalho. Os detalhes da pinagem da placa Raspberrypi são fornecidos abaixo:

Fig. 2: Pinos de E/S de uso geral da placa Raspberry Pi

NÚMERO DO PIN

DESCRIÇÃO

1

3,3 V

2

5V

3

IASD

4

5V

5

SCL

6

GND

7

SCK,GPIO_7

8

Texas

9

GND

10

RX

11

GPIO_0

12

GPIO_1

13

GPIO_2

14

GND

15

GPIO_3

16

GPIO_4

17

3,3 V

18

GPIO_5

19

MOSI

20

GND

21

MISSÔ

22

GPIO_6

23

SCLK

24

CS_1

25

GND

26

CS_2

Figura 3: Número do pino e detalhes da placa Raspberrypi

A seção a seguir discute como escrever um código C para piscar um LED conectado a qualquer pino de saída de uso geral do Raspberrypi, digamos, pino número 11 (GPIO_0).

Poucas funções da biblioteca podem ser usadas aqui e os detalhes delas são fornecidos abaixo:

Não.

Função

Descrição

Parâmetros

Retornar

1

int bcm2835_init(void)

inicializar a biblioteca

1 se for bem-sucedido, senão 0

2

int bcm2835_close(vazio)

Feche a biblioteca

1 se for bem-sucedido, senão 0

3

vazio bcm2835_gpio_fsel

(

pino uint8_t,

modo uint8_t

)

Define o registro de seleção de função para um determinado pino, que configura o pino como entrada, saída ou uma das 6 funções alternativas.

pino: número GPIO

mode: Modo a definir

4

vazio bcm2835_delay

(

int não assinado milissegundos

)

Atrasos para o número especificado de milissegundos

milis: Atraso em milissegundos

Fig. 4: Funções da biblioteca para piscar o LED

As funções são utilizadas no código C para piscar o LED fornecido na guia Código 1.

O usuário pode usar editor vim para escrever o código e salve em um arquivo, diga “blink.c”. Na própria linha de comando use o seguinte comando para compilar o código com o novo arquivo de biblioteca para gerar o arquivo executável “blink”

cc piscar.c -lbcm2835 -o piscar

O arquivo binário pode ser executado usando o comando:

./piscar

Assim que o usuário digita o comando o LED conectado ao pino número 11 começa a piscar. A execução pode ser encerrada usando CTRL + C

************************************************** *****************************
Observação:
Neste projeto é utilizada a placa Raspberrypi versão 2, mas está instalada uma versão anterior da biblioteca “bcm2835”. Acessar o pino 13 do GPIO não é possível com esta biblioteca e, portanto, o 3terceiro O pino IO é selecionado como pin24 da porta P1 do Raspberrypi. O circuito e o código são modificados de acordo. Quem possui a versão 2 do Raspberrypi e a versão mais recente da biblioteca “bcm2835” pode usar o pino 13 do GPIO usando “RPI_V2_GPIO_P1_13” em vez de “RPI_GPIO_P1_13” na definição do pino.
Por exemplo, para definir um 'PIN' como 13º pino da porta P1 da placa Raspberrypi versão 2, use a seguinte instrução no código;
#define PIN RPI_V2_GPIO_P1_13

************************************************** *****************************

Código-fonte do projeto

###

 //------------------------------------------ led blinking code --------------------------------------------------//
#include <bcm2835.h>
#define PIN RPI_GPIO_P1_11

int principal
{
if (!bcm2835_init ) // inicializa a biblioteca
retornar 1;

bcm2835_gpio_fsel (PIN, BCM2835_GPIO_FSEL_OUTP); //Configura o pino como saída

enquanto (1)
{
bcm2835_gpio_write(PIN, ALTO); //Ligue-o
bcm2835_delay(500); // espere um pouco
bcm2835_gpio_write(PIN, BAIXO); // Desligue isso
bcm2835_delay(500); // espere um pouco
}
bcm2835_close ; //fecha a biblioteca

retornar 0;
}

//------------------------------------------ código piscando do led --- -----------------------------------------------//

###

Código-fonte do projeto

###

#include <bcm2835.h>

// Pisca no pino 11 do RPi Plug P1 (que é o pino 17 do GPIO)
#define PIN RPI_GPIO_P1_11

int principal
{

se (!bcm2835_init )
retornar 1;
//Configura o pino como saída
bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_OUTP);
// Piscar
enquanto (1)
{
//Ligue-o
bcm2835_gpio_write(PIN, ALTO);

// espere um pouco
bcm2835_delay(500);

// Desligue isso
bcm2835_gpio_write(PIN, BAIXO);

// espere um pouco
bcm2835_delay(500);
}
bcm2835_close ;
retornar 0;
}

###

Diagramas de circuito

CIRCUITO_51

Componentes do Projeto

  • LIDERADO
  • Resistor

Vídeo do projeto

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.