Please note that User Registration has been temporarily disabled due to a recent increase in automated registrations. If anyone needs an account, please request one here: RequestAccount. Thanks for your patience!--Wmat (talk)
Please email User:Wmat if you experience any issues with the Request Account form.

Difference between revisions of "ECE497 Project: PS EYE QT"

From eLinux.org
Jump to: navigation, search
Line 13: Line 13:
  
 
This project turned out to be a lot more difficult then initially anticipated. Although it would be nice for this project to run solely on the beagle it is very interesting to discover all of the possibilities of utilizing netcat between the beagle and host.
 
This project turned out to be a lot more difficult then initially anticipated. Although it would be nice for this project to run solely on the beagle it is very interesting to discover all of the possibilities of utilizing netcat between the beagle and host.
 
  
 
== Installation Instructions ==
 
== Installation Instructions ==
 +
* This is the [https://github.com/ github] path to our project: https://github.com/harrisgw/ECE580-DisplayAudioWaveforms .
 +
 +
Every package needed on the beagle should already be there with the current image we are working with.
 +
Start by cloning the git directory on the host computer:
 +
<pre>
 +
user@host:~$ git clone git@github.com:harrisgw/ECE580-DisplayAudioWaveforms.git
 +
</pre>
 +
Then go into this directory and view all the files
 +
<pre>
 +
user@host:~$cd ECE580-DisplayAudioWaveforms
 +
user@host:~/ECE580-DisplayAudioWaveforms$ ls
 +
Beagle  driveGnuPlotStreams.pl  Host.sh  README
 +
</pre>
 +
The folder Beagle now needs to be copied to the beagle. In this example 10.0.0.13 is the IP address of the beagle replace with your beagles IP address:
 +
<pre>
 +
user@host:~/ECE580-DisplayAudioWaveforms$ scp -r Beagle/ root@10.0.0.13:.
 +
root@10.0.0.13's password:
 +
audio_input_output.h                            100%  521    0.5KB/s  00:00   
 +
Makefile                                        100% 6923    6.8KB/s  00:00   
 +
Beagle.sh                                      100%  56    0.1KB/s  00:00   
 +
audio_input_output.c                            100%  12KB  11.7KB/s  00:00   
 +
debug.h                                        100%  741    0.7KB/s  00:00   
 +
audio_thread.h                                  100%  447    0.4KB/s  00:00   
 +
audio_process.c                                100%  879    0.9KB/s  00:00   
 +
audio_process.h                                100%  98    0.1KB/s  00:00   
 +
app_DEBUG.Beagle                                100%  23KB  23.4KB/s  00:00   
 +
main.c                                          100% 1806    1.8KB/s  00:00   
 +
audio_thread.c                                  100% 9553    9.3KB/s  00:00
 +
</pre>
 +
The Beagle folder should now be on your beagleboard. Check and then enter that folder:
 +
<pre>
 +
root@beagleboard:~# ls
 +
Beagle a.out   busybox driveGnuPlotStreams.pl exercises  sinuses.pl
 +
Desktop  autogain  byobu-4.25 esc-gst network
 +
Old bin   c6run_build esc-media qt
 +
root@beagleboard:~# cd Beagle
 +
root@beagleboard:~/Beagle# ls
 +
Beagle.sh   audio_input_output.c audio_process.h  debug.h
 +
Makefile   audio_input_output.h audio_thread.c main.c
 +
app_DEBUG.Beagle  audio_process.c audio_thread.h
 +
</pre>
 +
Now that that is all set up we need to get the gnuplot package on the host. This should be all you need to do:
 +
<pre>
 +
user@host:~/ECE580-DisplayAudioWaveforms$ sudo apt-get install gnuplot
 +
</pre>
 +
Now everything should be ready
  
* This is the [https://github.com/ github] path to our project: https://github.com/harrisgw/ECE580-DisplayAudioWaveforms . 
+
* Note: The PS Eye should be attached to the Beagle board and both the host computer and beagle should be on the same Internet network
 
+
 
+
* Include any additional packages installed via '''opkg'''.
+
* Include kernel mods.
+
* If there is extra hardware needed, include links to where it can be obtained.
+
  
 
== User Instructions ==
 
== User Instructions ==
 
+
After setting up everything on the host and Beagle, its time to see if everything works.
Once everything is installed, how do you use the program?  Give details here, so if you have a long user manual, link to it here.
+
First run the Beagle.sh script on the Beagle board:
 +
<pre>
 +
root@beagleboard:~/Beagle# ./Beagle.sh
 +
</pre>
 +
Then on the host run the Host.sh script, which will ask a series of questions:
 +
<pre>
 +
user@host:~/ECE580-DisplayAudioWaveforms$ ./Host.sh
 +
How many streams (enter:1 or 2)?
 +
2
 +
Would you like those streams in 1 window or 2 windows? (enter:1 or 2)
 +
2
 +
How many samples per window?
 +
100
 +
Enter Minimum Y axis:
 +
-10000
 +
Enter Maximum Y axis:
 +
10000
 +
Enter window width:
 +
500
 +
Enter window height:
 +
500
 +
Enter IP address of Beagle:
 +
10.0.0.13
 +
</pre>
 +
If everything worked you should now see 2 plots of audio that are from the Beagle board being displayed on the host computer.
 +
To quit the plots just push ctrl-c in the terminal window of either the beagle or the host.
  
 
== Highlights ==
 
== Highlights ==

Revision as of 21:37, 12 February 2012


Team members: Mona Yan, Greg Harrison

Executive Summary

For our Final Project we wanted to be able to capture audio from the PlayStation Eye microphone array and then be able to display the audio waveforms all on the beagle. Initially we set out to display the waveforms in Qt using Qwt, which was later proved to be more difficult than initiall anticipated due to limitations on the Beagle and neither of us having prior C++ programming experience. The next thought was to try to use GnuPlot to try to plot the audio data. GnuPlot was really designed to produce static plots of information, not plots that were in realtime. We were able however to find different ways to "force" GnuPlot to plot the live data with the help of a clever script written by Thanassis Tsiodras, and then also edited by Andreas Bernauer which can be found here. When we implemented this script with our audio data on the beagle it still wasn't as realtime as we would have liked it to be due to the capabilities of the beagle, so we then had the idea to send the data back to a host computer which would then have the processing capability to produce the results we were after.

We currently have working plots of audio waveforms for channel1 and channel2 of the PS Eye microphone array. These plots are displayed on a host computer with the data being sent from the beagle via netcat.

This project turned out to be a lot more difficult then initially anticipated. Although it would be nice for this project to run solely on the beagle it is very interesting to discover all of the possibilities of utilizing netcat between the beagle and host.

Installation Instructions

Every package needed on the beagle should already be there with the current image we are working with. Start by cloning the git directory on the host computer:

user@host:~$ git clone git@github.com:harrisgw/ECE580-DisplayAudioWaveforms.git

Then go into this directory and view all the files

user@host:~$cd ECE580-DisplayAudioWaveforms
user@host:~/ECE580-DisplayAudioWaveforms$ ls
Beagle  driveGnuPlotStreams.pl  Host.sh  README

The folder Beagle now needs to be copied to the beagle. In this example 10.0.0.13 is the IP address of the beagle replace with your beagles IP address:

user@host:~/ECE580-DisplayAudioWaveforms$ scp -r Beagle/ root@10.0.0.13:.
root@10.0.0.13's password: 
audio_input_output.h                            100%  521     0.5KB/s   00:00    
Makefile                                        100% 6923     6.8KB/s   00:00    
Beagle.sh                                       100%   56     0.1KB/s   00:00    
audio_input_output.c                            100%   12KB  11.7KB/s   00:00    
debug.h                                         100%  741     0.7KB/s   00:00    
audio_thread.h                                  100%  447     0.4KB/s   00:00    
audio_process.c                                 100%  879     0.9KB/s   00:00    
audio_process.h                                 100%   98     0.1KB/s   00:00    
app_DEBUG.Beagle                                100%   23KB  23.4KB/s   00:00    
main.c                                          100% 1806     1.8KB/s   00:00    
audio_thread.c                                  100% 9553     9.3KB/s   00:00 

The Beagle folder should now be on your beagleboard. Check and then enter that folder:

root@beagleboard:~# ls
Beagle	 a.out	   busybox	driveGnuPlotStreams.pl	exercises  sinuses.pl
Desktop  autogain  byobu-4.25	esc-gst			network
Old	 bin	   c6run_build	esc-media		qt
root@beagleboard:~# cd Beagle
root@beagleboard:~/Beagle# ls
Beagle.sh	  audio_input_output.c	audio_process.h  debug.h
Makefile	  audio_input_output.h	audio_thread.c	 main.c
app_DEBUG.Beagle  audio_process.c	audio_thread.h

Now that that is all set up we need to get the gnuplot package on the host. This should be all you need to do:

user@host:~/ECE580-DisplayAudioWaveforms$ sudo apt-get install gnuplot

Now everything should be ready

  • Note: The PS Eye should be attached to the Beagle board and both the host computer and beagle should be on the same Internet network

User Instructions

After setting up everything on the host and Beagle, its time to see if everything works. First run the Beagle.sh script on the Beagle board:

root@beagleboard:~/Beagle# ./Beagle.sh

Then on the host run the Host.sh script, which will ask a series of questions:

user@host:~/ECE580-DisplayAudioWaveforms$ ./Host.sh 
How many streams (enter:1 or 2)?
2
Would you like those streams in 1 window or 2 windows? (enter:1 or 2)
2
How many samples per window?
100
Enter Minimum Y axis:
-10000
Enter Maximum Y axis:
10000
Enter window width:
500
Enter window height:
500
Enter IP address of Beagle:
10.0.0.13

If everything worked you should now see 2 plots of audio that are from the Beagle board being displayed on the host computer. To quit the plots just push ctrl-c in the terminal window of either the beagle or the host.

Highlights

Here is where you brag about what your project can do.

Consider including a YouTube demo.

Theory of Operation

Give a high level overview of the structure of your software. Are you using GStreamer? Show a diagram of the pipeline. Are you running multiple tasks? Show what they do and how they interact.

Work Breakdown

List the major tasks in your project and who did what.

Also list here what doesn't work yet and when you think it will be finished and who is finishing it.

Conclusions

Give some concluding thoughts about the project. Suggest some future additions that could make it even more interesting.