Elektronika dan Robotik, Keseharian, Sains dan Teknologi

Tongkat Ultrasonik Penyandang Tunanetra

Dahulu para penyandang tunanetra sangat sulit  melalukan berbagai aktifitas sehari-sehari dikarenakan keterbatasan penglihatan mereka,   sehingga mereka sulit untuk melakukan sesuatu sebagaimana halnya orang normal,  berjalan ke suatu tempat dengan jarak tempuh yang agak jauh misalnya.

Pada saat yang sama, kelelawar yang biasa terbang dalam kegelapan, tidak mengalami tabrakan dengan benda-benda lain. Setelah diselidiki ternyata kelelawar memancarkan gelombang ultrasonik, gelombang suara tersebut dipancarkan dan kemudian gelombang pantulnya ditangkap kembali oleh alat pengindera alami kelelawar. Inilah sebab mengapa kelelawar dapat mengetahui dimana mereka berada.

Perangkat ekolokasi pada kelelawar ini memberi ilham kepada enam mahasiswa Elins 2007 – yang terdiri Dumairi, Dida Nurlika, Fahmi Faishal, Raden Panggih BS, Stephanie CW, Syah Jehan dan Tedy Tri Saputro sebagai koordinator tim –  untuk merancang alat bantu elektronik bagi para penyandang tunanetra. Meski tampak seperti tongkat biasa yang umum dipakai tunanetra, namun alat ini dapat memberikan indikasi suara yang bersesuaian dengan jarak yang dilalui sinyal ultrasonik. Alat ini kemudian dinamakan Tongkat Ultrasonik

Prinsip Kerja

Alat ini terdiri dari dua bagian, Bagian pertama adalah sebuah tongkat yang dilengkapi sensor ultrasonik SRF04 dan pegangan yang dapat bergetar. Sedangkan bagian kedua berupa kotak yang dapat diletakkan di pinggang- yang berisi sistem rangkaian elektronik, Power Supply serta Buzzer

Prinsip Kerjanya adalah Sensor ultrasonik SRF04 yang berada di tongkat mengirimkan seberkas gelombang ultrasonik, rentang waktu yang dibutuhkan pulsa dari dipancarkan hingga diterima kembali oleh sensor adalah sebanding dengan dua kali jarak sensor dengan obyek, jarak sensor dengan obyek dapat ditentukan persamaan

jarak = kecepatan_suara × waktu_pantul/2

Hasil pembacaan ini kemudian diolah oleh mikrokontroler ATmega8 guna memberikan indikasi suara dari buzzer yang bersesuaian dengan jarak yang berada di depan pemakai tongkat ultrasonik

Blok Diagram


Cara kerja SRF-04

Pulsa Ultrasonik dengan frekuensi 40 KHz sebanyak 8 periode, dikirimkan dari pemancar Ultrasonik. Ketika pulsa mengenai benda penghalang, pulsa ini dipantulkan, dan diterima kembali oleh penerima Ultrasonik. Dengan mengukur selang waktu ( kecepatan suara 1.125 feet per millisecond ) antara saat pulsa dikirim dan pulsa pantul diterima, maka jarak benda penghalang bisa dihitung

SRF-04 akan mengirimkan pulsa ultrasonic apa bila PI (triger pulse input ) selama 10 uS dan apabila telah menerima pantulan maka PO ( echo pulse output ) akan berlogika high selama 100 uS – 18 mS.

Blok diagram dari alat ini adalah sebagai berikut, hubungkan Sensor SRF04 dengan mikrokontroler AVR (disini digunakan ATMega8). PORTC.0 sebagai echo dan PORTC1.  sedangkan buzzer dihubungkan ke pin OCRA, program dibuat dengan menggunakan CodeVision AVR.  Berikut Source codenya

/*****************************************************
This program was produced by the
CodeWizardAVR V2.04.4a Advanced
Automatic Program Generator
© Copyright 1998-2009 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :
Version :
Date    : 30/05/2010
Author  : Tedy Tri S.
Company : Tedy In Computing

Comments:

Chip type               : ATmega8
Program type            : Application
AVR Core Clock frequency: 1,000000 MHz
Memory model            : Small
External RAM size       : 0
Data Stack size         : 256
*****************************************************/

#include <mega8.h>
#include <delay.h>

#define trigger PORTC.1
#define echo PINC.0

#define motor PORTC.2
// Declare your global variables here

unsigned int baca_srf04()
{

unsigned int jrk;
unsigned int count;
count=0;

trigger=1;  //pemberian pemicu berupa pulsa positif minimal 10us
delay_us(15);
trigger=0;

while(echo==0){};   //menunggu hingga ECHO = 1

while(echo==1)   //mencacah untuk mengukur waktu lamanya pulsa 1 dari ECHO
{
count++;
};

jrk=(count*10/232)*24;
return jrk;
}

void bunyi()
{

TCCR1A |= (1<<WGM13) | (1<<WGM12) | (1<<WGM11); // 16 bit Fast PWM menggunakan ICR1 untuk TOP
TCCR1B |= (1<<CS10);  // pre-scaler = 1

TCCR1A |= (1<<COM1A1); // aktifkan channel A in non-inverting mode
TCNT1H=0x00;
TCNT1L=0x00;
ICR1 = 850;  //
OCR1A = ICR1 / 2; // 50% duty cycle
}

void diam()
{

OCR1A=0;
}

void bip(unsigned int waktu)
{

bunyi();
motor=1;
delay_ms(125);
diam();
motor=0;
delay_ms(waktu);
}

void main(void)
{
// Declare your local variables here
unsigned int jrk_dpn;
// Input/Output Ports initialization
// Port B initialization
PORTB=0x00;
DDRB=0x06;

// Port C initialization
//           7 6 5 4 3 2 1 0
PORTC=0x01;//0 0 0 0 0 0 0 1 = 01h, PINC.0 pullup
DDRC=0x06; //0 0 0 0 0 1 1 0 = 02h, PINC.0 input, PORTC.1 output
//            T E
// Port D initialization
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
TCCR0=0x00;
TCNT0=0x00;

// Timer/Counter 1 initialization

TCCR1A = 0;
TCCR1B = 0;
TCNT1H=0x00;
TCNT1L=0x00;

ICR1 = 0;
OCR1A = 0;

OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
//inisialisasi();

//uji bip
bip(250);
bip(250);
while (1)
{
// Place your code

jrk_dpn=baca_srf04();

bip(jrk_dpn);

};
}

Selamat Belajar!! 🙂

Tagged ,

4 thoughts on “Tongkat Ultrasonik Penyandang Tunanetra

  1. Alahamdulillah, Masih ada yang peduli terhadap sesama dengan ide-ide cemerlangnnya seperti mas tedy. Sukses mas….

    ___________
    Tedy : Terimakasih mas, kita bisa bermanfaat bagi sesama kita 🙂

  2. assalamu’alaikum mas,,,
    tulisan bgus skali, saya suka idenya,,,
    oya mas, contoh programnya pakek bahsa ASEMBLAY ad g mas,,,
    alnya saya cuma punya atmel 89s51,,,
    kaloe bisa tolong dikirm mAS ya,,,
    tks sblumnya,,

    __________
    Tedy: Mas, Azhari..saya ga punya versi assembly…toh saya ga terlalu menguasai bahasai yang membuat kepala pecah itu..:mrgreen:
    mungkin untuk AT89s51 bisa digunakan C menggunakan MIDE…

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *