With a bunch of stepper motors, some clever mechanicals and controller cleverness, it would be possible to build a motorized monitor stand controlled via a Raspberry Pi or similar.
Specifically, what I'm imagining is something like a fairly normal adjustable monitor stand, but where the stepper motors do the work of moving the monitor around, rather than manually tweaking it. So a stepper motor each to control: up-down height, left-right swivel, up-down tilt, and maybe back-forth sliding.
Update Beaten to it, with style! This guy (Frederick Vandenbosch) built a whole fancy desk based on a Raspberry Pi controller and a whole load of work. Part of his build is a monitor that slides vertically out of the desk as you turn the desk on. He used a couple of stepper motors attached to long threaded bars, with a monitor rig connected so it can slide up and down as the bars rotate. The motors are controlled by a Gertbot, which seems similar to the 4tronix controller I mentioned above. He's got 2 microswitches to act as the boundary markers.
This was triggered by watching the latest Pimoroni YouTube v-blog, where they showed off some new stepper motor controller hats they now stock. The hats are from 4tronix, a new name to me - but it looks like they do a load of robot related maker/hobbyist stuff.
My total guess at what would be involved would be:
- Pi Zero (yeah, Arduino/feather/MicroBit/etc would probably work too)
- PiStep2 Quad Stepper (the widget that got me thinking in the first place)
- 4 fairly low-geared motors ('cos monitors are heavy and you want to move accurately)
- a bunch of buttons and maybe a joystick
- a decent power supply
- a monitor
- VESA mount monitor stand
- some form of worm drive or rack&pinion for the vertical slide. This would need to cope with physically humping the monitor weight up and down. So it may even need a physical locking mechanism to stop it dropping.
- similar drive for a forward-backward slide. Maybe a telescoping slider could do the job without needing masses of space behind the monitor? It's not humping the full monitor weight, so shouldn't need to be as low geared or have a fail-safe.
- some low-geared swivel construct for the left-right rotation. This looks like standard stepper motor territory.
- Similar low-geared swivel construct for the up-down tilting. This probably needs to handle quite a high torque, given most monitor stands have the hinge for this behind the monitor, meaning there's a lot of weight to counteract within the joint to prevent droop. The construct for this axis will also be humping around a significant proportion of the monitor weight. Maybe some kind of counter-balance would help?
In my imagination the mechanical stuff would all go together with the help of some ingenuity and skill that I don't possess in any way. Maybe we need the A-team or the Mythbusters crew?
Once constructed, the stand with its gearing and motors could be connected up to the controller hat and Pi. The meaty power supply also goes into the controller hat. The buttons/joystick are then plugged into the Pi (or maybe we go with terminal control to start with). Then flick the switch and we're into software-land.
After a bit of GPIO related coding, we should be able to trigger the motors to fire in the relevant directions as required. Some experimentation should give us sensible boundary values for the motors. From there it's just down to hooking up the event triggers from the buttons/joystick to the motor control commands.
We could also have a light to flash and say "no" if you tried to get the motors to go too far or something is stopping the movements.
- Would it be better to do up-down and back-forth with hydraulics/pneumatics instead? Or some form of linear motor?
- The monitor could be programmed to "park" itself when not in use, wandering itself back to a home position.
- If it's going to park itself, it should also have a "remember me" mode so that it can un-park itself back to where it was last time.
- Those 2 ideas give us a monitor stand that can do standby-resume movement either when manually triggered, or on some event.
- Slap a camera on the Pi, sort out some rudimentary face-tracking, hook that to the motor controls. We now have a monitor that can move itself so you can always see it. This is starting to get a little sci-fi now (if Tony Starck doesn't have this on all his monitors, he damn well should have!)
- While we're into really silly territory now, what about multiple monitors all linked to the same head-tracking camera controller. A bunch of monitors, all moving themselves to give you an optimal view as you move around.
Back to earth with a bump
- ok, yes such things do technically exist already. Manufacturing robots are pretty amazing these days. They also cost hundreds of thousands of pounds and are huge.
- Man, all that whirring would drive me mad.
- I sit at a desk when I'm using monitors on stands. Sit, on a chair, that doesn't move around much. So my monitors really don't need to move either. Any head-tracking cleverness is going to get really bored.
- Monitors these days have pretty wide viewing angles. So even less reason to wave them around.
- And if the lighting is less than perfect (hello sunshine!) you may not want big shiny surfaces waving around, reflecting and glaring all over the place.