18/07/2019Â
Agenda:Â
- Work on live streaming of the stereo audio to improve clarity and eliminate x-runs errorsÂ
- 3D print new transceiver holder with gear system to run servo motorÂ
- 3D deign slip ring holderÂ
- Code to include signal strength in rotation of transceiver Â
Â
Task accomplished:Â Â
- Managed to eliminate x-runs errors by using the audio hat module we bought a while back (and thought we would not use!)Â Â
- Soldered and added a switch and LED light in our tank Â
- 3D printed new transceiver holder with gear to run the servo motor and slip ring holderÂ
- Modified our code to extract and use signal strength in rotating transceiverÂ
Â
The beginning of the day was met with several complication as one of our RPIs failed to work (screen black out) after we tried connecting the audio hat to the RPI. We were worried that we damaged the RPI as the undervoltage warning keeps appearing on screen before the RPI shuts down. Previously when we added to the RPI few weeks back, such problems did not happen. We had to reset the entire RPI (which means losing our audio code but fortunately all our other codes are back-up ed in the other RPI and we do remember most of the codes we used for our audio. 😪
After taking quite some time to get the audio to work like previous days, we tried using the audio hat again and the x-runs errors did disappear! Hooray! We managed to succeed in having good quality audio with a minimal lag time of approximately 2 seconds with the elimination of x-runs errors!
We also attempted to solder and add a switch to our robot so that we do not have to disconnect and reconnect the battery each time we want to off and on the robot. We tried adding a LED light to our tank so that whenever the LED lights up, it will signify that the robot is ready to go.
LED light
However, while we did add an LED light in the first place, we eventually removed the light because it was block by the casing and we found other ways to observe whether the tank is ready to be moved (eg when the transceiver finishes its calibration and stop turning or simply by looking at the code at the user’s end). Â
We carried on coding for our servo motor using the following logic. Every time the tank moves away from its position, the transceiver will turn clockwise and if the signal strength gets lower, the servo motor will change direction and the transceiver will turn anticlockwise to attain a higher signal strength until the angle at which the highest signal strength for that location is detected. If the tank is simply moving on the spot, we will use the IMU to realign the transceiver back to its original angle to compensate for the angular displacement during rotation. Â
Our logic of realignment of the transceiver appears to be reasonable but the codes do not always work as we face many problems with the calibration and sometimes lag time when trying to receive the signal strength. We will continue working on this! 🤗🤗🤗