Jumat, 06 September 2024

MEMBUAT ROBOT RODA MENDETEKSI RANJAU ANTI TANK

 

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

Cari Blog Ini

Diberdayakan oleh Blogger.

BTemplates.com

MEMBUAT ROBOT HUMANOID