Last updated: Mt. Desert Island, 3 Aug 2010
Notes
I'd like to play around with some microcontrollers. These are small, portable, low-power processors
dedicated to a particular task. The two that look most interesting are:
- Arduino
Pros: Inexpensive, rich ecosystem and community,
(likely) low power consumption, looks like fun.
Cons: Relatively slow (16 MHz)
- Gumstix
Pros: Powerful processor, lots of memory, compact
size, runs Linux.
Cons: Power hungry? TBD.
|
|
along with an iPod Touch and
Apple's Accessory API
|
I'm also interested in the various ways to organize, index, and generally analyze my website (well, websites in
general). I'd like to play around with semantic web constructs. E.g. how are
my photos of fishing boats in Peru related to
photos of my dinghy and sail placement and
graphs of sailboat characteristics? I'd like to describe each
of those with semantic markup linked to (public and private) ontologies, then graphically link and navigate (pun there?) between them.
Something for the future. In the meantime, below is a webpage grapher that I found and am starting to fiddle with.
|
The projects:
- Camera Controller
- Portable Webcam
- Boat Performance Monitor
- Boat Security Monitor
- Simple Logic Analyzer
- System Load Monitor displayed on my iPod
- Webpage Grapher
-
|
Last updated: Melbourne, 9 Feb 2010
Notion:
|
| |
| (a) |
An intervalometer is a device that helps you make a series of exposures with your
camera. For example, you could use it to take 1000 photos, each 15 minutes apart.
Then combine them in post processing to make a time-lapse video. Canon doesn't
build an intervalometer feature
into their EOS cameras. I'd like a nice snazzy device that does this.
|
| (b) |
Also, I'd like to be able to play around with triggerring the shutter on
some special event - say a bird being detected in front of the lens.
|
| (c) |
Finally, I'd like to have remote control over the camera. With the ability to control
all the camera's functions as well as to be able to preview the image and set the
focus before the picture is taken.
|
|
Interesting problems:
|
| |
I think what would make this an interesting project is integrating the UI for all these functions on a snazzy
device like the iPod.
|
Status:
|
| |
Here is a demo of the current GUI. Note: you might need to zoom in
or out a little in your browser for the demo pages to fit right. (e.g. "<command> +" and
"<command> -" on Firefox on a Mac, "<CTRL> +" and "<CTRL> -" on Windows, etc)
The buttons along the bottom of these mocked-up pages (as well as the "8.63 volts" drill-down button
and the "?" button) are hooked up so please try them.
The other buttons would need to invoke functions on the Arduino so they don't work here.
This mocked-up demo should look OK with any web browser, but if you have an iPod Touch or iPhone,
to see the actual look:
- Go to the Safari browser on your iPod or iPhone.
- Enter "svbreakaway.info/tp/cc/r.html" on the address bar
and click on "Go" (or simply click on that link if you are viewing this page from your iPod/iPhone.. in that case, note
the next step about adding it to your Home Screen).
- When the "Remote Control" page is displayed, click on "+" on Safari's option bar, then "Add to Home Screen"
and finally on "Add". When you
run it from your Home Screen, the pages layout properly - ie. without Safari displaying it's address bar.
- You should see the button has been added to one of your Home Screen pages. Click on it and you should have a fairly
realistic demo. Once again, the buttons along the bottom, the "8.63 volts" drill-down button on the "Admin" page, and
the "?" button are hooked up and should work. If you are on the "Admin" page and click on "Adm" again, it refreshes
the page, causing the mock data to be refetched from the GoDaddy server (where svbreakaway.info is being hosted).
The data won't change, but the "Response time" on the "Admin" page is what your browser actually measures (to fetch
the data from the server). I'm seeing between 150 and 250 ms to the GoDaddy server from my iPod here in FL and
around 120 ms to my Arduino.
|
Melbourne, 6 Mar 2010 
Video of my first version:
|
|
[7 Aug 2010 update: I'm back in the states,
have my Arduino stuff and DSLR handy now, and am
in the process of documenting the code and making it available for download.
First, I want to bring it up to date with any changes in the WiShield code and Arduino/Processing environment.]
|
Last updated: Melbourne, 27 Jan 2010
Notion:
|
| |
| (a) |
The notion is a typical webcam (with video). But where a user, via the web, is able to control
where the camera is pointing. And the camera should be portable so that I can move it around. |
| (b) |
Stereoptic vision? |
| (c) |
360° field of view? |
|
Interesting problems:
|
| |
| (a) |
OK, so one option is to simply interface
this Logitech webcam
to a microcontroller via a USB connection. If the microcontroller has a WiFi interface, then it should be
(relatively) easy to forward the resultant video stream to a host webserver nearby. And then
stream that to the end-user. Likewise, the end-user controls where the webcam is
pointing by sending commands in the other direction. Sounds straightforward, and
I'll probably implement this first.
|
| (b) |
3D televisions are apparently "the next big thing" in consumer electronics.
An interesting variation of this project would be a stereoptic webcam. How about
using 2 Logitech webcams for stereoptic vision, coordinated by the microcontroller, to make a 3D webcam.
|
| (c) |
One of the things I'd like have is a 360° field of view.
- I guess one possibility would be building a "sphere" of webcams so that their images
overlap. Software in the microcontroller would stitch the images together and
present a consolidated view to the end-user .. either with perspective "flattened
out" or some sort of fish-eye or 360° view.
- Another possibility might
be a 360° panoramic lens, such as (a cheap eBay copy of) one of these from
0-360, EGG, or
EyeSee360. Or
this from Olympus if they do
come out with it.
- A third possibility might be making the camera mobile, similar to the Logitech webcam but with a wider range of
movement. A simple webcam could be mounted on an arm that rotates on 2 asis - each axis controlled by a servo. Or
maybe mount the camera on a car in a bubble, with the wheels able to go forward-and-backward as well as side-to-side.
|
| (a-c) |
(I assume) one of the challenges will be preventing the camera from "looking" directly at the sun. |
|
Possible solution:
|
| |
 |
| WiFi between the cam unit and Public Webserver is important. And since I'd
like to try Notions (b) or (c) mentioned in the section above,
I want as powerful a microcontroller as possible. Say, the
Gumstix Overo Fire.
|
|
Status:
|
| |
Melbourne, 12 Mar 2010 
Woo-hoo! The initial code is working. Video coming soon..
|
Last updated: Melbourne, 27 Jan 2010
Notion:
|
| |
| My boat instrumentaton (boat speed, direction, & GPS position; wind speed &
direction; and water depth) are all available via a network on the boat.
|
| (a) |
The notion is to be able to display them on an iPod that could be worn in a handy
spot (like on one of those iPod arm bands people use when exercising).
|
| (b) |
Further, I would like to compile a history of the boat speed, under given conditions,
to see if I am sailing as good as I have in the past under similar conditions and thus
try to improve my skills.
|
| (c) |
Further, I'd like to compare this with ideal (IMS) speed roses and with similar data
that others might gather on their boats.
|
|
Interesting problems:
|
| |
The iPod user interface would make this snazzy, of course. But what I think would make this
real interesting is keeping the history of how the boat has performed in the past on that particular point
of sail. Ie. on that particular heading relative to the wind and that wind speed. Then we could
use that past performance as a benchmark - can we do better? I think it would be very cool to have a
public repository of performance data like this somewhere so that we could see how we compare with other
boats - sort of a distributed, time-lagged sailing regatta.
|
Possible solution:
|
| |
 |
| Ahh. The good news is that I probably have all the components I need to put this
together - an iPod Touch, a system I can use to host a webserver and integrate the
instrumentation data, and finally the instruments themselves.
|
|
Last updated: Melbourne, 27 Jan 2010
Notion:
|
| |
| Keep track of the boat via the web. This includes sensing the weather, if there is water
in the bilge, the battery state, security alarms, a security video webcam, etc. |
|
Interesting problems:
|
| |
This can probably be done with various off-the-shelf products. But I'm thinking I can do a better job
creating an integrated dashboard specifically for my needs. We'll see.
I'd reuse parts of the Portable Webcam and Boat Performance Monitor from above.
|
Possible solution:
|
| |
 |
| The Arduino would take the readings from the sensors and give them to the server over a
USB connection. The wind conditions (speed & direction) would be from the existing Raymarine network.
|
|
Last updated: Mt. Desert Island, 3 Aug 2010
I found a cool webpage grapher on
http://www.aharef.info/static/htmlgraph/.
Kudos to
Marcel Salathé and
Jeffrey Traer Bernstein.
It creates a graphical depiction of the HTML tags on webpages. The individual nodes are colored according to the
HTML tag (blue for <a>, green for <div>, red for <table>, etc).
I added code to allow viewing more than one page. So, each connected blob represents a different page on my website (red for
/index.php, green for
/about-me.php, blue for
/sv-breakaway.php, etc). The page you're now reading,
/tp.php, is purple.
When the applet is running, it looks like spindly creatures under a microscope. To me anyway.
In the future, I'd like to show the links between pages and add the ability to pick which pages to graph.
Following is a sample screen capture of the results (you can click on this screenshot to hopefully invoke the actual applet):
If you're having problems invoking the applet above, check to see if you have Java Applets enabled in your browser.
As a test, see if you can display the clock
here (click on a time zone).
On a broadband network connection, the applet should take just a few seconds to load (the background turns black and the Start Button
(

) should appear in the upper left corner).
The animation should be fluid, updating the display quickly as each node is added. If instead, it is refreshing the display
in 1-second spurts with many nodes added between refreshes (as Opera and Chrome
are doing for me on my Mac), then I'm sorry because the effect is totally spoiled :-(.
The applet was created using the current version (1.2.1) of
Processing. The embed code
that Processing produced looks pretty robust. If you are having a problem viewing it, I'd appreciate
hearing what version of what browser you are using (email me at mike.as.admin@gmail.com). Also, let me know what version
of Java you're using, if you know it.
Here are results of my testing this applet with various browsers on my Mac and Vista systems:
| |
| |
Mac OS X (v10.6.4 and Java 1.6.0_20 SE) |
Windows Vista (Home Premium w/ SP2 and Java 6u21 SE) |
| Firefox (v3.6.8) |
Working well |
Working well |
| IE (v7.0.6002) |
n/a |
Working well |
| Opera (v10.60) |
The animation is jerky - the display is only being refreshed once a second or so |
Working well |
| Chrome (v5.0.375) |
Working well |
| Safari (v5.0.1) |
Upon starting the applet, it is often slow to respond to the Start/Restart buttons |
n/a |
|