Kelompok 03
Anggota:
Khairunnisa (13212028)
Tengku Ahmad Madya Putra (13212098)
1. JUDUL
Pembaca Nominal Uang Kertas untuk Tuna Netra
2. SPESIFIKASI SISTEM
Menggunakan sensor cahaya LDR (light dependent resistor) dengan LED (light
emitting diode) dan sensor warna TCS320, RGB sebagai referensi masukan.
Terdapat dua mode pembacaan, yaitu pembacaan uang dan pembacaan warna.
Terdapat tiga buah sensor yang digunakan dan diletakkan pada posisi yang
berbeda-beda.
Mampu membaca delapan warna, yaitu putih, hitam, merah, jingga, kuning, hijau,
biru, dan ungu.
3. DESAIN RANGKAIAN
3.1
SKEMA RANGKAIAN
3.2
Secara umum ialah sebagai berikut. Uang diletakkan pada sensor yang dibaca oleh
mikroprosesor. Hasil pembacaan kemudian dikeluarkan oleh speaker berupa suara (yang
menyatakan nominal uang atau warna) yang berasal dari SD card. Sebelum suara keluar,
terlebih dahulu diproses oleh low-pass filter dan audio amplifier.
Low-pass Filter
Resistor dan kapasitor dirancang sedemikian rupa agar filter meloloskan frekuensi
di bawah 20 kHz (sesuai dengan batas pendengaran manusia).
Audio Amplifier
Audio amplifier memiliki penguat awal sebagai penyangga. Kemudian dilakukan
tone control untuk menyamakan suara yang dihasilkan pada speaker agar sesuai
dengan aslinya (yang disimpan dalam SD Card). Prinsipnya dengan mengatur
nilai resonator pada rangkaian filter. Akhirnya dilakukan penguat akhir yang
bertujuan memperkuat sinyal dari pengatur nada agar menggetarkan membran
speaker. Setelah itu, suara dikeluarkan oleh speaker. Di sini juga terdapat kontrol
volume dengan memanfaatkan potensio.
SD Audio Player
SD audio player ini dibuat dengan mikrokontroler dan sebuah SD card. SD card
digunakan untuk menyimpan file WAV yang berisi suara fokal untuk setiap
nominal uang dan warna yang dapat dideteksi alat.
4. IMPLEMENTASI RANGKAIAN
4.1
LAYOUT PCB
4.2
Digunakan teknik true hole dan rangkaian diperoleh dengan cara disolder. Selain itu, PCB
yang digunakan ialah dua layer dan menggunakan beberapa kabel jumper karena
keterbatasan ruang.
Mikroprosesor yang digunakan Arduino Pro Mini karena pin lebih banyak dan
ukurannya lebih kecil.
Sensor warna menggunakan LDR karena memiliki sifat berubahnya nilai resistansi
tergantung pada cahaya. Selain itu, LDR tidak mempunyai sensitivitas yang sama untuk
setiap panjang gelombang cahaya yang jatuh padanya. Serta, LDR berharga lebih murah.
Pembacaan nominal uang menggunakan sensor cahaya karena tiap uang dengan
nominal berbeda memiliki warna yang berbeda pula sehingga cahaya LDR warna cocok
digunakan. Selain itu, keluaran berupa suara karena alat berikut ditujukan kepada tuna
netra.
Pembacaan warna maupun nominal uang yang disimpan ke dalam register adalah
pembacaan setiap ke-250. Dipilih angka tersebut karena saat sampel diambil dan
digambar dalam grafik, sekitar sampel ke-250 pembacaan warna bernilai cukup stabil.
Dapat dilihat di bawah ini:
Pembacaan Ungu
300
250
200
150
100
50
1
27
53
79
105
131
157
183
209
235
261
287
313
339
365
391
417
443
469
495
521
547
573
599
625
651
677
703
729
755
781
807
833
859
885
911
937
963
989
R0
G0
B0
Sebelum suara dikeluarkan, digunakan low-pass filter terlebih dahulu yang menyaring
suara di bawah 20 kHz sesuai dengan batas pendengaran manusia.
5. IMPLEMENTASI SOFTWARE
5.1
FLOWCHART
MULAI
Inisialisasi
Power down
Jalankan sensor
cahaya
Hasil dibandingkan
dengan data referensi
Keluaran R, G, B
BLOK DIAGRAM
Volume
Panel tombol
Kontrol
Kontrol mode
Masukan
Potensio
Sensor cahaya
LDR 1
Sensor cahaya
LDR2
Mikrokontroler
ATMega8
Sensor cahaya
LDR 3
Low-pass filter
Audio amplifier
Keluaran suara
5.2
Penyimpanan
Sensor cahaya
TCS320
SD card
5.3
e. Biru LDR1: Setelah ISR ADC terjadi sebanyak 1000 kali (1000 ms), hasil
baca LDR dan modul TCS230 disimpan dalam tabel read, masing-masing
di baris ke-6 dan ke-7. Kemudian, channel ADC diubah menjadi LDR1
(channel 7) dan LED yang dinyalakan diganti menjadi LED biru. Counter
untuk TCS230 direset.
f. Biru LDR2: Setelah ISR ADC terjadi sebanyak 1250 kali (1250 ms), hasil
baca LDR dan modul TCS230 disimpan dalam tabel read, masing-masing
di baris ke-8 dan ke-9. Kemudian, channel ADC diubah menjadi LDR2
(channel 0). Counter untuk TCS230 direset.
g. Berhenti Baca: Setelah ISR ADC terjadi sebanyak 1500 kali (1500 ms), hasil
baca LDR dan modul TCS230 disimpan dalam tabel read, masing-masing
di baris ke-10 dan ke-11. LED, ADC, modul TCS230, Timer0, dan Timer1
dimatikan. Diberikan flag untuk mulai membandingkan hasil baca dengan
tabel referensi pada fungsi utama.
h. Bandingkan: Hasil yang disimpan pada tabel read dibandingkan dengan
tabel referensi. Pembandingan dilakukan dengan menghitung selisih
antara tabel read dan tabel referensi untuk setiap nominal uang, kemudian
selisih terbesar diambil. Setelah itu, diambil selisih terkecil dari
sekumpulan selisih tersebut. Jika selisih terkecil tersebut lebih besar dari
15, maka disimpulkan bahwa input kertas yang dimasukkan bukan uang
rupiah. Jika tidak, maka ditentukan nominal uang berdasarkan tabel yang
menghasilkan selisih terkecil.
i. Keluarkan: Diputar file WAV yang menyebutkan nominal uang sesuai
dengan hasil pembandingan.
Baca Warna
a. Merah LDR3: Input Capture ISR digunakan untuk menghitung rising-edge
yang terjadi pada keluaran TCS230. ISR ADC terjadi setiap 1 ms. Pada ISR
ADC pertama kali, LED merah dinyalakan, ADC yang dibaca adalah LDR3
(channel 7), dan modul TCS230 membaca warna merah.
b. Hijau LDR3: Setelah ISR ADC terjadi sebanyak 250 kali (250 ms), hasil baca
LDR dan modul TCS230 disimpan dalam tabel read, masing-masing di
baris ke-0 dan ke-1. Kemudian, channel ADC diubah menjadi LDR3 (channel
7) dan LED yang dinyalakan diganti menjadi LED hijau. Counter untuk
TCS230 direset.
c. Biru LDR3: Setelah ISR ADC terjadi sebanyak 500 kali (500 ms), hasil baca
LDR dan modul TCS230 disimpan dalam tabel read, masing-masing di
baris ke-2 dan ke-3. Kemudian, channel ADC diubah menjadi LDR3 (channel
7) dan LED yang dinyalakan diganti menjadi LED biru. Counter untuk
TCS230 direset.
d. Berhenti Baca: Setelah ISR ADC terjadi sebanyak 750 kali (750 ms), hasil
baca LDR dan modul TCS230 disimpan dalam tabel read, masing-masing
di baris ke-4 dan ke-5. LED, ADC, modul TCS230, Timer0, dan Timer1
dimatikan. Diberikan flag untuk mulai membandingkan hasil baca dengan
tabel referensi pada fungsi utama.
e. Bandingkan: Hasil yang disimpan pada tabel read dibandingkan dengan
referensi. Pembandingan dilakukan dengan menghitung selisih antara
tabel read dan referensi untuk setiap warna, kemudian dihitung selisih.
Dari perbandingan tersebut, diperoleh warna yang sesuai.
f. Keluarkan: Diputar file WAV yang menyebutkan warna sesuai dengan
hasil pembandingan.
Adapun tabel referensi untuk nominal uang ialah sebagai berikut:
const uint8_t
Rp1000_1[] PROGMEM = {179, 39,160, 40,186,35,161,34,197,
44,181, 45};
const uint8_t
Rp1000_2[] PROGMEM = {177, 91,181, 91,184,62,175,63,191,
72,186, 73};
const uint8_t
Rp1000_3[] PROGMEM = {172, 80,177, 83,182,55,167,55,195,
64,190, 64};
const uint8_t
Rp1000_4[] PROGMEM = {169, 46,159, 48,182,40,159,41,199,
51,180, 51};
const uint8_t
Rp2000_1[] PROGMEM = {171, 55,164, 56,175,39,159,39,193,
48,176, 48};
const uint8_t
Rp2000_2[] PROGMEM = {170, 84,176, 84,183,62,171,62,195,
77,192, 77};
const uint8_t
Rp2000_3[] PROGMEM = {182, 61,170, 62,191,46,168,46,202,
60,186, 60};
const uint8_t
Rp2000_4[] PROGMEM = {178, 58,169, 58,186,41,164,41,204,
50,181, 50};
const uint8_t
Rp5000_1[] PROGMEM = {168, 63,158, 63,188,41,158,41,197,
46,179, 46};
const uint8_t
Rp5000_2[] PROGMEM = {169,100,167,102,180,66,168,66,193,
76,192, 76};
const uint8_t
Rp5000_3[] PROGMEM = {168, 92,170, 91,191,58,166,58,194,
66,192, 66};
const uint8_t
Rp5000_4[] PROGMEM = {166, 61,159, 61,179,43,157,43,202,
48,182, 48};
const uint8_t
Rp10000_1[] PROGMEM = {170, 43,159, 42,184,35,155,35,191,
52,169, 52};
const uint8_t Rp10000_2[] PROGMEM = {177, 100, 170, 98, 189, 71, 165, 71,
186, 102, 173, 100};
const uint8_t
Rp10000_3[] PROGMEM = {176, 99,173, 99,184,71,172,71,187,
99,184, 97};
const uint8_t
Rp10000_4[] PROGMEM = {174, 52,157, 52,183,38,153,38,196,
55,170, 55};
const uint8_t
Rp20000_1[] PROGMEM = {192, 33,164, 33,195,30,159,30,200,
40,174, 40};
const uint8_t
Rp20000_2[] PROGMEM = {188, 81,178, 80,194,62,164,62,192,
75,184, 74};
const uint8_t
Rp20000_3[] PROGMEM = {182, 75,176, 75,190,54,164,55,197,
65,181, 66};
const uint8_t
Rp20000_4[] PROGMEM = {173, 45,161, 45,172,40,156,41,197,
55,177, 54};
const uint8_t
Rp50000_1[] PROGMEM = {192, 38,164, 38,193,37,157,38,194,
57,174, 57};
const uint8_t
Rp50000_2[] PROGMEM = {173, 72,186, 71,175,57,172,57,182,
76,180, 76};
const uint8_t
Rp50000_3[] PROGMEM = {194, 68,184, 68,196,52,177,53,193,
69,180, 69};
const uint8_t
Rp50000_4[] PROGMEM = {189, 41,163, 40,193,38,156,38,203,
59,175, 58};
const uint8_t Rp100000_1[] PROGMEM = {161, 73,157, 73,181,43,156,43,193,
54,175, 54};
const uint8_t Rp100000_2[] PROGMEM = {158, 81,161, 81,175,52,170,52,192,
66,185, 66};
const uint8_t Rp100000_3[] PROGMEM = {164, 78,171, 78,193,45,171,45,200,
60,194, 60};
const uint8_t Rp100000_4[] PROGMEM = {175, 56,160, 56,206,29,160,29,206,
40,178, 41};
const uint8_t* const refer[] PROGMEM = {Rp1000_1, Rp1000_2, Rp1000_3,
Rp1000_4, Rp2000_1, Rp2000_2, Rp2000_3, Rp2000_4, Rp5000_1, Rp5000_2,
Rp5000_3,
Rp5000_4,
Rp10000_1,
Rp10000_2,
Rp10000_3,
Rp10000_4,
Rp20000_1, Rp20000_2, Rp20000_3, Rp20000_4, Rp50000_1, Rp50000_2, Rp50000_3,
Rp50000_4, Rp100000_1,Rp100000_2,Rp100000_3,Rp100000_4};
R
123
204
121
119
118
119
189
Nilai
G
142
215
198
131
125
138
164
B
184
234
221
114
101
122
210
172
189
158
194
182
191
126
190
184
PENGUJIAN
Baca Uang
Nominal Uang
Rp1000,00
Posisi Peletakan
1
Kali Coba
1
Keluaran Suara
Seribu Rupiah
Rp2000,00
Rp5000,00
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
Seribu Rupiah
Seribu Rupiah
Seratus Ribu Rupiah
Seribu Rupiah
Dua Puluh Ribu Rupiah
Dua Puluh Ribu Rupiah
Dua Puluh Ribu Rupiah
Dua Puluh Ribu Rupiah
Dua Puluh Ribu Rupiah
Seribu Rupiah
Seribu Rupiah
Seribu Rupiah
Seribu Rupiah
Seribu Rupiah
Seratus Ribu Rupiah
Seratus Ribu Rupiah
Seratus Ribu Rupiah
Seratus Ribu Rupiah
Seratus Ribu Rupiah
Dua Puluh Ribu Rupiah
Dua Puluh Ribu Rupiah
Dua Puluh Ribu Rupiah
Dua Puluh Ribu Rupiah
Dua Puluh Ribu Rupiah
Dua Ribu Rupiah
Dua Ribu Rupiah
Dua Ribu Rupiah
Dua Ribu Rupiah
Dua Ribu Rupiah
Dua Ribu Rupiah
Dua Ribu Rupiah
Dua Ribu Rupiah
Dua Ribu Rupiah
Dua Ribu Rupiah
Dua Ribu Rupiah
Dua Ribu Rupiah
Dua Ribu Rupiah
Dua Ribu Rupiah
Sepuluh Ribu Rupiah
Seribu Rupiah
Lima Ribu Rupiah
Lima Ribu Rupiah
Rp10000,00
Rp20000,00
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
Rp50000,00
Rp100000,00
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
Baca Warna
Warna
Putih
Hitam
Merah
Jingga
Kuning
Kali Coba
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
Keluaran Suara
Putih
Putih
Putih
Putih
Putih
Hitam
Hitam
Hitam
Hitam
Hitam
Merah
Merah
Merah
Merah
Merah
Tidak Terdeteksi
Tidak Terdeteksi
Tidak Terdeteksi
Tidak Terdeteksi
Tidak Terdeteksi
Kuning
Kuning
Kuning
Kuning
Hijau
Biru
Ungu
Aqua
Lime
6.2
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
Kuning
Hijau
Hijau
Hijau
Hijau
Hijau
Biru
Biru
Biru
Biru
Biru
Ungu
Ungu
Ungu
Ungu
Ungu
Tidak Terdeteksi
Tidak Terdeteksi
Tidak Terdeteksi
Tidak Terdeteksi
Tidak Terdeteksi
Tidak Terdeteksi
Tidak Terdeteksi
Tidak Terdeteksi
Biru
Biru
Sensitivitas sensor masih rendah. Range nilai yang diperoleh tipis sehingga beberapa sulit
dibandingkan.
6.3
FOTO ALAT
7. KESIMPULAN
Alat dapat membedakan uang kertas dengan nominal Rp1000, Rp2000, Rp5000, Rp10000,
Rp20000, Rp50000, dan Rp100000, serta hasil pembacaan dikeluarkan dalam bentuk
suara. Demikian pula dapat membaca delapan buah warna, yaitu, putih, hitam, merah,
jingga, kuning, hijau, biru, dan ungu.
8. REFERENSI
[1]
http://shinta-main-jp.blogspot.jp/2011/05/b041-sd-card-module.html
[2]
http://elm-chan.org/works/sd8p/report.html
[3]