Final Project Journal
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
OTTO Dancing Robot
so at first i really like small robots cozmo, victor and emo are very smart and cool robots with smooth moves, emotions show and each has a different personality, with a lot of sensors it can sense sound, light it even recognize faces thats why i found the robot a perfect idea for my final project.
i tried to be realistic and simplify the idea to make my own robot but easier so i searched and finally there is otto, a small robot that dance, moves.
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)
Softwares I used
fusion 360
for designing process and exporting files for fabrication.
Ultimaker Cura 5.2.1
for preparing the stl files for printing
laser work V6
fo preparing the dxf files for laser cutting
Arduino IDE 1.8.18
for code writing
Materials and Machines
PRUSA i3 MK2 3D Printer
AnyCubic Vyper 3d printer
El Malky ML149 CO2 Laser Cutter.
pla+ filament
plywood sheets 3mm
so designing the robot was divided into several phases:
downloading the components
designing the body according to components dimensions
joining all the parts together
drawing the legs and the feet with servos mounted
designing the hands and the head
exporting all the parts in stl and dxf according to fabrication method
preparing files for fabrication
Downloading and Sketching the Components
I searched grabcad for the electronic components in step format:
and there was the battery i didn't find the model online so I had to model it myself or at least its holder so I inserted the image as a canvas to be my reference for the body shape then I measured two dimensions of the battery and scaled the sketch to the same dimensions then extruded it 90mm the same Hight and added the bolt hole to connect it to the laser-cutted parts
so now i had all the components i will use and its time to start sketching.
1st. I started sketching with the main body so i inserted the components and started the body with the base abd projected the servo and the battery bolts and then made the 2 sides, back , front and the top with the head opening then i made the taps and the t-slots and joined all that together with a rigid joints
3rd. finally i sketched the hand and the head and joined them to the body and finally it's done.
2nd. it is time for 3d printed parts i started with the leg it all started with a box filleted it then projected the servo motor on it opened its place and make it longer and wider and opened 2 holes in the top one for the wire and the other for the horn bolt
then i made the feet with a sketch of the front extruded it for 2mm copied it and pasted it new then changed the hole diameter and then made the base depending on the leg and servo dimensions and combined all 3 parts together after finishing the leg and the foot I mirrored it the the legs are done
then i joined the servo with the leg with rigid joints as well as the horn with the foot then i joined all the hornes with the servos with revolute joint.
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)
1st. file Preparation
Battery holder
so the battery holder was the same lenght as the battery and printing it was too much so i imported the file in cura twice then moved it downwards so the printed part is just the upper and the lower 15 mm.
this part is printed on prusa 3.
layer height 0.3mm.
nozzle temperature 215 and bed temperature 60.
it is printed in 21 min and 6 gm.
feet
these parts is printed on prusa 3.
layer height 0.3mm.
nozzle temperature 215 and bed temperature 60.
it is printed in 30 min and 7 gm.
legs
this part is actually printed twice as the two legs are similar not mirrored
the 1st is printed on Anycubic Vyber and the second on prusa 3
layer height 0.3mm.
nozzle temperature 215 and bed temperature 60.
it is printed in 36 min on prusa 3, 48min on vyber and 9gm.
brackets with captive nut
these parts is printed on prusa 3.
layer height 0.3mm.
nozzle temperature 215 and bed temperature 60.
it is printed in 7 min and 2 gm.
so we imported all the dxf files to rdworks v8 all was to be cut so we had one layer with power (max. and min.) 55 and speed 35 it nearly took 5:30 min and 30*35 cm
Fabrication
after preparing the dxf files we download the file to the laser cutter then to the machine.
first we fix the sheet to the machine bed then we adjust the origin to the sheet corner with arrows and push the origin button and check the focus after that we made a pulse then we choose our file and frame it to make sure it fit in the sheet last close the led and start the file.
after preparing the stl files we export it as a gcode file then moved it to the sd card
we inserted the card slowly so the machine could read it and then we check the filament color if you need to change it you should unload filament in prusa 3 and the machine will automatically preheat the filament and unload it but in prusa 2 you had to preheat first and vyper you had to prehead and select pla first then unload the filament and after it is out press stop then load the right color after that start the file from the sd card watch the first layers and then all is good.
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)
Circuit components
so wiring the circuit wasn't that hard
first we had to test all the components individually:
Arduino Nano
power bank
then we tested the 4 servos together with the power bank
Components are good so it is time to make all of them together
so first the servos each has 3 pins VCC, Ground and Signal, the VCC is connected to the 5v and the ground is the ground obviously and the signal is connected to output analog pins (6,9,10,11)
then the Bluetooth module it has 6 pins we need to connect 4 of them only VCC, Ground, RX and TX, so the same connection for VCC and ground, and the RX of the module is connected to the TX of the Arduino and TX of the module is connected to the RX of the Arduino.
last to power the Arduino itself we need to connect the +ve terminal of the battery to the 5v pin in the Arduino (as i have a 5v battery if your power source output is more than 5 (9 or 12v) you should connect the +ve to the vin pin as this pin is connected to a built in voltage regulator)
(note: don't forget to make a common ground between the power source and the Arduino).
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)
so for the power source i used a power bank 5v
its portable, rechargeable, light weighted and it provides the components and the Arduino with the volt and the ampere needed to work
servo (4.8:6v)
Arduino (5-9:12v)(depending on connection pin)
Bluetooth module(3.3:6v , 30mA)
the only thing we worried about was that it wouldn't provide enough ampere to make the servos work together but be tried it and there wasn't a problem and actually they wont work together just one at the time it was more than enough.
Project Programming
6- Describe the code of your project. How did you program each function of the project?
so we started the code with 2 files :
code to control an Led depending on the signal entered by a phone GUI.
so first we use the Bluetooth module with a led to test the code then we merged the servo library in the same code and all we had to make then was changing the servo angles only it was a simple code it only need a lot of testing for angles to make the movement
so first we had to include the servo library and creates a servo objects to control the servo we had to make 4 to control each servo individually then we had to add character the data coming from the serial read
then in the void setup we had to serial begin Notice in Serial.begin() we pass in the value 9600. This is called the baud rate – it sets the speed of the serial communication, and represents bits per second. Both devices must have the same baud rate selected for Serial Communication to work.
then we gave the servos there initial position and attach the servos to the signal pins connected to it.
then the void loop
first we make the incomping data character take the serial read from the monitor
then we add the if condition so for each value entered there are some moves that are made in order to make robot dance or move, the angles here are just trials we can't detect the right angles with any other method.
so for adding more moves we had to use else if with another input but that's not done yet
else we had the servos on there initial positon one more time.
(note: make sure to remove the RX-TX pins from the Arduino to upload the code and remove the power supply before connecting the arduino to the laptop as well)
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)
testing the circuit and returning the servos to their zero position
so we start assembly with the legs, we have 4 servos, 2 legs ,2 feet and the base part of the body
first connect the circuit to power supply to return the servos to zero position
assembly steps:
insert the wire of the lower servo in the lower servo place and throught the its opening in the upper side of the leg and the base of the part
using the small gold screws connect the upper servos to the wooden base.
connect the horn to the leg top using bolts and nuts
attach the horn to the servo and use its screw.
put the lower servo in its place and use 2 bolts the upper one is only a space holder and the lower one is bolt and nut to hold the servo.
attach the other horn to the printed foot use bolt, nut and a washer to add space between the horn and the foot
attach the foot and the horn to the leg, the motor shaft first then slide the back through the curved notch then use the servo screw.
repeat that for the other leg then all the lower body parts is assembled.
then we had to assemble the body
start by holding the top and the back together and then slide them through the slots in the two sides
use the brackets to hold the sides to the back and the slots will hold the face, base and top together (make it a little loose until you connect the base as will then tighten it).
using 3mm bolts and nuts connect the battery holder to the base and the top parts.
move the sides carefully outside and slide the base part in its slots.
then the hands each hand is a 3 parts upper hand, 2 lower hands and 2 wooden washers
use the middle bolt first but a nut first so the bolt is not too long in the body side
so the bolt now have the nut in then upper, lower, upper, lower, upper then the locknut.(use a wrench or a plier to hold the nut then screw the bolt make it a little loose to move and the nut will hold the screw tight it wont come out).
use the longer bolt for the shoulder connect the 3 upper hands and the 2 washers then use 2 nuts to make space from the body then connect it to the body using locknut.
now you should have all the body assembled except the front side and the circuit and thats the next step.
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?
I am so grateful for my instructors and peers, i had a lot of help.
"yosra" and "amany" suggesed to connected the horn of the upper servo to the leg from outside and that was clever and easier solution, "Mohamed Rabie" helped a lot along all project phases and helped me with the head hinge," Mina" thinking with him about the hinge was so good it helped a lot to made my mind about it,"ibrahim" he gave me the bracket file after i accidently deleted it, it was very nice of him specially with the very little time we had to make everything and redrawing it was just too annoying,"abd el-rahman" suggested the way to make the hands laser-cutted and adding washers, welded the wires to the usb for me,"Mohamed Adel" actually the hinge was his idea in the first place and he was the hidden hero every time i got stuck he solve it like that, "Amany as well is a master trouble-shooter she is so smart and makes anything work beside that they were so supportive and caring even when I panicked when i started coding they were so nice
for the first time maybe I am more than lucky to be in that group.
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?
bracket with captive nut: 1st print the nut place was too small we tried to use files to sand it a little and then pushed the nut in and hammered it but it broke so we printed another one but its dimensions was right on fusion but after printing the nut hole was shifted so printing it again was a waste of time and material so we used the drill for the right bolt hole place and put the nut outside(we used it as a bracket and cancelled the nut place) maybe it is not the right way to solve it but it worked.
connecting servos: after mounting the servos in fusion,measuring it and printing the legs the opening was still small for the servos as they are entered inclined due to the wire place so we had to sand it to test if it would work and edited the body and re-print it but there was still a problem as they need a bolt smaller than m3 so we had to open the bolt hole more to fit the bolt and then the upper ones the first plan was to connect it from inside but that was way hard so "Amany" recommended to connect it from outside and that works.
Arduino not uploading: it was cable problem i think, we tried another one and it worked so problem solved
dxf for laser: when i added the taps i made a different sketch on the side and extruded it for 3mm but it created a new body and then combined them together but when exported the taps doesn't show later i found out that when combining the bodies it creates a new body so the solution was to edit the first sketch.
power bank: the problem with it was the in and the out of the battery are in the same side and i wanted the in to be easy accessed but if the in usb had a place outside the body the out one would be there too which would be so ugly so the first thought was to make the back side like a door and the powerbank and the usb is the body size but that made the body so long and i wanted to make it as small as possible and i worried about opening the whole side with all that wires inside so "Adel" suggested the hinge idea and that was a good one that made me shortten the body and recharging the battery or even removing it was so easy so that worked.
the powerbank holder: it is printed upside down so the supports close the bolt hole a little and the small part of the bolt deformed and inclined a little so i used files to open the hole and "Amany" used the hot air to warm the pla a little and put it on flat surface and it worked
Future Work
10- If you had more time, what is one thing you would change/ Do next in your project?
I would add the head with the Oled and add more movements, moving forwards, backwards and maybe make the head moves instead of looking straight all the time
editing the design a little to make it more balanced maybe larger feet and legs would make that work and maybe adding more weight(washer or something) in the feet would make it more stable on ground.
and l would make its body filleted or rounded as it looks so sharp