Olenka Odar - Fab Academy

FINAL PROJECT

 

First Idea

Some children do not want to sleep alone in their room, much less with the light off because they are still afraid of the dark.  Given this, the idea of my project arises: an image projector lamp for children, the same one that will be activated by sound (specifically by applause) an easy and fun way of operating for a child. 

That was my first idea, some things changed as I carried out the project: structure for the lamp, way of activating the light, among others.  

What does it do?

Once the lamp is energized, every time the sound sensor detects a signal (at the suggestion of my girl every time you blow on the sensor) it will activate the light change and the way in which this light is emitted; In addition, the images and decorations that are placed on the lamp can be interchanged.

How the idea was generated?

"Lamp to treat nyctophobia in children" is the name of my project. The purpose of this lamp is to help children who are afraid of the dark and find it difficult to sleep at night, providing them not only with light so that they are not completely in the dark, but also with images that make them feel safe and happy.

My daughter also went through the same thing and sometimes she doesn't want to sleep alone because she is afraid of the dark; that is why the idea of this project was born. To achieve the purpose of making her feel safe and happy, the images that would be shown should be related to her environment, what she likes and her family.

Who's done what beforehand?

Here is a list of projects based on lamps made in Fab Academy:

What did you design? 

  • The 2D design of the body of the lamp and the image in acrylic
  • 3D lithophane
  • The Fab Xiao RP2040 board

What materials and components were used?

For the body of the lamp (box for the lamp):

  • 3mm MDF

For lithophane and ornament (Image for free use):

  • PLA filament

For acrylic image:

  • 3mm acrylic

For the electronic part:

  • Seeed Studio XIAO RP2040
  • KY-038 sound sensor
  • led strip WS2812B
  • Breadboard FR1
  • 0 ohm resistor
  • 499 Ω resistor
  • 1K ohm resistor
  • 1 LED
  • 1Button
  • 03 Female Pin Header 1x3
  • 02 Female Pin Header 1x5
  • 5VDC power supply

Others:

  • USB Type-C cable
  • ON/OFF switch
  • female plug connector
  • connector cables
  • Nuts and bolts

Where did they come from?

  • MDF and 3mm acrylic from local suppliers
  • The sound sensor and led strip from Naylamp Mechatronics - Peru
  • PLA filament from KREAR 3D
  • Electronic components from Amazon

How much did they cost?

What parts and systems were made? 

  • Box for the lamp
  • Lithophane and 3D ornament
  • Acrylic image
  • Electronics

What processes were used?

  • For the design of the box for the lamp I used Freecad and laser cutting.
  • For the design of the acrylic image I used INKSCAPE, laser cutting and engraving
  • For the design of the lithophane I used 3dp Rocks and 3D printing
  • To design and manufacture the electronic board I will use EasyEDA and the process of milling and soldering.

What questions were answered? 

  • According to the tests you carry out, an 8-year-old child can easily exchange the images to be projected and quickly learn how the lamp works.

What worked? What didn’t?

  • In the final tests of the project everything worked as programmed.

How was it evaluated?

  • Tests of the operation and ease of exchange of the images to be presented with an 8-year-old girl were carried out, it worked correctly.

What are the implications?

  • Once the lamp is finished, I would like to try other materials and other features (include music, for example).

Fabrication Processes

3D Model 
Prototype1

First lamp base design

In the end, the design changed, the circular base was eliminated for a slot where the lithophane and the photo engraved in acrylic would go.

Card design with XIAO RP2040

Design and electronic production of the FAB XIAO RP2040 card.

LED strip tests

Made during the week of output devices.

Sound sensor tests + Led Strip

Made during the week of input devices.

Lithophane

Made during the Wildcard Week. 

Photo for recording in acrylic

I worked in INKSCAPE to get the outline of the photo I chose, there is no way for the program to generate the outline of the image by itself, you have to do the outline "manually".

Little prince in 3D

I chose this little prince ornament (free to use), because it represents the first book my daughter read.

Lamp assembly

License

Para mi proyecto planeo usar la siguiente licencia: Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)

This license allows others to redistribute, remix, adapt, and develop the material in any medium or format, but only for non-commercial purposes, and as long as attribution is granted to the creator. If people remix, adapt, or build upon the material, you must distribute their contributions under the same license as the original.

By clicking on this link, through a simple questionnaire, it tells you which license best suits your project.

Program

/Olenka Od ar - Fab Academy 2023

//FAB-XIAO "Final Project" 

//ARDUINO IDE

#include 

int sensor = D2;

int val_sensor=0;

int conta=0;

int pulso_sal=0;

int Power = 11;

int PIN = D3;

#define NUMPIXELS 18

Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

void setup() {

Serial.begin(9600);

pinMode(sensor, INPUT);

pinMode(PIN, OUTPUT);

 pixels.begin();

  pinMode(Power,OUTPUT);

  digitalWrite(Power, HIGH);}

void loop() { 

  while(true){

if(conta==0){

  pregunta_sensor();

  pixels.show();

pixels.clear();

  pixels.setPixelColor(19, pixels.Color(0, 0, 0));

  pixels.setPixelColor(18, pixels.Color(0, 0, 0));

  pixels.setPixelColor(17, pixels.Color(0, 0, 0));

  pixels.setPixelColor(16, pixels.Color(0, 0, 0));

  pixels.setPixelColor(15, pixels.Color(0, 0, 0));

  pixels.setPixelColor(14, pixels.Color(0, 0, 0));

  pixels.setPixelColor(13, pixels.Color(0, 0, 0));

  pixels.setPixelColor(12, pixels.Color(0, 0, 0));

delay(100);}

if(conta==1){

  pregunta_sensor();

  pixels.show();

pixels.clear();

  pixels.setPixelColor(19, pixels.Color(255, 255, 255));

  pixels.setPixelColor(18, pixels.Color(255, 255, 255));

  pixels.setPixelColor(17, pixels.Color(255, 255, 255));

  pixels.setPixelColor(16, pixels.Color(255, 255, 255));

  pixels.setPixelColor(15, pixels.Color(255, 255, 255));

  pixels.setPixelColor(14, pixels.Color(255, 255, 255));

  pixels.setPixelColor(13, pixels.Color(255, 255, 255));

  pixels.setPixelColor(12, pixels.Color(255, 255, 255));

delay(100);}

if(conta==2){//azul

pregunta_sensor();

pixels.show();

pixels.clear();

  pixels.setPixelColor(19, pixels.Color(15, 25, 205));

  pixels.setPixelColor(18, pixels.Color(15, 25, 205));

  pixels.setPixelColor(17, pixels.Color(15, 25, 205));

  pixels.setPixelColor(16, pixels.Color(15, 25, 205));

  pixels.setPixelColor(15, pixels.Color(15, 25, 205));

  pixels.setPixelColor(14, pixels.Color(15, 25, 205));

  pixels.setPixelColor(13, pixels.Color(15, 25, 205));

  pixels.setPixelColor(12, pixels.Color(15, 25, 205));

delay(200);}

if(conta==2){//azul

pregunta_sensor();

pixels.show();

pixels.clear();

  pixels.setPixelColor(19, pixels.Color(15, 25, 205));

  pixels.setPixelColor(18, pixels.Color(15, 25, 205));

  pixels.setPixelColor(17, pixels.Color(15, 25, 205));

  pixels.setPixelColor(16, pixels.Color(15, 25, 205));

  pixels.setPixelColor(15, pixels.Color(15, 25, 205));

  pixels.setPixelColor(14, pixels.Color(15, 25, 205));

  pixels.setPixelColor(13, pixels.Color(15, 25, 205));

  pixels.setPixelColor(12, pixels.Color(15, 25, 205));

delay(200);}

if(conta==2){//azul

pregunta_sensor();

pixels.show();

pixels.clear();

  pixels.setPixelColor(19, pixels.Color(15, 25, 205));

  pixels.setPixelColor(18, pixels.Color(15, 25, 205));

  pixels.setPixelColor(17, pixels.Color(15, 25, 205));

  pixels.setPixelColor(16, pixels.Color(15, 25, 205));

  pixels.setPixelColor(15, pixels.Color(15, 25, 205));

  pixels.setPixelColor(14, pixels.Color(15, 25, 205));

  pixels.setPixelColor(13, pixels.Color(15, 25, 205));

  pixels.setPixelColor(12, pixels.Color(15, 25, 205));

delay(200);}

if(conta==2){//azul

  pregunta_sensor();

pixels.show();

pixels.clear();

  pixels.setPixelColor(19, pixels.Color(15, 25, 205));

  pixels.setPixelColor(18, pixels.Color(15, 25, 205));

  pixels.setPixelColor(17, pixels.Color(15, 25, 205));

  pixels.setPixelColor(16, pixels.Color(15, 25, 205));

  pixels.setPixelColor(15, pixels.Color(15, 25, 205));

  pixels.setPixelColor(14, pixels.Color(15, 25, 205));

  pixels.setPixelColor(13, pixels.Color(15, 25, 205));

  pixels.setPixelColor(12, pixels.Color(15, 25, 205));

delay(200);}

if(conta==2){//rojo

   pregunta_sensor();

pixels.show();

pixels.clear();

  pixels.setPixelColor(19, pixels.Color(255, 0, 0));

  pixels.setPixelColor(18, pixels.Color(255, 0, 0));

  pixels.setPixelColor(17, pixels.Color(255, 0, 0));

  pixels.setPixelColor(16, pixels.Color(255, 0, 0));

  pixels.setPixelColor(15, pixels.Color(255, 0, 0));

  pixels.setPixelColor(14, pixels.Color(255, 0, 0));

  pixels.setPixelColor(13, pixels.Color(255, 0, 0));

  pixels.setPixelColor(12, pixels.Color(255, 0, 0));

  delay(200);}

if(conta==2){//rojo

   pregunta_sensor();

pixels.show();

pixels.clear();

  pixels.setPixelColor(19, pixels.Color(255, 0, 0));

  pixels.setPixelColor(18, pixels.Color(255, 0, 0));

  pixels.setPixelColor(17, pixels.Color(255, 0, 0));

  pixels.setPixelColor(16, pixels.Color(255, 0, 0));

  pixels.setPixelColor(15, pixels.Color(255, 0, 0));

  pixels.setPixelColor(14, pixels.Color(255, 0, 0));

  pixels.setPixelColor(13, pixels.Color(255, 0, 0));

  pixels.setPixelColor(12, pixels.Color(255, 0, 0));

  delay(200);}

if(conta==2){//rojo

   pregunta_sensor();

pixels.show();

pixels.clear();

  pixels.setPixelColor(19, pixels.Color(255, 0, 0));

  pixels.setPixelColor(18, pixels.Color(255, 0, 0));

  pixels.setPixelColor(17, pixels.Color(255, 0, 0));

  pixels.setPixelColor(16, pixels.Color(255, 0, 0));

  pixels.setPixelColor(15, pixels.Color(255, 0, 0));

  pixels.setPixelColor(14, pixels.Color(255, 0, 0));

  pixels.setPixelColor(13, pixels.Color(255, 0, 0));

  pixels.setPixelColor(12, pixels.Color(255, 0, 0));

  delay(200);}

if(conta==2){//rojo

   pregunta_sensor();

pixels.show();

pixels.clear();

  pixels.setPixelColor(19, pixels.Color(255, 0, 0));

  pixels.setPixelColor(18, pixels.Color(255, 0, 0));

  pixels.setPixelColor(17, pixels.Color(255, 0, 0));

  pixels.setPixelColor(16, pixels.Color(255, 0, 0));

  pixels.setPixelColor(15, pixels.Color(255, 0, 0));

  pixels.setPixelColor(14, pixels.Color(255, 0, 0));

  pixels.setPixelColor(13, pixels.Color(255, 0, 0));

  pixels.setPixelColor(12, pixels.Color(255, 0, 0));

  delay(200);}

if(conta==2){//fucsia

   pregunta_sensor();

  pixels.show();

  pixels.clear();

  pixels.setPixelColor(19, pixels.Color(64, 0, 128));

  pixels.setPixelColor(18, pixels.Color(64, 0, 128));

  pixels.setPixelColor(17, pixels.Color(64, 0, 128));

  pixels.setPixelColor(16, pixels.Color(64, 0, 128));

  pixels.setPixelColor(15, pixels.Color(64, 0, 128));

  pixels.setPixelColor(14, pixels.Color(64, 0, 128));

  pixels.setPixelColor(13, pixels.Color(64, 0, 128));

  pixels.setPixelColor(12, pixels.Color(64, 0, 128));

  delay(200); }

 if(conta==2){//fucsia

   pregunta_sensor();

  pixels.show();

  pixels.clear();

  pixels.setPixelColor(19, pixels.Color(64, 0, 128));

  pixels.setPixelColor(18, pixels.Color(64, 0, 128));

  pixels.setPixelColor(17, pixels.Color(64, 0, 128));

  pixels.setPixelColor(16, pixels.Color(64, 0, 128));

  pixels.setPixelColor(15, pixels.Color(64, 0, 128));

  pixels.setPixelColor(14, pixels.Color(64, 0, 128));

  pixels.setPixelColor(13, pixels.Color(64, 0, 128));

  pixels.setPixelColor(12, pixels.Color(64, 0, 128));

  delay(200); }

 if(conta==2){//fucsia

   pregunta_sensor();

  pixels.show();

  pixels.clear();

  pixels.setPixelColor(19, pixels.Color(64, 0, 128));

  pixels.setPixelColor(18, pixels.Color(64, 0, 128));

  pixels.setPixelColor(17, pixels.Color(64, 0, 128));

  pixels.setPixelColor(16, pixels.Color(64, 0, 128));

  pixels.setPixelColor(15, pixels.Color(64, 0, 128));

  pixels.setPixelColor(14, pixels.Color(64, 0, 128));

  pixels.setPixelColor(13, pixels.Color(64, 0, 128));

  pixels.setPixelColor(12, pixels.Color(64, 0, 128));

  delay(200); }

 if(conta==2){//fucsia

   pregunta_sensor();

  pixels.show();

  pixels.clear();

  pixels.setPixelColor(19, pixels.Color(64, 0, 128));

  pixels.setPixelColor(18, pixels.Color(64, 0, 128));

  pixels.setPixelColor(17, pixels.Color(64, 0, 128));

  pixels.setPixelColor(16, pixels.Color(64, 0, 128));

  pixels.setPixelColor(15, pixels.Color(64, 0, 128));

  pixels.setPixelColor(14, pixels.Color(64, 0, 128));

  pixels.setPixelColor(13, pixels.Color(64, 0, 128));

  pixels.setPixelColor(12, pixels.Color(64, 0, 128));

  delay(200); } 

if(conta==2){//verde

  pregunta_sensor();

  pixels.show();

   pixels.clear();

  pixels.setPixelColor(19, pixels.Color(0, 255, 0));

  pixels.setPixelColor(18, pixels.Color(0, 255, 0));

  pixels.setPixelColor(17, pixels.Color(0, 255, 0));

  pixels.setPixelColor(16, pixels.Color(0, 255, 0));

  pixels.setPixelColor(15, pixels.Color(0, 255, 0));

  pixels.setPixelColor(14, pixels.Color(0, 255, 0));

  pixels.setPixelColor(13, pixels.Color(0, 255, 0));

  pixels.setPixelColor(12, pixels.Color(0, 255, 0));

  delay(200);}

if(conta==2){//verde

  pregunta_sensor();

  pixels.show();

   pixels.clear();

  pixels.setPixelColor(19, pixels.Color(0, 255, 0));

  pixels.setPixelColor(18, pixels.Color(0, 255, 0));

  pixels.setPixelColor(17, pixels.Color(0, 255, 0));

  pixels.setPixelColor(16, pixels.Color(0, 255, 0));

  pixels.setPixelColor(15, pixels.Color(0, 255, 0));

  pixels.setPixelColor(14, pixels.Color(0, 255, 0));

  pixels.setPixelColor(13, pixels.Color(0, 255, 0));

  pixels.setPixelColor(12, pixels.Color(0, 255, 0));

  delay(200);}

if(conta==2){//verde

  pregunta_sensor();

  pixels.show();

   pixels.clear();

  pixels.setPixelColor(19, pixels.Color(0, 255, 0));

  pixels.setPixelColor(18, pixels.Color(0, 255, 0));

  pixels.setPixelColor(17, pixels.Color(0, 255, 0));

  pixels.setPixelColor(16, pixels.Color(0, 255, 0));

  pixels.setPixelColor(15, pixels.Color(0, 255, 0));

  pixels.setPixelColor(14, pixels.Color(0, 255, 0));

  pixels.setPixelColor(13, pixels.Color(0, 255, 0));

  pixels.setPixelColor(12, pixels.Color(0, 255, 0));

  delay(200);}

if(conta==2){//verde

  pregunta_sensor();

  pixels.show();

   pixels.clear();

  pixels.setPixelColor(19, pixels.Color(0, 255, 0));

  pixels.setPixelColor(18, pixels.Color(0, 255, 0));

  pixels.setPixelColor(17, pixels.Color(0, 255, 0));

  pixels.setPixelColor(16, pixels.Color(0, 255, 0));

  pixels.setPixelColor(15, pixels.Color(0, 255, 0));

  pixels.setPixelColor(14, pixels.Color(0, 255, 0));

  pixels.setPixelColor(13, pixels.Color(0, 255, 0));

  pixels.setPixelColor(12, pixels.Color(0, 255, 0));

  delay(200);}

if(conta==2){//turquesa

  pregunta_sensor();

  pixels.show();

   pixels.clear();

  pixels.setPixelColor(19, pixels.Color(0, 162, 232));

  pixels.setPixelColor(18, pixels.Color(0, 162, 232));

  pixels.setPixelColor(17, pixels.Color(0, 162, 232));

  pixels.setPixelColor(16, pixels.Color(0, 162, 232));

  pixels.setPixelColor(15, pixels.Color(0, 162, 232));

  pixels.setPixelColor(14, pixels.Color(0, 162, 232));

  pixels.setPixelColor(13, pixels.Color(0, 162, 232));

  pixels.setPixelColor(12, pixels.Color(0, 162, 232));

  delay(200); }

if(conta==2){//turquesa

  pregunta_sensor();

  pixels.show();

   pixels.clear();

  pixels.setPixelColor(19, pixels.Color(0, 162, 232));

  pixels.setPixelColor(18, pixels.Color(0, 162, 232));

  pixels.setPixelColor(17, pixels.Color(0, 162, 232));

  pixels.setPixelColor(16, pixels.Color(0, 162, 232));

  pixels.setPixelColor(15, pixels.Color(0, 162, 232));

  pixels.setPixelColor(14, pixels.Color(0, 162, 232));

  pixels.setPixelColor(13, pixels.Color(0, 162, 232));

  pixels.setPixelColor(12, pixels.Color(0, 162, 232));

  delay(200); }

if(conta==2){//turquesa

  pregunta_sensor();

  pixels.show();

   pixels.clear();

  pixels.setPixelColor(19, pixels.Color(0, 162, 232));

  pixels.setPixelColor(18, pixels.Color(0, 162, 232));

  pixels.setPixelColor(17, pixels.Color(0, 162, 232));

  pixels.setPixelColor(16, pixels.Color(0, 162, 232));

  pixels.setPixelColor(15, pixels.Color(0, 162, 232));

  pixels.setPixelColor(14, pixels.Color(0, 162, 232));

  pixels.setPixelColor(13, pixels.Color(0, 162, 232));

  pixels.setPixelColor(12, pixels.Color(0, 162, 232));

  delay(200); }

if(conta==2){//turquesa

  pregunta_sensor();

  pixels.show();

   pixels.clear();

  pixels.setPixelColor(19, pixels.Color(0, 162, 232));

  pixels.setPixelColor(18, pixels.Color(0, 162, 232));

  pixels.setPixelColor(17, pixels.Color(0, 162, 232));

  pixels.setPixelColor(16, pixels.Color(0, 162, 232));

  pixels.setPixelColor(15, pixels.Color(0, 162, 232));

  pixels.setPixelColor(14, pixels.Color(0, 162, 232));

  pixels.setPixelColor(13, pixels.Color(0, 162, 232));

  pixels.setPixelColor(12, pixels.Color(0, 162, 232));

  delay(200); }

if(conta==3){

  pregunta_sensor();

pixels.show();

pixels.clear();

  pixels.setPixelColor(19, pixels.Color(255, 0, 128));

  pixels.setPixelColor(18, pixels.Color(255, 0, 128));

  pixels.setPixelColor(17, pixels.Color(255, 0, 128));

  pixels.setPixelColor(16, pixels.Color(255, 0, 128));

  pixels.setPixelColor(15, pixels.Color(255, 0, 128));

  pixels.setPixelColor(14, pixels.Color(255, 0, 128));

  pixels.setPixelColor(13, pixels.Color(255, 0, 128));

  pixels.setPixelColor(12, pixels.Color(255, 0, 128));

delay(100);}

if(conta==4){//naranja oscuro

pregunta_sensor();

  pixels.show();

   pixels.clear();

  pixels.setPixelColor(19, pixels.Color(149, 60, 0));

  pixels.setPixelColor(18, pixels.Color(149, 60, 0));

  pixels.setPixelColor(17, pixels.Color(149, 60, 0));

  pixels.setPixelColor(16, pixels.Color(149, 60, 0));

  pixels.setPixelColor(15, pixels.Color(149, 60, 0));

  pixels.setPixelColor(14, pixels.Color(149, 60, 0));

  pixels.setPixelColor(13, pixels.Color(149, 60, 0));

  pixels.setPixelColor(12, pixels.Color(149, 60, 0));

  delay(200); }

if(conta==4){//naranja oscuro

pregunta_sensor();

  pixels.show();

   pixels.clear();

  pixels.setPixelColor(19, pixels.Color(149, 60, 0));

  pixels.setPixelColor(18, pixels.Color(149, 60, 0));

  pixels.setPixelColor(17, pixels.Color(149, 60, 0));

  pixels.setPixelColor(16, pixels.Color(149, 60, 0));

  pixels.setPixelColor(15, pixels.Color(149, 60, 0));

  pixels.setPixelColor(14, pixels.Color(149, 60, 0));

  pixels.setPixelColor(13, pixels.Color(149, 60, 0));

  pixels.setPixelColor(12, pixels.Color(149, 60, 0));

  delay(200); }

if(conta==4){//naranja oscuro

pregunta_sensor();

  pixels.show();

   pixels.clear();

  pixels.setPixelColor(19, pixels.Color(149, 60, 0));

  pixels.setPixelColor(18, pixels.Color(149, 60, 0));

  pixels.setPixelColor(17, pixels.Color(149, 60, 0));

  pixels.setPixelColor(16, pixels.Color(149, 60, 0));

  pixels.setPixelColor(15, pixels.Color(149, 60, 0));

  pixels.setPixelColor(14, pixels.Color(149, 60, 0));

  pixels.setPixelColor(13, pixels.Color(149, 60, 0));

  pixels.setPixelColor(12, pixels.Color(149, 60, 0));

  delay(200); }

if(conta==4){//naranja oscuro

pregunta_sensor();

  pixels.show();

   pixels.clear();

  pixels.setPixelColor(19, pixels.Color(149, 60, 0));

  pixels.setPixelColor(18, pixels.Color(149, 60, 0));

  pixels.setPixelColor(17, pixels.Color(149, 60, 0));

  pixels.setPixelColor(16, pixels.Color(149, 60, 0));

  pixels.setPixelColor(15, pixels.Color(149, 60, 0));

  pixels.setPixelColor(14, pixels.Color(149, 60, 0));

  pixels.setPixelColor(13, pixels.Color(149, 60, 0));

  pixels.setPixelColor(12, pixels.Color(149, 60, 0));

  delay(200); }

if(conta==4){//naranja oscuro

pregunta_sensor();

  pixels.show();

   pixels.clear();

  pixels.setPixelColor(19, pixels.Color(149, 60, 0));

  pixels.setPixelColor(18, pixels.Color(149, 60, 0));

  pixels.setPixelColor(17, pixels.Color(149, 60, 0));

  pixels.setPixelColor(16, pixels.Color(149, 60, 0));

  pixels.setPixelColor(15, pixels.Color(149, 60, 0));

  pixels.setPixelColor(14, pixels.Color(149, 60, 0));

  pixels.setPixelColor(13, pixels.Color(149, 60, 0));

  pixels.setPixelColor(12, pixels.Color(149, 60, 0));

  delay(200); }

if(conta==4){//naranja muy oscuro

pregunta_sensor();

  pixels.show();

   pixels.clear();

  pixels.setPixelColor(19, pixels.Color(74, 30, 0));

  pixels.setPixelColor(18, pixels.Color(74, 30, 0));

  pixels.setPixelColor(17, pixels.Color(74, 30, 0));

  pixels.setPixelColor(16, pixels.Color(74, 30, 0));

  pixels.setPixelColor(15, pixels.Color(74, 30, 0));

  pixels.setPixelColor(14, pixels.Color(74, 30, 0));

  pixels.setPixelColor(13, pixels.Color(74, 30, 0));

  pixels.setPixelColor(12, pixels.Color(74, 30, 0));

  delay(200); }

if(conta==4){//naranja muy oscuro

pregunta_sensor();

  pixels.show();

   pixels.clear();

  pixels.setPixelColor(19, pixels.Color(74, 30, 0));

  pixels.setPixelColor(18, pixels.Color(74, 30, 0));

  pixels.setPixelColor(17, pixels.Color(74, 30, 0));

  pixels.setPixelColor(16, pixels.Color(74, 30, 0));

  pixels.setPixelColor(15, pixels.Color(74, 30, 0));

  pixels.setPixelColor(14, pixels.Color(74, 30, 0));

  pixels.setPixelColor(13, pixels.Color(74, 30, 0));

  pixels.setPixelColor(12, pixels.Color(74, 30, 0));

  delay(200); }

if(conta==4){//naranja muy oscuro

pregunta_sensor();

  pixels.show();

   pixels.clear();

  pixels.setPixelColor(19, pixels.Color(74, 30, 0));

  pixels.setPixelColor(18, pixels.Color(74, 30, 0));

  pixels.setPixelColor(17, pixels.Color(74, 30, 0));

  pixels.setPixelColor(16, pixels.Color(74, 30, 0));

  pixels.setPixelColor(15, pixels.Color(74, 30, 0));

  pixels.setPixelColor(14, pixels.Color(74, 30, 0));

  pixels.setPixelColor(13, pixels.Color(74, 30, 0));

  pixels.setPixelColor(12, pixels.Color(74, 30, 0));

  delay(200); }

if(conta==4){//naranja muy oscuro

pregunta_sensor();

  pixels.show();

   pixels.clear();

  pixels.setPixelColor(19, pixels.Color(74, 30, 0));

  pixels.setPixelColor(18, pixels.Color(74, 30, 0));

  pixels.setPixelColor(17, pixels.Color(74, 30, 0));

  pixels.setPixelColor(16, pixels.Color(74, 30, 0));

  pixels.setPixelColor(15, pixels.Color(74, 30, 0));

  pixels.setPixelColor(14, pixels.Color(74, 30, 0));

  pixels.setPixelColor(13, pixels.Color(74, 30, 0));

  pixels.setPixelColor(12, pixels.Color(74, 30, 0));

  delay(200); }

if(conta==4){//naranja muy oscuro

pregunta_sensor();

  pixels.show();

   pixels.clear();

  pixels.setPixelColor(19, pixels.Color(74, 30, 0));

  pixels.setPixelColor(18, pixels.Color(74, 30, 0));

  pixels.setPixelColor(17, pixels.Color(74, 30, 0));

  pixels.setPixelColor(16, pixels.Color(74, 30, 0));

  pixels.setPixelColor(15, pixels.Color(74, 30, 0));

  pixels.setPixelColor(14, pixels.Color(74, 30, 0));

  pixels.setPixelColor(13, pixels.Color(74, 30, 0));

  pixels.setPixelColor(12, pixels.Color(74, 30, 0));

  delay(200); }

if(conta==4){

  pregunta_sensor();

  pixels.show();

pixels.clear();

  pixels.setPixelColor(19, pixels.Color(0, 0, 0));

  pixels.setPixelColor(18, pixels.Color(0, 0, 0));

  pixels.setPixelColor(17, pixels.Color(0, 0, 0));

  pixels.setPixelColor(16, pixels.Color(0, 0, 0));

  pixels.setPixelColor(15, pixels.Color(0, 0, 0));

  pixels.setPixelColor(14, pixels.Color(0, 0, 0));

  pixels.setPixelColor(13, pixels.Color(0, 0, 0));

  pixels.setPixelColor(12, pixels.Color(0, 0, 0));

delay(100);}

if(conta==4){

  pregunta_sensor();

  pixels.show();

pixels.clear();

  pixels.setPixelColor(19, pixels.Color(0, 0, 0));

  pixels.setPixelColor(18, pixels.Color(0, 0, 0));

  pixels.setPixelColor(17, pixels.Color(0, 0, 0));

  pixels.setPixelColor(16, pixels.Color(0, 0, 0));

  pixels.setPixelColor(15, pixels.Color(0, 0, 0));

  pixels.setPixelColor(14, pixels.Color(0, 0, 0));

  pixels.setPixelColor(13, pixels.Color(0, 0, 0));

  pixels.setPixelColor(12, pixels.Color(0, 0, 0));

delay(100);}

if(conta==4){

  pregunta_sensor();

  pixels.show();

pixels.clear();

  pixels.setPixelColor(19, pixels.Color(0, 0, 0));

  pixels.setPixelColor(18, pixels.Color(0, 0, 0));

  pixels.setPixelColor(17, pixels.Color(0, 0, 0));

  pixels.setPixelColor(16, pixels.Color(0, 0, 0));

  pixels.setPixelColor(15, pixels.Color(0, 0, 0));

  pixels.setPixelColor(14, pixels.Color(0, 0, 0));

  pixels.setPixelColor(13, pixels.Color(0, 0, 0));

  pixels.setPixelColor(12, pixels.Color(0, 0, 0));

delay(100);}

if(conta==4){

  pregunta_sensor();

  pixels.show();

pixels.clear();

  pixels.setPixelColor(19, pixels.Color(0, 0, 0));

  pixels.setPixelColor(18, pixels.Color(0, 0, 0));

  pixels.setPixelColor(17, pixels.Color(0, 0, 0));

  pixels.setPixelColor(16, pixels.Color(0, 0, 0));

  pixels.setPixelColor(15, pixels.Color(0, 0, 0));

  pixels.setPixelColor(14, pixels.Color(0, 0, 0));

  pixels.setPixelColor(13, pixels.Color(0, 0, 0));

  pixels.setPixelColor(12, pixels.Color(0, 0, 0));

delay(100);}

if(conta==4){

  pregunta_sensor();

  pixels.show();

pixels.clear();

  pixels.setPixelColor(19, pixels.Color(0, 0, 0));

  pixels.setPixelColor(18, pixels.Color(0, 0, 0));

  pixels.setPixelColor(17, pixels.Color(0, 0, 0));

  pixels.setPixelColor(16, pixels.Color(0, 0, 0));

  pixels.setPixelColor(15, pixels.Color(0, 0, 0));

  pixels.setPixelColor(14, pixels.Color(0, 0, 0));

  pixels.setPixelColor(13, pixels.Color(0, 0, 0));

  pixels.setPixelColor(12, pixels.Color(0, 0, 0));

delay(100);}

if(conta==5){

   pregunta_sensor();

pixels.show();

pixels.clear();

  pixels.setPixelColor(9, pixels.Color(255, 0, 0));

  pixels.setPixelColor(8, pixels.Color(0, 255, 0));

  pixels.setPixelColor(7, pixels.Color(0, 0, 255));

  pixels.setPixelColor(6, pixels.Color(255, 140, 0));

  pixels.setPixelColor(5, pixels.Color(153, 0, 153));

  pixels.setPixelColor(4, pixels.Color(255,255, 0));

  pixels.setPixelColor(3, pixels.Color(255, 0, 127));

  pixels.setPixelColor(2, pixels.Color(0, 255, 255));

delay(100);}

if(conta==6){

delay(100);}  }}

void pregunta_sensor(){  

  val_sensor=digitalRead(sensor); //read pin status

    if(val_sensor==HIGH)pulso_sal=1;

    if(val_sensor==LOW&&pulso_sal==1){

    pulso_sal=0;

    conta=conta+1;}

    if(conta>=6)conta=0;

        Serial.print(conta);  }

Lamp to treat nyctophobia in children

Lithophane

GIMP + 3DP ROCKS + CURA + 3D print

Photo for recording in acrylic

INKSCAPE + Laser cut

Little prince 

3D print

Unicorn

INKSCAPE + Laser cut

Electronics

XIAO RP2040 + Sound Sensor + RGB led strip

Other software

EASYEDA, FREECAD, SOLIDWORKS

Acknowledgments

  • To my local instructor Juan Diego Ernesto Cerrón Salcedo, for the long hours of meetings via meet to provide me with the necessary guidance throughout this adventure that is the Fab Academy.
  • To José Alexis Del Aguila Ramos, laboratory staff at the UContinental Fab Lab in Huancayo, who gave me advice on handling some machines and equipment that allowed me to successfully carry out my tasks.
  • To Alberto J. Torres H. and Jose Angel Palomares Pedraza, students of the Fab Academy, belonging to the Fab Lab Ucontinental of Huancayo, who did not hesitate to answer my phone calls to guide me and clarify my doubts in the development of some assignments.
  • To Engineer Roberto Delgado, coordinator of Fab Lab Peru, for his support and motivation to finish the Fab Academy.
  • To Adrian Torres, because what was done on his Fab Academy website served me many times as a basis to carry out my own assignments. You can visit his page by clicking here.
  • To my global instructor Noor Ahmed Pirwani, for his patience and precise corrections in order to meet the requirements and standards of the Fab Academy.

  

Final project files

Laser

3d print

Programming


   Assignments