Membuat Mini ROV

download Membuat Mini ROV

of 11

Transcript of Membuat Mini ROV

LABORATORIUM INSTRUMENTASI DAN ROBOTIKA KELAUTAN BAGIAN AKUSTIK DAN INSTRUMENTASI KELAUTAN DEPARTEMEN ILMU DAN TEKNOLOGI KELAUTAN - IPB MODUL - 4

MEMBUAT MINI-ROV (Remotely Operated Vehicle): ELEKTRONIKA DAN KONTROLTUJUAN PRAKTIKUM Mahasiswa mampu memahami dan membuat sistem elektronika dan kontrol sebuah miniROV. JUMLAH PERTEMUAN : 1 kali TAHAPAN PRAKTIKUM 1. 2. 3. 4. 5. Merencanakan komponen dan sensor yang digunakan dalam ROV. Mengakses Video Kamera Membuat Driver Motor Merakit Sensor Mengendalikan Motor, video kamera dan Sensor serta mengirimkannya ke komputer 6. Membuat Ground Station yang mampu menerima dan memerintah ROV. ALAT DAN BAHAN 1. 2. 3. 4. 5. 6. Laptop Perangkat Lunak MATLAB USB to Serial Development KIT ATMega8535 DS18S20 Adaptor

1 PRAKTIKUM INSTRUMENTASI KELAUTAN

LABORATORIUM INSTRUMENTASI DAN ROBOTIKA KELAUTAN BAGIAN AKUSTIK DAN INSTRUMENTASI KELAUTAN DEPARTEMEN ILMU DAN TEKNOLOGI KELAUTAN - IPBAKSES KAMERA (PERALATAN VIDEO) Praktikum kali ini menekankan pada teknik antarmuka MATLAB dengan peralatan Video Kamera. Akses menggunakan MATLAB untuk peralatan tersebut sama dengan aplikasi lain yaitu menggunakan library yang disediakan oleh perusahaan pembuat video kamera, jadi pada saat ingin menggunakan MATLAB untuk mengakses peralatan anda, pastikan driver video kamera anda sudah terinstall. Misal, dalam pembuatan ROV menggunakan kamera CCTV pastikan antara kamera dan komputer anda memiliki TV-Tuner sehingga gambar analog yang dihasilkan oleh CCTV dapat ditampilkan di komputer, dan dapat anda akses di MATLAB. Ada beberapa perintah yang umum digunakan dalam mengakses peralatan video kamera di MATLAB seperti: 1. Videoinput : Membuat sebuah object MATLAB yang menampung peralatan video yang kita maksud Contoh :vid = videoinput('winvideo')

2. Imaqhwinfo : digunakan untuk mengetahui peralatan image acquitition apa saja yang sudah terinstall di komputer. Contohobj = videoinput('winvideo', 1); obj_info = imaqhwinfo(obj) obj_info = AdaptorName: DeviceName: MaxHeight: MaxWidth: NativeDataType: TotalSources: VendorDriverDescription: VendorDriverVersion: 'winvideo' 'IBM PC Camera' 96 128 'uint8' 1 'Windows WDM Compatible Driver' 'DirectX 9.0'

3. Preview: membuat sebuah objeck yang menampilkan live video. ContohvidRes = get(obj, 'VideoResolution'); nBands = get(obj, 'NumberOfBands'); hImage = image( zeros(vidRes(2), vidRes(1), nBands) ); preview(obj, hImage);

4. StopPreview: kebalikan dari Preview Lebih jelasnya cobalah ketik, pahami dan coba lakukan modifikasi beberapa baris program berikut:vid = videoinput('winvideo'); %kebetulan laptop saya pake winvideo figure('Toolbar','none',... 'Menubar', 'none',... 'NumberTitle','Off',... 'Name','ROV-Praktikum INKEL'); %membuat figure vidRes = get(vid, 'VideoResolution'); %ambil nial resolusi dari winvideo nBands = get(vid, 'NumberOfBands'); %ambil RGB, NTSC or dll hImage = image( zeros(vidRes(2), vidRes(1), nBands) ); %bikin dalam image preview(vid, hImage); %siaran langsung dah

2 PRAKTIKUM INSTRUMENTASI KELAUTAN

LABORATORIUM INSTRUMENTASI DAN ROBOTIKA KELAUTAN BAGIAN AKUSTIK DAN INSTRUMENTASI KELAUTAN DEPARTEMEN ILMU DAN TEKNOLOGI KELAUTAN - IPB Gambar berikut merupakan contoh dari tampilan figure yang dihasilkan kode di atas.

Gambar 1. Tampilsn Realtime Video KameraMEMBUAT PROGRAM VIDEO KAMERA MENGGUNAKAN GUI Pada project ROV praktikum kali ini semua kendali dan visualisasi akan dibuat dalam program berbasis GUI di MATLAB. Oleh karena itu pada praktikum ini juga kita akan membuat tampilan video di GUI MATLAB. Gunakan komponen axes di MATLAB untuk menampilkan live video yang kita dapatkan. Kemudian desain tampilan GUI menjadi seperti Gambar . Simpan figure tersebut untuk nanti kita pergunakan kembali.

Gambar 2. Desain Tampilan Ground Segment Mini-ROV 3 PRAKTIKUM INSTRUMENTASI KELAUTAN

LABORATORIUM INSTRUMENTASI DAN ROBOTIKA KELAUTAN BAGIAN AKUSTIK DAN INSTRUMENTASI KELAUTAN DEPARTEMEN ILMU DAN TEKNOLOGI KELAUTAN - IPBTambahkan kode berikut pada OpeningFcn dari GUI yang anda buat. Kode tersebut berfungsi membuat object penampung alat video yang dimaksud (winvideo) dan menempatkannya menjadi variable global yang bisa diakses fungsi lain.function myCameraGUI_OpeningFcn(hObject, eventdata, handles, varargin) handles.video = videoinput('winvideo', 1); set(handles.video,'TimerPeriod', 0.05, ... 'TimerFcn',['if(~isempty(gco)),'... 'handles=guidata(gcf);'... % Update handles 'image(getsnapshot(handles.video));'... % Get picture using GETSNAPSHOT and put it into axes using IMAGE 'set(handles.cameraAxes,''ytick'',[],''xtick'',[]),'... % Remove tickmarks and labels that are inserted when using IMAGE 'else '... 'delete(imaqfind);'... % Clean up - delete any image acquisition objects 'end']); triggerconfig(handles.video,'manual');

..... Pada Callback tombol yang telah dibuat tambahkan kode seperti dibawah ini, untuk memulai dan mematikan perangkat video kamera yang telah dibuat pada OpeningFcn.function startStopCamera_Callback(hObject, eventdata, handles) % Start/Stop Camera if strcmp(get(handles.startStopCamera,'String'),'Start Camera') set(handles.startStopCamera,'String','Stop Camera') start(handles.video) else set(handles.startStopCamera,'String','Start Camera') stop(handles.video) end

Hasil program diatas menjadi seperti Gambar 3.

Gambar 3. Contoh Hasil Program menghidupkan dan mematikan Peralatan Video Kamera 4 PRAKTIKUM INSTRUMENTASI KELAUTAN

LABORATORIUM INSTRUMENTASI DAN ROBOTIKA KELAUTAN BAGIAN AKUSTIK DAN INSTRUMENTASI KELAUTAN DEPARTEMEN ILMU DAN TEKNOLOGI KELAUTAN - IPBPERENCANAAN KOMPONEN DAN SENSOR MINI-ROV Perencanaan komponen dan sensor yang dibawa oleh ROV merupakan bagian yang sangat penting dari sebuah ROV. Ini menentukan kemampuan dari ROV, baik dari sisi manuver dan tema yang dapat diselesaikan oleh ROV. Pada praktikum kali ini kita akan membuat sebuah ROV yang dilengkapi dengan 2 buah motor dan membawa sensor suhu. Skematik ROV praktikum kali ini seperti terlihat di Gambar 4. Komputer terhubung dengan dua perangkat yaitu Kamera dan Mikrokontroler. Mikrokontroler menggunakan komunikasi RS232. Kontrol gerak dan sensor ditangani oleh mikrokontroler yang dihubungkan dengan sensor suhu LM35 dan driver motor L293D. ROV diasumsikan hanya terdiri atas dua motor sehingga menggunakan satu driver L293D. Sensor suhu dihubungkan di PORTA.0 dan driver motor dihubungkan dengan PORTB.0, PORTB.1, PORTB.2 dan PORTB.3.

Camera Komp (MATLAB) Sensor Suhu

RS232

uC M1 L293D

M2

Gambar 4. Sistematika praktikum

5 PRAKTIKUM INSTRUMENTASI KELAUTAN

LABORATORIUM INSTRUMENTASI DAN ROBOTIKA KELAUTAN BAGIAN AKUSTIK DAN INSTRUMENTASI KELAUTAN DEPARTEMEN ILMU DAN TEKNOLOGI KELAUTAN - IPBDRIVER MOTOR Rangkaian driver motor L293D seperti terlihat di Gambar 5. Diasumsikan gerak ROV seperti pada Tabel 1.

Gambar 5. Rangkaian driver Motor L293D Tabel 1. Rencana arah gerak ROV PORTB.0 PORTB.1 ATAS 1 0 BAWAH 0 1 KIRI 1 0 KANAN 0 1

PORTB.2 1 0 0 1

PORTB.3 0 1 1 0

STRING A B C D

Potongan program untuk mengatur motor berdasarkan sekanrio di atas menjadi: A=getchar() if (A=='A'){ PORTB.0=1; PORTB.1=0; PORTB.2=1; PORTB.3=0;} //ATAS elseif(A=='B') { PORTB.0=0; PORTB.1=1; PORTB.2=0; PORTB.3=1; }//BAWAH elseif(A=='C') { PORTB.0=1; PORTB.1=0; PORTB.2=0; PORTB.3=1;} //KIRI elseif(A=='D') { PORTB.0=0; PORTB.1=1; PORTB.2=1; PORTB.3=0; }//KANAN }

6 PRAKTIKUM INSTRUMENTASI KELAUTAN

LABORATORIUM INSTRUMENTASI DAN ROBOTIKA KELAUTAN BAGIAN AKUSTIK DAN INSTRUMENTASI KELAUTAN DEPARTEMEN ILMU DAN TEKNOLOGI KELAUTAN - IPBPROGRAM LENGKAP MIKORKONTROLER Berikut adalah program disisi mikrokontroler sesuai dengan spesifikasi mini-rov yang akan dibuat.

#include // 1 Wire Bus interface functions #include ... ... #include #include #include void main(void) { int temp; unsigned char A; PORTB=0x00; DDRB=0xff; // USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On // USART Transmitter: On // USART Mode: Asynchronous // USART Baud Rate: 9600 UCSRA=0x00; UCSRB=0xD8; UCSRC=0x86; UBRRH=0x00; UBRRL=0x19; w1_init(); #asm("sei")

while (1) { temp=ds1820_temperature_10(0); printf("%-i.%u\n\r",temp/10,abs(temp%10)); if (UDR!=0){ A=getchar(); if (A=='A'){ PORTB.0=1; PORTB.1=0; PORTB.2=1; PORTB.3=0; //ATAS } else if(A=='B') { PORTB.0=0; PORTB.1=1; PORTB.2=0; PORTB.3=1; //BAWAH } else if(A=='C') { PORTB.0=1; PORTB.1=0; PORTB.2=0; PORTB.3=1; //KIRI } else if(A=='D') { PORTB.0=0; PORTB.1=1; PORTB.2=1; PORTB.3=0; //KANAN } } } }

7 PRAKTIKUM INSTRUMENTASI KELAUTAN

LABORATORIUM INSTRUMENTASI DAN ROBOTIKA KELAUTAN BAGIAN AKUSTIK DAN INSTRUMENTASI KELAUTAN DEPARTEMEN ILMU DAN TEKNOLOGI KELAUTAN - IPBGROUND STATION

Berikut merupakan Desain lengkap di MATLAB untuk membuat mini-ROV pada praktikum kali ini:

Gambar 6. Desain Aplikasi Ground Station mini-ROV

Kemudian berikut langkah-langkah yang dilakukan untuk membuat program pada ground station. Pada bagian openingFcn tambakan menjadi kode berikut:function prak_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; varargout{1} = handles.output; handles.video = videoinput('winvideo', 1); set(handles.video,'TimerPeriod', 0.05, ... 'TimerFcn',['if(~isempty(gco)),'... 'handles=guidata(gcf);'... 'image(getsnapshot(handles.video));'... 'set(handles.grafik2,''ytick'',[],''xtick'',[]),'... 'else '... 'delete(imaqfind);'... 'end']); triggerconfig(handles.video,'manual'); guidata(hObject, handles); uiwait(handles.figure1);

8 PRAKTIKUM INSTRUMENTASI KELAUTAN

LABORATORIUM INSTRUMENTASI DAN ROBOTIKA KELAUTAN BAGIAN AKUSTIK DAN INSTRUMENTASI KELAUTAN DEPARTEMEN ILMU DAN TEKNOLOGI KELAUTAN - IPB Pada tombol baca isi beberapa kode berikut:function baca_Callback(hObject, eventdata, handles) myform=guidata(gcbo); aa=get(myform.edit1,'String'); bb=str2double(get(myform.edit2,'String')); fid=serial(aa,'Baudrate',bb,'DataBits',8,'StopBits',1,'InputBufferSize',160 00); fopen(fid); cc=str2double(get(myform.edit3,'String')); clear A; for i=1:cc data=str2double(fscanf(fid)); if (data>0) A(i)=data/10; hh=image(plot(i,data/10,'*r'),'parent',myform.grafik); %plot(i,data,'*r')%','parent',handles.grafik); xlabel('Data ke-') ylabel('Temperature (Celcius)') axis(myform.grafik, [0 cc min(A)-1 max(A)+1]) set(myform.grafik,'Userdata',hh);%hh hold on grid on pause(.5) end end fclose(fid); delete(fid);

kemudian pada tombol atas menjadi:function pushbutton2_Callback(hObject, eventdata, handles) myform=guidata(gcbo); aa=get(myform.edit1,'String'); bb=str2double(get(myform.edit2,'String')); fid=serial(aa,'Baudrate',bb,'DataBits',8,'StopBits',1,'InputBufferSize',160 00); fopen(fid); fprintf(fid,'A'); set(myform.text6,'String','Data Terkirim'); fclose(fid); delete(fid);

kode tersebut juga dimasukan pada tombol maju, mundur dan bawah. Jangan lupa dirubah pada bagian fprintf sesuai dengan Tabel 1. Berikutnya membuat tombol menghidupkan dan mematikan perangkat video yang dimiliki:

9 PRAKTIKUM INSTRUMENTASI KELAUTAN

LABORATORIUM INSTRUMENTASI DAN ROBOTIKA KELAUTAN BAGIAN AKUSTIK DAN INSTRUMENTASI KELAUTAN DEPARTEMEN ILMU DAN TEKNOLOGI KELAUTAN - IPB

function pushbutton3_Callback(hObject, eventdata, handles) if strcmp(get(handles.pushbutton3,'String'),'Start Camera') % Camera is off. Change button string and start camera. set(handles.pushbutton3,'String','Stop Camera') start(handles.video); else % Camera is on. Stop camera and change button string. set(handles.pushbutton3,'String','Start Camera') stop(handles.video) end

Hasil dari proses diatas seperti terlihat pada Gambar 7.

Gambar 7. Tampilan Akhir Mini-ROV

10 PRAKTIKUM INSTRUMENTASI KELAUTAN

LABORATORIUM INSTRUMENTASI DAN ROBOTIKA KELAUTAN BAGIAN AKUSTIK DAN INSTRUMENTASI KELAUTAN DEPARTEMEN ILMU DAN TEKNOLOGI KELAUTAN - IPB

TUGAS: BUAT RANCANGAN (DESAIN) ROV YANG AKAN MENJADI TUGAS AKHIR KELOMPOK ANDA, TERMASUK PERENCANAAN SENSOR YANG DIGUNAKAN, JUMLAH DAN PENEMPATAN MOTOR, MENGGUNAKAN KAMERA ATAU TIDAK, DIBUAT DALAM BENTUK 3D. LAMPIRKAN PROGRAM BAIK DI MIKROKONTROLER ATAU DI KOMPUTER SESUAI DENGAN RANCANGAN TERSEBUT!

GOOD LUCK!

11 PRAKTIKUM INSTRUMENTASI KELAUTAN