Perancangan Sistem Pengontrol Gerak Kamera CCTV.

PERANCANGAN SISTEM PENGONTROL GERAK KAMERA CCTV

Arief Budianto 0727039
Jurusan Sistem Komputer, Fakultas Teknik, Universitas Kristen Maranatha
Jalan Prof. Drg. Suria Sumantri 65
Bandung 40164

ABSTRAK
Kamera CCTV adalah kamera video yang dapat di gunakan untuk mengirimkan
sinyal dari sebuah tempat tertentu, ke satu set monitor. CCTV ini sering
digunakan untuk pengawasan di daerah-daerah yang mungkin perlu pemantauan
seperti bank, kasino, bandara, instalasi militer, dan toko. Kamera ini juga
merupakan alat yang penting untuk pendidikan jarak jauh. Pada tugas akhir ini,
sistem kamera CCTV ini selain dapat digunakan untuk fungsi tersebut, sistem
kamera CCTV ini juga dirancang agar dapat bergerak ke kanan dan kiri karena
menggunakan motor stepper, serta dapat memfoto dengan interval dan waktu
yang sudah ditentukan. Penggunaan sistem pengontrolan kamera CCTV ini
digunakan untuk pengawasan keadaan suatu rumah yang kosong. Yang mampu
membantu pemilik rumah untuk mengawasi keadaan dari rumah tanpa harus
berada di lokasi tersebut dengan melihat hasilnya yang berupa foto dan video.


i
Universitas Kristen Maranatha

THE DESIGN OF CCTV CAMERA MOVEMENT CONTROL SYSTEM
Arief Budianto 0727039
Jurusan Sistem Komputer, Fakultas Teknik, Universitas Kristen Maranatha
Jalan Prof. Drg. Suria Sumantri 65
Bandung 40164

ABSTRACT
CCTV cameras are video cameras that can be used to send signals from a
particular place, to a set of monitors. CCTV is often used for surveillance in areas
which may need monitoring such as banks, casinos, airports, military
installations, and shop. This camera is also an important tool for distance
education. In this final report, this CCTV camera system is can be used in
addition to these functions, the CCTV camera system is also designed to be able to
move to the right and left because it uses stepper motors, and can be
photographed picture with the interval and time specified. Use of this CCTV
camera control systems used for monitoring state of a house is empty. That can
help home owners to monitor the state of the house without having to be in that

location by looking at the results in the form of photos and video.

ii
Universitas Kristen Maranatha

DAFTAR ISI

Abstrak ................................................................................................................ i
Abstract ............................................................................................................... ii
Kata Pengantar .................................................................................................... iii
Daftar Isi.............................................................................................................. vi
Daftar Gambar..................................................................................................... ix

BAB I PENDAHULUAN
1.1. Latar Belakang ............................................................................................. 1
1.2. Identifikasi Masalah ..................................................................................... 2
1.3. Tujuan Penulisan .......................................................................................... 2
1.4. Pembatasan Masalah .................................................................................... 2
1.5. Sistematika Penulisan................................................................................... 3


BAB II LANDASAN TEORI
2.1. Borland Delphi 7 .......................................................................................... 4
2.1.1. Menginstall Delphi 7 ..................................................................... 6
2.2. Motor Stepper............................................................................................... 7
2.2.1. Half Stepping................................................................................. 11
2.2.2. Tipe Motor Stepper ....................................................................... 11
2.2.3. Variabel Reluktansi Motor ............................................................ 11
2.2.4. Unipolar Motor Stepper ................................................................ 13
2.2.5. Bipolar Motor Stepper................................................................... 15
2.2.6. Keunggulan Motor Stepper ........................................................... 17
2.2.7. Komponen Motor Stepper ............................................................. 17

vi
Universitas Kristen Maranatha

2.2.8. Prinsip Kerja Motor Stepper ......................................................... 18
2.2.9. Sudut Langkah Motor Stepper ...................................................... 18
2.2.10. Torsi Motor Stepper .................................................................... 19
2.3. Parallel port ................................................................................................. 21
2.3.1. Penjelasan Umum Parallel port .................................................... 23

2.3.2. Daftar PIN DB25 dan Centronics ................................................. 24
2.3.3. Alamat-alamat Parallel port ......................................................... 26
2.3.4. Register-register Parallel port ...................................................... 27
2.3.5. Mode-mode Parallel port Dalam Bios ......................................... 28
2.4. ULN 2803..................................................................................................... 30
2.5. Modul INPOUT32.dll .................................................................................. 31

BAB III PERANCANGAN DAN PEMODELAN
3.1. Diagram Blok ............................................................................................... 32
3.2. Diagram Alir Program Utama ...................................................................... 33
3.3. Diagram Alir Proogram Capture ................................................................. 34
3.4. Diagram Alir Program Video Record........................................................... 36
3.5. Merancang Hardware .................................................................................. 37
3.6. Merancang Interface Program Utama .......................................................... 39
3.7. Merancang Interface Program Capture ....................................................... 44
3.8. Merancang Interface Program Video record................................................ 46

BAB IV HASIL DAN PEMBAHASAN
4.1. Tampilan Interface Program Utama............................................................. 48
4.2. Fungsi Dan Menu Dari Program Capture .................................................... 50

4.2.1. Menu Devices ................................................................................ 50
4.2.2. Area Source ................................................................................... 51

vii
Universitas Kristen Maranatha

4.2.3. Area Capture ................................................................................. 51
4.2.4. Rotation Pada Program Capture ................................................... 52
4.2.5. Fungsi Date, Time, dan Interval.................................................... 53
4.2.6. Tombol-tombol Fungsi Pada Program Capture ............................ 54
4.3. Fungsi Dan Menu Dari Program Video record ............................................ 57
4.3.1. Menu Devices Pada Program Video record .................................. 57
4.3.2. Rotation Pada Program Video record ........................................... 57
4.3.3. Cara Merekam Video..................................................................... 58

BAB V KESIMPULAN DAN SARAN
5.1. Kesimpulan .................................................................................................. 61
5.2. Saran............................................................................................................. 61

DAFTAR PUSTAKA ........................................................................................ 62


LAMPIRAN-LAMPIRAN
LAMPIRAN A .................................................................................................... A-1
LAMPIRAN B .................................................................................................... B-1
LAMPIRAN C ................................................................................................. ...C-1

viii
Universitas Kristen Maranatha

DAFTAR GAMBAR

Gambar 2.1. Borland Delphi 7 .................................................................................. 4
Gambar 2.2. Motor Stepper....................................................................................... 7
Gambar 2.3. Medan Magnet Yang Ditimbulkan Kumparan ..................................... 8
Gambar 2.4. Stepper One Phase On ......................................................................... 9
Gambar 2.5. Stepper Two Phase On ......................................................................... 10
Gambar 2.6. Variabel Reluktansi motor ................................................................... 12
Gambar 2.7. Data Dengan Urutan 1 .......................................................................... 12
Gambar 2.8. Unipolar Stepper Motor ....................................................................... 13
Gambar 2.9. Urutan 2 Data Untuk Motor Stepper dengan Tipe Unipolar (torsi

normal) .............................................................................................. 14
Gambar 2.10. Urutan 3 Data Motor Stepper Tipe Unipolar (torsi besar) ................. 14
Gambar 2.11. Bipolar Motor Stepper ....................................................................... 15
Gambar 2.12. Urutan Data Motor Stepper Tipe Bipolar .......................................... 16
Gambar 2.13. Sudut Langkah Motor Stepper ........................................................... 18
Gambar 2.14. Torsi Fiksi .......................................................................................... 19
Gambar 2.15. Initial torsi 1 ....................................................................................... 19
Gambar 2.16. Initial Torsi 2...................................................................................... 20
Gambar 2.17. Initial Torsi 3...................................................................................... 20
Gambar 2.18. Parallel port ....................................................................................... 20
Gambar 2.19. IC ULN 2803 ...................................................................................... 30
Gambar 3.1. Diagram Blok ....................................................................................... 32
Gambar 3.2. Diagram Alir Program Utama .............................................................. 33
ix
Universitas Kristen Maranatha

Gambar 3.3. Diagram Alir Program Capture............................................................ 34
Gambar 3.4. Diagram Alir Program Video Record ................................................... 36
Gambar 3.5. Desain Hardware ................................................................................. 37
Gambar 3.6. Diagram Skematik ................................................................................ 38

Gambar 3.7. New Application ................................................................................... 39
Gambar 3.8. Form Designer ..................................................................................... 39
Gambar 3.9. Toolbars Delphi.................................................................................... 40
Gambar 3.10. Desain Program Utama ...................................................................... 41
Gambar 3.11. Tambah MainMenu1 .......................................................................... 41
Gambar 3.12. Object Inspector ................................................................................. 42
Gambar 3.13. Save As ............................................................................................... 43
Gambar 3.14. Save Project........................................................................................ 43
Gambar 3.15. New Form ........................................................................................... 44
Gambar 3.16. Tampilan Program Capture................................................................ 44
Gambar 3.17. DSPack ............................................................................................... 45
Gambar 3.18. Toolbar DSPack ................................................................................. 45
Gambar 3.19. Save Program Capture ....................................................................... 46
Gambar 3.20. Create New Form ............................................................................... 46
Gambar 3.21. Tampilan Program Video Record ....................................................... 47
Gambar 3.22. Save Program Video Record............................................................... 47
Gambar 4.1. Tampilan Program Utama .................................................................... 48
Gambar 4.2. Subprogram Dari Program Utama........................................................ 49
Gambar 4.3. Interface Program Capture................................................................... 49
Gambar 4.4. Interface Program Video Record .......................................................... 50

Gambar 4.5. Area Source .......................................................................................... 51
x
Universitas Kristen Maranatha

Gambar 4.6. Area Capture ........................................................................................ 52
Gambar 4.7. Program Capture Rotation ................................................................... 52
Gambar 4.8. Date, Time, Timer. dan Interval ........................................................... 53
Gambar 4.9. Tombol-tombol Fungsi ......................................................................... 54
Gambar 4.10. Tombol Manual Capture.................................................................... 55
Gambar 4.11. File Hasil Auto Capture ..................................................................... 56
Gambar 4.12. Program Video Record ....................................................................... 57
Gambar 4.13. Video Record Rotation ....................................................................... 58
Gambar 4.14. Select Devices .................................................................................... 59
Gambar 4.15. Save File Video................................................................................... 59
Gambar 4.16. Hasil Video Dengan Format Avi ......................................................... 60

xi
Universitas Kristen Maranatha

LAMPIRAN A

SCRIPT DALAM PEMBUATAN PROGRAM UTAMA

unit UProgramCCTV;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus, jpeg, ExtCtrls, ImgList;

type
TfrmProgramCCTV = class(TForm)
GroupBox1: TGroupBox;
MainMenu1: TMainMenu;
Programs1: TMenuItem;
ProgramCapture1: TMenuItem;
N1: TMenuItem;
ProgramVideoRecord1: TMenuItem;
N2: TMenuItem;
Exit1: TMenuItem;

Image1: TImage;
procedure ProgramCapture1Click(Sender: TObject);
procedure Exit1Click(Sender: TObject);
procedure ProgramVideoRecord1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

A-1

var
frmProgramCCTV: TfrmProgramCCTV;

implementation

uses UCapture, UVideo;

{$R *.dfm}

procedure TfrmProgramCCTV.ProgramCapture1Click(Sender: TObject);
begin
frmCapture.edJam.Text := FormatDateTime('hh mm ss',Now);
frmCapture.edTgl.Text := FormatDateTime('dd mmmm yyyy',Now);
frmCapture.show;
end;

procedure TfrmProgramCCTV.Exit1Click(Sender: TObject);
begin
Application.terminate;
end;

procedure TfrmProgramCCTV.ProgramVideoRecord1Click(Sender: TObject);
begin
frmVideo.show;
end;
end.

A-2

LAMPIRAN B
SCRIPT DALAM PEMBUATAN PROGRAM CAPTURE

unit UCapture;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DSPack, DirectShow9, DSUtil, StdCtrls, DBCtrls, ExtCtrls, Menus,
Buttons, DB, ADODB, Mask, Grids, DBGrids;

type
TfrmCapture = class(TForm)
FilterGraph1: TFilterGraph;
SampleGrabber1: TSampleGrabber;
Filter1: TFilter;
MainMenu1: TMainMenu;
Device1: TMenuItem;
Panel1: TPanel;
Panel2: TPanel;
VideoWindow1: TVideoWindow;
DBImage1: TDBImage;
btnManualCap: TButton;
btnClose: TBitBtn;
Label1: TLabel;
Label2: TLabel;
Timer1: TTimer;

B-1

btnAutoCap: TButton;
btnDisableAutoCap: TButton;
edJam: TEdit;
Label3: TLabel;
Label4: TLabel;
edTgl: TEdit;
SpeedButton1: TSpeedButton;
edInterval: TEdit;
Label5: TLabel;
Timer2: TTimer;
btnTimer: TBitBtn;
edTimer: TEdit;
Label6: TLabel;
SpeedButton2: TSpeedButton;
Button1: TButton;
Button2: TButton;
Label7: TLabel;
TimerCW: TTimer;
TimerCCW: TTimer;
procedure btnManualCapClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure btnCloseClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure btnAutoCapClick(Sender: TObject);
procedure btnDisableAutoCapClick(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure btnTimerClick(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure TimerCWTimer(Sender: TObject);

B-2

procedure TimerCCWTimer(Sender: TObject);
procedure Button1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button2MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);

private
{ Private declarations }
public
{ Public declarations }
Procedure OnSelectDevice(sender: TObject);
end;

var
frmCapture: TfrmCapture;
SysDev: TSysDevEnum;
simpan : tBitmap;
x: integer;
y: integer;

implementation
function Out32(wAddr:word;bOut:byte):byte; stdcall; external 'inpout32.dll';
function Inp32(wAddr:word):byte; stdcall; external 'inpout32.dll';

{$R *.dfm}

B-3

procedure TfrmCapture.btnManualCapClick(Sender: TObject);
begin
edJam.Text := FormatDateTime('hh mm ss',Now);
edTgl.Text := FormatDateTime('dd mmmm yyyy ',Now);
simpan:=TBitmap.Create;
SampleGrabber1.GetBitmap(DBImage1.Picture.Bitmap);
simpan:= DBImage1.Picture.Bitmap;
simpan.SaveToFile( edTgl.Text + edJam.Text + '.bmp');

end;

procedure TfrmCapture.FormCreate(Sender: TObject);
var i: integer ;
Device: TMenuItem;
Begin
SysDev:= TSysDevEnum.Create(CLSID_VideoInputDeviceCategory);
if SysDev.CountFilters > 0 then
for i := 0 to SysDev.CountFilters - 1 do
begin
Device := TMenuItem.Create(Device1);
Device.Caption := SysDev.Filters[i].FriendlyName;
Device.Tag := i ;
Device.OnClick := OnSelectDevice ;
Device1.Add(Device);
end;
Timer1.Enabled := false;
Timer2.Enabled := false;
btnTimer.Enabled := false;

B-4

end;

procedure TfrmCapture.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
SysDev.Free;
FilterGraph1.ClearGraph;
FilterGraph1.Active := false;
end;

procedure TfrmCapture.OnSelectDevice(sender: TObject);
begin
FilterGraph1.ClearGraph;
FilterGraph1.Active := False;
Filter1.BaseFilter.Moniker := SysDev.GetMoniker(TMenuItem(Sender).Tag);
FilterGraph1.Active := True;
with FilterGraph1 as ICaptureGraphBuilder2 do
RenderStream(@PIN_CATEGORY_PREVIEW, nil, Filter1 as IBaseFilter,
SampleGrabber1
as IBaseFilter, VideoWindow1 as IBaseFilter);
FilterGraph1.Play;
end;

procedure TfrmCapture.btnCloseClick(Sender: TObject);
begin
Timer1.Enabled := false;
frmCapture.Close;
end;

procedure TfrmCapture.Timer1Timer(Sender: TObject);

B-5

begin
if Timer1.Enabled = true then
begin
btnManualCap.Click;
end
end;

procedure TfrmCapture.btnAutoCapClick(Sender: TObject);
begin
btnAutoCap.Enabled := false ;
btnManualCap.Enabled := false;
btnTimer.Enabled := true;
Timer1.Enabled := true ;

end;

procedure TfrmCapture.btnDisableAutoCapClick(Sender: TObject);
begin
btnAutoCap.Enabled := true;
btnManualCap.Enabled := true ;
Timer1.Enabled := false ;

end;

procedure TfrmCapture.SpeedButton1Click(Sender: TObject);
begin
Timer1.Interval := StrToInt(edInterval.Text);
edInterval.Color := clCream ;
SpeedButton1.Enabled := false ;

B-6

end;

procedure TfrmCapture.Timer2Timer(Sender: TObject);
begin
if Timer2.Enabled = true then
begin
btnDisableAutoCap.Click;
btnTimer.Enabled := false;
end
end;

procedure TfrmCapture.btnTimerClick(Sender: TObject);
begin
Timer2.Enabled := true ;
end;

procedure TfrmCapture.SpeedButton2Click(Sender: TObject);
begin
Timer2.Interval := StrToInt(edTimer.Text);
edTimer.Color := clCream ;
SpeedButton2.Enabled := false ;
end;

procedure TfrmCapture.TimerCWTimer(Sender: TObject);
begin
case x of
1: Out32 ($378,$01);
2: Out32 ($378,$02);
3: Out32 ($378,$04);
4: Out32 ($378,$08);
end;

B-7

inc(x);
if x=5 then
begin
x:=0;
end;
end;

procedure TfrmCapture.TimerCCWTimer(Sender: TObject);
begin
case y of
1: Out32 ($378,$08);
2: Out32 ($378,$04);
3: Out32 ($378,$02);
4: Out32 ($378,$01);
end;
inc(y);
if y=5 then
begin
y:=0;
end;
end;

procedure TfrmCapture.Button1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
TimerCW.Enabled := true ;
end;

procedure

TfrmCapture.Button1MouseUp(Sender:

TObject;

Button:

TMouseButton;
Shift: TShiftState; X, Y: Integer);

B-8

begin
TimerCW.Enabled := false ;
end;

procedure TfrmCapture.Button2MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
TimerCCW.Enabled := true ;
end;

procedure

TfrmCapture.Button2MouseUp(Sender:

TObject;

Button:

TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
TimerCCW.Enabled := false ;
end;

end.

B-9

LAMPIRAN C
SCRIPT DALAM PEMBUATAN PROGRAM VIDEO RECORD

unit UVideo;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DSPack, DirectShow9, DSUtil, StdCtrls, DBCtrls, ExtCtrls, Menus,
Buttons, DB, ADODB, Mask, Grids, DBGrids, ComCtrls;

type
TfrmVideo = class(TForm)
ListBox1: TListBox;
ListBox2: TListBox;
ListBox3: TListBox;
ListBox4: TListBox;
Label1: TLabel;
FilterGraph1: TFilterGraph;
Filter1: TFilter;
Filter2: TFilter;
SaveDialog1: TSaveDialog;
Timer1: TTimer;
btnSave: TButton;
btnStart: TButton;
btnStop: TButton;
VideoWindow1: TVideoWindow;

C-1

StatusBar1: TStatusBar;
ComboBox1: TComboBox;
Label2: TLabel;
Button1: TButton;
Button2: TButton;
TimerCw: TTimer;
TimerCCw: TTimer;
procedure FormCreate(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
procedure ListBox3Click(Sender: TObject);
procedure btnSaveClick(Sender: TObject);
procedure btnStartClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure btnStopClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure TimerCwTimer(Sender: TObject);
procedure TimerCCwTimer(Sender: TObject);
procedure Button1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button2MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;

C-2

var
frmVideo: TfrmVideo;
CapEnum: TSysDevEnum;
VideoMediaTypes, AudioMediaTypes : TEnumMediaType;
CapFile : WideString ='c:\Record.avi' ;
x: integer;
y: integer;
SysDev: TSysDevEnum;

implementation

function Out32(wAddr:word;bOut:byte):byte; stdcall; external 'inpout32.dll';
function Inp32(wAddr:word):byte; stdcall; external 'inpout32.dll';

{$R *.dfm}

procedure TfrmVideo.FormCreate(Sender: TObject);
var i : integer ;
begin
CapEnum := TSysDevEnum.Create(CLSID_VideoInputDeviceCategory);
for i := 0 to CapEnum.CountFilters - 1 do
ListBox1.Items.Add(CapEnum.Filters[i].FriendlyName);

CapEnum.SelectGUIDCategory(CLSID_AudioInputDeviceCategory);
for i := 0 to CapEnum.CountFilters - 1 do
ListBox3.Items.Add(CapEnum.Filters[i].FriendlyName);

VideoMediaTypes := TEnumMediaType.Create;

C-3

AudioMediaTypes := TEnumMediaType.Create;
end;

procedure TfrmVideo.ListBox1Click(Sender: TObject);
var
PinList : TPinList;
i : Integer;
begin
CapEnum.SelectGUIDCategory(CLSID_VideoInputDeviceCategory);
if ListBox1.ItemIndex -1 then
begin
Filter1.BaseFilter.Moniker := CapEnum.GetMoniker(ListBox1.ItemIndex);
Filter1.FilterGraph := FilterGraph1;
FilterGraph1.Active := True;
PinList := TPinList.Create(Filter1 as IBaseFilter);
ListBox2.Clear;
VideoMediaTypes.Assign(PinList.First);
for i:= 0 to VideoMediaTypes.Count - 1 do
ListBox2.Items.Add(VideoMediaTypes.MediaDescription[i]);
FilterGraph1.Active := false;
PinList.Free;
btnStart.Enabled := true;
end;

end;

procedure TfrmVideo.ListBox3Click(Sender: TObject);
var
PinList : TPinList;
i, LineIndex : Integer;

C-4

ABool : LongBool;
begin
CapEnum.SelectGUIDCategory(CLSID_AudioInputDeviceCategory);
if ListBox3.ItemIndex -1 then
begin
Filter2.BaseFilter.Moniker := CapEnum.GetMoniker(ListBox3.ItemIndex);
Filter2.FilterGraph := FilterGraph1;
FilterGraph1.Active := True;
PinList := TPinList.Create(Filter2 as IBaseFilter);
ListBox4.Clear;
i:= 0;
while i< PinList.Count do
if PinList.PinInfo[i].dir = PINDIR_OUTPUT then
begin
AudioMediaTypes.Assign(PinList.Items[i]);
PinList.Delete(i);
end else inc(i);

for i:= 0 to AudioMediaTypes.Count - 1 do
begin
ListBox4.Items.Add(AudioMediaTypes.MediaDescription[i]);
end;

FilterGraph1.Active := False;
ComboBox1.Clear;
LineIndex := -1 ;
for i := 0 to PinList.Count - 1 do
begin
ComboBox1.Items.Add(PinList.PinInfo[i].achName);
with (PinList.Items[i] as IAMAudioInputMixer) do get_Enable(ABool);
if ABool then LineIndex := i ;

C-5

end;

ComboBox1.ItemIndex := LineIndex;
PinList.Free;
btnStart.Enabled := True;
end;
end;

procedure TfrmVideo.btnSaveClick(Sender: TObject);
begin
if SaveDialog1.Execute then
begin
CapFile := SaveDialog1.FileName;
end;
end;

procedure TfrmVideo.btnStartClick(Sender: TObject);
var
multiplexer : IBaseFilter;
Writer : IFileSinkFilter;
PinList : TPinList;
i : Integer;
begin
FilterGraph1.Active := True;

if Filter2.FilterGraph nil then
begin
PinList := TPinList.Create(Filter2 as IBaseFilter);
i := 0 ;
while i < PinList.Count do

C-6

if PinList.PinInfo[i].dir = PINDIR_OUTPUT then
begin
if ListBox4.ItemIndex -1 then
with (PinList.Items[i] as IAMStreamConfig) do
SetFormat(AudioMediaTypes.Items [ListBox4.ItemIndex].AMMediaType^);
PinList.Delete(i);
end else inc(i);
if ComboBox1.ItemIndex -1 then
with (PinList.Items[ComboBox1.ItemIndex] as IAMAudioInputMixer) do
put_Enable(true);
PinList.Free;
end;

if Filter1.FilterGraph nil then
begin
PinList := TPinList.Create(Filter1 as IBaseFilter);
if ListBox2.ItemIndex - 1 then
with (PinList.First as IAMStreamConfig) do
SetFormat(VideoMediaTypes.Items [ListBox2.ItemIndex].AMMediaType^);
PinList.Free;
end;

with FilterGraph1 as IcaptureGraphBuilder2 do
begin
SetOutputFileName(MEDIASUBTYPE_Avi,

PWideChar(CapFile),

multiplexer, Writer );

if Filter1. BaseFilter.DataLength > 0 then
RenderStream(@PIN_CATEGORY_PREVIEW , nil, Filter1 as IBaseFilter, nil,
VideoWindow1 as IBaseFilter);

C-7

if Filter1.FilterGraph nil then
RenderStream(@PIN_CATEGORY_CAPTURE, nil, Filter1 as IBaseFilter, nil,
multiplexer as IBaseFilter);

if Filter2.FilterGraph nil then
begin
RenderStream(nil, nil, Filter2 As IBaseFilter, nil, multiplexer as IBaseFilter);
end;
end;

FilterGraph1.Play;
btnStop.enabled := true;
btnStart.enabled := false;
ListBox4.enabled := false;
ListBox3.enabled := false;
ListBox2.enabled := false;
ListBox1.enabled := false;
Timer1.enabled := true;

end;

procedure TfrmVideo.Timer1Timer(Sender: TObject);
var
position : Int64;
Hour, Min, Sec, Msec : Word;
const MiliSecInOneDay = 86400000;
begin
if FilterGraph1.Active then ;
begin
with FilterGraph1 as IMediaSeeking do
GetCurrentPosition(position);

C-8

DecodeTime(position div 1000 / MiliSecInOneDay, Hour, Min, Sec, MSec);
StatusBar1.SimpleText := Format('%d:%d:%d:%d', [Hour, Min, Sec, MSec]);
end;
end;

procedure TfrmVideo.btnStopClick(Sender: TObject);
begin
Timer1.Enabled := False;
btnStop.Enabled := False;
btnStart.Enabled := True;
FilterGraph1.Stop;
FilterGraph1.Active := False;
ListBox4.Enabled := true ;
ListBox3.Enabled := true ;
ListBox2.Enabled := true ;
ListBox1.Enabled := true ;
end;

procedure TfrmVideo.FormDestroy(Sender: TObject);
begin
CapEnum.Free;
VideoMediaTypes.Free;
AudioMediaTypes.Free;
end;

procedure TfrmVideo.TimerCwTimer(Sender: TObject);
begin
case x of
1: Out32 ($378,$01);
2: Out32 ($378,$02);
3: Out32 ($378,$04);

C-9

4: Out32 ($378,$08);
end;
inc(x);
if x=5 then
begin
x:=0;
end;
end;

procedure TfrmVideo.TimerCCwTimer(Sender: TObject);
begin
case y of
1: Out32 ($378,$08);
2: Out32 ($378,$04);
3: Out32 ($378,$02);
4: Out32 ($378,$01);
end;
inc(y);
if y=5 then
begin
y:=0;
end;
end;

procedure

TfrmVideo.Button1MouseDown(Sender:

TObject;

Button:

TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
TimerCw.Enabled := true ;
end;

C-10

procedure

TfrmVideo.Button1MouseUp(Sender:

TObject;

Button:

TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
TimerCw.Enabled := false ;
end;

procedure

TfrmVideo.Button2MouseDown(Sender:

TObject;

Button:

TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
TimerCCw.Enabled := true ;
end;

procedure

TfrmVideo.Button2MouseUp(Sender:

TObject;

Button:

TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
TimerCCw.Enabled := false ;
end;

end.

C-11

BAB I
PENDAHULUAN

1.1.

Latar Belakang
Dewasa ini tindak kejahatan semakin bertambah seiring dengan kemajuan

zaman dan tuntutan hidup yang semakin berat, yang menyebabkan pola pikir
manusia sudah menjadi tidak lagi memikirkan nasib orang lain tetapi lebih
memilih untuk mensejahterakan dirinya sendiri dengan cara mencuri pada rumahrumah penduduk yang kosong ataupun tindakan-tindakan yang dapat merugikan
orang lain.
Lantas bagaimana masyarakat dapat memantau tindakan-tindakan yang
merugikan tersebut, meski masyarakat tidak berada di tempat kejadian? Oleh
karena alasan itu, maka dalam tugas akhir ini dibuatlah sistem kamera CCTV
yang dapat merekam dan memfoto keadaan suatu ruang atau rumah, yang
diharapkan mampu memantau kondisi dari rumah yang kosong tersebut, karena
semua aktivitas yang terjadi dapat terekam. Sehingga para pemilik rumah atau
ruangan tersebut merasa tenang ketika harus meninggalkan rumah. Kelebihan
CCTV ini adalah selain dapat merekam dan memfoto, sistem kamera ini dapat
memfoto dengan durasi yang telah ditentukan sebelumnya, sistem kamera ini juga
dapat bergerak ke kanan, dan kiri. Sehingga sudut pengambilan gambar menjadi
lebih luas.

1

Universitas Kristen Maranatha

1.2.

Identifikasi Masalah
1. Bagaimana menciptakan sistem kamera CCTV yang dapat merekam dan
memfoto kondisi dan aktivitas yang terjadi di suatu rumah meski
pemiliknya tidak berada di tempat?
2. Bagaimana menciptakan sistem untuk menggerakan kamera CCTV
tersebut?

1.3.

Tujuan Penulisan
1. Menciptakan sistem kamera CCTV yang berguna untuk merekam serta
memfoto seluruh kejadian di tempat yang ingin dipantau, tanpa harus
berada di tempat tersebut, sehingga semua situasi dapat terekam dan
hasilnya dalam bentuk video ataupun foto.
2. Sistem ini juga mampu mengontrol gerak kamera CCTV.

1.4.

Pembatasan Masalah


Masalah dibatasi hanya membuat sistem kamera CCTV dengan
menggunakan 1 webcam.



Program dengan delphi.



Cara mengkomunikasikan perangkat dengan komputer adalah
menggunakan parallel port.



Sistem CCTV ini diprioritaskan untuk pemantauan kondisi ruangan
di dalam sebuah rumah.

2
Universitas Kristen Maranatha

1.5.

Sistematika Penulisan
BAB I PENDAHULUAN
Berisi tentang latar belakang penulisan, identifikasi masalah, tujuan
penulisan, pembatasan masalah, dan sistematika penulisan.

BAB II LANDASAN TEORI
Berisi tentang landasan teori yang menunjang penulisan tugas akhir ini.

BAB III PERANCANGAN DAN PEMODELAN
Berisi tentang cara merancang dan membuat program serta merancang
hardware.

BAB IV HASIL DAN PEMBAHASAN
Berisi tentang hasil yang didapat setelah pengerjaan project, serta
membahas cara penggunaan programnya.

BAB V KESIMPULAN DAN SARAN
Berisi tentang kesimpulan akhir hasil pengerjaan project yang dibuat, serta
saran-saran mengenai perbaikan dan pengembangan program ini
selanjutnya.

3
Universitas Kristen Maranatha

BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
1. Kesimpulan yang diperoleh setelah pengerjaan tuugas akhir yang berjudul
Perancangan Sitem Pengontrol Gerak kamera CCTV ini adalah terciptanya
sistem kamera CCTV yang dapat merekam video dan memfoto object
dengan pengaturan waktu yang dapat diatur sesuai dengan keinginan
pemakai.
2. Sistem ini juga dapat menggerakkan kamera ke kanan dan kiri karena
menggunakan motor stepper. Kekurangan dalam sistem ini ialah ukuran
file untuk video masih sangat besar, hal ini dikarenakan hasil video yang
diperoleh ialah masih dalam format avi dan program ini juga belum dapat
kompresi video dengan otomatis.

5.2. Saran
1. Sistem ini masih banyak terdapat kekurangan terutama dalam hal format
video yang didukung.
2. Untuk pengembangan selanjutnya, program ini dapat ditambahkan fitur
untuk merekam video dengan berbagai format. Juga dapat ditambahkan
fitur untuk kompresi file.
61
Universitas Kristen Maranatha

DAFTAR PUSTAKA

J.Alam, M. Agus, Membuat Program Aplikasi Menggunakan Delphi 6 & 7, edisi
pertama, PT. Elex Media Komputindo, Jakarta. 2003.
http://www.google.com, 05 Juli 2010
http://www.wongmesin.net/2008/11/teori-motor-stepper/, 13 Juli 2010
http://elektronika-elektronika.blogspot.com/2007/05/tipe-dan-rangkaian-kontrolmotor.html 13 Juli 2010
http://id.wikipedia.org/wiki/Port_paralel 13 Juli 2010
http://www.elecfree.comelectronic 15 Juli 2010

62
Universitas Kristen Maranatha