Mempersiapkan Kamera Raspberry Pi (Pi Cam)

· 9 menit untuk membaca
Mempersiapkan Kamera Raspberry Pi
Mempersiapkan Kamera Raspberry Pi

Raspberry Pi 3 Model B+ sudah dilengkapi dengan interface DSI (Display Serial Interface) dan CSI (Camera Serial Interface). Untuk Raspberry Pi 3 Model B+ anda bisa langsung menggunakan kabel ribon 22 pin agar terkoneksi dengan kamera. Khusus Raspberry Pi Zero, saat ini sudah terdapat Interface CSI, anda bisa menggunakan kabel ribon 14 pin to 22 pin.

Raspberry Pi Cam Original 5MP
Raspberry Pi Cam Original 5MP
Kamera dengan FL tinggi dan IR
Kamera dengan FL tinggi dan IR

Aplikasi kamera Raspberry Pi sangat luas. Raspberry Pi bisa digunakan hanya untuk jeprat jepret foto, merekam video, kamera cctv hingga ke aplikasi kamera pintar.

Pada artikel kali ini kita akan membahas tentang mempersiapkan kamera raspberry Pi dan penggunaannya dengan beberapa perintah dasar.

Persiapan

Berikut adalah beberapa alat yang harus di persiapkan.

  • Unit Raspberry Pi Model B+ fresh install.
  • Pi Camera
  • Kabel Ribbon 22 Pin

Jika anda menggunakan Raspberry Pi Zero, anda bisa menggunakan kabel ribon 15 to 22 pin. Apabila anda membeli casing original Pi Zero, anda akan mendapatkan kabel ini.

Kabel Ribbon 15 to 22 pin
Kabel Ribbon 15 to 22 pin

Pemasangan Kamera

Pasang kabel ribon kamera ke interface CSI seperti pada gambar di bawah ini.

Pemasangan Kamera di Port CSI
Pemasangan Kamera di Port CSI

Konfigurasi

Jika anda baru saja menginstall Raspberry Pi anda. Anda harus mengaktifkan kamera terlebih dahulu dari konfigurasi alat.

sudo raspi-config

Pilih pada Interfacing Option lalu P1 Camera lalu Yes atau Ya.

Interfacing Option
Interfacing Option
P1 Camera
P1 Camera

Jika sudah selesai pemasangan dan konfigurasi, selanjutnya anda bisa langsung menggunakan Pi Camera untuk mendapatkan foto, atau merekam video.

Menggunakan Kamera

Raspbian menyediakan perintah dasar untuk melakukan take foto dan merekam video. Anda bisa mengeksekusi dari terminal ataupun ssh.

Mengcapture Foto

Untuk melakukan capture foto, anda bisa menggunakan perintah raspistill. Contohnya seperti di bawah ini.

raspistill -O fotopertamaku.jpg

Perintah di atas akan mengambil gambar dari kamera dan di simpan dengan nama file fotopertamaku.jpg. File akan disimpan di direktori saat ini. Untuk menyimpan foto di direkrori yang anda tentukan anda bisa langsung mengetikan nama direktorinya. Misalnya kita akan mengambil gambar dari kamera dan di simpan di folder ~/Pictures. Maka, ketik perintah berikut.

raspistill -O ~/Pictures/fotoku1.jpg

raspistill juga menyediakan vertikal flip dan horizontal flip. Anda bisa mencoba dengan perintah berikut, dan lihat perbedaan hasilnya.

raspistill -vf -o ~/Pictures/vf.jpg
raspistill -hf -o ~/Pictures/hf.jpg

Masih banyak opsi-opsi lainnya dengan perintah raspistill ini. Untuk mengetahui semua opsi yang tersedia, anda bisa mengetikan perintah di bawah ini.

raspistill 2>&1 | less

Semua opsi yang tersedia di raspistill adalah:

"raspistill" Camera App (commit 7cbfbd38d982 Tainted)

Runs camera for specific time, and take JPG capture at end if requested

usage: raspistill [options]

Image parameter commands

-q, --quality	: Set jpeg quality <0 to 100>
-r, --raw	: Add raw bayer data to jpeg metadata
-l, --latest	: Link latest complete image to filename <filename>
-t, --timeout	: Time (in ms) before takes picture and shuts down (if not specified, set to 5s)
-th, --thumb	: Set thumbnail parameters (x:y:quality) or none
-d, --demo	: Run a demo mode (cycle through range of camera options, no capture)
-e, --encoding	: Encoding to use for output file (jpg, bmp, gif, png)
-x, --exif	: EXIF tag to apply to captures (format as 'key=value') or none
-tl, --timelapse	: Timelapse mode. Takes a picture every <t>ms. %d == frame number (Try: -o img_%04d.jpg)
-fp, --fullpreview	: Run the preview using the still capture resolution (may reduce preview fps)
-k, --keypress	: Wait between captures for a ENTER, X then ENTER to exit
-s, --signal	: Wait between captures for a SIGUSR1 or SIGUSR2 from another process
-g, --gl	: Draw preview to texture instead of using video render component
-gc, --glcapture	: Capture the GL frame-buffer instead of the camera image
-bm, --burst	: Enable 'burst capture mode'
-dt, --datetime	: Replace output pattern (%d) with DateTime (MonthDayHourMinSec)
-ts, --timestamp	: Replace output pattern (%d) with unix timestamp (seconds since 1970)
-fs, --framestart	: Starting frame number in output pattern(%d)
-rs, --restart	: JPEG Restart interval (default of 0 for none)

GL parameter commands

-gs, --glscene	: GL scene square,teapot,mirror,yuv,sobel,vcsm_square
-gw, --glwin	: GL window settings <'x,y,w,h'>

Common Settings commands

-?, --help	: This help information
-w, --width	: Set image width <size>
-h, --height	: Set image height <size>
-o, --output	: Output filename <filename> (to write to stdout, use '-o -'). If not specified, no file is saved
-v, --verbose	: Output verbose information during run
-cs, --camselect	: Select camera <number>. Default 0
-md, --mode	: Force sensor mode. 0=auto. See docs for other modes available
-gps, --gpsdexif	: Apply real-time GPS information to output (e.g. EXIF in JPG, annotation in video (requires libgps.so.22)

Preview parameter commands

-p, --preview	: Preview window settings <'x,y,w,h'>
-f, --fullscreen	: Fullscreen preview mode
-op, --opacity	: Preview window opacity (0-255)
-n, --nopreview	: Do not display a preview window

Image parameter commands

-sh, --sharpness	: Set image sharpness (-100 to 100)
-co, --contrast	: Set image contrast (-100 to 100)
-br, --brightness	: Set image brightness (0 to 100)
-sa, --saturation	: Set image saturation (-100 to 100)
-ISO, --ISO	: Set capture ISO
-vs, --vstab	: Turn on video stabilisation
-ev, --ev	: Set EV compensation - steps of 1/6 stop
-ex, --exposure	: Set exposure mode (see Notes)
-fli, --flicker	: Set flicker avoid mode (see Notes)
-awb, --awb	: Set AWB mode (see Notes)
-ifx, --imxfx	: Set image effect (see Notes)
-cfx, --colfx	: Set colour effect (U:V)
-mm, --metering	: Set metering mode (see Notes)
-rot, --rotation	: Set image rotation (0-359)
-hf, --hflip	: Set horizontal flip
-vf, --vflip	: Set vertical flip
-roi, --roi	: Set region of interest (x,y,w,d as normalised coordinates [0.0-1.0])
-ss, --shutter	: Set shutter speed in microseconds
-awbg, --awbgains	: Set AWB gains - AWB mode must be off
-drc, --drc	: Set DRC Level (see Notes)
-st, --stats	: Force recomputation of statistics on stills capture pass
-a, --annotate	: Enable/Set annotate flags or text
-3d, --stereo	: Select stereoscopic mode
-dec, --decimate	: Half width/height of stereo image
-3dswap, --3dswap	: Swap camera order for stereoscopic
-ae, --annotateex	: Set extra annotation parameters (text size, text colour(hex YUV), bg colour(hex YUV), justify, x, y)
-ag, --analoggain	: Set the analog gain (floating point)
-dg, --digitalgain	: Set the digital gain (floating point)
-set, --settings	: Retrieve camera settings and write to stdout


Notes

Exposure mode options :
off,auto,night,nightpreview,backlight,spotlight,sports,snow,beach,verylong,fixedfps,antishake,fireworks

Flicker avoid mode options :
off,auto,50hz,60hz

AWB mode options :
off,auto,sun,cloud,shade,tungsten,fluorescent,incandescent,flash,horizon

Image Effect mode options :
none,negative,solarise,sketch,denoise,emboss,oilpaint,hatch,gpen,pastel,watercolour,film,blur,saturation,colourswap,washedout,posterise,colourpoint,colourbalance,cartoon

Metering Mode options :
average,spot,backlit,matrix

Dynamic Range Compression (DRC) options :
off,low,med,high

Merekam Video

Untuk melakukan perekaman video, anda bisa menggunakan perintah raspivid. Contoh, gunakan perintah berikut.

raspivid -o ~/Videos/videoku.h264

Perintah diatas akan merekam video selama 5 detik dan di simpan di folder ~/Videos dengan nama videoku.h264. Anda bisa membuka folder tersebut dan memainkan video dengan VLC.

Untuk waktu yang spesifik, misal 10 detik, anda bisa menggunakan opsi -t diikuti dengan jumlah mili detik. Misalnya pada perintah di bawah ini.

raspivid -o ~/Videos/video10s.h264 -t 10000

Perintah diatas akan merekam video selama 10 detik (10000 ms) dan akan di simpan di folder ~/Videos/

Untuk mendapatkan opsi lainnya anda bisa menggunakan perintah di bawah ini.

raspivid 2>&1 | less

Dan berikut adalah opsi yang tersedia pada perintah raspivid.

"raspivid" Camera App (commit 7cbfbd38d982 Tainted)

Display camera output to display, and optionally saves an H264 capture at requested bitrate


usage: raspivid [options]

Image parameter commands

-b, --bitrate	: Set bitrate. Use bits per second (e.g. 10MBits/s would be -b 10000000)
-t, --timeout	: Time (in ms) to capture for. If not specified, set to 5s. Zero to disable
-d, --demo	: Run a demo mode (cycle through range of camera options, no capture)
-fps, --framerate	: Specify the frames per second to record
-e, --penc	: Display preview image *after* encoding (shows compression artifacts)
-g, --intra	: Specify the intra refresh period (key frame rate/GoP size). Zero to produce an initial I-frame and then just P-frames.
-pf, --profile	: Specify H264 profile to use for encoding
-td, --timed	: Cycle between capture and pause. -cycle on,off where on is record time and off is pause time in ms
-s, --signal	: Cycle between capture and pause on Signal
-k, --keypress	: Cycle between capture and pause on ENTER
-i, --initial	: Initial state. Use 'record' or 'pause'. Default 'record'
-qp, --qp	: Quantisation parameter. Use approximately 10-40. Default 0 (off)
-ih, --inline	: Insert inline headers (SPS, PPS) to stream
-sg, --segment	: Segment output file in to multiple files at specified interval <ms>
-wr, --wrap	: In segment mode, wrap any numbered filename back to 1 when reach number
-sn, --start	: In segment mode, start with specified segment number
-sp, --split	: In wait mode, create new output file for each start event
-c, --circular	: Run encoded data through circular buffer until triggered then save
-x, --vectors	: Output filename <filename> for inline motion vectors
-if, --irefresh	: Set intra refresh type
-fl, --flush	: Flush buffers in order to decrease latency
-pts, --save-pts	: Save Timestamps to file for mkvmerge
-cd, --codec	: Specify the codec to use - H264 (default) or MJPEG
-lev, --level	: Specify H264 level to use for encoding
-r, --raw	: Output filename <filename> for raw video
-rf, --raw-format	: Specify output format for raw video. Default is yuv
-l, --listen	: Listen on a TCP socket
-stm, --spstimings	: Add in h.264 sps timings
-sl, --slices	: Horizontal slices per frame. Default 1 (off)


H264 Profile options :
baseline,main,high

H264 Level options :
4,4.1,4.2

H264 Intra refresh options :
cyclic,adaptive,both,cyclicrows

Raw output format options :
yuv,rgb,gray

Raspivid allows output to a remote IPv4 host e.g. -o tcp://192.168.1.2:1234or -o udp://192.168.1.2:1234
To listen on a TCP port (IPv4) and wait for an incoming connection use the -l option
e.g. raspivid -l -o tcp://0.0.0.0:3333 -> bind to all network interfaces,
raspivid -l -o tcp://192.168.1.1:3333 -> bind to a certain local IPv4 port

Common Settings commands

-?, --help	: This help information
-w, --width	: Set image width <size>
-h, --height	: Set image height <size>
-o, --output	: Output filename <filename> (to write to stdout, use '-o -'). If not specified, no file is saved
-v, --verbose	: Output verbose information during run
-cs, --camselect	: Select camera <number>. Default 0
-md, --mode	: Force sensor mode. 0=auto. See docs for other modes available
-gps, --gpsdexif	: Apply real-time GPS information to output (e.g. EXIF in JPG, annotation in video (requires libgps.so.22)

Preview parameter commands

-p, --preview	: Preview window settings <'x,y,w,h'>
-f, --fullscreen	: Fullscreen preview mode
-op, --opacity	: Preview window opacity (0-255)
-n, --nopreview	: Do not display a preview window

Image parameter commands

-sh, --sharpness	: Set image sharpness (-100 to 100)
-co, --contrast	: Set image contrast (-100 to 100)
-br, --brightness	: Set image brightness (0 to 100)
-sa, --saturation	: Set image saturation (-100 to 100)
-ISO, --ISO	: Set capture ISO
-vs, --vstab	: Turn on video stabilisation
-ev, --ev	: Set EV compensation - steps of 1/6 stop
-ex, --exposure	: Set exposure mode (see Notes)
-fli, --flicker	: Set flicker avoid mode (see Notes)
-awb, --awb	: Set AWB mode (see Notes)
-ifx, --imxfx	: Set image effect (see Notes)
-cfx, --colfx	: Set colour effect (U:V)
-mm, --metering	: Set metering mode (see Notes)
-rot, --rotation	: Set image rotation (0-359)
-hf, --hflip	: Set horizontal flip
-vf, --vflip	: Set vertical flip
-roi, --roi	: Set region of interest (x,y,w,d as normalised coordinates [0.0-1.0])
-ss, --shutter	: Set shutter speed in microseconds
-awbg, --awbgains	: Set AWB gains - AWB mode must be off
-drc, --drc	: Set DRC Level (see Notes)
-st, --stats	: Force recomputation of statistics on stills capture pass
-a, --annotate	: Enable/Set annotate flags or text
-3d, --stereo	: Select stereoscopic mode
-dec, --decimate	: Half width/height of stereo image
-3dswap, --3dswap	: Swap camera order for stereoscopic
-ae, --annotateex	: Set extra annotation parameters (text size, text colour(hex YUV), bg colour(hex YUV), justify, x, y)
-ag, --analoggain	: Set the analog gain (floating point)
-dg, --digitalgain	: Set the digital gain (floating point)
-set, --settings	: Retrieve camera settings and write to stdout


Notes

Exposure mode options :
off,auto,night,nightpreview,backlight,spotlight,sports,snow,beach,verylong,fixedfps,antishake,fireworks

Flicker avoid mode options :
off,auto,50hz,60hz

AWB mode options :
off,auto,sun,cloud,shade,tungsten,fluorescent,incandescent,flash,horizon

Image Effect mode options :
none,negative,solarise,sketch,denoise,emboss,oilpaint,hatch,gpen,pastel,watercolour,film,blur,saturation,colourswap,washedout,posterise,colourpoint,colourbalance,cartoon

Metering Mode options :
average,spot,backlit,matrix

Dynamic Range Compression (DRC) options :
off,low,med,high

Kesimpulan

Penggunaan kamera di Raspberry Pi sangatlah mudah. Raspbian sudah menyediakan perintah yang lengkap untuk pengambilan gambar dan perekaman video. Aplikasi kamera raspberry pi bisa di gunakan untuk kamera cctv, publish ke youtube dengan rstp, dan bahkan bisa di buat kamera pintar seperti untuk pengenalan objek dan pengenalan wajah.

Ikuti terus TeknoTut untuk mendapatkan artikel teknologi berkualitas.