Introduction: Simple MediaCenter and Remote Control With Improved Usability
Yes, that’s another DIY PC-based Media-Center (or HTPC), but with one unique characteristic: it damn simple to control, thus well suited for aged people, persons with disabilities, or simply lazy users.
“…The primary notion of usability is that an object designed with a generalized users' psychology and physiology in mind is, for example:
* More efficient to use—it takes less time to accomplish a particular task
* Easier to learn—operation can be learned by observing the object
* More satisfying to use…”
Step 1: Project Objectives
If you’re familiar with trying to explain to your parents or grandpas’ the amazing possibilities of digital media (being this pictures, music or movies), and found them frustrated when looking at complex menu navigation and ridiculously crowded remote controls, well this Instructable is for you.
With plenty of available Media Center / HD recorder / SW MediaPlayer available, the one proposed here definitely can't compete in attractive look&feel and features.
But if the target user is over 70 and not use to technology (at least solid state…), you have to consider that all those features can be seen as obstacles rather than advantages. Add to this some physical disability (weak eyes, osteoarthritis..) and you’ll probably find impossible to use any remote control like in the picture below (confusing, keys too small..) .The limitations above lead me to consider a DIY solution, with two main requirements:
- The simplest SW interface possible: no menu/submenus/navigation …just power on your PC and get a flat list of all the media in your drive
- An even simpler and intuitive remote: a user-friendly knob and two heavy-duty push-buttons.Nothing more than this... and that’s what you’ll have in a couple of easy steps..
Step 2: Step 1: SoftWare
There’s quite an active community of opensource MediaPlayer (http://xbmc.org/, http://www.moovida.com/, …). Pretty sure you know ‘em all, so I’m not going in details with them: they are perfect, full of features and fully customizable (for those who understand phython, WindowXML…)
So one possible solution for my project was to start from one of them, grab the source code, and modify them down to the bones to take out all menus and submenus as I told before… well,
maybe in a dozillion years this requires some skills and time.
The other way round; let’s start from scratch with an easy and powerful script language..
I was trying, (quite frustrating indeed) to become familiar with Microsoft Visual Studio Express, when I stumbled across this Precious Istructable Site a found smaaaaaart suggestion: AutoHotKey!
For those who don’t know this powerful scripting language, here is the recap of the main features as listed in their website:
AutoHotkey is a free, open-source utility for Windows. With it, you can:
- Automate almost anything by sending keystrokes and mouse clicks. You can write a mouse or keyboard macro by hand or use the macro recorder.
- Create hotkeys for keyboard, joystick, and mouse. Virtually any key, button, or combination can become a hotkey.
- Create custom data-entry forms, user interfaces, and menu bars. See GUI for details.
- Remap keys and buttons on your keyboard, joystick, and mouse.
- Convert any script into an EXE file that can be run on computers that don't have AutoHotkey installed.
Therefore it’s perfect for configuring a mouse to work like a remote for SW media player, like VideoLan VLC; and it also allows the simple GUI of my program.
Once downloaded and starting from some built-in example, in one evening I was able to create my first program, and in one week of tuning/tweaking, the plan was clear:
1- Create a small script in HK, make it a self-standing executable file and set it to start automatically when the PC is powered-on.
2- Have the script creating a simple (and flat) scroll list with any readable media in the root directory: HUUUGE font size for easy looking
3- Assign mouse commands so that the navigation is done with just the scroll well and the two main button: no point-and-click..
4- When a file is selected, run VLC Mediaplayer full screen
5- One VLC is loaded, the mouse scroll wheel is changed to jog (for FFW / REV), while the two buttons are used for PLAY/PAUSE and STOP.
6- If STOP is hit, close VLC and get back to the main menu.
That’s all. The script is attached, commented for the main parts. You can have AHK compiling it in the corresponding executable file.
TIPS for the script:- Change the root directory string with the right location in your drive. Remember the slash at the end of the string.
-Change the dimensions of the GUI according to your screen size and resolution
- VLC must be configured (cntrl-p) to start full screen (general Video settings) and to react to the right hotkeys that the AHK script sends (Configure Hotkeys)
Step 3: Step 2: HW - PC
No rocket technology here. Any pc with a decent video card and a HDD wide enough will work fine.
My choice, however, was driven by mini-ITX size and the availability of an S-video output, to fit with the SCART input of my parents’ TV (old fashioned technology I know, but at a certain age the old and familiar things are the best ever).
So this is the BOM of the PC: the Intel Little Falls 2 is enclosed in a G-ATLANTIC case w/ external power supply; 1Gb RAM + 250Gb HDD Seagate 2.5” SATA. Not much performing, but more than adequate for the scope of the project.
Step 4: Step 3: HW - Remote
The actual HW modding, (and probably the most original part of this instructable) is the remote control of the mediacenter.
This is based on a wireless mouse, which, being radio, offers the advantage of a “non-directional remote” (an advantage not to overlook, if the user don’t understand that, to change channel / play DVD / navigate menus, he has to point the infrared remote towards the DVB decoder / DVD /HTPC rather than towards the TV..).
It works fine up to 10m which fits with the size of my living room.
Start form a commercial wireless optical mouse with USB adapter.
Once disassembled, the main PCB is removed to be later mounted on the new case. LMB and RMB are actually not used and left for future use (i.e. two other commands configurable with AHK), while button 3 and 4 (the two lateral buttons of the original mouse) are used as main commands by the script. The reason for this is that button 3 and 4 were connected to the mouse's PCB with a connector, so easier to replace.
The mouse wheel is removed and replaced with a more robust commercial rotary encoder; I guess that the encoder should be chosen with the correct # of pulses per round and phase among the two pulses, but I tried the first one in the RS catalog and went fine. Mine has 54° ±30° phase shift CW and 24 pulses/round.
LMB and RMB micro switches are replaced with more resistant push buttons for panel mounting.
The construction is pretty easy: I used an available box for electronic project, with good rubber side-lobes for easy grip and a compartment for two AA batteries.
Knob is mounted centrally, with the two buttons from the same side, so that the remote can be operated with a single hand (layout is attached).
The Encoder and the two buttons are connected with the mouse PCA with custom flat cables with a header done with a 1.27mm-pitch female strip.
Finally, a power switch is added lateral to the remote's case, to shut it down when not used (and save batteries).
Step 5: Step 4: HW - S-Video to SCART Cable
Nothing complicated here: just use your soldering skills and follow the schematic below.
Credits to http://www.maxlaconca.com/238/schema-per-cavetto-di-connessione-da-s-video-a-scart.
S-Video male connector and stereo jack will be connected to your XXII-century PC. The SCART to your 1980s' Television.
Step 6: Conclusions
The final result is shown in the attached video:
With a light installation, XP boots up quickly, and the exe file start running smoothly. As planned, the navigation is easy and intuitive: you can either turn the wheel or push the white button to scroll the list. Select the media you want to play with the green button, and wait for VLC to start.
Jog the movie to the desired point with the wheel, pause/play with green button and stop with the white.
Repeat the cycle until you’re exhausted.
Even with a relatively small 250G HDD, the flat directory quickly becomes too long and too confusing. I’d like not to create a complex directory tree, so maybe some “intelligent” list could be made. For example, the position in the list could be related to the date that file was last opened (so that the latest one should be moved at the bottom of the main list).
To do so, I was thinking about adding to the main script a routine that saves in a txt log file some useful info about each media file, like for example: total number of views, date last view, stopped at 1h:35m:25s.. so that once the media file is loaded again, it starts from the point it was interrupted the previous time..
thanks for reading and sorry form my bad italianish..
Any comment suggestion /remark is really appreciated.