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].