衍生

Extension

衍生

Extension

時間 (Year): 2024

時間 (Year): 2024

類型 (Category): Installation Art

類型 (Category): Installation Art

時間 (Year): 2024

類型 (Category): Installation Art

PARTS

PARTS

PARTS

  • Medical Face Mask (×1)

  • 5V-24V Motor Forward/Reverse Controller Timing Delay Time Cycles Relay Motor Controller Board (×1)

  • Arduino Uno Board (×1)

  • 5V Relay Module (×1)

  • 12V, 3A Power Supply Cord (×1)

  • Medical Face Mask (×1)

  • 5V-24V Motor Forward/Reverse Controller Timing Delay Time Cycles Relay Motor Controller Board (×1)

  • Arduino Uno Board (×1)

  • 5V Relay Module (×1)

  • 12V, 3A Power Supply Cord (×1)

  • Medical Face Mask (×1)

  • 5V-24V Motor Forward/Reverse Controller Timing Delay Time Cycles Relay Motor Controller Board (×1)

  • Arduino Uno Board (×1)

  • 5V Relay Module (×1)

  • 12V, 3A Power Supply Cord (×1)

VIDEO IN ACTION

VIDEO IN ACTION

VIDEO IN ACTION

It explores humanity's dependence on technology by externalizing basic functions like breathing, critiquing the loss of autonomy and intimacy. It highlights the paradox of technological progress—solving human challenges while creating new dependencies and inequalities. At its core, it reflects on how survival-driven innovation reshapes the essence of being human.

ABOUT

ABOUT

It explores humanity's dependence on technology by externalizing basic functions like breathing, critiquing the loss of autonomy and intimacy. It highlights the paradox of technological progress—solving human challenges while creating new dependencies and inequalities. At its core, it reflects on how survival-driven innovation reshapes the essence of being human.

It explores humanity's dependence on technology by externalizing basic functions like breathing, critiquing the loss of autonomy and intimacy. It highlights the paradox of technological progress—solving human challenges while creating new dependencies and inequalities. At its core, it reflects on how survival-driven innovation reshapes the essence of being human.

PROBLEM UNSOLVED

PROBLEM UNSOLVED

PROBLEM UNSOLVED

A key unresolved issue in this project is the reliance on a wall connection to power the fan, which limits portability and flexibility. The challenge lies in adapting the setup to work efficiently with a portable power bank. One potential solution could involve optimizing the fan's power consumption to be compatible with standard power bank capacities or exploring lightweight, high-capacity battery packs that can sustain the system without requiring constant recharging. Addressing this limitation would greatly enhance the practicality and mobility of the design.

A key unresolved issue in this project is the reliance on a wall connection to power the fan, which limits portability and flexibility. The challenge lies in adapting the setup to work efficiently with a portable power bank. One potential solution could involve optimizing the fan's power consumption to be compatible with standard power bank capacities or exploring lightweight, high-capacity battery packs that can sustain the system without requiring constant recharging. Addressing this limitation would greatly enhance the practicality and mobility of the design.

A key unresolved issue in this project is the reliance on a wall connection to power the fan, which limits portability and flexibility. The challenge lies in adapting the setup to work efficiently with a portable power bank. One potential solution could involve optimizing the fan's power consumption to be compatible with standard power bank capacities or exploring lightweight, high-capacity battery packs that can sustain the system without requiring constant recharging. Addressing this limitation would greatly enhance the practicality and mobility of the design.

CODE SNIPPET

CODE SNIPPET

CODE SNIPPET


const int relayPin = 13; // Define the pin connected to the relay

unsigned long onTime = 2000; // Adjust on time in milliseconds (2 seconds)
unsigned long offTime = 4000; // Adjust off time in milliseconds (5 seconds)
unsigned long nextStateTime = millis(); // Timer for state change

void setup() {
  pinMode(relayPin, OUTPUT); // Set the relay pin as output
}

void loop() {
  unsigned long currentTime = millis();

  // Check if it's time to change the relay state
  if (currentTime >= nextStateTime) {
    // Toggle the relay state
    digitalWrite(relayPin, !digitalRead(relayPin));

    // Update the next state change timer
    if (digitalRead(relayPin) == HIGH) { // Is relay currently on?
      nextStateTime += onTime; // Schedule next change to off state
    } else {
      nextStateTime += offTime; // Schedule next change to on state
    }
  }
}


const int relayPin = 13; // Define the pin connected to the relay

unsigned long onTime = 2000; // Adjust on time in milliseconds (2 seconds)
unsigned long offTime = 4000; // Adjust off time in milliseconds (5 seconds)
unsigned long nextStateTime = millis(); // Timer for state change

void setup() {
  pinMode(relayPin, OUTPUT); // Set the relay pin as output
}

void loop() {
  unsigned long currentTime = millis();

  // Check if it's time to change the relay state
  if (currentTime >= nextStateTime) {
    // Toggle the relay state
    digitalWrite(relayPin, !digitalRead(relayPin));

    // Update the next state change timer
    if (digitalRead(relayPin) == HIGH) { // Is relay currently on?
      nextStateTime += onTime; // Schedule next change to off state
    } else {
      nextStateTime += offTime; // Schedule next change to on state
    }
  }
}


const int relayPin = 13; // Define the pin connected to the relay

unsigned long onTime = 2000; // Adjust on time in milliseconds (2 seconds)
unsigned long offTime = 4000; // Adjust off time in milliseconds (5 seconds)
unsigned long nextStateTime = millis(); // Timer for state change

void setup() {
  pinMode(relayPin, OUTPUT); // Set the relay pin as output
}

void loop() {
  unsigned long currentTime = millis();

  // Check if it's time to change the relay state
  if (currentTime >= nextStateTime) {
    // Toggle the relay state
    digitalWrite(relayPin, !digitalRead(relayPin));

    // Update the next state change timer
    if (digitalRead(relayPin) == HIGH) { // Is relay currently on?
      nextStateTime += onTime; // Schedule next change to off state
    } else {
      nextStateTime += offTime; // Schedule next change to on state
    }
  }
}