Hi, this project is dedicated to my son for whom will be born in the coming month, so I named it after my son's nickname "Panda". This is an improved version of cleaning robot with robust features of cleaning such as air suction, sweeper and roller brush. It randomly picks it direction to move, obstacle and cliff detects. Since it is quite a big project to do, it takes almost a full month day and night to draft the mechanical, ID, electrical, and software, and this intructables is going to show you the concept of how to compose a robot like this!
Introduction and how it works (demo of super cleaning force) footage:
Sweeper at work
Sweeper at work2:
sweeper at work 3
Panda in action
My previous robot was done two years ago, due to the space and footprint was so small, I have to connect it to a power source such as PC with a cable dangling in the air, and this makes it so inconvenient while cleaning up the table, so I decided to make a medium size robot in order to replace my old one to clean up my desk, and floor. So get ready and here we go.
Things you need to accomplish the robot are.
1) All the 3D printed parts that include: Top and bottom house, mid housing, 2 battery covers, gear box cover, and dust cabinet,
2) 2 gear motors (135RPM) for the wheels.
3) 1 gear motor (1000RPM) for roller and sweeper.
4) 1 DC 3V motor for vacuuming and fan blade.
5) 1 battery box with 6 slots for AA.
6) 1 battery box with 2 slots for AAA. (Vacuuming)
7) 1 metal spindle and 1 bearing that fit tight to the end of the spindle. (Roller)
8) 3 gears - same size for sweeper)
9) 1 gear with teeth on the side ( to move the sweeper and roller)
10) Two toy car wheels.
11) 1 acrylic board for see through dust cabinet.
12) 1 name badge.
13) Metal bearing ball for front wheel.
14) 1 printed sweeper.
15) 1 printed roller.
16) 30 standoffs and 30 screws,
17) 1 gear for roller's motor.
1) 1 UNO board.
2) Extended shield for UNO.
3) 1 L298 for triggering the wheel.
4) 1 ultrasonic detection sensor.
5) 2 infrared sensors for cliff detection.
6) 1 3V relay (for vacuuming)
7) wiring cables.
8) 1 switch
9) 6 AA batteries
10) 2 AAA batteries.
To reinforce the suction force from my previous version cleaning robot, I added a roller with brushes and sweeper to multiply cleaning force and it makes the robot a completed version of hand made robot. To achieve the roller and sweeper , I tried to think a way not to use motor to drive them ( since it wastes of battery power) but using gears to trigger both roller and sweeper. The video shows the result and idea of that, 3 gears for the sweeper are connected to the roller with 1 motor and it works just fine. This part should be the most difficult part of this project.
As usual , you need to do all the measuring of all component that you have in hand in 3D, this includes all the electronic boards, motors, gear, ,,,,etc, this is time laboring job, but worth it when you see the result of that.
Next, the most import part is the placement, since I made the dimension of the robot to a size of 17cm x 17cm, I need to squeeze all the measured components in that space. PLEASE be careful with those wiring cables, you need to take all that into consideration too, for example, UNO's cable to PC has this plug which is quite long, if you don't put that into consideration, you probably will end up not be able to plug the cable when screw tight the board since it will interfere with L298 just right next to UNO. The rest of Dupond wiring cable has this problem so consider all that while you do the placement.
About modelling, please feel free to use any modelling software that suit you, in my case, I using PRO_E for the modelling, You may ignore this part if you are already good at modelling or using PRO_E. Starting with a block with less features (detail) as possible, in ID's jargon, this is called ID master model. All the housings will refer to this in the future. So when you need to adjust all the housings' dimension, all you need to do is adjust this master model, and regenerate all the housing parts, than you will get new dimension for all the housings.
So I planned to have top housing. mid housing, and bottom housing, in the picture with red block shows the master model, I created two surface to indicate the boundary for top, mid and bottom housing. Next, you need to create 3 files named TOP.prt, MID.prt, and BTM.prt. In the green block pic (TOP.prt) , I copy geometry master model's surface and solidify it, also copy the surface to slice out the top casing. The result is as YELLOW block shows. Same copy geometry steps apply to MID and BTM.prt. Once it is done, it will looks like pic4. (Assembly for TOP, MID and BTM )
Next , shell the MID housing to make it 2mm thick. so instead of a block, you need to shell it to give it spare space to squeeze all the components in.
My 3D printer only prints 20cm x 15 cm footprint, so certainly my model won't be able to fit in (17cmx17cm), If your 3D printer's print out is big enough, then you can ignore this part. So what I am going to do is, cut TOP, MID, BTM housing into half respectively. So you will get a total of 6 parts together. The benefit for that is you can have more color planning for the device, for my case, purple to the front and bright yellow to the rear, but the disadvantage for that is it weakening the structure, than you will have to apply more screws and reinforce structure to it.
My 3D printer's set up is:
Imagine you are printing a 0.2mm line, it generally takes up 0.1 extra thickness, lets say, if I want to have 0.1mm gap between 2 parts, you will end up with no gap at all since each part takes up 0.1mm extra space, so in 0,1mm gap scenario, you will get 0.1mm interference of two parts (0.1mm gap minus 0.2mm extra thickness). Put it in simple saying, if you want to have 0.1mm gap, make it 0.3 instead, and you will get a 0.1mm gap in real life.
So in the modelling, the easiest way to do it is.
Finish all housing and placement, and start to apply offset feature to those interact parts.
Since I will put this project to another contest, I am not going to upload STL file but rather to instruct people how to do it, .
The attached file is an edrawing file, so you can flip around and look inside the details of my assembly. I also attached a pic just to show you the layout.
I use no screws to fix all the component in place, but just using two walls with tight gap to clamp the components.
Setting for my printing.
With support and raft.
Appearance facing the top, and mechanical feature facing the platform.
Using bright color like yellow and white, good thing is that, when you remove the support, support mark is less visible, with darker color, support mark is obvious. This technique only apply to must-have support's appearance surface.
I took 3 times printing trial and error to get all the dimension right.
Pic shows the structure of hooking, hookup the MID-REAR and BOTTOM-REAR housing.
Place the battery in the space dedicated for it. And your REAR half assembly should look like how the pic shows.
Once the rear half assembly is done, what we are going to do is to assemble the front half.
At this stage, we will complete the wiring before screw tight the FRONT-BTM cover to the body to complete the device. Connecting the cable need to be consistence with code setting.
int pinLB=6; // define left wheel
int pinLF=9; int pinRB=10; // define right wheel
int inputPin = A0; // define cliff sensor left
int outputPin =A1; // define cliff sensor right
For the fan and roller's motor, just connect to any vacant + and - pin.
Screw the FRONT=BTM cover to the assembly. For the see-through cover on the top of the dust collector box, try to put some adhesive to it with the part that holds the rod (hinge), and put the whole set to the assembly. Once done that, screw the REAR-TOP cover to it to complete the assembly.
I also added battery covers to the bottom of the robot to hold the battery and printed out a dust collector box.
Although it takes an enormous amount of time to complete this project, it worth to do it because of sense of accomplishment and I hope you enjoy this instructable.