Thursday 26 April 2012

Dear ICT you are an alcoholic.

ICT has a bad name, it probably doesn't need me to refer to it as an alcoholic as well, but I have good reason to. We all care about ICT, but it has been a little neglected and has had some pretty difficult changes in recent years. It can be a little aggressive, defensive, stubborn, but deep down in its heart it means well. It is a friend who's company we have enjoyed in the good times, but we need it to sober up and realise, it has a problem.

I love computing, ICT, IT whatever you want to call it. It is so much a part of my life that describing it as a separate thing seems strange to me. If I make music I make it on the computer, if I send a a letter I do it via email on the computer, if I want to communicate and idea, learn something, experience something I often do it via a computer. Technology is the means by which I can do all the various work I do and that technology at this stage is a computer in its various forms. It wasn't always so; it used to be a sheet of manuscript paper for writing music, paper, envelope and a stamp for sending a letter, the technology has simply changed, but that is not a problem. It is the way we view that technology. When and who decided that a computer was something so marvellous that it needed its own subject? This might sound strange coming from me, some one who uses computers so much in everything that I do, but that is exactly the point. We do use computers in everything we do, not all of us but certainly a lot of us. If that is the case then why is it so segregated from the rest of the curriculum?

ICT doesn't need a separate lesson, subject of part of the curriculum, does a pencil? They are the same, they are both just technology. Can you imagine A level “Pencil studies”. I'm sorry I joke, maybe it is to lighten the mood, distract from the real problem, just for a little while.

I can hear people already furiously shouting/typing/communicating all probably on a computer “but what about programming?” and I would suggest is something different altogether. Look at it like this if ICT is like learning to use a pencil, computer programming is making that pencil. Not all of us need to make pencils, not all of us need to make software, but a lot of us use them both, they are however just the technology. It might even amuse some of you to learn that I actually learnt computer programming with a paper and pencil on train, without a computer in sight.

I know not all schools and teachers use ICT so separate from everything else, but a lot of them still do, and it is those who are the problem, it is those who need to realise that it is a problem.

ICT needs to be brought back in, merged, welcomed and accepted in to the other subjects. It doesn't need to take over, it just needs a place, it needs to be a part of something again. ICT has a bad name and is at risk, of being a loner, losing the people who care about it, losing its job and losing its meaning, but it doesn't have to be that way.

Matthew C. Applegate / Pixelh8

Clearly, I have been busy.

I have been very busy working on an idea which will be announced tomorrow, the project was funded by a private company but the are happy for me to disclose it, that is the whole point of it. It is and idea to share. I know what will happen as with EVERYTHING I release and it infuriates me. I will upload the work, release a video about it and I will get a comment something like this. "I have been thinking about doing something exactly like that". I hate these kinds of comments, I really do. So I am going to say it in the most polite way right now, I don't care. I just don't care. I am really pleased with it and it is done, maybe the reason you didn't do what you thought about doing is that you spent all your time commenting on videos? It sounds harsh I know, but I am really only interested in what people have done. I don't want to know about what people are planning to do unless they are ready to do it. Let me be clear I don't hate the people who post the comments, I just hate the fact they have not done what they had the idea to do. Does that make any sense?

Sunday 15 April 2012

We weren't playing around.

Inspired by seeing the wonderful viral video "Caine's Arcade" a group of kids have decided to have a go for themselves and roped me in to help. The group is made up of three 9-year-old children one boy and two girls. The words and phrases inside of the "" quotation marks are things that the kids themselves have discovered and said aloud to the group. We started off by having a brief discussion in the morning about some of the ideas they had for arcade machines, to keep the project manageable we are going to let each participant build two arcade machines maximum, this will also help limit the budget. Planning it all out in their "Arcade" diaries, the group decided by themselves that one diary is going to be about the "tactics" that arcade machines use to convince you to spend and keep your money, one is about the "mindstorms" or brainstorming ideas for the machines and the third is about the "Arcade" which is the detailed plan and components list for each of the machines. I wanted them to plan out these rough ideas first in their diary before the next stage which was actual field research.

I explained to them as researchers either for purely academic or commercial situations a group like this would apply for funding to do the research, research costs money, parts cost money traveling and lunch costs money. So after they presented their approximate ideas I announced that the children had successfully been awarded a £15 research grant plus travel and food expenses to travel to see a "proper" arcade in action. Needless to say they were very excited. I briefed them before we left that although we had our initial ideas, they may change over time, I asked them to think about how they spent their money (how much and on what machines), I asked them to ask me to take pictures of interesting things they find. I asked them to step back and think while playing these games what makes them fun, this last one is incredibly tricky but this is how I did it. I quite simply only allowed them access to £1 of change at a time after they had spent that they had to ask for more change and we would have a discussion about the machines we had played on as a group. I gave them no rules, they could play on whatever they wanted (except for the gambling 18+ machines) but interestingly they focused on a certain type of game or price of game, they two 2p machines. The classic "penny pusher" or variations of. It certainly makes the £5 playing/research money go further.

This is what we learnt from playing on the 2p penny pusher.

1) The toys over hanging the edge which are about to fall in to the prize slot also help hide an extended "sneaky hidden" ledge which helps keep the prize from being won as long as possible.

2) Down each side of the pusher there are ledges which allow coins to fall in to the machine releasing the tension of the coins and prevent the prizes from being pushed forward. The money that falls down these channels is kept by the arcade, and not returned to the player.

This is what we learnt from playing on the claw crane.

1) Despite having perfectly grabbed a toy, their is a chance that the machine will "drop it on purpose" or have a grabber to weak to pick up the item or what Wikipedia cites as "Payout percentage: Cranes equipped with this setting have onboard programming which cause the claw's grip parameters to be continually adjusted to achieve a pre-set payout percentage, usually specified with respect to the value of the prizes inside". After successfully managing to grab a Yoshi 10 ten times in a row we noticed that the machine claw "seemed to loosen" at the same time every time, so much so we stopped watching the Yoshi and watched the motor.

2) The higher the price 20p or 30p the "better" the prize

This is what we learnt from Arcades in general

1) Some arcades get you to change your "real money" in to tokens, possibly because they know you might "get bored", and they still get to keep your money as you can't change back small amounts of tokens.

2) The prizes or amounts of prize tickets you get from the "actually fun" games are smaller.

3) You need an awful lot of tickets to get even a small prize.

4) We spent £20 in total on a trip to the arcade (I also had £5), we earned 341 prize tickets, a dolphin keyring and some stickers. We are saving the tickets for our second visit to the arcade later in the year.

We didn't come away from the experience thinking that all arcades are evil money grabbing places, actually it made it even more interesting knowing all these systems were in place, it certainly didn't stop us spending money in them. Looking at it from the perspective of making your own arcade as a project and thinking of it more as a business it raises interesting question about how we should run our own. Should our focus be on fun or on prizes? Could we offer better prizes? We are also planning to visit Tim Hunkin's arcade in Southwold to see a very different take on how to run an arcade and what to put in it.

There is going to be lots in this project which will span the summer holidays, lots of technology and hopefully lots of fun. Any questions just ask me on Twitter @pixelh8

Monday 9 April 2012

Future Retro

Just as I did with the BBC Micro (see blog) I have done with the ZX Spectrum. I have made a simple little sample playing keyboard from some sounds from my sample library. Unfortunately last year my hard drive died which had samples from hundreds of different machines, so in order to do this project I had to get the ZX Spectrum and +2 out of the loft. They are in plastic containers so they will pretty much last forever and just to extend that life I have recorded them and put them in an App "ZXSynth" which will hopefully be on its way to you soon. I can't believe how "buzzy" the sound was from the +2 but after coming to terms with it, I realised that is why I am doing it instead of imitating or emulating the sound. All done now, I might do the Atari 800 next :)


Here is the source code for the notes

10 PLAY "O3C&#C&D&#D&E&F&#F&G&#
G&A&#A&B&O4C"

For the Bass
10 PLAY "UX2000W0O3C&#C&D&#D&
E&F&#F&G&#G&A&#A&B&O4C"

For the SFX
10 BEEP (RND*50), (RND*0.5)
20 GOTO 10
30 REM CHANGE To -50 and 0.01 for
other random sounds.

Have fun. Can't remember what I did for the Drums so you'll have to work that out.

Thursday 5 April 2012

I Have Turned Myself Around

So, for whatever reason I needed to get a small accelerometer working off of an Arduino Nano (and wasn't allowed to use a Wii Motion+), the setup needed to be small, so I grabbed one of these MMA7361 accelerometers of the net (Don't know if that is who I bought it from but that is the one I bought) and wired it up.

RED 3v3 & AREF to 3v3, ORANGE A1 to X, GREEN A2 to Y, YELLOW A3 to Z, BLUE D2 to SL (SLEEP), BLACK to GND.

The code was borrowed off of various forums and tweaked for my specification the best being the one shown below (tweaked slightly) taken from the Arduino forum here.

Needles to say it works, it is just a matter of working out what numbers I need etc, it is good fun waving things around like a lunatic while staring at a screen late at night, I recommend it. The image was made in Fritzing and tweaked in Photoshop CS5 as they didn't have the exact accelerometer in the library.

//ACCEL

int x_avg[10];
int y_avg[10];
int z_avg[10];

int x_axis = 0;
int y_axis = 0;
int z_axis = 0;

int slp_pin = 2;
int i;

void setup()
{
Serial.begin(9600);
analogReference(EXTERNAL);
pinMode(2, OUTPUT);
}

void loop()
{
digitalWrite(slp_pin, HIGH);

for (i=0; i<10; i=i+1)
{
x_avg[i] = analogRead(1);
y_avg[i] = analogRead(2);
z_avg[i] = analogRead(3);
}

for (i=0; i<10; i=i+1)
{
if (i == 0)
{
x_axis = x_avg[i];
y_axis = y_avg[i];
z_axis = z_avg[i];
}
else
{
x_axis = x_axis + x_avg[i];
y_axis = y_axis + y_avg[i];
z_axis = z_axis + z_avg[i];
}
}

Serial.print("x-axis");
Serial.print("\t");
Serial.println(x_axis/10);

Serial.print("y-axis");
Serial.print("\t");
Serial.println(y_axis/10);

Serial.print("z-axis");
Serial.print("\t");
Serial.println(z_axis/10);

Serial.println("");
delay(1000);
}

Wednesday 4 April 2012

Rock the Square Wave Bass Synth

So today I spent tinkering with the good old Arduino and the tone() function which is great fun it is simple to set up and it goes beep. I have however decided to merge it with the serial function in Processing turning the computer keyboard in to a musical one. This code was hacked to together from the various tutorials on the Arduino and Processing sites.

You'll need a 8ohm Speaker (I used a 0.5w one) and 100ohm resistor, I have connected it to pin 8 just like in the diagram which I made using Fritzing.

There are two chunks of code one for the Arduino and one for Processing. You'll need to make sure you computer is sending stuff down the right serial port so it might take a bit of fiddling, before it all works. After installing the software on the Arduino you can check it is working by opening the Serial Monitor and typing either c,d,e,f,g,a,b or C.

The code works like this, Processing takes a key press i.e. "a" and sends the byte "c", the Arduino interprets this and plays the correct tone after receiving it. If nothing is being pressed and "Q" is sent, I use this code for loads of different projects. I didn't want to include too much in this example I leave it up to you to clutter.

Processing code // KEYSEND

import processing.serial.*;

Serial myPort;

void setup()
{
size(200, 200);
String portName = Serial.list()[0];
myPort = new Serial(this, portName, 9600);
}

void draw() {
background(0);

if (keyPressed == true) {

if (key == 'a') {
myPort.write('c');
}

else if (key == 's') {
myPort.write('d');
}

else if (key == 'd') {
myPort.write('e');
}

else if (key == 'f') {
myPort.write('f');
}

else if (key == 'g') {
myPort.write('g');
}

else if (key == 'h') {
myPort.write('a');
}

else if (key == 'j') {
myPort.write('b');
}

else if (key == 'k') {
myPort.write('C');
}

}

if (keyPressed == false) {
myPort.write('Q');

}
}

Arduino Code // SERIAL TONES

#include "pitches.h"

byte val = 0;
int serByte = -1;
int count = 0;

int melody[] = {NOTE_C1, NOTE_D1,NOTE_E1, NOTE_F1, NOTE_G1,NOTE_A1, NOTE_B1, NOTE_C2,0};
byte names[] ={'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C', 'Q'};

int noteDurations[] = {4, 4, 4, 4, 4, 4, 4, 4 };

void setup() {
Serial.begin(9600);
}

void loop() {

serByte = Serial.read();
if (serByte != -1) {
val = serByte;

}
for (count=0;count<=9;count++) {
if (names[count] == val) {
if (count<8){

int noteDuration = 1000/noteDurations[count];
tone(8, melody[count],noteDuration);

}
else {

noTone(8);
}

}
}


}

Arduino Code / pitches.h
//You'll need to make a new tab and call it pitches.h

#define NOTE_C1 33
#define NOTE_D1 37
#define NOTE_E1 41
#define NOTE_F1 44
#define NOTE_G1 49
#define NOTE_A1 55
#define NOTE_B1 62
#define NOTE_C2 65

Monday 2 April 2012

I'm busy

I haven't been blogging the exploits of my new computer recently, not because it isn't useful or the novelty has worn off. Quite the opposite I have been so busy I haven't written anything. The ability to work wherever I am means quite simply that I am working wherever I am. Currently I am juggling three papers for conferences for my PhD and this isn't a problem, whenever an academic epiphany comes to me I can simply open the MacBook and add it, whenever I want to add to a game I am working on I can. I have had to turn off the computer every couple of days to let it rest, Firefox seems to crash every couple of days, that is every couple of days, not three times an hour like the PC net-book did. I can do everything I need to do from this computer and now I have Windows 7 running on it I can use all my video and audio software that I prefer from my PC. Cross Side for the iPhone is coming, three papers are coming, I can't complain.