Back to homepage

Week 11: Interface and Application Programming

Tasks


1. Making an Interface

So, I still don't have the tuner that I wanted from the input devices week, but at least I'm a step closer.

In a previous week's lecture, GNU Radio was mentioned, and having used GNU Radio this summer for my UROP, I thought it would be cool to at least be able to analyze the frequencies of measured sounds. I, being still a very inexperienced and having-much-to-learn undergraduate, wasn't too sure about a way to from scratch make my own frequency-analyzing user interface. I did know, though, that GNU Radio has QT GUI interfaces including a frequency display ("QT GUI Frequency Sink"), so I thought that if I popped in incoming microphone data (as if it were a signal source) into the frequency sink I could at least see the frequencies of the sound my board was receiving.

GNU Radio allows users to create custom Python blocks, and I wasn't about to get started learning to use Zero MQ in C++, so I decided to try to write a Python source block that takes in data from serial (via PySerial) and makes that a signal source. I made this custom source block take in numbers from the serial and send those as floats through the GNU Radio pipeline (this one being simple).