I have several hobbies which I do in my spare time. Some related to my field, others are not.
Table of Contents |
---|
Electrical Engineering Senior Design Project |
Microcontroller Related Projects |
Active Analog Filters and Signal Processing |
Computer Programming/Web Design |
Motorsports |
Cars |
Electrical Engineering Senior Design Project
Texas A&M Electrical Engineering requires 2 complete semesters of senior design in order to graduate. The class is split into senior design teams and chooses a project they wish to tackle that has a real world need.
My team chose to build a Brain and Heart rate monitoring system, designed to be mobile.
Brain and Heart Rate monitoring system
Goal: To build a system that monitors and logs brain and heart rate activity which will be viewable from on an Android device, and by a website.
Progress: This project has a few major components, pictured below
The main parts that I am working on are the Micro controller (TI MSP 430-G2553), the power/battery system, Bluetooth module, and programming/back end tasks with the Web Server (MySQL database, and PHP scripts). An outline of each component is provided below.
Microcontroller: The microcontroller is responsible for sampling the heart waveform using the internal ADC. It samples at 100Hz with 10-bit resolution (maximum available), and stores about a second or two of samples in the RAM (device only has 512 bytes). Once a number of the samples have been stored, it will be sent to the bluetooth module (via a UART connection) for transmission to the android device. Before sampling takes place, the android device and microcontroller will have a hand shake to get a time stamp.
Power/Battery System: A relatively simple subsystem which is responsible for powering the entire device. It concists of a switched power regulator (for high efficiency) and filter capacitors to help cut down on the harmonics (which would be an issue in the very high-gain instrumentation amplifier).
Bluetooth: Using a stand alone bluetooth module, this connects to the android device for data exchange. The module connects with the micro controller via a serial connection (UART), which allows for easier configuration and use with the microcontroller. The module has a fairly large transmit buffer (~1KB).
Programming: I have had to use programming knowledge to build the back end scripts for the webserver which allow for data to be uploaded from the android device to the webserver and processed into a MySQL database. The database stores all the samples, allowing for viewing of all logged data. I have also had to help with some of the android programming with the lower level hardware concepts.
Microcontroller Related Projects
Using Microchip PIC and TI MSP 430 Microcontrollers and the C/Assembly languages, I can program the chips to do a large array of tasks. I have experimented with the following concepts.
Simple PIC Networking Protocol Using a Single Transmission Line
Goal: To be able to send data to a network of microcontrollers and address them individually using a 'master' and 'slave' scheme. The whole transmission would have to be asynchronus.
Progress: Achieved networking 3 separate slave devices and addressing individually to send hexadecimal color codes, which would use the MCU's internal pulse width modulator modules to create the requested color on RGB LEDs. Worked quite well, even with lossy wires. Theoretically would support up to 255 slave devices, but as more devices need to be addressed individually, data throughput can drop.
Below is a simple movie showing a proof of concept of the master/slave transmission. The master chip sends color codes, which slowly change in between colors (a slow transition). The slave chip will check the packet header for a corresponding address, if it's valid, it'll take the color code and parse it into proper values needed for the PWM modules and reset the timers (thus updating the colors), then repeat the listening process. It will store the last recieved color, and also features a simple time out function.
PIC State Machine with Signal Processing
Goal: To incorporate a small state machine that can send color codes to slave units according to the current state and sampled analog input.
Progress:
State machine was relatively easy to code, incorporating button debouncing using a trivial polling method. Signal processing part is driven by an interrupt triggered by a timer overflow.
PIC Power and Data on a Single Line
Goal: Use a single wire to transmit VPP and a data signal for use where wires are expensive.
Progress: As long as the PIC pulled a relatively low amount of power, and I had a relatively large transistor to sink a larger amount of current, a low pass filter could be used to clean up the 'data' line to provide a power signal. Interesting thing to play around with and see what the effects of different baud rates had on the ability to power the PIC.
LED Multiplexing
Goal:
Use just a few wires to control many different LEDs independently of each other. While this is not a difficult concept, trying to design my own methods of achieving this was a fun challenge.
Active Analog Filters and Signal Processing
This is the start of a project I have since converted over to the digital domain using PIC microcontrollers. I started this back in high school with a relatively simple idea. Flashing lights were cool to music, but often times weren't quite precise enough, or were lacking something. So I set out to play around with and learn about operational amplifiers and transistors as I created this circuit which would split an incoming audio signal into a high and low frequency component, and strobe different colors depending on their intensity. There were a few stages of operational amplifiers for pre amplifying and filtering, the output was then piped to transistors to sink enough current to power the LEDs.
Some videos of testing the early prototype on several different songs of random genres to get a feel of how it performed are below.
Computer Programming/Web Design
iPhone SMS Database
Purpose: Using PHP and MySQL, Imports and stores iPhone SMS messages into database which allows us to do all sorts of neat things to it, such as statistics, viewing, searching, saving, etc.
Progress: I wrote an entire library with functions to aid in parsing, storing, editing, deleting, viewing, sorting, and graphing the SMS data in the MySQL database. This has been something I have worked on since high school and have been continuously updating it as the iPhone database structure has changed (since iOS 2).
All sorts of neat things can be done with this approach, such as storing all text messages from the past 5 years. I can also figure out who I text the most, and at what times. Using the JPgraph libraries (for bar graph creation in PHP), I can plot the data however I'd like so long as I can put it into an array that JPGraph understands. A few screen shots of graphs are below.
I have also designed a few other websites for friends of the family. I really like using PHP because of how dynamic I can make a website. This means that I can store everything in a database and let the website essentially update itself when ever I make a change. I have adopted this strategy in all of my websites dealing with anything content-driven. A few examples of what I have coded are below.
Website | Purpose |
---|---|
http://earringdesignsbyallison.com | Website for family friend's daughter to sell earrings. Built entirely in PHP and MySQL. All pages are basically created dynamically according to the MySQL database to make for easy updates. |
http://urbantez.com/home.php | A lingerie website that a family friend had a specific look they wanted. Made with Flash, PHP, and MySQL |
Motorsports
Motorsports have always been an interest of mine, once I came to Texas A&M, I discovered that they have a sports car club (tamscc.org) that has monthly autocross events. I have attended every one and been an active member since late 2010.
It's a fun, legal, and safe way to have some fun with your car and compete against others.
And the most fun part of it is when the cars act up and do unexpected things, lets me create videos like the one below.
Cars
I have always been a fan of vehicles, no matter what. Modifying them to make them your own, or to get a little extra power out of them is a fun challange and hobby.
Once I got my current car (2009 Honda Civic Si), I really began looking more into how electronics played roles in cars. I have modified the ECU (tune), stereo, eletrical system, suspension, wheels, etc.
The picture below was taken when it was completely stock.
I have also always been an audio fan. With my first car (1994 Volvo 850 with 150k miles), the first thing I did was go crazy with the stereo system. The trend carried over into my next car (2009 Honda Civic Si), but I ended up not being happy with what I had to give up to get my stereo system.
So I ended up looking for a better solution. Starting December 2011, I started a 3 month project to redo my trunk to get my space and practicality back. I had to learn how to work with fiberglass, and use my skills with wood work to cut things in. I even decided to mess around a bit and try something out with plexiglass. I ended up with the following.
Not the best picture, but you get the idea. I even added a few LEDs to make things a little flash, just for that something extra.