Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Ojos ultrasónicos: Matriz LED 8x8 interactiva con sensor de distancia HC-SR04

Componentes y materiales

ComponenteCantidadNotas
Sensor ultrasónico HC-SR042Ojo izquierdo y derecho.
Arduino Nano R31Pequeño, USB nativo, pines SPI hardware.
Fotorresistencia (LDR)1Auto-brillo según luz ambiente.
Matriz LED 8x8 MAX7219 (módulo cascada)2Solo la primera conectada a Arduino; segunda en cadena.
Protoboard media1
Cables jumperVarios
Resistencia 330 Ω1Para divisor LDR.

Software

Sobre el proyecto

UltrasonicEyes es un proyecto lúdico: dos "ojos" en matrices 8x8 que miran hacia donde detectan movimiento (diferencia de distancia entre los dos sensores HC-SR04), parpadean aleatoriamente y ajustan su brillo según la luz ambiente. Ideal para colocar en una estantería y "vigilar" la habitación de forma simpática y un poco inquietante.

Cableado detallado

Alimentación y GND

Sensores ultrasónicos

Matrices LED (SPI hardware)

LDR (fotorresistencia)

Código (UltrasonicEyes.ino)

#include <MD_MAX72xx.h>
#include <NewPing.h>

#define CS_PIN 10
#define MAX_DEVICES 2
#define LIGHT A5

MD_MAX72XX mx = MD_MAX72XX(CS_PIN, MAX_DEVICES);

#define t1 2; #define e1 3; // Sensor izq
#define t2 4; #define e2 5; // Sensor der
#define maxDist 400

NewPing eyeL(t1, e1, maxDist);
NewPing eyeR(t2, e2, maxDist);

int currentState = -1; // 0=centro, 1=derecha, 2=izquierda
long distance1, distance2;
float nextBlink = 0;
float lightAmount = 0;

// Patrones 8x8 (columnas)
uint8_t eye_forward[8] = {0b00111100, 0b01000010, 0b01011010, 0b10101101, 0b10111101, 0b10011001, 0b01000010, 0b00111100};
uint8_t eye_right[8]   = {0b00111100, 0b01000010, 0b01110010, 0b11011001, 0b11111001, 0b10110001, 0b01000010, 0b00111100};
uint8_t eye_left[8]    = {0b00111100, 0b01000010, 0b01001110, 0b10010111, 0b10011111, 0b10001101, 0b01000010, 0b00111100};
uint8_t eye_blink[8]   = {0b00000000, 0b00111100, 0b01111110, 0b11111111, 0b10111101, 0b11000011, 0b01111110, 0b00111100};

void setup() {
  mx.begin();
  pinMode(t1, OUTPUT); pinMode(e1, INPUT);
  pinMode(t2, OUTPUT); pinMode(e2, INPUT);
  digitalWrite(t1, LOW); digitalWrite(t2, LOW);
  pinMode(LIGHT, INPUT);
  ShowEye_Forward(); currentState = 0;
  nextBlink = millis() + 1000;
}

void loop() {
  lightAmount = analogRead(LIGHT);
  lightAmount = (lightAmount / 255.0) * MAX_INTENSITY; // MAX_INTENSITY = 15
  mx.control(MD_MAX72XX::INTENSITY, lightAmount);

  distance1 = eyeL.ping_median(5); // 5 lecturas, mediana
  delay(500); // Evita interferencia entre sensores
  distance2 = eyeR.ping_median(5);

  // Parpadeo aleatorio
  if (nextBlink < millis()) {
    nextBlink = millis() + random(2000, 10000);
    if (random(1,13) <= 6) ShowEye_Blink_Dbl(); else ShowEye_Blink();
    delay(250); return;
  }

  float diff = distance2 - distance1;
  if (abs(diff) < 250 || (distance1==0 && distance2==0)) { ShowEye_Forward(); currentState=0; }
  else if (distance2 < distance1 && distance1>0) { ShowEye_Right(); currentState=1; }
  else if (distance1 < distance2 && distance2>0) { ShowEye_Left(); currentState=2; }

  delay(250);
}

// Funciones ShowEye_Forward, _Right, _Left, _Blink, _Blink_Dbl (ver original)
// Cada una limpia, setea INTENSITY, escribe columnas en ambos displays (0-7 y 8-15).

Carcasa 3D

Dos piezas imprimibles (base y tapa) sin requerimientos especiales de impresión. Diseño paramétrico en Fusion 360. Archivos STL en sección "Custom parts".

Esquemático

Diagrama Fritzing (ultrasoniceyes_final_Th84xpUyB2.fzz) y imagen PNG con todas las conexiones descritas arriba.

Ampliaciones futuras

Proceso de manufactura

  1. Construye tu Juego "UFO Attack" con Arduino UNO y Pantalla MAX7219
  2. Persianas Inteligentes: Control Automático de Luz con Arduino y Energía Solar
  3. Reloj 3D RGB Arduclock – Bluetooth, LED NeoPixel y RTC
  4. Monitor de Salud Fluvial: Sistema de Calidad de Agua con Arduino
  5. Construye un Iron Man animado con Arduino: componentes, sensores y guía paso a paso
  6. Sensor de obstáculos IR casero con Arduino – Tutorial fácil con LED IR y fotodiodo
  7. Juego interactivo con joystick analógico y LEDs en Arduino
  8. Find Me: Localizador Inteligente de Objetos con Arduino y Bluetooth
  9. Controlador de Humidificador DIY con Arduino y Relé: Configuración Segura de Alto Voltaje
  10. Pequeño Rover con Arduino: Construye tu Robot Autónomo Evita Obstáculos
  11. Construye un volante joystick personalizado con Arduino para gaming