Raspberry Camera API
Back to Robobot
Raspicam
To be used from C++ direct or through openCV.
A rather short raspberry pi camera API is available from https://www.uco.es/investiga/grupos/ava/node/40.
And can be downloaded from https://sourceforge.net/projects/raspicam/files/,
or get the file from sourceforge with no GUI, with (there may be newer versions):
cd ~/Downloads wget --no-check-certificate -O raspicam-0.1.9.zip https://downloads.sourceforge.net/project/raspicam/raspicam-0.1.9.zip?r=https%3A%2F%2Fsourceforge.net%2Fprojects%2Fraspicam%2F%3Fsource%3Dtyp_redirect&ts=1486483484&use_mirror=netix
Once fetched and available on the raspberry, then Unpack and install:
unzip raspicam-0.1.9.zip cd raspicam-0.1.9 mkdir build cd build cmake .. make -j3 sudo make install sudo ldconfig
The library is installed in /usr/local, and therefore to make cmake find it the path needs to be added to startup configuration, in file ~/.bashrc
cd nano ~/.bashrc add at the end: export CMAKE_PREFIX_PATH=/usr/local/lib source ~/.bashrc # to implement export
Test with openCV
raspicam_cv_test
That takes 100 images and saves 3.
Camera streamer
To download the project you will need a source control system called git. It may not be installed on a fresh image. I know it’s not on the lite image. So you may need to install it.
sudo apt-get install git
Now that you have git installed, use it to clone a copy of the mjpg-streamer to your Pi.
git clone https://github.com/jacksonliam/mjpg-streamer.git
After the cloned copy of the mjpeg-stream has been coppied to the raspberry-pi, follow these steps.
cd mjpg-streamer/mjpg-streamer-experimental/ make -j4 # optional CMAKE_BUILD_TYPE=Debug sudo make install
Make a script to start the streamer
cd nano start-stream.sh
copy this into the file (uncomment only one line - the others are examples for other resolutions - edit as desired)
#!/bin/bash #mjpg_streamer -i "input_raspicam.so -y 1600 -x 1200 -fps 5 -rot 90" -o output_http.so mjpg_streamer -i "input_raspicam.so -y 972 -x 1296 -fps 3 -rot=0" -o output_http.so #mjpg_streamer -i "input_raspicam.so -y 600 -x 800 -fps 3 -rot=0" -o output_http.so #mjpg_streamer -i "input_raspicam.so -y 640 -x 480 -fps 5" -o output_http.so
Change the file to be executable
chmod +x start-stream.sh
Start streaming at boot
Start of applications can be controlled by the /etc/rc.local script:
nano /etc/rc.local
add the following lines before 'exit 0' (close to the end)
# start camera streaming su - local /home/local/start-stream.sh &
Copy and 'shift-ctrl-v' will do
Comment the last line (su - local /home/local/start-stream.sh &) if camera streaming should not start.
to stop streaming use (if started)
pkill mjpg_streamer
Watch camera stream
When the robot is on a net connection - cable or wifi - you can watch the stream from a browser
for streaming:
HTTP://jasmin.local:8080/?action=stream
or for a snapshot
HTTP://jasmin.local:8080/?action=snapshot
where jasmin should be replaced with the robot name, or jasmin.local can be replaced with the IP address.