Robot Berbicara

Pendahuluan

Emic Text to Speech ialah sebuah modul audio yang dapat membaca teks untuk diterjemahkan dan dihasilkan output audio sesuai teks yang diberikan.

                                             30006.gif

                                  Gambar 10.1  Modul EMIC Text to Speech

 

Gambar di bawah ini merupakan rangkaian standar hubungan antara sebuah prosesor dengan modul EMIC TTS tersebut, dimana data dikirim dalam format serial, serta sudah mampu mengemudikan speaker dengan output 300mW.

                        

 

                        Gambar 10.2  Hubungan antara prosesor dengan modul EMIC TTS

 

Perancangan Sistem

 

Perangkat yang dirancang ini terdiri dari 3 bagian utama yaitu:

-          Perangkat sensor warna RGB TCS 230 dari Parallax

-          Mikrokontroler BS2

-          Modul  EMIC Text to  Speech dari Parallax

-          Sensor Jarak PING

-          Speaker

 

Gambar berikut merupakan konsep dasar blok diagram perangkat robot yang dapat berbicara

 

 

 

 

 

 

 

 

 


                                              Gambar 10.3  Blok diagram Robot Berbicara

 

 

Program di bawah ini akan membuat robot mengucapkan kata sapaan jika ada yang mendekatinya, menggunakan sensor jarak PING. Prinsip robot ini dapat dikembangkan sebagai robot pelayan/Customer Service.

 

RobotBiacara.bs2:

 

' {$STAMP BS2}

' {$PBASIC 2.5}

trig CON 13

scale CON $0cd

ping PIN 11     'sensor ping terhubung ke p11

rawdist VAR Word

rawtocm CON 2257   'untuk sensor jarak

counter VAR Byte

 

' -----[ Definisi I/O ]-----------

 

Tx              PIN    0             ' connects to Emic SIn

Rx              PIN    1            ' connects to Emic SOut

Busy            PIN    2            ' 1 = busy

 

' -----[ Constants ]----------- -

#SELECT $STAMP

  #CASE BS2, BS2E, BS2PE

    Baud        CON     396         ' 2400 baud, N81

  #CASE BS2SX, BS2P

    Baud        CON     1021

#ENDSELECT

Yes             CON     1

No              CON     0

 

 

' -----[ Program Code ]--------------------------

Main:

  DO

  GOSUB bacasensor

  IF rawDist ** RawToCm <8 THEN ‘Jika ada yang mendekat

    GOSUB Check_Busy

     SEROUT Tx, Baud, [Say, "Can I help you? ?", EOM]

    PAUSE 500

    SEROUT tx, Baud,[Say, " Hello, how are you?",EOM]

    EXIT

    ELSE

    GOSUB Check_Busy

    SEROUT Tx, Baud, [Say, "Mr. Widodo is the author.", EOM]

    PAUSE 1000

    SEROUT tx, Baud,[Say, " Welcome to Spectacular Robotics",EOM]

    PAUSE 1000

    ENDIF

 

  LOOP

 

' -----[ Subroutines ]-------------------------

 

Check_Busy:

  PAUSE 1                                  ' allow busy to activate

  DO WHILE (Busy = Yes) : LOOP             ' wait until not busy

  RETURN

 

Bacasensor:

          GOSUB PingDepan ' baca jarak depan

          DEBUG "jarak depan PING " , DEC rawDist ** RawToCm ,CR

RETURN

 

PingDepan :    'baca jarak depan

    ping =0

    PULSOUT ping, trig

    PULSIN ping, 1, rawDist

    rawDist=rawDist */Scale

    rawDist =rawDist/2

   RETURN

 

demogerak:

    FOR counter=0 TO 50

   PULSOUT 14,650

   PULSOUT 15,650

   NEXT

   FOR counter=0 TO 50

   PULSOUT 14,850

   PULSOUT 15,850

   NEXT

   RETURN

maju:

   FOR counter=0 TO 20

   PULSOUT 14,850

   PULSOUT 15,650

   NEXT

   RETURN

mundur:

   FOR counter=0 TO 20

   PULSOUT 14,650

   PULSOUT 15,850

   NEXT

   RETURN

 

 

                

 

Tutorial lengkap materi ini dapat diperoleh pada buku yang akan terbit

“10 Proyek Robot Spektakuler” Terbitan Elexmedia 2008