• Home
  • About me
  • Assigments
  • Final Project
  • Agreement

Mechanical Design, Machine Design

Group Assignment:

  • Design a machine that includes mechanism + actuation + automation + application
  • Build the mechanical parts and operate it manually
  • Document the group project
  • Individual Assignment:

  • Document your individual contribution


  • Have you answered these questions?

    Documented the machine building process to the group page ✅

    Documented your individual contribution to this project on your own website✅

    Linked to the group page from your individual page as well as from group page to your individual pages✅

    Shown how your team planned, allocated tasks and executed the project (Group page)✅

    Described problems and how the team solved them (Group page)✅

    Listed possible improvements for this project (Group page)✅

    Included your design files (Group page)✅

    You need to present your machine globally and/or include a 1 min video (1920x1080 HTML5 MP4) + slide (1920x1080 PNG) (Group page)✅


    Group assignment

  • Design a machine that includes mechanism + actuation + automation + application
  • Build the mechanical parts and operate it manually
  • Document the group project


  • Image Image

    Teamwork

    The development of the project was collaborative, as I worked alongside my teammate Armando, who is also attending the Fab Academy. Due to the distance, with him in Huancayo and me in Lima, we connected virtually to review our progress and improve the project, with a clear division of tasks. Our instructors — Roberto, Ulises, Luis Miguel, and Cristian— played a crucial role, guiding us throughout the process and helping us refine the concept of the machine we aimed to create:

  • Design and assembly of the structure ("the shell")
  • Integration of motors and moving parts

  • I was responsible for the "spirit" of the machine, including:

  • Original idea and conceptualization
  • Initial 3D modeling
  • Design of the sensory and electronic system
  • Full programming in Arduino IDE
  • Integration of sensors, lights, and controllers
  • Design and editing of the project poster for visual presentation
  • Here is the link to learn more about the group project.


    Reflections

  • This group project experience, carried out remotely, was undoubtedly a major learning moment for me—both technically and personally. At first, I felt a lot of uncertainty, as I had never worked on such a complex project without being physically present with my teammate. Coordinating with Armando, who lives in another city, meant facing communication barriers, differences in scheduling, and a new level of responsibility.
  • I had to trust my own skills more and take full responsibility for ensuring the electronics worked properly. At the same time, I learned how valuable teamwork is, even from a distance. I learned to listen, to contribute, and most importantly, to adapt when things didn’t go as planned.
  • I also realized the importance of having a support network. The help we received from experts was crucial, and it taught me that in complex projects, it’s okay to ask for help—you don’t have to do everything alone.
  • In the end, seeing the machine working was incredibly rewarding—not just because of the technical achievement, but because it represented all the effort, patience, and teamwork we invested. This experience has left me feeling more confident, more prepared, and excited to continue exploring technology and creative collaboration.


  • Individual assignment

  • Document your individual contribution

  • Project Conceptualization: "VibroBot – A Sound-Driven Kinetic Machine"

    1. Origin and Development of the Idea

    Image

    Before starting the development of the project, I carried out an exploratory research phase. I reviewed official documentation on the Fab Academy website, searched for visual references on platforms like Pinterest, and analyzed various past projects. This process allowed me to gather ideas, identify possibilities, and find a clear direction for designing a machine that integrates art, technology, and movement.


    Image

    This project originated from a conceptual idea that I initially proposed, aimed at exploring how sound can be transformed into a visual and three-dimensional experience. From the beginning, the intention was to combine art, technology, and sensory perception in an interactive machine.


    Image

    Based on this idea, I created the preliminary 3D model of the design and established the foundation for the integration between the electronic and mechanical components.


    Image

    This stage was essential for visualizing the overall structure of the machine and anticipating how its different parts would interact.


    Image

    Later on, Armando and I met to review our progress and ensure that we were aligned with the overall concept of the project. Once everything was clarified, Armando took charge of building the entire mechanical structure of our machine.


    Image

    The preliminary design I created included some plans that I shared with Armando for him to consider when developing the mechanical part of the machine.


    With the conceptualization defined, Armando began to execute the idea, improving the mechanisms and the automation of the machine.



    2. List of Components

    The components I will use for the project include: an Arduino board, a Neopixel, a sound sensor, and a switch. These elements will allow me to configure the electronic system required for the development of the program and the machine's interaction with its environment.

    Components Used

    Image

    Arduino UNO

  • Type: Microcontroller board based on the ATmega328P
  • Inputs/Outputs: 14 digital I/O pins (6 with PWM), 6 analog inputs
  • Power Supply: 5V via USB or 7–12V external power
  • Communication: USB, UART, I2C, SPI
  • Use in project: Serves as the main control unit, processing input signals from sensors and controlling outputs such as LEDs.

  • Image

    Neopixel Strip (WS2812B)

  • Type: Individually addressable RGB LED strip
  • Voltage: 5V DC
  • Input: One digital data line from Arduino
  • Power Consumption: ~60 mA per LED at full brightness
  • Use in project: Provides visual feedback in response to detected sound, allowing for interactive lighting effects.

  • Image

    KY-038 Sound Sensor

  • Type: Sound detection module with analog and digital outputs
  • Power Supply: 3.3V – 5V
  • Outputs:
  •     - A0 (analog): Outputs a signal proportional to sound intensity
        - D0 (digital): High/low output based on adjustable sensitivity threshold
                                            
  • Use in project: Detects ambient sound and sends corresponding signals to the Arduino for reactive behavior.

  • Image

    Switch (Push Button or Toggle Switch)

  • Type: Digital input component
  • Voltage Compatibility: 3.3V – 5V logic
  • Input: Connected to a digital pin with pull-up or pull-down resistor
  • Use in project: Allows the user to power the system on/off or trigger specific actions in the program.

  • Image

    For the aesthetic aspect, the idea was to incorporate an origami structure that could rotate. To achieve this, inspiration was taken from Pinterest, where the design and model used were found.


    Image

    For this, I chose microporous material and carried out the cutting using a laser cutter.


    Image

    Now I have the model cut and marked, ready to start testing.


    3. Electronic Programming in Arduino IDE

    Image

    I was responsible for the complete development of the code in Arduino IDE, which includes:

  • Reading analog signals from the KY-038 sound sensor
  • Interpreting sound intensity to modulate the system’s response
  • Controlling Neopixels using the Adafruit_NeoPixel library
  • Using a physical switch to control the system's power state

  • Image

    Having already defined the components for this project, I began making the connections as follows using an Arduino Uno. I used a breadboard to distribute the 5V power supply, since the Arduino does not have enough dedicated power pins. This way, both the Neopixel strip and the KY-038 sound sensor could be connected properly.


    Connection Details

    Component Arduino Pin Component Pin Description
    KY-038 Sound Sensor A0 (Analog Pin 0) A0 (Analog Output) Connects to A0 to detect sound
    KY-038 Sound Sensor 5V VCC Provides power to the sensor
    KY-038 Sound Sensor GND GND Ground connection
    NeoPixel 6 Data Input (DI) Data line to control NeoPixel strip
    NeoPixel 5V VCC Power the NeoPixel strip
    NeoPixel GND GND Ground connection
    Switch 4 Switch Pin Controls when to turn the system on/off
    Switch GND Other side of switch Connects to GND to complete the circuit

    Code Arduino IDE

        #include 
    
            #define SOUND_SENSOR_PIN A0  // Pin analógico para el sensor de sonido
            #define SWITCH_PIN 4         // Pin del interruptor
            #define NEOPIXEL_PIN 6       // Pin para los LEDs NeoPixel
            #define NUM_PIXELS 60        // Número de LEDs en la tira
            #define SOUND_THRESHOLD 78  // Umbral de detección de sonido
            
            Adafruit_NeoPixel strip(NUM_PIXELS, NEOPIXEL_PIN, NEO_GRB + NEO_KHZ800);
            
            unsigned long lastChangeTime = 0;
            int colorIndex = 0;
            
            // Colores que se pueden usar (en formato RGB)
            uint32_t colorList[] = {
              strip.Color(255, 0, 0),     // Rojo
              strip.Color(0, 255, 0),     // Verde
              strip.Color(0, 0, 255),     // Azul
              strip.Color(255, 255, 0),   // Amarillo
              strip.Color(0, 255, 255),   // Cian
              strip.Color(255, 0, 255),   // Magenta
              strip.Color(255, 255, 255)  // Blanco
            };
            
            void setup() {
              pinMode(SWITCH_PIN, INPUT_PULLUP);  // Configura el switch como entrada con pullup
              strip.begin();                      // Inicializa la tira de LEDs
              strip.clear();                       // Apaga todos los LEDs
              strip.show();
              Serial.begin(9600);                  // Inicia la comunicación serial para debug
            }
            
            void loop() {
              bool switchOn = digitalRead(SWITCH_PIN) == LOW;  // Verifica si el switch está encendido
              int soundLevel = analogRead(SOUND_SENSOR_PIN);   // Lee el valor del sensor de sonido
            
              // Imprime los valores para verificar el funcionamiento en el Monitor Serial
              Serial.print("Sound: ");
              Serial.print(soundLevel);
              Serial.print(" | Switch: ");
              Serial.println(switchOn ? "ON" : "OFF");
            
              // Si el switch está encendido y el sonido supera el umbral
              if (switchOn && soundLevel > SOUND_THRESHOLD && (millis() - lastChangeTime > 200)) {
                lastChangeTime = millis();  // Actualiza el tiempo de la última vez que se cambió el color
            
                // Cambia al siguiente color aleatorio
                colorIndex = (colorIndex + 1) % (sizeof(colorList) / sizeof(colorList[0]));
            
                // Enciende todos los LEDs con el color seleccionado
                for (int i = 0; i < NUM_PIXELS; i++) {
                  strip.setPixelColor(i, colorList[colorIndex]);
                }
                strip.show();  // Muestra los cambios en los LEDs
              } else if (!switchOn || soundLevel <= SOUND_THRESHOLD) {
                // Si no hay sonido o el switch está apagado, apaga los LEDs
                strip.clear();
                strip.show();
              }
            
              delay(20);  // Pequeña demora para suavizar la lectura
            }
            
    

    Did you have any difficulties while developing this part of the group assignment?

    Yes, I did face some difficulties while working on this part of the group assignment, since I wasn't familiar with how the threshold is handled. It took me some time to understand this aspect in order to make the sound react in sync with the music.

    Image

    Now, the connections are correct.


    Image

    The switch also worked correctly, turning the LED light on and off.


    Image

    Ready, now the real test begins: proving that the LEDs move in sync with the music.


    The code works perfectly, and the LEDs move in sync with the music. I’m very happy with the result. When the music is changed or a different playlist is used, the system still works correctly.


    Reflections

  • Upon reviewing the Week 12 documentation of the Fab Academy 2025, I feel deeply satisfied with the progress made in the project "VibroBot – A Sound-Driven Kinetic Machine." This project allowed me to integrate various knowledge gained throughout the course, from conceptualization to technical implementation, merging art, technology, and sensory perception into an interactive experience.
  • The virtual collaboration with my partner Armando, despite the physical distance between Lima and Huancayo, was crucial. Together, we efficiently divided tasks: he handled the construction of the mechanical structure, while I focused on programming, designing the sensory system, and electronic integration. This experience strengthened my teamwork and communication skills, which are essential in collaborative tech projects.
  • Additionally, the guidance from our instructors was invaluable. Their continuous support allowed us to overcome both technical and conceptual challenges, ensuring that the project not only met academic requirements but also reflected our creativity and collective effort.
  • This project not only solidified my skills in digital fabrication and programming, but it also inspired me to explore new forms of interaction between art and technology. I am excited about the future possibilities that this learning opens up, both in academic settings and in personal and professional projects.


  • Access to files

  • emotional-lamp
  • origami
  • sensorsound_switch/neopixel_sensorsound_switch.ino


  • < Previous Page Next Page >

    © copyright 2025. Designed by Evelyn Cuadrado

    fabcloud/fabacademy/2025/labs/lima/students/evelyn-cuadrado