We started the day with a great leap of progress. Right off the bat, we found the error in our chocolate squeezer program, and had it working in no time. Unfortunately, the next two stations are still proving to be incredibly stubborn and completely bugging out on us. More developments soon.
Good news and bad news. The good news is that we’ve tracked down the problem. The bad news is that the problem is nigh impossible to fix. The NXT Bluetooth platform is actually a very bad system, constantly dropping signals or not sending/receiving messages. Running the same program in the same situation multiple times may yield different results, simply because our Bluetooth messages might not get through. This is the explanation for our strange, constantly running machines that worked just one trial earlier.
To add an extra element of confusion, the default value of Bluetooth mailboxes is -1. So attempting to run a motor controlling the whipped cream for a time of -1 can result in some ridiculous sundaes. It also makes it very difficult to control the number of sprinkle shakes, etc. We need to find a way to ensure a message is sent and received each and every time if we want a consistent and reliable system. How we do that, exactly, remains to be seen.
After brainstorming a few ideas, we’ve decided to try editing our bowl-bot code wherever a Bluetooth message is sent. Since the bowl-bot always sends the message but it isn’t always received, we are going to try and make a loop that continuously sends the message until the client NXT confirms that it has gotten the number from the host. It may be difficult to have this work smoothly with the rest of the project (waiting at each station for a message to be relayed, confirmed, then processed could get tiresome).
All attempts to make a well communicating system have thus far failed. The client NXTs simply cannot reliably use Bluetooth. No matter how cleverly we code the bowl-bot or the receiver bots, reliability is not an option. However, we have one last ditch effort planned. Instead of a clever loop system, or communication method, we simply plan on checking the message over and over through brute force.
No dice. We are out of ideas here, but somehow we will create a solution. If worse comes to worse, then we may have to switch back to a physical solution (sensors of some sort) instead of Bluetooth. But we will stay the course for the time being.
All in all, today was a very disappointing and frustrating day. Almost no progress was made, and we are no closer to solving our problem than we were yesterday (although we certainly have eliminated many possible solutions!). With any luck we can get it to work soon, if not we may have to abandon the Bluetooth ship and try something else.
We’ve managed to recover to about where we were this morning, with a new Choco-Station program that will hopefully work consistently (unlike this morning’s program.) Here is our new program:
One of our problems ended up being Connection 1, which is aggrevating since it is irrelevant to anything we were doing. By switching to Connection 2, we managed to get things working. Who knows if Connection 1 will be useable ever again. Hopefully, since we need all three!
On a good note, somewhere around lunchtime we got the song to run while bowl-bot drove along the course. All in all, a frustrating day but some good stuff happening.
Day 9 Conclusions:
- -2 Days in a row of little progress is very frustrating.
- -However, we are slowly revamping everything so that it will eventually work. In the long run, things should come together.
To Do for tomorrow: