bab 1-5 - thesis.binus.ac.idthesis.binus.ac.id/doc/bab3/2009-2-00424-sk bab 3.pdf · apabila nilai...

37
61 BAB 3 PERANCANGAN SISTEM MP3 player dengan RFID dirancang untuk mendeteksi RFID Tag dan membaca data pada RFID tag. Data dari RFID tag merupakan nama file audio yang harus dimainkan oleh MP3 player dengan RFID. Data yang ditulis ke RFID tag merupakan nama dari file audio sebanyak 8 karakter. Karakter pertama dari nama file merupakan kode untuk jenis objek, tetapi pada percobaan penelitian karakter pertama hanya menggunakan karakter M. Karakter ke 2 sampai ke 7 merupakan nomor objek. Sedangkan karakter ke 8 merupakan karakter penanda bahasa. Pada penelitian karakter ke 8 diberi angka 0 untuk menandakan bahwa file audio dan text yang dibaca menggunakan bahasa Indonesia. Apabila karakter ke 8 diberi angka 1 maka file audio dan text yang dibaca menggunakan bahasa Inggris. Karakter ke 9 sampai karakter ke 11 merupakan extension dari file. Karakter ke 9 sampai dengan karakter ke 11 tidak ditulis ke RFID tag. Data yang ditulis ke RFID tag merupakan nama file dengan format 8.3 dengan 3 karakter extension tidak ditulis ke RFID tag dan karakter ke 8 yang menandakan bahasa akan diberi karakter spasi. Dan pada saat dibaca karakter ke 8 dari nama file yang dibaca akan diganti dengan kode bahasa. Nilai dari kode bahasa tergantung dari pilihan user, dan user dapat melihat kode bahasa yang dipilih melalui LCD. Setelah karakter ke 8 diganti dengan kode bahasa, mikrokontroler akan mencari file audio dan text pada SD card. Apabila file audio berhasil ditemukan maka mikrokontroler akan membaca file secara keseluruhan dan melakukan streaming ke MP3 decoder. Dan apabila tidak

Upload: hoanglien

Post on 22-Mar-2019

214 views

Category:

Documents


0 download

TRANSCRIPT

61 

 

BAB 3

PERANCANGAN SISTEM

MP3 player dengan RFID dirancang untuk mendeteksi RFID Tag dan membaca

data pada RFID tag. Data dari RFID tag merupakan nama file audio yang harus

dimainkan oleh MP3 player dengan RFID. Data yang ditulis ke RFID tag merupakan

nama dari file audio sebanyak 8 karakter. Karakter pertama dari nama file merupakan

kode untuk jenis objek, tetapi pada percobaan penelitian karakter pertama hanya

menggunakan karakter M. Karakter ke 2 sampai ke 7 merupakan nomor objek.

Sedangkan karakter ke 8 merupakan karakter penanda bahasa. Pada penelitian karakter

ke 8 diberi angka 0 untuk menandakan bahwa file audio dan text yang dibaca

menggunakan bahasa Indonesia. Apabila karakter ke 8 diberi angka 1 maka file audio

dan text yang dibaca menggunakan bahasa Inggris. Karakter ke 9 sampai karakter ke 11

merupakan extension dari file. Karakter ke 9 sampai dengan karakter ke 11 tidak ditulis

ke RFID tag.

Data yang ditulis ke RFID tag merupakan nama file dengan format 8.3 dengan 3

karakter extension tidak ditulis ke RFID tag dan karakter ke 8 yang menandakan bahasa

akan diberi karakter spasi. Dan pada saat dibaca karakter ke 8 dari nama file yang dibaca

akan diganti dengan kode bahasa. Nilai dari kode bahasa tergantung dari pilihan user,

dan user dapat melihat kode bahasa yang dipilih melalui LCD. Setelah karakter ke 8

diganti dengan kode bahasa, mikrokontroler akan mencari file audio dan text pada SD

card. Apabila file audio berhasil ditemukan maka mikrokontroler akan membaca file

secara keseluruhan dan melakukan streaming ke MP3 decoder. Dan apabila tidak

62 

 

ditemukan, mikrokontroler akan menampilkan kalimat ‘File tidak ditemukan’ ke LCD.

Setelah file audio ditemukan mikrokontroler akan mencari file text pada SD card.

Apabila file text berhasil ditemukan maka isi dari file text tersebut akan ditampilkan

melalui LCD, dan apabila tidak ditemukan maka mikrokontroler hanya akan memainkan

file audio saja.

Perancangan sistem ini secara umum dapat dibagi kedalam dua bagian, yaitu

perancangan perangkat keras dan perancangan piranti lunak. Perancangan perangkat

keras terdiri dari perancangan berbagai komponen elektronik yang digunakan dalam

sistem. Perancangan piranti lunak terdiri dari perancangan program yang digunakan

dalam sistem.

3.1 Perancangan Perangkat Keras

Perancangan perangkat keras pada sistem terdiri dari gabungan beberapa modul -

modul yang dapat dilihat pada gambar 3.1.

Gambar 3.1 Diagram Blok Perangkat Keras Sistem

63 

 

Penjelasan mengenai bagian – bagian dari diagram blok:

1. Penggunaan kabel serial DB-9 sebagai penghubung antara PC dengan MAX

3232 yang digunakan sebagai pengubah level sinyal RS232 (-12 s.d. +12 V)

ke dalam logic TTL (0 s.d. +3.3 V).

2. Setelah sinyal sudah dikonversi melalui MAX3232, maka dapat dilakukan

Komunikasi PC dengan mikrokontroler secara dua arah mengunakan UART

(Universal Asynchronous Receive Transmit).

3. Komunikasi RFID dengan mikrokontroler secara dua arah menggunakan

I2C.

4. Push button digunakan sebagai input pada mikrokontroler.

5. Komunikasi VS1002D dengan mikrokontroler secara dua arah mengunakan

SPI (Serial Peripheral Interface).

6. Komunikasi LCD LPH 7779 dengan mikrokontroler secara satu arah

menggunakan SPI (Serial Peripheral Interface).

7. Komunikasi MMC atau SD card dengan mikrokontroler secara dua arah

menggunakan SPI (Serial Peripheral Interface).

Sistem dikondisikan dalam keadaan standby dan siap untuk menerima instruksi

dari PC yang dirancang untuk melakukan pembacaan atau penulisan tag RFID melalui

serial port, setelah mendapat instruksi dari PC maka mikrokontroler AVR akan

memproses data dari modul RFID. RFID berkomunikasi secara dua arah dengan

mikrokontroler AVR menggunakan jalur I2C sehingga RFID dapat melakukan

pembacaan atau penulisan pada tag RFID. Sedangkan jika sistem tidak dihubungkan ke

PC, sistem akan standby sampai modul RFID mendeteksi adanya tag RFID, ketika

64 

 

modul RFID mendeteksi adanya tag RFID, mikrokontroler AVR akan menginstruksikan

modul RFID untuk melakukan pembacaan pada tag RFID dan mikrokontroler

menginstruksikan pembacaan data pada MMC atau SD card dan membandingkan data

yang ada pada tag RFID dengan data yang ada pada MMC atau SD card, jika data yang

terdapat pada tag RFID sesuai dengan data yang ada pada MMC atau SD card, maka

mikrokontroler akan membaca data yang berupa file yang berformat .MP3 dan .txt di

dalam MMC atau SD card, dan Mikrokontroler memerintahkan modul VS1002D untuk

melakukan streaming file yang berformat .MP3 dan akan menampilkan isi file yang

berformat .txt pada LCD LPH7779.

3.1.1 Modul Mikrokontroler

Gambar 3.2 Modul Mikrokontroler

65 

 

Dalam sistem ini mikrokontroler AVR ATMega 32L berfungsi sebagai

kontroler dari sistem, pada sistem akan dilakukan pemrosesan antara lain

memproses input yang berasal dari push button, RFID, MMC atau SD card,

VS1002D, interface PC, dan menampilkan output LCD.

3.1.2 Modul RFID

Gambar 3.3 Modul RFID

Dalam sistem, RFID berkomunikasi dengan mikrokontroler AVR untuk

melakukan tugas pembacaan tag RFID dan penulisan tag RFID. Jenis komunikasi

yang digunakan adalah I2C dengan menggunakan pin SDA dan SCL pada

mikrokontroler AVR. Untuk supply tegangan digunakan tegangan 3.3 V sebagai

sumber tegangan RFID, dan terdapat tag indikator yang memang dipasang untuk

mengetahui jika RFID reader mendeteksi adanya tag. Karena pin RFIDOUT pada

modul RFID berfungsi sebagai tag Indikator, ketika RFID mendeteksi adanya tag,

maka Pin RFIDOUT akan berlogika low‘0’ dan menyebabkan tegangan yang

melalui resistor akan turun menuju katoda LED sehingga LED tersebut menyala,

jika RFID tidak mendeteksi adanya tag, maka pin RFIDOUT akan berlogika high

66 

 

’1’ dan menyebabkan tegangan pada anoda LED tidak akan mengalir menuju

katoda.

3.1.3 Modul MAX3232

Gambar 3.4 Modul MAX3232

Komunikasi serial antara komputer dengan mikrokontroler AVR dikerjakan

melalui IC MAX3232 yang berfungsi sebagai pengubah tegangan dari PC menuju

mikrokontroler AVR, yaitu dari logic RS232 (-12 s.d. +12 V) ke dalam logic TTL

(0 s.d. +3.3 V). Komunikasi dikerjakan melalui pin TX dan RX dimana RX1

(R1IN) yang terkoneksi ke PC berfungsi untuk mengirimkan data dari PC dan

diterima oleh RX (R1OUT) yang terkoneksi dengan mikrokontroler AVR yang

berfungsi sebagai penerima dan begitu juga sebaliknya dengan TX (T1IN) yang

terkoneksi ke mikrokontroler AVR dengan TX1 (T1OUT) yang terkoneksi ke PC.

Data yang dikirim dalam format 8 bit data dengan LSB dikirim terlebih dahulu,

serta 1 start bit (berlogika 0) dan 1 stop bit (berlogika 1). Untuk pengaturan

baudrate yang digunakan tergantung dari nilai clock yang digunakan pada

mikrokontroler AVR dan nilai baudrate antara AVR (U11) dengan PC harus

disamakan. Nilai clock mikrokontroler pada sistem sebesar 8MHz, untuk

67 

 

menghitung nilai baudrate dan UBRR (USART Baudrate Register) didapat melalui

persamaan: 1

16

)1(16

−=

+=

BaudFoscUBRR

UBRRFoscBaud

3.1.4 Modul LCD LPH 7779

Gambar 3.5 Modul Breakout LCD LPH 7779 dan Backlight LCD

Modul LCD yang digunakan memiliki tampilan 48 baris x 84 kolom dengan

konsumsi daya rendah. Modul LCD ini dihubungkan dengan mikrokontroler AVR

yang bertujuan sebagai output tampilan. Untuk mengakses LCD LPH7779, maka

harus meng-set fungsi-fungsi pin pada LCD tersebut. Karena LCD LPH7779

hanya berkomunikasi dengan cara SPI (Serial Peripheral Interface).

Mikrokontroler AVR sebagai master harus memberikan clock kepada slave yang

berupa LCD LPH7779 melalui pin SCK pada LCD LPH7779. Mikrokontroler

AVR sebagai master akan mengirimkan instruksi atau data menuju slave input

LCD LPH7779 melalui pin serial MOSI. Pin LCD CS untuk mengaktifkan LCD

tersebut, maka mikrokontroler AVR harus meng-set pin LCD CS dengan logika

68 

 

low ‘0’ sedangkan untuk menonaktifkan, maka mikrokontroler AVR harus meng-

set pin LCD CS dengan logika high‘1’. Pin LCD D/C mempunyai fungsi untuk

menentukan apakah data atau instruksi yang akan dikirim mikrokontroler AVR ke

LCD LPH7779 melalui pin MOSI, untuk mengirimkan instruksi pada LCD

LPH7779 maka mikrokontroler AVR harus meng-set pin LCD D/C dengan logika

low ‘0’, sedangkan untuk mengirimkan data maka harus meng-set pin LCD D atau

C dengan logika high ‘1’. Pin LCD Res digunakan untuk me-reset LCD LPH7779,

untuk me-reset LCD LPH7779 maka mikrokontroler AVR harus meberikan logika

low ‘0’.

3.1.5 Modul MMC Atau SD Card

Gambar 3.6 Modul Breakout MMC Atau SD Card

Modul MMC atau SD card pada sistem digunakan sebagai media

penyimpanan file yang berformat .MP3 dan .txt. Mikrokontroler AVR memberikan

instruksi atau data melalui komunikasi SPI (Serial Peripheral Interface).

Mikrokontroler AVR sebagai master akan mengirimkan instruksi atau data menuju

slave input MMC atau SD card melalui pin serial MOSI. Pin serial MISO

berfungsi sebagai pin slave output berupa data yang dikirimkan dari MMC atau

SD card sebanyak 512 Byte yang akan masuk ke dalam mikrokontroler AVR.

69 

 

Mikrokontroler AVR sebagai master harus memberikan clock kepada slave MMC

atau SD card melalui pin SCK. Mikrokontroler AVR harus memilih slave yang

aktif, untuk mengaktifkan MMC atau SD card pada pin MMC CS, mikrokontroler

AVR harus memberikan logika low‘0’, sedangkan untuk menonaktifkan MMC

atau SD card, mikrokontroler harus memberikan logika high‘1’ pada pin MMC

CS.

3.1.6 Modul VS1002D

Gambar 3.7 Modul Breakout VS1002D

Pada sistem ini modul VS1002D yang berfungsi sebagai MP3 decoder dan

digunakan untuk streaming file yang berformat .MP3. Mikrokontroler AVR

memberikan instruksi atau data melalui komunikasi SPI (Serial Peripheral

Interface). Mikrokontroler AVR sebagai master akan mengirimkan instruksi atau

data menuju slave input VS1002 melalui pin serial MOSI, pada saat melakukan

streaming, data yang diproses sebanyak 32 Byte. Pin serial MISO berfungsi

sebagai pin slave output berupa data yang dikirimkan dari VS1002D yang akan

masuk ke dalam mikrokontroler AVR. Mikrokontroler AVR sebagai master harus

memberikan clock kepada slave VS1002D melalui pin SCK. Mikrokontroler AVR

70 

 

harus memilih slave yang aktif, untuk mengaktifkan VS1002D pada pin VS_SS,

mikrokontroler AVR harus memberikan logika low‘0’, sedangkan untuk

menonaktifkan VS_SS, mikrokontroler harus memberikan logika high‘1’ pada pin

VS_SS. Pin DREQ berfungsi untuk mengetahui status busy, pin DREQ akan

berlogika low ‘0’ jika busy, sedangkan pin DREQ akan berlogika high‘1’ jika

tidak busy. Pin RST digunakan untuk me-reset VS1002D, untuk me-reset

VS1002D maka mikrokontroler AVR harus memberikan logika low‘0’. Pin

RIGHT, merupakan output yang digunakan untuk speaker earphone bagian kanan,

Pin LEFT, merupakan output yang digunakan untuk speaker earphone bagian kiri,

Pin GBUF, merupakan ground yang dihubungkan dengan ground earphone.

3.1.7 Modul Push Button

Gambar 3.8 Modul Push Button

Push button dalam sistem dibuat secara aktif low untuk digunakan sebagai

input-an ke dalam mikokontroler AVR, yang masing-masing berfungsi sebagai

pengesetan bahasa, play atau pause pada saat sistem sedang memainkan file audio,

71 

 

dan pengesetan suara, VOLUP untuk membesarkan suara, dan VOLDOWN untuk

mengecilkan suara ketika sistem sedang memainkan file audio.

3.2 Perancangan Piranti Lunak

Perancangan piranti lunak merupakan salah satu bagian dari sistem yang dibuat.

Perancangan piranti lunak pada sistem dibagi menjadi dua bagian yaitu perancangan

program untuk menghubungkan mikrokontroler dengan PC menggunakan Microsoft

Visual Studio 2005 dan perancangan program pada mikrokontroler AVR menggunakan

Code Vision AVR dengan bahasa C.

3.2.1 Perancangan Program Pada Mikrokontroler

Pada bagian ini perancangan program dibagi menjadi beberapa bagian

seperti perancangan program untuk berkomunikasi dengan PC secara serial

USART, RFID, VS1002, LCD, dan SD Card.

72 

 

A. Diagram Alir Serial USART

Gambar 3.9 Diagram Alir Serial USART receive interrupt

Fungsi serial USART ini untuk menerima dan mengirimkan data dari

PC menuju mikrokontroler dan sebaliknya. Mikrokontroler berperan untuk

melakukan pembacaan dan penulisan tag RFID, lalu mentransmisikan data

tersebut menuju PC.

Setiap terjadi USART receive interrupt, maka data tersebut akan di-

buffer terlebih dahulu menuju variabel data. Data yang dikirimkan oleh PC

adalah data berupa karakter, untuk menghitung banyaknya data yang

73 

 

dikirimkan oleh PC maka dibutuhkan sebuah counter. Ketika kondisi nilai

counter lebih besar sama dengan 11, maka data tesebut akan disimpan ke

variabel string udata, lalu apabila index pertama dari variabel udata bernilai

1, maka PC meminta mikrokontroler untuk membaca data pada tag RFID

dan mengirim data tag RFID yang sudah dibaca menuju PC. Sedangkan

apabila nilai index pertama dari variabel udata bernilai tidak sama dengan 1,

maka PC meminta mikrokontroler untuk melakukan penulisan data pada tag

RFID dari variabel udata dan mengirimkan informasi bahwa data berhasil

ditulis pada tag RFID atau tidak berhasil ditulis pada tag RFID.

B. Diagram Alir RFID Write

Gambar 3.10 Diagram Alir RFID Write

74 

 

Fungsi RFID Write berfungsi untuk menulis data pada tag RFID, agar

dapat berkomunikasi dengan RFID, mikrokontroler harus berkomunikasi

secara I2C dengan RFID reader. Ketika fungsi RFID write dijalankan, RFID

reader akan mengecek apakah terdapat tag RFID, lalu RFID reader akan

memberitahu mikrokontroler dengan memberikan status select card dan

memberikan jenis tag yang berada pada RFID reader, jika status select card

sama dengan 0 atau berhasil, mikrokontroler akan meminta RFID reader

untuk login menuju sector yang ingin ditulis, lalu RFID reader akan

memberitahukan hasil dari login sector pada mikrokontroler yang berupa

status login sector, jika status login sector sama dengan 0x02 atau berhasil,

RFID reader akan menulis data sebanyak 11 karakter pada block yang

diinginkan, dan RFID reader akan memberitahukan mikrokontroler yaitu

status write data block, jika status write data block sama dengan 0 atau

berhasil, RFID reader akan mengirimkan kembali data yang sudah ditulis

menuju mikrokontroler sebagai konfirmasi bahwa data telah ditulis pada tag

RFID.

75 

 

C. Diagram Alir RFID Read

Gambar 3.11 Diagram Alir RFID Read

Fungsi RFID read berfungsi untuk membaca data pada tag RFID. Agar

dapat berkomunikasi dengan RFID baik untuk melakukan pembacaan

maupun penulisan pada tag RFID, mikrokontroler harus berkomunikasi

secara I2C dengan RFID reader. Ketika fungsi RFID Read dijalankan, RFID

76 

 

reader akan mengecek apakah terdapat tag RFID pada RFID reader, lalu

RFID reader akan memberitahukan mikrokontroler dengan memberikan

status select card dan memberikan jenis tag yang berada pada RFID reader,

jika status select card sama dengan 0 atau berhasil, mikrokontroler akan

meminta RFID reader untuk login menuju sector yang ingin dibaca, lalu

RFID reader akan memberitahukan hasil dari login sector pada

mikrokontroler yang berupa status login sector, jika status login sector sama

dengan 0x02 atau berhasil, RFID reader akan membaca data pada block

yang diinginkan, dan RFID reader akan memberitahukan mikrokontroler

yaitu status read data block, jika status read data block sama dengan 0 atau

berhasil, RFID reader akan mengirimkan data yang sudah dibaca menuju

mikrokontroler, dan memberikan nilai balik return 1 pada fungsi Read Tag .

D. Diagram Alir LCD Write

Gambar 3.12 Diagram Alir LCD Write

77 

 

Fungsi LCD Write berfungsi untuk mengirimkan data dari

mikrokontroler menuju LCD, baik mengirimkan data ataupun mengirimkan

instruksi sebesar 8 bit. Komunikasi mikrokontroler dengan LCD

mengunakan komunikasi SPI (Serial Peripheral Interface), dimana

mikrokontroler sebagai master atau pengendali. Pertama mikrokontroler

mengaktifkan LCD_SS dengan memberi logika low ‘0’, kemudian

mikrokontroler memilih data atau instruksi yang akan diberikan menuju

LCD dengan memberikan nilai logika pada LCD_DC, jika mikrokontroler

memilih memberikan data yang berupa karakter kepada LCD,

mikrokontroler tersebut harus memberikan nilai logika high ‘1’ pada

LCD_DC, kemudian mikrokontroler memberikan data yang kemudian akan

ditampilkan. Mikrokontroler juga dapat memberikan instruksi untuk

melakukan pengaturan – pengaturan pada LCD seperti pengaturan kontras,

posisi LCD, normal mode dan lain - lain. dengan memberikan nilai logika

low ‘0’ pada LCD_DC, kemudian memasukan 8 bit nilai instruksinya.

78 

 

E. Diagram Alir VS1002D Write

Gambar 3.13 Diagram Alir VS1002D Write

Fungsi VS1002 Write berfungsi untuk menulis perintah pada register

dan menulis data pada VS1002D. Dengan tahap pengecekan DREQ, apabila

DREQ berlogika low, maka VS1002D berstatus busy dan tidak dapat

menerima perintah atau data, sedangkan jika DREQ berlogika high, maka

VS1002D dapat menerima perintah atau data. Untuk mengirimkan perintah

pada VS1002D maka pin XDCS harus diberi logika high sementara pin

VS1002SS diberi logika low. Pengiriman perintah pada VS1002D dilakukan

untuk mengatur nilai register pada VS1002D seperti register clock, volume,

mode, dan lain-lain. Proses VS_Write dijalankan dengan mengirimkan

79 

 

perintah write 1 byte dengan nilai 0x02 diikuti dengan alamatnya registernya

sepanjang 8 bit, dan lebar datanya 16 bit.

F. Diagram Alir VS1002D Write Data

SD_Buffer [512]

Count=0i=0

VS1002SS=1XDCS=0Count++

VS1002 Write Data (SD_Buffer[count])

i++

i=0

Count<512

Y

T

Y

T

i<=31T

Y

DREQ!=1

Gambar 3.14 Diagram Alir VS1002D Write Data

80 

 

Fungsi VS1002 Write data berfungsi untuk melakukan streaming data

berformat MP3 yang dimulai dari header file MP3 dan data raw file MP3,

dari SD Card yang di-buffer sebanyak 512 Byte, data tersebut akan di –

stream menuju VS1002D, data tersebut dikirim sebanyak per 32 Byte dan

setiap pengiriman data sebanyak 32 byte, pin DREQ harus dicek, apabila pin

DREQ berlogika low, maka VS1002D berstatus busy dan tidak dapat

menerima perintah atau data, sedangkan jika pin DREQ berlogika high,

maka VS1002D dapat menerima instruksi untuk melakukan pengesetan

volume, bass, dan lain – lain, atau dapat menerima data raw untuk

streaming. Untuk melakukan streaming, data raw dikirimkan dengan

memberikan logika low pada pin XDCS.

G. Diagram Alir VS1002D Read

Gambar 3.15 Diagram Alir VS1002D read

Fungsi VS1002 Read berfungsi untuk membaca data yang berada pada

register VS1002D. Untuk menjalankan fungsi VS1002D Read pin DREQ

81 

 

harus dicek terlebih dahulu, apabila DREQ berlogika low, maka VS1002

berstatus busy dan tidak dapat menerima perintah atau data, sedangkan jika

DREQ berlogika high, maka VS1002D dapat menerima instruksi yang

berupa perintah pembacaan yang digunakan untuk membaca isi nilai register

pada VS1002D, misalkan pada saat melakukan penulisan nilai clock ,

volume, sample rate, dan mode register setelah itu dapat dilihat apakah nilai

yang ada pada register sudah sesuai dengan nilai yang diset. Untuk

melakukan perintah pembacaan, maka harus memberi perintah read 1 byte

dengan nilai 0x03 diikuti dengan alamat register yang akan dibaca dan

selanjutnya VS1002D akan mengirimkan data yang ingin dibaca.

H. Diagram Alir Inisialisasi SD card

Untuk mengakses SD card proses inisialisasi harus dilakukan. Proses

inisialisasi SD card yang wajib dilakukan adalah reset dan INIT. Sedangkan

proses Set Block Length tidak wajib dilakukan karena nilai standar yang

biasa digunakan adalah 512 Bytes.

82 

 

Gambar 3.16 Diagram Alir Inisialisasi SD card

Tahap pertama yang dilakukan pada proses inisialisasi adalah reset.

Sebelum memberikan perintah reset pada SD card, pin SD_Card_SS harus

diberi logika high lalu SD card harus diberi data dummy dengan cara

mengirimkan 10 data bernilai 0xFF atau 80 clock. Lalu SD_Card_SS harus

diberi logika low. Kemudian perintah reset dapat dijalankan dengan

mengirimkan perintah reset yang bernilai 0x40 diikuti dengan 4 bytes

argument dengan nilai 0x00 dan 1 byte cyclic redundancy check (CRC)

dengan nilai 0x95. Lalu mikrokontroler harus mengecek apakah respon dari

SD card bernilai 0x01 dengan membaca data dari SD card melalui pin

83 

 

MISO. Apabila respon yang diberikan SD card tidak bernilai 0x01, maka

proses reset SD card harus diulang dari awal. dan apabila respon yang

diberikan SD card bernilai 0x01 maka proses reset SD card telah berhasil.

Lalu proses SD card INIT dilakukan dengan mengirimkan perintah

INIT yang bernilai 0x41 diikuti dengan 4 bytes argument yang bernilai 0x00

dan 1 byte CRC dengan nilai 0xFF. Lalu mikrokontroler harus mengecek

apakah respon dari SD card bernilai 0x00. Apabila respon yang diberikan

SD card tidak bernilai 0x00 maka proses SD card INIT harus diulang dari

awal, dan apabila respon yang diberikan bernilai 0x00 maka proses SD card

INIT telah berhasil.

Proses selanjutnya adalah proses SD card Set Block Length. Proses SD

card Set Block Length tidak harus dijalankan, karena standar nilai block

length pada SD card adalah 512 bytes. Proses ini dilakukan hanya untuk

memastikan nilai block length pada SD card bernilai 512 bytes. Proses SD

card Set Block Length dijalankan dengan mengirimkan perintah Set Block

Length yang bernilai 0x50 diikuti dengan 4 bytes argument bernilai 0x00

dan 1 byte CRC dengan nilai 0xFF. Apabila respon yang diberikan SD card

tidak bernilai 0x00 maka proses SD card Set Block Length harus diulang

dari awal, dan apabila respon yang diberikan bernilai 0x00 maka proses SD

card Set Block Length telah berhasil.

Setelah tiga proses inisialisasi SD card telah berhasil dilakukan maka

mikrokontroler harus mengirimkan 1 byte data dummy dengan nilai 0xFF

84 

 

atau 8 clock. Dan untuk menghentikan komunikasi mikrokontroler dengan

SD card maka pin SD_Card_SS harus diberi logika high.

I. Diagram Alir Pembacaan SD card

Untuk pembacaan data pada alamat tertentu di SD card ada beberapa

tahap yang harus dilakukan. Jumlah data yang dibaca tergantung dari nilai

Set Block Length pada saat inisialisasi. Standar nilai dari Set Block Length

adalah 512 bytes.

85 

 

Gambar 3.17 Diagram Alir Pembacaan SD card

Proses SD card Read dimulai dengan memberikan logika low pada

SD_Card_SS. Selanjutnya variabel count1 diberi nilai 0. Lalu perintah read

yang bernilai 0x51 dikirimkan diikuti dengan 4 bytes argument yang bernilai

86 

 

alamat dari SD card yang ingin dibaca dan 1 byte CRC yang bernilai 0xFF.

Setelah pengiriman perintah read, count2 diberi nilai 0. Selanjutnya

mikrokontroler harus melihat apakah respon dari SD card bernilai 0x00.

Apabila respon dari SD card tidak bernilai 0x00 maka pembacaan respon

dari SD card diulang hingga 10 kali dengan menghitung jumlah

pengulangan menggunakan variabel count2. Apabila setelah 10 kali

pembacaan respon nilai dari respon SD card tidak ada yang bernilai 0x00,

maka pengiriman perintah read pada SD card akan diulang. Berdasarkan

pendapat tim Innovative Electronic (2007, p3) pengulangan pengiriman

perintah SD card diulang hingga 250 kali dengan menghitung jumlah

pengulangan menggunakan variabel count1. Apabila hingga 250 kali

pengulangan respon dari SD card tidak ada yang bernilai 0x00 maka proses

SD card Read gagal.

Apabila respon dari SD card bernilai 0x00, maka proses SD card Read

dapat dilanjutkan ke pembacaan respon yang kedua dari SD card yang

bernilai 0xFE. Respon kedua dari SD card yang bernilai 0xFE merupakan

tanda bahwa SD card telah siap mengirimkan data yang diminta.

Berdasarkan pendapat tim Innovative Electronic (2007, p3) apabila respon

dari SD card tidak bernilai 0xFE maka pembacaan respon dari SD card

diulang hingga 9*250 kali dengan menghitung jumlah pengulangan

menggunakan variabel count3. Apabila setelah 9*250 kali pembacaan respon

dari SD card tidak bernilai 0xFE, maka proses SD card Read gagal.

87 

 

Dan apabila respon yang diberikan SD card sudah bernilai 0xFE maka

proses SD card Read dapat dilanjutkan ke pembacaan data sebanyak 512

bytes dengan menggunakan variabel array SD_buffer dengan variabel

count4 digunakan untuk menghitung jumlahnya data. Setelah 512 bytes data

dikirimkan maka SD card akan mengirimkan 2 bytes CRC di mana nilai dari

2 bytes CRC tersebut tidak perlu diperhatikan. Setelah penerimaan 2 bytes

CRC dilakukan maka proses SD card telah sukses dijalankan.

J. Diagram Alir Pencarian File

Pada penelitian file yang dapat ditemukan hanya pada root directory.

Ukuran dari root directory adalah 512 entries * 32 bytes. Untuk mencari

sebuah file pada root directory mikrokontroler harus mencari nama file pada

root directory lalu menghitung cluster pertama dari file tersebut dengan

melihat byte ke 27 dan ke 28 dari byte pertama file tersebut ditemukan.

88 

 

Gambar 3.18 Diagram Alir Pencarian file

Proses Search File’s Cluster dijalankan dengan memberi nilai 0 pada

variabel count dan count2. Variabel count2 digunakan sebagai indeks untuk

menunjuk data pada variabel array File_Digit dimana variabel File_Digit

89 

 

merupakan variabel yang menyimpan nama file yang dicari. Selanjutnya

mikrokontroler harus membaca data sebanyak 512 bytes pada alamat awal

root directory dan menyimpan 512 bytes data tersebut ke dalam variabel

array SD_buffer. Lalu variabel count1 dan count3 diberi nilai 0. Variabel

count1 digunakan untuk menunjuk indeks pada SD_buffer. data pada

SD_buffer akan dicocokkan dengan karakter pertama dari nama file yang

dicari. Apabila data pada SD_buffer ada yang cocok dengan karakter

pertama pada file yang dicari maka byte selanjutnya pada SD_buffer

dicocokkan menggunakan count3 sebagai indeks dari SD_buffer. Apabila 10

data selanjutnya dari SD_buffer juga cocok dengan karakter selanjutnya

pada File_Digit maka file ditemukan dan cluster pertama dari file yang dicari

dapat ditemukan pada byte ke 27 dan ke 28 dari byte pertama pada

SD_buffer yang cocok dengan File_Digit.

Apabila data pada SD_buffer tidak cocok dengan File_Digit maka

count1 dan count3 akan terus ditambah hingga nilainya 511, apabila count1

dan count3 telah melebihi 511 maka mikrokontroler harus kembali membaca

dari SD card dengan alamat pembacaan merupakan alamat awal root

directory ditambah dengan nilai pada variabel count, di mana sebelum

ditambah dengan alamat awal root directory nilai variabel count harus

ditambah terlebih dahulu dengan Number of Root Entries yang bernilai 512.

Setelah itu proses pencarian diulang dari awal. Proses Search File’s Cluster

diulang hingga nilai count sama dengan Number of Root Entries * 32.

90 

 

K. Diagram Alir Keseluruhan Sistem

MP3 Player dengan RFID

Microcontroller InitializationSD Card InitializationVS1002 Initialization

RFID InitializationLCD Initialization

Print tampilan awal LCDDengan status Play/

Pause, Language, dan Volume yang terakhir

(Standby)

Ada Tag? Play / Pause VOL UP? VOL DOWN?Language?

1

Baca data Tag

Ganti karakter ke 8 dengan kode bahasa dan

menambahkan 3 karakter MP3 ke

data tag yang dibaca

Cari file MP3

File ada?

Ganti 3 karakter MP3 dengan TXT.

Cari file textMainkan MP3

Dan tampilkan isi file text ke LCD

bila ada

Tampilkan“File tidak ditemukan”

ke LCD

1

1

1

Ganti kode bahasaGanti status Play/Pause

Apabila ada MP3 yang sedang

dimainkan maka MP3 akan dipause.

Apabila tidak ada maka tidak

berpengaruh apapun

1

Turunkan nilai register Volume pada VS1002

dengan kelipatan yang telah

ditentukan dan ubah status volume pada

mikrokontroler

1

Naikkan nilai register Volume pada

VS1002 dengan kelipatan yang telah ditentukan dan ubah status volume pada

mikrokontroler

1

Y

T

Y

T T TT T

Y YY Y

1 11 1 1

Gambar 3.19 Diagram Alir Keseluruhan Sistem

91 

 

Pada awal sistem akan melakukan proses inisialisasi setelah itu maka

sistem dalam keadaan standby, menunggu adanya RFID tag. Ketika RFID

tag terdeteksi, maka RFID reader akan membaca data yang berada pada

RFID tag dan mengirimkan data yang telah dibaca menuju mikrokontroler,

lalu mikrokontroler akan merubah karakter kedelapan pada data tag yang

sudah dibaca oleh RFID reader dengan kode bahasa dan menambahkan

extension file .MP3, sehingga data tersebut menjadi sebuah nama file.

Kemudian mikrokontroler akan mencari file .MP3 pada SD card, apabila

ditemukan, maka file .MP3 akan dimainkan setelah itu extension dari file

akan kembali dirubah yang awalnya ber-extension .MP3 menjadi .txt.

Kemudian mikrokontroler akan mencari file txt pada SD card, apabila

ditemukan maka file .txt akan ditampilkan pada LCD. Apabila file .MP3

tidak ditemukan maka LCD akan menampilkan kalimat ‘File tidak

ditemukan’.

Sedangkan apabila tombol Play/Pause ditekan maka status Play/Pause

pada mikrokontroler akan berubah sesuai dengan status sebelumnya. Apabila

pada saat ditekan ada file audio yang sedang dimainkan maka file audio

tersebut akan di-pause. Sedangkan apabila tidak ada file audio yang sedang

dimainkan maka penekanan tombol Play/Pause tidak akan berpengaruh

apapun.

Penekanan tombol Language hanya akan mengganti status kode bahasa.

Status kode bahasa hanya akan berpengaruh pada file audio yang akan

dimainkan selanjutnya.

92 

 

Sedangkan penekanan tombol VOL UP atau VOL DOWN akan

memerintahkan mikrokontroler untuk mengubah nilai register Volume pada

VS1002D. Apabila diberikan perintah VOL UP maka nilai register Volume

dikurangi, sementara apabila diberikan perintah VOL DOWN maka nilai

register Volume akan ditambah.

3.2.2 Perancangan Program Untuk Menghubungkan Mikrokontroler Dengan

PC

Perancangan program untuk menghubungkan PC dengan mikrokontroler

menggunakan komunikasi serial, secara umum program pada PC berfungsi sebagai

penghubung antara user dengan mikrokontroler, card reader, dan RFID. Antara

lain, perintah untuk membaca tag RFID, perintah untuk menulis tag RFID,

perintah untuk menambahkan dan menghapus file pada SD Card.

Gambar 3.20 Tampilan User Interface Utama

93 

 

Gambar 3.21 User Interface untuk Pemilihan File

Secara umum program pada komputer berfungsi sebagai penghubung antara

user dengan RFID. Perintah-perintah yang ada pada program ini adalah membaca

isi tag, menambahkan, dan mengurangi data pada memory card. Adapun fungsi

dari setiap bagian pada program interface adalah sebagai berikut :

1. Pilihan untuk memilih letak memory card

2. Tombol untuk membaca isi tag

3. Tombol untuk menambah file

4. Tombol untuk keluar dari program

5. Tombol untuk menghapus file

6. Tampilan informasi tag

7. Tampilan informasi memory card

8. Tampilan file .MP3 yang terdapat pada memory card

9. Tombol untuk memilih file .txt yang berbahasa Indonesia

10. Tombol untuk memilih file .txt yang berbahasa Inggris

11. Tombol untuk memilih file .MP3 yang berbahasa Indonesia

12. Tombol untuk memilih file .MP3 yang berbahasa Inggris

94 

 

13. Tombol untuk menyimpan konfigurasi

14. Tombol untuk batal

Perintah ‘Cek’ berfungsi untuk untuk membaca nomor seri dan data dari

tag yang terdeteksi. Fungsi ini juga dapat dipakai untuk mendeteksi adanya tag.

Perintah ‘Tambah file’ berfungsi untuk memasukan data berupa file .MP3

dan .txt kedalam memory card. Kemudian melakukan penulisan data ke tag. Data

yang di masukkan kedalam tag adalah nama file yang di masukkan oleh user.

Perintah ‘Hapus file’ berfungsi untuk menghapus data berupa file .MP3 dan

.txt yang terdapat pada memory card. Data yang akan dihapus harus di pilih dahulu

oleh user.

Perintah ‘Browse’ yang terdapat pada gambar 3.21 berfungsi untuk memilih

file yang akan dimasukkan ke dalam memory card.

95 

 

A. Diagram Alir Umum Menghubungkan Mikrokontroler Dengan PC

StandbyForm List File

Button Check Tag

1

1

T

Y

Read Tag

Send Message“No Tag”Have Tag

T

Y

PrintTag TypeTag SN

Tag Data

1

Button Exit

1

T

Y

End

Button Delete File

T

1

Y

Select List File Send Message“No File Selected”

ConfirmationDelete file

Y

T

Delete File

1

Y

T

Message File Deleted

Button AddFile

1

T

Y

Form Browse File

Browse File .mp3& File .txt

T

Y

Write Tag with Name File

Write Status = 0

Copy file to SD Card

Message“Write Failure”

Y

T

1

1

Match File

Y

T

Message“File Not Match”

Gambar 3.22 Diagram Alir Umum Menghubungkan Mikrokontroler Dengan PC

Perintah membaca tag RFID berfungsi untuk meminta mikrokontroler

untuk mengecek ada tidaknya tag RFID, kemudian bila tag tidak terdeteksi

maka program akan menampilkan pesan bahwa tag RFID tak terdeteksi dan

bila tag RFID terdeteksi maka program akan meminta mikrokontroler

memerintah RFID reader untuk membaca isi tag RFID dan kemudian

96 

 

program menunggu data tag RFID diberikan oleh mikrokontroler melalui

komunikasi serial. Setelah mendapatkan respon dari RFID_PC maka

program akan menampilkannya.

Perintah menulis tag berfungsi untuk meminta user memasukkan

inputan apa yang mau ditulis pada tag dan kemudian memerintahkan

mikrokontroler mencek ada tidaknya tag RFID, bila tidak terdeteksi maka

program akan menampilkan pesan bahwa tag RFID tak terdeteksi dan bila

tag RFID terdeteksi maka program akan meminta mikrokontroler

memerintah RFID reader untuk menulis isi tag RFID dan kemudian

menunggu respon dari status penulisan tag RFID yang akan dikirimkan

menuju PC.

Perintah untuk menambahkan file pada SD Card berfungsi untuk

meminta user menambahkan file yang berformat .MP3 yang berfungsi

sebagai file audio dan file yang berformat .txt yang berfungsi sebagai file

sinopsis dan PC akan meminta card reader untuk meng – copy file yang

sudah dipilih kedalam SD card. Sedangkan perintah menghapus file pada SD

card berfungsi untuk, PC akan meminta card reader menghapus file

berformat .MP3 dan file yang berformat .txt pada SD card.

3.3 Rancang Bangun Sistem

Casing pada sistem terbuat dari bahan acrylic berbentuk balok yang dapat di buka

pada salah satu sisinya untuk penggantian baterai dan perbaikan alat apabila terjadi

kerusakan.

97 

 

Spesifikasi casing :

• Panjang :11.7 cm

• Lebar : 8.7 cm

• Tinggi : 3.7 cm

• Warna : Hitam

Gambar 3.23 Sistem tampak atas dan samping