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

# 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

  1. save file (rld) to flashcard

  2. click (file) from control panel and choose from screen (new desk) and click (enter) from control panel

  3. from screen choose (read new desk) and click (enter) then choose my file + (copy to memory) and click (enter)

  4. click (escape) from control panel and adjusting the nozzle + click (orient) from control panel to get my start point

  5. adjusting nozzle focus (,6mm)

  6. click (file) and choose (track) to define the workspace then choose ( worktime) to get time of fabrication

  7. click run from control panel to get start

wood cutting

acrylic cutting

for 3d printing parts


  1. put the gcode file in card

  2. put the card in 3d printer

  3. click enter to adjusting it parameters

  4. 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

www.thingiverse.com/thing:3170748

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

Final Project Design Files