82 lines
3.5 KiB
Markdown
82 lines
3.5 KiB
Markdown
|
# Camera
|
|||
|
Most models of the RPi have a camera port but pay attention as the RPi Zero has a smaller port and needs a smaller ribbon cable.
|
|||
|
There are two types of camera modules:
|
|||
|
- standard: take pictures in normal light
|
|||
|
- NoIR: without infrared filter, you can take pictures in the dark with an infrared light source
|
|||
|
|
|||
|
## Connect the module
|
|||
|
1. look for the camera module port on your RPi
|
|||
|
2. pull up the edges of the ports plastic clip
|
|||
|
3. insert the camera ribbon cable and make sure the contacts face the ribbon cable connectors
|
|||
|
4. push down the plastic clip into place
|
|||
|
|
|||
|
## Activate your camera
|
|||
|
Power up your RPi and start the config tool with `sudo raspi-config`. Scroll down to "enable camera" and set it to "Yes". Now restart your RPi to load all librarys.
|
|||
|
|
|||
|
## Taking pictures from cli
|
|||
|
Raspbian has it's own librarys to interact with the camera. To take pictures you can use the command `raspistill`. Here is a little list of what is possible:
|
|||
|
- Take a jpg picture (standard): `raspistill -o image.jpg`
|
|||
|
- Take a png picture (or bmp/gif): `raspistill -o image.png -e png`
|
|||
|
- Take a picture without preview: `raspistill -o image.jpg -n`
|
|||
|
- Wait 3000ms to take the picture: `raspistill -o image.jpg -t 3000`
|
|||
|
- set the width and height of the picture: `raspistill -o image.jpg -w 640 -h 480`
|
|||
|
- set the quality of the picture (from 0 to 100%): `raspistill -o image.jpg -q 20`
|
|||
|
- take a series of pictures all 5 seconds for a whole hour (3600000 seconds): `raspistill -o image_%04d.jpg -tl 5000 -t 3600000` (later you can stick it together with ffmpeg to get a movie)
|
|||
|
|
|||
|
## Taking videos from cli
|
|||
|
Next to pictures you can take videos
|
|||
|
- take a video for 5 seconds: `raspivid -o video.h264 -t 50000` (to never end set t to 0)
|
|||
|
- set width and height: `raspivid -o video.h264 -t 50000 -w 1280 -h 720`
|
|||
|
- set the bitrate: `raspivid -o video.h264 -t 50000 -b 3500000`
|
|||
|
- set the framerate: `raspivid -o video.h264 -t 50000 -f 10`
|
|||
|
- send the video stream to sdtout: `raspivid -t 50000 -o - `
|
|||
|
|
|||
|
To convert videos from H264 to mp4 you can use gpac:
|
|||
|
```bash
|
|||
|
sudo apt-get install gpac
|
|||
|
MP4Box -fps 30 -add video.h264 video.mp4
|
|||
|
```
|
|||
|
|
|||
|
## Control the camera with python
|
|||
|
You can control your camera using python libraries (preinstalled on Raspbian).
|
|||
|
|
|||
|
Open an editor and paste the following, save it like `camera.py`.
|
|||
|
```python
|
|||
|
from picamera import PiCamera
|
|||
|
from time import sleep
|
|||
|
|
|||
|
camera = PiCamera()
|
|||
|
|
|||
|
camera.start_preview()
|
|||
|
sleep(5)
|
|||
|
camera.stop_preview()
|
|||
|
```
|
|||
|
The camera should be shown 5 seconds and then close.
|
|||
|
|
|||
|
There are several functions/filters you can use:
|
|||
|
- Rotate (in degree): `camera.rotation = 180`
|
|||
|
- Make the camera preview see-through by setting an alpha level: `camera.start_preview(alpha=200)`
|
|||
|
- Take a picture (it’s important to sleep for at least two seconds before capturing an image because this gives the camera’s sensor time to sense the light levels)
|
|||
|
```python
|
|||
|
camera.start_preview()
|
|||
|
sleep(5)
|
|||
|
camera.capture('/home/pi/Desktop/image.jpg')
|
|||
|
camera.stop_preview()
|
|||
|
```
|
|||
|
- record a video:
|
|||
|
```python
|
|||
|
camera.start_recording('/home/pi/Desktop/video.h264')
|
|||
|
sleep(5)
|
|||
|
camera.stop_recording()
|
|||
|
```
|
|||
|
- change the resolution: `camera.resolution = (2592, 1944)`
|
|||
|
- maximum resolution is 2592x1944 for still photos,
|
|||
|
- maximum resolution is 1920x1080 for video recording,
|
|||
|
- minimum resolution is 64x64
|
|||
|
- change the framerate: `camera.framerate = 15`
|
|||
|
- 0 is minimum
|
|||
|
- 15 is maximum
|
|||
|
- add text to your image: `camera.annotate_text = "Hello world!"`
|
|||
|
|
|||
|
# Source and more
|
|||
|
[RaspberryPi.com](https://www.raspberrypi.com/documentation/accessories/camera.html)
|