|14||Self-Adjusting Monitor Stand
- Anna Miller (annam4)
- Jake Nickel (jnicke7)
- Iris Xu (iris2)
Certain monitor technologies today have fairly tight viewing angles, and viewing your computer screen from more than 30-40 degrees off the normal will often introduce visual artifacts that make it difficult to read. However, most consumer monitor stands are not well adjustable, and it would be time consuming to constantly tweak to match each viewing angle possible. Additionally, many workplace environments require the use of privacy screens, which are designed to limit field of view as much as possible, only making this problem worse. We aim to break this tradeoff between greater privacy and ease of use.
Our system will consist of a wide angle camera paired with a computer vision processor to detect faces in front of the screen. This system will detect faces, and generate a target position to move the monitor to at the users request. This target position will be communicated to our custom PCB, which will house a microcontroller for the control loop, along with several DC motor drivers. Motors will be included to pan and tilt the monitor, as well as adjust the height at the user’s request with external buttons. Encoders will provide closed loop feedback, managed by our microcontroller in order to reach the specified target generated by the CV processor.
# Solution Components
The overall system will be powered by using a wall adapter. This subsystem will convert AC to DC and regulate the voltage so that the individual components and other subsystems will be powered correctly.
## Location Detection Subsystem
This subsystem will be used to determine the appropriate angle/tilt of the monitor so that the user can see through the privacy screen. A simple camera would be used to identify the shape of a person at the desk. This subsystem will also evaluate the angle between a line from the center of the screen to the person and a line normal to the center of the screen. The components in this subsystem include a wide angle camera mounted to the monitor, and an Odroid-XU4 or similar SBC to handle image processing.
## Wired Remote Control
This device will allow the user to control the vertical position of the monitor on the stand. The remote will consist of an “adjust angle” button, an “up” button, and a “down” button. When a button is pressed, a signal will be sent to the microcontroller. While the “up” or ”down” button is pressed, the monitor will move in the requested vertical direction. If the “adjust angle” button is pressed and released, the detection subsystem will determine where the user is. This information will be processed and used to adjust the monitor angle accordingly. The remote will consist of 3 buttons or switches for user input and will be connected to the monitor by a data cable. This would also require a simple PCB to house the buttons, which could be integrated into the main PCB and separated after ordering. (using panelization breakaway tabs)
## Processing and Motor Control (PCB)
The processing subsystem will be on the PCB and will be responsible for reading the signals provided by the location detection system, user-input monitor tilt, and the remote. The PCB will include a microcontroller, MOSFET-based H-bridge motor drivers, and related circuitry. The microcontroller should support hardware timers for higher fidelity in encoder sampling, and have a reasonably high clock speed. A MCU that satisfies this requirement would be the STM32G0 series.
## Mechanical Track (Vertical)
This mechanical subsystem will control the vertical position of the monitor. A standard 12V linear actuator with an approximate stroke of 8 inches will be used to control vertical movement. Also included will be a spring to counteract some of the weight of the monitor. This will allow for the use of a lower powered actuator. This system will include guide rails for the upper pan/tilt assembly to run in, in order to ensure better structural rigidity.
## Mechanical (Pan/Tilt)
This mechanical subsystem will control the tilt of the monitor itself, and will be steered according to commands from the location detection system. Encoders on the pan/tilt motors will send a signal to the microcontroller to form a closed control loop. The PCB will use this feedback to drive the monitor to the requested position, and make any necessary adjustments. One 12V DC motor will control vertical tilting, and another similar motor will regulate side-to-side panning. These motors will be high-torque gear motors, with a very low RPM. This will allow for support of the heavy monitor throughout the full range of motion.
# Criterion For Success
* The project should be able to identify the user’s location relative to the center of the screen within 10 degrees.
* Based on the user location, the device should tilt the monitor so that it is centered on the user well enough to see through the privacy screen when the “adjust angle” button is pressed.
* The user should be able to adjust the height of the monitor from where they are seated. The monitor height will be adjusted by holding either the “up” or “down” button.