My project specializes in education, combining a game that any child can own and also aims to simplify a scientific concept, which is the circulation of blood in the body. As I am a science communicator, my work depends on simplifying concepts through experiments, sufficiency, and more interactive things. For a long time, I have wanted to simplify the circulatory system because when I was a child, I found it hard to imagine so I would like to convey a unique educational experience to others through my project.
Things don't make themselves, You need some tools and smart software to be able to create your CAD design:
Software
I used Fusion 360 software to make a design that transferred to files we can fabricate in 3D printing and laser cutting
to prepare a 3D model that can print in a 3D printing machine as a gcode file
to prepare a 2D model that is cut in a laser cutting machine as a rld file
Materials
PLYwood for laser cutting
PLA for 3D printing
Tools
3D printing machine (Prusa 1)
El Malky ML149 CO2 Laser Cutter
Design Process
BOX
Base
firstly, I draw a rectangle for a base part, with 4 slots to be connected other parts
it's a fully defined shape which ready to extrude
after extruding, then I made a project to make these holes for brackets
so to be sure that components have the ara, you have to mount it in your design. it's a Grabcad Arduino link ArduinoUNO
UP
repeat the last step with some changes
1- make a copy for base
2- make past New at new component
3- make a space for the ON/OFF switch
it's a Grabcad ON/OFF switch link switch
Side 1
in a new component, I draw a rectangle for a side part, with 8 slots to be connected to other parts
it's a fully defined shape that is extruded and has holes for the adaptor and Arduino and of course the holes for a 3m screw
it's a view to show how we connect the brackets
the other side
repeat the last step without holes for adaptor
1- make a copy for side 1
2- make past New at new component
3- neglect the holes you don't need in the new part
Face 1
it's a new component with a new sketch which has a face part
this face has a mounting of a speaker. the Grabcad link of Speaker
the other face
repeat the step of face 1 by copy and past new
the only change in this part is the LCD mounting which is the link of the Grabcad LCD
the full overview of the box assemble
The heart
first of all, I sought help from an image from Google that has details of the heart
this photo I chose to track its lines
get a new sketch on this surface, I started to draw the line with the fit-point spline tool
the final output looked like this with these details
the heart after extruding
to increase the scale, from modify, choose scale, and change it as you like, I preferd to scale it 10 times
copy this part and past new in 6 different components, and make any changes:
the back is solid
and the others are parts of the heart, right and left atrium, and right and left ventricle, so in each component, you have to extrude only one part.
to make the side connected front with the back, I used an offset tool and extruded it 2mm to become the shape on the right.
These four holes for screws
Exporting as DXF or STL
save all components in the traditional way
choose component
open create
choose ' save DXF for laser cutting '
select the part
***but on the other way, if you used spline tools, you can download DXF Spline To Polyline
(I saved the heart this way )
create a sketch in the component you want to save
open create
choose export to DXF (spline as polylines)
Fabrication Process
at laser work, I prepared all the parts to cut with parameters:
30 speed, 50 power
the following video and photos demonstrate the cutting process in a laser machine and the mounting of each component in its part
at laser work, I prepared all the parts of the heart at the parameters for:
cut to outlines in power= 50, speed= 30
and speed cut to lines in less power=15, high speed=350
and scanning to words in power=30, speed=330
the following video and photos demonstrate the cutting process for the heart in a laser machine and the mounting of the touch sensor in holes
at Cura, I prepared the side of the heart to be printed at certain settings:
layer height= 0.2, infill= 10%, support= skirt not prim because it's not needed for support
it takes 3 hours and 5 mins
the following photos demonstrate the cutting process for the heart in a laser machine and the mounting of the touch sensor in holes
my project is based on brackets so, I prepared 17 brackets in Cura by multiple selection
I used low layer height = 0.3 and added a skirt for support instead of a prim
the following photos demonstrate the first 5 brackets were printed to be tested and the assembled it in the box
the full record from scratch to fully assemble the design
Software
Fritzing is used to simulate electric circuits. we will use it to simulate our project features through wiring before making it in real to test wiring and avoid components burning.
Electronics tools
to-use programmable open-source microcontroller board that can be integrated into a variety of electronic projects.
to provide a power source for LED strip
jumper wires have 3 types male-male wires, male-female wires, and female-female wires. All of these connect two points to each other and make the circuit closed
to attach components with wires in the circuit
is used for building circuits, and demonstrating its action
Electronics tools : INPUT
to reduce current flow, and divide voltages
INPUT: to play and close the device
Touch sensors work similarly to a switch. When they are subjected to touch, pressure, or force they get activated and act as a closed switch. When the pressure or contact is removed they act as an open switch. A capacitive touch sensor contains two parallel conductors with an insulator between them.
The working of this sensor can be done by connecting it from the fingertip or human ear to an Arduino board. So that heart rate can be easily calculated. measures pulse waves, which are changes in the volume of a blood vessel that occurs when the heart pumps blood.
Electronics tools : OUTPUT
Testing
heart rate sensor: for more details, you can open this source sensor source
Speaker: for more details, you can open this source Speaker source
Don't forget to change rx and tx to your new pin wiring, if the wiring look like the diagram, the rx=10, tx=11
Touch sensor: for more details, you can open this source Touch source
Wiring
here is the final wiring, I used color coding, red for positive and black for negative.
I have 5 touch sensors, everyone has 3 terminals, one for ground and the other for 5V but the third is different each sensor
*touch sensor related to the Left atrium connected to the pin ____ 5
*touch sensor related to the Left ventricle connected to the pin ____ 6
*touch sensor related to right atrium connected to pin ____ 2
*touch sensor related to right ventricle connected to pin ____ 3
but LCD has 4 terminals, one for ground and the other for 5V, third and fourth terminals connected to analog In
*third SDA connected to pin__ A4 , fourth SCL connected to pin __ A5
and speaker has a mini player that is connected with ground and Volt and two terminals of speaker and two digital pins 10, 11
:: Note the resistor for speaker is important
fritizing wiring shows the connection of pins :
I used a speaker and LCD as an output component which works in 5V, I chose the (9V adapter) because the components of the circuit need only 5 volts. so it will be enough
I will use an LED strip that works at 12 V so it will have the other power management........to be contained
كود بعنوان " احنا اللي خلينا القلب يتكلم "
I made the code to control the action of heart, for the first feature, you will see the name of touched part in heart and listen the sound of heart
1- including the library of LCD 12C and speaker library "DFRobotDFPlayerMini.h"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "Arduino.h"
#include "DFRobotDFPlayerMini.h"
2- defining each part with its pin by adding integrs for each part
int right_ventricle = 3; // Arduino pin connected to LED's pin
int left_ventricle = 6; // Arduino pin connected to LED's pin
int right_atrium = 2; // Arduino pin connected to LED's pin
int left_atrium = 5;
3- select the pin which you connected the rx and tx in speaker, and to make sure it's working, make a Fbserial
#if (defined(ARDUINO_AVR_UNO) || defined(ESP8266)) // Using a soft serial port
#include <SoftwareSerial.h>
SoftwareSerial softSerial(/*rx =*/10, /*tx =*/11);
#define FPSerial softSerial
#else
#define FPSerial Serial1
#endif
3- in void setup, selsct the serial,begin and serial print to check if it's work or not
#if (defined ESP32)
FPSerial.begin(9600, SERIAL_8N1, /*rx =*/D3, /*tx =*/D2);
#else
FPSerial.begin(9600);
#endif
Serial.println();
Serial.println(F("DFRobot DFPlayer Mini Demo"));
Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)")); to initialize the speaker after 3to 5 sec
4- so add the function to make action if it's not working, print the message
if (!myDFPlayer.begin(FPSerial, /*isACK = */ true, /*doReset = */ true)) { //Use serial to communicate with mp3.
Serial.println(F("Unable to begin:"));
Serial.println(F("1.Please recheck the connection!"));
Serial.println(F("2.Please insert the SD card!"));
while (true) {
delay(0); // Code to compatible with ESP8266 watch dog.
5- define inputs and outputs, by write pinmode for every part which compensation in the word in previous step, and write its input or output
Serial.begin(9600);
lcd.init(); // initialize serial to initialize the LCD
//turn on the backlight and print the message
lcd.backlight(); to turn on the backlight of LCD
lcd.setCursor(0, 0); to choose the area in LCD
lcd.print("start "); write ' start the journey'
lcd.setCursor(0, 1);
lcd.print(" the journey");
pinMode(right_ventricle, INPUT); // set arduino pin to input mode
pinMode(left_ventricle, INPUT);
pinMode(right_atrium, INPUT);
pinMode(left_atrium, INPUT);
4- in void loop make a loop to take action (LCD appears name) when any part is be touched and the speaker plays at the certain sound
add integres to 4 parts with digital read so in the functions I'll use the name of part nor digitalread
int touch_R_ventricle = digitalRead(right_ventricle); // read new state
int touch_L_ventricle = digitalRead(left_ventricle);
int touch_R_atrium = digitalRead(right_atrium);
int touch_L_atrium = digitalRead(left_atrium);
if (touch_L_atrium == HIGH) { if I touch the left atrium
Serial.println("The sensor is being touched"); the serial will print that the sensor is being touched
lcd.clear(); clear the screen after the phrase of ' start the journey'
lcd.setCursor(0, 0); select the new area
lcd.print("the left atrium"); and LCD appears the name of touched part 'the left atrium'
myDFPlayer.volume(30); //Set volume value. From 0 to 30 to select the volume of sound from 0 to 30
myDFPlayer.play(1); //Play the first mp3 choose the number of sound you want to play it
and so on in all touched parts
1- that's how I collected the parts of the box together with brackets
2- integrate the touch sensors with the part that has 4 holes
4- with the hole in the top of the box, the heart was connected to the box, then I stuck the button of the heart with the top of box
1-integrated touch sensors with LCD, when you touch it, the LCD appears as the name of the part.
2- integrate all components together
and how the LCD looks like
3- before this step, I used glue to stick the part has holes with the part in front then the front and back connected with the side of the heart by a screw I made with a driller
input is: 4 touch sensors output: LCD, speaker
✨ ✨finallllllllllly, it works wonderfully✨✨
I would like to thank the people who made this project finish well
Esraa: Like a leader at the back of his team or a magician who has solutions to all problems. she is always available, supportive, and ready to help you, thank you Esraa for your patience during this journey❤️
yahya: one of the very helpful peers I met, he caught my attention on an important point in the fabrication as well as he suggested the idea of how to attach parts of the heart in a smart way, and finally he added some touch in the code of speaker to work. I am so grateful to you, thank you Mr. Yahia 😅
I have had more challenges, count with me 😂
avoiding mistakes
don't let yourself in the last chance, especially in fabrication, make one or two testing fabrications before actual fabrication
''If it's work, don't touch it'' Follow this quote in all your journey in diploma.
according to the previous advice, don't play with the dimension of your design in the laser work
knowing if you'll use a breadboard (which size) or not to draw your design with dimensions based on it
make power management first
finally stop your negative thoughts, you can do it
challenging in design
out of nowhere the heart in fusion couldn't save as DXF, but after a lot of trials Esraa got the solution that it can save as spline through downloading this DXF Spline To Polyline
the LCD in mounting was difficult because it contains more than one part, but Esraa taught me to make it a rigid group) then it can move as one part
after fabrication the LCD, switch, and adaptor didn't fit with their area, they were larger than the area, so I made a redesign and increased the holes, and rectangle by 2 mm
the brackets didn't fit in holes because I changed in dimension at Laserwork, so I repeated the fabrication in laser machines
challenging in coding
firstly the speaker didn't work but after many trials, Abdulrahman with Esraa solved it by changing the numbers of Pin
I am going to do the remaining features of the complete and nice-to-have feature to be more cool and functional
adding strip LED that lighting the side of blood movement
make a mechanism for pumping the heart
I will try to finish it nearly
but in the future, I hope to turn it into a game with a large scale that children can own and add more features like playing with a ball an IR sensor could sense it in addition to adding some details like the lung.