The main idea of the project is to make an enclosed multifunctional open space ( seat , table, shading and kids area ) that can be used as : outdoor pergola or as a open area in parks , or even as a bus stop .
but to make it with a reasonable size so I made the project with scale 1:10 to be as a maquette for the realistic project .
The user will enjoy the different shapes of the same piece of furniture that could be used for more than one purpose .
This type of urban furniture will be interactive with the users (seats can be converted to a table , shading could be changed according to their needs this will be described in details later ) and it also will be changed according to the sun direction ., with another thing is that it contains a fixed space to be used as a kids area inside the enclosed open space .
Inspired by smart outdoor furniture which is a trend nowadays and more flexible in usage .
Seat Mode
Table mode
seat mode
programs used for the designing process : AutoCAD , fusion 360
-Firstly I started my drawing on AutoCAD as it's more easier for me to use than fusion 360 , so I designed the 2D parts the scaled them to 1:10 and then imported it to fusion 360 .
-On fusion 360 :
I started with the (seat and shading part ) , steps of drawing :
after selecting the plane I extruded the drawn parts on AutoCAD , (the two parts of the seat , main column that holds them and the shading part .
Then I started joining these parts together to see the whole shape ,
To add motion to these parts I needed to make a rod that holds them to rotate with the specific motion of each part :
-seat part moves 90 degrees
-Shading part moves 90 degrees
After this when I checked that the first one worked
I copied these parts and started joining the seats to the same rod with the same type of motion , and the same goes to the shading part with the shade rod
To be more close to the physical model that will be designed : I added the servo motors which will move these rods and allow their rotation . which needs a stand to be fixed on it , so to make this stand I copied one of the columns of the project , and projected on it the holes of the servo motor to make it's holes on it , each with diameter 3mm , and then I projected the holes of the servo horn on the rod which holds the wooden strips with a diameter 3mm .
One wooden strip movement
The whole shape movement
The rod with holes
After the construction of this part the same steps was done for the other side of the project :
-2D on cad
-Extrusion and join on fusion 360
-Then addinf the rotation motion to it
-Servo connection to the rod
The last part was the enclosure box , which will include the Arduino , wiring , buttons and the LCD
so I drew it 2D on AutoCAD with the dimensions for holes , and screws and then imported it to fusion 360 , the last step was to join these parts together to make sure they are with the right dimensions
-Software's used : Laser works , prusa slicer
-Materials used : ply wood
mainly the project was done by laser cutting and only the rod that holds the wooden strips fabricated by 3D printing
Laser cutting : laser works
-Firstly I prepared the file on AutoCAD and fusion 360 then exported it as a DXF
-The next step was to import the files to laser works
-on laser works I adjusted the cutting speed to 25mm/s and the power 65%
for engraving , 300mm/s
- After this I downloaded the file to the laser cutter
On the laser cutter :
-Adjusting the origin and checking it with pulse
-Then Selecting the file from the memory files tab , after this I checked it's workframe and the working time
-After checking all of this the last step was to click on Run
3D printing : prusa slicer
the only part 3d printed is the rod that holds the wooden strips ,
-To prepare the file , I exported the rod STL from fusion 360
-On prusa slicer , I imported the file to it , and started to see the best orientation with the least supports , after this I made the infill 5% ,
-and the last step was to check the grams and time and then I exported the G-code file
-Adding the file on the SD card
On the 3D printer :
-The existing color of the wire was black and I already wanted this color ,
So I started printing directly and it took 39 min.
Programs used : Tinker cad for code simulation .
Main input and action components :
1.Input components :
-User input : -Buttons to make the shading open and close , (one Toggle button) .
-Button to change the seat area to be a table (one slider button) .
-Sensing : a sensor ( LDR ) will be placed at the upper part that will change the direction of the wooden strips according to the light source( Sun ) , I will add another sensor also to the shading column , which will automatically sense when someone passes and turns into a seat (IR sensor )
2.Action components :
-The wooden strips will start to move according to the sensors and user input when they press on the toggle button (this changes between the automatic mode or manual mode with buttons )
This movement will be with the help of a Servo motor placed at each part the seat and the shading .
-An LCD screen to notify the user with the mode whether it's shade , seat or table mode .
3.Brain :
The enclosed box will be supplied with Arduino .
5.Power management :
In the same enclosed box an adapter will be added for power supply (5v) 5A adapter
All components are :
-3 servo motors ( two for the shading and one for the seat part )
-1 LDR
-1 IR sensor
-1 LCD
-buttons
-power supply
circuit description :
The project consists of two modes automatic and manual mode :
In the automatic mode :
-shading elements moves according to the sun direction this is through the two servos connected on pins 7 & 10 that rotate according to the values of the LDR )
-The seat part changes to be a table or a seat (Servo connected on pin9 rotates according to the IR sensor )
-LCD writes the text of different modes
In the manual mode : (slider button changes the mode on pin 12 )
-Buttons turns the shading to open or close (button on pin 13)
-Buttons opens the seat or make it as a table (button on pin 11)
-LCD writes the text of different modes
Details of how it works will be described in the coding section
From the data sheet of each of the devices
-Each one of the servo motors needs from 7.2 mA – 8 mA , torque and speed : from 4.8V to 6.0V
-LCD I2C needs to be powered by 5V
-IR sensor : 5VDC Operating voltage , 20mA supply current
-LDR sensor : 3.3V to 5V DC operating voltage , Operating Current: 15mA .
Therefore at the end to supply all of these devices , I used a power supply that supplies 5v and 5A
Programs used : Tinker cad for code simulation , and Arduino
Coding
To start coding firstly I defined the libraries I used servo.h for the servos
Then I named each servo with a name to be more easier
-In the void setup , I defined the sensors as inputs : A0 & pin 8
, and defined each servo with it's pin .
Shading part
I started coding with the shading part servo motor working with the LDR sensor :
-which is to make the servo motors rotates according to the readings of the LDR sensor
to make this I used mapping in the code : map the LDR values to be from 0 to 180 (servo angles )
the servo was connected to pin7 and the LDR to the A0 pin
The same steps was done in the second servo as they are required to move together .
Seat and Table part
-Servo rotates according the microwave is High or low
-For this part I used the if condition : when the microwave sensor is high , the servo motor rotates 90 degrees to be a seat
rather than this the servo keeps at 0 , which is the table mode
microwave sensor is connected to pin 8 , the servo motor connected to pin 9 .
Manual and automatic mode
To add the manual and automatic mode to the device I used two toggle buttons and one slider button :
-In the void setup I defined the three buttons as input pull up .
- Slider button ( selector ) is connected to pin 12 works as follows : if condition , when the selector is HIGH (automatic mode )
--all the pervious steps will happen
else (manual mode ) :
-first if condition : is when the first on off button is High , then the servo which is on pin 9 will move 90 degrees , else : the servo is on the 0 degrees
-Second if condition : Is when the second on off button is high , then the two servos on pin7 will rotate 90 degrees , else : they will stay at 0 degrees
LCD
For adding the LCD , there was a problem for uploading it's library on tinker cad ,
So I took the code and copied it on arduino to add it .
Firstly I defined the LCD library (liquid crystal I2C) ,
then I started to add text according to the different states :
when the servo that moves according to the microwave sensor the text on LCD "seat mode " , and when it's on angle 0 the text is "table mode ".
For the two servos that move according to light , when it's zero degrees , the text is "shade mode " . but in the second row of the LCD .
Final Arduino Coding
After cutting all the project parts ,
I started the connection of the seat parts together , with nuts and screws
then I connected the main shade column to the base of the project
After the assembly of the column part I started to test the movement of the seat and shade part manually without servos , and I found that the holes inside the seat and shade are wider than rod that holds them .
So I thought of wrapping the rod with a piece of cloth to increase it's thickness
Movement of the seat
movement of the shade
Rod before adding the cloth
Rod after adding the piece of cloth
After fininshing this and checking the motion manually
-I started to check the wiring before adding it to the project
LCD screen testing
sensors testing
Arduino connections
-After checking all the parts in the circuit and solving the problems that were :
- power supply was not efficient with the components so I changed it
-Some problems were in the wiring
-Microwave sensor was not efficient so I changed it with an IR sensor
( problems will be described in details later in the last section )
-I used another power supply 5v 5A and another breadboard
-So I started connecting the wires and adding it inside the enclosure with the Arduino board
-Keeping the buttons on the top of the enclosure and the sensors outside of it
-After this I started connecting the servo motors to the holders with screws and nuts and the last step was to connect the power supply .
After this I started testing the shade and seat if the are working right
After I finished editing I found that the video is with a watermark , so I added the original version and the edited one
Seat Mode
Table mode
seat mode
-Every week I had a feedback from my instructor regarding the project .
-one of my peers helped me during the fabrication
-In the electronic circuits I had some problems so I asked the instructors and they helped me solving it .
Design challenges
challenges during the design was how to think about the seat part that it closes and opens while there is a rod holding it , So I solved this problem by making it with two parts the second part is with a missing part which includes the rod .
Electronic circuits challenges :
-I had a problem firstly when connecting the 3 servos on the Arduino with 9v power supply , So I replaced the power supply with a 5v 5 A power supply and it worked great .( I should have tested this before starting to know the current and voltage needed )
-The second problem was in one of the shading servo angles , As they should rotate in opposite directions , but they were on the same pin so they rotated in the same direction , I solved this by separating both servos on two different pins and adjusting the angle of each one .
-LCD wasn't writing the correct text or when it writes it it doesn't change to the second text
this problem was solved by adding this to the code :
LCD. set cursor (0,0)
LCD.print (" ")
this code means that before writing the next text it should erase the first one .
-some problems were in the wiring on Arduino
I will add a speaker to the project to make it more interactive with the users ,
when the IR sensor senses when someone passes by the speaker makes a sound ( Have a seat please ) , this will be more interactive with the users
and to be an option when someone is sitting to turn the speaker on with a button and listens to music .
There was a problem in exporting the file. f3d so I exported it to obj and f3z files