Senter Ultrasonik untuk Penyandang Tuna Netra

Ide ini berawal dari ketika saya diminta menjadi juri lomba instrumentasi antar mahasiswa di Universitas Widyatama tanggal 11 Desember 2019. Saya ditemani oleh juri yang lain: Pak Ihsan Hariadi dari ITB dan Pak Eka Subiantara dari Universitas Widyatama.

Foto dari laman facebook pak Ihsan Hariadi

Salah satu karya yang ditampilkan adalah tongkat “pintar” untuk penyandang tuna netra. Tongkat tersebut memiliki sensor ultrasonik HC-SR04 di ujung bawahnya yang mendeteksi adanya penghalang di jalan. Juga ada LED putih dan photodioda untuk deteksi warna kuning pada trotoar. Dua komponen tersebut disambungkan ke Arduino UNO. Salah satu kekurangan alat ini adalah jika penghalang berada di atas, misalnya di sekitar kepala maka sensor tidak dapat mendeteksi. Sensor ultrasonik hanya dapat mendeteksi penghalang di sekitar jalan.

Saya jadi berpikir, bagaimana kalau dibuat saja semacam “senter ultrasonik”. Saat berjalan, penyandang tunanetra mengarahkan senter tersebut ke lokasi di depan. Senter bisa diarahkan ke mana saja sehingga kondisi di sekitar (baik di atas, di sekitar trotoar, sisi kiri atau kanan dapat diketahui). Jika ada penghalang maka senter tersebut berbunyi. Bunyi yang dihasilkan berbeda jika jarak penghalang berbeda-benda. Dalam dua hari saya mebuat alat seperti pada Gambar berikut ini.

Untuk sementara digunakan kota bekas bel listrik merek Hattatsu

Komponen yang digunakan hanya terdiri dari: (1) Arduino UNO, (2) sensor ultrasonik HC-SR04, (3) saklar push ON-push OFF, (4) soket audio betina, dan (5) resistor 1 k. Rangkaian perkabelan tampak pada Gambar berikut ini. Guna saklar adalah untuk memulai mengukur. Jika saklar OFF maka pengukuran jarak tidak dilakukan. Jika saklar dipencet ON maka pengukuran dilakukan.

Diagram perkabelan

Di bagian luar terdapat konektor USB untuk dihubungkan ke power bank dan ada soket audio yang dihubungkan ke earphone. Jadi, saat menggunakan alat tersebut, penyandang tunanetra memasang earphone di telinga dan power bakn disimpan di saku. Sebenarnya bisa juga menggunakan buzzer, tetapi khawatir menggangu orang sekitar. Gambar alat ketika dipasangi bateri dan earphone tampak seperti pada Gambar berikut ini.

Suara yang dihasilkan sebagai berikut:

1. Jika jarak penghalang lebih dari 3 meter maka tidak ada suara yang dihasilkan.

2. Jika jarak penghalang antara 2 sampai 3 meter maka muncul bunyi 1000 Hz selama 200 ms.

3. Jika jarak penghalang antara 1 sampai 2 meter maka muncul dua kali bunyi 1500 Hz selama 200 ms.

4. Jika jarak penghalang antara 0,5 sampai 1 meter maka muncul tiga kali bunyi 2000 Hz selama 200 ms.

5. Jika jarak penghalang kurang dari 0,5 meter maka muncul empat kali bunyi 3000 Hz selama 200 ms.

Program lengkap yang diupload di arduiono sebagai berikut:

const int trigPin = 7;

const int echoPin = 8;

const int saklar = 9;

const int speaker = 10;

//        Definisi variabel-variabel

long duration;

int distance;

int nilai = LOW;

int i;

//

void setup() {

  //

   pinMode(trigPin, OUTPUT);

   pinMode(echoPin, INPUT);

   pinMode(saklar,INPUT);

   pinMode(speaker, OUTPUT); 

   Serial.begin(9600);

}

void loop() {

   noTone(speaker);

   nilai = digitalRead(saklar);    //   Baca keadaan saklar

   if (nilai = HIGH)

   {

      digitalWrite(trigPin, LOW);

      delayMicroseconds(2);        //  Set trigPin pada keadaan HIGH selama 10 micro seconds

      digitalWrite(trigPin, HIGH);

      delayMicroseconds(10);

      digitalWrite(trigPin, LOW);

      duration = pulseIn(echoPin, HIGH);   //   Baca echoPin, yang menyatakan adanya gelombang balik dalam waktu microseconds

      distance= duration*0.034;            //   Hitung jarak dalam (cm)

      if (distance > 300)                  //  Tentukan nilai-nilai jarak

      {

         noTone(speaker);

      }

      if (distance <= 300 && distance > 200)

      {

         tone(speaker, 1000);

         delay(200);

         noTone(speaker);

         delay(1000);

      }

      if (distance <= 200 && distance > 100)

      {

         for (i=1; i<=2;i++)

           {

             tone(speaker, 1500);

             delay(200);

             noTone(speaker);

             delay(200);

           }

           delay(1000);

       }

       if (distance <= 100 && distance > 50)

       {

         for (i=1; i<=3;i++)

           {

             tone(speaker, 2000);

             delay(200);

             noTone(speaker);

             delay(200);

           }

           delay(1000);

       }

       if (distance < 50)

       {

          for (i=1; i<=4;i++)

           {

             tone(speaker, 3000);

             delay(200);

             noTone(speaker);

             delay(200);

           }

           delay(1000);

       }

   }

}

Jika merasa bermanfaat, silakan share dan like: