Aww. Little duckling at Arundel WWT. Lots more fluffy feathered things here
Archive
The Alternativa3D engine has been launched! The demos on the site are astounding. While Papervision 3D is excellent, these guys really seem to have set the bar in visual terms. I think that competition can only be a good thing, eh guys?
I can’t wait to try this engine out, it looks really promising.
Respect to the Russians!
[via drawlogic]
[edit: Simon, a colleague and games journalist writes about this too at ChewingPixels.]
After my blog dying at the hands of my old host, i’ve now moved it to Dreamhost. I need to update the CSS to make it look pretty, and also redo my portfolio.
To be honest, I can think of things i’d rather do with my time ![]()
In my second little project today, I modified the circuit I built for the Flash etch-a-sketch, by adding another potentiometer and 3 LEDs, each of which represents the voltage of each pot (using pulse-width modulation to ‘dim’ the LED).
Each pot is responsible for either the pitch, yaw, or roll of a cube in PV3D.
Simple stuff that’s been done before! I think I need to think of something a bit more interesting now
Well, I had nothing much better to do today, so after sorting out my previous problems with Arduino and Flash, I thought i’d connect 2 potentiometers to the Arduino board, and make….. Yezzer-sketch!
Video:
I need to get some better potentiometers, these are pretty rubbish.
Yey for making … stuff! ![]()
Over the last year, i’ve heard a lot about Arduino, so I was quite gutted when I missed out on both the Arduino talk at BarcampBrighton2, and also on the Arduino session a few days later at FlashBrighton!
Nevertheless, I had to get an Arduino board and start experimenting. Jo had a few Arduino boards, so kindly dropped one round for me.
For me, the most interesting aspect is using the Arduino in conjunction with Flash, sending and recieiving data betwen the two. I realy like the twitter > flash > arduino > LCD display that Mario made. I found it quite inspirational.
Getting Flash and the Arduino talking is initially very, very easy. It takes no time at all to initially write your first “hello world” app - in this case a blinking LED. After that, I turned my attention to reading the output of a potentiometer, and display that in Flash. Again, this is very easy, espically when people have done it already, and you can copy and paste their code! Thanks Beltran, Brett, and Aral for sharing your code!
In no time I had a potentiometer controlling the brightness of an LED, and the Arduino writing the data to the serial port, which Flash was trace()ing to the output window.
Nothing’s that easy though, right? Indeed. I’m expecting values between 0 and 1023, and specifically in this instance, around 1023. This is what I got:
15:37:53:104 = 102
15:37:53:135 = 3
15:37:54:104 = 1023
15:37:55:119 = 1023
15:37:56:135 = 1023
15:37:57:119 = 102
15:37:57:135 = 3
15:37:58:119 = 1023
15:37:59:135 = 1023
15:38:0:151 = 1023
15:38:1:135 = 10
15:38:1:151 = 23
15:38:2:151 = 1023
How strange. As you can see, occasionally the output is split over more than one line. It also does the same on my laptop.
After a lot of hair-pulling, I’ve made a couple of examples, which you can test if you wish. You’ll need to change the port to the one serproxy (or equivalent) is set up to use.
Arduino code:
[code]
void setup()
{
Serial.begin(9600);
}
void loop()
{
Serial.println(”hello”);
delay(100);
}
[/code]
Actionscript 3 code:
[code]
import flash.events.*;
import flash.net.Socket;
trace(”__AS3 Example__”);
var socket:Socket = new Socket(”localhost”,5335);
socket.addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler);
function socketDataHandler(event:ProgressEvent):void {
var now = new Date();
trace(now.getHours()+”:”+now.getMinutes()+”:”+now.getSeconds()+”:”+now.getMilliseconds()+” = “+socket.readUTFBytes(socket.bytesAvailable));
}
[/code]
Actionscript 2 code:
[code]
trace(”__AS2 Example__”);
var socket:XMLSocket = new XMLSocket();
socket.connect(”localhost”,5335);
socket.onData = function (data) {
var now = new Date();
trace(now.getHours()+”:”+now.getMinutes()+”:”+now.getSeconds()+”:”+now.getMilliseconds()+” = “+data);
}
[/code]
AS3 Output:
12:10:43:140 = hello
12:10:43:234 = hel
12:10:43:250 = lo12:10:43:359 = hello
12:10:43:453 = h
12:10:43:453 = ello12:10:43:562 = hello
AS2 Output:
12:11:25:406 = hello
12:11:25:515 = hello
12:11:25:625 = hello
12:11:25:718 = hello
12:11:25:812 = hello
12:11:25:921 = hello
AS3 has odd output, and AS2 has the expected output. It’s almost as if ProgressEvent.SOCKET_DATA is called too frequently?
I’ve looked at this, which may be a similar problem. Here’s my post on the Arduino forum which I wrote as I experienced the problem.
In the end I found AS3Glue, which “is an ActionScript 3 library that enables communication between Flash/Flex/AIR applications and Arduino boards”. This changes the way in which AS3 and the Arduino communicate, and fortunately solves the problem described above.
If you use AS3glue, you’ll also need to use the Arduino Firmata firmware. The firmware page also briefly mentions:
It turns out that the USB-serial drivers are optimized for fast bulk data transfer, and those optimizations actually wreak havoc with the timing of the messages over the USB-serial.
Perhaps that’s the problem i’ve experienced? If I can, i’d like to find out exactly what’s going on, but for now, as3glue will suffice
If you can, please have a test and let me know if you get the same output!
I’ve been insanely busy at work recently, working on a huge Flash game for Channel 4. I’ve kept schtum about it all, with only a few hints to what’s been going on to the outside world.
On the 11th Feb, Channel 4 released a preview of Episode 1 to the world, and it’s been picked up by the blogosphere. My favourite moments so far have been seeing my dead body on the front page of Kotaku, and seeing my fat arse on the front page of my favourite site BoingBoing.
To my fellow programming friends, it’s all ActionScript 3, and no, I didn’t do the entire thing by myself
Be warned, there’s a few bugs in this *preview* release. Oh, and there’s 4 more episodes to come in the very near future.
To show the grandkids, when i’m grey and old:
Team Littleloud rocks!
After uploading a few panoramic photos to Flickr, I found that I really wasn’t too fond of the small image it displays. Asking a user to click all sizes > original just doesn’t cut it for me either.
I found myself thinking “Wouldn’t it be good if i could just click on a link to a fullscreen, panning image?” Well, what with Flickr’s API, and Flash’s StageDisplayState.FULL_SCREEN, I did just that..
This is only something i knocked up in the last couple of hours, so don’t be too harsh, it’s just alpha
Here’s a link directly to my app
Here’s a bookmarklet: View Fullscreen (add this to your favourites or drag and drop to your toolbar)
Here’s a link to an image of mine on Flickr
Of course, adding that bookmarklet to your toolbar means you can view anyone’s (public) image fullscreen. Just browse to their image and hit the bookmarklet
I’ve been far too busy to blog anything recently, so while i’ve got a spare 10 minutes, I thought i’d just write something about us winning the ‘Best use of Flash’ award at the Brighton web awards.
Yey
Respect to Fritz Solares!











Latest Comments
RSS