I have made a few improvements since. Important ones being moving data from the interrupt routine (which should just take a few milliseconds maximum, but I had main code there) to a main loop, outside the interrupt. And it behaves a lot better. It basically responds better.
I also fixed two things at the same time - overflow and timing. That is, I fixed so the timing actually is what is excepted, such as being 1s instead of 500ms, and this was solved by enable a overflow interrupt. An overflow interrupt basically calls a interrupt routine (function) when a counter makes a address/variable overflow for what high value fits in it.
As I'm quite busy and I figured that it's more beneficial to the project to have someone more experienced with DSP and knowledgeable in assembler for AVRs (to optimize) to do the last important part, so I went back to oDesk again to hire someone. This time at a fixed price. This way, it will be able to reach high quality faster, as it will take time for me to learn what I need to, to do this by myself.
You can find the job here: https://www.odesk.com/jobs/Treadgaming-Firmware-Improvements-Fixed-Price_~01901c68264f5ea51a
And, as you can see, I already hired one guy that seems quite promising. I just send one PCB to him today, which means he should be able to start working on this latest Monday next week. I will send my firmware soon as well, so I suppose he will start even sooner.
While I was talking to the guy, sending him some example data, he gave me some graphs back.
Original
This is a graph of my raw data I send to some applicants. Here I first walked for a while. Then I paused for a moment. And then started to jog/run. Even the small backwards motion at the end is correct as my treadmill went backwards a little when I walked off.
Filtered
So, this is better than the Low Pass filter. As you can tell from the graph above, it's not reaching 0, but he will fix that as well.
Spectrum
Gotta love graphs! :)
He will also add "calibration" mode to the firmware, which will basically teach the device what speeds are what, so walk and run can be mapped correctly over USB as a gamepad or whatnot.
I can't wait to see what he does! I'm quite excited to see what comes out of this! And, if all goes according to my plan, the end product out of this will be at a acceptable quality level to sell the thing! I haven't been satisfied with the software quality, which is why I haven't started selling it yet.
I don't even know how many are interested in buying this, which normally is bad I know, but I do this just to learn how doing these kind of things works. So whether it will sell well or not, it's a good learning experience! And, when I actually sell it, I want it to give a fantastic first impression and just let it scream quality! Besides, I haven't done much marketing at all, so I'm expecting slow start anyway. But, I'm a strong believer in making something of quality, so if you are interested in this kind of thing, you shouldn't have to be disappointed! That way, it's a win-win. I would also love to see some creativity using it not only for what I had in mind. Anyway, time will tell here I suppose...
Also, I will also update this blog more often when there is more activity here. Especially when more and more of those PCBs are sold. Posting tips and tricks or whatnot. Would be fun to post about what other creative people come up with as well!
Oh, and there is also one new guy at oDesk that I'm thinking of hiring just because he seemed so into the project, and he also gave me a simplified version of the Kalman filter, which I applied and had some nice results out of.
Great news! Can't wait to see the end-results, and the required lag to process the data.
ReplyDelete