Custom TV-lift system, non robotic project

Hi,

For a while ago my wife asked me to integrate a TV into a small cabinet/commode (not sure what word to use). I’m using a standard TS-700A lift for lifting the TV up and down.

I didn’t like how they solve the integration by simply using a big hinged lid that stay up as long as the TV is visible. Like you can see in this video:

Or having the lid on top of the TV like this one:

So I got an idea of using a 645MG servo to slide the whole top plate forward and back under the TV. Also using a small HS-322 servo for moving the little hatch that cover the tvlift. For controlling the servos I’m using a BB2 with a BAP24. I added two micro-switches for knowing when the TV is in position. I’m also using a switch that is serial connected with the TV-lift motor, the switch is enabled when the top plate is completely open.

I’m still not finished renovating the cabinet/commode. The doors are not mounted and it need some painting ++. But this video gives you a demo of how it works.
The video is unlisted.

My little son (soon to be 11 months) almost got hit by the top plate… :laughing:
Pardon for some norwegian speech. Didn’t plan to post this low quality cell-phone video. I’ll make a better official youtube video using a better camera when its finished.

The code is very simple. I’m using the simple SERVO command. Using analog servos is recommended when you don’t want to have them powered all the time. They loose the torque if they doesn’t get the pwm signal.

The complete code looks like this: (Could probably be made even more simple, I guess…)

[code];*****************************************************************************
;******************** Kommode project, TV lift *******************************
;*****************************************************************************
;Hacked TS-700A with a top sliding plate controlled using a Atom Pro 24 on BB2
;Written by Kåre Halvorsen aka Zenta
;21. October 2011
;Ver 1.0
;
;________________________________
;Define ports:
HingeServoPin con P0
PlateServoPin con P1
UppCmdPin con P4
DownCmdPin con P5
UpperSwitchPin con P8
LowerSwitchPin con P11

LedA con P12 ;red Led
LedB con P13 ;green Led
LedC con P14 ;yellow Led

SpeakerPin con P9
;________________________________

;Constants
OpenPlatePos con 2000
ClosePlatePos con -1900
OpenHingePos con -1200
CloseHingePos con 850
;________________________________
;Variables
UppCommand var bit
DownCommand var bit
UpperSwitch var bit
LowerSwitch var bit

PlateServoPos var sword
HingeServoPos var sword
TopPlateIsOpen var bit ; Set to 1 if the top plate is closed, set to 0 if open

;Init:
Pause 10

DIR4 = 0
DIR5 = 0
DIR8 = 0
DIR11 = 0

high LedB
high LedC
low LedA
Sound SpeakerPin,[100\2000]
pause 300
low LedB
Sound SpeakerPin,[100\3000]
pause 300
low LedC
Sound SpeakerPin,[100\4000]
pause 300
high LedA
high LedB
high LedC

TopPlateIsOpen = 0 ;I assume that the top plate is closed at startup
;===============================================================
;Main loop
;===============================================================
main:
GOSUB ReadInputs
IF (TopPlateIsOpen = 1) AND ((LowerSwitch = 1)OR(UpperSwitch = 1)) THEN
GOSUB CloseTopPlate
ENDIF
GOSUB ReadInputs
IF ((UppCommand = 1) AND (LowerSwitch = 1)) OR ((DownCommand = 1) AND (UpperSwitch = 1)) THEN
GOSUB OpenTopPlate
ENDIF

goto main
;===============================================================
ReadInputs:
Input UppCmdPin
Input DownCmdPin
Input UpperSwitchPin
input LowerSwitchPin

UppCommand = IN4
DownCommand = IN5
UpperSwitch	= IN8
LowerSwitch	= IN11
;Update LED status
IF UpperSwitch = 1 Then
	Low LedA
ELSE
	high LedA
ENDIF

IF LowerSwitch = 1 Then
	low LedB
ELSE
	high LedB
ENDIF	

IF ((UppCommand = 1) OR (DownCommand = 1))Then
	low LedC
ELSE
	high LedC
ENDIF

return
;-------------------------------------------------------------
;Use the simple servo command since I don’t want the servo to hold the position forever. Use analog servos!
OpenTopPlate:
IF (LowerSwitch = 1) THEN ;We want to open the little hatch before sliding the top plate
for HingeServoPos = CloseHingePos to OpenHingePos step -50
servo HingeServoPin,HingeServoPos,0
pause 17
next
ENDIF
for PlateServoPos = ClosePlatePos to OpenPlatePos step 30
servo PlateServoPin,PlateServoPos,0
pause 17
next
Sound SpeakerPin,[50\2000]
TopPlateIsOpen = 1
pause 3000 ;take long brake so that the lift can get a chance to lower TV
return
;-------------------------------------------------------------
CloseTopPlate:
for PlateServoPos = OpenPlatePos to ClosePlatePos step -30
servo PlateServoPin,PlateServoPos,0
pause 17
next
TopPlateIsOpen = 0
IF (LowerSwitch = 1) THEN ;We want to close the little hatch after sliding the top plate
for HingeServoPos = OpenHingePos to CloseHingePos step 20
servo HingeServoPin,HingeServoPos,0
pause 17
next
servo HingeServoPin,HingeServoPos,50 ;Hold the position for 1 sec
ENDIF
return
;-------------------------------------------------------------

[/code]

I hope it was ok that I posted it here, even if it isn’t a robot…

Pretty cool project! Maybe you should start making them commercially!

Kurt

Nice job Kåre!

I wouldn’t have believed you’d be able to do that with '645 servos!

Alan KM6VV

P.S., You need a little arm to come out and throw a switch! (just kidding)

this is great Kåre! thanks for sharing. even if you dont believe it should be posted here, i certainly this it is. great idea.
yes i did squint when the top plate moved out but i guess it was just the perspective. he was fine. :wink:

… so i need one of these for my bed room… how soon can you knock one up… lol :laughing:

might have to try this Kåre. its definitely a project that would be excepted by the better half’s. lol

I was thinking of having the flat screen in the wall. the vertical plate moves out of the wall, once out it moves down the wall to reveal the TV. the TV then moves forward 'out from the wall. once the TV is fully out, then the Plate moves back up behind the TV. Basically what you have done but on a vertical plane. :wink:

Ps, i never expect you to need to apologize for anything you share. its all great and its nice to hear/see. again thanks for sharing.

Hehe it’s a machine doing your bidding. Sounds like a robot to me. :wink:

Very cool Kåre! Thanks for sharing!

Nice one… Again… :wink:
And a good idea… i think i will make one for me… LOL

I’m impressed, especially running off a HS645 servo! Would you mind posting a picture of the innards showing how it is set up?

Very impresive. I really like your solution.

Thanks for your comments guys!
Always highly appreciated. :smiley:

The fun part with this project is that everyone I show this to gets impressed. Its probably because it has something to do with a TV and not a robot… :unamused: :open_mouth: :laughing:

Thanks Kurt, yes I’ve been thinking about it. I’m not sure if that’s going to happen though. Going commercial is a big step. And there are already several similar products out there already.

As long as the top plate only move in the horizontal plane it doesn’t require much torque at all.

:laughing: To be honest I’ve been thinking about something like that, just for the fun of it…

Sounds like a bit more complex project but should be possible. Instead of moving the vertical plate down (or up) you can save a lot of torque by moving the plate to the left or right (horizontally). Also splitting the plate in two parts that move to each side could be an idea. You also need to find a solution how you can make the plates move back behind the TV without getting in conflict with the TV-mountings/holder, maybe a 3. third little panel or something.

Thanks Jim, I needed that! :smiley:

I’ll do that when I get time for it.

Extreme! :smiley:

It’s cool to see the tabletop pop forward and then see the TV coming out. I watched the fist 2 vid’s before I watched your work. I wasn’t expecting the tabletop to move forward. Did you add some drawer guide (don’t know the english word) to reduce friction? Nice work!

A question on the side, do you plan on leaving the power on the BAP at all times?

Xan

Thanks for you comment Xan! :smiley:
Yes I’m using some sort of drawing rails + the two big bearings (I sent you a picture of them from my phone one time… :wink: ) I’ll post details about the mechanical stuff later.

Yes, the BAP/BB2 is powered all the time. Is that a problem? I’m using VS=VL at 6v switch regulated so the 5v regulator on the BB2 doesn’t leave much heat I hope.

Hi,

I’m almost done with this project. My wife didn’t want me to paint it yet. She like the shabby/old style… sigh :unamused: .

Anyway, here is the official video:

Great video! Do you have other stuff inside the cabinet, like Satellite TV receiver or DVD player… Just sort-of curious on how all of the cables are run.

Again great job!

Kurt

Thanks Kurt! Yes, I do have the DVD player and the cable decoder inside it. When you open the doors you can’t see the TV. Its hidden behind a panel. I’ll post some pics one day.

Hello, Kåre,

That is really a nice, smooth operation. No visible vibration or jitter of moving cabinetry or TV, and it is much quicker than I would have expected. Great concept, well executed.

Probably not a good idea to argue with your wife too much about painting it. She might want you to repaint the whole room to be a proper setting for it. :wink: