i
Universitas Kristen Maranatha 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
ii
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
vi
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
vii
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
viii
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
ix
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
x
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
xi
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
A-1 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
A-2 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;
B-1 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;
B-2 btnAutoCap: TButton;
btnDisableAutoCap: TButton; edJam: TEdit;
Label3: TLabel; Label4: TLabel; edTgl: TEdit;
SpeedButton1: TSpeedButton; edInterval: TEdit;
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);
B-3 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';
B-4 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;
B-5 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;
B-6 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 ;
B-7 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
B-8 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;
B-9 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;
C-1 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;
C-2
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);
C-3 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);
C-4 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
C-5 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);
C-6 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 ;
C-7 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
C-8 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
C-9 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
C-10 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
C-11 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;
1 Universitas Kristen Maranatha
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 rumah-rumah penduduk yang kosong ataupun tindakan-tindakan yang dapat merugikan orang lain.
2 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
3 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
61
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.
62
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-kontrol-motor.html 13 Juli 2010