Posted: November 6th, 2008 | Author: Barton | Filed under: AS3, Bluetooth, GPS, Physical Computing, Python, Twisted | Tags: Python | 4 Comments »
Overview
After having built the hardware in Part 1, it is fairly useless without a way to get the GPS data from the device somewhere else in order to do something useful with it. For this project, the end result will be a visualization of the GPS data in Flash Player on a Mac. There are myriad ways to accomplish this, however very few approaches can easily encapsulate all of these steps in a single language. This is because both low-level system access (to read the serial data) and some sort of server (to serve the data to Flash Player) are required. While it is definitely possible to use any number of other languages such as Java, Processing, C++, etc., performing all of these tasks with those languages would require significant amounts of code.
With that said, I opted for Python not only because I love it, but also because it is quite straightforward to use it to read from a serial port using the pyserial module and also to establish any number of different types of servers including standard HTTP and socket servers. While there are built-in libraries for creating and managing servers, I ultimately decided on creating a socket server using Twisted. Twisted is an enormously powerful networking framework that simplifies the creation of all sorts of servers.
Why add another framework when a standard HTTP server would suffice for serving up data to the Flash Player? The implementation of a standard HTTP server would require Flash Player polling the service to determine if data had been updated. So, rather than rely on that sub-par solution, Twisted makes the creation of socket servers very easy, which then allows the Flash Player to receive data in real-time via an XMLSocket connection. Not only that, but one of the coolest aspects of Twisted is that it makes it fairly easy to write multi-user socket servers, which will be a nice addition for future enhancements
Here is what the overall system architecture ends up looking like when all of that is considered:

However, before diving into these details, the first step is to hook up the device to the Mac via a serial Bluetooth connection and verifying that everything is working so far.
Read the rest of this entry »
Posted: March 16th, 2008 | Author: Barton | Filed under: AS3, Bluetooth, GPS, Physical Computing | 20 Comments »
Overview
For this project, my goal was to get GPS data into my Mac for some visualization experiments with ActionScript. After some initial prototypes that worked well using an RS232-to-USB converter, I decided that wasn’t slick enough and had it too many wires. I like things nice and clean around my desk, so I opted for adding Bluetooth in place of a USB converter.
After experimenting with some different methods, some using microprocessors and some not, I opted for the simpler route, eliminating the microprocessor. A microprocessor doesn’t add anything other than cost for the basic purpose of this project. Although stay tuned for another posting about integrating a similar configuration with the Make Controller and Arduino microprocessors.

Read the rest of this entry »
Posted: October 13th, 2007 | Author: Barton | Filed under: AIR, AS3, Flex, RFID, Web Services | 9 Comments »
I had originally wanted to build this project with my Parallax RFID reader, but since I can’t interface it with the Make Controller until Liam at MakingThings fixes the serial BLOB implementation fixed in mchelper 2.0, I decided to complete a proof-of-concept with a Phidgets RFID reader. The application is pretty straightforward - it consists of an RFID tag embedded in a cell phone that is read for its unique ID, prompts a user to enter some data and then remembers their personal data when they return. While the premise is simple, there are a few moving parts required to stitch it together.
Read the rest of this entry »
Posted: September 8th, 2007 | Author: Barton | Filed under: AS3, Make Controller | 1 Comment »
MakingThings just released a bunch of software updates involved with Flash and the Make Controller that nullifies a lot of my previous work with AS3 and flosc. While some of the components still seem a bit buggy, they represent some major improvements. The best news to come out of this round of releases is that the flosc socket server can now be ditched (sorry, Ben Chun) in favor of connecting to the Make Controller using a new version of mchelper. Additionally it is now possible, from Flash, to connect to a board using either USB or Ethernet. As a result, I’m starting my series over to take these latest developments into account.
Read the rest of this entry »
Posted: August 20th, 2007 | Author: Barton | Filed under: AS3, Make Controller | 8 Comments »
As those of you that have been reading along with the series might extrapolate, this post is supposed to be Part 5. However, given some things that I’ve discovered in the Fwiidom AS3 implementation as well as some issues in the MakingThings AS2 classes, which I then ported to AS3 and in the process propogated those bugs, this is now an update on some progress made with some collaboration and refactoring.
Read the rest of this entry »
Posted: August 14th, 2007 | Author: Barton | Filed under: AS3, Flex | 4 Comments »
Use Case
I’ve been working on a project with a team of some of our really talented Flash developers (props Ben, Leon and Gabriel) where a Flex app being served from a non-secure URL via plain HTTP needs to connect to and consume data from another server via HTTPS and have run into some issues and a workaround that I’d like to share. For that particular project, the other server is a SOAP service running behind SSL with a Flex app served over HTTP consuming those services. However, these concepts also apply to any external data consumed by the Flash Player. A simplified diagram of the system is below:
Read the rest of this entry »
Posted: August 3rd, 2007 | Author: Barton | Filed under: AS3, Make Controller | No Comments »
Doing Something “Useful” With Sensor Input
In Parts 1-3, we spent some time examining the basics of the Make Controller, OSC and how it works with (or in some cases doesn’t work) ActionScript 3. Now, we can start to do some things that might actually be construed as being useful for a project. To start, let’s get the hardware set up by hooking up a light sensor to analogin0. With that done, we can write some code to use the input from the light sensor as it detects ambient light levels to control the opacity of a sprite on the stage of our SWF.
Read the rest of this entry »
Posted: July 27th, 2007 | Author: Barton | Filed under: AS3, Make Controller | No Comments »
Please be sure to read Part 2, and download the classes from that example otherwise the following example will not work as expected.
This article will cover how to read OSC messages that are sent from the Make Controller into FLOSC and then into Flash using the modified FWiidom classes. Before getting started, this is where I have to point out that the manner in which the Flash Player receives the XML converted from OSC is by polling FLOSC, which is far from ideal. Polling is an inefficient and wasteful way of checking to see if any state has changed on the controller. This, however, is the way that OSC works - by querying the connected device to determine if the state of any inputs has changed. I’m not sure if this characteristic applies to the Make Controller in general, if for example, using other protocols over USB, but I have a feeling that it doesn’t. I’ll have to look at some of the code written for the controller in other languages and also read up on OSC to determine if this is the case. In any case, we’re stuck with polling in ActionScript.
Read the rest of this entry »
Posted: July 26th, 2007 | Author: Barton | Filed under: AS3, Make Controller | 1 Comment »
In attempting to wire up a slide potentiometer to the Make Controller and poll for its values using AS3, which was supposed to be Part 2 of this series of articles, I ran into a significant problem. (To understand what exactly I was trying to do, check out Getting Started with AS3 and the Make Controller - Part 3 - Determining Input Values.) After coding up my example for the article in AS3, I expected that when publishing the .SWF, everything would be working, right? No, of course not. That would be far too easy. After checking and double-checking my code thinking that I probably just did something stupid while working on it late at night, I was stumped. I slept on it and still couldn’t figure it out. After much frustration, I opted to revert back to AS2 to see if maybe there was an issue with the potentiometer and re-wrote the example using AS2 and the MakingThings AS2 classes and it worked a treat.
Read the rest of this entry »
Posted: July 22nd, 2007 | Author: Barton | Filed under: AS3, Make Controller | 6 Comments »
A couple months back I picked up a Make Controller from Making Things to do some experimentation with Flash Media Server and physical computing. I’m just now getting around to writing up my experiences about getting set up with the Make Controller. While the tutorial on the Making Things site was great for getting started using AS2 with their .mxp extension, it didn’t offer up anything on how to get started with what I really wanted to do, which was a project that would benefit from the performance of AS3 and Flash Player 9, so I had to take matters into my own hands.
Read the rest of this entry »