Introduction: Nagging Robot® | Disturbing at the Speed of Life

About: MSc ITECH Candidate at Universität Stuttgart.

The easiest way to make sure you get angry every day. Nagging Robot® has the solution.

Nagging Robot® Annooy® 900

The Annooy® 900 was carefully conceived with cutting-edge DIY technology to annoy humans.
by Daniel Locatelli and TzuYing Chen

More power, better annoyance.
Power-Lifting Bore delivers 5X the angriness power* for improved annoy performance.
*(Compared to Annooy® 800 Series).

Intelligently spies on you.

A full suite of sensors intelligently captures your and your home data to navigates the robot around objects and under furniture to help thoroughly bother you.

This work is a parody with the iRobot® Roomba® as part of the assignment Useless Machine from the ITECH seminar Computational Design and Digital Fabrication at the University of Stuttgart.

This is a face following robot, it identifies a human face and tries to centralize it to the camera.

Step 1: Tools

It is a simple set of tools, and probably most of them you already have at home. The soldering iron is mainly used to give stability to the cables that power the motors. But that's it, you will only use it to weld four times.

Step 2: Parts

Electronics

The parts listed below usually come with many Arduino starter kits available to buy online, such as this one.

While the list below displays the unusual parts that have to be bought separately:

Car Chassis Kit

There are some really inexpensive car chassis kits available to buy online, such as this one, or alternatively you can also buy these parts separated. We will need the following:

Stationery items

In this case, we decided to use a different chassis to give some style to the robot. Aside from the parts mentioned before, we also used these stationery items:

Step 3: Assembling the Chassis

This chassis uses a simple mesh to make it easier to attach and remove parts. But bare in mind that it is a metallic mesh, which means that electronic parts must not touch it directly as it could damage them.

Metallic mesh

First, organize the parts on top of the metallic mesh to understand how big you need the robot to be. In our case, the final size was determined by the size of our power bank + wheels. If you have a smaller power bank then you could make the robot even more compact! Then cut the metallic mesh forming a pixelated circle as shown in the image above.

Universal wheel

To screw the universal wheel in place we used cork to level it to its correct place. Cut two pieces of cork with the shape of the base of the wheel and flue them together. Then screw the cork on top of the mesh in one of its extremes and on the other side screw the wheel.

Motors & Wheels

To put the motors in place you just have to use two small Hellerman cable ties for each and use the mesh to tight them. Be aware that the wheels are really close to the motors be careful to leave enough space for the wheel to spin freely.

Power bank

Last but not least, we have to put the power bank in place. Here the only thing that you should be aware of is where the USB cable input is located, avoiding it to be facing the wheels. And then you can tight use two cable ties to lock it in place.

Step 4: Connecting Electronic Parts

The electronic connections are the result of merging a Robot Car and a Face Tracking Robot.

The first thing to be done is to screw the Arduino Uno on one side of the cork and the L298N Motor Driver to the other side. This way we minimize the space needed without risking have electronic parts touching each other.

Then, attach the Protoshield + mini breadboard on top of the Arduino Uno. This will ensure that we have enough space and pins available to connect every sensor and actuators. In our case, we glued the mini breadboard on top of the Protoshield using the adhesive that comes with it.

Then we connected the 5V to one line of the mini breadboard and the GND to another line.

L298N Motor Driver

Then using 6 male-female jumper cables we connected the pins number 5, 6, 7, 8, 9, and 10 from the Arduino to the pins ENB, IN4, IN3, IN2, IN1, and ENA of the L298N Motor Driver. Here we decided to use six cables already glued to each other from the factory so we had a neat connection. Then we connect the ground and feed pins to the mini breadboard, battery, and motors. It should be like this:

  • ENB - ENA respectively to 5 - 10 of Arduino
  • 5V connects to the 5V line of the mini breadboard
  • GND to the ground line of the mini breadboard
  • 12V to the positive pole of the 9V battery, while the negative pole connects to the mini breadboard ground
  • OUT1 and OUT2 to the Motor 01
  • OUT3 and OUT4 to the Motor 02

Ultrasonic Sensors

The ultrasonic sensors have to be located in front of the robot so nothing interferes with its capture, so it should have a bigger cable so you have more flexibility. Their pin connections are as follow:
Ultrasonic Sensor 01

  • Echo to Arduino pin 3
  • Trig to Arduino pin 4
  • Gnd to the ground line of the mini breadboard
  • Vcc to the 5V line of the mini breadboard

Ultrasonic Sensor 02

  • Echo to Arduino pin 12
  • Trig to Arduino pin 11
  • Gnd to the ground line of the mini breadboard.
  • Vcc to the 5V line of the mini breadboard.

ESP32-CAM

The Camera

  • UOR connects to pin RX0 (pin 0)
  • UOT connects to pin TX0 (pin 1)
  • 5V to the 5V line of the mini breadboard
  • GND to the GND of the Arduino (the mini breadboard will be full

Power bank to Arduino

The last step is to connect the Arduino USB to the power bank

Step 5: Time for Coding

There are two codes, one for the ESP32-CAM and one for the Arduino. They are basically a simplification of the codes from the Face Tracking Robot and the Robot Car, respectively.

ESP32-CAM code

Before heading to the Arduino Uno we have to configure the ESP32-CAM. This camera has its own microcontroller the ESP32, which means that if we want to send our code using the Arduino IDE, we need to configure the IDE environment first, and we are lucky. Robot Zero One has already done a really detailed tutorial about it, so first go to that link and follow his step-by-step.

After that, you just have to upload the file PanningFastVer.ino attached here bellow to the ESP32-CAM.

Arduino code

Then for the Arduino code, you just have to upload the file UnoInput_Serial.ino attached here bellow.

Step 6: Enjoy!

Attach the camera to the side of your robot and have fun!

To make it have a futuristic nostalgia feeling, we have enclosed everything with one half of the acrylic ball. The robot also had the USB cable coming out which made it look like a tail. Kinda cute!

Step 7: Improvements

To make the robot movement more controllable we think it would be interesting to either change the motor to a stepper motor or to add two speed sensors as described here.