Touchberry Pi: detalles técnicos
Instalación inicial
Primeros pasos
Los Touchberry Pi de 7" y 10.1" se entregan con la tarjeta SD cargada con la imagen del sistema y la configuración de fábrica, listos para usar nada más sacarlos de la caja.
Programar el Touchberry
Los paneles Touchberry, basados en una placa Raspberry Pi, se programan igual que una Raspberry Pi estándar. Además, tienen la ventaja de incorporar una pantalla táctil capacitiva para visualizar y manejar el panel directamente.
Node-RED
Node-RED viene preinstalado de serie: es un editor de flujos en el navegador que permite programar de forma gráfica dispositivos, API y servicios en línea. Está construido sobre Node.js, y aprovecha por completo su modelo basado en eventos y sin bloqueos.
Alimentación
El Touchberry se alimenta con una fuente de corriente continua de 12 a 24 Vdc, con una corriente de 2,5 A a 12 Vdc y 1,25 A a 24 Vdc. Consumo máximo: 28 W.

El Touchberry separa los pines de comunicación de los pines de entradas y salidas. Para usar las entradas y salidas hay que alimentarlas también por separado, con 12 a 24 Vdc (además de la alimentación general descrita arriba).
La alimentación general permite usar el Touchberry y sus comunicaciones, pero para usar las entradas y salidas hay que alimentar también los pines 24V COM y GND COM.
Entradas y salidas
Entradas analógicas
En las entradas analógicas, la tensión entre -Vcc (masa) y +Vcc puede tomar cualquier valor dentro de un rango amplio. Una entrada analógica entrega una medida en forma de valor digital, representado con un número de N bits. Las entradas y salidas están aisladas funcionalmente de la parte lógica (Raspberry Pi) y comparten una masa común (GND COM).
El Touchberry Panel tiene 2 entradas analógicas (I-0 e I-1), configurables con jumper como 0-10 Vdc o 4-20 mA, con resolución de 12 bits.
Para leer el valor de las entradas analógicas, el Touchberry incluye una serie de programas de prueba.
Con la configuración 4-20 mA (la de fábrica), se hace así:
Si la entrada analógica está configurada para 0-10 V, se hace así:
Recuerde que las entradas y salidas deben estar alimentadas a través de los pines 24V COM y GND COM.
Recuerde también conectar una resistencia de 1 kΩ en serie con la entrada analógica (el modo 4-20 mA viene configurado de fábrica y la resistencia es necesaria).
Entradas digitales
En las entradas digitales, la tensión entre -Vcc (masa) y +Vcc solo puede estar en dos estados: 0 (-Vcc o GND) o 1 (+Vcc), sin valores intermedios. Las entradas y salidas están aisladas funcionalmente de la parte lógica (Raspberry Pi) y comparten una masa común (GND COM).
El Touchberry Panel tiene 3 entradas digitales (I-2 a I-4), 5-24 Vdc, para sensores PNP.
Para leer el valor de una entrada digital se usan los programas de prueba precompilados, así:
Devuelve 0 si la entrada está en nivel bajo (LOW) y 1 si está en nivel alto (HIGH).
Recuerde que las entradas y salidas deben estar alimentadas a través de los pines 24V COM y GND COM.
Salidas digitales
La tensión pasa de –Vcc (o GND) a +Vcc, sin valores intermedios. Dos estados: 0 (-Vcc o GND) y 1 (+Vcc). Las salidas se alimentan desde la borna 24V COM (12-24 Vdc) y están aisladas funcionalmente de la parte lógica (Raspberry Pi).
El Touchberry Panel tiene 5 salidas digitales (O0 a O4), tipo PNP, 12-24 Vdc. Máximo 250 mA por salida y 0,4 A en total (suma de todas las salidas activas).
Para activar las salidas digitales se usan, igual que con las entradas, los programas de prueba incluidos:
En este caso los parámetros son la salida (O0..O4) y el estado deseado: 0 para nivel bajo (LOW) y 1 para nivel alto (HIGH).
La placa del Touchberry tiene LED que muestran el estado ordenado a cada salida digital.
Importante: las salidas digitales no están protegidas contra cortocircuito. Para cargas distintas de bobinas de relé o pilotos, o si el cableado puede sufrir un cortocircuito, recomendamos intercalar un módulo de relé de interfaz, por ejemplo Phoenix Contact PLC-RSC-24DC/21 (ref. 2966171: entrada 24 Vdc, 9 mA, 1 contacto conmutado, 6 A). Si las E/S se alimentan a 12 Vdc, use la versión de 12 Vdc de la misma familia.
Recuerde que las entradas y salidas deben estar alimentadas a través de los pines 24V COM y GND COM.
Protocolos de comunicación
Ethernet
Ethernet es la tecnología más utilizada en las redes de área local cableadas (LAN). Una LAN es una red de ordenadores y otros equipos electrónicos que cubre un área pequeña, como una sala, una oficina o un edificio, a diferencia de una red de área amplia (WAN), que abarca zonas geográficas mucho mayores. Ethernet es el protocolo de red que controla cómo se transmiten los datos en una LAN; técnicamente se denomina IEEE 802.3. Ha evolucionado hasta transmitir datos a un gigabit por segundo.
*IMPORTANTE: asegúrese de que el equipo está alimentado (12-24 Vdc). Solo con el USB no hay potencia suficiente para la comunicación Ethernet.
Pines utilizados:
La comunicación Ethernet por la interfaz eth0 no utiliza ningún pin de la Raspberry Pi.
La configuración del hardware Ethernet es plug and play.
Puede establecer una conexión sencilla con la herramienta NETCAT con estos comandos:
Por ejemplo:
O puede escribir código algo más elaborado y crear automatizaciones más complejas según las funciones que necesite.
WI-FI/BLUETOOTH
Wi-Fi es uno de los avances tecnológicos más importantes de la era moderna. Como otras conexiones inalámbricas, por ejemplo Bluetooth, es una tecnología de transmisión por radio basada en un conjunto de estándares que permite comunicaciones rápidas y seguras entre todo tipo de dispositivos digitales, puntos de acceso y equipos. Permite a los dispositivos con Wi-Fi acceder a internet sin cables. Funciona a distancias cortas y largas, y puede ser una red protegida o abierta, por lo que es muy versátil y fácil de usar.
Bluetooth es otro estándar de tecnología inalámbrica, pensado para intercambiar datos a corta distancia. Funciona en el rango de 2400-2483,5 MHz, dentro de la banda ISM de 2,4 GHz. Los datos se dividen en paquetes y se intercambian por uno de los 79 canales Bluetooth (cada uno de 1 MHz de ancho de banda).
Todos los productos de la familia Raspberry Pi incorporan conexión Wi-Fi/Bluetooth.
Para configurar el Wi-Fi, puede seguiresta guía.
Y si quiere saber cómo usar Bluetooth, por ejemplo para comunicar el equipo con un teléfono Android, puede seguiresta guía.
I2C
I2C es un protocolo síncrono que solo usa 3 cables: reloj (SCL), datos (SDA) y masa (GND). El maestro y el esclavo envían los datos por el mismo cable, controlado por el maestro, que genera la señal de reloj. I2C usa direcciones para seleccionar los esclavos.
I2C es un bus de comunicaciones serie. Su velocidad es de 100 kbit/s en modo estándar, aunque admite hasta 3,4 Mbit/s. Es muy utilizado en la industria, sobre todo para comunicar microcontroladores con sus periféricos o circuitos integrados de una misma placa.
Ejemplo de uso
Para enviar un mensaje I2C en Linux puede usar el paquete i2c-tools, que incluye los comandos i2cset e i2cget.
Sirven, respectivamente, para escribir datos en un dispositivo I2C y para leerlos.
Ejemplo de uso de i2cset para enviar un mensaje I2C:
i2cset -y <bus_number> <device_address> <register_address> <value> [b]
- <bus_number>: número del bus I2C (p. ej., 1 para /dev/i2c-1).
- <device_address>: dirección I2C del dispositivo de destino.
- <register_address>: dirección del registro en el que se quiere escribir.
- <value>: valor que se quiere escribir en ese registro.
- [b]: parámetro opcional que indica que el valor está en formato byte.
Por ejemplo, para escribir el valor 0x45 en el registro 0x02 de un dispositivo I2C con dirección 0x50 en el bus 1, ejecute:
El número de bus, la dirección del dispositivo, la dirección del registro y el valor dependen de su hardware y de lo que necesite.
Además, puede que tenga que comprobar que los módulos I2C del kernel están cargados (i2c-dev y el controlador de su hardware). Puede comprobarlo con el comando lsmod.
Ejemplo de uso de i2cget para leer datos de un dispositivo I2C:
Este comando lee un byte del registro 0x02 del dispositivo I2C con dirección 0x50 en el bus 1. La salida es el valor leído del registro.
SPI
SPI es un bus de comunicación síncrono con arquitectura maestro-esclavo. Los esclavos no pueden iniciar la comunicación ni intercambiar datos directamente entre sí. Solo el maestro puede seleccionar con qué esclavo se comunica, mediante el pin SS (slave select).
Ejemplo de uso
Para las comunicaciones SPI recomendamos la librería spidev.
pip install spidev
Aquí tiene un ejemplo sencillo en Python para comunicarse con este protocolo.
Este código Python usa la librería spidev para abrir una conexión SPI, enviar datos y recibir la respuesta de un dispositivo SPI.
RS-485
RS-485, también conocido como TIA-485(-A) o EIA-485, es un estándar que define las características eléctricas de emisores y receptores para comunicaciones serie. La señal es diferencial y admite sistemas multipunto.
Ejemplo de uso
En este equipo, RS-485 se puede configurar como Half Duplex o Full Duplex. A continuación verá un ejemplo de cada uno.
Antes de usar esta comunicación hay que hacer algunas configuraciones previas.
Para configurar RE y DE:
La velocidad (baudrate) es muy importante en las comunicaciones serie y se configura así:
En este ejemplo se ha fijado en 115200, pero puede cambiarla según sus necesidades. Con esto ya se puede empezar.
Half Duplex:
Configuración de DE y RE para usar RS-485 en Half Duplex.
- Para recibir:
Después, para ver los datos que se reciben, use el comando:
- Para transmitir:
Así se pueden enviar mensajes, por ejemplo con:
Full Duplex:
Configuración de DE y RE en Full Duplex:
Ya puede usar RS-485 en sus proyectos.
Recomendamos dejar al menos 1 ms entre recepción y transmisión.
El puerto /dev/ttyS0 es común a las comunicaciones serie (RS-485, RS-232, TTL): solo se puede usar una de ellas, que se elige al hacer la compra.
RS-232/TTL
RS-232, también conocido como TIA-232-F, EIA-232-F o V.24, es un estándar de transmisión de datos serie. Define los niveles de tensión, la temporización de las señales y el protocolo de datos entre equipos.
TTL (lógica transistor-transistor) es una familia lógica digital que usa transistores para implementar funciones lógicas. En comunicaciones serie, TTL se refiere a los niveles de tensión que representan los datos binarios: normalmente de 0 a 5 V, donde la tensión alta es un 1 lógico y la baja un 0.
Ejemplo de uso
A continuación, un ejemplo válido para RS-232 y TTL, fijando la velocidad en 115200 con el siguiente comando:
Después se envía un mensaje así:
Y se recibe por el puerto ejecutando:
El puerto /dev/ttyS0 es común a estas comunicaciones serie: solo se puede usar una de ellas, que se elige al hacer la compra.
Funciones adicionales
UPS SHIELD
Todos los equipos de la familia Raspberry PLC incluyen el UPS Shield, un SAI inteligente Plug & Play que da 5 segundos de alimentación ante un corte de corriente. Ese tiempo extra permite que la Raspberry se apague correctamente, evitando que se corrompa la tarjeta SD. El SAI se recarga en menos de 1 minuto y el tiempo de reconexión es inferior a 20 segundos.
Si quiere ejecutar comandos concretos durante un apagado por el SAI, puede añadirlos al fichero "/etc/rpishutdown/hooks/pre-poweroff". Puede que tenga que dar permisos de ejecución al fichero con el comando "sudo chmod ugo+x /etc/rpishutdown/hooks/pre-poweroff ".
Configuración de hardware
*IMPORTANTE: asegúrese de que el Touchberry está alimentado (12-24 Vdc) y de que el UPS Shield está bien montado.
Configuración de interruptores:
El UPS Shield no tiene ningún interruptor: está siempre activo. Solo hay que mantener el equipo conectado al menos 1 minuto al arrancar para que se recarguen los supercondensadores.
Configuración de software
*IMPORTANTE: asegúrese de haber seguido correctamente laguía de instalación del sistema operativo.
Configuración de software:
Si ha seguido correctamente la guía de instalación del sistema operativo, el UPS Shield funcionará automáticamente cuando haga falta.
Panel capacitivo
Los paneles táctiles capacitivos se consideran superiores a los resistivos por varios motivos:
- Mayor sensibilidad: responden mejor al tacto y detectan con más precisión, incluso con toques suaves.
- Multitáctil: admiten gestos con varios dedos, como pellizcar para ampliar o deslizar, igual que en móviles y tabletas.
- Imagen más nítida: no necesitan capas adicionales sobre la pantalla, lo que mejora la claridad y la transmisión de luz respecto a los resistivos.
- Durabilidad: suelen durar más que los resistivos, que se desgastan con el tiempo, sobre todo si se tocan con objetos punzantes.
- Respuesta más rápida: reaccionan antes, lo que da un manejo más fluido, como en móviles y tabletas.
- Menos presión: registran el toque con menos fuerza, lo que resulta más cómodo que un panel resistivo.
- Vida más larga: no sufren el desgaste mecánico de la presión que se aplica a los paneles resistivos.
RTC (UPS SHIELD)
El UPS Shield incluye un circuito RTC DS3231 que se comunica con la Raspberry Pi por el bus I2C. Se habla de reloj de tiempo real (RTC) para distinguirlo de los relojes de hardware ordinarios, que son solo señales que marcan el ritmo de la electrónica digital y no cuentan el tiempo en unidades humanas. No debe confundirse con la computación en tiempo real, que comparte las siglas pero no tiene que ver con la hora del día.
Aunque se puede llevar la hora sin RTC, usarlo tiene ventajas:
- Bajo consumo (importante cuando funciona con la alimentación de respaldo).
- Libera al sistema principal para tareas críticas en tiempo.
- A veces es más preciso que otros métodos.
Una pila de botón de litio de 3 V (CR1220) alimenta el RTC, que se basa en el chip DS3231. El reloj de tiempo real serie DS3231 es un reloj/calendario de bajo consumo en código BCD. La dirección y los datos se transmiten en serie por I2C. Da segundos, minutos, horas, día de la semana, fecha, mes y año, y ajusta automáticamente el fin de mes en los meses de menos de 31 días, incluidos los años bisiestos. Funciona en formato de 24 horas o de 12 horas con indicador AM/PM. El DS3231 detecta los cortes de alimentación y pasa automáticamente a la alimentación de respaldo, sin dejar de contar el tiempo.
Configuración de hardware
*IMPORTANTE: asegúrese de que el Touchberry está alimentado (12-24 Vdc) y de que el UPS Shield está bien montado.
Configuración de software
*IMPORTANTE: asegúrese de haber seguido correctamente laguía de instalación del sistema operativo.
Configuración de software:
Una vez hecha la configuración de hardware, se puede pasar a la configuración de software y al uso. Puede consultaresta guíapara hacerlo.
Mejoras de las nuevas versiones
Las nuevas versiones del Touchberry incorporan una serie de mejoras:
- Aislamiento entre los pines de E/S y los de comunicación
- Un USB adicional disponible
- Posibilidad de añadir una placa Click
- Mejor aislamiento de los conectores RS485 e I2C
- Mejor gestión térmica, que elimina la necesidad de ventilador y mejora el tamaño, el peso y el ruido del producto.
