"Fabricación de proyectos a través de a implementación de la robótica"

"Fabricación de proyectos a través de a implementación de la robótica"

miércoles, 22 de mayo de 2024

MARCADOR PARA UN FUTBOLÍN

  • Los alumnos de 4ºDIVER realizan el diseño y programación para un display de 7 segmentos. Este proyecto se destinará como marcador del futbolín ubicado en la ludoteca del centro. 
  • El diseño se realiza en SketchUp for Schools, imprimiendo posteriormente cada una de las piezas en la impresora 3D.



  • Cabe destacar que la parte frontal del display se imprime con PLA translúcido para que se aprecie el encendido de los leds.




  • El circuito se realiza previamente en TinkerCAD como práctica, antes de realizarlo físicamente.



A continuación se adjuntan varios enlaces con la explicación del resultado final:



Posteriormente se programa para que realice las siguientes funciones: 
- Con una pulsación corta, el marcador aumenta en una cifra.
- Con una pulsación larga (superior a 1 segundo), el marcador se reinicia marcando el número cero.

Programa de ARDUINO:

// Definir los pines de los LEDs
int leds[] = {2, 3, 4, 5, 6, 7, 8};
// Pin del pulsador
const int botonPin = 9;
// Variable para almacenar el tiempo de inicio cuando se presiona el botón
unsigned long tiempoInicio = 0;
// Variable para almacenar el estado anterior del botón
bool ultimoEstadoBoton = HIGH;
// Variable para almacenar el estado actual del botón
bool estadoBoton = HIGH;
// Variable para almacenar el número actual mostrado en los LEDs
int numeroActual = 0;

// Definir los patrones de cada número en los LEDs
// 0-9
bool numeros[10][7] = {
  {1, 1, 1, 1, 1, 1, 0}, // 0
  {0, 1, 1, 0, 0, 0, 0}, // 1
  {1, 1, 0, 1, 1, 0, 1}, // 2
  {1, 1, 1, 1, 0, 0, 1}, // 3
  {0, 1, 1, 0, 0, 1, 0}, // 4
  {1, 0, 1, 1, 0, 1, 1}, // 5
  {1, 0, 1, 1, 1, 1, 1}, // 6
  {1, 1, 1, 0, 0, 0, 0}, // 7
  {1, 1, 1, 1, 1, 1, 1}, // 8
  {1, 1, 1, 1, 0, 1, 1}  // 9
};

void setup() {
  // Inicializar los pines de los LEDs como salidas
  for (int i = 0; i < 7; i++) {
    pinMode(leds[i], OUTPUT);
  }
  // Configurar el pin del pulsador como entrada
  pinMode(botonPin, INPUT_PULLUP);

  // Mostrar el número cero al iniciar Arduino
  mostrarNumero(0);
}

void loop() {
  // Leer el estado actual del pulsador
  estadoBoton = digitalRead(botonPin);

  // Si el estado actual del botón es diferente al estado anterior
  if (estadoBoton != ultimoEstadoBoton) {
    // Si el botón acaba de ser pulsado (de HIGH a LOW)
    if (estadoBoton == LOW) {
      // Almacenar el tiempo de inicio
      tiempoInicio = millis();
    } else {
      // Si el botón acaba de ser soltado (de LOW a HIGH)
      // Calcular la duración del tiempo que el botón fue pulsado
      unsigned long duracionPulsacion = millis() - tiempoInicio;

      // Si la duración de la pulsación es mayor o igual a 1000ms (1 segundos)
      if (duracionPulsacion >= 1000) {
        // Parpadear los LEDs antes de apagarlos
        parpadearLeds();
        // Apagar todos los LEDs
        apagarLeds();
        // Reiniciar el número actual a cero
        numeroActual = 0;
        // Mostrar el número cero
        mostrarNumero(numeroActual);
      } else {
        // Si la duración de la pulsación es menor a 3 segundos, incrementar el número actual
        numeroActual = (numeroActual + 1) % 10;
        // Mostrar el número actual
        mostrarNumero(numeroActual);
      }
    }
  }

  // Actualizar el estado anterior del botón
  ultimoEstadoBoton = estadoBoton;
}

// Función para mostrar un número en los LEDs
void mostrarNumero(int numero) {
  for (int i = 0; i < 7; i++) {
    digitalWrite(leds[i], numeros[numero][i]);
  }
}

// Función para apagar todos los LEDs
void apagarLeds() {
  for (int i = 0; i < 7; i++) {
    digitalWrite(leds[i], LOW);
  }
}

// Función para parpadear los LEDs tres veces
void parpadearLeds() {
  for (int j = 0; j < 3; j++) {
    for (int i = 0; i < 7; i++) {
      digitalWrite(leds[i], HIGH);
    }
    delay(100);
    apagarLeds();
    delay(100);
  }
}

No hay comentarios:

Publicar un comentario

Juego sobre los ODS mediante scratch con IA integrada

Esta actividad se encuadra dentro de la materia de  Inteligencia artificial cuyos recursos utilizados son los ordenadores portátiles con acc...