Build 18!

Nolan | January 17, 2010

Hello again from Pittsburgh!

I spent some time over the last few months continuing my electronics tinkering, and I’ve successfully completed two new gadgets along with a friend from school, Billy Keyes, as part of a week-long extravaganza at CMU called Build 18. It’s for ECE majors exclusively, and turned out to be a lot fun!

WARNING: Technical information follows. Skip down to the end for the pictures :)

Hard Drive Speed Game

When I got home from break, I was really anxious to try out a project that I ran across that made a “Spin The Hard Drive” game out of old 1-5 GB hard drives that weren’t being used anymore. So, getting the permission of my Dad, I ripped apart his old Western Digital and started playing with it. Since I didn’t have a scope back home, I had to guess a little bit on the values of the resistors for my voltage comparator. After a while, the green LED on my Arduino shield started blinking when I moved the hard drive, so I knew I hit the right spot. After adding a little hysteresis with a feedback resistor, it was working consistently enough to check it with an Arduino interrupt.

Switching over to the Arduino, it was pretty easy to set up an interrupt routine and convert over to RPM. See below for the code I used:

/*Hard Drive RPM Monitor*/
 
int interruptPin = 2;
long oldtime, difference = 0;
volatile int clicks = 0;
volatile long oldclick = 0;
int rps, rpm;
 
void setup() {
  Serial.begin(9600);
  Serial.println("Serial works...");
  pinMode(interruptPin, INPUT);
  attachInterrupt(0,click,RISING);
}
 
void loop() {
  if (clicks >= 4) { //Every 4 "clicks" is one rotation
    difference = micros() - oldtime;
    oldtime = micros();
    clicks = 0;
 
    //Rotations per minute
    Serial.println((int)(60000000.0/difference));
  }
}
 
void click() {
  //One "click" is 1/4 of a rotation
  //Delay should get rid of most false signals
  if (micros() - oldclick > 100) {
    clicks++;
    oldclick = micros();
  }
}

After making a little GUI in Processing to receive the Serial data from the Arduino and display it on the screen, I was ready to go! In the picture below, I show someone getting a high score, and the fastest I’ve seen people spin it is around 1350 RPM, which is pretty ridiculous! At Build_18, someone suggested using the hard drive as a DJ mixer, which sounded really cool and will probably be where I will go with this hard drive next!

Keepon Tracking

Our second project involved an old security camera with a built-in internet connection that I got for free last year. When I got around to buying the power cable for it, I plugged it in only to discover that the camera was broken (hence why I got it for free). So, Billy and I came up with the idea for using it as a dancing robot ala Keepon. After hooking up the camera, a USB webcam for facial recognition, and a microphone, we realized two things very quickly. First,the security camera only took commands every .6 seconds or else it would time out (bad for complex motion, but still ok). Second, sound data (particularly claps) are not very good for interrupts, as our interrupt would trigger multiple times during the sound wave and our various attempts to solve the problem weren’t working. To fix our sound problem, we ended up just checking thresholds on the analog values from the microphone and put in a small time delay to ignore the rest of the wave. Once we found the beats, we just moved the robot left and right in sync with the beat and in half- or quarter-time as necessary.

Overall, it was a great way to come back from break and hack around with some electronics. I’m looking forward to the next one!

My Fall Semester

Nolan | December 4, 2009

Hello again everyone! It’s been a few <cough>months</cough> since I’ve last made an entry on my blog here, but I’m glad to have a little bit of time now to make a quick update. I’m nearing the end of my sophomore fall semester at CMU, and it’s been a totally rocking ride. This summer I had the good pleasure of doing some research on simulating stochastic nano-wire growth with Pfr. Christof Teuscher at his lab at Portland State. I learned a lot about graph traversal algorithms and how to best implement them in MATLAB, as well as a bunch of information on cellular automata and genetic algorithms. If you’re interested, you can read my abbreviated Powerpoint, but I would recommend checking out Complexity: A Guided Tour if you’d like to learn more.

After the summer, the whirlwind of school started again, and I’ve been non-stop busy with staying on top of my classes, Kiltie Band, Merritt visiting over Mid-Semester Break, and the college ministry that I’m attending (Agape). For anyone debating whether they will have time in college to attend a Christian student ministry, I would unabashedly say that the main reason that I get through weeks of studying and working is because of my relationship with my real Father, and his wondrous choice of me as someone to bless! Getting continually refreshed every few days in a solid ministry like Agape has helped tremendously, and I will cherish it long after I graduate from school. Anyways, as finals roll around and start next week I’ll keep trusting in Him for strength, as it’s worked pretty well so far. For everyone else wish me luck, and I look forward to meeting  you again!

//I had a little break over Thanksgiving, so I created a Lissajous Machine with some parts that I scrounged together. Enjoy!

Reader’s Digest “Bill”: Misleading Marketing

Nolan | August 2, 2009

ReadersDigestBill2

I loved Reader’s Digest, don’t get me wrong. It’s one of those great bathroom reads, when you need some inspirational stories to get you through the day. However, once my parents’ membership ran out, they (Reader’s Digest) decided to take action to convince my parents that they need more money! I’m going to try a Better Business Bureau claim just for fun to see how far I can take this. Nowhere on the bill does it say that we don’t actually owe money, which makes this marketing scheme even weirder… I’ll keep you posted!

UPDATE: Well, it turns out that my parent’s didn’t check the box to decline RD’s opt-out service. Methinks they need to adjust their “billing” to at least remind someone that they’ve opted-in and can cancel at any time! Props to DayAnne at RD for the quick response and clarification.

My First E-Book!

Nolan | July 2, 2009

Well, thank you everyone for tuning in to my blog! I am pleased to announce the first release of my own e-book on preparing and applying for colleges and scholarships. It’s been my labor of love for the last year or two, and I’ve been waiting for the day to release it for others to benefit from as well. I look forward to hearing your thoughts and comments on it, as well as any additional information you might want to share. Get it at my Colleges & Scholarships page.

Trimet WES

Nolan | June 29, 2009

I had to run an errand today to Washington Square, so I went ahead and took the opportunity to try out the new Trimet Westside Express Service train that services Washington Square, Tigard, Tualatin, and Wilsonville. I was very impressed with the accessible bike storage, comfortable seating, and even the complimentary on-train WiFi! Fares are the same as a normal MAX ride, as well as the benefit of some added “WES Time” instead of waiting in traffic! Enjoy this fun video put together by the TrimetTV podcast.

EDIT: They mention this in a soft, soothing voice the video, but I want to point out that WES only runs during the morning and evening rush hours (5:20–10:00 and 3:30–8:00) on weekdays, which puts a kibosh in the plans of most evening and weekend shoppers. Hopefully they’ll expand this service in the future, but for now just leave an hour early from work and you’ll be fine.