Pool Skimmer Robot

by NicholasKane in Workshop > 3D Printing

1720 Views, 13 Favorites, 0 Comments

Pool Skimmer Robot

frontpage.png

This robot will run around the pool and clean up any debris floating on the surface, kinda like the pool version of a Roomba.

This instructable was created in fulfillment of the project requirement of the Makecourse at the University of South Florida (www.makecourse.com)

Supplies

3dParts.png
box.png
pvc.jpg
pvcCap.jpg
bearings.png
panHead.png
bolts.png
otherBoltsd.png
inserts.png
rubberbands.jpg
motor.png
ultrasonic.jpg
ic.jpg
batteryholder.jpg
arduino.jpg

Put Threaded Inserts Into Your Parts

1.png
1c.png
1b.png

The 4 arms of the robot need to have threaded inserts added to certain holes. Follow the images, the objects in red are the threaded inserts.

Things to note:

  • It is likely these holes need to be slightly larger than printed. Please use a 7/32" drill bit to drill out the holes if you feel they are undersized (if using the same inserts as I am)
  • The threaded inserts need to go on alternating holes for the ends of the arms (like in the third image). If on one side the insert top, the one on the other side should be on the bottom. Do this for all four arms
  • The inserts on the arms should be facing the inside sides of the arms (the faces that will interface with the box later on. Again, look at the pictures)

Attach the Motor Plates to the Arms

2a.png
2b.png

On the left back and front arm parts, there will be a large slit cut out about 1/4" deep. Put the motor plates in the slots such that the holes line up with the two you put inserts in (be sure to put the plate on right side up) and drive two screws each into the holes, tightening with an Allen key of the appropriate size.

Attach Motors to the Plates

3b.png
3a.png

Attach the motors to the plates such that they are orientated correctly (use the pictures). Make sure the two small mounting holes on the front of the motors line up with the two holes on the plate and put two M2.6 pan-head screws in to hold them in place.

Assemble the Paddle

4a.png
4b.png
4c.png
4d.png
  1. Take the two paddle parts and carefully slide them into each other such that they form a 3D "+" shape
  2. Carefully slide the coupler pieces onto each end such that the end of the coupler hits the end of the paddle
  3. Take two 1/4"-20 bolts and press the heads into the holes of the couplers such that the heads of the bolts are flush with the ends of the couplers
    • The holes might be a tad oversized to do this and may require drilling out
    • I recommend getting the hole size just slightly oversized and then heating the bolt heads with a lighter until fairly hot and then pressing them in that way. This will melt the plastic as they enter the holes and form a solid fit.

Drill Holes in Your Box

5a.png
5b.png
5c.png

Using a 3/16" drill bit, drill holes corresponding to the holes for the mounting screws for the arms. In the pictures I have put dimensions for where the holes should be. They don't have to be 100% precise, but try to get them as close as possible.

Attach the Left Arms

6a.png
6b.png
6c.png

Line up the front left arm and back left arm with the holes drilled in the last step and put 8-32 screws into the holes from the inside of the box (see images).

Insert the Brass Sleeve Bearings

7b.png
7a.png
7c.png
  • Carefully insert the brass sleeve bearings into the holes as seen in the images. If they don't fit you can try drilling them out, but ideally these should be pressed into the plastic. Again, it's possible to heat the bearings up with a lighter and press them in that way.
  • With the bearing that goes into the propeller, try to get it pressed into the center. If you have a spare bearing, put two in instead of one (one on each side)

Insert the Paddle Assembly

8a.png

Insert the paddle assembly by putting the bolt of the assembly (either side) into the hole with the sleeve bearing in it

Attach the Right Arms to the Box

9a.png
9c.png
9b.png

Just like you did a few steps ago, do the same here. Line up the holes and screw them into the box from the inside.

Put the Pulleys On

10b.png
10c.png
10a.png

Put the right pulleys on the right shafts. D-shaped holes go on the motors and the round hole goes on the paddle shaft

Attatch the Propeller

11a.png
11b.png

Insert the propeller in between the two struts that come out from the back arms and insert a 1/4" bolt into either end. The holes should be tight enough to press fit in. If you're having trouble getting them in, heat the ends up with a lighter and then try.

Attach the PVC Collars

12a.png
12b.png

Put the collars on each of the ends of the arms and put two screws into each one, making sure to put the screws in the right holes (top screw into top insert, bottom screw for bottom insert). Don't fully tighten one screw per collar.

Cut the PVC

13a.png

Cut two lengths of around 18" of 2" PVC. The length might be a bit over
or under sized depending on how big your box will be. Measure by putting the PVC next to the PVC collars and allowing about 1-1.5" of room on either side

Put the PVC in and Add the Caps

14a.png
14b.png

Push the PVC pipe through the collars and attach the caps on. Once everything is set, tighten all the screws.

Assemble and Attach the Ultrasonic Mount

15a.png
15b.png

The parts easily snap together and hold via friction. Once the assembly is together, put it on the box via hot glue or double sided tape.

Attach Ultrasonic Sensor

16a.png

Using hot glue or other adhesive, affix the ultrasonic sensor to its mount

Wiring

17a.png

Once the mechanical aspect is complete, wire the parts as shown in the above wiring diagram. The chip listed 'L293D' is the H-bridge chip, and the blocks listed as 'paddle' and 'rudder' are the corresponding motors for those functions. The 12-volt source is your battery box. Everything else should be relatively self-explanatory, wire it however you want following the given diagram.

Code

18a.png

This code is for an Arduino Uno and assumes you are using exactly the same components and wiring as me.

Can be found here:

/*
/ Nicholas Kane / Pool skimmer code *
/Setup. Defines the output and input pins
//10 & 11 -> Ultrasonic sensor
// 8 &  7 -> H-bridge control
void setup() 
{
  Serial.begin(9600);
  pinMode(11,OUTPUT);
  pinMode(10, INPUT);
  pinMode(8,OUTPUT);
  pinMode(7,OUTPUT);
}
//Continuously pings the US sensor until it finds a distance less than a given amount (as of now, 2000 'units')
//Once distance is lower than above amount, rudder motor is run, turning the craft away from a wall or whatever
void loop() 
{
  //Ping code
  digitalWrite(11,HIGH);
  delayMicroseconds(10);
  digitalWrite(11,LOW);
  double dist = pulseIn(10, HIGH);
  Serial.println(dist);
  //Runs rudder when distance is too small (i.e. close to wall)
  if(dist<2000)
  {
    Serial.println("Imade it here!");
    digitalWrite(7,HIGH);
    
  }
  //Otherwise don't run rudder
  else
  {
    digitalWrite(7,LOW);
  }
  delay(100);
}