- SVGs, Microcontrollers, and Xbees
- 16.4.2009
I brought back and old project this afternoon. I had previously constructed a temperature regulated refrigerator using an Arduino and 5A Omron SSR to toggle the compressor, but had no good way of plotting the results to make sure my refrigeration algorithms were working correctly. The refrigerator was not near a PC, so uploading the live results to a database was out of the question.
However, I recently purchased some XBee modules to play with wireless serial communication, and decided to give them a try with a datalogging application. I picked up an XBee shield for the Arduino and a ...- 2 comments
- High Altitude Weather Ballooning
- 31.3.2009
I just finished up a weather balloon project over the weekend. Here are some pictures of the launch and subsequent recovery.
The goal was to measure atmospheric gravity waves by using direction tubes and thermistors to detect pressure differences between the two openings of the tube. Our apparatus measures the associated temperature fluctuation, and logs ADC readings to a CF card every half second. In order to compensate for balloon rotation, we stuck a HMC6352 digital compass in the payload as well.
Our data logging system was composed centered around a TS-7200 from Technologic Systems. We opted for the add-on ...- no comments
- Captcha
- 29.3.2009
Bots started posting spam here this morning, so I implemented my own captcha based on FIGlet. I may eventually switch to reCAPTCHA, but it didn't work to my liking last time I implemented it.
FIGlet offers several benefits over traditional captchas at this time. First, FIGlet doesn't have to do any CPU intensive image generation. FIGlet is also a much simpler program in general, which makes it more malleable to the developer as compared to something such as PIL. And most important (at least for now), every capcha bot that I have seen is based on OCR. Because ...- 5 comments
- Twitter Mailing Functionality
- 8.4.2009
I had to jump on the Twitter bandwagon to enter a contest and must admit - I'm quite frustrated with the features that are present. Twitter seems to be mostly SMS driven in a world of emerging (and free!... with data plan) PUSH email. Therefore, since I refuse to pay extra for SMS, I must log in to check for @reply's to my tweets. Also, I can't just send a quick email update to Twitter on my mobile device, but rather have to log into their web interface on my painfully slow mobile device.
Anyway - I have started ...- 2 comments
- Simple Python ctypes Example
- 25.4.2009
I have been working with the massive data tables generated by my balloon flight and have run into a bit of trouble with Python. Everyone knows that Python isn't the fastest kid on the block. However, there are several ways you can speed it up. First off, Python 2.6 and 3.0 provide a new multiprocessing library that makes it much easier to divide a problem amongst concurrent workers. However, this is still not ideal for high throughput data requirements. I have previously worked with Python's C API, but found it's syntax quite undesirable. This new ...
- 22 comments
- Python Comprehensions
- 19.6.2009
I haven't posted in a while, so here's a fun fact for the day: Although they probably aren't the best way to do most problems, they sure are cool - Python Comprehensions. When you combine a list comprehension with the reduce() function, the one-liner possibilities are endless. For example, if you need a quick and dirty way to calculate the XOR checksum of something (eg. NMEA 0183 GPS output), create a function such as:
import operator def checksum(s): return reduce(operator.xor, [ord(c) for c in s])It may not be as universally accepted as unrolling ...
- 1 comments
