This is my biggest and most difficult project so far. The goal was to build a machine for cleaning my glass roof. A big challenge is the steep slope of 25%. First attempts failed to drive off the complete track. The crawler slid away, the engines or gears failed. After various attempts, I have decided for the current drive.
The stepper motors are a great help, because a defined distance can be driven and the crawler can stand still without rolling back. The machine consists essentially of a caterpillar drive, a rotating brush with wiper in front of, a water tank with pump and the control electronics. A lot of parts were also created with the 3D printer. The width of the crawler depends on the glass surface and can be determined by the length of the metal profiles.
Step 1: Part List
Metal profiles for the frame:
- 1m Aluminium round metal rod 10mm
- piece of Aluminium round metal rod 6mm
- 2m Aluminium Square Tube 10x10mm
- 2m Aluminium L profile 45x30mm
Threaded rod :
- 3m M8 with lots of nuts and washers
- 1m M6 "
- 1m M5 "
- 0.2m M3
- 12x M3x12 (for Motors and gear)
- 6x M3x50 (for drive wheels)with nuts
- 6pcs. 5x16x5
- Micro Submersible Water Pump
- Arduino Pro Mini (ATmega32U4 5 V 16 MHz)
- 2 pcs. NEMA 17 stepper motor
- 2pcs. A4988 Stepper driver
- Arduino Relay module
- Standart Servo (or better metal version with more torque)
Hole Tinned Universal Breadboard
- Pin Headers male/female 2.54 standard
- LiPo 3.7V 4000-6000mAh
- LiPo 11.1V 2200mAh
- BT Module HC-06
- caps, 3x100µF,10nF,100nF
- resistor, 1K,22K,33K,2x4.7K
- Fuses. 10A for brusher motor battery, 5A for "GRawler" battery
- plastic box for electronic parts, approximately 200x100x50mm
Extra Long Radiator Brush (800mm)
plastic canister 2l
1.5m Aquarium/Pond Tubing OD: .375 or 3/8 or 9.5 mm; ID: .250 or 1/4 or 6.4 mm
- long wiper blade (min 700mm) from truck
- a lot of cable zip ties
- insulating tape
- shrinking tube
- hot glue gun
- bench drill
- drill 1-10mm
- 3D Printer
- small wrenches
- soldering station
- various pliers
Step 2: 3D Printed Parts
A lot of parts are made with my 3D printer, common settings:
- Nozzle diameter 0.4
- layer height 0.3
- infill 30-40%, choose more for the gears
- Material: PLA with heatbed
Step 3: The Brush
For the rotating brush i use an extra long radiator brush, be sure that the real brush has a minimum length of 700mm, after searching the webstores a while i found the right one. Cut off the handle and let the shaft project 20mm on both sides.
The shaft of my brush has a diameter of 5mm, this fits perfectly in the bearings of the side parts.
To prevent the slippage of the shaft i use a small alu tube with a shrink tube, the other side is fixed by the gear.
Tip: If the bristles are too long the rotation will get very slow/off.
In this case simply shorten them with an electrical hair cutter, as i have done :-)
Step 4: Framing
Think beforehand how wide the crawler should be, or how wide the lanes are to move along. The length of the profiles and threaded rods depends on that, i use 700mm.
Make sure that the profiles dip 1-2mm into the side panels
Through the side panels and the profiles, the threaded rods (M6 or M8) are inserted and screwed from the outside.
Step 5: Gearbox for Brush
The gearbox of the brush consists of 4 gears.
For a better smoothness, the double gear is fixed with a piece of a brass tube (diameter 8mm) and screw M6.
The other gear is fixed with a M4 screw and locknut.
The brush gear is fixed with two M3 screws, do not forget to put the nuts in the gear wheel first.
The motor is attached by M3 screws to the sidepart.
Step 6: Tank, Pump and Pvc Tubing
I decided to use a submerible pump, so i only need one piece of pvc tubing and the pump disappears in the tank.
I drill to holes in the top of the tank for the tube and the cable.
IMPORTANT : The pump motor has no interference suppression, that will make you GRrawler going crazy :-) use a cap (10nF) parallel and a ferrite ring for the cable.
After the required length of the hose has been measured, mark the part that disappears in the brush box. Now you drill small holes (1.5mm) in the hose at a distance of 30-40mm. It is important that the holes are on one line. Fix the hose with hot glue in the brush box and close the open end of the hose ( i use a hose clamp)
Step 7: The Wiper
The rubber blade is taken from a screen wiper blade (the big ones from trucks). Then i've took a square tube profile with a little recess (see picture) to fix the blade. I attached a small alu tube to each end to get the function of a hinge in conjunction with a screw.
The printed lever is fixed with a screw. A threaded rod (M3) provides the connection between wiper and servo.
The servo is bolted on top of the brush box, two printed brackets are needed.
Step 8: The Caterpillar Drive
For locomotion we use a classic caterpillar drive. The rubber crawler tracks adhere optimally to the wet glass panels.
The chains are guided by two pulleys. The bigger drive pulley with the gear consists of four parts that hold together with three screw/nuts M3x50. The smaller ones constists of two identical parts with two ball bearings running on a threaded rod. The drive pulleys runs on a brass or alu tube profile with a diameter of 10mm.
In order to prevent slipping, a piece of shrink tubing is attached to the axle. Due to the low number of revolutions this is completely sufficient.
Finally, align the pulleys parallel to each other and to the frame.
Step 9: Electronic
The electronic part can be soldered to a breadboard. See the attached schematic for detail.
I also attaches the eagle sch-file if you like to make your own pcb.
To protect the electronic from moisture, everything including the batteries can be built into a pvc box.
The power supply is realized by two seperate LiPos for brush motor that needs high current and another one for the rest.
Use fuses for both circuits, LiPos can generate extreme high current !
To get the right current into your stepper motors it is very important to adjust the A4988 drivers.
I found a very good instructable here.
Step 10: Arduino
For the control of the GRawler, I opted for the micro version of the Arduino Leonardo. This has a built-in USB controller and can thus easily program. The number of IO pins is sufficient for our purposes. For installing the IDE and choosing the right board use this guide.
After this you can download the attached sketch.
Changes to make in the Code:
The up/down values for the servo must be found experimentally and can be edit at top of the code:
#define ServoDown 40 // use Value 30-60
#define ServoUp 50 // use Value 30-60
The code will NOT run on other Arduinos that don't use the ATmega32U4. These ones use different timers.
Step 11: BT Control
And a guide for the BT module, use 115200bps baudrate. Pairing code is " 1234".
The App comes up with 6 buttons( we only need 3) and a joystick. Use preferences to configure the button labels,
1. Brush on/off
2. Motors on/off
3. Wiper up/down
Uncheck the box " return to center"
and check "auto connect"
I have attached some screen shots from my phone for details.
Step 12: Get a Clear View
Now it is showtime for cleaning the roof.
- Put the GRawler on the roof
- Fill in some water (warm is better !)
- Power on
- activate Motors
- activate Brush
- Go up
- on top drive backwards
- and turn down the wiper
And of course have fun !!!
Step 13: Updates
For automatic tracking I have installed microswitches on each side. The connection is already taken into account in the circuit diagram and in the software. When a switch is triggered, the opposite motor slows down.
First Prize in the