Kamis, 06 Agustus 2009

AVR Microcontroller datasheet and Software


oh iya, saya akan coba menyertakan datasheet AVR ATMEGA8535

langsung dari situs atmel, silahkan download

www.atmel.com/dyn/resources/prod_documents/doc2502.pdf

untuk berlatih mikrokontroller AVR ATMEGA, dapat menggunakan software simulator dari Atmel, yaitu AVR Studio 4, tapi jangan lupa untuk register di atmel terlebih dahulu untuk mendownload softwarenya, bisa di unduh melalui

http://www.atmel.com/forms/software_download.asp?fn=dl_AvrStudio417Setup.exe

selamat mencoba dan semoga sukses, untuk belajar lebih mudahnya dapat membeli buku-buku mikrokontroller di toko buku terdekat, sesuai dengan yang anda inginkan, kalau saya sih membeli buku yang judulnya "Belajar Sendiri Mikrokontroler AVR Seri ATMega8535, pengarang:Lingga Wardhana"

AVR Microcontroller




Pembaca yang budiman, kembali lagi saya membuat sebuah posting blog
yang kali ini saya akan membahas mengenai sebuah mikrokontroler yang sedang jadi trend di saat ini yaitu mikrokontroller AVR
AVR itu sendiri memiliki kepanjangan yaitu Alf, Vegard and RISC salah satu kepanjangan tersebut yaitu RISC, memiliki kepanjangan lagi yaitu Reduced Instruction Set Computing, dimana setiap instruksi dalam mikrokontroler ini dapat dilakukan dengan 1 siklus mesin saja, atau 1 siklus clock, berbeda dengan mikrokontroller dari keluarga MCS-51 yang masih menggunakan CISC architecture (Complex Instruction Set Computing) yang membutuhkan 12 siklus mesin atau 12 clock untuk melakukan satu buah instruksi, ini berarti mikrokontroler AVR dapat bekerja lebih cepat dan lebih presisi ketimbang mikrokontroler MCS-51, dengan menggunakan eksternal clock 4 MHZ, setara dengan mikrokontroler MCS-51 dengan external clock 48 MHz, padahal mikrokontroller MCS-51 di pasaran maksimal dapat beroperasi dengan 33MHz eksternal clock

untuk dalam posting kali ini saya akan membahas satu jenis dari mikrokontroler AVR yaitu ATMEL ATMEGA8535, jenis mikrokontroler AVR sendiri ada sangat banyak, mulai dari ATtiny, AT90Sxxx dan lain-lainnya
di dalam mikrokontroler AVR ini, sudah terdapat internal clock sebesar 1 MHZ, jadi kita dapat mengoperasikan mikrokontroler ini tanpa eksternal clock, meskipun kecepatan yang didapat juga sangat terbatas, sedangkan mikrokontroler MCS-51 tidak terdapat internal clock, sehingga harus ditambahkan dari luar mikrokontroller tersebut

dalam hal fitur, sudah barang tentu AVR jauh lebih lengkap ketimbang pendahulunya, yaitu MCS-51, di dalam AVR sudah include EEPROM yang dapat diprogram saat mikrokontroler tersebut beroperasi, sehingga sudah memenuhi syarat untuk membangun embedded sistem, ada lagi di salah satu port nya terdapat Analog to Digital Converter (ADC) untuk mengkonversi tegangan analog menjadi angka biner digital, berbicara mengenai analog, tidak sampai disitu, bahkan di dalam mikrokontroler ini juga sudah terdapat analog comparator!

berbicara mengenai mikrokontroler, tentu tidak luput dengan program PWM atau Pulse Width Modulation yang biasa digunakan untuk mengontrol kecepatan motor arus searah dan enaknya, mikrokontroler AVR menyediakan 4 channel PWM dan dengan mudahnya kita membuat program yang membutuhkan PWM tanpa mesti berpanjang2 mengatur timer dan ketiga timer yang dimiliki oleh mikrokontroller AVR tersebut dapat beroperasi untuk mengeluarkan PWM, banyak sekali fitur yang dimiliki oleh timer mikrokontroler AVR ini, seperti real time counter, sehingga dapat memudahkan kita untuk membuat penghitung waktu sebagai jam digital





ini adalah pembukaan dari kemungkinan postingan berikutnya mengenai mikrokontroler AVR dari blog saya, doakan saya semoga sukses belajar AVR gan!!!

oh iya, bicara mengenai pemrograman AVR, Atmel sendiri sudah menyesuaikan arsitektur mikrokontroler ini agar dapat mudah diprogram dengan menggunakan bahasa C, dan memang kebanyakan programer menggunakan mikrokontroler ini dengan melakukan program melalui bahasa C untuk berikutnya di compile ke intel HEX, saya sendiri mencoba belajar dengan menggunakan bahasa rakitan AVR, mudah-mudahan posting berikutnya akan terlaksana, untuk pertama-tama saya sudah merencanakan membuat jam digital dengan AVR mikrokontroler tetapi dengan menggunakan bahasa assembly/rakitan

salam


Minggu, 19 Juli 2009

Program PWM pada AT89S51 tanpa Interrupt


Pembaca, pada semester 4 kemarin, saya mendapat tugas dari dosen mata kuliah mikroprosesor untuk membuat sebuah robot line follower, atau robot pengikut garis dengan menggunakan mikrokontroler AT89S51

pada awalnya saya sempat bingung, karena dosen saya menyuruh saya dan kawan2 untuk belajar programming AT89S51 berikut struktur-strukturnya secara otodidak, dosen saya hanya memberi pengarahan-pengarahan dasar saja, seperti : untuk mengontrol kecepatan motor DC pada robot diperlukan PWM (Pulse Width Modulation) yang menggunakan interrupt system pada mikrokontroler tersebut, kemudian beliau menjelaskan frekuensi yang dipakai, yaitu 200 HZ, meskipun standar PWM yang ada kebanyakan 1000 KHZ

dengan menggunakan frekuensi 200 HZ, berarti 1 siklus PWM adalah 5 milidetik
namun beliau mengingatkan agar programing PWM tidak di copy paste dari internet, karena dari setiap step yang kita buat akan ditanya olehnya apa maksudnya, waduh!

setelah saya cari2 di internet pun, hasil yang ditemukan adalah saran untuk menggunakan mikrokontroller dari keluarga AVR, sedangkan untuk MCS-51(dalam hal ini AT89S51) hampir tidak dapat ditemukan, setelah ditemukan, struktur programnya pun tidak dapat saya mengerti dan saya terapkan untuk tugas robot ini

akhirnya dari buku yang membahas mengenai programming mikrokontroler AT89S51 (tentu saja tidak membahas PWM) saya coba bolak balik untuk mendapatkan programming PWM yang benar2 "ORIGINAL BY FACHRI" akhirnya daripada saya pusing dan terjebak belajar di struktur interrupt, saya membuat program PWM dengan menggunakan Sub-Rutin sederhana, dimana Sub Rutin Tersebut berjalan 5 milidetik,

cara kerjanya
-Tombol untuk start robot harus ditekan dan dilepas
-Pembacaan sensor dimulai, setiap ada yang cocok, subrutin dipanggil
-setelah menjalankan subrutin 5milidetik, kembali membaca sensor
-proses tersebut berulang dan berhenti ketika mikrokontroller di reset


sub rutin penjalanan motor dibagi 4 jenis:
-Maju Full=Robot melaju dengan kecepatan penuh
-Maju Half=Robot melaju dengan kecepatan setengah
-Belok Kiri
-Belok Kanan


untuk flowchartnya belum dibuat memang, tapi saya akan sertakan programming Assembly MCS-51 nya di sini:

$MOD51

;kecepatan-kecepatan motor:
;----------------------------------
;Gerakan Kecepatan Motor
;-----------------------------------------------
; Kiri Kanan
;-----------------------------------------------
;Maju-Full 90% 90%
;Maju-Half 60% 60%
;Kiri 10% 60%
;Kanan 60% 10%
;-----------------------------------------------
;
;Port Output yang digunakan
;-----------------------------------------------------------------------------------------------------------------------
;Port 0.7 sebagai penentu motor kiri(kalau mengeluarkan nilai 0 dapat berfungsi sebagai potensial 0/Ground untuk motor)
;Port 0.0 sebagai penentu motor kanan(kalau mengeluarkan nilai 0 dapat berfungsi sebagai potensial 0/Ground untuk motor)
;
;-----------------------------------------------------------------------------------------------------------------------
;Made By: Muchammad Fachri
;-----------------------------------------------------------------------------------------------------------------------
;Electrical Engineering Trisakti University
;Computer System Engineering
;Embedded System Division
;-----------------------------------------------------------------------------------------------------------------------
;

;--------------------------------
;Mulai Jalankan Robot,tekan P2.0
;--------------------------------
JMP Inisialisasi

ORG 0CH
Inisialisasi:
JB P2.0,$
JNB P2.0,$
JMP Start

ORG 30H
Start:
MOV TMOD,#01H ;Timer 0 mode 1 (16 bit)

;-----------------------------
;Baca Port (Input dari sensor)
;-----------------------------

baca:
MOV A,P1
cek:
CJNE A,#00000111B,cek1
CALL MajuHalf
JMP baca
cek1:
CJNE A,#00001111B,cek2
CALL TurnRight
JMP baca
cek2:
CJNE A,#00010111B,cek3
CALL TurnLeft
JMP baca
cek3:
CJNE A,#00011111B,cek4
CALL MajuHalf
JMP baca
cek4:
CJNE A,#00100111B,cek5
CALL TurnRight
JMP baca
cek5:
CJNE A,#00101111B,cek6
CALL TurnRight
JMP baca
cek6:
CJNE A,#00110111B,cek7
CALL TurnRight
JMP baca
cek7:
CJNE A,#00111111B,cek8
CALL TurnRight
JMP baca
cek8:
CJNE A,#01000111B,cek9
CALL TurnLeft
JMP baca
cek9:
CJNE A,#01001111B,cek10
CALL TurnLeft
JMP baca
cek10:
CJNE A,#01010111B,cek11
CALL TurnLeft
JMP baca
cek11:
CJNE A,#01011111B,cek12
CALL TurnLeft
JMP baca
cek12:
CJNE A,#01100111B,cek13
CALL MajuHalf
JMP baca
cek13:
CJNE A,#01101111B,cek14
CALL TurnRight
JMP baca
cek14:
CJNE A,#01110111B,cek15
CALL TurnLeft
JMP baca
cek15:
CJNE A,#01111111B,cek16
CALL MajuHalf
JMP baca
cek16:
CJNE A,#10000111B,cek17
CALL MajuFull
JMP baca
cek17:
CJNE A,#10001111B,cek18
CALL TurnLeft
JMP baca
cek18:
CJNE A,#10010111B,cek19
CALL TurnRight
JMP baca
cek19:
CJNE A,#10011111B,cek20
CALL MajuFull
JMP baca
cek20:
CJNE A,#10100111B,cek21
CALL TurnLeft
JMP baca
cek21:
CJNE A,#10101111B,cek22
CALL MajuFull
JMP baca
cek22:
CJNE A,#10110111B,cek23
CALL MajuFull
JMP baca
cek23:
CJNE A,#10111111B,cek24
CALL TurnLeft
JMP baca
cek24:
CJNE A,#11000111B,cek25
CALL TurnRight
JMP baca
cek25:
CJNE A,#11001111B,cek26
CALL TurnRight
JMP baca
cek26:
CJNE A,#11010111B,cek27
CALL TurnRight
JMP baca
cek27:
CJNE A,#11011111B,cek28
CALL TurnRight
JMP baca
cek28:
CJNE A,#11100111B,cek29
CALL MajuHalf
JMP baca
cek29:
CJNE A,#11101111B,cek30
CALL TurnLeft
JMP baca
cek30:
CJNE A,#11110111B,cek31
CALL TurnRight
JMP baca
cek31:
CJNE A,#11111111B,cek30
CALL MajuHalf
JMP baca







;-----------------------------------------------------------------------------------------------------------
;Subrutin Penjalanan Motor
;-----------------------------------------------------------------------------------------------------------


MajuFull:
MOV TH0,#0EEH ;TH0 dan TL0 diset dengan angka 61036, dengan harapan 4500 ud(4,5ms) sebagai waktu tunda
MOV TL0,#06CH
SETB TR0 ;Jalankan Timer 0
CLR P0.0 ;hidupkan motor kiri
CLR P0.7 ;hidupkan motor kanan
Mati:
JNB TF0,Mati ;Tunggu sampai TF0 menjadi logic 1
CLR TF0 ;nol kan bit pelimpah(Timer Flag)
CLR TR0 ;Matikan Timer 0
MOV TH0,#0FEH ;TH0 dan TL0 diset dengan angka 65036, dengan harapan 500 ud(0.5 ms) sebagai waktu tunda
MOV TL0,#00CH
SETB TR0 ;nyalakan timer 0
SETB P0.0 ;matikan motor kiri
SETB P0.7 ;matikan motor kanan
Mati2:
JNB TF0,Mati2 ;tunggu sampai TF0 menjadi logic 1 (timer melimpah)
CLR TF0 ;bersihkan Timer Flag
CLR TR0 ;Matikan Timer

RET ;Kembali ke pemanggil

MajuHalf:
MOV TH0,#0F4H
MOV TL0,#048H
SETB TR0
CLR P0.0
CLR P0.7
Mati3:
JNB TF0,Mati3
CLR TF0
CLR TR0
MOV TH0,#0F8H
MOV TL0,#030H
SETB TR0
SETB P0.0
SETB P0.7
Mati4:
JNB TF0,Mati4
CLR TF0
CLR TR0

RET

TurnRight:
MOV TH0,#0FEH
MOV TL0,#00CH
CLR P0.0
CLR P0.7
SETB TR0

JNB TF0,$
CLR TF0
CLR TR0
MOV TH0,#0F6H
MOV TL0,#03CH
SETB TR0
SETB P0.0

JNB TF0,$
CLR TF0
CLR TR0
MOV TH0,#0F8H
MOV TL0,#030H
SETB TR0
SETB P0.7

JNB TF0,$
CLR TF0
CLR TR0

RET


TurnLeft:
MOV TH0,#0FEH
MOV TL0,#00CH
CLR P0.0
CLR P0.7
SETB TR0

JNB TF0,$
CLR TF0
CLR TR0
MOV TH0,#0F6H
MOV TL0,#03CH
SETB TR0
SETB P0.7

JNB TF0,$
CLR TF0
CLR TR0
MOV TH0,#0F8H
MOV TL0,#030H
SETB TR0
SETB P0.0

JNB TF0,$
CLR TF0
CLR TR0

RET

End




demikian program assembly yang saya buat, oiya, program tersebut diatas telah di test ke hardware nya dengan menghubungkan ke sensor2 pada robot, dan sudah berjalan dengan baik, motor DC kecepatannya dapat dikendalikan dengan sempurna, kini tim kami sedang mengerjakan di bagian mekaniknya, berkutat dengan kopling motor DC ke body robotnya, doakan kami semoga berhasil ya!!!

Jumat, 27 Maret 2009

Lancar Bersama Linux Mandriva

setelah mencoba berbagai jenis distro untuk diinstall ke laptop saya, akhirnya pilihan jatuh ke Mandriva, kenapa?

selain tampilan yang nyaman di mata, mandriva memiliki kompatibilitas tinggi dalam pengenalan hardware, sebelum nya di laptop saya mencoba berbagai distro hanya dapat menampilkan resolusi gambar 800*600 saja dan tidak dapat mengenali GPU yang ada di laptop saya, dalam hal ini SiS M672

hal tersebut tidak terjadi ketika saya mencoba Linux Mandriva, begitu instalasi selesai semua driver dapat dikenali dengan baik, GPU, Soundcard, Wireless dan Ethernet

berikut ini saya sajikan screenshot tampilan dari linux mandriva 2009 saya



cantik bukan?tidak ada salahnya bagi anda untuk segera beralih, apalagi jika kegiatan anda hanyalah browsing, chatting,mendengarkan musik dan menggunakan aplikasi office sederhana, sebenarnya linux sudah dapat menjalankan aplikasi-aplikasi developer, seperti pada distribusi fedora yang ditujukan pada kaum developer dan pendidik, bahkan embedded system pada robot pun sudah menggunakan linux

untuk yang menginginkan linux mandriva, dapat request CD gratis dengan mengklik link yang ada di blog saya, atau kalau anda memiliki koneksi internet yang cepat dapat mendownloadnya di www.mandriva.com

terima kasih

Minggu, 22 Maret 2009

Teknologi baru: LED TV by Samsung


ya, tepat! LED TV alias Light Emitting Diode TV, sebetulnya hanyalah teknologi anyar dalam hal pencahayaan LCD TV (Liquid Crystal Display TV), dengan pencahayaan yang memiliki akurasi tinggi, akan diperoleh kualitas gambar pada layar yang sempurna baik dari segi brightness, contrass, sharpness dan color intensity

perbedaan mendasar terletak pada sistem latar belakang pencahayaannya yang menggunakan LED, ketimbang LCD TV biasa yang menggunakan CCFL, selain lebih hemat energi dalam pencahayaan, cahaya yang dihasilkan oleh LED lebih nyaman ditangkap oleh mata dan warna yang dipancarkan mendekati warna asli cahaya alam (kalo ada yang pernah bandingin lampu sodium, lampu kawat pijar dan lampu neon mungkin ngerti maksudnya)

ditambah lagi teknologi pencahayaan LED di TV tersebut dilengkapi dengan fitur local dimming, sehingga backlight tidak menyala di seluruh titik terus menerus, melainkan menyala pada titik gambar yang memerlukan intensitas cahaya yang lebih tinggi ketimbang titik gambar lainnya

untuk ulasan lengkapnya silahkan dibuka

www.samsung.com/id/led

Rabu, 11 Maret 2009

Bagi Para Pencari Bakat

saya hanya ingin share aja........ sayang nih orang kalo bakatnya ga diasah, huehehe





untuk konfirmasi, silahkan klik ke YM saya di sebelah kanan blog ini... hehehe

Tips dan Trik: Membuka Akses "Folder Denied" pada Windows XP

ketika saya baru selesai menginstall Windows XP di laptop saya setelah bosan memakai Windows 7, saya mendapat masalah seperti ini pada folder saya:


tentu saja stress bukan kepalang, karena di folder tersebut banyak file2 baru yang tidak di back-up seperti foto-foto, namun akhirnya saya dapat memecahkan masalah tersebut setelah sedikit googling, tidak ada salahnya saya berbagi lagi disini agar orang-orang yang mengalami masalah tersebut dapat mencari penyelesaian masalah tersebut dengan lebih cepat ketika mereka mencari di search engine,

Berikut ini Adalah langkah-langkahnya:

1. Log in sebagai Administrator

2. Click Tools > Folder Option > View

3. Hilangkan tanda centang pada Use simple file sharing ( Recommended )

4. Kemudian click kanan pada folder yang terkunci

5. Pilih Properties > Security

6. Click OK bila ada warning

7. Lalu click Advanced > Owner

8. Click Administrator pada kolom Change Owner To

9. Beri tanda centang pada Replace Owner of Subcontainer and Objects

10. Click apply


selamat mencoba :)


NB:Khusus Windows XP Professional