Skip to main content

Uso de Hardware e Interfaces

Este wiki introduce los distintos componentes de hardware e interfaces en el reTerminal y cómo utilizarlos para expandir tus ideas de proyecto.

Nota: Para cierto hardware e interfaces, las instrucciones de uso varían entre la imagen de Raspberry Pi OS, la imagen Buildroot y la imagen Yocto. Por defecto se describen los pasos para Raspberry Pi OS. Cuando difiera en Buildroot o Yocto, se indicará explícitamente.

Visión General de Hardware

pir

pir

Pines de 40 pines compatibles con Raspberry Pi

pir

Los 40 pines constan de 26 GPIO, hasta 5 × I2C, hasta 5 × SPI, hasta 5 × UART, 1 x PCM, 1 x PWM, 1 × interfaz SDIO, 1 × DPI (Parallel RGB Display), hasta 3× GPCLK outputs y 1 interfaz USB.

La interfaz USB se extiende desde la interfaz USB 2.0 interna del Compute Module 4, lo que permite expandir más conectores USB y lograr velocidades de hasta 480 Mbit/s usando esta interfaz.

También puedes usar estos 40 pines para conectar Hats compatibles con Raspberry Pi y expandir tus proyectos.

Visita aquí para explorar varias Hats de Raspberry Pi que ofrece Seeed Studio y aquí para más Hats de terceros.

Los GPIO pueden consumir una corriente máxima de 50 mA en total. Esto significa 50 mA distribuidos entre todos los pines. Por lo tanto, cada pin GPIO individual puede consumir 16 mA de forma segura. En cambio, el consumo máximo para cada uno de los pines restantes es 2 A. Tenlo en cuenta al conectar hardware adicional.

Esquemático

pir

Consejo: Haz clic aquí para una imagen de mayor resolución.

Uso - GPIO

  1. Configurar pin como GPIO
sudo -i   #habilita privilegios de root
cd /sys/class/gpio
echo 23 > export #GPIO23 es el Pin 16
cd gpio23
  1. Configurar GPIO como entrada/salida
echo in > direction  #GPIO como entrada
echo out > direction #GPIO como salida
  1. Configurar GPIO en nivel alto/bajo
echo 1 > value  #GPIO nivel alto
echo 0 > value #GPIO nivel bajo
  1. Obtener estado de entrada/salida
cat direction
  1. Obtener estado de nivel
cat value
  1. Reiniciar pin
cd ..
echo 23 > unexport

Uso en imagen Buildroot

  • Reemplaza sudo -i con su - para privilegios root.
  • Los demás pasos son iguales.

Uso en imagen Yocto

  • No hace falta sudo -i pues ya somos root.
  • Pasos restantes son iguales.

Uso - I2C

  1. Enciende reTerminal, clic en el ícono de Raspberry Pi en la UI Desktop => Preferences > Raspberry Pi Configuration.

  2. Clic en la pestaña Interfaces y habilita I2C.

pir

  1. Clic en OK.

  2. Conecta un dispositivo I2C al reTerminal.

  3. Lista los buses I2C:

i2cdetect -l

pir

  1. Escanea direcciones estándar en bus I2C 1 (i2c-1):
i2cdetect -y 1

Nota: el 1 representa el número de bus I2C.

pir

La imagen anterior muestra dispositivos I2C con direcciones 0x20, 0x51, 0x45, 0x19, 0x29 y 0x5c.

Uso en Buildroot

  • No necesitas activar I2C, viene habilitado por defecto.
  • Los pasos restantes son iguales.

Uso en Yocto

  • I2C no se activa al encender. Solo funciona con modprobe i2c-dev tras cada arranque. Se actualizará cuando se corrija.

Uso - SPI

  1. Enciende reTerminal, clic ícono Raspberry Pi => Preferences > Raspberry Pi Configuration.

  2. Pestaña Interfaces, habilita SPI.

pir

  1. Conecta un dispositivo SPI al reTerminal.

  2. Lista dispositivos SPI:

ls /dev/spi*

pir

  1. Descarga herramienta de prueba SPI:
wget https://files.seeedstudio.com/wiki/102110497/spidev_test
  1. Cambia permisos:
chmod +x spidev_test
  1. Con un jumper, cortocircuita GPIO 10 (Pin 19) y GPIO 9 (Pin 21) (MOSI y MISO).

  2. Ejecuta la herramienta:

./spidev_test -D /dev/spidev0.0 -v -p hello

Si ves salida similar a la imagen, SPI funciona correctamente.

pir

Uso en Buildroot/ Yocto

  • Para activar SPI, edita config.txt con vi /boot/config.txt, añade dtparam=spi=on, guarda y reinicia.
  • La herramienta spidev_test presenta problemas en Buildroot/Yocto. Se actualizará.

Interfaz de Alta Velocidad para Módulos de Expansión

En la parte trasera del reTerminal hay un conector de expansión de alta velocidad. Consta de 1 PCIe 1-lane Host Gen 2 (hasta 5Gbps), 1 USB 2.0, 1 PoE y 26 GPIO. Estos 26 GPIO pueden usarse como 2 I2C, 2 SPI y 1 UART.

pir

Consejo: Clic aquí para imagen de mayor resolución.

note

PCIe, USB 3.0, 2 x CAN-FD y SDIO3.0 están definidos para productos futuros, por lo que no son utilizables actualmente.

Planeamos módulos de expansión futuros para reTerminal, usando este conector:

  • Matriz de micrófonos y altavoz
  • Módulo de cámara
  • E/S industriales
  • Módulo LoRaWAN
  • Módulo 5G/4G
  • Módulo PoE
  • Switch Ethernet

pir

Hay 2 orificios M4 a los lados del reTerminal para fijar estos módulos.

Interfaz de cámara CSI

El reTerminal tiene una interfaz de cámara MIPI CSI de 2 carriles, lo que permite conectar hasta 2 cámaras: uno con 15 pines y otro con 22 pines. Asegúrate de usar el cable flex adecuado. Estas interfaces sirven para detección de objetos y machine learning.

Esquemático

pir

Consejo: Clic aquí para mayor resolución.

Uso

  1. Conecta cámara al conector FPC de 15 pines o 22 pines.

pir

  1. Enciende reTerminal, clic en ícono Raspberry Pi => Preferences > Raspberry Pi Configuration.

  2. Pestaña Interfaces, habilita Camera.

pir

  1. Clic en Yes para reiniciar.

pir

  1. Abre terminal y toma una foto:
raspistill -o Desktop/image.jpg

Nota: Cambia la ubicación según prefieras.

  1. Haz doble clic en el archivo de Desktop para ver la imagen.

  2. Graba un video:

raspivid -o Desktop/video.h264
  1. Reproduce el video haciendo doble clic.

Más info en documentación oficial de Raspberry Pi.

Uso en Buildroot/ Yocto

  • No probado aún, se actualizará.

LCD de 5 pulgadas

La pantalla LCD de 5" en reTerminal se conecta vía DSI de 30 pines. Soporta táctil multipunto (5 puntos), conectada al conector TP.

Esquemático

pir

Consejo: Clic aquí para mayor resolución.

Panel Táctil para LCD

Uso

El panel táctil se conecta vía un conector FPC de 6 pines. Para probarlo, usa evtest:

  1. Instala evtest:
sudo apt install evtest
  1. Ejecuta evtest:
evtest

pir

  1. Teclea 1, verás salida:

pir

  1. Toca la pantalla y verás:

pir

Uso en Buildroot

  • evtest ya está instalado.
  • Primero haz su - para root.
  • Demás pasos igual.

Uso en Yocto

  • evtest ya instalado.
  • Pasos igual.

Conectar otros dispositivos a conector FPC vía I2C

El panel táctil se comunica por I2C. Puedes conectar otros dispositivos I2C a este conector FPC de 6 pines. El diagrama:

pir

Luego sigue los pasos de la sección I2C.

4 Botones Programables

Hay 4 botones programables en la parte frontal de reTerminal. Pueden asignarse para encender/apagar distintas funciones según tu aplicación.

Esquemático

pir

Consejo: Clic aquí para mayor resolución.

Uso

pir

  1. Abre evtest:
evtest

pir

  1. Teclea 0 y verás:

pir

  1. Pulsa los botones de izquierda a derecha y verás:

pir

Nota: Los botones se configuran como a s d f de izquierda a derecha por defecto.

  1. Para configurar, edita:
sudo nano /boot/config.txt
  1. Añade al final:
dtoverlay=reTerminal,key0=0x100,key1=0x101,key2=0x102,key3=0x103,tp_rotate=1

Los valores hexadecimales 100,101,102 y 103 se asignan a key0, key1, key2, key3.

Uso en Buildroot

  • evtest ya instalado.
  • Primero su -.
  • Demás pasos igual.

Uso en Yocto

  • evtest ya instalado.
  • Pasos igual.

3 LEDs Programables

Hay 2 LED programables en la parte frontal del reTerminal. El LED USR en color verde, el LED STA en color rojo o verde.

Esquemático

pir

Consejo: Clic aquí para mayor resolución.

Uso

pir

  1. Hazte root:
sudo -i
  1. Ve a:
cd /sys/class/leds
  1. Dirígete a LED USR Verde:
cd usr_led0
  1. Enciende LED al brillo máximo:
echo 255 > brightness

Nota: valores 1-255 para brillo.

  1. Apaga LED:
echo 0 > brightness
  1. LED STA Rojo:
cd ..
cd usr_led1
  1. Repite pasos 4-5.

  2. LED STA Verde:

cd ..
cd usr_led2
  1. Repite pasos 4-5.

Buildroot

  • Cambia sudo -i por su -.
  • Pasos iguales.

Yocto

  • No hace falta sudo -i (ya somos root).
  • Pasos iguales.

Puerto Gigabit Ethernet

reTerminal posee un conector Ethernet RJ45 Gigabit, conectado al PHY Gigabit del CM4 (Broadcom BCM54210PE), compatible con IEEE 1588-2008.

Esquemático

pir

Consejo: Clic aquí para mayor resolución.

Co-procesador de Encriptación

reTerminal incluye un co-procesador criptográfico Microchip ATECC608A con almacenamiento seguro de claves en hardware. Soporta ECDSA y algoritmos simétricos, networking key management y secure boot.

Esquemático

pir

Consejo: Clic aquí para mayor resolución.

Uso

  1. Lista buses I2C:
i2cdetect -l

pir

  1. Escanea direcciones en I2C-3:
i2cdetect -y 3

pir

El dispositivo con dirección 0x60 es el co-procesador.

Buildroot

  • Funciona igual.

Yocto

  • I2C no activado al arrancar. Necesita modprobe i2c-dev tras cada reinicio.

RTC

El reTerminal trae un RTC NXP PCF8563T con pila CR1220. Bajo consumo de respaldo ~0.25µA. Útil para funciones de hora.

Nota: Una pila CR1220 viene preinstalada.

Esquemático

pir

Consejo: Clic aquí para mayor resolución.

Uso

sudo hwclock

pir

Buildroot

  • Escribe su - y luego hwclock.

Yocto

  • No hace falta sudo.
  • Solo hwclock.

Sensor de Luz

reTerminal incluye un sensor digital de luz Levelek LTR-303ALS-01, conectado al conector FPC de 6 pines. Útil para ajuste automático de brillo LCD según luz ambiente.

Esquemático

pir

Consejo: Clic aquí para mayor resolución.

Uso

  1. root:
sudo -i
  1. Ve a:
cd /sys/bus/iio/devices/iio:device0
  1. Lee intensidad lumínica en Lux:
cat in_illuminance_input

pir

El sensor se comunica vía I2C. Puedes conectar otros dispositivos I2C al mismo conector FPC:

pir

Luego sigue pasos de I2C.

Buildroot

  • Cambia sudo -i por su -.
  • Pasos restantes igual.

Yocto

  • No hace falta sudo.
  • Pasos iguales.

Acelerómetro

Un acelerómetro ST LIS3DHTR de 3 ejes. Se puede usar, por ejemplo, para rotar la pantalla automáticamente al inclinar reTerminal.

Esquemático

pir

Consejo: aquí para mayor resolución.

Uso

  1. evtest
evtest

pir

  1. Teclea 1 para ver valores X,Y,Z.

pir

Buildroot

  • evtest ya instalado.
  • Primero su -.
  • Resto igual.

Yocto

  • evtest ya instalado.
  • Igual.

Buzzer

Incluye un buzzer integrado controlable via software. Útil como indicador.

Esquemático

pir

Consejo: aquí para mayor resolución.

Uso

  1. root:
sudo -i
  1. Ve a:
cd /sys/class/leds/usr_buzzer
  1. Enciende buzzer:
echo 1 > brightness
  1. Apaga buzzer:
echo 0 > brightness

Buildroot

  • Reemplaza sudo -i con su -.
  • Igual.

Yocto

  • No sudo.
  • Igual.

Puertos USB 2.0

El CM4 trae un hub USB 2.0 integrado. Se extiende a 2 puertos USB 2.0 como USB HOST.

Esquemático

pir

Consejo: aquí para alta resolución.

Uso

  1. Conecta un dispositivo USB a uno de los puertos del reTerminal.

pir

  1. Lista el dispositivo:
lsusb

pir

  1. Más info:
lsblk

pir

  1. Accede a la unidad y lista archivos:
cd /media/pi/NEW VOLUME
ls -l

pir

Nota: El punto de montaje varía.

Ranura Micro-SD

reTerminal tiene ranura micro-SD, útil para instalar SO en micro-SD con CM4 sin eMMC. Se recomienda al menos 8GB. Más info aquí.

Esquemático

pir

Consejo: aquí para alta resolución.

Puerto Micro HDMI

reTerminal ofrece micro HDMI, compatible con displays HDMI vía cable micro-HDMI a HDMI. Hasta 4K@60fps.

Esquemático

pir

Consejo: aquí para alta resolución.

Uso

  1. Conecta una pantalla HDMI al puerto micro-HDMI con el cable respectivo.

pir

  1. Enciende reTerminal y verás UI en LCD y pantalla HDMI.

Nota: Si conectas la pantalla mientras está encendido, ejecuta sudo service lightdm restart para mostrar la UI.

  1. Instala la utilidad Screen Configuration:
sudo apt install arandr
  1. Clic en ícono Raspberry Pi => Preferences > Screen Configuration.

pir

  1. Pestaña "Screen Layout Editor" => Configure > Screens > HDMI-1 > Resolution para ajustar.

pir

Nota: también cambias frecuencia y orientación.

  1. Arrastra los dos recuadros para organizar monitores.

pir

  1. Clic en la marca de verificación para aplicar ajustes.

pir

Buildroot/ Yocto

  • El hot-plug no funciona actualmente. Actualizaremos.
  • Necesitas conectar primero el display y luego encender reTerminal.
  • arandr no disponible en Buildroot.

Puerto USB Tipo-C

El Puerto USB-C se usa para alimentar reTerminal con 5V/4A (recomendado). Pero también puede actuar como USB Device para conectar reTerminal a un PC HOST y acceder a la eMMC interna, flashear un SO, etc. Más info aquí.

pir

Montura de cámara estándar (1/4 pulgada)

reTerminal tiene una montura de cámara estándar de 1/4 pulgada. Puedes montar el reTerminal en un trípode estándar.

pir

Librería Python para reTerminal

Hemos preparado una librería Python para usar el hardware incorporado del reTerminal. Actualmente soporta acelerómetro, LEDs de usuario, botones de usuario y buzzer.

Instalación

En reTerminal, ejecuta:

sudo pip3 install seeed-python-reterminal

Nota: El código fuente aquí.

Uso

  1. Crea un archivo Python nuevo y ábrelo con nano:
nano test.py
  1. Pega el código.
  2. Pulsa CTRL + X, luego Y para guardar.
  3. Ejecuta:
python3 test.py

A continuación, ejemplos de códigos:

Test de LEDs de Usuario

import seeed_python_reterminal.core as rt
import time

print("STA ON, USR OFF")
rt.sta_led = True
rt.usr_led = False
time.sleep(1)

print("STA OFF, USR ON")
rt.sta_led = False
rt.usr_led = True
time.sleep(1)

print("STA RED, USR OFF")
rt.sta_led_green = False
rt.sta_led_red = True
rt.usr_led = False
time.sleep(1)

print("STA OFF, USR OFF")
rt.sta_led = False
rt.usr_led = False

Test Buzzer

import seeed_python_reterminal.core as rt
import time

print("BUZZER ON")
rt.buzzer = True
time.sleep(1)

print("BUZZER OFF")
rt.buzzer = False

Test Botones de Usuario

import seeed_python_reterminal.core as rt
import seeed_python_reterminal.button as rt_btn


device = rt.get_button_device()
while True:
for event in device.read_loop():
buttonEvent = rt_btn.ButtonEvent(event)
if buttonEvent.name != None:
print(f"name={str(buttonEvent.name)} value={buttonEvent.value}")

Test Acelerómetro

import seeed_python_reterminal.core as rt
import seeed_python_reterminal.acceleration as rt_accel


device = rt.get_acceleration_device()
while True:
for event in device.read_loop():
accelEvent = rt_accel.AccelerationEvent(event)
if accelEvent.name != None:
print(f"name={str(accelEvent.name)} value={accelEvent.value}")

Test Acelerómetro + Botones

import asyncio
import seeed_python_reterminal.core as rt
import seeed_python_reterminal.acceleration as rt_accel
import seeed_python_reterminal.button as rt_btn


async def accel_coroutine(device):
async for event in device.async_read_loop():
accelEvent = rt_accel.AccelerationEvent(event)
if accelEvent.name != None:
print(f"accel name={str(accelEvent.name)} value={accelEvent.value}")


async def btn_coroutine(device):
async for event in device.async_read_loop():
buttonEvent = rt_btn.ButtonEvent(event)
if buttonEvent.name != None:
print(f"name={str(buttonEvent.name)} value={buttonEvent.value}")


accel_device = rt.get_acceleration_device()
btn_device = rt.get_button_device()

asyncio.ensure_future(accel_coroutine(accel_device))
asyncio.ensure_future(btn_coroutine(btn_device))

loop = asyncio.get_event_loop()
loop.run_forever()

Buildroot

  • Esta librería se añadirá más adelante al Buildroot.
  • Primero "su -" para root.
  • pip3 install seeed-python-reterminal.
  • Usa vi en lugar de nano.
  • El demo accel+button presenta problemas. Se actualizará.

Yocto

  • Aunque Python está instalado, pip no lo está. Luego incluiremos esta librería en la imagen.

Soporte técnico y debate de productos

¡Gracias por elegir nuestros productos! Estamos aquí para brindarte soporte y asegurar que tu experiencia sea fluida. Ofrecemos varios canales de comunicación para diferentes preferencias y necesidades.

Loading Comments...