Saturday, 11 February 2012

Chorded keyboard for mobile phones


This is a chorded keyboard mounted around the edge of my mobile phone, a HTC Hero. Chorded keyboards have existed for ages and never really caught on, but I thought applied to a mobile phone it might be quite useful. I find existing keyboards for phones are a bit lacking; hardware ones are bulky and software ones are fiddly and take up screen space that could be better used. Chorded keyboards can potentially be more compact, and also have the advantage that they can be used without looking at them. It's currently -3 degrees centigrade in Cambridge, and I'd quite like to be able to control my phone without taking it and my hand out of my pockets while outdoors.


The keyboard is just five key switches connected to a Google IOIO board. To type a character, you hold down a combination of the buttons. The first button sends 'A', the second 'B' and holding down both then releasing gives you 'C', and so on. On a production keyboard, you would organise the most common letter to be the easiest key combinations. 'E', 'R', and 'T' would be single clicks, and 'Q' would require the least comfortable click combination.

There are 31 possible combinations of the 5 keys, which is room for the alphabet and a few extras such as space, backspace, shift lock and a couple of extra escape sequences to add numbers and symbols.

The IOIO board isn't ideal for this application, because it requires external power to operate rather than drawing power from the phone, hence the 9V battery. That and the bulky USB connectors make this impractical to use. I could replace the IOIO with another microcontroller capable of hosting USB if I wanted to make this a real device.

I also need to figure out how to write the necessary Android code to make this a general input method rather than just typing text into a custom application.

The case is 3d printed by Shapeways. It fits over the phone and replaces the normal back cover. There are spaces in it for the volume control, camera and headphone socket. The volume control could also be used as a 6th & 7th button for chording, if desired.

As it stands, the keyboard isn't particularly comfortable to use. The keyswitches require too much force and aren't in quite the right places yet. I think it's got potential though.

Wednesday, 16 March 2011

Turing Machine and Maker Faire


Here's a video I shot at Maker Faire UK 2011. I took the Turing machine along having just rebuilt it without testing, but it worked fine over the weekend after a little prodding and adjustment. I don't think everybody understood it, but everyone was positive about it and those that did understand what it did seemed very amused by it.

I didn't get much chance to have a look around the rest of Maker Faire, but it was an excellent event with some great minds getting together to create some great hacks (a video of Kinect controlled Tesla coils is doing the rounds at the moment).

Now that deadline's over, I can go back to the drawing board and start thinking about how to make a more reliable, precise version of this machine, or a more powerful machine which could actually demonstrate something useful - which would be better than explaining that this Turing machine would take months to add two numbers together.

Sunday, 6 March 2011

3D printed cellular automaton



Work on the Turing machine continues steadily, but in the meantime I have been working on a backup plan for Maker Faire. Since I have a fair amount of spare time when I can't get to London Hackspace to do stuff with drills and hacksaws, I started work on a 3D printable automaton. The result is in the video above. It's missing two levers since I plain forgot to include them in the order, and this prevents it from actually computing anything - but this video shows the robot reading input data and altering the output data. When the levers are in place, it'll only move some of the output data, thus doing something interesting.



The input data is the row of ball bearings on the bottom of this video. They're all ones for the purpose of this video. The output data starts off as all zeros, and gets set to ones as the machine moves along. In doing so, the machine calculates the (n+1)th row of a rule 110 cellular automaton (top row) based on the nth row (bottom row).




Although it's a lot simpler than my mechanical Turing machine, it does exactly the same function - but it needs replacing manually at the end of each row (generation). Moving in only one direction is a really big deal, and makes everything much simpler.

Both this and the Turing machine will be on display at Maker Faire UK next weekend in Newcastle (12th & 13th March). At least one of them will be working, but sadly I've had to forego steam power in order to run it indoors.

Saturday, 8 January 2011

Turing machine preview video


Here's some video I shot at London Hackspace last weekend. The machine isn't working properly, but this should show roughly what it'll look like when it does. There's some mild swearing on the soundtrack; mute it if that offends you.

I'll be back at the Hackspace tomorrow, making another lifter (5th revision!) which should make it easier to pick up ball bearings and allow more space for a better centering system when the ball bearings are returned to the track.

I've been accepted to Maker Faire UK in Newcastle in March - I'll have the machine running on a stand there with some more cellular automata stuff. See you there hopefully.

Thursday, 30 December 2010

December machinery

The Turing machine ran three instructions in a row on Wednesday morning. I caught the 9am Tuesday train down to London Hackspace and worked through till 9am on Wednesday. The only problem remaining is getting the ball bearings to land reliably on the correct grid space. Direction change and movement are all solved problems now. I've added a gate released by an existing cam to stop the ball bearings exiting the machine too quickly, but the ball bearings often miss their correct grid spots.

This can be fixed by placing guards onto the grid, but I really want to avoid modifying the grid. Modifying an infinite tape requires infinite effort.

Wednesday, 22 December 2010

BigTrak + IGEP



So here's what I've done with the BigTrak so far. I've mounted the IGEP on the back, mbed in the nose and arranged battery power for all the electronics and set up WiFi to remote control it. Boring technical details are at http://www.srimech.com/projects/bigtrak/. The audio on the video is poor, sorry about that. I wanted to be able to hear the motors and my voice is pretty soft at the best of times.

Annoyingly, the biggest challenge by far has been getting the drivers working on the IGEP. It's a neat board, but not very popular so there isn't much community support out there for it. It took me a couple of weeks to get WiFi and usb-acm (necessary to talk to the mbed) working at the same time, and the next challenge is to get it to recognise a USB webcam.

Wednesday, 24 November 2010

November Turing machine update



Had a couple of days to work on the Turing machine during November. It's now on its fourth revision lifter, this time there are two lifting arms, one which will stop at the top of the state box and the second containing the magnets which will continue on, so the magnets are separated from the ball bearings at the top. This seems much more reliable. It needs a longer movement on the string which lifts the arms up, so there's a pulley system to double the effect of the cam lever. I've also made some changes to the reversing mechanism, using a weight which is just slightly stably balanced so requiring a very small force to switch over to the other direction. This should be operating at the end of another day's work.