Posts

Showing posts from 2017

Low Latency USB Webcam Streaming from a Raspberry Pi to a Computer

Image
For a robotics project that I am doing I need to create a low latency webcam stream from our robot. I wanted to use a Raspberry Pi and a USB webcam (a Microsoft LiveCam). I googled around for a while and found lots of tutorials to stream with the Raspberry Pi Camera but only a few that were to stream a USB webcam.  Finally I found this tutorial which worked once I adapted it for my webcam and home network. The latency barley noticeable! See this video to see the latency. I will summarize the tutorial with some modification for using a USB webcam instead of a screen capture. Note that you will have to replace the IP address with the IP address of you client computer (the computer which is viewing the stream).

First install gstreamer on the PI
sudo apt-get install gstreamer1.0-tools gstreamer1.0-plugins-good
Then install gstreamer on the client computer. Go to the gstreamer website to find out how to download it for your OS: https://gstreamer.freedesktop.org/download/

Once gstreamer is…

My 2017 Summer Internship at CERN

Image
After an exciting and rewarding summer interning for Adriaan Rijllart at the European Organization for Nuclear Research (CERN) improving a model of the Large Hadron Collider (LHC) accelerator in 2017, this summer I followed up with a project for the actual working accelerator.

Before a research group at CERN using the LHC receives the beam of particles, they receive a series of electronic pulses which convey the current status of beam. These pulses are used to ensure that the scientific equipment is correctly set for the incoming beam of particles. I was tasked with writing software to simulate these pulses to make it possible to test the equipment when there is no incoming particle beam.

For this task, I used a National Instruments cRIO 9068 with Ni 9473 and 9403 modules. The 9473 acts as a digital output module, while the 9403 acts as a digital input module. The cRIO was also connected to a touch screen, so the software could be configured without a computer. The programming was done…