board rangkaian sensor
nb: jarak antar led & photodiode disesuaikan sendiri dgn lebar garis atau ubah aja urutan biner di switch case
screenshoot gan:


bahannya:
-led superbright 3mm/5mm warna sembarang(8)
-photo diode 3mm/5mm (8) #kalau bisa ukuran led & photodiode sama
-resistor 22k (8)
-resistor 1k (10)
-amphenol 10 pin (1) #bisa diganti header bisaa
-kabel 10 pin (1)
-header (1) #utk pin downloader, pin baterai, lcd, dsb
-rol kecil bekas parfum (1) #kaya rol botol fresh care/penjual bibit parfum
-switch on off tekan (1) #kondisional
-7805 (1) #regulator 5V utk komponen di board utama
-C 10uF 16V(1)
-TIP 3055 (1) #biar arusnya bisa maksimal masuk, Mas Boy pernah ga pake, cepat panas 7805nya
-Push button (5) #4 utk menu, 1 utk reset
-trimpot 10k (1) #mengatur brightness lcd
-mikro (1) #Mas boy pake atmega 16
-L298 (1) #baca note
-konektor skrup (2) #menghubungkan output driver motor ke motor DC
-dioda 1A (9) # 1 utk LCD, 8 buat driver motor
-header female (1) #buat dudukan LCD, ga pake gpp
-dioda 4148 (1) #utk regulator aja
-kabel secukupnya
-PCB
-motor DC (2) #baca note
-ban, gear, mur baut, sesuai rancangan fisik
-batre Li-Po #jangan pake batre biasa (batre kotak/ABC), ga bakalan kuat (tested).
note :
inti dari line tracer adalah ketepatan membaca garis dan kecepatan. utk ketepatan InsyaAllah sudah ada di program utk kecepatan tergantung motor DC. ada macam2 motor DC, 5V, 9V, 12V,24V,dsb. terserah pake yg mana. karena Mas Boy batrenya Li-Po 12V 1A ya gampangannya motor 12V jg. tapiiii.. motor 12 V ada macem2 rpm nya. semakin tinggi rpm, arusnya makin besar, harga juga mahal.
naaah ukur dulu arus pada motor DC yg dipake dengan cara menghubungkan dengan power supply, lalu di bagian +/- nya dihubung seri dgn ammeter. dari situ, pilih lah driver motor yg tepat. utk L298/L293, baca dulu tu datasheet, berapa arus maksml yg bisa disupply ke motor. kalau tidak, driver bisa meledak (ini fakta).paling sip ya pake transistor FET, bisa ngalirin arus besar. bikin konfigurasi yg namanya H-Bridge. tapi hati2, temen Mas Boy bikin berapa kali, salah mulu, bisa muncul apinya lo.hehe. bijaklah dalam pemilihan motor DC dan drivernya ya
oke, alur ceritanya begini:
- cahaya yang dipancarkan led superbright akan memantul ke bidang, sesuai dengan spektrum warna, semakin putih bidang maka semakin banyak cahaya terpantul. cahaya yg terpantul itu di tangkap photodiode dan menjadi bentuk tegangan. Jika photo dioda tidak terkena cahaya, maka nilai resistansinya akan besar ,tegangan juga besar, atau dapat diasumsikan menjadi tak hingga. Sehingga arus yang mengalir pada komparator sangat kecil atau dapat diasumsikan berlogika 0.
Jika photo dioda terkena cahaya, maka photo dioda akan bersifat sebagai sumber tegangan dan nilai resistansinya akan menjadi kecil, tegangan juga kecil, sehingga akan ada arus yang mengalir ke komparator atau berlogika 1.
- kasih header n definisi dulu yaaa.. biar variable2 di bawah jelas maksudnya
- dari rangkaian sensor, di hubungkan dengan ADC di mikrokontroler (PORT A 0-7). naah.. disinilah proses ini terjadi. saya jelasin pk program ya. di void scan_garis(), saat memulai program jangan lupa seting ADC aktif ya di port A. nah perintah mengambil/mengolah hasil tangkapan rangkaian sensor tadi cukup menggunakan "read_adc(i)". i yg dimaksud adalah port ADC di PORT A. dan ada perintah for dari 0-7. artinya void scan_garis() akan mengambil data ADC dari sensor dan ditampilin ke LCD. karena 8 bit berati ntr nilainya 0-1023. karena ada 2 jenis warna yg dijadikan referensi (terang & gelap) atau garis dan latarnya, maka kita harus mengambil 2 data, garis (garis[i])dan latarnya (back[i])
bandingkan kedua nilai tersebut. pada line tracer analog, tugas ini dilakukan komparator/op amp. kita bagi 2 dulu nilai ADC garis[i] dan back[i]. ini agar kita mendapatkan referensi "batas" agar mikro dapat menentukan, "ini garis atau bukan". ini dilakukan di void hit_tengah(). oke, kita bkin logikanya di void konvert_logic(). karena Mas Boy ingin garis yg diikuti adalah putih, maka sesuai langkah 1 di atas, nilai ADC utk garis pasti lebih kecil daripada nilai tengahnya. kita beri loogika 1. kebalikannya dengan latar (yg lebih gelap daripada garisnya logika 0)
okee.. dengan begini mikro sudah mengerti yg mana garis, yg mana yg bukan. artinya jika yg diikuti bukan garis, line tracer harus cari garisnya.muehehe. naaah.. tadikan cuma proses.. ini program menentukan arah dan kecepatan line tracernya. di void logika(), nilai2 dari konvert_logic() tadi kan cuma proses, tapi belum disusun. susun dulu pakai void logika(), jadi kita dapatkan deret biner ADC dari PORTA (0-7) jika garis logika 1 kalo bukan 0. oke, bisa dilihat di void run(), menggunakan switch case (memilih keadaaan), direction kanan/kiri/maju, dan nilai PWM (0-255), Mas Boy ambil 2 contoh aja ya, kalau 0b00011000 artinya 2 sensor ditengah mengenai garis, artinya tinggal lurus kenceng aja kan?perintahnya jika kejadiannya seperti itu maju(255,255) artinya direction maju, kecepatan ban kiri dan kanan 255 (maksimal). oke sip.jika 0b00000001, artinya cuma 1 sensor paling kanan yg kena garis, artinya line tracer menceng ke kiri, artinya harus dibelokkan ke kanan, jadi kanan(255,255) artinya direction ke kanan (ban kiri maju, ban kanan mundur) dengan kecepatan maksimal karena mencengnya jauh. kalo menceng dikit ya dikit aja gesernya (pwm salah satu ban lebih kecil.

kanan/kiri/maju sm nilai pwm kok tau2 ada? ini maksudnya. ternyata kanan/kiri/maju adalah void, jadi di switch case itu kita memanggil sub program. void itu mengatur arah gerakan motor DC. jadi untuk menggerakan motor DC, kan harus + dan -, logikakan jadi 1 & 0. ya sudah, di void kiri/kanan/maju itu Mas Boy mengatur arah gerakan motor DC, port2 yg dimaksud disana terhubung dengan driver motor.
sub program sudah jadiiiiiii! daaan.. untuk melihat hasilnya,tampilkan di LCD, panggil sub programnya, ntar nampil angka biner,sesuai jika garis putih 1, bukan 0. JANGAN LUPA PERINTAH LCDNYA YA!
proses uda,ini program utamanya. ingat, di skematik ada 4 tombol kan? itu tombol menu. jadi tombol 1 utk scan garisnya, tombol 2 backgroundnya, tombol 3 kondisional aja, cuma buat ngecek aja sebelum run ga dipencet gapapa. nah, pencet sesuai urutan td ya, lalu reset, dan tombol4 utk run
|
Mas. Mau tanya, untuk inisialisasi sudah diketik terus untuk memasukkan perintahnya gimana? ex:
maju;
kanan;
kiri;
dan seterusnya.
Permisi Mas Boy ane mautanya nih, PORTB.3=0 itu apa ya. Apa itu tombol tambahan.
Mohon penjelasanya, sebelumya saya ucapkan terimakasih.
Permisi Mas Boy ane mautanya nih, PORTB.3=0; itu apa ya. Apa itu tombol tambahan.
Mohon penjelasanya, sebelumya saya ucapkan terimakasih.
thanks gan sudah share
Lampu service hp