Sega Dreamcast

The Dreamcast was a game console released in 1998 in the wake of the ill-fated Sega Saturn. It was the winner of an internal competition in Sega between two teams of engineers, led by IBM researcher Tatsuo Yamamoto and Sega hardware engineer Hideki Sato. The resulting console featured elements from both designs and was based around a 200MHz Hitachi SH4 RISC processor and the PowerVR2 graphics chip from VideoLogic, which is fast enough for video playback. It also featured an optical GD-ROM...

Processing with a Phone

This is the quickest way to experiment with a SMS-controlled home because most people have (at least) one old phone at home or one from a partner that can be borrowed for testing. Even without an existing device, the cost of a simple pay-as-you-go device is not that great. You will also need a valid subscriber identity module (SIM) card and a connecting cable to your computer. A number of phone shops (and even supermarkets) sell SIM cards containing very low credit and are ideal starting points...

Media Access

One common piece of functionality is to provide access to your music collection from outside home, such as from the office. Several Apache modules are available to handle this one of them is mod_musicindex Although capable of being used to list general-purpose directories (as it does for its own online documentation), it is capable of rendering music-specific icons to let you download and or stream this music anywhere in the world and create playlists interactively for the current folder and...

TODO Building a Conduit

Although there are many necessary small files and directories in the creation of a conduit, the process has been made simpler by a short script that generates them all automatically, so you need only to call the following You should see the extra directories created MINBASE etc msg todo addr MINBASE etc msg todo auth MINBASE etc msg todo cmd MINBASE etc msg todo xmit By default, the output command ( MINBASE etc msg todo xmit cmd) is symlinked to MINBASE bin mxtodo. This is currently empty, and...

TV Guides

With so many TV stations in so many countries, building a general-purpose data store for all the TV channels (let alone their programs) in the world is a massive undertaking. In the United Kingdom, you have Andrew Flegg to thank for handling all the digital, analog, and primary satellite stations in England, Scotland, Wales, and Northern Ireland. The data presented on this site comes from daily scrapes of the broadcasters' own web sites, along with traditional data feeds, so it is accurate and...

Example The Arduino Dictaphone

Most people make notes on the back of train tickets and shopping lists because the effort to switch on a computer or find the phone's notepad application is too much. By combining the interface-less environment of an Arduino and the audio functionality of a monitor-less PC, you can create a very simple voice recorder. You start with the basic switch circuit, but you then replicate it three times once for each of the record, play, and erase buttons, as shown in Figure 2-7. Figure 2-7. Using...

Joysticks for Input

Joysticks, particularly old ones, make wonderful input devices because they interface with the parallel port on most standard sound cards and are physical rugged. This enables the buttons to be reused, particularly as foot pedals, to control software. Indeed, this provides a very cheap way of adding a dictation module to your machine, without the need for an Arduino providing the input. In addition to triggering individual events on a Linux machine, such as requesting a weather report or the...

Cddb-tool Query

When playing a CD, there are often two pieces of information you'd like to keep the track name and a scan of the cover art. The former is more readily available and incorporated into most ripping software, while the latter isn't (although a lot of new media center-based software is including it). What happens to determine the track names is that the start position and length of each song on the CD is determined and used to compute a single fingerprint number by way of a hashing algorithm. Since...

Reading Tweets with cURL

In the same way that tweets can be written with a simple HTTP request, so can they be read. For example curl_setopt( ch, CURLOPT_URL, host) curl_setopt( ch, CURLOPT_RETURNTRANSFER, 1) curl_setopt( ch, CURLOPT_USERPWD, username password) curl_setopt( ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1) This returns all the information available regarding the most recent tweets (including your own) with full information on the user (such as their name, image, and followers count), message, and the...

Using Multiple House Codes

It is possible to have two or more house codes within a single property, bringing the total number of household devices up to a maximum 256. That's enough for the largest of mansions The only consideration with such setups is that a control message such as all lights off can be applied only to a single house code. For computer-based control, you can easily adapt the software to send two (or more) messages of the all units off variety, which affect all devices on the specified house code....

Creating Your Own Applets

To fully appreciate the development methodology of applets, it's necessary to know a little about WARP. WARP is a system built on WebFace that abstracts the basic elements of web design to ensure that the control logic and presentation elements are strictly separated. This means that it's not possible to add a link in your page with the following but instead you have to ask an applet manager to generate one for you html appMan-> getAppletLink( applet, on, bedroom_light, Switch Light On) You...

Of Web Pages and Applets

The web interface supplied with Minerva is based on WARP and as such allows you to have several applets appearing on a single web page. Figure 7-1 shows a typical screen. Currently showing BBC 1 To Bin or Not to BBC 2 Primary Class Clips BBC 3 This Is BBC THREE BBC 4 This is BBC FOUR Channel 4 Ugly Betty Film Four The Bigamist Five Trisha Goddard I TV 1 Unavailable IMF The Official Figure 7-1. Various Minerva applets all running on a single page Each applet is rendered as a small panel view (as...

Periodic Control with Cron Jobs

These take their name from the chronological job scheduler of Unix-like operating systems, which automatically executes a command at given times throughout the year. There is a file, known as the crontab, which has a fine level of granular control regarding these jobs, and separate files exist for each user. You can edit this file belonging to the current user (calling export EDITOR vi first if necessary) with the following There is also a -u option that allows root to edit the crontab of other...

The Software for Voice Recognition

This part of the problem is rather poorly supported by Linux currently, which is not surprising. To understand even the simplest phrases, you need an acoustic model to generate representations of the sounds themselves in a statistical fashion (often as part of the initial training with a specific speaker) and a language model to consider the probabilities of what words and sounds are likely to follow another (to limit the processing necessary when analyzing speech), both of which are...

Play Station Portable

There is one final PlayStation product to mention, the PlayStationPortable (PSP), which was released in 2004 and is based on the PS2. This is a handheld device and benefits the HA hackers with 802.11b WiFi connectivity. IrDA is also featured on the older PSP-1000 models, with the newer version (PSP Go) supporting Bluetooth. All have dual MIPS R4000 chips running at 333 MHz3 and 32MB of RAM, making them more than capable devices. Like most consoles, however, the PSP has been designed to run only...

Sending Messages

This is the easiest part to get working, because both of the services mentioned (which I'll use as an example) provide an API that takes a basic HTTP request and translates it into a text message. My code for mxsms-intelli, for example, is as follows array_shift( argv) ignore program name type array_shift( argv) toAddr array_shift( argv) message implode( , argv) fromAddr MinervaHome objIntelliSMS new IntelliSMS() objIntelliSMS-> Username 'MyUserName' objIntelliSMS-> Password 'MyPassword'...

Motion Sensors

Most sensors on the market are passive infrared sensors (PIRs) and exist in both indoor and outdoor varieties, with the latter being commonly used as security lights that are mounted in the same area as the sensor. PIRs, like the EagleEye Motion Sensor (MS14), send an on message to specific but user-selectable X10 modules whenever motion is detected. Most models can also be configured to send on and off messages at dusk and dawn, respectively. Although some devices can send the message to more...

Arduino as an IO Device

The Arduino and its clones are microcontroller boards that you can think of as grown-up LEGO it provides a simple way of interfacing the real world with the computer, handling basic processing tasks on a chip (instead of in software), and working with hardware motors and sensors. There are many forms of Arduino, based on simple microcontrollers, but the most common development version is the Arduino Diecimila based on the ATmega168 chip, although this is being superseded by the Arduino...

Controlling the Machine

Although Apache is capable of running scripts dynamically when web pages are requested, they are done so as the user under which Apache runs. Depending on your configuration, this is usually the www-data or nobody user. Confirm this by including the following whoami.php script on your web server and then loading it in a browser Consider this user carefully. Because all system calls made by the server (on behalf of the user accessing the web page) will happen as www-data, there are further...

LEGO Mindstorms

First released in 1998, LEGO Mindstorms was originally known as the Mindstorms Robotics Invention System (RIS) Kit and contained a control brick known as RCX to which you uploaded a program with infrared. The software would then run, control the various motors and sensors connected to the RCX brick, and communicate with others via IR. This naturally had the usual problems associated with IR as covered in Chapter 1 (primarily line of sight). There were two versions of RCX released, and both...

Speech Synthesis

This is the easy part of the problem, since the hard work has already been done for us, through a package called Festival Festival began in 2004 from the Centre for Speech Technology Research (CSTR) at the University of Edinburgh where it still resides, although recent functionality has been provided by many sources, including Carnegie Melon University, because of its open source license. It generates words through a complex system of phonemes and prosodics and is able to handle the nuances of...

Configuring a Linux

By far the most flexible NAS server is the one you build for yourself. Any machine is suitable, since the processing power need not be great, so it can be an old laptop, Mini-ITX box, or NSLU2. The only requirement is that it has network compatibility. The optional features include USB ports (for additional drives) and a modern BIOS with 48-bit LBA so that it supports disks larger than 137.4GB. This does not just apply to internal disks, but it's also necessary if you are using external USB...

Freevo

Freevo http freevo.sourceforge.net is a play on the name of the infamous hardware PVR called TiVo.7 It consists of an all-in-one approach, with video capture, recording, and playback existing within the same piece of software. But under the hood it has a separate TV server section. This makes it a closer relative to the Xtreamer type of device and especially suited more controlled installations. Like MythTV and most software PVRs, if I'm being honest , it can also support skinned interfaces and...

Forecasts

Although there appear to be many online weather forecasts available on the Web, most stem from the Weather Channel's own Weather.com. This site provides a web plug-in www.weather.com services downloads and desktop app Windows-only, alas to access its data, but currently there's nothing more open than that in the way of an API. Fortunately, many of the companies that have bought licenses to this data provide access to it for the visitors to their web site and with fewer restrictions. Yahoo...