Introduction: Beach Cleaning Robot (garbage Collector) !!
Imagine that you decide to go to the beach on a sunny day, to relax your mind and recharge your energy. Sounds awesome! Unfortunately, as you arrive to the beach, you will be shocked by the tremendous amount of garbage thrown in the sand. Bottles and cans of all sizes are thrown here and there by apathetic people.
Beach pollution is a very serious issue as we go to the beach to enjoy the environment and not to sit on bottles and cans. It harms and pollutes the environment, animals and humans.
Our team was inspired to tackle this problem and to make an automatic robot in the form of a car, that gathers or picks small cans, bottles, pebbles or any small shape pollutants to collect them and later easily be sorted out to the bin.
Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.
Step 1: How Does It Work?
The beach cleaner is a type of an autonomous RC car. The user can turn it on by pressing on the green button in the back of the car, or off by pressing on the red button.
The car has two DC motors connected to the front wheels, and the rear wheels are free to rotate on the shaft. We calculated the Torque and RPM according to our needs which has been shared in the picture mentioning calculations.
As soon as the green button is pressed, the motors start running and the car moves forward. The flowchart of car's track is sketched in the image attached.
The first thing to think about is, How to detect garbage? So, this was done using a flex sensor. When the sensor touches the garbage, and due to the forward motion of the car, it will bend indicating that there is garbage (with some delay). At this moment, the car stops, realizing it has found a garbage, it goes back 1 meter and then releases the shovel using a servo motor and moves 1.5 meter distance to make sure that the garbage is on the shovel. Then, the shovel makes 140 degrees rotation about its axis to put the garbage in the garbage collector and then it goes back to its initial position.
Now, suppose the garbage is big. How big? Greater than 10 cm (length of flex sensor). So, now, we consider anything greater than 10 cm height from surface, and obstacle. Great! Now, we use an ultra sonic sensor to detect an obstacle greater than 10 cm height.
For the case of an obstacle , the sensor detects and the car stops. It will now wait for 10 seconds to make sure its not a moving obstacle. Firstly, in the case of a moving obstacle, the car just holds for 10 seconds and then resumes back to normal working. Secondly, in the case of static obstacle then it will now stop and then turn left and then right, right and the again back to left to go back to the normal linear track. Now in order to understand the width of the obstacle so as to turn right and right formation, we added another ultra sonic sensor placed on the right side of the car. This made sure that we don't bump into obstacles.
Turning left and right on electric motors is easy. We don't need any mechanisms such as Ackerman steering method to turn the wheels. We turn right by making the right wheel go forward for 4 seconds and left wheel locked and vice versa for turning right. This method however comes with certain limitations.
Step 2: Assembly
These pictures show the final assembly of the complete robot with the names of some parts as labelled.
Step 3: CAD Design
The following STEP file contains the 3D design of all the components so that you may reproduce it as you wish. We used Creo Parametric 6.0 and Solidworks 2019 softwares for our design purpose.
Slideshow of the model parts along with assembly can be seen in a short video.
We also have attached the first sketches of design by hand for reference.
Step 4: Laser Cutting
The outer frame of the car was made by the process of laser-cut on birch-wood.
Chassis : was made using 6 mm wood, with dimensions of 370 x 400 mm. The design is in the form of a U-shape with an opening of 163 mm, because the shovel will be fixed there. We made two of this chassis and joined them together to increase the rigidity of the base.
Bin : was made using 6 mm wood. It is placed behind the opening of the shovel, so that when the shovel rotates, the garbage will fall directly in the bin.
Walls : were made using 6 mm wood. The two U sides are joined by the front wall because the ultra sonic sensor and the flex sensor will be fixed there. The right wall has an opening for the ultra sonic sensor.
Roof : was made using 3 mm wood. It has a bigger opening in length because the bin should not be covered.
Electronics box : was made using 3 mm wood. It was used to cover the electronic components and protect them from the sand. It will be screwed to the chassis.
Battery holder : was made using 3 mm wood, to fix the battery. It will also be screwed to the chassis.
Step 5: 3D Printing
As this robot is supposed to work in sand, the choices of the wheels available for sale were very limited, and most of them had inappropriate dimensions. That's why we decided to use 3D printed wheels.
The elliptical pieces on the outer radius of the wheel will allow the robot to go forward against sand resistance.
Shovel : it contains holes to filter the sand when picking up the garbage. The holes were made in form of squares so that they can be 3D printed. On the side of the shovel, in the upper part, a hole of 8 mm was made to insert a shaft. The other small holes (8 in total) were made to fix the shovel to the shaft using screws.
Bearing holders : they were used to hold the bearings and fix them to the chassis. In total, we printed 8 bearings, 4 of them were used for the bearings connecting the shaft of the shovel ( 2 from the right and 2 from the left), and the other 4 for the bearings connecting the rear wheels shaft.
Servo motor holder : it fixes the servo motor to the chassis.
Shaft coupler : it joins the shaft of the shovel to the shaft of the servo motor.
Although small, these last two pieces were very important, as they joined the components of the main mechanism of this project together!
Side ultra sonic sensor holder : it fixes the ultra sonic sensor to the chassis from the right side for obstacle avoidance.
Front ultra sonic sensor and flex sensor holder : it connects both the ultra sonic sensor for obstacle avoidance and the flex sensor for garbage detection to the front wall of the car.
Note: Not all the 3D printed parts are shown in the pictures, but they are all available in the STEP file for your reference and to reproduce.
Step 6: Circuit Diagram
This diagram represents the connections of the circuit and explains a simple spatial arrangement of all the electronic assembly.The representation of the circuit was made using Fritzing.
In our project, we used many sensors and actuators to achieve our goal which is collecting garbage in the beach. So for that purpose, we used two 12V DC motors with encoders coupled together to drive the car, H-bridge circuit to control the two DC motors, two ultrasonic sensors to avoid the obstacle but not to get diverted from the original track. Two push buttons to switch the car on and off. One flex sensor to detect the garbage and one servo motor to collect garbage. In our system we used eight AA batteries in series, so we got 12 volts cumulatively to drive the car. Arduino, H-bridge and the voltage regulator gets 12V as input. In addition, we used LM2596 voltage regulator because servo motor draws more current than Arduino can supply. Finally the 5-volt Arduino pin supplies power to ultrasonic sensors, push buttons and flex sensor.
Step 7: Programming (Codes and Flowchart)
The code was written using the open-source Arduino Software (IDE) which was easy to implement the code.
The program is available for all to access in GitHub. You just need to click on the link given below to access it.
We used Timed Action library so that we can run many functions for electrical parts such as ultrasonic, encoder, etc in the same time without disturbing the flow of the code. The explanation of the code is done below by a simple method.
The code is programmed in such a way that on pressing the green push button, the car starts and stops. The encoder attached to one of the DC motor records the distance travelled by the car. Every 10 meters, the car will make U-turn (turning double right or double left with 5 second interval between) until it finishes the total distance preset by us. We made the code as robust as possible could so that if there is any moving obstacle, the car will avoid it by detecting and holding in its position for 10 seconds and then return to the normal route track. If the sensor still detects the object after 10 seconds means it is static obstacle. So the car will turn left then right and then again left to go back to its normal track which was guided by the other ultrasonic sensor. Moreover, when the garbage comes in contact with the flex sensor, the car will first stop and then it will go backward for 3 seconds, then the shovel will rotate down about its axis, then car will go forward for 4 seconds and the shovel will collect the garbage by rotating 140 degree backwards to the garbage collector. The shovel then goes back to its normal position and the car is set on the same mission again.
Step 8: Testing Process
Now, the most important part of the chapter comes in testing. Testing was the most difficult part of the process but it was fun.
Reproducing the real entity from imagination goes through rigorous testing. First we tested the individual parts such as actuators and sensors. Actuators and sensors received was all tested OK. Now it was time for the testing of the program. We had to check individual small codes such as turning left, motor rotating front, etc.
Calibration was done by typical trial and error method to calibrate the motor and other sensors to give useful output.
A picture of rigorous and full proof testing session was taken and has been attached.
Step 9: Results !!
We expected the car to work with the calibrated movements as we desired. The video shows some results to believe.
We also analyzed the model for 3 mm thickness of base chassis birch wood parameters for computations of load of 25 kilos (5 self weight + 20 payload) and found out that there was a displacement of 0.6 mm and 13 MPa (Von-Mises) stress in critical parts. These are normal forces which we applied for and much worse it would be for impact forces. The Von-Mises stress in our case is of no significance as wood is not a ductile material. But it gave us the stress of 13 MPa and birch wood can resist upto 8 MPa compressive force. For this reason we, stuck to a 12 mm base to be on a safer side. Stress and Displacement analysis images as been attached for reference. We used NX 12 or simulations
Step 10: Tools and Bill of Materials (BOM)
DC motor 100 RPM/ 12V - (2) (16.79£x2)
Push button switch - (2) (1.28£x3)
Ultrasonic sensor hc-sr04 - (2) (3.95£x2)
Flex sensor 4.5'' - (1) (15.95€x1)
Fixed linear voltage regulator - (4) (0.437£x2) + (0.442x2)
Adjustable positive voltage regulator - (4) (0,619£x3)
Hex brass coupler -(2) (3.12€x2)
AA Batteries ( 2 packs) - (9.92€x2)
Available Parts at our local lab (FABLAB-Brussels):
Servo motor MG995 (1)
Battery holders (2)
Shaft 8 mm (1)
Bolts M5 (33)
Bolts M4 (2)
Bolts M3 (35)
Set screw M6 (16)
Shaft Collar (2)
Birch plywood 3 mm (2) (7.25€x2)
Birch plywood 6 mm (2) (14.5€x2)
3-D Printed Parts (PLA Material):
1 Servo motor holder
1 Shaft coupler
1 Ultrasonic and flex sensors holder
1 Ultrasonic sensor holder
Laser cut Parts:
Chassis (6 mm)
Roof (3 mm)
Walls (6 mm)
Electronic box (3 mm)
Battery holder box (3 mm)
Trash collector (6 mm)
Step 11: Conclusion (Problems and Suggestions)
Finally, our car worked as intended with some minor glitches.
Firstly, it is a beach cleaning car so we had to design feather weight. But some suggestions that was given was to carry a minimum of 20 kilo load which was difficult. So now we faced some problems while turning left and right due to single use of motor while turning. In our calculations, as stated before, we used two motors for calculation of Torque of 4 kg weight maximum and didn't take into account the Torque required for turning with single motor. Due to this reason, the calculated Torque was less than what was practically needed. The solution is basically simple. We suggest to use a 40 RPM Motor instead of 100 RPM as it gave a way lot more torque for a given Power and speed in our case was not much of a concern. And more importantly to use a 24V DC motor instead of 12V to make it robust.
Secondly, our wheels are 30 mm width. It was minimum required to be 50 mm to give more traction on dry sand and also for the looks. The wheel of 50 mm was later designed and further enhanced to give more strength to weight ratio. Image has been attached for viewing and step file for reproducing it.
Thirdly, the width of the flex was small and for that reason the detection surface area was small. We would suggest to use a small rectangular element of Sellotape to tape it to the flex so as to increase its detection width. Sellotape is light weight and doesn't affect the properties of flex.
Finally, the shovel needed some design changes. As can be seen from the experimental videos, the shovel needed a near to perfect L shaped design so as to easily pickup the garbage. At first calculations, friction was on our mind for the L shaped shovel as there is a lot of surface to surface contact and therefore neglected on its design. Later, we designed a better shovel as that can be seen on image given. Practically it has not been tested but according to experience, we believe that the new design should work with the 24V motor.
Overall, it was a success, as it was a new concept for us. Designing a similar to miniature bulldozer is no easy task with all the practical influencing parameters to be taken into account. However, the challenges were interesting and our team was always motivated to complete it with success. We have gained a lot of theoretical and practical knowledge and especially to connect imagination to practice from this special "Beach Cleaning Robot" project.
Step 12: Credits
Université Libre de Bruxelles - Vrije Universiteit van Brussel
This mechatronics project was developed under the BRUFACE program of VUB/ULB for the year 2019/2020. All the work and progress was supervised and assessed all the way by different professors including: Bram Vanderborght, Albert De Beir and Marco Rossini, to whom we are thankful and grateful for all the guidance and help they provided us with.