PERCOBAAN 1
MEMBUAT ROBOT RODA MENDETEKSI RANJAU ANTI TANK
1. Tujuan
Agar
Bamasis mampu membuat robot beroda untuk mendeteksi ranjau Anti Tank
2. Alat dan Bahan :
a. Laptop
b. Aplikasi Program Delphi
c. Codingan Arduino
d. Protheus
e. Arduino Uno
f. Sensor atau Detector Ranjau
g. Pemancar / Penerima
h. Motor DC
i. Kamera
j. Video Sender dan Receiver
k. TV Turner
l. DTMF Encoder dan Decoder
3. Landasan Teori
a. Jelaskan tentang Robot Beroda
menggunakan Motor DC
Robot beroda yang
menggunakan motor DC
adalah salah satu jenis robot yang bergerak menggunakan roda dan digerakkan
oleh motor arus searah
(DC). Motor DC ini berfungsi sebagai aktuator yang mengubah
energi listrik menjadi energi mekanik, memungkinkan robot untuk bergerak sesuai
dengan perintah yang diberikan.
b. Jelaskan tentang Ranjau Anti Tank
Ranjau anti-tank
adalah jenis ranjau darat yang dirancang khusus untuk menonaktifkan atau
menghancurkan kendaraan lapis baja, terutama tank dan kendaraan tempur lapis baja lainnya. Ranjau
ini umumnya memiliki daya ledak yang lebih besar dibandingkan dengan ranjau
anti-personel, sehingga mampu menembus lapisan baja tebal pada kendaraan
militer.
c. Jelaskan tentang Detector Ranjau
Detektor ranjau
adalah alat yang digunakan untuk menemukan dan mengidentifikasi keberadaan
ranjau darat yang tersembunyi di bawah tanah atau di permukaan. Alat ini sangat
penting untuk operasi kemanusiaan pasca-konflik, operasi militer, dan
pembersihan area yang terkontaminasi oleh ranjau darat, yang sering kali
meninggalkan bahaya bagi warga sipil dan pasukan militer.
d. Jelaskan tentang COM PORT pada Delphi
COM Port
(Communication Port) adalah antarmuka komunikasi serial yang digunakan untuk
mengirimkan data antara komputer dan perangkat eksternal seperti printer,
modem, atau mikrokontroler. Pada Delphi,
bahasa pemrograman yang banyak digunakan untuk pengembangan aplikasi desktop
berbasis Windows, COM Port dapat diakses untuk berkomunikasi dengan perangkat
eksternal melalui komunikasi serial.
e. Jelaskan tentang Fungsi DTMF pada kirim
terima data
DTMF (Dual-Tone Multi-Frequency)
adalah metode pengkodean suara yang digunakan dalam komunikasi telepon untuk
mengirimkan informasi numerik dengan menekan tombol pada keypad telepon. Fungsi
utama DTMF adalah untuk mengirim data melalui sinyal suara yang terdiri dari
dua nada frekuensi berbeda. Sistem ini digunakan dalam berbagai aplikasi,
termasuk komunikasi telepon, sistem otomatisasi, dan bahkan pengendalian
perangkat jarak jauh.
4. Langkah percobaan
a. Desain Menggunakan 3D Max untuk Robot
Beroda dan Detector Ranjau
b. Buat Blok Diagram cara kerja robot
beroda deteksi ranjau kirim data ke Ground Station.
c. Buat rangkaian Control Arduino untuk
menggerakan Roda Motor DC
d. Buat rangkaian Detector Ranjau diterima
oleh Arduino dan diterima oleh Laptop menggunakan Delphi menggunakan Protheus
e. Buat coding Delphi untuk menunjukan
daerah ranjau
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, jpeg, ExtCtrls, StdCtrls;
type
TForm2 = class(TForm)
Image1: TImage;
Shape1: TShape;
Shape2: TShape;
Shape3: TShape;
Shape4: TShape;
Shape5: TShape;
Shape6: TShape;
Shape7: TShape;
Shape8: TShape;
Shape9: TShape;
Shape10: TShape;
Shape11: TShape;
Shape12: TShape;
Shape13: TShape;
Shape14: TShape;
Shape15: TShape;
Shape16: TShape;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
ComboBox1: TComboBox;
Label9: TLabel;
Label10: TLabel;
Button1: TButton;
Edit1: TEdit;
Button2: TButton;
Shape17: TShape;
Shape18: TShape;
Label11: TLabel;
Label12: TLabel;
Shape19: TShape;
Shape20: TShape;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.Button1Click(Sender:
TObject);
var
titik:Integer;
status:String;
pos:String;
begin
titik := ComboBox1.ItemIndex;
Status := Edit1.Text;
if titik <> -1 then
begin
//Showmessage ('POS yang dipilih:'+ ComboBox1.Items [titik]);
pos :=ComboBox1.Items [titik];
end
else
begin
//Showmessage('Kosong');
pos:='';
end;
if (pos='1') and (status='H') then
begin
Shape9.Brush.Color:= clLime;
Shape9.Visible:= True;
Shape16.Visible:= False;
Shape15.Visible:= False;
Shape14.Visible:= False;
Shape13.Visible:= False;
Shape12.Visible:= False;
Shape11.Visible:= False;
Shape10.Visible:= False;
end
else if (pos='1') and (status='K') then
begin
Shape9.Brush.Color:= clYellow;
Shape9.Visible:= True;
Shape16.Visible:=
False;
Shape15.Visible:= False;
Shape14.Visible:= False;
Shape13.Visible:= False;
Shape12.Visible:= False;
Shape11.Visible:= False;
Shape10.Visible:= False;
end
else if (pos='1') and (status='M') then
begin
Shape9.Brush.Color:= clRed;
Shape9.Visible:= True;
Shape16.Visible:= False;
Shape15.Visible:= False;
Shape14.Visible:= False;
Shape13.Visible:= False;
Shape12.Visible:= False;
Shape11.Visible:= False;
Shape10.Visible:= False;
end
else if (pos='2') and (status='H') then
begin
Shape10.Brush.Color:= clLime;
Shape10.Visible:= True;
Shape9.Visible:= False ;
end
else if (pos='2') and (status='K') then
begin
Shape10.Brush.Color:= clYellow;
Shape10.Visible:= True;
Shape9.Visible:= False ;
end
else if (pos='2') and (status='M') then
begin
Shape10.Brush.Color:= clRed;
Shape10.Visible:= True;
Shape9.Visible:= False ;
end
else if (pos='3') and (status='H') then
begin
Shape11.Brush.Color:= clLime;
Shape11.Visible:= True;
Shape10.Visible:= False;
Shape9.Visible:= False ;
end
else if (pos='3') and (status='K') then
begin
Shape11.Brush.Color:= clYellow;
Shape11.Visible:= True;
Shape10.Visible:= False;
Shape9.Visible:= False ;
end
else if (pos='3') and (status='M') then
begin
Shape11.Brush.Color:= clRed;
Shape11.Visible:= True;
Shape10.Visible:= False;
Shape9.Visible:= False ;
end
else if (pos='4') and (status='H') then
begin
Shape12.Brush.Color:= clLime;
Shape12.Visible:= True;
Shape11.Visible:= False;
Shape10.Visible:= False;
Shape9.Visible:= False ;
end
else if (pos='4') and (status='K') then
begin
Shape12.Brush.Color:= clYellow;
Shape12.Visible:= True;
Shape11.Visible:= False;
Shape10.Visible:= False;
Shape9.Visible:= False ;
end
else if (pos='4') and (status='M') then
begin
Shape12.Brush.Color:= clRed;
Shape12.Visible:= True;
Shape11.Visible:= False;
Shape10.Visible:= False;
Shape9.Visible:= False ;
end
else if (pos='5') and (status='H') then
begin
Shape13.Brush.Color:= clLime;
Shape13.Visible:= True;
Shape12.Visible:= False;
Shape11.Visible:= False;
Shape10.Visible:= False;
Shape9.Visible:= False ;
end
else if (pos='5') and (status='K') then
begin
Shape13.Brush.Color:= clYellow;
Shape13.Visible:= True;
Shape12.Visible:= False;
Shape11.Visible:= False;
Shape10.Visible:= False;
Shape9.Visible:= False ;
end
else if (pos='5') and (status='M') then
begin
Shape13.Brush.Color:= clRed;
Shape13.Visible:= True;
Shape12.Visible:= False;
Shape11.Visible:= False;
Shape10.Visible:= False;
Shape9.Visible:= False ;
end
else if (pos='6') and (status='H') then
begin
Shape14.Brush.Color:= clLime;
Shape14.Visible:= True;
Shape13.Visible:= False;
Shape12.Visible:= False;
Shape11.Visible:= False;
Shape10.Visible:= False;
Shape9.Visible:= False ;
end
else if (pos='6') and (status='K') then
begin
Shape14.Brush.Color:= clYellow;
Shape14.Visible:= True;
Shape13.Visible:= False;
Shape12.Visible:= False;
Shape11.Visible:= False;
Shape10.Visible:= False;
Shape9.Visible:= False ;
end
else if (pos='6') and (status='M') then
begin
Shape14.Brush.Color:= clRed;
Shape14.Visible:= True;
Shape13.Visible:= False;
Shape12.Visible:= False;
Shape11.Visible:= False;
Shape10.Visible:= False;
Shape9.Visible:= False ;
end
else if (pos='7') and (status='H') then
begin
Shape15.Brush.Color:= clLime;
Shape15.Visible:= True;
Shape14.Visible:= False;
Shape13.Visible:= False;
Shape12.Visible:= False;
Shape11.Visible:= False;
Shape10.Visible:= False;
Shape9.Visible:= False ;
end
else if (pos='7') and (status='K') then
begin
Shape15.Brush.Color:= clYellow;
Shape15.Visible:= True;
Shape14.Visible:= False;
Shape13.Visible:= False;
Shape12.Visible:= False;
Shape11.Visible:= False;
Shape10.Visible:= False;
Shape9.Visible:= False ;
end
else if (pos='7') and (status='M') then
begin
Shape15.Brush.Color:= clRed;
Shape15.Visible:= True;
Shape14.Visible:= False;
Shape13.Visible:= False;
Shape12.Visible:= False;
Shape11.Visible:= False;
Shape10.Visible:= False;
Shape9.Visible:= False ;
end
else if (pos='8') and (status='H') then
begin
Shape16.Brush.Color:= clLime;
Shape16.Visible:= True;
Shape15.Visible:= False;
Shape14.Visible:= False;
Shape13.Visible:= False;
Shape12.Visible:= False;
Shape11.Visible:= False;
Shape10.Visible:= False;
Shape9.Visible:= False ;
end
else if (pos='8') and (status='K') then
begin
Shape16.Brush.Color:= clYellow;
Shape16.Visible:= True;
Shape15.Visible:= False;
Shape14.Visible:= False;
Shape13.Visible:= False;
Shape12.Visible:= False;
Shape11.Visible:= False;
Shape10.Visible:= False;
Shape9.Visible:= False ;
end
else if (pos='8') and (status='M') then
begin
Shape16.Brush.Color:= clRed;
Shape16.Visible:= True;
Shape15.Visible:= False;
Shape14.Visible:= False;
Shape13.Visible:= False;
Shape12.Visible:= False;
Shape11.Visible:= False;
Shape10.Visible:= False;
Shape9.Visible:= False ;
end
end;
procedure TForm2.Button2Click(Sender:
TObject);
begin
Form2.Close;
end;
end.
5. Hasil dan
Pembahasan
a. hasil
1)tampilkan bukti rangkaian kontrol,
rangkaian detektor ranjau, rangkaian tampilan dalam bentuk proteus
2)tampilkan bukti hasil program delphi tentang
proteksi daerah ranjau
b. pembahasan
1. Uraikan cara
kerja rangkaian kontrol robot beroda ,maju mundur,belok kanan, belok kiri,
berhenti, buatkan tabel logikannya
Cara
Kerja
Untuk
kontrol robot beroda yang dapat maju, mundur, belok kanan, belok kiri, dan
berhenti, biasanya Anda memerlukan motor DC atau motor servo, driver motor
(seperti L298N atau L293D), dan mikrokontroler (seperti Arduino).
Komponen
Utama:
Motor
DC: Dua motor untuk gerakan maju mundur dan belok kiri kanan.
Driver
Motor: Mengendalikan arus yang mengalir ke motor dari mikrokontroler.
Mikrokontroler:
Mengontrol driver motor berdasarkan input.
Rangkaian:
Motor
A: Mengendalikan roda kiri.
Motor
B: Mengendalikan roda kanan.
Driver
Motor: Memiliki input dari mikrokontroler dan output ke motor.
Mikrokontroler:
Mengirim sinyal kontrol ke driver motor.
Logika
Kontrol:
Maju:
Motor kiri dan kanan berputar ke arah yang sama.
Mundur:
Motor kiri dan kanan berputar ke arah yang berlawanan.
Belok
Kiri: Motor kanan berputar ke arah yang sama, motor kiri berputar ke arah yang
berlawanan.
Belok
Kanan: Motor kiri berputar ke arah yang sama, motor kanan berputar ke arah yang
berlawanan.
Berhenti:
Kedua motor tidak berputar.
Tabel
Logika
Pembahasan :
a. Uraikan
cara kerja rangkaian control robot beroda gerak maju mundur belok kanan, kiri
dan berhenti. Buatkan tabel logikanya
b. Kirim
terima DTMF Code angka 2, 8, 4, 5, dst.
DTMF (Dual-Tone
Multi-Frequency) adalah sistem yang digunakan untuk mengirimkan sinyal
telekomunikasi. Misalnya, untuk mengendalikan robot, Anda bisa menggunakan
tombol pada telepon untuk mengirimkan kode DTMF dan membaca kode tersebut
dengan dekoder DTMF.
Komponen Utama:
·
Dekoder DTMF (misalnya,
MT8870): Mendeteksi sinyal DTMF dan mengubahnya menjadi sinyal digital yang dapat
dibaca oleh mikrokontroler.
·
Mikrokontroler: Menerima
sinyal dari dekoder DTMF dan mengontrol motor berdasarkan sinyal tersebut.
Cara Kerja:
1.
Kirim Kode: Tekan tombol pada
telepon untuk mengirimkan kode DTMF (misalnya, 2 untuk maju, 8 untuk mundur, 4
untuk kiri).
2.
Terima Kode: Dekoder DTMF
menangkap sinyal dan mengubahnya menjadi data digital.
3.
Kontrol Motor: Mikrokontroler
menerima data dan mengendalikan motor sesuai dengan kode yang diterima.
Contoh Kode Arduino
untuk Membaca DTMF:
cpp
Salin kode
#include <DTMFDecoder.h> //
Misalnya, gunakan pustaka untuk dekoder DTMF
DTMFDecoder dtmfDecoder;
void setup() {
Serial.begin(9600);
dtmfDecoder.begin();
}
void loop() {
char dtmfCode = dtmfDecoder.getCode();
if
(dtmfCode) {
Serial.print("Kode DTMF diterima: ");
Serial.println(dtmfCode);
// Implementasi kontrol motor sesuai kode DTMF
switch(dtmfCode) {
case '2':
maju();
break;
case '8':
mundur();
break;
case '4':
kiri();
break;
case '6':
kanan();
break;
default:
berhenti();
}
}
}
void maju() { /* Implementasi gerak maju
*/ }
void mundur() { /* Implementasi gerak
mundur */ }
void kiri() { /* Implementasi belok kiri
*/ }
void kanan() { /* Implementasi belok kanan
*/ }
void berhenti() { /* Implementasi berhenti
*/ }
c. Uraikan
cara kerja detector ranjau ketika menjumpai ranjau tank
Detektor ranjau dapat
menggunakan berbagai teknologi, seperti sensor metalik, sensor inframerah, atau
sensor ultrasonik. Di bawah ini, saya uraikan cara kerja menggunakan sensor
metalik:
Cara Kerja:
Deteksi Metal: Sensor
metal mendeteksi adanya logam di sekitarnya. Ini bisa dilakukan dengan
mendeteksi gangguan pada medan elektromagnetik atau perubahan kapasitansi yang
disebabkan oleh logam.
Sinyal dari Sensor: Ketika sensor
mendeteksi adanya logam (misalnya, ranjau), sensor mengirimkan sinyal ke
mikrokontroler.
Pemrosesan Data: Mikrokontroler memproses
sinyal dari sensor untuk menentukan apakah ranjau terdeteksi. Jika ya,
mikrokontroler dapat memicu alarm atau mengindikasikan status melalui LED atau
layar.
Contoh Skema Sederhana dengan Sensor
Metal:
Sensor Metal: Terhubung ke mikrokontroler
(misalnya Arduino) melalui pin input.
Mikrokontroler: Membaca sinyal dari sensor
dan menentukan apakah ada ranjau berdasarkan ambang batas tertentu.
Output: Mikrokontroler mengaktifkan alarm
atau indikator jika ranjau terdeteksi.
Contoh Kode Arduino untuk Sensor Metal:
cpp
Salin kode
const int sensorPin = A0; // Pin sensor metal
const int threshold = 500; // Ambang batas
deteksi metal
const int alarmPin = 13; // Pin LED atau buzzer
void setup() {
Serial.begin(9600);
pinMode(alarmPin, OUTPUT);
}
void loop() {
int sensorValue = analogRead(sensorPin);
if
(sensorValue > threshold) {
digitalWrite(alarmPin, HIGH); // Aktifkan alarm
Serial.println("Ranjau terdeteksi!");
}
else {
digitalWrite(alarmPin, LOW); //
Matikan alarm
}
delay(100); // Tunggu sebentar sebelum membaca lagi
}
Dengan langkah-langkah dan kode di atas,
Anda dapat merancang dan mengimplementasikan sistem kontrol robot beroda,
sistem pengiriman dan penerimaan DTMF, serta detektor ranjau.
6. Kesimpulan
Dalam
sistem pengiriman dan penerimaan kode DTMF, kode DTMF digunakan untuk
mengendalikan robot dengan mengirimkan sinyal audio dari telepon. Dekoder DTMF,
seperti MT8870, digunakan untuk menangkap dan mengubah sinyal DTMF menjadi data
digital yang dapat dibaca oleh mikrokontroler, seperti Arduino. Dengan cara
ini, perintah yang dikirim melalui telepon dapat diinterpretasikan oleh
mikrokontroler, yang kemudian mengendalikan motor sesuai dengan kode yang
diterima, seperti 2 untuk maju, 8 untuk mundur, dan 4 untuk belok kiri.
Detektor
ranjau, di sisi lain, berfungsi untuk mendeteksi keberadaan ranjau dengan
menggunakan sensor metalik. Sensor ini bekerja dengan mendeteksi gangguan pada
medan elektromagnetik atau perubahan kapasitansi yang disebabkan oleh adanya
logam. Sinyal dari sensor diproses oleh mikrokontroler yang kemudian menentukan
apakah ranjau terdeteksi berdasarkan ambang batas tertentu. Jika terdeteksi,
mikrokontroler dapat mengaktifkan alarm atau indikator untuk memberi tahu
pengguna.
Secara
keseluruhan, penerapan teknologi ini memungkinkan pengendalian robot dengan
berbagai cara yang efektif dan aman. Pengendalian robot beroda memerlukan
koordinasi yang tepat antara motor, driver, dan mikrokontroler. Penggunaan kode
DTMF menyediakan metode nirkabel yang praktis untuk kontrol jarak jauh.
Sementara detektor ranjau mengandalkan sensor metalik untuk deteksi yang
akurat, yang sangat penting untuk keamanan dalam aplikasi eksplorasi.
7. Referensi yang digunakan (Ambil dari
Jurnal Internasional dan Nasional)
http://www.amazon.com/Arduino-Robotics-John-David-Warren/dp/1430238973
http://www.arduino.cc/en/Guide/Motors
http://www.instructables.com/Basic-Motor-Control-With-Arduino/
http://www.electronicdatasheets.com/mt8870-dtmf-decoder.html
http://www.electronicwings.com/nodemcu/projects/mt8870-dtmf-decoder-interfacing-with-
http://www.electronics-tutorials.ws/blog/dtmf.html
http://www.amazon.com/Practical-Electronics-Inventors-Paul-Scherz/dp/1260465000
http://www.electronics-tutorials.ws/blog/metal-detectors.html
http://www.instructables.com/Metal-Detector-Using-Arduino/




0 komentar:
Posting Komentar