Radares Mirando al Sur

Fundamentos, Tecnologías, Aplicaciones, Historia y Memoria

Etiqueta: open hardware

  • Módulos RFID para Arduino: RC522 y PN532

    Módulos RFID para Arduino: RC522 y PN532

    La identificación por radiofrecuencia (RFID) es una tecnología que permite identificar objetos mediante un identificador único (UID) transmitido por ondas de radio. Un sistema RFID se compone de dos elementos principales: la etiqueta (tag o tarjeta) y el lector. El lector genera un campo electromagnético; cuando una tarjeta pasiva se acerca, se alimenta de ese campo y responde enviando su información.

    Para proyectos con Arduino, los módulos más populares son el RC522 y el PN532. Vamos a verlos en detalle.


    1. Módulo Lector RFID RC522

    Es el caballo de batalla del maker. Usa el chip MFRC522 de NXP, un lector/escritor altamente integrado para comunicación sin contacto a 13.56 MHz.

    Especificaciones técnicas (según datasheet y fabricantes):

    ParámetroValor
    Voltaje de alimentación3.3 V (¡nunca a 5V!)
    Corriente en operación13-26 mA
    Corriente en reposo10-13 mA
    Corriente en sueño< 80 µA
    Frecuencia13.56 MHz
    Distancia de lecturahasta 50 mm (depende de la antena)
    Interfaces soportadosSPI, I2C, UART (por defecto se usa SPI)
    Tarjetas soportadasMIFARE Classic (S50, S70), MIFARE Ultralight, MIFARE DESFire, NTAG

    El módulo RC522 tiene 8 pines. La nomenclatura puede variar según el fabricante, pero los más comunes son:

    Pin del móduloFunción
    VCCAlimentación 3.3V
    GNDTierra
    RSTReset del módulo
    IRQInterrupción (opcional, casi siempre sin conectar)
    MISOSPI – Master In Slave Out
    MOSISPI – Master Out Slave In
    SCKSPI – Clock
    SDA (o SS)SPI – Slave Select

    ⚠️ Importante: El módulo trabaja con lógica de 3.3V, pero los pines de entrada suelen ser tolerantes a 5V en la mayoría de las placas. Sin embargo, VCC siempre debe ir a 3.3V; conectarlo a 5V puede dañarlo.

    Conexión a Arduino Uno

    La conexión es por SPI. Este es el esquema estándar:

    RC522Arduino Uno
    VCC3.3V
    GNDGND
    RSTPin 9 (o cualquier digital)
    SDA (SS)Pin 10 (SS por defecto)
    MOSIPin 11
    MISOPin 12
    SCKPin 13
    IRQNo conectar

    Para Arduino Mega, los pines SPI cambian: MOSI→51, MISO→50, SCK→52.


    2. Módulo RFID/NFC PN532

    El PN532 es más versátil y potente. Soporta los mismos protocolos que el RC522 (MIFARE Classic, Ultralight, NTAG) pero añade FeliCa, ISO 14443B y modo NFC peer-to-peer.

    Ventajas sobre el RC522:

    • Soporta más tipos de tarjetas y etiquetas.
    • Se puede comunicar por SPI, I2C o UART (se selecciona con switches en la placa).
    • Ideal si quieres leer etiquetas NFC de móviles o tarjetas de transporte.

    Conexión por I2C (la más común):

    PN532 (I2C)Arduino Uno
    VCC3.3V o 5V (según modelo)
    GNDGND
    SDAA4
    SCLA5

    ⚠️ Atención: algunos módulos PN532 funcionan a 3.3V y no son tolerantes a 5V, por lo que puede ser necesario un conversor de nivel lógico si se usa con Arduino Uno de 5V.


    3. Tarjetas y tags RFID

    Los tags son el otro lado del sistema. Los más comunes para estos módulos son:

    • MIFARE Classic 1K (S50): la más popular, 1 KB de memoria, viene en formato tarjeta de crédito o llavero.
    • MIFARE Ultralight: más económica, menos memoria, ideal para usos de un solo uso.
    • NTAG: variante más moderna, usada en muchas etiquetas NFC comerciales.

    Todas funcionan a 13.56 MHz y son pasivas: no llevan batería, se alimentan del campo del lector.

    Cada tarjeta tiene un UID (Unique Identifier) de 4 o 7 bytes, que es lo que leemos en la mayoría de los proyectos sencillos.


    4. Instalación de la librería

    Para el RC522, la librería de referencia es MFRC522 de Miguel Balboa (la más usada y mantenida).

    1. Abre el Arduino IDE.
    2. Ve a Sketch → Include Library → Manage Libraries.
    3. Busca «MFRC522» e instala la última versión.

    Para el PN532, la librería más común es la de Adafruit PN532.


    5. Código mínimo: leer el UID de una tarjeta

    Este es el «Hola Mundo» del RFID: leer el UID de cualquier tarjeta o llavero que se acerque al lector.

    cpp

    #include <SPI.h>
    #include <MFRC522.h>
    
    #define RST_PIN  9      // Pin de reset
    #define SS_PIN   10     // Pin Slave Select
    
    MFRC522 mfrc522(SS_PIN, RST_PIN);  // Creamos la instancia
    
    void setup() {
      Serial.begin(9600);
      SPI.begin();                // Iniciamos el bus SPI
      mfrc522.PCD_Init();         // Iniciamos el lector
      Serial.println("Lector RFID RC522 listo. Acerca una tarjeta.");
    }
    
    void loop() {
      // ¿Hay una nueva tarjeta?
      if (!mfrc522.PICC_IsNewCardPresent()) {
        return;
      }
      // ¿Se ha podido leer el serial?
      if (!mfrc522.PICC_ReadCardSerial()) {
        return;
      }
    
      // Mostramos el UID por el monitor serie
      Serial.print("UID: ");
      for (byte i = 0; i < mfrc522.uid.size; i++) {
        if (mfrc522.uid.uidByte[i] < 0x10) {
          Serial.print(" 0");
        } else {
          Serial.print(" ");
        }
        Serial.print(mfrc522.uid.uidByte[i], HEX);
      }
      Serial.println();
    
      // Detenemos la comunicación con la tarjeta
      mfrc522.PICC_HaltA();
    }

    Con este código, al abrir el monitor serie a 9600 baudios y acercar una tarjeta, verás su UID impreso en pantalla.

    A partir de ahí, el siguiente paso natural es comparar ese UID con una lista de autorizados y activar un relé, un LED o un motor. Justo lo que necesitaba ese local de atracciones infantiles que comentabas.


    6. ¿RC522 o PN532?

    CaracterísticaRC522PN532
    PrecioMuy bajoMedio
    ProtocolosMIFARE Classic, Ultralight, DESFire, NTAGLos mismos + FeliCa + NFC peer-to-peer
    InterfazSPI (principal)SPI, I2C, UART (seleccionable)
    Distancia~5 cm~5-7 cm
    DificultadBajaMedia
    Ideal paraControl de acceso básico, proyectos económicosProyectos que requieran NFC o múltiples tipos de tarjeta

    Para el 90% de los proyectos con Arduino, el RC522 es más que suficiente: es barato, fácil de conseguir y la librería es estable y bien documentada.


  • Pantallas para Arduino: TFT, LCD, OLED y E-Paper – ¿cuál elijo?

    Ya hemos hablado hasta el cansancio de la nube, de los protocolos y de la inteligencia artificial en el IoT. Hemos discutido si esto es progreso o sumisión, y hasta hemos analizado el impacto de la IA en la meteorología cubana. Pero todo ese maremágnum de datos e inteligencia abstracta necesita un puente tangible hacia nosotros, los humanos. Necesita una cara visible. La diferencia entre un sensor invisible y un sistema útil es, a menudo, una buena pantalla. Por eso, en esta entrega de nuestra serie para Open Electronics, cambiamos el foco de la teoría a la práctica más física, y nos preguntamos: ¿Qué tipo de pantalla es la ideal para tu proyecto con Arduino? La respuesta, como casi todo en IoT, no es única. Aquí les presento una guía definitiva para entender las cuatro grandes familias de pantallas compatibles con Arduino: TFT, LCD, OLED y E-Paper.

    (más…)
  • La revolución WiFi: Conoce los ESP8266 y ESP32

    Hace unos meses, cuando hablamos de la ESP32-S3, quedó claro que los microcontroladores con WiFi han cambiado las reglas del juego. Pero antes de la reina existió todo un reino: los módulos ESP-01, ESP-12 y el propio ESP32. Son los dispositivos WiFi más populares del mundo maker, y hoy vamos a desentrañar sus secretos.

    ¿Recuerdas cuando convertir un Arduino en algo «conectado» requería un escudo Ethernet enorme o un módulo WiFi complicadísimo? Pues bien, esos tiempos quedaron atrás. Los chips de la empresa china Espressif Systems pusieron WiFi y Bluetooth en una pastilla del tamaño de una uña, a precio de risa. El resultado ha sido una explosión de creatividad en el Internet de las Cosas (IoT).

    Vamos a conocer a los protagonistas: el minimalista ESP-01, el equilibrado ESP-12 y el todopoderoso ESP32. Al final, sabrás cuál necesitas para tu próximo proyecto.

    (más…)
  • FPGAs: El arte de dibujar tu propio procesador (y por qué tu radar te lo agradecerá)

    Field Programmable Logic Array, un circuito muy versatil que viene siendo la contraparte rápida de los Arduinos en el mundo del Open Hardware.

    ¿Alguna vez has querido dibujar tu propio procesador? ¿O eliminar de un plumazo el cuello de botella del PCIe en un radar meteorológico? Las FPGA (Field Programmable Gate Arrays) son la tecnología que lo hace posible: chips que puedes reconfigurar desde un simple multiplexor hasta un procesador Intel 8086 o un sistema de demodulación SDR. En este post te cuento cómo evolucionaron los circuitos lógicos, por qué una FPGA no es un Arduino y, lo más importante, cómo en LADETEC hemos usado un soft core dentro de la propia FPGA para LAMULA™ DRx-DSP. Prepárate para un viaje que va desde las compuertas lógicas hasta la donación de la Met Office británica. No es ciencia ficción: es hardware libre en estado puro.

    Ya hemos hablado de Arduino, de la ESP32-S3, de la ZimaBlade… incluso repasamos la evolución de los procesadores de señal en los radares cubanos (Seis generaciones de ingenio: La evolución de los procesadores de señal en los radares cubanos). Pues bien, hoy toca hablar de la madre de todas ellas: las FPGA. Si los microcontroladores son como una navaja suiza (viene con unas herramientas fijas), la FPGA es un cajón gigante de piezas de Lego™ electrónicas. Con ella no programas un chip: dibujas el chip que te da la gana.

    No, esto no es una excentricidad de laboratorio. Es la base del LAMULATM DRx-DSP (nuestro juguete favorito de radio definido por software) y está cambiando el mundo del hardware libre a una velocidad de vértigo.

    (más…)
  • ¿Y qué cosa es eso de «Arduino» de lo que tanto habla la gente?

    Seguro que has oído hablar de ello. Es como un runrún constante en cualquier conversación sobre tecnología, robótica o incluso manualidades: «puedes hacerlo con un Arduino». Pero, la pregunta del millón es: ¿qué demonios es eso de «Arduino», y por qué ha logrado colarse en las charlas de todos, desde ingenieros hasta el sobrino que apenas termina la secundaria? Si piensas que programar chips es cosa de magos en laboratorios secretos, prepara una silla, porque la historia de esta pequeña plaquita azul desmonta ese mito por completo. Y todo empezó… en un bar.

    El nombre Arduino viene de un bar en Ivrea, ciudad del norte de Italia (Piamonte), en donde algunos de los fundadores del proyecto Arduino, que pertenecía al Instituto de Diseño Iterativo de Ivrea, solían reunirse. El bar tiene el nombre de «Bar di Re Arduino» (que quiere decir Bar del Rey Arduino en italiano), y fue nombrado en honor a Arduino de Ivrea, quien fue el margrave (algo así como marqués) de la Marca de Ivrea (un marquesado al noroeste de Italia). Arduino de Ivrea también fue Rey de Italia desde el año 1002 hasta el año 1014. Pero, en fin, historia aparte, veamos ¿Qué cosa es el Proyecto Arduino? ¿No salió de Silicon Valley?

    (más…)