Tuesday, July 12, 2011

From Jay: Protoman Helmet Write-Up

 Jay Jones (the owner of the helmet) wrote this up and asked me to put it into the blog for his technical perspective of our project. He wrote it on google+ and I just left it the way it was aside from some minor corrections he asked me to make. The article is basically about his role in getting the white LEDs to strobe in the front of the helmet. That took up much of the time and money of the project, but after we got it all figured out we could probably stick another one together in a few hours.

Anyway, here's Jay.

I know this is counterproductive to my own post, but my entire feed is filled with people just talking about google+. Please use this tool as a way to spread useful information to people that would actually find it relevant instead of discussing the tool itself.

I'll start with posting something me and my friend Kris Leisman have been working on for the last few months. The idea I had was to create a Protoman helmet from the ground up with different electrical components. When I first mentioned this idea to Kris he said that it sounded awesome, and would love to build it for me. Essentially Kris would do all the construction while I funded all the parts. Links at the bottom of the page for all those wanting to see everything from the ground up.

Basically, what I wanted to detail is a little segment I like to call "reasons Jay IS NOT a electrical engineer." First off, I have to give some serious props to +Danny Fritz and a person I met through reddit named Joe Perrin. We knew from the very beginning of this project that we wanted some mad electrical wizardry going on with the tech in this helmet. The problem with that is, neither Kris or I have any EE background. We first reached out to a friend of ours, but that didn't exactly work out in our favor after certain circumstances arose. After that fell through my next option was to get a hold of my friend +Danny Fritz, because I knew he was majoring in CEE before he switched over to CS. Danny threw out some advice as to what we could do, but ultimately he suggested that we try out the Purdue University subreddit. I was quite skeptical, but I figured it was worth a shot. Almost instantly the next day we had someone who was willing to help us because he saw the project page, and thought it was a neat idea. We ended up meeting with him over a weekend, and he consulted us on trying to get the parts we need to finish the protoboard we already had. In the end though because of the many different types of microchips and programmers EE's from different schools have to deal with we couldn't exactly use any of the parts we had originally purchased. None the less Danny and Joe came to the rescue by having all the necessary parts we need to build another board without needing to order new parts. We spent the majority of our time that weekend constructing that board and making it work. We finally got it to the point where it worked after some small testing. I took the home board that weekend knowing that all we needed to do was attach the LED's and it should work. Well lo behold, when we got home it no longer worked. I tried for hours to debug the chip by checking to see if the right ports were putting out the correct power at the correct intervals, which they were, but nothing seemed to be working. We tried testing everything we could, but it yielded no results. At this point I had about 3 different options I could apply.

1. Give up - not an option
2. Replace both the Pic Micro controller and the LED drive - I still think it was the LED Driver
3. Buy a board called an Arduino that Joe had suggested as an easy way to get around all this work.

I first decided to go with option 2, mainly because I really wanted to learn embedded C programming to make this project fun AND educational. So what I did is I ended up buying a Pickit3 programmer for 70$ just so I could learn to program this Pic Micro. I also bought a new LED Driver, and a new Pic Micro just so I knew they weren't burnt out. So I got these in like 2 weeks before the show we wanted to premiere this at was going down, and I had high hopes that this would be fast and simple. At this point I hope everyone realizes that I am really good about being wrong when it comes to optimistic hopes. First of all embedded C, pretty simple language since almost all my experience is in c++. Secondly Pickit3 and MPLab, I hate you. I spent so much time just trying to get the damn program onto the Pic Micro. Only to find out that the reason it wasn't programming to the Micro was the fact that you had to explicitly tell it to provide power from the Pickit3. So then I finally get the thing programmed after 2 days of self hate, but lo behold when we attach it to the old LED driver I get no results. My thoughts at this point are "the problem has to be the LED driver." Once again I am wrong. At this point I'm tired and frustrated at every twist and turn. So I finally take Joe's advice and go with the Arduino board 4 days before the show.

My thoughts on the Arduino board you say? God's gift to man. I first tried to get this thing to work with some LED drivers Arduino had recommended, mainly because arduino only has 12-14 digital outs, and I need 16 light to light up. We couldn't get the LED Drivers to work once again. The reason for this being, no LED driver in the world actually works, and they are a myth made up by EE's to steal my money. So I finally just said, "lets just finish this." I ended up just using the ports on the board directly and limiting the lights, and it worked like a charm. The Arduino has to be the easiest thing in the world to program and get installed. It has some great debugging features right on the board, and it is relatively small. So did we make it in time? Yes, but just by the skin of our teeth. Overall, I would call it quite a learning experience, and I have this new sweet Helmet and Arduino Board to play with.

TLDR: Made a protoman Helmet, Glad I'm not an EE, but I get the appeal, LED Drivers suck, Arduino Boards are awesome.


No comments:

Post a Comment

What you want?