Have you ever missed a flight? It sucks, doesn't it? It sucks even more when it is a fun flight that you get to jump out of above the fluffy clouds. To add insult to injury, you lose your lift ticket which is a big deal in skydiving community (we use the number of equivalent lift tickets to indicate how much other things are worth; a yardstick for the layman).
The plane we jump out of cost more than $1.3M USD so it is unrealistic to expect it to wait on us. We have to be at the loading area ready to jump by 5 minutes call. Manifest staff make courtesy calls every 5 minutes but they may get too busy with other office duties. My solution will make the automated calls over PA system or for more personable experience it can be a reminder inside the office so staff can make the calls over PA system.
A computer will gather data from the DZ website and send it to Spresense which will have some MP3 files saved. Spresense will play the audio file corresponding to data received. Connection will be established via USB cable which will provide power and data to Spresense which means no soldering or additional wiring is required.
Started with a headless server and used the solution I developed here to connect to DZ's Wi-Fi. I could have used any computer with USB port or even a Raspberry Pi Zero W, but I selected RPi 3 for simplicity. Furthermore, RPi is already used at the DZ. Used Python with Selenium to get the data from online resource and send it via USB cable to Spresense.
Load calls vary greatly, sometimes it is an irritating voice, and sometimes it is the sound of your favorite manifest person saying "Meow Call" instead of "Now Call." For this project I used a free online text to speech service. I saved MP3 files for everything that announcer might say. The standard announcement consists of three part: aircraft, load number, and time till departure.
In this screenshot I'm highlighting known aircraft names in gray. The only file not highlighted in the bottom is the catch all name in case they bring in a helicopter, hot-air balloon, spaceship, blimp, or anything else to jump from. That way they can use Consuela even if they forget to edit the micro SD card of Spresense. Files 1 to 40 highlighted in Yellow are the load numbers. The files highlighted in Blue are for the time remaining. In these files you'll here "Forty Minutes" as opposed to just Forty that you'd here in the file highlighted Yellow.
Loaded the MP3 files to micro SD card, but it didn't work. After a little bit of investigation, I found out that Spresense is kind of picky with which MP3 files to play, but it is in the documents.
The MP3 file must use a sample rate which is supported by the decoder. The MP3 codec support 32000, 44100 and 48000 Hz. Please use a MP3 sample rate converter if you need to change the sample rate.
I used another free online service to save MP3 files as MP3 files and Spresense now is able to play audio files.
For more information on setting up audio for Spresense, please see my other project here.
A simple way to test USB connection is using Serial USB Terminal on your android device. I connected Spresense to OTG Cable to my phone and sent the text of sound files. Optional step, but it could be very helpful in troubleshooting.
In this demo I connected a speaker to Spresense then connected Spresense to RPi 3. Python code started and gathered data from the DZ web page then sent the text to Spresense via USB. Spresense played sound files corresponding to the text received.
After I finished the project and right before submitting to the contest, the DZ decided to upgrade the page. I had to rewrite few lines of code and here is the result.