Hello Android


Some semesters I teach courses that just need to be taught. On the other hand, this Fall I get to teach a class that should be purely fun — an Android projects course for upper-level undergrads. I already promised an “A” to anyone who (legitimately) makes at least $100 using an application developed for the class. I plan to nudge students away from web applications and single-node games, which seem boring. Rather, I hope they’ll interface with the awesome peripherals that make phones and tablets special. Today in class we looked through the source code for a pedometer app — the most interesting part being the step detection logic. It turned out to be pretty hacky, but it more or less works.

Here’s a gratuitous hardware shot — my pile of Galaxy 10.1 tabs, which the students got to take home today. Half of the tabs were gifts, half were purchased using university funds acquired by Thomas Schmid who was awesome enough to loan them to me (or rather, to my students) for the Fall. The most interesting part of the class will be when I get some Tegra 3 development boards — these should be seriously awesome.

, ,

13 responses to “Hello Android”

  1. Thanks Derek. Sonar in particular would be really cool.

    Another idea I had was putting together an IMU — the Galaxy 10.1 has more than enough sensors and CPU power.

  2. John,

    I looked into doing an IMU and found an analysis (a Cambridge University MSc thesis maybe) of phone sensor accuracy which showed this idea was a complete non-starter. There was something about using the magnetic field detector to improve accuracy, but my memory is a bit hazy.

  3. I miss your hands on class, John. I still remember the Embedded Systems class where we wrote a C program to run on the bare metal, no OS or anything. I felt like a God after that project. 🙂

  4. John,

    If I recall correctly the issue was that any small error in the calculated orientation would cause the error in the estimated position to continually grow over time because acceleration due to gravity would not be correctly accounted for. Information from a magnetic field detector could be used to reduce the error in the calculation of the orientation.

    If hardware add-ons are allowed, how about support for an infra-red device on the USB port
    http://www.usbgear.net/usb-irda.cfm
    so I can fly my moquito helicopter?
    http://www.amazon.com/Mini-Mosquito-RC-Helicopter-v2/dp/B000O288EE

  5. Derek, hardware add-ons are definitely allowed — hopefully using ADK and some Arduino boards. A USB IR dongle would work too.

    Regarding IMU drift, I’m sure it’s a problem. We’ve been using MEMS accelerometers in my embedded systems class for several years and they’re fairly crappy. But the Android tablets have GPS. It’s all just grist for the Kalman filter…

  6. What is the point of your class if an “A” is equivalent to making $100 on a project? People spend money on the darnedest things. And $100, legitimate or not, isn’t really that much anymore.

    What are the qualities the software/student should have to get an “A” without $100 (I know, it’s probably in the syllabus)? Money has never been a particularly motivating factor for me.

    Sorry for the cynicism, and good luck!

  7. Hi James, the point of the $100 offer is to create an incentive for the students to think seriously about what it would take to make money using the Android platform. The reason I am comfortable making this deal is that I suspect it’s not going to be the easy way to get an A.