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)✅
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
Group assignment

teamwork

The project was developed collaboratively, as I worked alongside my classmate Evelyn, who is also a Fab Academy student. Due to the distance—she was in Lima and I was in Huancayo—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 an important role, guiding us throughout the process and helping us refine the concept of the machine we wanted to create.

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

Within the group work, I was in charge of the following:

  • prototype construction
  • Full integration of electronic components
  • Programming in Arduino IDE for motor speed control and other sensors.Programming in Arduino IDE for motor speed control and other sensors.

Reflections

  • This group project experience was a challenge for me since I'm working in Huancayo, and my colleague Evelyn is in Lima. We had several virtual meetings, and I also made time in my schedule to travel and meet with Evelyn to put our project together. It was a very pleasant experience; we shared ideas, knowledge, and, above all, collaborative work.
  • I had many ideas to develop the machine, and in collaboration with my partner, we were able to define a machine that had everything required based on what was requested in the task. With the support and knowledge of the instructors, we started our project. Despite the distance, it was possible to carry it out and complete it.
Individual assignment
  • Document your individual contribution

Rectangular and Polar Coordinates

This task aims to materialize the development of a project that can move along rectangular coordinate axes (x, y) or polar coordinates (r, 0). That is, it can drive elements that move along these axes. This could be a machine or mechanism that performs an automated function. Therefore, we began with the idea of ​​creating a machine that we will call "VibroBot: a sound-powered kinetic machine."

Project Concept: "VibroBot: A Sound-Powered Kinetic Machine"

In this phase, I previously reviewed information from the state-of-the-art documentation on the Fab Academy website and analyzed several previous projects. This process allowed me to gather ideas, identify possibilities, and develop a clear understanding of the mechanism to be designed, especially one that meets the characteristics of movement in a rectangular and polar coordinate system—that is, to design a machine that integrates movement, art, and technology. For this reason, my project would now be called "VibroBot: A Sound-Powered Kinetic Machine".

Design stage

At this stage, with our classmate Evelyn, we designed a preliminary model of the machine, essential for visualizing the general structure of the machine and anticipating how its different parts would interact.

Review of the preliminary project

Afterward, Evelyn, Roberto, and I met to review the preliminary design of our machine to ensure we were aligned with the overall project concept. Once everything was clear, the final design was completed, and the entire mechanical structure of our machine was built.

1.-Design and Construction

Base Design

For the design of the base we have used AutoCAD software,To create the dimensions and slots on the x and y axes, which will house the connecting pins of the link joints, which will move on the x and y axes by means of the rotation of a clockwise link.

150-Degree Articulation Join

The mechanical components, which are links with obtuse angles of 150 degrees, will allow rotational movement of up to 150 degrees, in a total of 17 links.

Design in Autocad

The other component is also the design of a link with a 120° angle to form the geometric figures of a rhombus that can be opened and closed when the central element rotates, driven by the motor.

cutting parts

Using a CNC laser machine, all the pieces designed in AutoCAD software were cut, and then the pieces were assembled and joined together.

Construction

To build the machine, we started by joining all the parts together. We also used sliding spacers that would be placed at the joints, which would perform the sliding function when the motor and shaft mechanism rotate according to the rotation speed.

Once the components are ready, we begin making the connections according to our schematic diagram, and then continue with the programming in the auduino IDE environment.

2.-List of Components

The electronic components I will use for the project include an Arduino board, a 3- to 6-volt DC gear motor, an ultrasonic sensor, and a driver for powering and controlling the motor switch. These elements form part of the vibrobot's electronic mechanism and control, and will later be integrated into the program development and the machine's interaction with its environment

DC 3-6V gear motor

  • Supply voltage: 3-6V
  • Reduction: 48:1
  • Load current consumption: 150mA
  • Shaft diameter: 6mm

Arduino Uno

  • Microcontroller: ATmega328P
  • Operating Voltage: 5V
  • Input Voltage (recommended): 7–12V
  • Input Voltage (limit): 6–20V
  • Digital I/O Pins: 14 (6 PWM outputs)
  • Analog Input Pins: 6
  • DC Current per I/O Pin: 20 mA
  • Flash Memory: 32 KB (0.5 KB used by bootloader)

Driver L298N

  • Motor operating voltage: 5V to 35V
  • Logic voltage: 5V
  • Maximum current: 2A per channel (3A peak)
  • Channels: 2 (can control 2 DC motors or 1 stepper motor)
  • Maximum PWM frequency: 40 kHz
  • Thermal protection: Yes
  • Integrated 5V voltage regulator (can be enabled or disabled via jumper)

3.-Electronic Programming in Arduino IDE

Once the components are ready, we begin making the connections according to our schematic diagram, and then continue with the programming in the auduino IDE environment.

  1. Arduino: Main controller that makes decisions and executes actions.
  2. Ultrasonic Sensor (HC-SR04): Measures the distance to an object using ultrasonic pulses.
  3. L298N Motor Driver: Controls the DC motor (speed and direction), since the Arduino cannot provide enough current directly.
  4. DC Motor: Activates when an object is detected.

Programming Code


#include 
#include 
												
// Pines del sensor ultrasónico
const int trigPin = 9;
const int echoPin = 8;
												
// Pines del motor (L298N)
const int motorPWM = 5;
const int motorDir = 7;
												
// Pines de LEDs
const int ledDetectado = 3;   // LED que se enciende cuando se detecta
const int ledNoDetectado = 4; // LED que se enciende cuando no se detecta
												
// Comunicación DFPlayer Mini
SoftwareSerial mp3Serial(10, 11); // RX, TX
DFRobotDFPlayerMini mp3;
bool mp3Ready = false;
												
void setup() {
  Serial.begin(9600);
  mp3Serial.begin(9600);
												
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(motorPWM, OUTPUT);
  pinMode(motorDir, OUTPUT);
										
  // Pines LED
  pinMode(ledDetectado, OUTPUT);
  pinMode(ledNoDetectado, OUTPUT);
												
  analogWrite(motorPWM, 0);
  digitalWrite(motorDir, LOW);
												
  Serial.println("Iniciando DFPlayer...");
  if (mp3.begin(mp3Serial)) {
  mp3.volume(25);
  mp3Ready = true;
Serial.println("DFPlayer listo.");
  } else {
Serial.println("DFPlayer no responde. Continuando sin sonido.");
  }
}
												
void loop() {
  // Medición ultrasónica
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
												
  long duration = pulseIn(echoPin, HIGH);
  float distance = duration * 0.034 / 2;
												
  Serial.print("Distancia: ");
  Serial.print(distance);
  Serial.println(" cm");
												
 if (distance > 0 && distance < 15) {
	Serial.println("Objeto detectado. Encendiendo motor, LED y sonido.");
											
	// Encender LED de detección, apagar el otro
	digitalWrite(ledDetectado, HIGH);
	digitalWrite(ledNoDetectado, LOW);
					  
									
	// Encender motor al 50%
	digitalWrite(motorDir, HIGH);
	analogWrite(motorPWM, 150);
	delay(400);
	analogWrite(motorPWM, 255);
	Serial.println("Motor apagado.");
												
	delay(1000); // Pausa para evitar repeticiones rápidas
  } else {
	// Si no se detecta, encender LED de no detección
	digitalWrite(ledDetectado, LOW);
	digitalWrite(ledNoDetectado, HIGH);
  }
												
  delay(200);
}											

4.-mechanical design completed

Several tests were performed to verify that the mechanism was working correctly and responding according to the programming code. However, we did have some issues with the power supply. We needed more power for the machine to function properly, so we decided to use two sources: one connected to the mains with a battery and the other from the laptop. This solution facilitated the machine's operation.

and we continue to perform tests to verify that everything is working correctly.

Below is the completed, assembled design. We see that the ultrasound sensor detects distance. If it is less than 15 cm, it turns on a detection LED, then activates the motor connected to the L298N (first at 50%, then briefly at 100%).

Conclusions

  • After reviewing the documentation for week 12 of Fab Academy 2025, I am deeply satisfied with the progress of the "VibroBot: A Sound-Powered Kinetic Machine" project. This project successfully linked a sound signal (such as a clap, voice, or music) with the activation of movement. This also opens up the possibility of designing interactive toys, sound-response systems, or environmentally sensitive kinetic art. This project allowed me to integrate and strengthen various knowledge acquired throughout the course, from conceptualization to prototype implementation.
  • The virtual collaboration with my colleague Evelyn, despite the physical distance between Lima and Huancayo, was crucial. Together, we divided the tasks efficiently: she was in charge of programming, sensory system design, and electronic integration, while I was in charge of building the mechanical structure and adapting mechanical and electronic components. This collaborative experience strengthened my teamwork and communication skills, essential in collaborative technological projects.

Link to files used this week

1. mechanical desing.zip
2.-vibrobot programming.ino