Hey all,
Been a while since I actually posted here, but I still read most of the threads out of interest.
Some may remember my attempts at a Guitar Hero playing robot a couple of months back, which was only a partial success. I've now decided that, after a bit of a break, its time to finish it off!
Here's a quick recap of how it works, and how successful it's been so far:
The photos above show the full robot setup and a close-up of the circuit board. It's a PICAXE 28X1 based circuit, using a combination of analog switches and transistors to interface with an Xbox 360 controller.
I've also uploaded a video on YouTube, which shows how far through the song the bot manages to get before it fails. Watch the video here - http://www.youtube.com/watch?v=F2dNWlYIVRw.
As you can see from the video, the bot fails after 438 notes because it suddenly stops playing, whereas my aim is for the bot to fully play this song without missing a note. It fails because the 28X1's programme memory isn't large enough to store the note data for the entire song as the code currently looks like this:
This, obviously, isn't an efficient way to programme the IC, as the song is far too long for all of the note data to be stored on the IC alone. I therefore looked for alternative storage solutions:
This is where I really need some advice. What other methods could you suggest for storing note data for the song? I've extracted the data for the entire song, and can manipulate it into any format required. I just need some means of storing it, such that the PICAXE can read it, whilst preventing the timing of the PICAXE's operations from being affected.
Sorry for the epic post, but all advice would be very much appreciated - it's about time I actually finished a project!
Charlie
Been a while since I actually posted here, but I still read most of the threads out of interest.
Some may remember my attempts at a Guitar Hero playing robot a couple of months back, which was only a partial success. I've now decided that, after a bit of a break, its time to finish it off!
Here's a quick recap of how it works, and how successful it's been so far:
The photos above show the full robot setup and a close-up of the circuit board. It's a PICAXE 28X1 based circuit, using a combination of analog switches and transistors to interface with an Xbox 360 controller.
I've also uploaded a video on YouTube, which shows how far through the song the bot manages to get before it fails. Watch the video here - http://www.youtube.com/watch?v=F2dNWlYIVRw.
As you can see from the video, the bot fails after 438 notes because it suddenly stops playing, whereas my aim is for the bot to fully play this song without missing a note. It fails because the 28X1's programme memory isn't large enough to store the note data for the entire song as the code currently looks like this:
Code:
setfreq em16
main:
if porta pin0 = 1 then play_song
goto main
play_song:
let pins = %01000000
pause 210
let pins = %00000000
pause 100
let pins = %10000000
pause 158
let pins = %00000000
pause 156
let pins = %00100000
pause 210
let pins = %00000000
pause 100
let pins = %10000000
pause 158
let pins = %00000000
pause 152
let pins = %00010000
pause 210
let pins = %00000000
pause 104
let pins = %10000000
pause 158
let pins = %00000000
pause 152
let pins = %01000000
pause 210
let pins = %00000000
pause 104
let pins = %10000000
pause 158
let pins = %00000000
pause 152
let pins = %00100000
pause 210
let pins = %00000000
[...]
- I originally tried to use an EEPROM IC to hold note data for the song. Unfortuntely this was very inconsistent as data was being read at a different rate each time, which made it impossible to perfectly time the playing of the bot.
- I also tried using a Vinculum VDRIVE2, as seen in the first of the two photos above. This was also unsuccessful for similar reasons. It was inconsistent in that random characters would creep in to a string whilst reading from a text file. I also found the VDRIVE incredibly difficult to work with from a PICAXE.
This is where I really need some advice. What other methods could you suggest for storing note data for the song? I've extracted the data for the entire song, and can manipulate it into any format required. I just need some means of storing it, such that the PICAXE can read it, whilst preventing the timing of the PICAXE's operations from being affected.
Sorry for the epic post, but all advice would be very much appreciated - it's about time I actually finished a project!
Charlie