Springtime
February 21st, 2007 by BrianTwo weeks ago, I noticed that a few of the trees and a few of the camellias on campus were starting to bloom. I snapped this photo:
Camellia
|
Of course as a result of my busy schedule, I hadn’t gotten around to actually posting it until now.
I took these helleborus pictures down at University Village over the weekend:
Helleborus 1 | Helleborus 2 | Helleborus 3 |
I’m not quite sure what this one is, but it looked really neat:
Alien
|
It’s getting to be about that point in the quarter where the days start disappearing into the temporal vortex. We’re well into final projects now, and it’s all too easy to get up, go to a few classes, grab a bite to eat, settle in in the lab, and before I know it its late in the evening.
In Embedded Systems, we’re working with the iMote2 platform, which is a little board with an Xscale processor, wireless chip, and 64 MB of RAM (half of which is flash.) Like a lot of devices now, they run the Linux operating system.
As our final project, we’re going to be using the iMote2 with a 3-axis accelerometer board to develop a wireless controller for a big soccer-like game that we will all play as our final demo in the CSE building atrium. Each person in the class will have his or her own iMote, running his or her own code, that will implement a radio protocol and communicate with a computer that’s running the game.
A big part of the project is writing drivers for the various I/O devices that we’re using. We wrote a driver for the accelerometer, and another driver to use PWM to control the color of the RGB LED on the iMote. We were also given a driver for the radio chip that we’re using to send data between the motes. Unfortunately, this driver, as we received it, was in a somewhat broken and incomplete state. I get the impression that it hadn’t been fully tested. Doing a nonblocking read on the driver was completely broken and all subsequent writes would fail. There was even a comment in the source code about it being broken. The driver also wouldn’t share its interrupts with anything else, which essentially prevented any other drivers from using timers. Now there seems to be an issue with the driver going into an irrecoverable state when it receives a packet at the same time that it’s trying to send. A program that seems to work fine at midnight in an empty lab will start behaving erratically in the afternoon as the lab becomes full of other students with motes doing radio communication.
So, the driver has required a fair amount of hacking to make it functional enough to use. Fortunately, we now have source code for it that compiles into a working drivers, rather than having to tweak the (semi-)working driver with a hex editor.
On Tuesday, we got things mostly working. One board uses its accelerometer to determine which way the board is tilted and sends a signal to another board to change the color of its LED based on the tilt. Then, if the receiving board is turned upside down, it turns its LED off and tells the sending board to set its LED color instead. It’s pretty neat to play with and be able to wirelessly send a color across the room.
Getting that working wrapped up this week’s lab, so I actually had some extra time today. My plan was to take a bit of a post-lunch walk around campus with my camera.
More Tree Blossoms | More Tree | More Tree Blossoms |
Unfortunately, as I was just setting out, I absentmindedly miscounted the number of stairs by the nuclear reactor by one too few. As the law of gravity refuses to make any exceptions for me, this resulted in a pair of skinned knees and a fresh pair of holes in the knees of my pants. So, my walk got cut rather short by the need to return to my room to bandage my knees and change my pants.
I snapped a few photos of the daffodils on the way back.
Daffodils 1 | Daffodils 2 |
Weather permitting, I will try again tomorrow.