Setting up an Android Device for Citizen / Amateur Science
If you are drawn to amateur science or citizen science, chances are at some point you've also fantasized about having a Star Trek-style tricorder, an all-in-one scientific instrument that you could use to scan the world around you. With a good collection of apps, a Google Android smart phone is definitely a step in the right direction.
Collecting data. Most smart phones allow you to take photos or video with the built-in camera. If you want to archive these from the field (and your data plan isn't prohibitively expensive) you can use a service like Pixelpipe in conjunction with a sharing site like Flickr or Picasa. You can also use an app like Mamoru Tokashiki's Voice Recorder to collect audio and e-mail it to another computer. If you don't mind working with command line tools, you can process files and move them around the network with apps like Terminal Emulator, AndFTP and ConnectBot (ssh).
Navigating. Android devices really shine when working with Google's web services. The built-in Maps application allows you to see satellite imagery of your current location, which can be very useful for fieldwork. You will also want to install Google's My Tracks to collect GPS tracklogs that you can see on your device and later plot in applications like Google Earth. You can also leave waypoints to mark natural phenomena. The Google Sky Map application uses your location and the built-in compass and accelerometer to show you the stars, constellations, etc. in any direction that you point. The Compass app gives you access to the device's internal compass, and GPS Status 2 to GPS and magnetic field data. For current weather, including radar and satellite imagery, you can install consumer-oriented apps like the Weather Channel one and professional apps like Aviation Weather from NOAA/NWS.
Sensing. A typical Android device such as the HTC Dream has camera, microphone, 3-axis accelerometer, GPS, WiFi, Bluetooth, multiple-band phone, USB and other sensors and ports. Although each of these can be accessed by programs running on the phone, there are relatively few applications that really open them up as sources of raw data (more on this in a moment). Some of the best-developed are those intended for locating cell towers, such as CellFinder or for wardriving, such as G-MoN. My favorite app in this category, however, is the delightful SpectralView, which shows a scrolling colored spectrogram of audio input.
Computing. You'll want to supplement the built-in calculator with a basic scientific calculator like Kreactive Technologies' Calculator. If you know how to program in a scripting language like Python and you have a phone with a QWERTY keyboard, you can actually write programs on the phone with the Android Scripting Environment. Just the thing for whipping up some quick-and-dirty data analysis or sampling phone sensors to a log.
Reference and communication. Was that a cedar waxwing? Look it up with Google or using the Wapedia app, which gives you fast access to about 3 million Wikipedia articles. If you prefer to leverage the power of your social networks, you can use phone, SMS, Twitter, chat, IRC, etc.
The future. Technologies like Android are still very much in their infancy, and every few months new phones are released with features that would have been almost unimaginable a decade earlier. We're not using the devices that we have to their full potential, however. For example, imagine monitoring the accelerometer data from tens of thousands of phones and using it to provide an early-warning system for earthquakes or tsunamis. Google already uses anonymous data like this to estimate road congestion. Just think of the possibilities if future phones included ways to sense temperature, air pressure, UV light, water quality, or other environmental variables. In the meantime, here's my plea to Android developers: write programs that allow users to collect raw data from sensors, log it, process it and share it with one another or export it to services like Pachube. Robert Chou's Pachube Viewer is a start... let's see a lot more.
Python Scripts for Google Android
The Android platform allows smart phones to be scripted using Python and the Android Scripting Environment (ASE). We can use this as a way of delivering mobile tools to NiCHE members who are equipped with Android devices. (These are currently available through Rogers.)
As a schematic example, suppose we have a traditional "Hello, world" program:
# hello-niche.py print "hello niche"
This script can be encoded with the QR Code Generator from the ZXing Project to create a QR Code that can be embedded on any webpage.
To download and run the script, the user
- Starts ASE on the Android device
- Chooses Menu -> Add Script -> Scan Barcode
- Photographs the screen
- Runs the script on the Android device by clicking on it in the list of scripts
Note that this work is currently under development.
