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 adalah salah satu jenis robot yang
menggunakan roda sebagai sarana utama pergerakannya. Motor DC (Direct Current)
adalah komponen utama yang digunakan untuk menggerakkan roda pada robot. Motor
DC memiliki prinsip kerja berdasarkan elektromagnetisme, di mana arus listrik
yang mengalir melalui kumparan dalam medan magnet akan menghasilkan gaya yang
memutar rotor. Robot beroda yang menggunakan motor DC memiliki kelebihan
seperti kontrol kecepatan yang mudah dengan pengaturan tegangan input, serta
kemampuan untuk dikendalikan arah putarannya (searah atau berlawanan dengan
jarum jam). Penggunaan motor DC sering dikombinasikan dengan komponen lain
seperti encoder untuk mengetahui posisi atau kecepatan roda, serta pengendali
PWM (Pulse Width Modulation) untuk mengatur kecepatan motor secara presisi.
b. Jelaskan
tentang Ranjau Anti Tank
Ranjau anti-tank adalah senjata peledak yang
dirancang untuk merusak atau menghancurkan kendaraan lapis baja, seperti tank.
Ranjau ini biasanya ditanam di bawah tanah atau tersembunyi di permukaan dan
akan meledak ketika tekanan besar diterapkan, seperti saat dilalui oleh
kendaraan berat. Ranjau anti-tank sering kali mengandung bahan peledak kuat
yang ditempatkan dalam casing yang kokoh, dan dilengkapi dengan pemicu yang
sangat sensitif terhadap tekanan. Saat kendaraan melintas di atas ranjau, beban
kendaraan tersebut mengaktifkan pemicu yang meledakkan bahan peledak,
menyebabkan kerusakan signifikan pada kendaraan yang terkena.
c. Jelaskan
tentang Detector Ranjau
Detektor ranjau adalah alat yang digunakan untuk
mendeteksi keberadaan ranjau di bawah tanah atau di permukaan. Detektor ranjau
umumnya bekerja dengan prinsip induksi elektromagnetik, di mana alat tersebut
menghasilkan medan magnet dan mendeteksi perubahan pada medan tersebut yang
dihasilkan oleh benda logam yang terkubur, seperti casing logam pada ranjau. Beberapa
detektor ranjau juga menggunakan teknologi lain seperti radar penembus tanah
(Ground-Penetrating Radar - GPR) atau sensor akustik untuk mendeteksi anomali
di bawah permukaan tanah yang mungkin menunjukkan keberadaan ranjau. Detektor
ranjau sangat penting dalam operasi militer dan kemanusiaan untuk membersihkan
area dari ancaman ranjau.
d. Jelaskan
tentang COM PORT pada Delphi
COM Port (Communication Port) dalam konteks
Delphi adalah antarmuka komunikasi yang digunakan untuk pertukaran data serial
antara komputer dan perangkat eksternal, seperti mikrokontroler, sensor, atau
perangkat lain yang mendukung komunikasi serial. Delphi, sebagai bahasa
pemrograman, memungkinkan penggunaan port serial (COM Port) untuk mengirim dan
menerima data melalui antarmuka serial RS-232. Dalam pemrograman Delphi,
komponen TComPort dapat digunakan untuk membuka port serial, membaca data yang masuk,
dan mengirim data keluar melalui COM Port. Hal ini sering diterapkan pada
proyek yang melibatkan komunikasi dengan perangkat keras seperti robot atau
sistem kontrol otomatis.
e. Jelaskan
tentang Fungsi DTMF pada kirim terima data
DTMF (Dual-Tone Multi-Frequency) adalah sistem
sinyal yang digunakan dalam telekomunikasi untuk mengirimkan informasi numerik
menggunakan kombinasi dua frekuensi suara. Fungsi DTMF adalah untuk
memungkinkan pengiriman dan penerimaan data melalui saluran telepon atau
jaringan komunikasi suara. Setiap tombol pada keypad telepon menghasilkan
kombinasi dua nada dengan frekuensi yang berbeda. DTMF digunakan dalam berbagai
aplikasi seperti sistem telepon interaktif (IVR), remote control jarak jauh
melalui telepon, dan dalam beberapa aplikasi data yang memanfaatkan suara
sebagai media pengiriman informasi. Pada pengiriman dan penerimaan data, DTMF
memungkinkan pengkodean angka atau simbol menjadi sinyal suara yang dapat
diproses dan diinterpretasikan oleh penerima.
4. Langkah percobaan
a. Desain
Menggunakan 3D Max untuk Robot Beroda dan Detector Ranjau
Gambar 1. Sketsa Robot
UGV dan Detector Ranjau
Gambar 2. Sketsa Tampak
Samping kiri
Gambar 3. Sketsa Tampak atas
Gambar 4. Sketsa Tampak
Depan
Gambar 5. Hasil Desain
Robot UGV 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 Unit4;
interface
uses
Winapi.Windows,
Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics,
Vcl.Controls, Vcl.Forms,
Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls,
Vcl.Imaging.pngimage;
type
TForm1 = class(TForm)
Image1: TImage;
Shape1: TShape;
Shape2: TShape;
Label1: TLabel;
Shape5: TShape;
Shape6: TShape;
Label2: TLabel;
Shape9: TShape;
Shape10: TShape;
Label3: TLabel;
Shape13: TShape;
Shape14: TShape;
Label4: TLabel;
Shape17: TShape;
Shape18: TShape;
Label5: TLabel;
Shape21: TShape;
Shape22: TShape;
Label6: TLabel;
Shape25: TShape;
Shape26: TShape;
Label7: TLabel;
Shape29: TShape;
Shape30: TShape;
Label8: TLabel;
ComboBox1: TComboBox;
Button1: TButton;
Button2: TButton;
Label9: TLabel;
Label10: TLabel;
Edit1: TEdit;
Image2: TImage;
procedure
Button1Click(Sender: TObject);
procedure
Button2Click(Sender: TObject);
procedure
Shape18ContextPopup(Sender: TObject; MousePos: TPoint;
var Handled:
Boolean);
private
{ Private declarations
}
public
{ Public declarations
}
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
titik: Integer;
status: String;
pos : String;
begin
titik :=ComboBox1.ItemIndex;
status:=Edit1.Text;
if titik <> -1 then
begin
//Showmassage('Pos yang dipilih: ' + ComboBox1.items [titik]);
pos := ComboBox1.Items[titik];
end
else
begin
//Showmassage('Kosong');
pos :=''
end;
if Edit1.Text='1M' then
begin
Shape2.Brush.Color:= clRed;
Shape2.Visible:=true;
Shape1.Visible:=true;
Label1.Visible:=true;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape9.Visible:=False;
Label3.Visible:=False;
Shape10.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape22.Visible:=False;
Shape21.Visible:=False;
Label6.Visible:=False;
Shape26.Visible:=False;
Shape25.Visible:=False;
Label7.Visible:=False;
end
else
if Edit1.Text='1K' then
begin
Shape2.Brush.Color:= clYellow;
Shape2.Visible:=true;
Shape1.Visible:=true;
Label1.Visible:=true;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape9.Visible:=False;
Label3.Visible:=False;
Shape10.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape9.Visible:=False;
Label3.Visible:=False;
Shape10.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape22.Visible:=False;
Shape21.Visible:=False;
Label6.Visible:=False;
Shape26.Visible:=False;
Shape25.Visible:=False;
Label7.Visible:=False;
Shape30.Visible:=False;
Shape29.Visible:=False;
Label8.Visible:=False;
end
else
if Edit1.Text='1H' then
begin
Shape2.Brush.Color:= clLime;
Shape2.Visible:=true;
Shape1.Visible:=true;
Label1.Visible:=true;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape9.Visible:=False;
Label3.Visible:=False;
Shape10.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape9.Visible:=False;
Label3.Visible:=False;
Shape10.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape22.Visible:=False;
Shape21.Visible:=False;
Label6.Visible:=False;
Shape26.Visible:=False;
Shape25.Visible:=False;
Label7.Visible:=False;
Shape30.Visible:=False;
Shape29.Visible:=False;
Label8.Visible:=False;
end
else
if Edit1.Text='2M' then
begin
Shape6.Brush.Color:= clRed;
Shape5.Visible:=true;
Shape6.Visible:=true;
Label2.Visible:=true;
Shape2.Visible:=False;
Shape1.Visible:=False;
Label1.Visible:=False;
Shape9.Visible:=False;
Label3.Visible:=False;
Shape10.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape18.Visible:=False;
Shape17.Visible:=False;
Shape9.Visible:=False;
Label3.Visible:=False;
Shape10.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape22.Visible:=False;
Shape21.Visible:=False;
Label6.Visible:=False;
Shape26.Visible:=False;
Shape25.Visible:=False;
Label7.Visible:=False;
Shape30.Visible:=False;
Shape29.Visible:=False;
Label8.Visible:=False;
end
else
if Edit1.Text='2K' then
begin
Shape6.Brush.Color:= clYellow;
Shape5.Visible:=true;
Shape6.Visible:=true;
Label2.Visible:=true;
Shape2.Visible:=False;
Shape1.Visible:=False;
Label1.Visible:=False;
Shape9.Visible:=False;
Label3.Visible:=False;
Shape10.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape9.Visible:=False;
Label3.Visible:=False;
Shape10.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape22.Visible:=False;
Shape21.Visible:=False;
Label6.Visible:=False;
Shape26.Visible:=False;
Shape25.Visible:=False;
Label7.Visible:=False;
Shape30.Visible:=False;
Shape29.Visible:=False;
Label8.Visible:=False;
end
else
if Edit1.Text='2H' then
begin
Shape6.Brush.Color:= clLime;
Shape5.Visible:=true;
Shape6.Visible:=true;
Label2.Visible:=true;
Shape2.Visible:=False;
Shape1.Visible:=False;
Label1.Visible:=False;
Shape9.Visible:=False;
Label3.Visible:=False;
Shape10.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape9.Visible:=False;
Label3.Visible:=False;
Shape10.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape22.Visible:=False;
Shape21.Visible:=False;
Label6.Visible:=False;
Shape26.Visible:=False;
Shape25.Visible:=False;
Label7.Visible:=False;
Shape30.Visible:=False;
Shape29.Visible:=False;
Label8.Visible:=False;
end
else
if Edit1.Text='3M' then
begin
Shape10.Brush.Color:=clRed;
Shape9.Visible:=true;
Label3.Visible:=true;
Shape10.Visible:=true;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape2.Visible:=False;
Shape1.Visible:=False;
Label1.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape22.Visible:=False;
Shape21.Visible:=False;
Label6.Visible:=False;
Shape26.Visible:=False;
Shape25.Visible:=False;
Label7.Visible:=False;
Shape30.Visible:=False;
Shape29.Visible:=False;
Label8.Visible:=False;
end
else
if Edit1.Text='3K' then
begin
Shape10.Brush.Color:=clYellow;
Shape9.Visible:=true;
Label3.Visible:=true;
Shape10.Visible:=true;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape2.Visible:=False;
Shape1.Visible:=False;
Label1.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape22.Visible:=False;
Shape21.Visible:=False;
Label6.Visible:=False;
Shape26.Visible:=False;
Shape25.Visible:=False;
Label7.Visible:=False;
Shape30.Visible:=False;
Shape29.Visible:=False;
Label8.Visible:=False;
end
else
if Edit1.Text='3H' then
begin
Shape10.Brush.Color:=clLime;
Shape9.Visible:=true;
Label3.Visible:=true;
Shape10.Visible:=true;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape2.Visible:=False;
Shape1.Visible:=False;
Label1.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape22.Visible:=False;
Shape21.Visible:=False;
Label6.Visible:=False;
Shape26.Visible:=False;
Shape25.Visible:=False;
Label7.Visible:=False;
Shape30.Visible:=False;
Shape29.Visible:=False;
Label8.Visible:=False;
end
else
if Edit1.Text='4M' then
begin
Shape14.Brush.Color:=clRed;
Shape14.Visible:=true;
Shape13.Visible:=true;
Label4.Visible:=true;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape2.Visible:=False;
Shape1.Visible:=False;
Label1.Visible:=False;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape9.Visible:=False;
Label3.Visible:=False;
Shape10.Visible:=False;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape22.Visible:=False;
Shape21.Visible:=False;
Label6.Visible:=False;
Shape26.Visible:=False;
Shape25.Visible:=False;
Label7.Visible:=False;
Shape30.Visible:=False;
Shape29.Visible:=False;
Label8.Visible:=False;
end
else
if Edit1.Text='4K' then
begin
Shape14.Brush.Color:=clYellow;
Shape14.Visible:=true;
Shape13.Visible:=true;
Label4.Visible:=true;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape2.Visible:=False;
Shape1.Visible:=False;
Label1.Visible:=False;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape9.Visible:=False;
Label3.Visible:=False;
Shape10.Visible:=False;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape22.Visible:=False;
Shape21.Visible:=False;
Label6.Visible:=False;
Shape26.Visible:=False;
Shape25.Visible:=False;
Label7.Visible:=False;
Shape30.Visible:=False;
Shape29.Visible:=False;
Label8.Visible:=False;
end
else
if Edit1.Text='4H' then
begin
Shape14.Brush.Color:=clLime;
Shape14.Visible:=true;
Shape13.Visible:=true;
Label4.Visible:=true;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape2.Visible:=False;
Shape1.Visible:=False;
Label1.Visible:=False;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape9.Visible:=False;
Label3.Visible:=False;
Shape10.Visible:=False;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape22.Visible:=False;
Shape21.Visible:=False;
Label6.Visible:=False;
Shape26.Visible:=False;
Shape25.Visible:=False;
Label7.Visible:=False;
Shape30.Visible:=False;
Shape29.Visible:=False;
Label8.Visible:=False;
end
else
if Edit1.Text='5M' then
begin
Shape18.Brush.Color:=clRed;
Shape18.Visible:=true;
Shape17.Visible:=true;
Label5.Visible:=true;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape2.Visible:=False;
Shape1.Visible:=False;
Label1.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape9.Visible:=False;
Label3.Visible:=False;
Shape10.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape22.Visible:=False;
Shape21.Visible:=False;
Label6.Visible:=False;
Shape26.Visible:=False;
Shape25.Visible:=False;
Label7.Visible:=False;
Shape30.Visible:=False;
Shape29.Visible:=False;
Label8.Visible:=False;
end
else
if Edit1.Text='5K' then
begin
Shape18.Brush.Color:=clYellow;
Shape18.Visible:=true;
Shape17.Visible:=true;
Label5.Visible:=true;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape2.Visible:=False;
Shape1.Visible:=False;
Label1.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape9.Visible:=False;
Label3.Visible:=False;
Shape10.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape22.Visible:=False;
Shape21.Visible:=False;
Label6.Visible:=False;
Shape26.Visible:=False;
Shape25.Visible:=False;
Label7.Visible:=False;
Shape30.Visible:=False;
Shape29.Visible:=False;
Label8.Visible:=False;
end
else
if edit1.Text='5H' then
begin
Shape18.Brush.Color:=clLime;
Shape18.Visible:=true;
Shape17.Visible:=true;
Label5.Visible:=true;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape2.Visible:=False;
Shape1.Visible:=False;
Label1.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape9.Visible:=False;
Label3.Visible:=False;
Shape10.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape22.Visible:=False;
Shape21.Visible:=False;
Label6.Visible:=False;
Shape26.Visible:=False;
Shape25.Visible:=False;
Label7.Visible:=False;
Shape30.Visible:=False;
Shape29.Visible:=False;
Label8.Visible:=False;
end
else
if edit1.Text='6M' then
begin
shape22.Brush.Color:=clRed;
Shape22.Visible:=true;
Shape21.Visible:=true;
Label6.Visible:=true;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape2.Visible:=False;
Shape1.Visible:=False;
Label1.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape9.Visible:=False;
Label3.Visible:=False;
Shape10.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape26.Visible:=False;
Shape25.Visible:=False;
Label7.Visible:=False;
Shape30.Visible:=False;
Shape29.Visible:=False;
Label8.Visible:=False;
end
else
if edit1.Text='6K' then
begin
shape22.Brush.Color:=clYellow;
Shape22.Visible:=true;
Shape21.Visible:=true;
Label6.Visible:=true;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape2.Visible:=False;
Shape1.Visible:=False;
Label1.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape9.Visible:=False;
Label3.Visible:=False;
Shape10.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape26.Visible:=False;
Shape25.Visible:=False;
Label7.Visible:=False;
Shape30.Visible:=False;
Shape29.Visible:=False;
Label8.Visible:=False;
end
else
if edit1.Text='6H' then
begin
shape22.Brush.Color:=clLime;
Shape22.Visible:=true;
Shape21.Visible:=true;
Label6.Visible:=true;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape2.Visible:=False;
Shape1.Visible:=False;
Label1.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape9.Visible:=False;
Label3.Visible:=False;
Shape10.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape26.Visible:=False;
Shape25.Visible:=False;
Label7.Visible:=False;
Shape30.Visible:=False;
Shape29.Visible:=False;
Label8.Visible:=False;
end
else
if edit1.Text='7M' then
begin
Shape26.Brush.Color:=clRed;
Shape26.Visible:=true;
Shape25.Visible:=true;
Label7.Visible:=true;
Shape22.Visible:=False;
Shape21.Visible:=False;
Label6.Visible:=False;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape2.Visible:=False;
Shape1.Visible:=False;
Label1.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape9.Visible:=False;
Label3.Visible:=False;
Shape10.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape30.Visible:=False;
Shape29.Visible:=False;
Label8.Visible:=False;
end
else
if edit1.Text='7K' then
begin
Shape26.Brush.Color:=clYellow;
Shape26.Visible:=true;
Shape25.Visible:=true;
Label7.Visible:=true;
Shape22.Visible:=False;
Shape21.Visible:=False;
Label6.Visible:=False;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape2.Visible:=False;
Shape1.Visible:=False;
Label1.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape9.Visible:=False;
Label3.Visible:=False;
Shape10.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape30.Visible:=False;
Shape29.Visible:=False;
Label8.Visible:=False;
end
else
if edit1.Text='7H' then
begin
Shape26.Brush.Color:=clLime;
Shape26.Visible:=true;
Shape25.Visible:=true;
Label7.Visible:=true;
Shape22.Visible:=False;
Shape21.Visible:=False;
Label6.Visible:=False;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape2.Visible:=False;
Shape1.Visible:=False;
Label1.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape9.Visible:=False;
Label3.Visible:=False;
Shape10.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape30.Visible:=False;
Shape29.Visible:=False;
Label8.Visible:=False;
end
else
if edit1.Text='8M' then
begin
Shape30.Brush.Color:=clRed;
Shape30.Visible:=true;
Shape29.Visible:=true;
Label8.Visible:=true;
Shape26.Visible:=False;
Shape25.Visible:=False;
Label7.Visible:=False;
Shape22.Visible:=False;
Shape21.Visible:=False;
Label6.Visible:=False;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape2.Visible:=False;
Shape1.Visible:=False;
Label1.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape9.Visible:=False;
Label3.Visible:=False;
Shape10.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
end
else
if edit1.Text='8K' then
begin
Shape30.Brush.Color:=clYellow;
Shape30.Visible:=true;
Shape29.Visible:=true;
Label8.Visible:=true;
Shape26.Visible:=False;
Shape25.Visible:=False;
Label7.Visible:=False;
Shape22.Visible:=False;
Shape21.Visible:=False;
Label6.Visible:=False;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape2.Visible:=False;
Shape1.Visible:=False;
Label1.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape9.Visible:=False;
Label3.Visible:=False;
Shape10.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
end
else
if Edit1.Text='8H' then
begin
Shape30.Brush.Color:=clLime;
Shape30.Visible:=true;
Shape29.Visible:=true;
Label8.Visible:=true;
Shape26.Visible:=False;
Shape25.Visible:=False;
Label7.Visible:=False;
Shape22.Visible:=False;
Shape21.Visible:=False;
Label6.Visible:=False;
Shape18.Visible:=False;
Shape17.Visible:=False;
Label5.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape2.Visible:=False;
Shape1.Visible:=False;
Label1.Visible:=False;
Shape5.Visible:=False;
Shape6.Visible:=False;
Label2.Visible:=False;
Shape9.Visible:=False;
Label3.Visible:=False;
Shape10.Visible:=False;
Shape14.Visible:=False;
Shape13.Visible:=False;
Label4.Visible:=False;
end;
if (pos='1') and (status='M') then
begin
Shape2.Brush.Color:= clRed;
end
else
if (pos='2') and (status='H') then
begin
Shape6.Brush.Color:= clLime;
end
else
if (pos='2') and (status='K') then
begin
Shape6.Brush.Color:= clYellow;
end
else
if (pos='2') and (status='M') then
begin
Shape6.Brush.Color:= clRed;
end
else
if (pos='3') and (status='H') then
begin
Shape10.Brush.Color:= clLime;
end
else
if (pos='3') and (status='K') then
begin
Shape10.Brush.Color:= clYellow;
end
else
if (pos='3') and (status='M') then
begin
Shape10.Brush.Color:= clRed;
end
else
if (pos='4') and (status='H') then
begin
Shape14.Brush.Color:= clLime;
end
else
if (pos='4') and (status='K') then
begin
Shape14.Brush.Color:= clYellow;
end
else
if (pos='4') and (status='M') then
begin
Shape14.Brush.Color:= clRed;
end
else
if (pos='5') and (status='H') then
begin
Shape18.Brush.Color:= clLime;
end
else
if (pos='5') and (status='K') then
begin
Shape18.Brush.Color:= clYellow;
end
else
if (pos='5') and (status='M') then
begin
Shape18.Brush.Color:= clRed;
end
else
if (pos='6') and (status='H') then
begin
Shape22.Brush.Color:= clLime;
end
else
if (pos='6') and (status='K') then
begin
Shape22.Brush.Color:= clYellow;
end
else
if (pos='6') and (status='M') then
begin
Shape22.Brush.Color:= clRed;
end
else
if (pos='7') and (status='H') then
begin
Shape26.Brush.Color:= clLime;
end
else
if (pos='7') and (status='K') then
begin
Shape26.Brush.Color:= clYellow;
end
else
if (pos='7') and (status='M') then
begin
Shape26.Brush.Color:= clRed;
end
else
if (pos='8') and (status='H') then
begin
Shape30.Brush.Color:= clLime;
end
else
if (pos='8') and (status='K') then
begin
Shape30.Brush.Color:= clYellow;
end
else
if (pos='8') and (status='M') then
begin
Shape30.Brush.Color:= clRed;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Form1.Close;
end;
procedure TForm1.Shape18ContextPopup(Sender: TObject; MousePos: TPoint;
var Handled: Boolean);
begin
end;
end.
5. Hasil dan Pembahasan
a. Tampilkan bukti
rangkaian Control, rangkaian Detector Ranjau, tampilkan dalam Protheus
b. Tampilkan
bukti hasil program Delphi tentang Deteksi Daerah Ranjau dan VIdeokan
Pembahasan :
c. Uraikan
cara kerja rangkaian control robot beroda gerak maju mundur belok kanan, kiri
dan berhenti. Buatkan tabel logikanya
1) Rangkaian Kontrol Robot Beroda
Robot
beroda biasanya menggunakan dua motor DC yang dikendalikan oleh H-Bridge
(L298N) atau modul motor driver yang dapat mengatur arah dan kecepatan motor.
Dengan dua motor, kita dapat mengontrol pergerakan robot ke berbagai arah:
·
Maju: Kedua motor bergerak ke depan. Arduino
mengirimkan sinyal ke H-Bridge untuk menggerakkan kedua motor dalam arah yang
sama ke depan (misalnya, memberikan tegangan positif pada kedua motor).
·
Mundur: Kedua motor bergerak ke belakang. Arduino
memberikan sinyal tegangan negatif ke kedua motor melalui H-Bridge untuk
bergerak mundur.
·
Belok
Kanan: Motor kiri bergerak ke
depan, motor kanan berhenti atau bergerak mundur. Motor kiri diberi sinyal
maju, sementara motor kanan diberi sinyal berhenti atau mundur.
·
Belok
Kiri: Motor kanan bergerak
ke depan, motor kiri berhenti atau bergerak mundur. Motor kanan diberi sinyal
maju, sementara motor kiri berhenti atau mundur.
·
Berhenti: Kedua motor berhenti. Arduino memutuskan
sinyal ke kedua motor (tidak ada tegangan yang diberikan), menyebabkan motor
berhenti.
d. Kirim
terima DTMF Code angka 2, 8, 4, 5, dst.
Berdasarkan
tabel yang Anda unggah, yang menunjukkan Tabel Fungsi Dekode DTMF (dengan kode
Q1 hingga Q4), inilah cara pengiriman dan penerimaan kode DTMF untuk angka 2,
8, 4, 5, dst.:
1) Kolom Q4, Q3, Q2, Q1: Menyediakan
representasi biner untuk masing-masing digit (1-9, 0, *, #) yang dihasilkan
dari dekoder DTMF.
2) Setiap
digit pada keypad menghasilkan keluaran logika biner yang terdiri dari
kombinasi bit Q4, Q3, Q2, dan Q1. Bit-bit ini kemudian diterima oleh
mikrokontroler atau perangkat pengendali lain untuk diproses lebih lanjut.
3) Contoh
Kirim/Terima untuk Digit 2, 8, 4, dan 5:
·
Angka
2 (Frekuensi DTMF: 697 Hz dan 1336 Hz. Kode Biner (Q4 Q3 Q2 Q1):
0 0 1 0.)
·
Angka
8 (Frekuensi DTMF: 852 Hz dan 1336 Hz. Kode Biner (Q4 Q3 Q2 Q1):
1 0 1 0.)
·
Angka
4 (Frekuensi DTMF: 770 Hz dan 1209 Hz. Kode Biner (Q4 Q3 Q2 Q1):
0 1 0 0.)
·
Angka
5 (Frekuensi DTMF: 770 Hz dan 1336 Hz. Kode Biner (Q4 Q3 Q2 Q1):
0 1 0 1.)
4) Setiap
digit pada keypad menghasilkan keluaran logika biner yang terdiri dari
kombinasi bit Q4, Q3, Q2, dan Q1. Bit-bit ini kemudian diterima oleh
mikrokontroler atau perangkat pengendali lain untuk diproses lebih lanjut.
e. Uraikan
cara kerja detector ranjau ketika menjumpai ranjau tank
Detektor
ranjau bekerja dengan mendeteksi objek logam yang terkubur di bawah permukaan
tanah atau di atas tanah. Ada beberapa jenis detektor ranjau yang sering
digunakan, seperti detektor elektromagnetik dan radar penembus tanah
(Ground-Penetrating Radar - GPR). Berikut adalah uraian cara kerja detektor
ranjau anti-tank:
1) Sensor Electromagnetic Induction (Induksi
Elektromagnetik)
·
Detektor
menghasilkan medan elektromagnetik dan mendeteksi perubahan dalam medan
tersebut yang disebabkan oleh benda logam yang terkubur, seperti casing logam
pada ranjau tank.
·
Ketika
medan elektromagnetik dari detektor bertabrakan dengan ranjau yang terbuat dari
logam, arus eddy (arus pusar) akan diinduksi dalam logam tersebut. Arus eddy
ini mengubah karakteristik medan elektromagnetik yang terdeteksi oleh detektor.
·
Detektor
mengirim sinyal ke mikrokontroler (misalnya, Arduino), yang kemudian memicu
alarm atau memberi sinyal bahwa ada objek logam yang terdeteksi.
2) Ground-Penetrating
Radar (GPR)
·
GPR
mengirimkan gelombang radio ke tanah dan mendeteksi pantulan gelombang tersebut
dari objek di bawah permukaan. Ketika ada ranjau tank atau benda asing di bawah
tanah, gelombang radar memantul dengan pola tertentu yang berbeda dari tanah
kosong.
·
Saat
gelombang radar memantul dari objek seperti ranjau tank, detektor
mengidentifikasi pola pantulan tersebut sebagai indikasi keberadaan ranjau.
·
GPR
mengirimkan data ke mikrokontroler yang kemudian mengolah sinyal tersebut dan
mengidentifikasi lokasi ranjau untuk ditampilkan pada antarmuka pengguna
(misalnya, di laptop yang menjalankan Delphi).
3) Respon
Robot Setelah Deteksi
·
Ketika
sensor mendeteksi ranjau, Arduino akan menghentikan pergerakan motor dan
mengirim sinyal ke Ground Station (misalnya, laptop dengan Delphi) yang
akan menampilkan lokasi deteksi ranjau pada peta.
·
Ini
memungkinkan operator untuk mengambil tindakan lebih lanjut, seperti
menghindari ranjau atau memulai prosedur untuk menjinakkannya.
6. Kesimpulan
Dalam
rangkaian kontrol robot beroda, untuk mengendalikan pergerakan seperti maju,
mundur, belok kiri, belok kanan, dan berhenti, Anda memerlukan beberapa
komponen utama seperti motor DC, driver motor (seperti L298N atau L293D), dan
mikrokontroler (seperti Arduino). Motor DC bertanggung jawab untuk menggerakkan
roda, sementara driver motor mengontrol aliran arus ke motor, dan
mikrokontroler memberikan sinyal kontrol berdasarkan perintah yang diterima.
Sistem ini beroperasi dengan cara motor berputar ke arah yang sama untuk maju,
berputar ke arah yang berlawanan untuk mundur, dan berputar searah atau
berlawanan arah untuk belok kiri atau kanan. Ketika perintah berhenti
diberikan, kedua motor tidak berputar, menghentikan pergerakan robot.
Sementara itu, 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)
a. "Design and Implementation of a
Landmine Detection Robot Using GSM and GPS." In Proceedings of
[Conference/Journal Name], [City, Country], [Date]; IEEE: Piscataway, NJ, USA,
[Year]; pp. [Page Range]. [Google Scholar].
b. "Automated Guided Vehicles for Mine
Detection: A Review of Techniques and Technologies." In Proceedings of
[Conference/Journal Name], [City, Country], [Date]; Elsevier: Amsterdam, The
Netherlands, [Year]; pp. [Page Range]. [Google Scholar].
c. "Dual Tone Multi Frequency (DTMF)
Controlled Robot for Remote Operations." In Proceedings of
[Conference/Journal Name], [City, Country], [Date]; Springer:
Berlin/Heidelberg, Germany, [Year]; pp. [Page Range]. [Google Scholar].
d. "Development of a Real-Time Monitoring
and Control System for Unmanned Vehicles Using Delphi Programming." In
Proceedings of [Conference/Journal Name], [City, Country], [Date]; Elsevier:
Amsterdam, The Netherlands, [Year]; pp. [Page Range]. [Google Scholar]
e. "Mine Detection Using Ground
Penetrating Radar Mounted on an Autonomous Vehicle." In Proceedings of
[Conference/Journal Name], [City, Country], [Date]; Wiley: Hoboken, NJ, USA,
[Year]; pp. [Page Range]. [Google Scholar].








