Introduction: ANTiDISTRACTION: the Smartphone Holder That Helps You Focus
Our ANTiDISTRACTION device is aimed at terminating all forms of cellular distraction during periods of intense focus. The machine acts as a charging station upon which a mobile device is mounted in order to facilitate a distraction-free environment. The machine turns away from the user every single time they reach for their phone and turns back when they retract this movement. This is achieved through the use of an Arduino Uno circuit, a power supply unit, an ultrasonic sensor and an electric motor. This act of turning away reminds the viewer that their phone is not interested in them or in their hedonistic pursuits.
Step 1: Videos
Step 2: Materials and Tools
We used the following electronic components. All except the portable power bank are included in Elegoo's Complete Arduino Starter Kit. The part numbers are included where applicable, but it is not necessary to use the exact same parts.
- 5V stepper motor, DC voltage (part number: 28BYJ-48)
- Breakout board to connect the stepper motor to the Arduino board (part number: ULN2003A)
- Ultrasonic sensor (part number: HC-SR04)
- Arduino Uno R3 controller board
- Female-to-male Dupont wires (x10)
- USB-A to USB-B cable (to connect the Arduino board to a computer while uploading the code, and to connect the board to the power bank when operating the machine)
- Portable power bank (Any power bank with a USB port will work. The specs of our power bank are: 7800mAh 28.8Wh; Input: 5V=1A; Dual Output: 5V=2.1A Max)
We used the following materials to build the exterior:
- Baltic birch plywood (3 mm thick) for the prototype casing
- White plexiglass (3 mm thick) for the final casing
- The wood and plexiglass versions were both cut on a laser cutter
- We used BSI Plastic-Cure glue to assemble the plexiglass casing; it can be found at art supply stores or hardware stores (any other glue that's recommended for plastic or plexiglass will also be suitable)
- We used small pieces of laser-cut wood and stacked them with mounting tape (also called foam tape or poster mounts) to correctly position the components inside the case
Step 3: Building the Circuit
Assemble the circuit as shown in the diagram. Note that the ultrasonic sensor must be connected to the 5V pin on the Arduino board to function properly (and therefore the stepper motor will be connected to the 3.3V pin).
Step 4: Fabricating and Assembling the Machine
After laser cutting the initial prototype out of wood, we found that the casing was too small to properly contain the circuitry, and adjusted it before cutting the final version in plexiglass.
Step 5: Arduino Code
Upload the code to the machine by using the Arduino IDE. The main code file is "ANTiDISTRACTION_main_code.ino", attached below. You will need to connect the machine to your computer with the USB cable, then click “Upload”. It’s a good idea to test the machine while it’s still plugged into your computer, because you can open Serial Monitor in Arduino to view output such as the distance from the sensor. After you’ve uploaded the code, you can disconnect the machine from your computer and plug it into a power bank to make the machine portable.
The values for stepsPerRev and stepperMotor.setSpeed may need to be adjusted if you are using a different model of stepper motor. You can search for your motor’s part number online to find the data sheet and check the step angle.
Use the file “ANTiDISTRACTION_motor_adjustment.ino” attached below to check that the step number is correct for your motor; you can also use this file to rotate the machine in small increments to set the starting position. Run the file in Arduino with the machine plugged into your computer, and type integers in the serial monitor to rotate your motor with manual input. You might want to stick a piece of tape on one side of the motor to see the rotation more easily, or draw two dots on the moving and static parts of the motor respectively, to make sure they line up when you complete a full turn.
Step 6: Results and Reflection
We considered replacing the stepper motor with a servo motor, which is more powerful and can turn faster while also being slightly smaller. However, servo motors can only rotate within a range of 180 degrees, so we decided to continue using the stepper motor, sacrificing a moderate speed increase for the ability to make 360-degree turns.
The notch on the underside of the "turntable" must be a little bigger than the shaft of the stepper motor so that it fits on top, but this results in a looser fit and causes the phone stand to rotate less than the motor. If you don't plan to disassemble the machine or re-use the stepper for a future project, you may want to improve the rotation accuracy by gluing the plexiglass to the stepper shaft.
Thankfully, once assembled, the circuit worked as we expected it to, so we proceeded with the initial idea and approach throughout the project.
Step 7: References and Credits
The tutorials here and here were referenced to write the Arduino code for the ultrasonic sensor. For the code involving the stepper motor, we used the Stepper library available on the Arduino website.
This project was created by Guershom Kitsa, Yena Lee, John Shen, and Nicole Zsoter for the Useless Machine assignment, as part of the Physical Computing class at the University of Toronto’s Daniels Faculty. We would like to give special thanks to Professor Maria Yablonina for her assistance.