Forenote: I make liberal use of 'we' in this post. This simply refers to the team I was in for the design project. It started off as just me and my roommate, but we managed to pull two others in from our section.So at the beginning of the semester, we needed some sort of idea for a Senior Design Project. Something that would show off all that we've learned over the past four years. Something that would show off our skilllllllz. Various ideas were thrown about:
- USB Thumb Drive RAID controller: We thought this would've been an interesting project. After all, I'm sure we weren't the only ones who had a ton of random 1GB or 2GB flash drive lying around. Wouldn't it be hilarious to have a ton of these in RAID? The idea was scrapped because we didn't think it was encompassing enough. At its core, too simple. It looked like it would be more working with learning and implementing codes and standards.
- Depth sensor in large barrels: This was something that was pitched to us - I don't exactly remember the details; something about monitoring oil or liquid levels in a large container. While technically challenging, I didn't enjoy the topic too much.
- Passage Tone Analysis: This was a cool idea from one of the advisors (and another group actually did pick this one up). So in band or music in general, there are good tools for tuning a single note. But a unique twist is to analyze all the notes in a passage. Record a passage, process it, figure out which notes are sharp, flat, or trends in flatness/sharpness. Very cool idea; but we knocked it down. Reason being: it's almost completely software. We wanted some hands on stuff too.
So I happened to say jokingly, let's make RC CARS DRIFT autonomously. Wouldn't that be badass? Set it on a track, let it find the right lines, and watch it drift. Wouldn't it be even more awesome if we had multiple RC cars do synchronized drifting? Yeah yeah! We could use gyros to keep track of our momentum and head and tail and.... yeah this isn't going to work; we know jack crap about drift physics.
But all was not lost, we liked the idea of RC cars. So what we settled on was an autonomous convoy - a Path-following Autonomous Convoy with Multiple Asynchronous Nodes - PACMAN. And there was the inception of this crazy system. We got these wicked awesome RC cars. They were actually drift cars too! but no drift tires. Anyway, just go to the Hardware section of our website to see the awesome build. If you're software inclined, the Software page has details on our VHDL design. And if you don't care about any of that stuff, at least go to the Deliverables page and watch the Demo videos there. Especially the last one - I taped my camera to the front of one of the cars, and it's really awesome.
We were kinda being masochists in using an FPGA to control the car; hard to develop for, but a great exercise in logic optimization. But at the same time, it was a good decision in that we could customize all our input and output processing - concurrently running blocks - no fear of varying loop time or interrupts screwing up other parts of the system.
Anyway, just one small little anecdote from this project before I end this boring post: Let's set the scenario up. It's the midnight between Saturday and Sunday. The final presentation is in 40 hours. We are reconfiguring the vehicle for some tweaks to steering and throttle control. The power to the FPGA board is off. Push the button to power on. The board isn't turning on. What's thAT SMELL? Turn it off! It IS off!
Something on the board fried. And we still have no true idea how it happened. Only educated guesses.
At the time we were freaking out: what happened? what shorted? how did it short? dust? We left the windows open, and it rained earlier: air moisture?!?! HAS THERE BEEN ANY RECENT SOLAR ACTIVITY?! (I kid you not, I actually checked). Multiple voltage regulators on the board were gone - that was our best guess. As to how it happened we weren't totally sure. Ok, well we're not completely screwed yet, we still have an extra board. There's only one day left to tweak this thing, let's just get it good and then leave it alone. We can get an extra board from the design lab on Monday.
1 hour later, while further refining the control system: Lights blink erratically on the board; it dims; DUDE, what'd you just do? Nothing! wait, oh sh--. Yanks power jack from board. Did what I think just happen, happen? Yes. It did.
Second board fried. Ok, half fried. This board still had its 5v voltage regulator working, however, the 3.3v and maybe even the 1.8v were gone. It didn't matter. We only had one board left, and two cars in need of said control board.
Anyway, our best guess at this point was a bad battery somehow pushing current into the board and killing the regulators. How this happened, I don't really know. There are protection diodes on the development board, but they must've been after the point of failure. We searched online, and to our (somewhat) relief, we weren't the only ones who experienced this issue. It still didn't explain why this happened though.
And so we were depressed for a very long time. Decided to call it a night. We would have a very busy Monday morning. Get to Senior Design lab, profusely apologize for killing two boards, get a new board, install protection fuses on the connector from the battery to the boards, get footage of the system working, edit the footage, give the presentation. We somehow managed to do it, but it was a very nerve-wracking experience - Murphy's Law at its worst.
I hope that as entertaining for you as it was horrible for us. Time to move on to my next post - it might come out tomorrow, because well.... I'm reformatting my laptop - it's been at least a year and a half since she had her last wipe; and you can tell it's been that long.
No comments:
Post a Comment