PDF de programación - Manejando el mundo con la Raspberry Pi

Imágen de pdf Manejando el mundo con la Raspberry Pi

Manejando el mundo con la Raspberry Pigráfica de visualizaciones

Publicado el 25 de Abril del 2019
397 visualizaciones desde el 25 de Abril del 2019
3,4 MB
23 paginas
Creado hace 2a (27/09/2017)
Manejando el mundo con la Raspberry Pi (RPi)

2017/9/27
Àngel Perles

Contenido

● Objetivo
● Opciones de conexión

● bajo nivel: GPIO, SPI, I2C, UART
● CSI
● DSI
● USB

● Un caso práctico

● El problema
● El montaje
● El software
● WiringPi
● Probando

armpower.blogs.upv.es

2

Objetivo

● Tener criterio para seleccionar el tipo de dispositivos adecuado a cada

interfaz de la RPi

● Conocer básicamente software para acceder al subsistema de bajo

nivel

● Practicar con un ejemplo hardware + software

armpower.blogs.upv.es

3

Opciones de conexión

● Estos son las opciones y sus conectores para una RPi 2 modelo B

● Veamos qué podemos conectar. De “low-level” a “high-level”

armpower.blogs.upv.es

4

Opciones de conexión: bajo nivel

● El conector P1 incorpora las interfaces de bajo nivel

● General Pourpose Input/Out (GPIO)
● SPI e I2C
● UART

pin 2
pin 1

Ver http://elinux.org/RPi_Low-level_peripherals

armpower.blogs.upv.es

5

Opciones de conexión: bajo nivel

● Función asociada a los pines

armpower.blogs.upv.es

6

Opciones de conexión: bajo nivel

● GPIO

● Para hacer entrada/salida digital: abierto/cerrado, blanco/negro, grande/pequeño
● Nivel “0” -> 0 voltios, Nivel “1” -> 3,3 voltios
● Pines configurables como salida o como entrada
● Pull-up, pull-down programable
Ideal para
● Leer (sensar) botones, sensores de presencia, finales de carrera, ...
● Escribir (actuar) LEDs, relés, electroválvulas, motores ...



armpower.blogs.upv.es

7

Opciones de conexión: bajo nivel

● GPIO

● PEGA: poca corriente de salida, unos 15 mA por pin
● Hace falta algún tipo de amplificación para las cargas grandes
● NO PROBLEM: montones de plaquitas en el mercado

Placa de relés por 4 Eur.

armpower.blogs.upv.es

8

Opciones de conexión: bajo nivel

● GPIO

Vamos a trastear saltando al

“Ejemplo práctico”.

Después seguimos con las opciones

armpower.blogs.upv.es

9

Opciones de conexión: bajo nivel



I2C



“Inter-integrated circuit” es un bus de datos serie

● Pines: SCL (serial clock), SDA (serial data) y GND



Ideal para tener un chorro de sensores/actuadores sin requisitos de alta
velocidad
– Sensores digitales de temperatura, posición, magnetómetros, corriente
– Actuadores digitales sencillos
– Memorias donde se guardan pocas cosas (incluyendo tipo DNIe)
– Conversores anológico-digitales, digitales-analógicos lentos
– Reloj de tiempo real

● O lo montas tu o compras uno hecho. Miles en el mercado

Pantallita

armpower.blogs.upv.es

RTC

Memoria FRAM

10

Opciones de conexión: bajo nivel

● SPI

● Serial Peripheral Interconnect
● Pines: MOSI, MISO (master-slave input-output), CEx (chip enable), SCK (serial

clock) y GND

● Pretende reemplazar buses paralelos con la ventaja de un serie sencillo



Ideal para chips con relativa alta tasa de transferencia
– Conversores analógico-digitales, digitales-analógicos rápidos,

acelerómetros, giróscopos, memoria serie (las SD son memorias serie)

– Pantallas TFT sencillas
– Extensores de puertos. CAPES

● O lo montas tu o lo compras hecho. Miles en el mercado

IMU

armpower.blogs.upv.es

TFT

Extensor PIFACE

¡Perfecto para
trastear!

11

Opciones de conexión: bajo nivel

● UART

● Universal Asynchronous Receiver Transmiter
● El bus serie de toda la vida (RS-232, RS-485, ...)
● Desplazado por USB en el área de consumo
● Pero muy vivo en el área industrial
Ideal para dispositivos industriales
– GPS
– Básculas industriales
– Módulos GSM
– Monederos electrónicos



GPS

armpower.blogs.upv.es

BÁSCULA

12

Opciones de conexión: CSI

● MIPI Camera Serial Interface

● Otro estándar del MIPI
● http://mipi.org/specifications/camera-interface
● Hay cámara oficial por 25 Eur. (Camera module v2)
● 8 megapixels
● hasta 1080p
● driver V4L (Video for Linux) siiiiiií. Perfecto para OpenCV, ...
● Pi Noir: versión infrarroja
(es la misma sin filtro IR)

armpower.blogs.upv.es

13

Opciones de conexión: DSI

● MIPI Display Serial Interface

● Una interfaz para paneles LCD estandarizada por MIPI
● http://mipi.org/specifications/display-interface
● Ha costado, pero ya hay una versión oficial
● Conseguir una pantalla económica y compatible es muy problemático

Típico de paneles
de móviles y tablets.

armpower.blogs.upv.es

14

Opciones de conexión: USB

● Universal Serial Bus 2.0 tipo host

● Universalmente conocido por la enorme diversidad de opciones
● Recordad lo del HUB



Ideal para dispositivos “complejos”: módem 3G, impresoras, Wi-Fi, Bluetooth,
cámaras, etc.

● Y no tan complejos: discos duros, teclados, ratones, conversores USB a RS-232,

RS-485, 1-wire, ...

● La PEGA son los drivers:

● Asegurarse antes de que hay driver para el Linux “mainstream”
● El driver debe ser de código abierto para que se pueda recompilar en la RPi

NOTA: Las marcas de estos dispositivos no se han elegido porque sí.
COMPRA productos que soporten oficialmente Linux: HP, Logitech, Transcend, ...

armpower.blogs.upv.es

15

Un caso práctico: el problema

● Quiero gestionar el llenado de un depósito. Tengo un sensor de

llenado que hay que leer y una válvula que hay que controlar

● Parece lógico usar la GPIO

armpower.blogs.upv.es

16

Un caso práctico: el montaje

● Ahora montamos las cosas (sustituyendo por componentes

desnudos y baratos para ver fluir electrones)
● LED, pulsador, 2 resistencias de 220 Ohms y cables

armpower.blogs.upv.es

17

Un caso práctico: el montaje

APAGAR LA PI. QUITAR ALIMENTACIÓN. MONTAR CON CAUTELA

BCM_GPIO 17

BCM_GPIO 18

NOTA IMPORTANTE: Se monta así por motivos didácticos.
Mala manera de hacer las cosas, pues se deberían proteger los pines.

armpower.blogs.upv.es

18

Un caso práctico: el software

● Vale ya he comprado, montado y conectado el cacharro

● MAL: primero nos aseguramos de que hay software para usarlos

● O son drivers que ya vienen en Linux “mainstream”
● O vienen en los repositorios generales o adicionales
● O están en código fuente y hay que compilarlos

● En Linux, los dispositivos suelen mostrarse en /dev/*

armpower.blogs.upv.es

19

Un caso práctico: software/wiringPi

● Primero nos debemos preocupar de la parte software
● Opción “a pelo”. Acceso como archivos



/sys/class/gpio/gpio

● $ echo 1 > /sys/class/gpio/gpio17/value



... y a complicarse la vida

● Opción “alguien ya se lo ha currado”.



recomendable la biblioteca “wiringPi”

● http://wiringpi.com/

armpower.blogs.upv.es

20

Un caso práctico: wiringPi

● wiringPi







funciones para la GPIO, I2C, SPI
soporta además las placas de extensión más populares: piface, gertboard, ...
y viene listo para algunos chips típicos: sensores de temperatura, conversores
AD, ...

● Viene en código fuente y está en un repositorio git
● ¿pega? ¡no!

● $ sudo apt-get install gcc
● $ sudo apt-get install git-core
● $ git clone git://git.drogon.net/wiringPi
● $ cd wiringPi
● $ ./build

NOTA: En la última Raspbian de fecha February 2016 ya está
instalado gcc, git y wiringPi. Estas usando esa, pero lo vamos a hacer
como pone aquí por didáctica

armpower.blogs.upv.es

21

Un caso práctico: probando

● Veamos si va. Probad:

● pi@raspberrypi ~ $ gpio -g mode 17 out
● pi@raspberrypi ~ $ gpio -g write 17 1
● pi@raspberrypi ~ $ gpio -g write 17 0

● Si va, pues hacemos un pequeño script

● pi@raspberrypi ~ $ cd
● pi@raspberrypi ~ $ mkdir test_pin
● pi@raspberrypi ~ $ cd test_pin
● pi@raspberrypi ~ $ leafpad test_pin & (suponemos terminal dentro X o

entubado X)

● guardar como “test_pin”
● pi@raspberrypi ~ $ chmod 700 ./test_pin
● pi@raspberrypi ~ $ ./test_pin

armpower.blogs.upv.es

22

Un caso práctico:probando

● Veamos el pulsador:

● pi@raspberrypi ~ $ gpio -g mode 18 up
● pi@raspberrypi ~ $ gpio -g read 18



y probar con el pulsador presionado o no

armpower.blogs.upv.es

23
  • Links de descarga
http://lwp-l.com/pdf15792

Comentarios de: Manejando el mundo con la Raspberry Pi (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad