Slippy Slapper: the Overly Attached, Productivity Eliminator!
by SlappyBoi in Circuits > Arduino
1906 Views, 14 Favorites, 0 Comments
Slippy Slapper: the Overly Attached, Productivity Eliminator!
Are you tired of your peers being overly productive? Do you want your colleagues to be as unproductive as you? If any of these traits relate you, then we have a must have product you cannot live without.
The Slippy Slapper is a revolutionary product that uses physical discipline and annoyance to distract your peers. The module checks if your productivity levels by constantly asking questions through its speaker. You can respond by pressing one of two buttons and based on your response, or lack thereof, it slaps you. For pure annoyance the Slippy Slapper is installed with abandonment issues, so it constantly checks for your using an ultrasonic sensor presence. If its target tries to leave their desk, Slippy Slapper will slap them.
What Is the Slippy Slapper?
Materials
In order to get maximum effectiveness out of your Slippy Slapper we highly recommend staying within the given list of electronic hardware and software, however the enclosure and material choice for the arms can be altered for your application.
Electronics:
- 4 Arduino Uno modules
- 5V Servo Motor (3 pin)
- Ultrasonic Sensor (4 pin)
- 3-4 Power banks
- 2 Miniature Breadboards
- A set of speakers (w/ amplification)
- LCD Screen
- Miscellaneous Wires and connections
- SD Card Reader Module
- SD Card
- 2 Buttons
Equipment:
- 3D Printer
- Laser Cutter
- Screwdrivers
- Dowel Cutter
Materials
- 3mm circular dowel
- PLA plastic filament
- Plywood
Parts
- Swing-able arms (Circular Dowels)
- 3D printed hand (hand.stl - sized for 3mm dowel)
- Servo-arm mounts (3D Printed - servorod2.stl, sized for 3mm dowel and 5mm screwhead)
- Main enclosure/housing (Combination of cut plywood and 3D printing)
Code & Audio Files
TMRpcm-master is a library which must be installed in order for the reading of .wav files to work correctly and can be found here: https://github.com/TMRh20/TMRpcm
.ino files signify Ardunio code which must be uploaded to it's respective board (Master_Arduino uploaded to the Master arduino and so forth).
.wav files signify audio files for the Arduino to play during usage, there are a total of 14 unique sound files generated via fifteen.ai, which can be utilized to add additional sound clips to the Arduino, provided that they are post-processed. Post processing files involves converting to .wav, changing to 8-bit, 16000 hz, and mono.
Wiring
Wiring was achieved through non-solder breadboards and wires, but as a result can become very clustered and messy. Soldering can be done to reduce some of the space required from the miniature breadboards.
Assembly of Module
A simple box with a few holes to fit the servo motors on the sides, an ultrasonic sensor and LCD screen on the front, and two buttons on the top of the box will suffice for housing the components. Depending on the shape of your speakers you may also want to carve into your box to make spots for your speakers. Place them accordingly to appear as the eyes.. The LCD should sit at the bottom to serve as the mouth, the ultrasonic should be housed above as the Slippy Slapper's nostrils. The battery packs can sit under your 4 arduinos.
Process Fabrication + Assembly
Arduinos were arranged side by side in a small assembly built around them - the two middle arduinos are suspended by m4 screws and offsets to allow the three power banks required for the four arduinos as well as the external speakers, which also require USB power. The 'front' housing for the ultrasonic and LCD screen were built first, and the other parts were arranged around them. The box is comprised of hand-cut foam core, with holes to provide space for the servo motors, buttons, and 'eye' speakers as well.
Where to Use
After the unit code has been tested to work autonomously (watch your hands) then you are ready to get working. Place the Slippy Slapper in front your target and mind the sensors. Make sure the sensors are in a direct path to the target, the arms are unobstructed, and the entire unit is close enough while to the target. The Slippy Slapper can be put in front or beside your coworkers to optimize distraction. We recommend placing the Slippy Slapper right in front of your coworkers for maximum effectiveness.
Things We Learned: Problems & Mistakes
LCD Screen: The LCD screen and Serial communication were assembled such that the LCD used port 1 and 2, but the Serial requires the usage of port 0, and 1 (0(RX), 1(TX)), so they cannot be used at the same time. To fix this we had to change the wiring for the LCD screen to use ports 2 and 3 so there would be no interference.
Speakers: The speakers we originally had did not have amplification in them, so they were very quiet. To increase we could have created amplification with a transistor, but instead decided to opt for speakers with amplification.
Multiple Ardunios: The number of components required more pins in the Arduino Uno. To have more pins we used a master arduino that would communicate to other arduinos. If the master arduino sensed something it would send it to the other arduinos to actuate the speakers and servo motor.
Arduino Memory: The arduino playing audio ran out of memory and could only play 3/5 of our scripted audio files before crashing. Thus we ended up only using 3, the only way around this is to get an arduino with more memory.
3D Printing: When 3D printing considering print tolerances, and strength of the body was important. So testing the fit of components after printing and adjusting was important.
Power Source: Our original design has 2 servo motors, which together uses more than 9V, so we used a power bank as a power source. With the addition of multiple arduinos more power was required, so we used 3-4 power banks.
Results and Reflection
Our initial idea was to create a centipede-like robot that would strike fear in people by chasing them. The centipede would track people by sound through sound sensors. The issue with using sound sensors was that neither the analog nor the digital signal were good enough to accurately detect sound to the degree we required. If we wanted the sensor to find people's location it would require a complex triangular calculation between three sound sensors to pin point a location. We also had problems with reverberation of sound, and loud spaces. We also tried using an infrared sensor. Because it is an digital sensor and not a analog sensor it only provided data that determined if someone was there or not (a high or low value). The delay after sensing was also very long (8 seconds after triggering before it can be used again), so it was not feasible to have the robot track people's changing locations.
With these difficulties we decided to change our concept to using a ultrasonic sensor (This project can be seen in the photo above). Since the ultrasonic sensor only detects things straight in front, rather than a radial sensor, we used it to detect for the presence of a person. If someone was close enough to the ultrasonic sensor would trigger a servo motor to actuate an arm to brush against someones leg. The robot would be compact and tucked away so the arm would disappear. The target would ponder where the unnerving slap came from. Because the robot only actuated an arm, we wanted to add more components to actions of what the robot did. However, creating a creepy sensation is very difficult. Realizing that the slapping from this robot could serve as something to annoy people we thought of other ways to annoy people. We thought it would be fun for this robot to sit at a desk and "slap" people if they were being productive. To be useless, it should make people less productive and have multiple distractions such as sounds and interactive buttons. Because the useless machine has so many components the wiring of it can get very messy, so having our own circuit board would help make it less messy internally. The hands we originally designed were to heavy for the servo's to hold up, so having them lighter, or having a counter weight would improve the hands. To make the machine more fun and annoying we would want to add eyes and eyebrows that move. We would want eyes that track your movement to see what you are doing at all times. Another change would be to have a sound sensor for verbal responses rather than buttons. The user could almost communicate with the useless machine. Going back to some of our original ideas, if the robot had wheels and a sensor to track your movements, so it would never leave your side it would help push the idea of it being overly attached and keep you annoyed at all times.
References and Credits
Made by: Zhenxiao Yang, Ryan Collins, Juliano Sisera, & Lauren Ngo
Hooking up SD module:
Hooking up LCD:
Hooking up the Ultrasonic Sensor