Thursday, March 19, 2009

Sweet new stuff

Hey y'all:

It has been a little while since I've posted, but the world does not stand still! ;) Yesterday I learned about two crazy new things: 1. FPGA soft core processor architecture/flexibility and 2. the new mechanical circuit element -> the inerter!

Okay, okay... here's the skinny: FPGA (Field Programmable Gate Array) is a technology that has been gaining popularity and acceptance and is being used increasingly in a lot of different applications. Essentially, it is a completely programmable digital chip that allows you to program it with whatever you want and it becomes that! Y'know how in the Transformers movie the robots could transform to be a bunch of different things? This is the digital equivalent! ;) You can quite litterally say, "computer, I would like you to be a 16 core processing powerhouse with a custom processor that I am giving you the schematics for... now how cool is that? It's like having the blueprints for a machine and then magically handing them to a device that builds itself! Here is a typical block diagram of an FPGA with an embedded processor (Nios II) and some peripherals... everything inside the box can be totally changed the next day!





I've known about these badboys for awhile, but yesterday I learned some key new things: 1) the newest versions that have come out recently have enough logic resources to implement something like 700 cores! (though there aren't enough pins to support the input and output... for 700 cores) 2) while I would have thought that since this is a digital chip, I could not use it for things like D2A (Digital to analog conversion) and A2d (Analog to digital conversion), but I was happily wrong again! There is an implementation called Sigma Delta conversion that can use 1-bit at very high speed to convert between analog and digital and back again. All else that is needed is a filter on the other end... The implication of this is staggering: Let's just say that I am making an embedded system here in 2009, and I decide that I want to make a system that has two processors cores and 4 D2As and 4 A2Ds plus some other peripherals like timers and what communications links... then in several years, I realize, "Hey, what we really need our twice as many D2As, and another type of communications link, but one of my previous comm links has become obsolete... no problem! All I have to do is reprogram the chip and my wish is granted! It's like christmas any time you want!

The second part was about the "Inerter" (Shown below)



The idea is essentially to make a mechanical equivalent to the capacitor (or inductor, depending on which analogy you use). Springs store potential energy, right? you push a spring together and it "stores" that energy to push you back later. This device "stores" kinetic energy so that if you start it moving, it wants to continue moving along that course. What is cool about this is that it was recently used in Formula 1 racing and the car that had this technology in its suspension won the race! Very cool stuff. We might be able to use this on Case Machine (The new six-wheeler machine). It also allows software to have a little more freedom in how to optimize your suspension! For example, I could model whatever vehicle we're talking about, then give Matlab a starting point and ask it to optimize given certain criteria like, "Make the road soft inside the car" and "give me good control on the ground for steering and braking". Super cool stuff. Here is a diagram of how they used it as an anti-roll (the red part in the middle of the frame).

More to come here, this is just the beginning. I'll maybe go into a little more detail on some of this if someone wants me to, but this post is getting a little long so I'll leave it at that. Catch ya later.

Sunday, March 1, 2009

I'm not a nerd! Really!

Well, I've alway hated that when people call me a nerd... not that it happens so often, but it's still a pet peeve. But I have to admit this one. At least it might come across nerdy (in a math way, mind you). This last Wednesday, I purchased a couple of software packages: Matlab (http://www.matlab.com/) which I need for software simulation and control system design and Mathematica (http://www.mathematica.com/) which I am planning to use for pure idea exploration in the math domain. I have used matlab for several years now, and it is very useful for the reasons I've listed above, but I had never used Mathematica before. That was Wednesday night.

On Thursday, I began to explore the functionality, language, etc. and get a feel for how Mathematica views the world. Much to my surprise, it views the world similar to how I do! ;) this is great because I have a lot of little tasks and things that I'm thinkin' about that I would love to explore in a natural way. The matchup was so close to how I think that I had some decent looking things going on the first day. I have spent a bit of time modeling the behavior of shaker heads and even written a few programs to easily manipulate/visualize this. Mathematica can accomplish the same thing that took me 10 hours before in one line of code! It's awesome! It automatically maps controls to variables and dynamically updates the plot window.


Friday, dad asked me a question regarding the design of a new topper/hedger and I was inspired with an opportunity to put Mathematica to use in a relevant project. The main thing is that it gets hard to read when you start putting in numbers first (it's easier to leave it symbolic for understanding's sake). That is where this app really shines! (can you tell that I'm excited?) In probably about 8 lines of code, I generated the following set of equations (sorry if it's hard to read, the points is that I didn't have to generate all those complicated conditions on the right by hand!)

So after implmenting these equations and getting to know the plotting features, I generated this beatiful little visualization of the cuts being made by a rotary topper (assuming certain constants like ground speed, bar size, tooth pitch, saw speed, star speed, etc.)... each color is generated by a seperate instance of the above two equations. This plot represents about 64 equations -- more than I want to type by hand!
I finished this functionality by noon on Saturday, which I think is an outstanding learning curve for software so capable. Not braggin here, I am just really impressed with how easy this is to use! $45 well spent! ($45 is the student rate, the commercial version is thousands of dollars).

So here is the bottom line: I'm not a nerd. I just love beatiful things! ;)