I have written, and continue to write, a number of different user interfaces to interact with MicroSeeker. Below are screenshots from some of these user interfaces, with some descriptive text of what is going on. All of these user interfaces are in Squeak, and all but the first are Morphic, running on a Squeak 3.7 image.
You can click on most of the screenshots for full-size versions.
|First off, here's a screenshot of
the MVC GUI window that runs on the Axim PDA when it is inside the sub. I push
the "Start Mission" button, close up the sub, and it will run whichever
mission I have selected each time I point my TV remote at the sub and push a
I have a slight variation of this window, which also runs a remote command facility, so I can command the sub over an 802.11 wireless link. Note that the wireless link does not work under water at all.
This is a screenshot from my laptop, but the window is identical when it runs on the PDA.
|When I'm running at a pool, and
I'm using the remote command facility, I use this window on my laptop to
choose missions, start & stop missions, and send other commands to the sub.
Both my laptop and the PDA use maClientServer, a SqueakMap project by Chris
Muller, to communicate.
The list at the left is the log, retrieved from a pool test I did on September 11, 2004 (no pictures from that day). Immediately after every mission run is done, the software automatically saves the log to the RAM drive of the PDA, so I can retrieve it later for analysis.
Incidentally, for the true Smalltalk enthusiasts out there, when I push the "Ping Server" button on this window, it sends "3 + 4" to the PDA, and waits for the correct response...
|To the right is a new window I
wrote recently, which allows me to graphically plot and analyze logs from
running either in the sub, or in the simulator. The log to the right is the
same one as is shown in the pool window above. Once again, this is an actual
log from running the sub in a pool...
The red circles represent depth-control finite state machine log entries.
I plan on further enhancing this window, to show more log elements, and better represent in a visual way how the sub actually operates, both in the real world and in the simulator.
|Here's a log graph analysis of a
simulator run, with a new PID depth controller I am testing.
Each line represents the subs depth and pitch at that particular point in time, along the timeline on the bottom (depth is the vertical axis). Each green circle represents a waypoint reached.
The objects in the window (lines and circles) are "live", and when you mouse over them, the status bar at the bottom is updated with information about that log entry. The window also auto-scales, both horizontally and vertically, for the length and max depth of the log entries.
|Here's one of my simple pool test
missions running in the simulator. The log shown directly above is from
running this mission in the simulator.
The mission started near the red dot (which is actually the last waypoint), and is following the waypoints clockwise around the circle, and then back to the start position.
The map in the lower left shows a representation of the body of water, and auto-scales it so that it fits. The pool in this run is 16' wide, and 32' long, and the scale is 12:1. When the scale is 10:1 or greater, the map draws an actual picture of the sub, otherwise it draws a simple triangle, as in the map below (which is a 1:1 scale lake, 400' by 300').
|And here's my old competition
mission, also running in this simulator.
The simulator is completely detached from the autonomous controller -- it basically puts a hook in at the very bottom level, where the autonomous controller talks over the serial port with the PIC hardware. As far as the controller is concerned, it is controlling the real sub, and getting real sensor feedback, in exactly the same fashion it would if it were running on the sub.
|And finally, here is a simple user
interface for when I hook the sub directly to the serial port on my laptop,
without using the PDA. I can drag sliders to control the actuators, and get
real-time visual feedback from the sensors.
This is one of my older user interfaces, but I still use it to debug communication issues between Squeak and my PIC microcontrollers.
If you have any comments or ideas, please email me...
Go back to my MicroSeeker Smalltalk page...