modul 4

Robot Pengantar Makanan 

untuk Ruangan Isolasi Covid-19




1. Tujuan [Kembali]

Alat ini dirancang dengan beberapa tujuan berikut.
  • Dapat mengerti cara kerja dari sensor warna dan ultrasonik serta dapat mengimplementasikannya
  • Dapat mengerti sistem dari komunikasi serial dan mengetahui cara penggunaannya
  • Robot ini membantu perawat pasien covid untuk mengantar makanan ke pasien covid
  • Meminimalisir tertularnya virus covid ke perawat pasien covid dan mengunjung rumah sakit

2. Alat dan Bahan [Kembali]

  • Alat

Nama Gambar
Solder
Jual Solder 40 Watt / Soldering Iron 40W / Solder Gagang Plastik 40 W -  Kota Depok - GRAHA ELECTRIC SHOP | Tokopedia
Multimeter
What Is a Multimeter?
Bor
5 Mesin Bor Berkualitas dari Bitec dengan Harga Murah | BukaReview
Printer 3D
Jual 3D Printer Anet - Autoleveling | DigiWare
Perkakas
Habo Alat Set Perkakas Bor Listrik Palu Tang Obeng Kunci Pas Gergaji 102 in  1 - TZ168 - JakartaNotebook.com
 
 
  • Bahan
Nama Jumlah Gambar
Arduino Pro Mini 2 pcs
Motor DC + Gearbox + Roda 2 pcs
IC L293D 1 pcs
Sensor Warna TCS34725 1 pcs
Sensor Ultrasonik PING ))) 3 pcs
Spacer 2cm 12 pcs
LED 5mm (merah, biru, hijau) 1 pcs
Buzzer Aktif 5V 1 pcs
Resistor 300R 3 pcs
Block Header 3 pcs
Pinhead Female 1x40p 2 pcs
Pinhead Male 1x40p 1 pcs
LCD 16x2 1 pcs
Baterai LiOn 18650 2 pcs
Holder Baterai untuk 2 Baterai 1 pcs
Kabel Serabut 24 AWG Secukupnya
Timah Solder Secukupnya

3. Dasar Teori [Kembali]


Arduino Pro Mini

    Arduino Pro Mini adalah sebuah papan mikrokontroler berbasis ATmega168 (datasheet) pada mulanya, namun kemudian ditingkatkan lagi menggunakan ATmega328. Pro Mini memiliki 14 pin digital input/output (yang mana 6 pin digunakan sebagai ouput PWM), 8 pin input analog, sebuah resonator, sebuah tombol reset, dan lubang-lubang untuk memasang kepala pin. Terdapat 6 kepala pin yang dapat dihubungkan ke kabel FTDI atau ke kabel USB Adapter lainnya untuk memberikan tegangan dari USB dan berkomunikasi antara komputer dengan Arduino Pro Mini. Arduino Pro Mini tidak dapat langsung dihubungkan ke komputer karena Pro Mini tidak memiliki USB Adapter terintegrasi sehingga para pengguna diwajibkan menyediakan USB Adapter tersendiri. Ada beberapa USB Adapter yang tersedia di pasaran dari mulai yang mahal hingga yang termurah. Penggunan bisa menggunakan USB Adapter dengan chip ATmega16U2, FTDI, CP1202, atau CH340. Pada dasarnya Arduino Pro Mini hanyalah breakout dari chip ATmega168/ATmega328 hanya saja dilengkapi dengan beberapa komponen pelengkap.

    Pro Mini dibuat dengan tujuan sebagai papan yang dipasang didalam objek semi-permanen atau sekedar sebagai pertunjukan. Papan Pro Mini pada umumnya dijual tanpa pin kepala yang terpasang pada lubang, hal ini memberikan keleluasaan kepada para penggunanya untuk memasang pin kepala sesuai keinginannya atau bahkan langsung dihubungkan ke kabel. Dipasaran ada 2 versi papan Pro Mini. Jenis pertama yang bekerja pada tegangan 3,3 Volt dengan pewaktu 8 MHz, sedangkan papan lainnya bekerja pada tegangan 5 Volt dengan pewaktu 16 MHz. Pinout Arduino Pro Mini sama dengan Pinout Arduino Mini hanya saja ukuran papan yang berbeda. Papan Arduino Pro Mini dibuat dan dikembangkan oleh perusaahaan SparkFun Electronics.

Ringkasan Spesifikasi

Dibawah ini spesifikasi sederhana dari Arduino Pro Mini:




Motor DC

 
    Motor DC adalah motor listrik yang memerlukan suplai tegangan arus searah pada kumparan medan untuk diubah menjadi energi gerak mekanik. Kumparan medan pada motor dc disebut stator (bagian yang tidak berputar) dan kumparan jangkar disebut rotor (bagian yang berputar).
    Secara teori, Motor DC adalah Motor listrik yang membutuhkan suplai tegangan arus searah atau arus DC (Direct Current) pada kumparan medan untuk diubah menjadi energi mekanik. Kumparan medan pada motor tersebut disebut stator, dan kumparan jangkar disebut rotor. Pada percobaan ini menggunakan motor DC dengan tipe pompa air.
 

Driver Motor L293D

 

IC L293D ini digunakan sebagai motor driver dalam rangkaian elektronika mikro kontroller yang menggunakan motor DC.

IC L293D adalah sirkuit terpadu (IC) dual H-Bridge driver untuk rangkaian motor DC. Driver motor ini bertindak sebagai penguat arus dengan mengambil sinyal kontrol arus rendah dan memberikan output ke sinyal kontrol arus yang lebih tinggi. Sinyal arus yang lebih tinggi ini lah yang digunakan untuk menggerakkan motor.

Sirkuit terpadu IC L293D berisi dua buah sirkuit H-Bridge. Dalam modus umum, dua motor DC dapat digerakkan secara bersamaan, dengan arah gerak motor yang dapat ditentukan. Operasi motor dua motor dapat dikendalikan oleh input logic pada pin 2 & 7 dan 10 & 15. Input logic 00 atau 11 akan menghentikan motor. Input logic 01 dan 10 akan memutar di searah jarum jam atau berlawanan arah jarum jam.

Berikan nilai HIGH pada pin 1 dan 9 (sesuai dengan dua motor) agar motor mulai beroperasi. Ketika pin tersebut diberi nilai HIGH, driver terkait akan diaktifkan. Sebaliknya ketika diberi nilai LOW maka motor akan berhenti.

  • Kontrol hingga 2 motor DC
  • Arus motor 600mA
  • PWM input
  • Voltage 5V logic
  • DIP pin 16

 

Sensor Warna TCS34725

    Sensor warna TCS230 adalah sensor warna yang sering digunakan pada aplikasi mikrokontroler untuk pendeteksian suatu object benda atau warna dari objet yang di monitor.

Spesifikasi:
- Power supply 3-5v
- Serial interface I2C (SDA SCL)
- Tidak terpengaruh cahaya infrared / IR
- Tahan dari interferensi cahaya
- LED dapat dikendalikan (nyala atau mati)
- Dapat mendeteksi warna obyek dalam kondisi kurang cahaya
- Jarak baca optimum 1 cm 

Sensor Ping )))

   

Sensor ini merupakan sensor ultrasonik siap pakai, satu alat yang berfungsi sebagai pengirim, penerima, dan pengontrol gelombang ultrasonik. Alat ini bisa digunakan untuk mengukur jarak benda dari 2cm - 4m dengan akurasi 3mm. Alat ini memiliki 4 pin, pin Vcc, Gnd, Trigger, dan Echo. Pin Vcc untuk listrik positif dan Gnd untuk ground-nya. Pin Trigger untuk trigger keluarnya sinyal dari sensor dan pin Echo untuk menangkap sinyal pantul dari benda.

Cara menggunakan alat ini yaitu: ketika kita memberikan tegangan positif pada pin Trigger selama 10uS, maka sensor akan mengirimkan 8 step sinyal ultrasonik dengan frekuensi 40kHz. Selanjutnya, sinyal akan diterima pada pin Echo. Untuk mengukur jarak benda yang memantulkan sinyal tersebut, maka selisih waktu ketika mengirim dan menerima sinyal digunakan untuk menentukan jarak benda tersebut.

Berikut adalah visualisasi dari sinyal yang dikirimkan oleh sensor HC-SR04

Nilai jarak dapat diperoleh melalui rumus berikut ini:

Jarak (cm) = Lama Waktu Pantul (uS) / 29.034 / 2

Rumus jarak didapat dari pembagian lama waktu pantul dengan kecepatan gelombang ultrasonik dan dibagi 2 karena pada saat pemantulan terjadi dua kali jarak tempuh antara sensor dengan objek.Yaitu pada saat gelombang dipancarkan dari transmitter ke objek dan pada saat gelombang memantul ke receiver ultrasonik.

Grafik Respon Sensor:

 

LCD 16x2

Liquid Crystal Display (LCD) adalah sebuah peralatan elektronik yang berfungsi untukmenampilkan output sebuah sistem dengan cara membentuk suatu citra atau gambaran pada sebuah layar. Secara garis besar komponen penyusun LCD terdiri dari kristal cair (liquid crystal) yang diapit oleh 2 buah elektroda transparan dan 2 buah filter polarisasi (polarizing filter).

Gambar Penampang komponen penyusun LCD

Keterangan:

1.        Film dengan polarizing filter vertical untuk memolarisasi cahaya yang masuk.

2.        Glass substrate yang berisi kolom-kolom elektroda Indium tin oxide (ITO).

3.        Twisted nematic liquid crystal (kristal cair dengan susunan terpilin).

4.        Glass substrate yang berisi baris-baris elektroda Indium tin oxide (ITO).

5.        Film dengan polarizing filter horizontal untuk memolarisasi cahaya yang masuk.

6.      Reflektor cahaya untuk memantulkan cahaya yang masuk LCD kembali ke mata pengamat.

Sebuah citra dibentuk dengan mengombinasikan kondisi nyala dan mati dari pixel-pixel yang menyusun layar sebuah LCD. Pada umumnya LCD yang dijual di pasaran sudah memiliki integrated circuit tersendiri sehingga para pemakai dapat mengontrol tampilan LCD dengan mudah dengan menggunakan mikrokontroler untuk mengirimkan data melalui pin-pin input yang sudah tersedia.




LED


Light Emitting Diode atau yang sering disingkat LED merupakan sebuah komponen elektromagnetik yang dapat memancarkan cahaya monokromatik melalui tegangan maju. LED terbuat dari bahan semi konduktor yang merupakan keluarga dioda. LED dapat memancarkan berbagai warna, tergantung dari bahan semikonduktor yang digunakan. LED juga dapat memancarkan cahaya inframerah yang tak tampat, seperti pada remote TV.

Cara Kerja

    Cara kerja dari LED hampir sama dengan keluarga dioda yang memiliki dua kutub, yaitu Kutub Positif (P) dan Kutub Negatif (N). LED hanya akan memancarkan cahaya apabila dialiri tegangan maju (bias foward) dari Anoda ke Katoda. LED sendiri terdiri atas sebuah chip semikonduktor yang didopping, sehingga menciptakan junction antara kutub P dan kutub N. Proses dopping dalam semikonduktor adalah proses untuk menambahkan impurity / ketidakmampuan pada semikonduktr yang murni, sehingga dapat emnghasilkan karakteristik kelistrikan yang diinginkan.

Buzzer

    Buzzer Listrik adalah sebuah komponen elektronika yang dapat mengubah sinyal listrik menjadi getaran suara. Pada umumnya, Buzzer yang merupakan sebuah perangkat audio ini sering digunakan pada rangkaian anti-maling, Alarm pada Jam Tangan, Bel Rumah, peringatan mundur pada Truk dan perangkat peringatan bahaya lainnya. Jenis Buzzer yang sering ditemukan dan digunakan adalah Buzzer yang berjenis Piezoelectric, hal ini dikarenakan Buzzer Piezoelectric memiliki berbagai kelebihan seperti lebih murah, relatif lebih ringan dan lebih mudah dalam menggabungkannya ke Rangkaian Elektronika lainnya. Buzzer yang termasuk dalam keluarga Transduser ini juga sering disebut dengan Beeper.

Resistor

 

 

 Resistor atau hambatan yaitu salah satu komponen elektronika yang punya nilai hambatan tertentu, dimana hambatan ini akan menghambat arus listrik yang mengalir melaluinya. Sebuah resistor biasanya terbuat dari bahan campuran Carbon. Tapi tidak sedikit juga resistor yang terbuat dari kawat nikrom, sebuah kawat yang punya resistansi yang cukup tinggi dan tahan pada arus kuat. Contohnya, penggunaan kawat nikrom bisa dilihat pada elemen pemanas setrika. Jika elemen pemanas tersebut dibuka, maka ada seutas kawat spiral yang biasa disebut dengan kawat nikrom.

Satuan Resistor yaiti Ohm (Ω) yang merupakan satuan SI buat Resistansi listrik.

Fungsi Resistor

Ada beberapa fungsi dari Resistor yang harus kamu ketahui, yaitu:

~ Fungsi resistor yaitu buat membatasi arus listrik yang mengalir.

~ Fungsi resistor buat aplikasi DC yang membutuhkan keakuratan yang sangat tinggi. Contoh, aplikasi penggunaan resistor ini yaitu DC Measuring equipment, dan reference gulators buat voltage regulator dan decoding Network.

~ Fungsi resistor sebagai standart didalam verifikasi keakuratan dari suatu alat ukur resistive.

~ Fungsi resistor buat pengatur tegangan output pada power supplay.

~ Fungsi resistor buat aplikasi power, karena membutuhkan frekuensi respon yang baik, daya yang tinggi dan nilai yang lebih besar dari pada power wirewound resistor.

~ Fungsi resistor pembagi tegangan.

 

Karakteristik Resistor

Ada beberapa karakteristik utama pada sebuah resistor, yaitu sebagai berikut:

~ Resistansi terhadap daya listrik yang dapat boros

~ Koefisien suhu, desah listrik, dan induktansi

~ Resistor bersifat resistif

~ Terbuat dari bahan karbon


 

Baterai LiOn 18650

    Baterai ini adalah jenis battery yang dapat di cas ulang (rechargeable). Kebanyakan perangkat elektronik portable yang membutuhkan tenaga besar dan tahan lama dipastikan menggunakan battery 18650. Sebut saja misalnya laptop, power bank, wireless bluetooth speaker, perangkat remote control, mobil, helicopter. Alat pertukangan bor atau obeng wireless, lampu senter LED, rokok elektronik dan sebagainya.

Ukuran Battery
Nama Battery Lithium-Ion (Li-Ion) 18650, merujuk pada ukuran fisiknya yang berbentuk silinder. Angka 18 untuk diameter battery 18 mm dan angka 650 untuk ukuran tinggi battery, 65,0 mm. Angka “0” dibelakang koma merujuk pada toleransi tinggi total battery berdasarkan jenis produk battery 18650 tersebut. Seperti:
– terdapat rangkaian proteksi atau tidak (protected atau unprotected), jika terdapat rangkaian proteksi, battery sedikit akan lebih panjang.
– kutub positif battery dari jenis flat top di mana kutub positif battery datar hampir rata dengan body-nya atau
– kutub positif yang terdapat tonjolan kecil (button top) seperti yang terdapat pada kutub positif battery ukuran AA atau AAA.

Tegangan dan kapasitas
Tegangan kerja Battery Lithium-Ion 18650 adalah 3,7 Volt. Maksimum dapat di cas 4,2 Volt dan battery dianggap kosong pada tegangan 2,8 – 3,0 Volt. Jadi ketika anda mengukur tegangan battery-nya 2,8 – 3,0 V, berati battery tersebut sudah kosong, alias perlu di cas kembali. Sedang kemampuan menyimpan arus listrik beragam tergantung produksinya. Dan secara umum diketahui battery ini maksimal meiliki kapasitas 3600 mAH. Ada yang 3400 mAH, 2500 mAH, 2200 mAH, 1500 mAH dan sebagainya. Namun maksimal yang dapat diproduksi hingga kini hanya dapat menyimpan arus maksimal 3600 mAH.
mAH adalah singkatan dari mili Ampere Hour, satuan untuk kapastias arus listrik yang dapat disimpan battery. Misalkan kita punya battery 18650 dengan kapasitas 3000 mAH. Ini artinya, battery tersebut dapat menyuplai arus listrik 3000 mA (3 Ampere) selama satu jam.


4. Flowchart [Kembali]

Terdapat 2 mikrokontroler yang saling berkomunikasi untuk menjalankan fungsinya sebagai Robot Pengantar Makanan, yaitu Unit Navigasi dan Unit Utama.

A. Unit Navigasi

1. Main




2. Subroutines


B. Unit Utama

 

1. main



2. subroutines

5. Listing Program [Kembali]

Unit Navigasi
#include <NewPing.h>

// Jumlah sensor
#define SONAR_NUM     3
// Jarak maksimum (dalam cm)
#define MAX_DISTANCE  100 

// Perintah
#define STOP          0
#define FORWARD       1
#define LEFT          2
#define RIGHT         3

// Objek sensor
NewPing sonar[SONAR_NUM] = {   
  /*
   Parameter: trig, echo, jarak maksimum
   Karena sensor Ping))) menggabungkan pin trig dan echo
   Maka pin trig dan echo disamakan 
  */
  NewPing(8, 8, MAX_DISTANCE), 
  NewPing(9, 9, MAX_DISTANCE),
  NewPing(10, 10, MAX_DISTANCE)
};

// Variabel perintah yang akan dikirimkan
uint8_t command = 0;

uint8_t distances[3];

/*
 * distances[0] -> Sensor depan
 * distances[1] -> Sensor samping 1
 * distances[2] -> Sensor samping 2
 */
 
void setup() {
  Serial.begin(9600); // membuka komunikasi serial (UART) dengan baudrate 9600bps
}

void loop() {
  for (uint8_t i = 0; i < 3; i++) {
    // Ukur jarak
    distances[i] = sonar[i].ping_cm();
    // Jika jarak melewati batas maksimum, jarak akan sama dengan 0 
    // Ubah jarak jika sama dengan 0 menjadi jarak maksimum (100cm)
    distances[i] = (distances[i] == 0) ? 100 : distances[i];
    delay(30);
  }

  // Hitung perbedaan jarak sensor samping 1 dan 2 
  int8_t diff = distances[0] - distances[1];
  // Cek sensor depan terhalang/tidak terhalang
  if (distances[2] > 15) {
    if (abs(diff) > 2) {
      if (diff > 0) {
        //kanan
        command = LEFT;
      } else {
        //kiri
        command = RIGHT;
      }
    } else {
      //lurus
      command = FORWARD;
    }
  } else {
    // berhenti
    command = LEFT;
  } 
  // Kirim perintah ke unit utama
  Serial.write(command);
}
Unit Utama

// Libary untuk sensor warna TCS34725
#include <Wire.h>
#include "Adafruit_TCS34725.h"

// Membuat objek sensor warna
Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_50MS, TCS34725_GAIN_4X);

// Mendefinisikan konstanta
#define in1_R         8
#define in2_R         9
#define en1           10

#define en2           11
#define in1_L         12
#define in2_L         13

#define STOP          0
#define FORWARD       1
#define LEFT          2
#define RIGHT         3

#define LED_R         A0
#define LED_G         A1
#define LED_B         A2

#define BUZZER        A3

// Mendeklarasikan variabel
uint8_t command;
long lastCheck;

void setup() {
  // Mengatur I/O
  pinMode(in1_L, OUTPUT);
  pinMode(in2_L, OUTPUT);
  pinMode(in1_R, OUTPUT);
  pinMode(in2_R, OUTPUT);

  pinMode(en1, OUTPUT);
  pinMode(en2, OUTPUT);

  pinMode(LED_R, OUTPUT);
  pinMode(LED_G, OUTPUT);
  pinMode(LED_B, OUTPUT);

  pinMode(BUZZER, OUTPUT);

  
  if (!tcs.begin()) while (1);

  analogWrite(en1, 100);
  analogWrite(en2, 100);

  Serial.begin(9600);
}

void loop() {
  // Membaca perintah
  command = Serial.read();

  // Mengecek warna
  if (millis() - lastCheck > 1000) {
    float red, green, blue;
    tcs.getRGB(&red, &green, &blue);
    if (green > 100) {
      stop();
      digitalWrite(LED_R, HIGH);
      for (int i = 0; i < 5; i++) {
        digitalWrite(BUZZER, HIGH);
        delay(100);
        digitalWrite(BUZZER, LOW);
        delay(100);
      }
      delay(1000);
    } else if (red > 100) {
      stop();
      digitalWrite(LED_G, HIGH);
      for (int i = 0; i < 5; i++) {
        digitalWrite(BUZZER, HIGH);
        delay(100);
        digitalWrite(BUZZER, LOW);
        delay(100);
      }
      delay(1000);
    } else if (blue > 110) {
      stop();
      digitalWrite(LED_B, HIGH);
      for (int i = 0; i < 5; i++) {
        digitalWrite(BUZZER, HIGH);
        delay(100);
        digitalWrite(BUZZER, LOW);
        delay(100);
      }
      delay(1000);
    } else {
      digitalWrite(LED_R, LOW);
      digitalWrite(LED_G, LOW);
      digitalWrite(LED_B, LOW);
      digitalWrite(BUZZER, LOW);
    }
    lastCheck = millis();
  }

  // Mengeksekusi perintah
  switch (command) {
    case STOP:
      Serial.println("Berhenti");
      stop();
      break;
    case LEFT:
      Serial.println("Belok Kiri");
      turnLeft();
      break;
    case RIGHT:
      Serial.println("Belok Kanan");
      turnRight();
      break;
    case FORWARD:
      Serial.println("Maju");
      forward();
      break;
  }
}
void turnLeft() {
  digitalWrite(in1_L, LOW);
  digitalWrite(in2_L, LOW);
  digitalWrite(in1_R, LOW);
  digitalWrite(in2_R, HIGH);
}
void turnRight() {
  digitalWrite(in1_L, LOW);
  digitalWrite(in2_L, HIGH);
  digitalWrite(in1_R, LOW);
  digitalWrite(in2_R, LOW);
}
void stop() {
  digitalWrite(in1_L, LOW);
  digitalWrite(in2_L, LOW);
  digitalWrite(in1_R, LOW);
  digitalWrite(in2_R, LOW);
}
void forward() {
  digitalWrite(in1_L, LOW);
  digitalWrite(in2_L, HIGH);
  digitalWrite(in1_R, LOW);
  digitalWrite(in2_R, HIGH);
}

6. Rangkaian Simulasi [Kembali]


A. Unit Navigasi


B. Unit Utama


7. Video [Kembali]





8. Prinsip Kerja [Kembali]

    pertama slave akan mendeteksi data dari sensor ultrasonic menuju dinding dan akan memproseskan data yang telah di dapat, kemudian data yang telah diproses akan di kirimkan menuju master. sensor ultrasonik akan mendeteksi jarak ke dinding, kemudian jika selisih atau nilai absolute dari kedua sensor yaitu sensor d1 dan d2 yang menghadap ke dinding adalah lebih besar dari 6cm maka akan dideteksi kembali yaitu jika d1>d2 maka robot akan belok kiri dengan sudut tertentu. dan jika d1<d2 maka robot akan belok kanan dengan sudut tertentu. kemudian jika d3 mendeteksi lebih dari 6cm maka robot akan maju atau lurus dan jika sensor ini mendeteksi kurang dari 6cm maka robot akan belok ke kiri dengan sudut tertentu. kemudian dari data di dapatkan tadi maka akan dikirim command yaitu berupa jika belok kiri command angka "1" jika belok kanan command adalah angka "2" jika maju command adalah angka "3".

    kemudian pada master data yang telah di kirim akan diolah kembali yaitu jika angka 1 maka motor atau robot akan berbelok kekiri dan jika angka 2 motor atau robot akan berbelok ke kanan dan jika angka 3 motor atau robot akan maju lurus. kemudian pada master ada sensor warna yang akan mendeteksi warna dibagian lantai di depan pintu kamar pasien dimana jika minsalnya terdeteksi warna merah maka robot akan berbelok masuk ke menuju arah pintu dan akan menghidupkan buzzer led(sesuai dengan warna yang tertera pada lantai di depan pintu) dan akan menampilkan di LCD yaitu "silahkan ambil makanan anda", kemudian pada master juga terdapat button, ini sebagai indikator jika ditekan maka bertanda bahwa makanan telah di ambil dan led akan mati dan LCD akan menampilkan "terima kasih cepat sembuh ya". kemudian robot akan menuju ruangan berikutnya dengan sistematis yang seperti sebelumnya.

 

 

9. Link Download [Kembali]


No comments:

Post a Comment