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

Cómo hacer parpadear el LED usando Raspberry Pi - (Parte 07/38)

Intel y ARM son las dos familias de procesadores más populares y ampliamente utilizadas en dispositivos informáticos. Los procesadores Intel se utilizan principalmente en computadoras personales, mientras que los procesadores ARM están optimizados para aplicaciones de sistemas integrados. Los procesadores ARM de última generación pueden proporcionar a los dispositivos de sistemas integrados tanta potencia informática como la mayoría de las PC. La Raspberry Pi es una placa de minicomputadora de bajo costo diseñada para usarse como PC para brindar educación informática en escuelas remotas, donde es costosa. Los escritorios no están disponibles. La gente de los sistemas integrados está interesada en él porque utiliza un microcontrolador basado en el procesador ARM11 y, a diferencia de la placa base de la PC, la placa Raspberry pi ofrece muchos pines como pines GPIO, pines de comunicación en serie, etc., que permiten su uso en sistemas integrados. aplicaciones del sistema.

La placa Raspberrypi utiliza un chip controlador Broadcom que es un SoC (System on Chip). Este controlador tiene todos los periféricos como temporizadores, controlador de interrupciones, GPIO, USB, PCM/I2S, controlador DMA, maestro I2C, esclavo I2C/SPI, SPI0, SPI1, SPI2, PWM, UART0 y UART1. Este SoC cuenta con el potente procesador ARM11 que corre a 700 MHz en su núcleo. El controlador también tiene una unidad de procesamiento de gráficos (GPU) que incluye VideoCore, MPEG-2 y MPEG-4. También cuenta con una SDRAM de 512 MB.

Para la placa Raspberrypi están disponibles sistemas operativos como Archlinux ARM, OpenELEC, Pidora, Raspbmc, RISC OS y Raspbian y también versiones de Ubuntu. Los sistemas operativos Linux, especialmente Ubuntu, son los preferidos para todo tipo de programación y desarrollo. Este artículo analiza cómo comenzar a acceder a los pines GPIO del jabalí Raspberrypi usando programación C realizada en Ubuntu.

((wysiwyg_imageupload:10535:))

En este proyecto, la placa Raspberrypi se carga con Ubuntu y se accede a ella de forma remota mediante VNC . La placa Raspberrypi también está conectada a internet . Hay 26 conectores que se pueden sacar del puerto del conector de la placa Raspberrypi. Todas las clavijas del conector se extraen utilizando conectores hembra de 13 * 2 clavijas y en el otro extremo del cable se conectan conectores macho Burg Stick de 26 clavijas. Los conectores macho Burg Stick permiten conectar cada pin de la placa Raspberrypi a los orificios de una placa de pruebas.

Para acceder a los pines que salen del controlador Broadcom de la placa Raspberrypi usando el lenguaje C, está disponible una biblioteca C llamada “bcm2835”. El primer paso en el proceso de codificación C para acceder al GPIO de la placa Raspberrypi es instalar la biblioteca “bcm2835”. La biblioteca bcm2835 está disponible para descargar como un archivo zip que debe copiarse en la carpeta /home/pi . El archivo zip aparece como bcm2835-1.26.tar.gz en la carpeta /home/pi.

Primero se debe descomprimir el archivo zip y luego iniciar el proceso de instalación. Todo el proceso aquí se realiza mediante la línea de comandos de Linux . El comando para descomprimir la carpeta zip se proporciona a continuación:

alquitrán zxvf bcm2835-1.26.tar.gz

Este comando descomprimirá el archivo .gz en una carpeta llamada bcm2835-1.26 en la que están presentes todos los archivos fuente. Ahora el usuario deberá ingresar a esta carpeta para continuar con el proceso de instalación. Para ingresar a la carpeta use el siguiente comando;

cd bcm2835-1.26

Ahora use los siguientes comandos uno por uno para finalizar el proceso de instalación.

./configurar

hacer

sudo hacer verificación

sudo hacer instalar

Una vez completada la instalación, la biblioteca se puede incluir como un archivo de encabezado en cualquier código C, como

#incluir

Cada pin de la placa Raspberrypi se declara dentro de este archivo de encabezado como su número o nombre de pin, etc. Las funciones para acceder a estos pines también están disponibles en este archivo de encabezado. Los detalles de la distribución de pines de la placa Raspberrypi se proporcionan a continuación:

Fig. 2: Pines de E/S de uso general de la placa Raspberry Pi

NÚMERO DE PIN

DESCRIPCIÓN

1

3,3 V

dos

5V

3

ASD

4

5V

5

SCL

6

Tierra

7

SCK,GPIO_7

8

Texas

9

Tierra

10

RX

11

GPIO_0

12

GPIO_1

13

GPIO_2

14

Tierra

15

GPIO_3

dieciséis

GPIO_4

17

3,3 V

18

GPIO_5

19

MOSI

20

Tierra

21

señorita

22

GPIO_6

23

SCLK

24

CS_1

25

Tierra

26

CS_2

Figura 3: Número de pin de la placa Raspberrypi y detalles

La siguiente sección analiza cómo escribir código C para hacer parpadear un LED conectado a cualquier pin de salida de uso general de Raspberrypi, digamos el pin número 11 (GPIO_0).

Pocas funciones de biblioteca se pueden utilizar aquí y los detalles de ellos se proporcionan a continuación:

No.

Función

Descripción

Parámetros

Volver

1

int bcm2835_init(nulo)

inicializar la biblioteca

1 si tiene éxito, en caso contrario 0

dos

int bcm2835_close (vacío)

cerrar la biblioteca

1 si tiene éxito, en caso contrario 0

3

vacío bcm2835_gpio_fsel

(

pin uint8_t,

modo uint8_t

)

Establece el registro de selección de función para un pin determinado, que configura el pin como entrada, salida o una de las 6 funciones alternativas.

pin: número GPIO

modo: Modo por definir

4

vacío bcm2835_delay

(

milisegundos int sin signo

)

Retrasos durante el número especificado de milisegundos

millis: Retraso en milisegundos

Fig. 4: Funciones de la biblioteca hacer parpadear el LED

Las funciones se utilizan en el código C para hacer parpadear el LED proporcionado en la pestaña Código 1.

El usuario puede usar el editor vim para escribir el código y guardarlo en un archivo, diga "blink.c". En la línea de comando, use el siguiente comando para compilar el código con el nuevo archivo de biblioteca para generar el archivo ejecutable "parpadeante".

cc parpadeo.c -lbcm2835 -o parpadeo

El archivo binario se puede ejecutar usando el comando:

./parpadear

Tan pronto como el usuario escribe el comando, el LED conectado al pin número 11 comienza a parpadear. La ejecución se puede finalizar usando CTRL + C

************************************************** *******************************
Observación:
En este proyecto se utiliza la placa Raspberrypi versión 2, pero se instala una versión anterior de la biblioteca “bcm2835”. No es posible acceder al pin 13 de GPIO con esta biblioteca y, por lo tanto, el tercer pin IO se selecciona como pin 24 del puerto P1 de Raspberrypi. El circuito y el código se modifican en consecuencia. Aquellos que tengan la versión 2 de Raspberrypi y la última versión de la biblioteca “bcm2835” pueden usar el pin 13 de GPIO usando “RPI_V2_GPIO_P1_13” en lugar de “RPI_GPIO_P1_13” en la definición del pin.
Por ejemplo, para definir un 'PIN' como el pin 13 del puerto P1 de la placa Raspberrypi versión 2, utilice la siguiente declaración en el código;
#definir PIN RPI_V2_GPIO_P1_13

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

Código fuente del proyecto

###

 //------------------------------------------ código parpadeante del led --- ----------------------------------------- //
 #incluir <bcm2835.h>
 #definir PIN RPI_GPIO_P1_11

int principal
{
if (!bcm2835_init) // inicializa la biblioteca
devolver 1;

bcm2835_gpio_fsel (PIN, BCM2835_GPIO_FSEL_OUTP); //Configurar el pin como salida

mientras (1)
{
bcm2835_gpio_write(PIN, ALTO); //Encenderlo
bcm2835_delay(500); // espera un poco
bcm2835_gpio_write(PIN, ABAJO); // Apaga esto
bcm2835_delay(500); // espera un poco
}
bcm2835_close; //cerrar la biblioteca

devolver 0;
}

//------------------------------------------ Código parpadeante del LED -- - ----------------------------------------- //

###

Código fuente del proyecto

###

 #incluir <bcm2835.h>

// Parpadea en el pin 11 del RPi Plug P1 (que es el pin 17 del GPIO)
#definir PIN RPI_GPIO_P1_11

int principal
{

si (!bcm2835_init)
devolver 1;
//Configurar el pin como salida
bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_OUTP);
// Parpadear
mientras (1)
{
//Encenderlo
bcm2835_gpio_write(PIN, ALTO);

// espera un poco
bcm2835_delay(500);

// Apaga esto
bcm2835_gpio_write(PIN, ABAJO);

// espera un poco
bcm2835_delay(500);
}
bcm2835_close;
devolver 0;
}

###

Diagramas de circuito

CIRCUITO_51

Componentes del proyecto

  • CONDUJO
  • Resistor

Vídeo del proyecto

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.