Final Project Journal
elfeel_dya2
Project Ideation
1- Tell us about the idea of your project. Why do you care about this? What were you inspired by? Include images and videos of similar projects
At first we will think that it just be a multi-colored office lighting unit, but this is not like any lighting unit because when you see it from the first moment you will smile despite you because it contains a sentence with an optimistic meaning and is designed in a fun way.The words of this sentence move outward and inward in the manner of Kinetic art, along with distinctive lighting. We can control its colors by telephone.
my inspiration is kinetic art and Arabic typographic art
Project Construction
2- Explain the CAD process of your project. How did you use the software to design your project? (List the softwares/tools/materials...etc that you used)
software
&&
why I used this software
for cad software i used fusion 360
.fusion 360
This program contains many features that help in the design and make it look great This program helps to design types of sketches (2d,2,5d,3d) and contains the feature of assembly and also we can form it any shape we want with the utmost freedom
laser cutter cam software
rd works
its an easy cam program to use and machine which i use agree with this cam software with features of scanning by different types and cutting ,simulation too I
can get a coolest 2d designs
3d printing cam software
ultimaker cura
its an easy cam program to use and machine which i use agree with this cam software ,with adjusting
infill,resolution,supports adhesion,slicing and saw the preview(simulation) I
can control
time and weight of martial and it can be used in make g code file which 3d printer use
thingiverse
this app is treasure for any maker who want to save time and make a cool 3d modeling and this app helps to get 3d details for most designs
grabcad
cool app for any 3d modeling electronic component you want to download and use it in any design
machine which i used
El Malky ML1390 CO2 Laser Cutter. It Is an Egyptian-made CNC laser cutting machine
its an suitable machine to use in learning and mini prototyping with one color interface
FDM 3D printing (prusa i3 MK2)
its an suitable machine to use in learning and mini prototyping with one color interface
material
A material that is available, easy to find, and the cheapest price compared to other materials
nails
i use it to attach the parts together to make product
mdf wood
to build body of lighting unit
acrylic
for top of body to make a cool lighting
material which i used plA filament
A material that is available, easy to find, and the cheapest price compared to other materials
the design
my design contains 3parts
( 2.5d wooden+acrylic body , 3d words .3d mechanisms parts(rack and pinion) )
process of 2,5d wooden body
2,5d lighting unit with fusion360 (cad) / laser cutter (cam)
dimensions 2,5 model (130mm*130mm*340mm)
dimensions mdf board (600mm*425)
dimensions acrylic board (100mm*120)
cut (25 speed,50 power)
took (15m) fabrication
# fully defined sketches
#design sketching with dimensions (130mm*130mm*340mm)mm
3- design a 2d sketch with different tools such as spline, circle, rectangle, and some features such as constraints and circular pattern .
4- after that, I add T- a slot and interlocks to assemble later, fully defined all elements I designed by dimensions and added 2d pattern
shelf
front
back
side
bottom
# adding pattern
#extrude the sketches to assembly
I finished the sketch and extruded all faces to get 2,5d design then I assembled all parts to get my shape
# render
# version 1
# version 1 inside body with components
# version 2
f3z file for design : drive.google.com/file/d/1I27oyPOCLhCYpiY_QJakE-vujCDKAQL2/view?usp=sharing
saved 2d sketch as DXF file to export to roadworks v8
drive.google.com/file/d/1O0LBtFHo1io8TmSjj91UC1K62WonoVp1/view?usp=sharing
drive.google.com/file/d/10FpvjxFOZztu8pRgtrsfdu_0vpcJu1J1/view?usp=sharing
drive.google.com/file/d/1xK-pfs9AVYc1IKe7VGIAcwOERNrpxOjr/view?usp=sharing
drive.google.com/file/d/1ySPuHL0wm85Tgs6Cbmiw2ZZF2Mxy0i83/view?usp=sharing
drive.google.com/file/d/1mohDYl0qmd-WyEZl8q_emls-D7yeu9qS/view?usp=sharing
drive.google.com/file/d/1n0yCuDHE6ZGqfFEbFT8Zvkt5KCghOBv8/view?usp=sharing
drive.google.com/file/d/1xFeBBUUzp8P1IFhI5SvQ990kfHfPxGUd/view?usp=sharing
drive.google.com/file/d/1JL8CbkpQtJJzHaq-_ESClnakKXjcawzq/view?usp=sharing
# adsuting design in rdwork
-open the 2d files in rdworks and Adjust the appropriate settings for cutting for the best result
by cut (25speed,50 power)
wooden part
acrylic part
-save file (rld) and rename with it to finding by the easiest way
-download the saved file in card
process of 3d parts (words and rack and pinion mechanism)
# save the words and rack and pinion mechanism file as ( stl)
drive.google.com/file/d/154p6wseeY8xk9_rp0SWy2TjGpJI4yqxz/view?usp=sharing
drive.google.com/file/d/1QAoV_epdcYEp9TeGJK6ft4U9gk7me9oW/view?usp=sharing
open the file in cura to adjust the features of body
layer height ,3mm
infill 10
4h
65g
without adhesion
without support
save body as g code file (elephant word_1h25min_32g_10 infill_0.4 portfolio_white pla.gcode)
save body as g code file (good word and parts_1h50min_25g_10 infill _0.3 profile _ black pla.gcode)
layer height ,4mm
infill 10
1,5h
30g
without adhesion
with support
save body as g code file (mechanism_2h15min_40g_20 infill_0.4 for profile _black pla.gcode)
3- Explain the fabrication process of your project. How did you use the machine to fabricate your project? (List the softwares/tools/materials...etc that you used)
for laser cutter parts
save file (rld) to flashcard
click (file) from control panel and choose from screen (new desk) and click (enter) from control panel
from screen choose (read new desk) and click (enter) then choose my file + (copy to memory) and click (enter)
click (escape) from control panel and adjusting the nozzle + click (orient) from control panel to get my start point
adjusting nozzle focus (,6mm)
click (file) and choose (track) to define the workspace then choose ( worktime) to get time of fabrication
click run from control panel to get start
wood cutting
acrylic cutting
for 3d printing parts
put the gcode file in card
put the card in 3d printer
click enter to adjusting it parameters
click enter to run
Project Electronics & Power Management
4- Describe your electronic circuit. What are the input and action components? What is the function of each? How do the components integrate together to form your smart system? (List the softwares/tools/components...etc that you used)
software
fritizing software
Fritzing is a great open source tool for anyone to teach, share, and prototype their electronic projects! It allows you to design a schematic, and thus a part, which can then be added to very professional-looking wiring diagrams. You can even design your own PCBs and have them fabricated from the files you design
the main reason for using this software because tinkercad didn't have more components and fritizing has advantage (downlaod component file which you want)
Arduino is a coding software use c++ language for code and its communication language between Arduino board and electronic components by coding language and i connect board with software by USB cable
materials (electronic components)
half breadboard for easy connection of wiring more components
and has some advantages like common gnd pins and common power pins for more components gnd and powering pins
12v adapter
to help arduino (giving 5v and 40ma for each pin) giving 3 servos (need 5v for work) ,rgb strip (need 12 v for work) , components current and voltage suitable for working efficiently
hc-05 bluetooth module
to make connection between arduino and phone app controler
An H-bridge is built of four switches that control the flow of current to a load.
l7805 (5v regulater)
for redusing voltage from 12v of adapter to 5v which servos need
jumper wires for connecting components together
Arduino uno board for controlling the components
slide switch for controlling branched mode of servos
push button for controlling main modes of device
rgb strip for lighting
servo 180 ْ rotation
to make words motion from inside to out
adapter jack to connect pin of adapter and jumper wires together
1000 ohm 3 resistors for bluetooth module (Operating Current: 30mA )to protect it from burn because of current which is more than bluetooth need
simulate circuit and descripe it
my inputs
slide switch
push button
bluetooth module
my outputs
3 servos
rgb strip
circuit describtion
my flow is run 3 servos one after one from zero to 180 angle and lighting rgb strip and control it by bluetooth module and phone app
circuit connection describtion
-5v regulator has 3pin (input power,gnd ,out power) so i put it in breadboard to put servos after that with it
-servo has 3 pins (gnd,power and pin connect with Arduino) so i put servos (gnd,power) pins in common (gnd,power) of 5v regulator in breadboard pins and put their third pins in pwm pins in Arduino
-adapter has 2 pins (gnd ,power) so i put them in pins in common (gnd,power) breadboard pins
-Bluetooth module has 6 pins but we need just 4 (vcc,gnd,rx and tx) i connected rx pin with 2000 ohm resistor pin by using 2 resister (1000 ohm) connected with each other by sires way and another pin of resistor with tx pin in Arduino , tx pin in blu connected with rx pin in Arduino , gnd pin in blu with 1000 ohm resistor (connected with 2000 ohm resistor by parallel way) another pin of 1000 ohm resister with common gnd in breadboard ,vcc pin of blu in common power in breadboard
-rgb strip has 4pins (common anode,red,blur,green) so i connect 3 colors of it with h bridge and anode with common pwer pin in breadboard
-h bridge driver has more pins but i used (vcc,gnd,en1,en2.en3,n1,n2 and n3)pins to connect rgb strip with 12v adapter and arduino so i connected vcc and gnd pins in common (gnd,power)in breadboard , en1,en2and en3 pins of h bridge with red,blue and green pins of strip , n1,n2and n3 pins of h bridge with pwm pins in arduino
-finally in connected slide switch and push button wtih pins of arduino and gnd pins with common gnd pins in breadboard
5- What is your power source? How did you select the suitable power source for your project? (List the softwares/tools/components...etc that you used)
in rgb strip the voltage it need write on it
servo i search for its data sheet to know what it need for current and voltage
12v adapter
to help arduino (giving 5v and 40ma for each pin) giving 3 servos (need 5v for work) ,rgb strip (need 12 v for work) , components current and voltage suitable for working efficiently
the arduino should be powered by from 7 to 12 volt so that he can regulate it to 5v
so i used arduino to powerd 3 servos ( which need 5v to work) with common gnd and regulater with adapter to help them get the current they needed
Arduino uno board for controlling the components
Project Programming
6- Describe the code of your project. How did you program each function of the project?
my flow is run 3 servos one after one from zero to 180 angle and lighting rgb strip and control it by bluetooth module and phone app
area before (void setup) uses to define any initial character which Arduino doesn't save in its programing language
-so i summoned libraries of Bluetooth module and servo and tell arduino they are exist by (#include) function
-The (SoftwareSerial library) allows serial communication on other digital pins of an Arduino board, using software to replicate the functionality and { (0,1); } are tx and rx pins of bluetoothmodule
-then i define servos , switches , rgb leds pins by (servo,#define) functions
-finally i define angles of servos by (int) function
The setup() function is called when a sketch starts. Use it to initialize variables, pin modes, start using libraries, etc. The setup() function will only run once, after each powerup or reset of the Arduino board.
-i initialize (servos,switches,rgb leds) pins in arduino,tell arduino what is input and what is output by (pinmode) function
-i specify the angle positions which the servo will start by (myservo.write (0)) function
-(Serial begin) establishes serial communication between your Arduino board and another device,That number(9600) is called the baud rate. for serial communication to work the baud rate in Serial.begin() and the baud rate set on the receiving device need to match , so i used (serial.begin and blu.begin) functions to matching baud rate of them
- The println() method writes data to the serial port. This is often helpful for looking at the data a program is producing or to write data to other devices connected to the serial port. The println method works like print, but sends a new line character for each call to the function. Data can either be a single int, float, byte, long, char, char[], String or a number in decimal (DEC), hexadecimal (HEX) , octal (OCT), or binary (BIN) base , so i used (serial.println ) function to initialize bluetooth mdule to control from another device
NOTICE use cotation marks to initialize any initial you but in this function
-(setcolor) function It takes 3 parameters, about the values to be written to each clored LED
-(delay) function Pauses the program for the amount of time (in milliseconds) specified as parameter. (There are 1000 milliseconds in a second.)
the loop() function does precisely what its name suggests, and loops consecutively, allowing your program to change and respond. Use it to actively control the Arduino board.
-The ( if()) statement allows you to make something happen or not, depending on whether a given condition is true or not. so i used it to controlling (push button ,slide switch) modes
-The (for statement) is used to repeat a block of statements enclosed in curly braces. An increment counter is usually used to increment and terminate the loop. The for statement is useful for any repetitive operation, and is often used in combination with arrays to operate on collections of data/pins. so i used it to control servos angles (limits,motion speed )
-(digitalread) function Reads the value from a specified digital pin, either HIGH or LOW. so i used it to read (swtches)
- An (else clause) will be executed if the condition in the if statement results in false. The else can proceed another if test, so i used it to stop servos in zero pos if i off slide switch
-A (while loop) will loop continuously, and infinitely, until the expression inside the parenthesis, () becomes false. Something must change the tested variable, or the while loop will never exit. This could be in your code, such as an incremented variable, or an external condition, such as testing a sensor. so i used it to control (blu.available) function
-The Serial.available( ) function in Arduino gets the stored bytes from the serial port that are available for reading. It is the data, which is already stored and arrived in the serial buffer. The serial buffer in Arduino holds the 64 bytes. -constrain() Constrains a number to be within a range.
-Serial.flush() Waits for the transmission of outgoing serial data to complete. (Prior to Arduino 1.0, this instead removed any buffered incoming serial data.)
(void) The void keyword is used only in function declarations. It indicates that the function is expected to return no information to the function from which it was called. so i used it to declare pins of rgb strip to light
Project Integration & Testing
7- Demonstrate with text and visuals how did you integrate the project’s modules together? What are the testing results? (Include a Demo video separately, showing a proof of functionality)
1-i print rack and pinion mechanism to test it with servo with sweep code
2-i make a simple maket from cardboard to make sure that positions of servos in body will be fit with suitable dimensions
3-print i element and cut by laser cut (shelf with part of front) to test mechanism with this element
4-i connect rgb strip with bluetooth module and phone app
5- connecting servos together by code
6- combine rgb with servos
7- assemble body
power supply and controlling switch position
acrylic part
inside body with components and mechanism
finallyyyyyyy
say hi to elfeel_dya2
look to cool lighting
look who is here!
Sharing & Collaboration
8- Did you ask for feedback? What are the ideas that others have contributed or suggested? What was someone else’s idea that you built upon? How did you help your peers? How did your peers help you?
(sherif rashwan) : my instructor in odc
at first i want to make a clock by motion kientic art but he suggest to make just one number by the same art to make it easy for my in hardware and software togetther
from
to
(mariem ashraf) : moma, my kindly maker friend in odc
suggest to change the idea from making one number to be an positive sentence which make anice massege to users
(Mohammed Sroor) : maker colleague in odc
he suggest to use solenoid instead of servo to make motion easier
(Esraa Rageh) : my lovely instructor in odc
she helped me more and more and make a great effort with me for more than 2 weeks,she always support me and encourage me with her advises ,begin with helping me in get a mechanism (rack and pinion) to make servo motion more easy to help me with hardware connection (h bridge driver) then in coding and flow of code
(Mahmoud Ezzat ) : maker colleague in odc
he stay with me more than 5 hours to helped me in coding to control 3 servos and we make more than 6 iterations of code to get final code with 2 modes to make control easier
(Ahmed Fikry ) : maker colleague in odc
-he helped me in servos code too to controlling servo angles
-he suggest a nice idea of covering transparent acrylic with tissue paper to disappear components inside body and collecting lighting of rgb led
(Doaa Elbess ) : my sweety maker friend in odc
she stayed with me for week following my steps in project and she supported me more
in code she helped me and edited some details with me to more stability of servos controlling
(se7try ) : maker colleague in odc
he helped me in assembling body with nails
(Zahraa Sallam ) : my kindly maker friend in odc
she support me and when my Arduino has a problem in uploading code she gives me her own Arduino to work my project
Overcoming Challenges
9- When you got stuck, what/who did you turn to? At what point did you have to pause to research or learn more before moving on? What are some mistakes, pitfalls, or challenges that others can avoid if they were doing this project?
i think when i get rgb strip ,the common pin is cathode but when it test it ,it's not work so (Yossef Ali ) maker colleague discover that common pin of rgb is anode
in code i was confused how can i control 3servos controlling (speed,angles) and combine it with rgb code so esraa and mahmoud hepeld me in this situation to fix code and combine tje 2 codes
i don't know how i can connected 3 servos which needs 5v with 12v adapter so sherif tell me to use 5v regulter to protect them from burning
and the way to connect rgb with arduino and giving it 13 v from adaprrt in the same time so esraa tell me using h bridge driver to do that
i have an eror when i combine controlling 3servos code with rgb and bluetooth module code in scoop of (setcolor don't declared) so esraa discover that i must change the position of this scoop to write it after viod loop area not in it
Future Work
10- If you had more time, what is one thing you would change/ Do next in your project?
i can add more features like more controlling of rgb strip by fading current with code ( when element move rgb increase its fading of light)
i can also add more words to make cool sentences by cool mechanism