Bikin Sendiri Alat Bantu Untuk Tuna Netra Dengan Arduino

“Manusia terbaik adalah manusia yang berguna bagi lingkungannya”. Nah sebagai orang normal yang bisa berkarya, ada baiknya warga Kompor.in menghasilkan atau minimal membuat karya yang berguna bagi saudara kita yang tuna netra. Salah satu caranya bisa dengan membikinkan alat bantu untuk tuna netra dengan menggunakan arduino dan sensor suara ultrasonik seperti contoh proyek berikut.
Prinsip kerja alat ini adalah memanfaatkan umpan balik suara dari sensor ultrasonic untuk kemudian diolah mikrokontroller Arduino agar menghasilkan output berupa bunyi “bip” dan getaran. Semakin dekat objek penghalang dengan pemakai alat ini, maka alat ini akan memberikan peringatan bunyi “bip” lebih panjang dan getaran lebih panjang pula. Bagi warga yang mengerti pemograman fungsi alat ini bisa dikembangkan lagi agar memberikan output berupa suara yang memberitahukan jarak objek didepan sipemakai alat ini.
Proyek alat bantu untuk tuna netra ini memanfaatkan part seperti berikut:

  • Arduino Board
  • Dapat warga pesan disini.

  • Ultrasonic sensor
  • Dapat warga pesan disini.

  • Button Switch
  • Switch Geser
  • Buzzer speaker
  • 2x Resistors (masing masing 2k Ohm)
  • 2x Vibrating motors
  • Bisa memanfaatkan motor getar kontroller game PS2

  • 9V Battery
  • Kabel

Cara membuatnya:

  1. Rangkailah semua komponen tersebut seperti skema pada gambar berikut
  2. Selanjutnya masukan koding program berikut ke arduino board dengan bantuan IDE downloader arduino yang telah diinstall pada kompi warga
  3. koding-alat-bantu-tunanetra

  4. Kemudian tes verify program. Kalau tidak ada error, lanjutkan upload
  5. Selanjutnya solder semua kabel dan buatkan box untuk alat ini
  6. Kemudian pasangkan alat ke box, tes dan jalankan

Maka alat bantu sederhana untuk tuna netra ini selesai dan dapat digunakan. Tutorial lengkap membuat alat ini dapat warga baca disini. Selamat mencoba dan berkreasi 😀

Berikut code program untuk arduino board

// Code for an open-source visual impairment aid device

int beepWait = 10, beepConst = 10, shortConst = 25, longConst = 10, beepLength = 50;
int micPin = 9, on = 150, off = 0, volCount = 0;
int volButton = 3, distButton = 4, volState = 0, distState = 0;
int pingPin = 2, maxDist = 70, longDist = 70, shortDist = 30;
int mGround = 11, m1 = 10, motorScale = 175, offset = 75;
unsigned int duration, inches;
boolean beepOn = true, vibrateOn = true;
boolean longMode = true;
int time;

void setup()
{
pinMode(micPin, OUTPUT);
pinMode(mGround, OUTPUT);
pinMode(m1, OUTPUT);
pinMode(volButton, INPUT);
pinMode(distButton, INPUT);
update();
beep();
delay(200);
time = millis();
Serial.begin(9600);
}

void loop()
{
update();
if(vibrateOn)
{
pulse();
}
else
{
pulseOff();
}
if(beepOn)
{
beep();
}
//delay(beepWait);
wait();
}

void action()
{
}

void beep()
{
analogWrite(micPin, on);
delay(beepLength);
analogWrite(micPin, off);
}

void pulse()
{
analogWrite(mGround, 0);
analogWrite(m1, offset + motorScale - inches * 1.0 * motorScale / maxDist);
}

void pulseOff()
{
analogWrite(mGround, 0);
analogWrite(m1, 0);
}

void ping()
{
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);
pinMode(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);
inches = duration / 74 / 2;
}

void buttonCheck()
{
volState = digitalRead(volButton);
distState = digitalRead(distButton);
if(volState == HIGH || distState == HIGH)
{
if(volState == HIGH && distState == HIGH)
{
distChange();
volChange();
}
else if (volState == HIGH)
{
volChange();
}
else
{
distChange();
}
while(volState == HIGH || distState == HIGH)
{
volState = digitalRead(volButton);
distState = digitalRead(distButton);
delay(1);
}
}
}

void volChange()
{
if(volCount == 0)
{
vibrateOn = true;
beepOn = false;
}
else if(volCount == 1)
{
vibrateOn = false;
beepOn = true;
}
else
{
vibrateOn = true;
beepOn = true;
}

volCount++;
if(volCount > 2)
{
volCount = 0;
}
}

void distChange()
{
if(longMode)
{
longMode = false;
maxDist = shortDist;
beepConst = shortConst;
}
else
{
longMode = true;
maxDist = longDist;
beepConst = longConst;
}
}

void update()
{
buttonCheck();
ping();
if(inches > maxDist)
{
inches = maxDist;
}
beepWait = inches * (1.0 * beepConst);
}

void wait()
{
while(getTime() < beepWait) { delay(10); buttonCheck(); } time = millis();}int getTime(){ return millis() - time;}

Abdul

Artikel Yang Mungkin Berkaitan :
  1. Membuat Sendiri Jam Digital Dengan Arduino Uno
  2. Alarm Clock Matahari Terbit Untuk Si Tukang Tidur
  3. “Boxer” Box Dagangan Pedagang Sejati
  4. Mengenal Led dan Penerapannya Untuk Pemula
  5. Miniatur Mobil Handmade "Mantap Buat Pecinta Otomotif"
  6. Membuat Rangkaian Lampu Emergency Dari LED
  7. Prakarya Smartphone Stand Dari Stik Es Krim
  8. Ide Kado Ulang Tahun Untuk Pria "Hadiah Lensa Yang Unik"
  9. Solusi Bercocok Tanam Bagi Pecinta Lingkungan "Garbex"
  10. Lampu LED Sepeda Gunung "Lampu Unik Untuk Sepeda Masboss"

Dapatkan update terbaru facebook kami