Minggu, 09 November 2008

Penasaran

Pernah penasaran bagaimana caranya mesin jait bekerja? 2 benang terpisah tiba2 bisa menjait 2 kain... Atau apa bedanya DOHC/SOHC, gimana prinsip kerja perseneling manual atau otomatis? Coba deh kunjungi www.howstuffworks.com, penjelasannya sangat jelas dan mudah dimengerti. Silahkan....

Bisnis internet

Apa sih bisnis internet? Saya jg gak ngerti seperti apa sih bisnis lewat internet itu. Yg saya rasakan sih, untuk mencari barang2/komponen elektronik murah dari Taiwan/China lewat website www.alibaba.com. Kirim imel, transfer uang, tunggu satu minggu dateng deh barangnya. Selama ini belum ada kejadian barang tidak dikirim setelah dibayar, meskipun memang diakui resiko nya cukup besar, karena setiap transaksi pembayaran harus dimuka. Yah... namanya jg bisnis, pasti ada resikonya.
Kalo kita buka www.detik.com, www.okezone.com, memang tergiur juga untuk membuat website sejenis, pasang iklan di web site itu harganya lumayan aduhai... Tapi diakui memang, untuk menjadi detik.com seperti sekarang, perjalannya panjang sekali, pada zaman awal mula internet menjamur di Indonesia, banyak sekali yang tertarik untuk berinvestasi di bidang ini, tapi lama kelamaan berguguran, hanya beberapa yang bertahan, salah satunya ya detik.com.
Untuk menjadi www.google.com, www.detik.com, www.yahoo.com, tentu saja banyak sekali effort yang keluar, enggak semata2 hari ini register domain, bikin html, upload ke server, besoknya udah sejuta pengunjung. Enggak semudah itu. Kita lihat www.okezone.com, untuk 'dikenal' oleh masyarakat, mereka harus berinvestasi memasang iklan di TV, mungkin habis puluhan milyar... Padahal, hanya untuk membuat kita penasaran mengetik www.okezone.com di address bar internet explorer.
Begitulah, bisnis kontent di internet memang terlihat menggiurkan, tapi... enggak mudah juga untuk sukses... Banyak effort dan pengorbanan yang mesti dikeluarkan.

Telkomsel Flash 125rb

Untuk kebutuhan online selain pake Speedy nya kantor, buat dirumah saya pake telkomsel flash yg unlimited 125rb. Modemnya pake HP nokia 6110. Memang beberapa minggu sebelum lebaran, sempet ngaco tuh telkomsel flash, setelah saya tanyain sama AM nya telkomsel, katanya gara2 slot nya dipake dulu buat voice+sms (menjelang lebaran), ok, cukup bisa dimengerti...
Tapi sekarang, telkomsel flash lebih dari cukup dengan harga 125rb per bulan. Koneksi lancar dan enggak putus2, apalagi malam2. Sayangnya, penambahan user saat ini sudah dihentikan, mungkin karena untuk mencegah jaringan overload.
Kuota yang 3GB juga enggak pernah abis tuh dalam sebulan, ya karena saya emang jarang download file2 besar, paling2 buat browsing, ngeremot server dan buka imel aja.
Malahan kalo download file pake Internet Download Manager, bisa dapet 50kbyte per second. aneh memang, sementara paket 125rb hanya dibatasi 256kbps = 25.6 kilo byte per second, padahal bisa dapet 50kb per detik.
Pokonya, puas deh dengan 125rb per bulan, cuma pasti ada yg ketar-ketir dengan harga segitu, seperti pebisnis bandwidth, warnet, dll... Buat para pebisnis warnet/bandwidth, segera lah mencari inovasi2 lain supaya bisnisnya bisa berjalan, sukur2 bisa lebih baik.
Bandwidth sudah semakin murah, memang itu lah ciri2 kearah kemajuan. Salut deh! Buat telkomsel, keep this good performance!

Benci

Kalo kita membenci sesuatu, pasti kita tidak mau memakai/memakan/menggunakan barang/jasa yang memiliki atribut yang kita benci tersebut. Saya pikir ini hal yang logis, kalo kita benci sama angkot, ya jangan naek angkot (naek taksi dong... hehehe..) Benci sama udang, ya jelas jangan makan udang. It's that simple.
Anda benci Amerika? IYA! Kenapa? karena Amerika itu [sensor].....
Ya konsekuensinya:
1. Jangan pake komputer, karena didalamnya ada processor Intel yg bikinan Amerika
2. Jangan pake internet, karena internet asalnya jaringan yang dibuat untuk departemen pertahanan Amerika.
3. Pokonya jangan pake barang elektronik deh, karena isinya berasal dari transistor yang dibikin orang Amerika. Ini yg berat...
4. Jangan cari informasi di Google,
5. dll...
6. Silahkan tambahkan...
Benci Eropa? Konsekuensinya:
1. Jangan pake HP, karena GSM itu lahir di Eropa
2. Jangan pake mobil, orang sono yg ciptain mobil
3. Jangan makan nasi, lho? karena beras itu dipupuk pake pupuk yang berasal dari Amonia, pembuatan amonia berdasarkan proses Haber-Bosch yg orang jerman. Gak nyambung! Nyambung ah...
Benci negara Cina? Gak malu apa? emang komputer di depan anda di assembly dimana?
Wah... susah dong? Ya, makanya, jangan saling membenci, apalagi saling membunuh, manusia adalah mahluk sosial, enggak bisa hidup tanpa orang lain, begitu juga negara, enggak bisa hidup tanpa negara lain.
Terus terang, saya enggak bisa membenci Amerika, karena saya dapet rejeki kebanyakan dari memanfaatkan satelit GPS nya punya Amerika... hehehe...

Sabtu, 13 September 2008

LM324 Low Power Operational Amplifier

Terkadang kita perlu melakukan penguatan terhadap suatu sinyal. Misalnya, sensor outputnya 0-1 volt, sementara ADC range inputnya adalah 0-5 Volt. Otomatis, sinyal dari sensor harus dikuatkan dulu 5x sebelum dimasukkan ke ADC.
Untuk melakukan penguatan sinyal, pergunakanlah OpAmp (Operational Amplifier). Saya biasanya memakai LM324 karena beberapa keunggulan, antara lain:
1. 1 chip isinya 4 op amp
2. Bisa bekerja pada single power supply (tidak perlu power supply ganda, misalnya +12 dan -12 Volt)
3. Tegangan kerja bisa rendah sampai 5 Volt
4. Low power, menghemat power, terutama sistem dengan batere
Rangkaian penguat dari LM324 adalah (diambil dari datasheet LM324):

Penguatan adalah 1+(R2/R1), sehingga kalau perlu penguatan 5x, maka bisa dipilih R2/R1=4. Misalnya R2=40k, dan R1=10k.
Jangan lupa, apabila sumber tegangan op-amp adalah 5 volt, op amp tidak akan mampu menghasilkan output sampai 5 volt juga (biasanya sekitar 4 volt), karena sudah karakteristik dari op-amp, dimana tegangan output pasti dibawah tegangan supply.
Untuk mencegah op-amp berosilasi, tambahkan capasitor 100pF paralel dengan Resistor feedback (R2).

Urusan energi lagi

Waduh, saya jadi kepikiran lagi nih urusan energi... Menciptakan energi? No... enggak bisa, karena melanggar Thermodinamics Laws, iya kan? Yang pasti, kita tidak bisa membuat mesin/sistem yang bisa melipatgandakan energi. Tapi kok di internet banyak sekali orang yang mengklaim bisa melipatgandakan energi? Ya... harapan saya sih, siapa tau bener, tapi untuk membuat itu menjadi bener, tentu saja perlu pembuktian kan? Dan yang membuktikannya juga harus tim dari berbagai latar belakang (kimia, fisika, dll...)
Ok. Beberapa hari yang lalu, saya nonton di TV bahwa salah seorang dosen/mahasiswa (?) dari ITS membuat alat yang dapat menghemat bahan bakar sampai 30% dengan menambahkan tabung dari plastik dan dimasukan soda kue, kemudian dialiri listrik. Tampaknya penghematan bahan bakar karena reaksi elektrolisis (lagi2 elektrolisis hehe...) sehingga air+soda kue+listrik menjadi Hidrogen dan oksigen. Nah, gas2 ini kemudian dialirkan ke intake manifold dari kendaraan. Sayangnya saya belum mencobanya, karena saya pikir lebih mudah mengimplementasikannya pada kendaraan dengan karburator, sedangkan injection tampaknya lebih sulit (mungkin) hehehe...
Gimana nih? benarkah? Mungkin benar. Melanggar Hukum Kekekalan Energi? Tidak. Jadi bisa? Ya bisa... coba aja...
Gimana penjelasannya? (ini menurut saya lho)
Energi tidak bisa diciptakan dan dimusnahkan, jelas, itu adalah hukum konservasi energi (secara fisika/kimia). Tapi BUKAN secara ekonomi. Maksud saya bisa diterangkan dengan ilustrasi berikut:
Untuk memasak air 10 liter dibutuhkan energi X joule. Nah, X joule itu bisa 'dibeli' dari:
1. Listrik PLN, katakanlah seharga 5.000 rupiah
2. 1 liter minyak tanah, seharga 3.000 rupiah
3. 3 ikat kayu bakar, seharga 500 rupiah
Jadi, "MEMASAK 10 LITER AIR" harganya bisa 5.000 rupiah kalo pake listrik, 3.000 rupiah kalo pake minyak tanah, dan 500 rupiah kalo pake kayu bakar.
Nah, jadi bensin+soda kue itu tinggal diitung2 aja penghematannya terhadap rupiah, JANGAN terhadap konsumsi bensin per km saja, sementara harga soda kue dianggap gratis karena tinggal ambil di dapur (itu juga kalo istrinya rajin masak kue)...
Saya pernah buka manual kendaraan yang saya pake, disitu tertulis bahwa bahan bakar bisa gasoline (bensin), atau gasohol (bensin+alkohol), jadi, mungkin saja secara EKONOMI gasohol lebih irit? Berapa ya satu liter alkohol? Coba mungkin ada teman2 yg pernah mengimplementasikan gasohol ini di kendaraannya, share dong pengalamannya.
So, di jaman krisis ekonomi ini, pandai2lah mencari sumber energi yang secara EKONOMI lebih murah, but, it's not necessary to try to create energy, because it's impossible!
Satu lagi ide nih, kenapa enggak pake karbit aja buat nambahin energi? masukin ke tabung, kasih air, gasnya dimasukin ke intake manifold... Ada yang mau coba? resiko ditanggung sendiri... Hati2 karena karbit menghasilkan C2H2 (etuna/asetilena) yang temperatur pembakarannya sangat tinggi (makanya dipake buat las karbit), salah-salah blok mesin meleleh...

Salah Satu Solusi Busway

Kalo kita lihat di Jakarta, Busway yang seharusnya menjadi transportasi yang efektif dan cepat, sekarang tampaknya sulit dicapai karena banyak pengendara yang merasa sirik dan mengambil jalur busway... Ujung-ujungnya, macet lagi-macet lagi....
Kita harus mencari solusi bagaimana supaya kendaraan yang bukan Busway tidak masuk ke jalur busway. Ditilang? Yaa... di Indonesia sih itu bukan solusi hehe... Orang kita enggak pernah kapok2 kalo ditilang...
Solusi yang terpikir oleh saya:
1. Separator busway ditinggikan lagi, misal setengah meter, sehingga kendaraan pribadi sama sekali tidak bisa masuk ke jalur busway. Separator yang sekarang, mobil yang ban nya gede (misal landrover, taft GT) masih bisa masuk busway.
2. Di ujung busway, dikasih pintu elektrik (seperti yang dipergunakan di tempat parkir Secure Park/Sun Parking, dll...)
3. Busway dilengkapi dengan transmitter jarak pendek.
4. 10-50 meter sebelum pintu/gate tersebut, dipasang receiver khusus yang hanya merespon transmitter yang dipasang di busway.

Jadi, kalo busway yang dilengkapi transmitter tersebut akan melewati gate, gate akan terbuka otomatis. Tapi kalo kendaraan lain yang tidak dilengkapi transmitter, gate tidak akan membuka, sehingga mobil non busway akan 'terjebak' di jalur busway. Mudah-mudahan dengan cara ini, mobil non busway bakalan kapok masuk jalur busway hehehe...
Just an idea, tapi saya pikir hal ini sangat mungkin diimplementasikan. Silahkan, ada yang berminat mengimplementasikannya?

PonyProg memakai notebook

Ada kelemahan dari pemakaian paralel port untuk memprogram mikrokontroller:Tidak bisa pake notebook jaman sekarang! Seperti kita tau, bahwa notebook jaman sekarang sudah tidak dilengkapi lagi dengan paralel port, sementara PonyProg harus menggunakan paralel port. Untuk itu, kita bisa memakai Paralel Port to PCMCIA:

Jangan gunakan USB to Paralel Port karena memakai centronics 37 pin sementara Programmer kita memakai DB25. Saya sudah memakai PCMCIA to Paralel Port merk CHRONOS dan bisa dipakai untuk PonyProg, dengan cara ini, pemrograman mikrokontroller (terutama apabila perlu modifikasi firmware dilapangan) bisa memakai notebook! Jangan lupa merubah base-address di Ponyprog.ini nya. Base address bisa dilihat di Control Panel. Untuk Chronos, biasanya base addres dimulai dengan FDxx (bukan 378).

MEG Project Gateway

Pada posting mengenai bensin dari air mas jackslipi kasih saya link ini:
http://jnaudin.free.fr/meg/megv21.htm
Hmm... menarik, penemunya mengklaim bahwa alat dia bisa mendrive beban 9 Watt dengan input 3.25 Watt. Jadi sistem bisa menciptakan energi sebesar 6.76 Watt. Ini hebat sekali, kalo kita buat 1000 buah alat ini, maka kita punya sumber energi 6.76 Kilo Watt. Kalo sejuta alat, maka kita punya pembangkit 6.76 MW! Bereslah sudah krisis energi di dunia!
Sayangnya ada yang kurang, kenapa output sistemnya enggak di feedback kan saja ke inputnya? Kenapa harus memakai power supply? Kebutuhan daya yang 3.25 Watt kan diperoleh dari Output yang 9 Watt itu, sisanya yang 6.76 Watt bisa dipake untuk mencatu beban lainnya. Hanya itu yang bisa dilakukan untuk membuktikan bahwa alat bisa melipatgandakan energi.
Saya jadi buka2 buku termodinamika lagi nih (meskipun waktu kuliah dapet C hehe...) ada yang mirip sistem diatas, disebut dengan PERPETUAL-MOTION MACHINE, dimana output difeedback kan ke input dan otomatis sistem jalan sendiri. Ini kutipannya:
A Device that violates the first law of thermodinamics (by creating energy) is called a perpetual-motion machine of the first kind (PMM1), and a device that violates the second law of thermodinamics is called a perpetual-motion machine of the second kind (PMM2).
Apa sih First Law of thermodinamics? Ini kutipannya:
Energy can be neither created nor destroyed, it can only change forms. This principles is based on experimental observations and is called the first law of thermodinamics, or the conservation of energy principle. During an interaction between a system and its surroundings, the amount of energy gained by the system must be exactly equal to the amount of energy list by the surroundings.
Diambil dari THERMODINAMICS - AN ENGINEERING APPROACH, Yunus A Cengel/Michael A. Boles, McGrawHill International Edition.

Jumat, 12 September 2008

Obat

Rada gak nyambung nih, kadang saya suka memperhatikan obat2an yg diberikan dokter, malahan, saking penasarannya, saya beli buku direktori obat Indonesia hehe... Yaa... sekedar tahu aja apa obat2an yg suka diberikan oleh dokter.
Pada dasarnya, obat dibagi menjadi 2 golongan, yaitu generik dan branded (CMIIW). Pada obat2an generik, yang tertera pada labelnya adalah nama kimia obat tersebut, misalnya Paracetamol 500mg, Amoxycillin 250mg, Ciproxfloxacin 500mg dan lain-lain. Dengan obat generik, harga obat tersebut hanyalah biaya materialnya aja (plus profit tentunya), enggak termasuk biaya untuk iklan, reklame dan lain sebagainya, sehingga obat generik harganya (jauh) lebih murah.
Kalo kita ke apotek, terus beli Paracetamol, apotek bisa saja memberikan Paracetamol yang diproduksi Kimia Farma, dexa-medica, atau pabrik obat lain. Tapi kalo kita minta Sanmol, pasti diberi paracetamol yang diproduksi oleh Sanbe.
Untuk obat-obatan branded, dimana pabrik pembuat sudah mempatenkan brandnya, namanya diganti sesuai paten tersebut, misalnya Amoxan, isinya adalah Amoxicillin yang diproduksi oleh Sanbe, ada juga Arcamox, dll.. Isinya ya sama aja, Amoxicillin. Pengalaman saya sih, obat2an paten tersebut harganya bisa 4 kali lipat dari harga generiknya.
Mengenai khasiat, rasanya sih sama saja, tapi mungkin setiap orang punya pengalaman lain, mungkin karena emang beda, atau bisa saja hanya karena sugesti...
Oh ya, satu lagi, ada obat yang dijuluki "Obat dewa" yaitu golongan anti imflamasi steroid seperti dexamethasone, betamethasone, dll. Obat ini sifatnya adalah anti-inflamasi (anti radang) yang bekerja dengan menekan imunitas tubuh manusia (CMIIW juga hehe... I'm not a doctor!). Nah, obat golongan ini yang sering ditambahkan di jamu tradisional karena khasiatnya. Mulai dari penyakit rematik, asam urat, asma, sakit pegal linu, gatal-gatal pasti sembuh dengan obat ini. So, please be careful when consume 'Jamu Tradisional' yang merknya enggak jelas.... Pernah saya baca di koran, kebanyakan jamu ilegal isinya adalah dexamethasone, karena khasiatnya sebagai obat dewa.
Kalo butuh informasi indikasi obat, bisa aja tanyain sama apotekernya, atau, karena jaman sekarang internet udah dimana2, search aja pake google nama obatnya, pasti keluar indikasi, kontra indikasi, dosis dan lain2. Tapi jangan dijadikan patokan, dijadiin referensi aja. Dosis selalu ikuti petunjuk dokter. Ok?

Argo Bromo Anggrek

Sembilan buah gerbong dan 1 kereta makan Argo Bromo Anggrek sudah dilengkapi dengan Passengger Information Display. Yaitu display yang menampilkan nama stasiun yang akan (atau sedang) dilewati. Selain itu, dilengkapi juga dengan informasi kecepatan kereta, iklan, pengumuman khusus, dan lain sebagainya.
Dengan sistem ini, diharapkan penumpang yang turun bukan di stasiun akhir tidak akan salah lagi, karena selain tulisan pada display running teks, sistem secara otomatis dapat mengeluarkan suara yang memberitahukan stasiun berikutnya.
Oh iya, sekarang TV nya juga LCD....

Rabu, 03 September 2008

MRT, KRL nya singapur

Kereta Listrik di singapur berbeda dengan di Indonesia, yg pasti, bersih dan tidak ada silangan dengan jalan mobil... Bersih karena mulai dari stasiun sampai dalam kereta, kita tidak diijinkan makan dan minum, apalagi merokok. Berbeda sekali kan dengan di Indonesia, dimana di dalam kereta banyak sekali pedagang asongan jual rokok.
Jadi kuncinya supaya Kereta di Indonesia bersih, tinggal bikin aturan "Dilarang makan, minum dan merokok" aja di kereta, beres kan?


MRT memakai REL LEBAR, berbeda dengan yg dipake di Indonesia, meskipun beberapa rel di Sumatera katanya sudah memakai rel lebar



Terlihat "POWER LINE" disebelah pinggir rel, di Indonesia biasanya diatas yang dihubungkan dengan "pantograph"



MRT baru dateng di stasiun Jurong



Suasana saat rush hour di MRT, disebelah atas ada informasi nama stasiun berikutnya


Raissa


Dimana2 dilarang merokok....

Sabtu, 23 Agustus 2008

If you think it may happen, it will happen

Dalam mendesain sesuatu, cobalah untuk berfikir:
"If you think it may happen, it will happen"
Artinya:
Jika kita berfikir sesuatu yang buruk 'mungkin' terjadi, itu pasti terjadi. Sehingga, kita harus mendesain sesuatu sesempurna mungkin sehingga tidak ada celah untuk kegagalan/kerusakan.
Jangan pernah berfikir (contoh):
1. "Ah enggak apa-apa, toh tegangannya cuman lebih dikit dari spesifikasi" - Tunggu aja pasti akan ada komponen yang jebol
2. "Kayaknya mikrokontrollernya enggak mungkin hang deh" - Tunggu aja, suatu saat pasti hang
3. "Ya... mungkin kalo sudah dibikin PCB, enggak akan error lagi" (Karena waktu desain memakai breadboard suka error hasilnya)
Jangan pernah berharap keberuntungan, kalau sistem anda belum sempurna. Contohnya:
Sebelum sidang Tugas Akhir, atau demo didepan customer, pernah terjadi alat yang dibikin enggak jalan. Kita tidak tau penyebabnya. Anda harus mencari tau kenapa tidak jalan, jangan sampai berpikir "Ah, mungkin pas sidang sih jalan, toh kejadian error hanya sekali"
Intinya, setiap abnormality harus dicari tau penyebabnya sampai tuntas-tas-tas....

Bagaimana bikin produk yang profesional?

Biasanya para desainer elektronik setelah membuat prototipe yang berfungsi baik, kebingungan bagaimana membuat prototipe tersebut terlihat ‘profesional’ sehingga layak jual. Enggak mungkin kan kita jual produk dengan pcb yang acak2an dan kabel kemana2... Kalo buat Tugas Akhir sih, oke lah... karena yang dinilai adalah fungsionalnya.

Pengalaman saya, ‘fungsional saja’ enggak cukup buat meyakinkan calon customer akan produk kita. Kita perlu tahu, customer tidak selamanya paham elektronik, mereka dari berbagai macam background, ada yang teknik ada juga yang sosial misalnya. Enggak jarang calon customer menilai produk kita dari cara mengemasnya, kardusnya, bahkan ada yang ngecek beratnya. Yang ngecek beratnya mungkin punya pengalaman jual beli besi rongsok, makin berat, makin mahal hehehe.... It’s a fact!

Beberapa bulan yg lalu saya cari HP murah buat dibawa anak saya, dan saya dapet HP LG seharga 375rb, kecil, bagus, tampilan layar sudah berwarna. Coba produk anda misalnya memakai mikrokontroller, rasanya sulit ya bisa jual seharga 375rb? PCB nya aja udah berapa... Belum komponen2nya... Oleh karena itu, kemasan/packaging, casing, dll merupakan hal yang sangat penting agar produk kita bisa dihargai tinggi oleh calon customer.

Berikut saya berikan tips2 yang mudah2an bermanfaat bagi anda yang bermaksud membuat produk agar tampak profesional.

1. PCB, Soldering
a. Pesanlah PCB yang lengkap termasuk legendnya dan soldermask (biasanya warna hijau). Jangan pake PCB bolong2 apalagi breadboard... PCB bolong2 selain lapisan tembaganya tipis, juga rentan terhadap mekanikal stress (getaran, dll).
b. Usahakan tidak ada koreksi di PCB (jalur dipotong pake cutter, kabel jumper, dll) kecuali memang kepepet enggak bisa cari jalur lain. Itu pun jumpernya setelah disolder memakai lem panas (glue gun) agar tidak lepas.
c. Penyolderan manual biasanya menyisakan flux (arpus) sehingga bagian belakang PCB terlihat kotor. Gunakan IPA (Isopropil Alkohol) untuk membersihkannya menggunakan sikat gigi bekas. (Kalo enggak bekas, baru juga enggak apa2, murah ini....) Kalau mau terlihat mengkilap, setelah digosok IPA, dicuci dengan sabun dan dikeringkan (hati2 kena ke komponen yang rentan air, seperti trimmer, soket IC, dll. IC, resistor, kapasitor sih enggak apa2 kena air. Yakinkan pemberian power setelah PCB kering untuk menghindari short. Kalo udah dicuci dengan sabun, biasanya bagian bawah PCB enggak kalah kualitasnya dengan PCB hasil bath soldering.
Catatan:IPA bisa dibeli di toko bahan kimia, coba ke Bratachem di Jl. Jakarta (Bandung).
d. Siapkan lubang sekrup pada PCB

2. Casing
Casing sangat penting karena merupakan ‘pandangan pertama’ calon customer. Kalo casing jelek, susah kita meyakinkan calon customer. Keep in mind bahwa HP seharga 375rb aja casingnya bagus dan mengkilap.



Ada beberapa pilihan untuk casing, antara lain:
a. Casing plastik standar
Dipasaran tersedia casing yang sudah jadi, biasanya berwarna abu2 atau hitam, malahan ada juga yang dilapisi karet agar anti air. Jika anda memutuskan memakai casing ini, coba diperhatikan:
- Gunakan bor yang tajam untuk melubagi kabel2, LED, dll. Kalau perlu saklar, pilihlah yang bulat bentuknya sehingga membuat lubangnya cukup pakai bor.
- Jika kebutuhan lubang kotak tidak bisa dihindari, terpaksa casing tersebut dilubangi menggunakan gergaji triplek atau besi panas. Sesudahnya rapikan dengan kikir sampai sisi2nya halus.
- Catlah casing tersebut dengan warna pilihan Anda, catnya harus cat semprot (Pylox misalnya), jangan pake kuas... Sebelum dicat, jangan lupa diamplas dengan amplas besi/amplas duco. Pengampelasan menggunakan air sehingga hasilnya lebih halus. Warna hitam dop (Black flat) biasanya bagus.
- Kalo mau dirapikan lagi,atau nambal lubang yg salah bor, bisa memakai dempul. Beli sanpolac di toko besi, tentu saja sebelum diamplas dan dicat.
- Untuk menutupi sisi2 lubang yang tidak rapi, lebih baik menggunakan kertas yang diprint oleh printer warna (pake kertas glossy). Setelah diprint, catlah kertas tersebut dengan Pylox clear agar tampak mengkilap dan tahan air. Malu dong kalo label2nya luntur kena air...
Ini contoh lubang kotak untuk keypad yang ditutupi kertas.



- Usahakan casing tidak polos, tapi pakailah rugos berwarna putih untuk tulisan. Setelah memakai rugos, catlah kembali dengan Pylox Clear agar rugos tidak rusak.

b. Casing plastik
Kita bisa juga mendesain casing plastik, coba hubungi perusahaan injection moulding. Biasanya untuk cetakan (matress) harganya sekitar 10jt – 50jt. Tapi harga per unitnya sangatlah murah. Kalo small quantity, tampaknya pembuatan matress sangat tidak ekonomis.

c. Aluminium extrusion
Casing yang profesional bisa menggunakan alumunium ekstrusi. Dimana casing pada asalnya berupa lonjoran pipa aluminum panjang yang kemudian dipotong2. Matressnya sekitar 10-20jt. Harga per casing untuk ukuran 10x10x4 cm jatuhnya sekitar 100rb.
Setelah dipotong2, alumunium tersebut harus surface finishing dulu, karena setelah proses ekstrusi, hasilnya belum ‘layak jual’. Untuk surface finishing, bisa minta dicat di tukang cat mobil, atau bisa juga anodizing.

d. Plat besi/aluminum bending
Untuk membuat casing satuan, bisa memakai plat aluminum/plat besi dengan ketebalan 1.5mm – 2mm yang ‘dilipat-lipat’/bending. Ada banyak perusahaan yang bisa melakukan bending plat.

e. Aluminum machining
Bisa juga memakai blok aluminum yang dimasining sehingga berbentuk casing. Sayangnya cara ini sangat mahal karena prosesnya lama.

f. Aluminum cor
Dibuat dengan aluminum cair dicetak pada cetakan terbuat dari silika. Contoh barangnya adalah meteran air (memakai kuningan). Biaya per casing sekitar 100-200rb. Perusahaan pembuatnya biasanya memakai kata2 ‘Silica Foundry’

Surface Finishing
Pengecatan aluminum kalau hanya memakai cat semprot kalengan (Pylox misalnya), mudah terkelupas. Agar tidak terkelupas, harus dilapisi dulu. Kalo dicat di bengkel cat mobil, biasanya diberi epoxy. Begitu juga plat besi, jangan lupa diberi epoxy sebelum dicat. Tapi kalo kepepet sih, cat semprot kalengan juga biasanya memadai, dengan syarat sebelum dicat platnya harus diamplas dulu (dikasih air) dan dikeringkan.
Ada juga cat yang hasilnya lebih bagus, biasanya disebut ‘kulit jeruk’. Permukaan setelah dicat agak sedikit kasar seperti kulit jeruk. Coba perhatikan casing komputer.

Surface Finishing Aluminum bisa juga dengan ‘anodizing’. Hasilnya bagus dan sangat profesional.

Special Casing

Kalo anda mau membuat alat yang kecil dan tahan banting dan tahan air, bisa juga setelah dimasukan casing, alat tersebut dicor dengan resin. Anda cukup membeli resin dan katalisnya di toko kimia. Campurkan resin dan beberapa tetes katalis kemudian diaduk. Setelah diaduk, corkan resin kental tersebut di casingnya sampai menutupi seluruh PCB. Biarkan satu hari (atau kurang, tergantung banyaknya jumlah katalis) sampai resinnya membeku. Perlu dicatat bahwa terlalu banyak katalis menyebabkan resin retak-retak karena pemadatan berlangsung terlalu cepat dan menghasilkan panas yang lumayan. Hati-hati resin ini baunya sangat menusuk, lakukan diluar rumah.

Labeling

Casing harus diberi label untuk memberitahu arti LED, fungsi saklar, dll. Pelabelan bisa memakai rugos berwarna putih (kalau casing berwarna hitam) dan kemudian dicat clear. Bisa juga memakai kertas stiker glossy yang diprint. Sesudah diprint, semprot juga menggunakan cat clear. Untuk nama produk yang agak besar, Cutting Sticker cukup profesional untuk ditempelkan.
Di bagian belakang casing, tempelkan juga informasi nama produk, label, tegangan kerja, tipe produk, perusahaan pembuat, MADE IN INDONESIA, dan lain-lain. Untuk label ini bagusnya memakai kertas stiker yang diprint di printer laser.

3. Packaging

Jangan lupa membungkus produk anda dengan plastik pembungkus. Biasanya memakai ‘plastik angin’ agar tampak profesional. Lampirkan juga dokumentasi misalnya:
a. Manual Book
b. Kartu Garansi
c. Quick Reference
d. CD Installer (jika ada)

Setelah dibungkus plastik, masukan kedalam ‘cartoon box’ atau kardus. Usahakan tidak memakai kardus bekas, apalagi ada tulisan Indomie kari ayam, karena ‘sangat memalukan’.... Kalau mau memesan kardus yang profesional sesuai keinginan, kita harus pesan juga ‘pisaunya’. kalo di Bandung, ada perusahaan pembuat kardus pesanan di daerah Caringin (Bypass). Saya lupa alamatnya, ada juga di daerah jalan Holis.

Setelah masuk kardus, jangan lupa kardusnya diberi label atau stiker, atau selubung seperti box2 sound card misalnya kalo mau lebih cantik. Selubung ini bisa diprint atau dicetak di percetakan.

Urusan cetak-mencetak

Mungkin mau membuat brosur/leaflet produk anda, saya berikan tips nya supaya murah:
a. Buat desain memakai CorelDraw
b. Buat filmnya di perusahaan yang membuat film, kalo di Bandung di jalan pungkur, dia spesialis membuat film. Untuk cetakan berwarna, biasanya film yang dihasilkan 4 lembar, untuk C (Cyan), M (Magenta), Y (Yellow) dan K (blacK).
c. Beli kertasnya di toko kertas sekalian dipotong2 dengan ukuran yang sedikit lebih besar dari ukuran brosur. Toko kertas untuk percetakan biasanya menjual kertas ukuran besar yang kemudian dipotong2. Mesin pemotongnya ada di toko tersebut. Tempatnya sama di seberangnya tempat membuat film (Jl. Pungkur-Bandung)
d. Bawa kertas dan filmnya ke percetakan, ada banyak percetakan yang bisa mengerjakan.
e. Biasanya hasil cetakan selesai dalam satu atau 2 hari, tergantung Load dari percetakkan tersebut.
f. Jumlah yang cukup ekonomis adalah 1000 lembar lebih.

Jumat, 22 Agustus 2008

Kalau AVR bisa ngomong...

Kalo bikin mikrokontroller biasanya kita lupa untuk menghasilkan bunyi, paling2 hanya pakai buzzer kecil saja untuk memberikan respon penekanan tombol. Gimana caranya supaya AVR bisa ngomong? Caranya dengan membuat rangkaian DAC sederhana, enggak pakai IC, cukup pakai resistor 10k saja dalam susunan ladder R-2R. Gunakan resistor dengan toleransi 1%.

Rangkaiannya sebagai berikut:


Data suara yang berupa PCM 8 bit langsung dituliskan di Port C dengan frekuensi sampling 8khz (8000 pengiriman data ke port C dalam satu detik), gunakan interupt timer/counter untuk menghasilkan frekuensi 8000 hz yang akurat.
Tentunya timbul pertanyaan, bagaimana menyimpan data suaranya? Saya biasanya memakai MMC karena kapasitasnya cukup tinggi dan bisa menyimpan data suara.
File suara yang berupa MP3/dll harus dikonversi ke format WAV 8 bit sampling rate 8khz kemudian dituliskan di MMC, gunakan software Disk Image untuk menyimpan data ke MMC berdasarkan sektor. Alasan file WAV karena file WAV tidak ada kompresi.
Aplikasi yang cukup powerful untuk kegunaan pemrosesan suara adalah Wavepad.
Ada pertanyaan? Silahkan imel ke rizakomara@gmail.com

Selasa, 12 Agustus 2008

Battery Charger

Dipasaran sudah banyak dijual batere yang rechargeable, misalnya tipe NiCad (Nickel Cadnium) dan NiMH. Kapasitasnya dinyatakan dalam mAh atau Ah. Contohnya batere ukuran AA tertulis 2600mAh, artinya, dalam 1 jam, batere tersebut bisa mensuplay arus 2600 mA kontinu. Jadi kalo bebannya hanya 260 mA, maka batere tersebut tahan 10 jam, dst.

Pengisian batere sederhana adalah dengan mengalirkan arus konstan sebesar 1/10 dari kapasitasnya (selama 16 jam, tergantung rekomendasi penjualnya). Misal batere 2600 mAh harus dialiri arus konstan 260 mA . Kalo kelamaan, batere tersebut bisa rusak. Wah.. repot dong...

Tapi dari beberapa spesifikasi batere tersebut, saya baca bahwa jika diisi 1/16 kali dari kapasitasnya, batere tersebut bisa diisi seterusnya, sehingga kita bisa punya batere yang selalu penuh saat dipergunakan.

Rangkaian sumber arus konstan yang sederhana adalah:



Tegangan Vin diusahakan 3 Volt diatas tegangan batere.

Misal kita ingin mengisi 4 buah batere NiMH 2600mAh

Tegangan batere 4 x 1.2 = 4.8 Volt
Tegangan input = minimum 7.8 Volt
Arus pengisian = 1/16 * 2.6 = 0.1625 Ampere

Resistor R = 1.25/Arus pengisian = 1.25 / 0.1625 = 7.6 ohm, ya... pakailah resistor 8.2 ohm

Daya resistor = I ^ 2 * R = 0.1625 ^ 2 * 8.2 = 0.2 Watt, jadi resistor ½ Watt sudah cukup

Regulator LM317T harus memakai heatsink, terutama bila tegangan input jauh diatas tegangan batere

Ngeprint pake fax

Jam satu malam kita harus ngeprint sesuatu, eh... ternyata tintanya habis... Gimana dong? Sementara dirumah ada mesin fax, masa harus ke rumah tetangga, terus minjem telp buat ngefax pake notebook ke nomer rumah kita? Sayang ya, mesin fax enggak ada port buat ke PC.

Sebenernya caranya gampang kok, cuma perlu beberapa komponen supaya kita bisa ngeprint di mesin fax memakai modem yang terdapat di notebook kita. Yang dibutuhkan adalah:

1. Kabel telepon
2. Resistor sekitar 1 kilo ohm
3. Batere 9 volt kotak



Setelah semuanya dihubungkan, setting fax harus ‘blind dialing’ artinya, modem tidak perlu menunggu ‘dial tone’ untuk memulai pengiriman data. Nomor tujuan juga sembarang saja.
Kadang2 perlu mengatur nilai resistor agar pengiriman fax bisa berhasil. Rangkaian ini juga bisa dipakai untuk hubungan 2 buah telepon, hanya saja tidak bisa menghasilkan bunyi ‘ring’.

Totem-pole, Open Collector, apaan tuh?

Kalo kita perhatikan datasheet MCS-51, disitu tertulis bahwa port bersifat Open Collector with weak pull-up resistor. Kadang ini bikin bingung apabila kita tidak tau maksudnya.Tapi kalo PPI 82C55, outputnya adalah Totem Pole. Apa sih bedanya?

Coba kita perhatikan skema dibawah ini:



Apabila output dari port tersebut HIGH, maka transistor sebelah atas (PNP) akan ON, mengalirkan arus dari Vcc ke beban, sedangkan apabila outputnya LOW, maka transistor sebelah bawah (NPN) akan ON dan menarik arus dari beban ke GROUND.
Mengalirnya arus dari Port ke beban disebut dengan SOURCE CURRENT, sedangkan mengalirnya arus dari Port ke Ground disebut SINK CURRENT. Pada susunan totem pole, SOURCE CURRENT dan SINK CURRENT relatif sama, hanya berbeda di tandanya saja. (Untuk beban yang sama tentunya).
Apabila anda bermaksud menyalakan LED dari port tersebut, LED bisa dipasang terhadap GROUND atau pun terhadap VCC, intensitas nyala LED akan sama hanya berbeda state nya saja. (Apabila LED dihubungkan dengan GROUND, maka LED NYALA=HIGH, LED MATI=LOW ; apabila LED dihubungkan dengan VCC, maka LED NYALA=LOW, LED MATI=HIGH).
Pada susunan Totem Pole, kedua transistor (NPN dan PNP) tidak mungkin ON pada saat yang bersamaan, karena apabila ON, arus besar akan mengalir dari VCC ke GROUND yang mengakibatkan panas dan rusak.

Susunan Open Collector

Pada open collector, keluaran dari PORT hanya memakai satu transistor NPN saja, dengan rangkaian sebagai berikut:



Apabila keluaran port HIGH, maka transistor NPN tersebut akan OFF, dan state HIGH dicapai karena port tersebut ‘ditarik’ ke Vcc, sebaliknya, apabila keluaran port LOW, maka transistor NPN akan ON kemudian menghubungkan port dengan Ground.

Oleh karena itu, untuk port yang Open Collector, hanya SINK CURRENT saja yang besar, SOURCE CURRENT nya sangat kecil karena ‘weak pull-up resistor’. Dengan demikian, apabila port dari MCS51 dihubungkan dengan LED, hubungannya harus terhadap Vcc, seperti gambar berikut:



Hanya saja statenya akan terbalik, LED menyala = LOW. Memang bisa saja LED dihubungkan terhadap ground, hanya intensitasnya sangat kecil (redup-redup saja, meskipun resistor LED diperkecil), karena SOURCE CURRENT pada susunan open collector sangat kecil.

Keuntungan dari open collector adalah beberapa port bisa digabungkan, dan berfungsi sebagai ‘WIRED AND’, artinya ‘gerbang AND yang hanya memakai kabel’. Kenapa demikian?

Bayangkan beberapa port open collector disambungkan,
“Keluaran port tersebut akan LOW, jika salah satu keluaran port LOW”
Eqivalensinya:
“output akan HIGH jika SEMUA port HIGH”
Persis logika gerbang AND ya?

Mikrokontroller dan GSM/GPRS

Mungkin ada yang sedang mendalami pengiriman SMS memakai Handphone? Tentu saja familiar dengan format PDU. Sayangnya, beberapa handphone (Misalnya Siemens C60, dll) hanya mempunyai PDU format saja sehingga konversi cukup rumit. Untuk lebih memudahkan, gunakanlah GSM Modem yang memiliki kemampuan Text Mode, sehingga perintah membaca SMS menjadi:

AT+CMGL=”REC UNREAD”

Sedangkan untuk mengirimkan SMS adalah:

AT+CMGS=”+6281324852500”
> Ini isi smsnya [ctrl-Z]

Mudah bukan? yang pasti tidak repot, bayangkan harus membuat konverter PDU dengan mikrokontroller, yg pasti cukup memusingkan!

GSM Modem yang dijual di pasaran ada yang USB, ada juga yang Serial, saya pernah mencoba GSM Modem yang USB, dan formatnya seperti diatas.

Bagaimana dengan data GPRS? Apakah mungkin mikrokontroller bisa mengirimkan data GPRS?

Jawabannya mungkin, asal GSM Modemnya sudah dilengkapi dengan TCP/IP Stack (Sony Ericsson GR47/GR64), jika tidak, kita harus membuat kode khusus untuk TCP/IP nya. Syarat kedua, komuniksasi GPRS dilakukan dari GSM Modem (client) ke server, tidak bisa ke sesama client (beda dengan SMS), oleh karena itu, dibutuhkan server yang memiliki public IP sehingga dapat menerima data dari client.

BIaya GPRS sangat murah apabila dipakai untuk pengiriman data, lagi pula coveragenya se Indonesia (bahkan mungkin dunia, karena di Singapur, GPRS telkomsel juga jalan....) Suatu saat GPRS ini akan menggeser kedudukan radio trunking untuk data. Satu-satunya yang tidak bisa digantikan GPRS adalah di tengah lautan...

Global Positioning System

GPS adalah singkatan dari Global Positioning System, GPS ini dipakai untuk mendapatkan koordinat di permukaan bumi dimana GPS tersebut berada. Mengenai bagaimana cara kerja, dll... silahkan buka saja di www.garmin.com atau www.howstuffworks.com (ini website favorit saya).
Dipasaran banyak dijual GPS yang sudah dilengkapi dengan display, peta, dan fungsi2 navigasi lainnya. Nah, apabila anda bermaksud meng-embedded-kan GPS dalam mikrokontroller anda, maka anda harus membeli GPS Receiver atau GPS Sensor. GPS ini tidak memiliki display, hanya kabel power dan komunikasi RS-232 saja (ada juga model bluetooth atau USB), jadi sesuaikan dengan kebutuhan anda.
Apabila anda hubungkan GPS dengan serial port (pada baud rate 4800/9600/19200), maka akan keluar data standar sebagai berikut (NMEA 0183), disini hanya dituliskan salah satu sentences saja:

$GPRMC,151641.697,A,0657.8247,S,10737.8563,E,3.12,54,171205,,,A*64

Arti dari sentences itu adalah:

151641.697 waktu saat ini 15:16:41.697 dalam GMT
A = GPS Valid, jika V = GPS invalid/belum dapat sinyal
0657.8247,S Koordinat lattitude, artinya 6 derajat 57.8247 menit, jika dalam derajat, maka Lattitude = 6 + (57.8247/60) derajat Lintang Selatan (South)
10737.8563,E Koordinat longitude, artinya 107 derajat 37.8563 menit, jika dalam derajat, maka Longitude = 6 + (37.8563/60) derajat Bujur Timur (East)
3.12 adalah speed dalam knot (konversi ke km/h adalah dikalikan 1.85185)
54 adalah heading, dimana 0 adalah utara, 90 adalah timur, dst (searah jarum jam)
171205, adalah tanggal, artinya 17 Desember 2005
*64 adalah checksum

Hampir semua data penting terdapat pada sentences GPRMC, sedangkan data ketinggian dari permukaan laut terdapat pada sentences GPGGA. Selain itu, ada juga data posisi satelit, kekuatan sinyal satelit dan lain-lain.

Satu lagi, dalam peta digital, biasanya koordinat dinyatakan dalam bentuk derajat saja (misal Lonngitude 107,232324, lattitude -6.343434) untuk membedakan Lintang Utara dan Selatan, digunakan tanda min. Untuk Lintang Utara memakai + (atau tanpa tanda), sedangkan lintang selatan memakai -. Begitu juga dengan Bujur, Bujur timur adalah +, bujur barat adalah -. Dengan penandaan tersebut, koordinat GPS menjadi konsisten dengan koordinat kartesian.

Menentukan jarak antar dua koordinat geografis

Perhitungan jarak antar dua titik cukup rumit, memakai SIN/COS, dll... Kalo dalam mikrokontroller, dimana resources terbatas, cukup gunakan persamaan (Valid hanya di daerah katulistiwa seperti Indonesia).

del_bj:=(lon2-lon1)*110.60864;
del_lt:=(lat2-lat1)*110.58852;
jarak:=sqrt((del_bj*del_bj)+(del_lt*del_lt)); // dalam km

Dengan catatan delta Longitude dan delta Lattitude tidak besar, alasannya karena estimasi memakai persamaan pitagoras dimana diasumsikan bumi adalah datar.

MMC dengan ATMEGA32

Beberapa developer 80C31 terkadang agak malas bermigrasi ke ATMEGA32, karena ramnya yang tidak bisa ditambah. Sebagai contoh, ATMEGA32 hanya memiliki 2KB static ram, sementara MCS-51 memiliki kebebasan penambahan RAM sampai 64KB dengan menambahkan external RAM. Tapi sebenarnya ini bisa diatasi dengan menggunakan MMC/SD, dimana kapasitasnya bisa mencapai 2 GB, ditambah lagi dengan keunggulan Non Volatile. Harganya juga enggak beda jauh sama SRAM 62256.

Untuk berkomunikasi dengan MMC, cukup memakai port SPI yang telah tersedia, hanya saja perlu voltage converter karena MMC/SD ini bekerja pada tegangan 2.7 – 3.6 volt. Pada rangkaian, diasumsikan mikrokontroller memakai tegangan 5 Volt, apabila mikro memakai 3.3 volt (ATMEGA32L), maka resistor pembagi tegangan tidak dibutuhkan.

Ini rangkaiannya:



Selain standar SPI (MISO,MOSI dan SCK), dibutuhkan tambahan port (yaitu PD6) untuk Chip Select.

Jika anda membutuhkan source codenya, silahkan kirim imel ke saya (rizakomara@gmail.com).

Jumat, 08 Agustus 2008

Interior Lokomotif Diesel Elektrik


Throttle, Forward-netral-reverse


GPS Speedometer


GPS Receiver


Panel Elektrik


Panel atas


Saklar Baterai "Blade Switch"


Dead Man Pedal


Indikator


Rem angin


Power Contactor


Radio Lokomotif "Simoco"

Rabu, 06 Agustus 2008

Umum:Indonesia kaya energi alternatif

Hasil penelitian BPPT menyatakan bahwa potensi Indonesia pada sumber energi panas bumi masih tinggi. Lho? kok masih ada pemadaman bergilir?
Tau gak jawabannya:
1. Eksplorasi energi panas bumi perlu bantuan bule
2. Mesin2 untuk PLTU made in bule
3. Pengeboran ke sumber panas bumi, sama bule
4. Bule harus digaji pake dolar
5. Bule takut teroris kalo ke Indonesia
6. Duit beli mesinnya dipotong 50% buat sogok sana sogok sini
7. Bangun PLTU repot pembebasan tanahnya, salah-salah malah dibakar PLTU nya pake bom molotov
8. Kalaupun udah jadi PLTU nya, masang kabelnya jauuuuhhh banget dan perlu pembebasan tanah (balik lagi ke nomor 7)
Repot. Nikmati aja gelap-gelapan pas pemadaman listrik.

Kemarin saya nonton PJTV, katanya batu bara bisa dibikin bahan bakar cair dengan reaksi ini dan itu... Tapi, mesinnya dari Jepang.
Pinterrrrr.

Indonesia, kapan dong.... kapan??????

Umum:Analisis pemikiran Joko “bensin dari air”

Pernah ada pernyataan di detik.com, isinya “untuk ..... katalisnya adalah diode, dan untuk ..... katalisnya adalah relay (kalo enggak salah)” sorry saya lupa lagi statement lengkapnya.
Mengingat Djoko kerjaannya di bengkel trafo, tentunya dia tau sifat reversibel dari transformator, dengan kata lain, transformator penurun tegangan 220V ke 12V pasti bisa juga mengubah 12V ke 220V. Ya kan?
Dia berfikir, bahwa tegangan sebanding dengan energi, makin tinggi tegangan, makin tinggi energinya (nah disini ketololannya). Makanya, dia bermimpi membuat 220V dari tegangan kecil, (memang bisa kan?) Bagi dia, kenaikan tegangan berarti kenaikan energi. Terus kenapa ada kata2 ‘katalisnya’ diode? Saya yakin pernyataan itu karena diode bisa juga sebagai voltage doubler apabila dirangkai dengan kapasitor. Malah bisa berlipat2 tegangannya.
Dia lupa, bahwa energi seharusnya dibandingkan dengan daya, dimana daya adalah tegangan dikalikan arus. Sayangnya, dalam konversi tegangan, apabila tegangan naik 2x, maka arus turun 2x, alias Daya Input = effisiensi * Daya Output. Yang ada malah penurunan Daya Output akibat efisiensi sistem tidak pernah mencapai 100%.
Tapi bagaimana pun, kita harus salut karena dia sudah menipu orang dan mendapatkan dana bermilyar-milyar dari omong kosong dioda. Itulah sebenarnya kepandaiannya, yaitu kepandaian menipu hehehe... (Tapi jangan salah lho, dia berhasil menipu orang pintar bergelar profesor, yaitu rektor UMY).
Supaya kita tidak tertipu lagi, saya perlu ingatkan salah satu hukum termodinamika atau disebut juga dengan hukum kekekalan energi yang pernah dipelajari di SMP:
1. Energi tidak bisa diciptakan dan dimusnahkan (kecuali e=mc kuadrat pada reaksi nuklir)
2. Total energi sebelum dan sesudah reaksi selalu sama
Sorry, mungkin kata2nya kurang tepat, tapi intinyamah itu...

Umum:Lokal vs Impor

Bangsa kita sangat tidak percaya produk dirinya sendiri. Entahlah, kenapa harus seperti ini? Sementara orang Jepang, China atau Eropa begitu bangganya memamerkan hasil karyanya “Ini produksi Amerika!” (padahal made in China). Anehnya, bangsa kita malah ikut-ikutan bilang “Ini produksi Amerika!” bukannya bilang “Ini made in Indonesia”, tampaknya takut apabila harus bilang bahwa produknya bikinan Indonesia.

Sedih juga. Apalagi saya yang bergerak di bidang desain sampai produksi perangkat elektronik, kadang customer bilang ke saya “Jangan tulis Made in Indonesia”. Ada lagi yang bilang “Tulis aja made in Japan, pasti orang mau beli”. Uuuhh.... cape deh...

Oke lah... kita masih bisa bangga, Indonesia punya Bali yang terkenal ke seluruh dunia karena keindahan alamnya, tapi, bagaimana pun Bali adalah anugerah, sama seperti sumber energi yang berlimpah di bumi Indonesia. bukannya hasil karya bangsa sendiri, bukannya hasil pemikiran bangsa kita sendiri. Pernah suatu waktu, saya diajak salah satu rekan untuk mengikuti tender di perusahaan punyanyah Amerika, sesampainya disana, apa yang kami peroleh setelah mereka melihat produk kita? Hanya tawa yang sinis ketidakpercayaan terhadap kita, sampai2 salah seorang bilang “Saya bawa obeng, boleh saya buka alatnya?” sambil nyengir...

Siapa orang itu? Bule? Bukan. Orang Jepang? Bukan. Tapi orang Indonesia, alias bangsa kita sendiri. Sedih sekali saya waktu itu, saat itu saya enggak peduli lagi dengan tendernya, saya tidak perduli mau lolos atau tidak, karena harga diri saya sudah diinjak-injak (oleh bangsa kita sendiri). Biarlah itu berlalu seiring waktu (romantis gini...?) Mari kita mulai membangun kepercayaan diri kita terhadap diri kita sendiri. Anda pasti mampu. Alhamdulillah, sampai saat ini saya dan bisnis saya masih bisa eksis ditengah-tengah gempuran produk luar yang harganya terkadang membingungkan. (Murah banget, maksudnya).

Saya salut dengan Polytron (bukan iklan!) yang sampai saat ini eksis memproduksi peralatan elektronik. Saya pernah berkunjung kesana, dan semua desainer produknya bangsa kita sendiri, dan kualitasnya juga bagus, tidak kalah dengan produk impor. Sayang, industri elektronik semacam Polytron tidak banyak di Indonesia, kebanyakan hanya industri ‘bungkus’ aja, dalam artian impor isinya, pembungkusan dan manual booknya dilakukan di Indonesia. Tapi mudah2an itu tahapan yang harus dilalui untuk memulai transfer teknologi...

Ada juga industri aktif speaker di daerah Soekarno Hatta, disana mulai menggergaji bikin box, penyolderan, pengetesan, dan lain2 dilakukan sendiri. Disana ada engineernya yang menguasai seluruh proses, dan sangat low profile. Hebat! Saya yakin banyak orang2 seperti dia yang mampu, tetapi tidak memiliki kesempatan...

Tapi, ada juga orang yang memanfaatkan ketidaktahuan orang untuk menipu. Masih ingat penemu air menjadi bensin? Sampai2 presiden kita saja dia tipu! Dengan memanfaatkan ketidaktahuan orang, dia mengeduk urang investor untuk dipakai dirinya sendiri. Banyak lho orang seperti itu, hati2 saja, jangan mudah percaya orang2 yang menawarkan investasi...

Dasar:Pulse Width Modulation (PWM)

Kita lihat rangkaian lampu yang dipasang di mobil. Spesifikasi lampu tersebut adalah:
Daya = 12 Watt
Tegangan = 12 Volt
Lampu tersebut dirangkai seperti dibawah ini:



Saat dinyalakan, mengalirlah arus sebesar I = P / V = 1 Ampere. Apabila arus satu ampere mengalir pada beda tegangan 12 Volt, maka resistansi dari lampu adalah 12 ohm. (Betul ya? Hukum ohm.....)

Tiba-tiba, karena ada yang protes lampu tersebut terlalu menyilaukan, maka anda bermaksud mengurangi cahayanya dengan diseri resistor sebesar 12 ohm. Rangkaiannya menjadi begini:



Karena resistor adalah kawat filamen yang memiliki resistansi tertentu, disini lampu dianggap sebagai beban resistif dengan besar resistansi 12 ohm.
Arus yang mengalir di loop tersebut = V / Rtotal = 12/24= 0.5 A
Karena arus yang mengalir adalah 0.5 A, maka daya lampu adalah I ^ 2 * R = 3 Watt
Tapi, karena resistor 12 ohm juga dilewati arus, maka timbullah panas di resistor tersebut, sebesar:
I ^ 2 * R = 0.5 ^ 2 * 12 = 3 watt.

Dengan 3 watt, maka resistor tersebut akan panassss... Lampu emang redup, tapi malah ada resistor yang panas nih....

Perhatikan 2 pernyataan dibawah:

1. Daya lampu pada awal adalah 12 Watt, setelah diseri resistor menjadi 3 Watt, artinya, intensitas cahaya menjadi seperempat kalinya.
2. Daya yang dibutuhkan pada rangkaian pertama adalah 12 Watt, sedangkan pada rangkaian kedua adalah 6 Watt. Artinya, ‘penghematan’ energi hanya setengahnya.

Apakah ini merugikan? Jelas ya, karena energi yang termanfaatkan (berupa cahaya) berkurang 4 kali, sementara pengurangan daya hanya berkurang 2 kali... Sisanya, terbuang berupa panas pada resistor. Artinya, efisiensi sistem (konversi listrik ke cahaya) jauh berkurang akibat adanya resistor.

Knowledge:
1. Anda jangan mencoba menserikan lampu rumah anda dengan resistor, meskipun anda berniat baik melakukan penghematan, karena bukannya penghematan yang diperoleh, malah bikin rumah menjadi panas dan membahayakan...
2. Apabila tegangan rumah anda 110 Volt, tapi anda memasang lampu pijar 220 Volt 100 Watt, maka lampu tersebut menyerap daya 25 Watt. Tapi, coba bandingkan cahaya lampunya apabila anda memakai lampu pijar 110V 25 Watt, pasti berbeda, kemungkinan lampu 220 Volt lebih redup tetapi menghasilkan panas lebih banyak. Ini terjadi karena saat desain, lampu tersebut di set berada pada efisiensi tertinggi pada tegangan kerjanya. .... Yah... kadang praktek lebih rumit dibandingkan teori. ya kan...

Terus apa hubungannya antara PWM dan artikel ini? Nyambung enggak sih?

Kita membutuhkan sistem pengaturan daya yang efisien, dengan kata lain, penambahan resistor pada kenyataannya tidak mengurangi daya, tetapi ‘memindahkan’ daya untuk kemudian dibuang. Apa urgensi dari pengaturan daya tersebut? Tentu saja banyak, misalnya pengaturan putaran motor, pengaturan panas heater suatu furnace, dan lain sebagainya.

Oleh karena itu, para ahli menemukan metoda PWM yaitu Pulse Width Modulation, bahasa Indonesianya Modulasi Lebar Pulsa. Caranya adalah dengan melakukan ‘chopping’ sumber daya dari beban.



Pada gambar diatas, lampu di ON/OFF kan, dimana perioda ON dan OFF nya tergantung dari daya yang diinginkan. Perbandingan dari perioda ON dan perioda T disebut dengan DUTY CYCLE.

Wah, kalo begitu, lampunya kedip dong? Tidak, selama frekuensi ON/OFF nya cukup tinggi sehingga mata tidak dapat merasakan kedipan lampu tersebut. Selain itu, karena lampu berupa filamen panas, saat sumber daya dimatikan, filamen lampu tidak langsung dingin, sehingga masih menyala. Otomatis, kedipan lampu sama sekali tidak terlihat.

Dengan metoda seperti diatas, tidak ada daya yang terbuang meskipun daya lampu dikurangi sampai 10%. Saklar pada rangkaian PWM bukanlah saklar mekanik, tetapi biasanya berupa komponen MOSFET atau Power Transistor. Rangkaian chopping pada PWM tidak memungkinkan apabila memakai relay, karena relay responnya tidak bisa cepat. Salah-salah hanya akan berdengung saja... (Kecuali untuk pengontrolan heater, perioda PWM bisa cukup lama, misalnya 5 detik).

Penerapan PWM

1. PWM bisa dipakai sebagai pengganti DAC, misalnya untuk reproduksi suara. Dengan hanya satu port digital, kita bisa menghasilkan suara dikombinasikan dengan Low Pass filter. Low pass filter ini dipergunakan untuk membuang komponen frekuensi tinggi dari sinyal, karena sinyal PWM yang berupa sinyal kotak memiliki komponen frekuensi tinggi (coba pelajari transformasi fourier untuk rekonstruksi sinyal kotak).
2. Pengendalian pemanas/heater di industri, pada umumnya memakai prinsip PWM.
3. Sistem injeksi bahan bakar (injection), volume bensin yang dibakar tergantung dari lamanya injector membuka. Ini sesuai dengan prinsip PWM.
4. Switching power supply yang memakai LM2576 merupakan prinsip PWM. Bandingkan dengan LM7805 yang selalu panas pada beban 1 A dan tegangan input 12V.
5. Power supply komputer, charger HP, charger notebook, saat ini sudah memakai prinsip PWM, pemakaian transformator sudah jarang.
6. Pengaturan putaran motor 3 phasa di industri biasanya memakai modul yang disebut dengan Inverter. Inverter ini memakai prinsip kerja PWM.
7. Dimmer lamp memakai prinsip PWM, frekuensi PWM nya adalah 50Hz, dikontrol memakai TRIAC.
8. Kalau buka-buka buku koleksi skema elektronik jaman baheula, biasanya ada rangkaian peredup lampu pijar, dimana lampu pijar hanya diseri dengan dioda BY127. Ini bertujuan agar duty cycle menjadi 50% sehingga lampu menjadi redup.
9. dan banyak lagi

Yang tidak memakai PWM

1. Masih banyak dijual dipasaran Power Supply 12 Volt 20 Ampere yang memakai 5 buah 2N3055 dan ditempeli dengan heatsink yang buesaaarrr dan dilengkapi kipas. Transistor tersebut panas bukan karena rusak, tetapi memang sudah sifat alamiahnya.
2. Audio Power Amplifier. Selalu memakai power transistor besar dan dilengkapi dengan fan, apalagi apabila powernya diatas 100 Watt. Saya belum melihat power amplifier yang memakai PWM, mungkin pembaca pernah melihatnya?
3. Pengendalian traksi motor pada Kereta Listrik. Diatap KRL terdapat resistor yang besar sekali untuk mengatur daya motor. Sepertinya bisa dipakai untuk menjemur baju. Menurut salah seorang rekan di Balai Yasa Manggarai, sudah ada beberapa KRL yang memakai VVVF (Variable Voltage Variable Frequency), mungkin ini mirip dengan prinsip PWM? Maaf saya belum mendalaminya....

Sekian bahasan saya mengenai PWM, terus terang, saya hanya tau kulitnya aja, tapi mudah-mudahan cukup sebagai gambaran mengenai PWM......

Selasa, 05 Agustus 2008

Dasar:Analog Digital dan Digital to Analog Converter

Kalau kita jalankan Setup Bios, biasanya terdapat informasi CPU Temperature. Bagaimana sih caranya sehingga temperatur CPU bisa ditampilkan di layar monitor? Mari kita bahas apa yang dimaksud Analog to Digital Converter.

Dalam sebuah industri, besaran fisis yang berupa temperatur, tekanan (pressure), laju aliran fluida (flow) harus dikendalikan. Pada umumnya, pengendalian tersebut menggunakan PC, PLC ada juga yang disebut dengan SCADA. Pada intinya, besaran fisis tersebut harus dapat diketahui oleh sistem digital. Bagaimana caranya?

Besaran fisis tersebut dirubah menjadi besaran elektris menggunakan sensor. Keluaran sensor biasanya berupa tegangan atau arus (standarnya 4-20mA). Kemudian tegangan/arus tersebut diubah menjadi besaran digital memakai komponen ADC (Analog to Digital Converter).

Sensor

Ambil contoh sederhana, sensor temperatur. Sensor temperatur biasanya mempunyai range output yang berpadanan dengan temperatur. Misalnya, sensor temperatur memiliki range pengukuran temperatur 0 – 100 derajat celcius, sedangkan range outputnya adalah 0 – 5 Volt. Artinya, pada suhu 0 derajat celcius, keluaran dari sensor adalah 0 V dan pada 100 derajat celcius keluarannya adalah 5 Volt. Berapa temperatur apabila keluaran dari sensor 2.5 Volt? Dengan rumus interpolasi, diperoleh bahwa temperatur yang terukur adalah 50 derajat celcius.

Apakah output dari sensor bisa disambungkan ke port digital? (contohnya input dari port paralel yang pernah kita coba untuk mendeteksi penekanan saklar)

Jelas tidak bisa, karena input digital hanya bisa mendeteksi 0 Volt sebagai LOW, dan 5 Volt sebagai HIGH. Sedangkan 2.5 Volt bukan LOW atau HIGH.

Analog to Digital Converter

ADC merupakan komponen yang mengubah besaran analog (dalam hal ini tegangan yang berpadanan dengan temperatur) dan dikonversi menjadi besaran digital.
ADC memiliki beberapa karakteristik penting:
a. Input voltage range
b. Bit resolution
c. Sampling rate
ADC memiliki beberapa jenis bit resolution, antara lain 8 bit, 10 bit, 12 bit, 16 bit dan bahkan 20 bit. Apa yang dimaksud dengan bit resolution?

Setiap tegangan input yang dikonversi menjadi digital hasilnya harus berupa deretan 1 dan 0 yang merepresentasikan besar tegangan tersebut. Katakanlah dengan ADC 8 bit, maka tegangan input harus dikonversi menjadi 00000000 (0 desimal) sampai 11111111 (255 desimal).

Contoh:

Temperatur --- Tegangan --- Keluaran ADC
0 --- 0 V --- 00000000 = 0 desimal
100 --- 5 V --- 11111111 = 255 desimal
50 --- 2.5 V --- 10000000 = 128 desimal

Sekarang kita bisa mencari hubungan antara temperatur dengan keluaran ADC dengan memperhatikan:
a. Range temperatur 0 – 100 derajat celcius
b. Range output sensor 0 – 5 Volt
c. Range input ADC 0 – 5 Volt
d. Resolusi ADC 8 bit = 0 – 255

Range output sensor (b) dan range input ADC (c) harus sama, apabila tidak, perlu memakai ‘signal conditioner’ untuk menyamakan range tegangan. Signal conditioner biasanya berupa rangkaian Operational Amplifier, bukan sampo cuci rambut :) Kita lupakan dulu masalah rangkaian signal conditioner, Insya Allah akan saya kupas dilain posting.

0 derajat celcius ekivalen dengan 0
100 derajat celcius ekivalen dengan 255

Jadi persamaannya:

Keluaran ADC = (255/100) * temperatur

Atau
Temperatur = (100/255) * keluaran ADC

Misalnya keluaran ADC adalah 154, maka temperaturnya adalah 60.39 derajat celcius

Pertanyaannya, kalau temperaturnya 43 derajat celcius, berapa keluaran ADC?

Keluaran ADC = (255/100) * 43 = 109.65

Benar?

Hmm... kenapa jadi ada angka koma? Padahal bilangan biner 8 bit tidak ada angka koma ya? Keluaran dari ADC adalah tanpa koma karena hanya 8 bit. Jadi keluaran ADC adalah integer dari 109.65 = 109

Jadi persamaannya perlu disempurnakan:

Keluaran ADC = | (255/100)*temperatur | atau INT( (255/100) * temperatur )

Dalam konversi ADC, akan timbul error karena ada proses kuantisasi (apa itu kuantisasi? silahkan cari di oom google hehe...) Error ini akan semakin kecil apabila resolusi ADC semakin besar. Sebagai gambaran, ADC yang dipergunakan untuk konversi sinyal suara/musik adalah 16 bit. (Coba lihat Sound Recorder, apabila kita akan mensave suara, disitu ada pertanyaan jenis hasil yang diinginkan).



Sedangkan 24.000 kHz adalah sampling rate, akan kita bahas kemudian.

Jadi, apabila tegangan ini dikonversi menjadi digital 8 bit, dari komponen ADC itu akan keluar 8 buah kabel/jalur yang isinya mulai dari 00000000 sampai 11111111 ? Ya... benar sekali, meskipun ada juga ADC yang jenisnya Serial ADC, dimana keluaran dikirimkan dalam bentuk serial sehingga mengurangi jumlah kabel/jalur.

Sekarang apa yang dimaksud dengan sampling rate?

Sampling rate adalah interval pencuplikan data, sampling rate 1 Hz artinya besaran analog (tegangan) dikonversi setiap 1 detik sekali, jadi 24000 Hz artinya data tegangan dikonversi 24000 kali dalam satu detik. Untuk mendapatkan audio yang sekelas HIFI, dibutuhkan sampling rate 44000 Hz dan resolusi ADC 16 bit, sedangkan untuk kualitas percakapan/speech, sampling ratenya adalah 8000 Hz, resolusi 8 bit sudah cukup.

Proses perekaman suara oleh komputer/mp3 player/berbicara di HP GSM/CDMA (bukan AMPS yang jaman baheula...) salah satunya terdapat proses Analog to Digital conversion.

Digital to Analog Converter (DAC)

DAC adalah kebalikan dari ADC, dengan kata lain, mengubah besaran digital menjadi besaran analog (misalnya tegangan). Parameternya sama, antara lain bit resolution. Biasanya sampling rate tidak dinyatakan dalam DAC, karena konversi digital ke analog berlangsung sangat cepat dan hanya tergantung dari kecepatan data digital yang dikirim ke komponen DAC.

Proses playback MP3 player/mendengarkan suara di HP/memainkan lagu di komputer adalah proses konversi dari digital ke analog.

Mudah-mudahan uraian singkat ini cukup dapat dipahami, karena Digital Input, Digital Output, ADC dan DAC merupakan dasar dari PC interfacing dan mikrokontroller.

Mendapatkan second serial di ATMEGA32 (Soft UART)

Apabila dibutuhkan lebih dari 1 serial port, maka bisa menggunakan softuart, yaitu uart yang dibuat oleh software. pin untuk TX dan RX adalah:

TX : Pin 19 (OC1A)
RX : Pin 20 (ICP1)

Sedangkan source codenya adalah:

#include < avr/io.h>
#include < avr/interrupt.h>
#include < inttypes.h>
#include < avr/iom32.h>
#include < stdio.h>
#include < math.h>
#include < avr/pgmspace.h>
#include < avr/eeprom.h>
#include < avr/wdt.h>

#define F_OSC 11059200
#define SOFT_BAUD 9600 // Software uart baud rate

#define BIT_TIME (unsigned short)((F_OSC + SOFT_BAUD/2) / SOFT_BAUD)
#define kbhit() (srx_done)

volatile unsigned char stx_count;
unsigned char stx_data;

volatile unsigned char srx_done;
unsigned char srx_data;
unsigned char srx_mask;
unsigned char srx_tmp;

SIGNAL( SIG_INPUT_CAPTURE1 )
{
OCR1B = ICR1 + (unsigned short)(BIT_TIME * 1.5);
srx_tmp = 0;
srx_mask = 1;
TIFR = 1 << OCF1B;
if( !(SRXPIN & 1 << SRX))
TIMSK = 1 << OCIE1A^1 << OCIE1B;
}

SIGNAL( SIG_OUTPUT_COMPARE1B )
{
unsigned char in = SRXPIN;

if( srx_mask )
{
if( in & 1 << SRX )
srx_tmp |= srx_mask;
srx_mask << = 1;
OCR1B += BIT_TIME;
}
else
{
srx_done = 1;
srx_data = srx_tmp;
TIFR = 1 << ICF1;
TIMSK = 1 << TICIE1^1 << OCIE1A;
}
}

SIGNAL( SIG_OUTPUT_COMPARE1A )
{
unsigned char dout;
unsigned char count;

OCR1A += BIT_TIME;
count = stx_count;

if( count )
{
stx_count = --count;
dout = 1 << COM1A1;
if( count != 9 )
{
if( !(stx_data & 1) )
dout = 1 << COM1A1^1 << COM1A0;
stx_data >>= 1;
}
TCCR1A = dout;
}
}

void suart_init( void )
{
OCR1A = TCNT1 + 1;
TCCR1A = 1 << COM1A1^1 << COM1A0;
TCCR1B = 1 << ICNC1^1 << CS10;

TIFR = 1 << ICF1;
TIMSK = 1 << TICIE1^1 << OCIE1A;

stx_count = 0;
srx_done = 0;
STXDDR |= 1 << STX;
}

unsigned char sgetchar( void )
{
while( !srx_done );
srx_done = 0;
return srx_data;
}

void sputchar( unsigned char val )
{
while( stx_count );
stx_data = ~val;
stx_count = 10;
}

void sputs( char *txt )
{
while( *txt )
sputchar( *txt++ );
}

int main(void)
{
DDRD=0xbe;

while (1)
{
sputs(“Kirim string\r\n”);
}
}

Keterangan source code:
1. Untuk mengirimkan string, gunakan sputs();
2. Untuk mengirimkan 1 karakter, gunakan sputchar();
3. Untuk menerima data dari serial, cek dahulu apakah ada data baru dengan kbhit(), jika true berarti ada data masuk, ambil data dengan fungsi sgetchar();
4. Untuk softuart tidak ada fasilitas interupsi.

Atmega32 dan RS-232

Sebuah mikrokontroller tentu saja perlu berkomunikasi dengan dunia luar, misalnya dengan PC. Interface yang populer untuk keperluan ini adalah Serial Port RS-232. Untuk melengkapi serial port RS-232 ke mikrokontroller atmega anda, gunakan IC TTL to RS232 converter, yang dikeluarkan oleh Maxim MAX232, atau ICL232. Rangkaiannya:



Di sisi PC, anda dapat menggunakan software Hyperterminal yang terdapat di Accessories, atau, apabila ingin yang lebih bagus, gunakan software Docklight (www.docklight.de). Atau, jika anda mau membuat aplikasi under Delphi yang membaca port serial, gunakan komponen cport yg bisa di download di http://www.mirrorservice.org/sites/download.sourceforge.net/pub/sourceforge/c/co/comport/


Software di avr-gcc untuk mengakses port serial ini adalah.

#include < avr/io.h>
#include < avr/interrupt.h>
#include < inttypes.h>
#include < avr/iom32.h>
#include < stdio.h>
#include < math.h>
#include < avr/pgmspace.h>
#include < avr/eeprom.h>
#include < avr/wdt.h>

#define F_OSC 11059200
#define UART_BAUD_RATE 9600
#define UART_BAUD_CALC(UART_BAUD_RATE,F_OSC) ((F_OSC)/((UART_BAUD_RATE)*16l)-1)

volatile unsigned char ser[22]; // variabel buffer serial rx

SIGNAL (SIG_UART_RECV)
{
unsigned char c;
unsigned char a;

c = UDR;

for(a=0;a<21;a++) ser[a]=ser[a+1];
ser[21]=c;
}


void usart_putc(unsigned char c) // kirim ke serial 1 char
{
while(!(UCSRA & (1 << UDRE)));
UDR = c;
}

void usart_puts (char *s) // kirim ke serial 1 string
{
while (*s)
{
usart_putc(*s);
s++;
}
}

int main(void)
{
DDRD=0xfe;

UBRRH = (unsigned char)(UART_BAUD_CALC(UART_BAUD_RATE,F_OSC) >> 8);
UBRRL = (unsigned char)UART_BAUD_CALC(UART_BAUD_RATE,F_OSC);
UCSRB = (1 << RXEN)|(1 << TXEN)|(1 << RXCIE);
UCSRC = (1 << URSEL)|(3 << UCSZ0);

while (1)
{
usart_puts(“Serial ready\r\n”);
}
}

Keterangan source code:

1. Setiap kali RX menerima data, maka data tersebut disimpan di variabel ser[21], data sebelumnya bergeser. Lihat fungsi interupsi serial SIGNAL (SIG_UART_RECEIVE)
2. Untuk mengirim 1 karakter ke TX, gunakan fungsi usart_putc();
3. Untuk mengirim 1 string ke TX, gunakan fungsi usart_puts();
4. Setting baud date di #define UART_BAUD_RATE 9600

Senin, 04 Agustus 2008

Dasar:Pedoman membuat PCB

Berikut pedoman yang bisa dipakai untuk membuat PCB:
1. Pad untuk komponen (IC, resistor, header dll) diameter 62mil, diameter hole 40mil
2. Via diameter 50mil, hole 30mil
3. Lebar track minimum 10 mil, atau 12 mil
4. Jarak antar track minimum 30 mil (center to center), meskipun 20 mil juga bisa, hanya tingkat kegagalannya lebih tinggi
5. Gunakan track lebih lebar untuk jalur power supply (misalnya 24 mil), lebih lebar lebih baik
6. Lubang sekrup, gunakan PAD diameter 150mil, hole diameter 100mil
7. Batas-batas PCB menggunakan Multilayer lebar 10mil.
8. TO220, diameter pad 80mil, hole diameter 50mil
Sampai saat ini saya masih memakai Protel versi 1.5 untuk desain PCB. Dengan pedoman diatas, pengalaman saya tingkat kegagalan fabrikasi PCB cukup kecil dan penyolderan cukup mudah.

Dasar:Mikrokontroller Atmel AVR 8 bit

Atmel Semiconductor sudah mengeluarkan mikrokontroller seri AVR 8 bit yang menurut saya memiliki banyak keunggulan dibandingkan seri 89C51. Keunggulan tersebut antara lain (perbandingan dengan ATMEGA32):
1. Variannya sangat banyak, mulai dari yang 8 pin sampai 64 pin
2. Memiliki internal EPROM, anda tidak perlu lagi memakai batere untuk mem-backup isi RAM
3. Memiliki 8 channel ADC 10 bit
4. Memiliki internal oscilator, sehingga bisa dikonfigurasikan tanpa Xtal.
5. Ram internal 2kb (bandingkan 89C51 yang hanya 128byte)
6. 32KB EEPROM untuk program (89C51 hanya 4kb)
7. Internal watch dog. Nah ini penting, sehingga bisa mencegah sistem hang
8. Brown-out detector, juga mencegah hang.
9. In-system programming, tidak perlu programmer khusus
10. Punya port SPI, I2C
11. Arsitektur RISC, 1 instruksi hanya dilaksanakan 1 clock, bandingkan 89C51 membutuhkan 6-12 clock.
12. Dan yang paling penting:Development tools, cross compiler (C) gratis! Bandingkan dengan 89C51 harus memakai Frankln Cross Compiler yang harganya selangit...

Untuk developmentnya, saya biasanya memakai bahasa C, karena kalau memakai assembly, rumit banget dan memusingkan (menurut saya...) Dengan memakai bahasa C, pemrograman menjadi sangat mudah dan cepat. Kalau mau mencoba memakai bahasa Pascal, bisa juga, silahkan cek www.mikroe.com

Jadi, tinggalkan kebiasaan lama memakai bahasa Assembler untuk pemrograman mikrokontroller, gunakan bahasa C jika anda ingin development yang cepat dan mudah... Gratis juga kan?

Tertarik? Sekarang mari kita persiapkan tools nya yang gratis itu:

Software di PC:
1. AvrStudio Versi 4.13 Build 571 (ini yang saya pakai), silahkan download di www.atmel.com
2. WinAVR Versi 20071221, download di www.sourceforge.net atau search menggunakan google, keyword WinAVR
3. PonyProg2000 download di http://ponyprog.sourceforge.net

Catatan:
WinAVR dengan nama avr-gcc tersedia juga di linux, cuma saya belum mencobanya.

Programmer:

Untuk programmernya kita harus membeli Universal Programmer seharga 10 Juta-an... Kaget? Enggak kok, cuma harus menyiapkan uang sekitar 10 ribu untuk:
1. DB25 Female
2. 4 buah resistor 100 ohm
3. Konektor 6 pin, bisa memakai Header 6 pin
4. Kabel isi banyak kurang lebih 1meter (atau kabel pita)




Konektor DB25 adalah konektor yang dicolokkan ke paralel port untuk memprogram. Nah, dalam proses programmingnya, setiap PCB (atau desain) yang anda buat memakai mikrokontroller AVR, harus menyiapkan konektor 6 pin yang terhubung ke:
1. GROUND
2. Reset (Pin 9 pada ATMEGA32)
3. Not connected
4. SCK (Pin 8 pada ATMEGA32)
5. MISO (Pin 7 pada ATMEGA32)
6. MOSI (Pin 6 pada ATMEGA32)

Sekarang kita buat rangkaian yang paling sederhana, setidaknya kita bisa meyakinkan bahwa seluruh proses mulai dari pembuatan software sampai memprogram AVR berjalan dengan lancar.



Rangkaian sederhana ATMEGA32:



Rangkaiannya mirip dengan 89C51, Xtalnya juga bisa memakai standar 89C51, cuma capasitor xtalnya 22pF. Rangkaian ini berfungsi untuk menyalakan 3 buah LED saja karena tujuan kita adalah menguji apakah ATMEGA32 ini bisa berfungsi atau tidak.

Untuk power supply, gunakan 5 Volt, bisa menggunakan LM2576, 7805 atau sumber tegangan lainnya, hanya jangan sampai lebih dari 5.5 Volt karena dapat mengakibatkan ATMEGA32 rusak.

Mari kita desain software yang bisa menyalakan ketiga led tersebut bergantian tahap demi tahap.

Pembuatan Software ATMEGA32

1. Install AvrStudio yang sudah didownload
2. Install WinAVR
3. Install PonyProg2000

Apabila semuanya sudah diinstall, silahkan buka software AVRSTUDIO nya.

1. Pilih Project – New Project
2. Pilih AvrGCC dan nama project, serta folder project itu disimpan. Lihat gambar dibawah:



Opsi Create Folder akan membuat satu folder baru untuk project yang akan kita buat. Untuk projectnya, saya beri nama:testpertama. AVRStudio akan membuat folder testpertama di My Documents
3. Klik Next



4. Pilih Debug Platform:AVR Simulator dan ATmega32 pada Device.
5. Klik Finish
6. Klik Project – Configuration Option



7. Pilih opsi seperti gambar diatas. Frequency diisi dengan 11059200 hz. Optimization pilih O0 (tanpa optimasi).
8. Klik Ok
9. Sekarang anda telah siap untuk menuliskan source codenya:



10. Isi source code dengan:



#include < avr/io.h >
#include < avr/interrupt.h >
#include < inttypes.h >
#include < avr/iom32.h >
#include < stdio.h >
#include < math.h >
#include < avr/pgmspace.h >
#include < avr/eeprom.h >
#include < avr/wdt.h >

int main(void)
{
DDRC=0xff;
PORTC=0x01;

while (1);
}

Gunakan source code diatas sebagai tempate apabila anda akan membuat software pada platform ATMEGA32. Memang saat ini tidak semua header pada include dipergunakan, tetapi tidak masalah apabila dimasukkan sebagai template.

Pada bahasa C, awal eksekusi adalah pada fungsi main(void), fungsi dari masing-masing perintah tersebut adalah:

DDRC=0xff;
Berfungsi untuk memberitahu ATMEGA32 bahwa PORTC akan dipakai untuk OUTPUT. Silahkan baca datasheet ATMEGA32 mengenai DDR (Data Direction Register)

PORTC=0x01;
Adalah perintah untuk memprogram PORTC agar berisi 01 hexa (00000001 biner).

while (1);
Adalah perintah looping tak berakhir, maksudnya, setelah 2 perintah tersebut dijalankan, sistem akan diam disini.

11. Klik Build – Rebuild all

Apabila dibagian bawah tertulis Build succeded with 0 warnings... berarti proses kompilasi berhasil. Sekarang mari kita isikan hasil kompilasi tersebut ke IC ATMEGA32

12. Siapkan kabel programmer yang sudah dibuat, colokkan ke Paralel Port
13. Sambungkan ujung yang lain kabel programmer yang dipasang header 6 pin ke pin 6 – 9 pada ATMEGA32
14. Jalankan software PonyProg
15. Pilih AVRMicro dan ATMEGA32 pada sebelah kanan atas software ponyprog
16. Pilih Setup-Interface setup dan ikuti setting dibawah:



17. Klik Probe, jika jawabannya Ok, berarti sambungan kabel benar.
18. Klik Setup-Callibration, kemudian Ok (hanya jalankan pada pertama kali merun ponyprog saja)
19. Klik File – Open Program, kemudian cari file hex pada folder My Documents\testpertama\default
20. Klik Command-Write Program, sampai muncul pesan bahwa pemrograman sukses. Jika pemrograman gagal, cek kembali hubungan kabel.
21. Klik Command-Security and Configuration Bit
.


22. Sesuaikan dengan gambar diatas, klik pada BODLEVEL, BODEN dan CKOPT
23. Klik Write
22. Klik Ok, coba reset mikrokontroller dengan memutus dan menyambungkan kembali power supply.
23. Lihat apakah led yang terhubung ke pin 23 dan 24 menyala dan led yang terhubung ke pin 22 mati. Jika ya, berarti anda sudah sukses memprogram ATMEGA32 dengan bahasa C! Kenapa hanya 2 led yang menyala padahal port C diisi angka 1? Silahkan pelajari source code dan rangkaiannya.

Sekarang, mari kita buat agar LED tersebut menyala bergantian.

Tambahkan pada program satu buah fungsi delay, sehingga program menjadi:
.
.
.
void tunggu(unsigned int dx)
{
unsigned int x;
unsigned int y;

for(x=0;x< 500;x++)
{
for(y=0;y< dx;y++) {}
}
}

int main(void)
{
DDRC=0xff;

while (1)
{
PORTC=0x06;
tunggu(500);
PORTC=0x05;
tunggu(500);
PORTC=0x03;
tunggu(500);
}
}

Coba dicompile dan dimasukkan ke mikro nya, apakah benar lednya menyala bergantian?

Pengembangan lebih lanjut:
1. Output port C dihubungkan dengan 8 buah lampu 220 Volt melalui isolasi optis yang dibahas pada posting mengenai isolasi optis.
2. Buat program yang membuat ke 8 lampu tersebut menyala bergantian.
atau
Anda dapat juga membuat alat pencegah maling seperti yang terdapat pada posting saya di bagian isolasi optis.