JeremyBlum.com

Archive for June, 2008

Work Continues, Camera Battery Dies

Oops, I forget to charge my camera battery, so no pictures today we managed to get some the next day (posted below), but here’s what we’ve done recently.

We completely finshed the metal rack that will hold the sensors, and accompanying tripod mount for it.  Using module components, we are able to construct it in such away that sensors can be replaced without unsoldering anything, and using clip-in racks, the positioning of the sensors can be easily adjusted based on screen size.  Our tripod mount is also adjustable, allowing the tripod to stand close to, or far away from the TV using an adjustable arm.  This is beneficial, if for example, the TV is in a cabinet.   There are also felt bumpers on the front of the bar to prevent damage to the television.

Thanks to a suggestion and some help from youtube user al337h4x, we modified the game textures to remove lightning!  That completely fixes the problem we were having with the sensors activating when lightning flashed past them.  This should be good for allowing us to get some high scores, but DeepNote will of course continue to work on standard, unmodified Guitar Hero games.

Enjoy some pictures of the finished sensor rack!

No comments

Official Bot Name and Website Launch!

As we near the finish line with our Guitar Hero Bot, we are pleased to announce its official name and website!

Drumroll please…..

The bot will be called: The DeepNoteGuitar Hero Bot

And its official website is: MechanizedRock.com

Go check it out! (it explains how we chose DeepNote).

No comments

Exciting Developments

It may be hard to believe, but somehow, we are still working on the bot :)

Here’s what I’ve got for ya:

The delay switch is now fully programmed and functional.  This means that the distance between the sensor bar and the bottom of the screen can be adjusted on the fly to accomodate for different television sizes, difficulty settings, and hyperspeed settings.

The metal rack arrived.  You didn’t think we would use those lego’s forever did you?  So, we started setting it up and modifying it to hold our sensors.  It will have a tripod connection so it can easily be setup in front of any screen.

We tested with Guitar Hero 3 and Guitar Hero 2 on XBOX360 today (we had previously been using the PC version of GH3).  It played both perfectly, and already has 5 stars in expert on Jordan from GH2. Here’s a pic of the bot playing on XBOX:

We’ve reworked our filter algorithm to make it better at detecting star power notes.  Previously, it had filtered them out on some occassions due to their shape.

No comments

Analyzing Outputs, Tweaking Code, Adding Features, and finishing the Guitar

I haven’t posted an update in a while, but it’s purely because we’ve been so busy with the bot.  As the long title of this post implies, we’ve gotten a lot accomplished recently, including finishing the guitar! (not the whole bot, just the physical guitar)…But I’ll get to that in a bit.

  1. We’ve been tweaking the program signifigantly, and have implented a new cleaning algorithm that almost completely solves the issue we had with missing star power notes.  Because of their unique shape, star power notes were only picked up by the photodiode light sensors for half as long as regular notes, resulting in them being filtered out.  Our new code prevents that from happening.
  2. We wired into the “back/select/star power” button to allow our bot to automatically activate star power.  This means that our bot is now completely independent, and can play every aspect of the game on its own.  For now, there is just some simple code telling the bot when it should use star power (ie. use it when there are a lot of notes, and no blank space), but we are still improving its intelligence in that area.  The back button and accelerometer still work for activating star power in manual mode (or autonomous).
  3. After wiring up the star power connection, we realized that we sometimes might not want the bot to activate star power on its own accord.  While we are trying to make it as intelligent as possible, it will never be perfect at figuring out when to hit it, and when going for really high scores, we may want to turn off that functionality.  Thus we figured we’d add a switch that turns off automatic star power triggering.  While we were at it, we added one that turns the auto-whammy on and off…(whammying all the time can get annoying).
  4. During testing, we realized that we were going through 9-volts really fast (every few hours), so we decided we’d need a better power source, or at least an alternative.  We experimented with stealing the guitar’s USB power, but found that there was not nearly enough current being supplied to power both the guitar and our circuitry.  So, we got a DC coaxial jack with a built-in autoswitch, and installed it into the side of the guitar.  When no wall adapter is attached to the guitar, it automatically uses it’s 9-volt battery, and when you plug in a wall adaptor, it automatically uses that to power our circuitry.  Pretty neat huh?
  5. Using a National Instruments Data Acquisition Device and LabView software, we hooked our board up to the computer and used it to analyze the outputs of the processor in comparison to the notes on the screen.  We are still sifting through data, but it should help us determine how and where we can improve our software to fix missed notes, double strums, etc.
  6. Finally, we finished the guitar today!  We recently got our new PCBs, and today we installed one, and wired up everything.  We neatly organized all the wires in the guitar, attached some labels to help us solder at the right points, and capped it off with a piece of plexiglass cut to match the shape of the guitar.  We left an opening on the side because A. it looks cool, B. keeps our circuitry cool and C. it allows us access to the board as we continue to acquire data from it with the DAQ.

So that’s it!  We should be getting a metal rack for the sensors very soon, and then those will be mounted very nicely on a tripod infront of the screen.  After that, it’s just program tweaking!

Here’s are some pics for those who don’t want to read all of that above ;)

No comments

Testing Mounting Solutions

As we finish tweaking our programming, we’ve been testing options for mounting our sensors. After first experimenting with a plexiglass mount, we moved on to velcro (with a temporary lego and K’nex mount). That was too difficult to adjust, so we finally mounted the boards on rails. We’ve ordered sliding racks to mount the rails on for easy adjustment in the future.

1 comment

Moving Towards a Finalized Design

Today was dedicated to getting a working prototype of the guitar in its nearly final form. Since we have redesigned the control board, we modified the original design by cutting connections and jumpering pins to get it working with the programming. This is only temporary for testing purposes. All of the guitar connections were soldered so that so we could test…it’s still a mess right now, but that’s because we don’t want to cut the wires down until everything is completely finalized. The track that the sensors will mount on should be done tomorrow, we just need to get some clear adhesive for the plexiglass.

Following are some pictures from today:

No comments

More PCB modding, Prepping the Sensor Track

As yesterday, we continued modding the control PCBs to work with our current programming.  In addition to that, we finally started routing a path for our sensing circuits.  They will sit on a plexiglass base and be able to slide horizontally to accomidate to differently sized televisions.

Pictures from today:

No comments

More guitar mods, and PCB testing

Since we are convinced that the inside our our guitar is going to look really cool when complete, we’ve decided to make a a back window out of plexiglass, so today we’ve started to cut it.

As normal, today was also another day of program tweaking, something that will likely take a while longer at the current pace.

Since we now have the PCBs in our possession, we have also begun running tests with them.  The sensors work perfectly, and though we will be getting different control boards, we are modifying the current ones to work as the future ones will (by jumpering connections, and cutting leads).

Here are some pictures from today:

No comments

Guitar Programming bug fixes, PCB testing, and USB installation

At this point, it’s all about bug fixes. We have two working version of our program, the spin version, running in a slower interpreted language that is easier to code, and a super fast-assembly version, that still doesn’t work perfectly, but can process 20x faster than its spin cousin. We’re trying to add new, smarter filters as well, but we’ve found that these are easier to code in spin first, and then we can move them over to assembly afterwards.

We also came to the realization today that we don’t have an intense name for our bot! So if anybody can think of a cool name, please let me know!

I started doing some test circuits on the PCBs today as well. The sensor boards work perfectly, but we will have to remake the controller boards to coincide with our new programming. In the mean time I am testing the current control boards with our old programming to ensure that the rest of their wiring is correct.

Lastly, we finally got our mini-B to B usb extension cable today. The mini-B end will plug into a processor inside the guitar, and I cut an opening in the side of the guitar for the USB-B connection. This will allow us to make programming changes to the chip without even opening the guitar, once everything is done.

Here’s some pictures from today:

No comments

Even more Programming, and the Arrival of PCBs

Oh yes, even more programming today. After spending hours working out little bugs in our new code platform, we finally have a “working” version. However, it is still not as good as our previous program (the one that 100 percented a song). However, it can process significantly faster, and once we figure out how to harness that correctly, we will have some very powerful code. Not only that, but it makes more efficient use of our 8 core chip. Where our previous code used a core for each colored button, we now parallel process all the buttons in one cog, leaving the other cogs open for USB debugging, and hopefully some other things in the future (I’ll leave those as a surprise). Dr. Neil Singer, our supervisor, has been a big help with debugging and optimizing our coding.

We also got our new PCBs today, which we can now start soldering and testing. They should clean up our setup quite a bit. We are working on a stand for the monitor that will hold the sensor boards in place, while allowing for them to adjust horizontally.

Here are some pics to enjoy:

Debugging the Program Soldering the Sensor PCB Sensor and Controller Boards Soldered Board

No comments

Next Page »