Introduction: Cloudy Cloud Heals You (Obstacle Avoiding Robot With Collecting Function)

A Useless Machine - Arduino Robot

Step 1: Step 1: Introduction

Inborn in the dark side of the world. The little elf has traveled long to come to this world. Nothing could be more special than the telepathy it is given. I shall be telling this with a sigh. Somewhere ages and ages hence: two hermit crabs diverged in a click, and one of them chose the path where is less traveled by, and that has made all the difference. Inhaling the tears, it swallows the negative moods. Digesting the black, then they spin, twinkle, it transforms them into colorful freshness. The sparking colors heal all. It is on the way towards the vortex of dark night, however, always coming out with the sunlight.

Machine Function:

  • Activities in the light
  • Rest at night
  • Obstacle avoidance function
  • Collect items on hands

Step 2: Step 2: Video

Step 3: Step 3: Parts, Materials, and Tools


  • Laser-cut base(include with the motors ) * 1
  • Laser-cut case * 1
  • Laser-cut arm * 2
  • The laser-cut support structure (for the arm) *2
  • Cotton balls * a lot
  • 3mm Bolts * 8
  • 3mm Nuts * 8

Main Electronics

  • Photoresistor * 1
  • Motor * 4
  • Wheel * 4
  • Ultrasonic Sensor * 1
  • Servo motor * 3
  • 220 resistor * 3
  • Arduino Uno * 1
  • Motor drive Shield * 1
  • 9V Battery * 2
  • Wire * a lot

Object avoid sensor

An ultrasonic sensor is attached to the servo motor to measure the distance between the machine and the surrounding. The sensor has an emitter and a receiver. The emitter is able to shoot ultrasonic waves. if there is an object at the front, it will reflect the waves back to the receiver. If waves are coming back fast then the object is nearby, and if waves are coming back slow then the object is far away. The ultrasonic sensor is attached to the servo motor so it can turn left and right to determine which way is far from the obstacle, and choose the one that is further from the obstacle.


To control DC Motor's, you'll need a type of driver to control them. The I2C L293D Motor Driver IC The L293D is a motor driver that is a cheap and relatively simple way to control both the speed and direction of the spin of four DC motors. Here is a linked tutorial on how it works:

Light Sensor

A Photoresist sensor is able to measure the amount of light, and we use it to determine the condition of the environment. If the condition is dark, the value of the senses will be low, and if the condition is bright then the value that it senses will be larger.


The arms are laser cut components attached to the base at the front. It comes in two parts which are the support structure that holds the arm in place, and the arm itself. The body also comes in two parts; a laser-cut base gets it off the shelf together with the motors and a cloud shape shell.


It can be laser cut or hand-cut depending on the material. We get it off of the shelf together with the motors. Please find the link in the components section. Using strong but lightweight materials such as acrylic sheets (3 - 4 mm) or plywood (2.5 - 3 mm) help increase rigidity and decrease weight. Foam-core may also work for a base that is easy to cut by hand for people without access to laser cutters.


The shell was custom made of cotton balls, fabric, and laser-cut case. Layering and stacking the cotton balls to create the cloud-like shape. The cloud-like shape is a layer on top of a 1.5 mm acrylic laser-cut case for easier access. The case is used to prevent the cotton balls and fabric from contacting the circuit directly, so as always it can be laser cut or hand-cut as long as it provides a separation between the hardware and the cotton balls to prevent any short circuit. We also suggest the material to be non-conductive such as wood or plastic.


  • Phillips head screwdriver
  • Flathead screwdriver
  • Craft knife
  • Duct tape
  • Electric welder
  • Glue gun

Step 4: Step 4: Circuit

Step 5: Step 5: Machine Making

To assemble the base, we suggest the following order.

1. First, connect the motors to the base using the brackets. The brackets use nuts and bolts. We suggest putting the nuts inside so rotation of the wheel will not be blocked. (The wheels can be attached sooner or later)

2. Connect the Arduino to the motor shield, and connect all the wire necessary onto the motor shield. Be sure to test the direction of the rotation of the wheels, and flip the poles around to get the same direction of rotation.

3. Attach all the servo motors onto the base using a glue gun.

4. Attach the wires for the ultrasonic sensor and glue them onto a servo motor rotating blade. (we suggest using color-coded wire for better cable management )

5. Weld all the necessary wire for the light sensor and glue them onto the arm.

6. Finally, plug in all the wires for the components and a battery source to the Motor shield. Test the performance of the components before gluing and attaching everything together.

  • Mistakes Problem1 - The circuit only works once, and does not automatically reset.

Solution - We add “ Boolean goesForward=false” to reset goesForward status in the loop.

  • Problem2 - The wheels rolling in conflicting directions.

Solution - Reverse the positive and negative side.

  • Problem3 - The ultrasonic sensor can not detect things in the front, and stops reacting.

Solution - Extend the distance and adjust the ultrasonic sensor’s position.

  • Problem 4 - Arduino can not detect the port when we try to upload the code

Solution - The wires inter touch each other on the motor shields, which causes a short circuit. We add a breadboard to resources and clean up the wires.

  • Problem 5 - Photoresistor does not work properly

Solution - Test the sensor individually to locate the problem. Simplify the circuit and replace the sensor.

  • Problem 6 - The servo motors do not control the arms properly.

Solution - The voltage is not enough; add an extra battery.

Step 6: Step 6: Programming

Step 7: Step 7: Result and Reflection

The initial concept is to create a container cart that follows you and throw away everything you try to put in the container. We struggle to create a smooth reaction so we end up flipping the direction to create an object avoidance cart while keeping the concept of the throwing things. Even though we simplified furthermore, we still had problems with coding and hardware not working as well. Some of them are solved by figuring out the algorithm of the script by using “Serial. println '' to measure and identify the problem, and the others are solved by putting more battery. If I could do it again, I would expect to use more time in testing the whole machine with everyone's components together. It’s because I find that sometimes each component works well on itself, but when it is assembled together, it does not work properly due to short circuits and other hardware problems. In the end, we end up removing many features of our machine because it does not work the way we expected, and we decide to simplify it for the time constraint. If I am able to make a new version of it, I will use more breadboard for more features instead of framing them into a single board.

Step 8: Step 8: References and Credits


Circuit Basics. How to set up an ultrasonic range finder on an Arduino

REES52. Control the Servo Motor SG90 using LDR interfacing with Arduino Uno Youtube -

DIY Builder. How To Make A DIY Arduino Obstacle Avoiding Car At Home.


Feng Pan, Meihui Pan, Ruowu Wang, Yufan Liang