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 and Sketching the Components

I searched grabcad for the electronic components in step format:

Arduino Nano

mini BreadBoard

Servo Motors

OLED

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

laser cutting.mp4

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

breadboard and jumper wires

Arduino Nano (Brain)



power bank 5v (power Source)

so wiring the circuit wasn't that hard

first we had to test all the components individually:

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

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 :

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 servos zero.mp4

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:

then we had to assemble the body

now you should have all the body assembled except the front side and the circuit and thats the next step.

robot first steps.mp4
20230324_135307.mp4
vid_20230504_200345.mp4

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 

 Final Project Design Files