This week has so far been part of the home stretch. I have been working on the NRF24L01 chips with mixed results – while the chips are all wired up and much of the code is written, there appears to be an addressing / initialization of values issue that results in the transceiver and receiver never communicating.
I have gotten some recommendations for a new library and some other approaches and will be working on the issue over the next few days.
We’ve been working tirelessly to integrate all of our subsystems. The imu module and the listener control loop are almost integrated. The physical parts of the staff are all completed, but we still need to put it all together after we finish adding the communications and integrating the code modules. We have also been working on the Final Report intermittently.
Our schedule is now reflected by the schedule presented in the final presentation on Tuesday.
This week has been a grind to finish up. We initially started by making sure the presentation was done by Tuesday. We also have been working very hard to finish up the integration of our code for our IMU module and our main listener control loop. I’ve also finished up soldering everything to a gpio topper for the Raspberry Pi. I also finished 3D printing the 3rd iteration of the staff topper, which now has enough space to fit our pi, battery, imu, and all of our circuitry.
We have a weird bug post-integration that we’ve been tracking down. I’ve mostly been editing the code so it’s easier to track it down. That’s pretty much it; except that happened for about 30 hours this week. Still haven’t finished the AI. What can I say except “integration.” Oh, there’s a cool tool to create Makefiles for you: (http://solver.assistedcoding.eu/makefilegen) that I used because I wasted so much time re-editing it.
Due to this week being Thanksgiving break, we were mostly out of town. However, we’ve still made some progress. A notable advance was figuring out why the IMU wasn’t working – a clock stretching error occurred when the BN0055 was connected to the RPi over I2C. This has thus far been solved by decreasing the baud rate from 100kHz to 1kHz, and we are looking into various other solutions.
We had to sacrifice our plans for including an LED strip, as unfortunately the RPi does not support the use of the AUX output along with the strip, and we felt that the audio feedback would be a more valuable point for the experience (and the project).
Otherwise, we are working on getting our communication chips and display up and running – integration will be down to the wire but all our physical pieces are in place.
This week we all went on break, but as the demo is fast approaching, we’ve still been at it.
This week I have been working with some spare RPis and the NRF Radio Chips to get basic communication codes up and running. Much of my time here is in how to organize the communication – deciding who gets to speak and when, who gets priority, what to do in the case of a data collision, etc.
Next up is to get this up and running and integrated and to work on the display.
This week being Thanksgiving week, I could only work on software stuff because I left for break on Friday. I worked on debugging the sound output on the raspberry pi because for some reason, after trying to get the LED strip to work with the pi, I was unable to play the sound. We’ve decided to drop the LEDs in favor of the sound because we think the sound would be better for the player’s game experience. Also, the raspberry pi does not support the use of the 3.5mm AUX output in addition to the LED strip. With more time and resources, I would switch to using a USB speaker and the lights, but now that it is getting down to the wire, I don’t think I’ll have time.
Last week was Thanksgiving break (unfortunately I had to work in lab for 10 hours straight), but earlier this week I was able to find out that the IMU not working was due to a clock stretching error with the BNO055 when connecting over I2C with the Raspberry Pi. Decreasing baud rate from 100kHz to 1kHz solved the issue of random devices being detected at the very least, as well as the three-level logic issue. I am experimenting with various baud rates to minimize latency. I have also tried some suggestions from the RPi support forum to figure out why one of the voltage directions has been flipped on the SCL and I should be good to go forwards.
This week was particularly busy (the confluence of several major assignments) so this was a slack week for me. I have been attending to the NRF chips and will be working on that for the next week.
Eric has managed to complete fabrication of the staff upper lattice. Unfortunately we did not account for the battery when we designed it, but it was an initial iteration and the next iteration will be roomier to accomodate the Raspberry Pi. Work is still being conducted on the communications system and bugfixing the IMUs. We finally have the issue that the LED strips cannot coexist with the sound system due to a conflict in software. Therefore, the solution would be to have all visual information to the player appear on the display. Audio feedback would be far more important when a player is immersed in the game, in any case.