Selasa, 19 Januari 2016

Jurnal Tentang Mikrokontroler AVR


Melanjutkan artikel sebelumnya, yang telah menyampaikan beberapa jurnal tentang pengertian mikrokontroler, kali ini saya akan melanjutkan untuk menyampaikan beberapa sitasi lain tentang mikrokontroler Atmel AVR.

Salah satu mikrokontroler yang banyak digunakan saat ini yaitu mikrokontroler AVR. AVR adalah mikrokontroler RISC (Reduce Instuction Set Compute) 8 bit berdasarkan arsitektur Harvard. Secara umum mikrokontroler AVR dapat dapat dikelompokkan menjadi 3 kelompok, yaitu keluarga AT90Sxx, ATMega dan ATtiny. Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral, dan fiturnya. Seperti mikroprosesor pada umumnya, secara internal mikrokontroler ATMega16 terdiri atas unit-unit fungsionalnya Arithmetic and Logical Unit (ALU), himpunan register kerja, register dan dekoder instruksi, dan pewaktu beserta komponen kendali lainnya. Berbeda dengan mikroprosesor, mikrokontroler menyediakan memori dalam serpih yang sama dengan prosesornya (in chip).
http://ejournal.unsrat.ac.id/index.php/elekdankom/article/viewFile/8257/7816

AVR adalah sebuah keluarga mikrokontroler yang mempunyai anggota dengan tipe tertentu seperti AT90S1200, ATTinty11, dan ATMega8L. Secara garis besar mempunyai mempunyai sub keluarga yaitu Tiny yaitu dengan fitur sederhana, Klasik dengan fitur menengah, dan Mega dengan fitur lengkap. Instruksi yang dipergunakan pada tiap tipe adalah sama, hanya jumlah instruksi pada masing-masing tipe berbeda.
http://eprints.undip.ac.id/25644/1/ML2F098613.pdf

Inti AVR adalah kombinasi berbagai macam instruksi dengan 32 register serba guna. Register-register tersebut terhubung langsung dengan Arithmetic Logic Unit (ALU) yang memungkinkan dua register independent untuk diakses dalam satu pelaksanaan instruksi dengan 1 siklus detak. Keuntungan dari arsitektur ini adalah kode program yang lebih efisien sementara keberhasilan keseluruhan sepuluh kali lebih cepat dibandingkan dengan CISC (Complex Instruction Set Computing) yang konvensional.
http://jurtek.akprind.ac.id/sites/default/files/96-107_wiwik.pdf

AVR merupakan salah satu jenis mikrokontroler yang di dalamnya terdapat berbagai macam fungsi. Perbedaannya pada mikro yang pada umumnya digunakan seperti MCS51 adalah pada AVR tidak perlu menggunakan oscillator eksternal karena di dalamnya sudah terdapat internal oscillator. Selain itu kelebihan dari AVR adalah memiliki Power-On Reset, yaitu tidak perlu ada tombol reset dari luar karena cukup hanya dengan mematikan supply, maka secara otomatis AVR akan melakukan reset. Untuk beberapa jenis AVR terdapat beberapa fungsi khusus seperti ADC, EEPROM sekitar 128 byte sampai dengan 512 byte.
http://elib.unikom.ac.id/gdl.php?mod=browse&op=read&id=jbptunikompp-gdl-indrapurna-26711

Mikrokontroler AVR menggunakan arsitektur Harvard dengan memisahkan memori dan jalur bus untuk program dan data agar meningkatkan kemampuan karena dapat mengakses program memori dan data memori secara bersamaan. Mikrokontroler AVR memiliki fast access register file dengan 32 register x 8-bit. Dengan 32 register AVR dapat mengeksekusi beberapa instruksi sekali jalan (single cycle). 6 dari 32 register yang ada dapat digunakan sebagai indirect address register pointer 16-bit untuk pengalamatan data space, yang memungkinkan penghitungan alamat yang efisien.
http://elib.unikom.ac.id/gdl.php?mod=browse&op=read&id=jbptunikompp-gdl-crestaperm-31732

Read more

Senin, 18 Januari 2016

Pengertian Mikrokontroler dari Beberapa Jurnal


Mungkin anda lagi suntuk mengerjakan laporan? Jangan khawatir, anda tidak sendiri. Saya sudah biasa mencari jurnal di google, sama seperti anda. Jadi jika anda sedang mencari tahu jurnal mikrokontroler, pengertian mikrokontroler, atau cara kerja mikrokontroler, mungkin artikel ini bisa membantu.

Tapi maaf, coba lihat sendiri sumbernya untuk membuktikan bahwa jurnalnya asli, dan juga untuk melihat pengarang dan judul jurnalnya. Link nya sudah saya sertakan, kok.. :)

Berikut sitasinya..

Mikrokontroler adalah sebuah sistem komputer lengkap dalam satu serpih (chip). Mikrokontroler lebih dari sekedar sebuah mikroprosesor karena sudah terdapat atau berisikan ROM (Read-Only Memory), RAM (Read-Write Memory), beberapa bandar masukan maupun keluaran, dan beberapa  peripheral seperti pencacah/pewaktu, ADC (Analog to Digital converter), DAC (Digital to Analog converter) dan serial komunikasi.
http://repository.usu.ac.id/handle/123456789/28677/

Mikrokontroler adalah suatu mikroprosesor plus. Mikrokontroler adalah otak dari suatu sistem elektronika seperti halnya mikroprosesor sebagai otak komputer. Nilai plus bagi mikrokontroler adalah terdapatnya memori dan Port Input/Output dalam suatu kemasan IC yang kompak. Kemampuannya yang programmable, fitur yang lengkap (ADC internal, EEPROM internal, Port I/O, Komunikasi Serial, dll), dan juga harga yang terjangkau memungkinkan mikrokontroler digunakan pada berbagai sistem elektronis, seperti pada robot, automasi industri, sistem alarm, peralatan telekomunikasi, hingga peralatan rumah tangga.
https://openlibrary.telkomuniversity.ac.id/pustaka/99907/belajar-sendiri-mikrokontroler-avr-seri-atmega8535-simulasi-hardware-dan-aplikasi.html

Pengunaan utama dari mikrokontroler adalah untuk mengontrol operasi dari mesin. Strategi kendali untuk mengontrol mesin tertentu dimodelkan dalam program algoritma pengaturan yang ditulis dalam bahasa assembly. Program tersebut selanjutnya di translasi ke kode mesin digital dan disimpan selanjutnya di dalam media penyimpanan digital yang disebut ROM.  Mikrokontroler adalah Central processing unit (CPU) yang disertai memori serta sarana Input/output dan dibuat dalam satu chip. 
http://repository.usu.ac.id/handle/123456789/26945/

Mikrokontroler  adalah  sebuah  system  komputer  yang seluruh  atau sebagian  besar  elemennya  dikemas  dalam  satu  chip  IC,  sehingga  sering disebut  single  chip  microcomputer.  Mikrokontroler  merupakan  system computer yang mempunyai satu atau beberapa tugas yang sangat spesifik.
http://jogjapress.com/index.php/JIFO/article/viewFile/340/162

Mikrokontroler adalah sebuah alat pengendali (kontroler) berukuran mikro atau sangat kecil yang dikemas dalam bentuk chip. Sebuah mikrokontroler pada dasarnya bekerja sepertisebuah mainboard pada komputer. Bagian – bagian Mikrokontroler antara lain: CPU(Central Processing Unit), Memori Program, Memori data, Alat pemrograman, Input /output, dan Modul tambahan.
http://www.fisika.lipi.go.id/en/sites/default/files/makalah_05262009.pdf

Read more

Minggu, 17 Januari 2016

Kata Kunci Rahasia Google

 

Google bukan cuma mesin pencari sederhana. Kita mulai perhatikan, akhir-akhir ini Google semakin meningkatkan fitur mesin pencarinya. Selain sebagai mesin pencari, Google juga telah mengembangkan mesin pencarinya untuk menjawab berbagai pencarian yang lebih spesifik. Misalnya kita bisa menanyakan jam, menghitung angka dan mengonversi satuan.








Selain fitur-fitur itu tadi, ternyata Google juga memiliki fitur lain yang tersembunyi lho, istilahnya easter eggs. Gak penting-penting amat sih, tapi mungkin anda akan merasa semakin penasaran untuk melihatnya. Biar semakin penasaran, silahkan coba sendiri kata kunci berikut ini, satu persatu.
  1. zerg rush
  2. blink html atau <blink>.
  3. recursion
  4. do a barrel roll
  5. askew
  6. webdriver torso
  7. Buka situs: http://www.google.com/teapot
  8. What is the loneliest number
  9. Festivus
  10. once in a blue moon
  11. 2*sqrt(-abs(abs(x)-1)*abs(3-abs(x))/((abs(x)-1)*(3-abs(x))))(1+abs(abs(x)-3)/(abs(x)-3))sqrt(1-(x/7)^2)+(5+0.97(abs(x-.5)+abs(x+.5))-3(abs(x-.75)+abs(x+.75)))(1+abs(1-abs(x))/(1-abs(x))),-3sqrt(1-(x/7)^2)sqrt(abs(abs(x)-4)/(abs(x)-4)),abs(x/2)-0.0913722(x^2)-3+sqrt(1-(abs(abs(x)-2)-1)^2),(2.71052+(1.5-.5abs(x))-1.35526sqrt(4-(abs(x)-1)^2))sqrt(abs(abs(x)-1)/(abs(x)-1))+0.9 [link
  12. Super Mario Brothers (klik animasinya)
  13. graph sqrt(cos x) sin(300 x) + sqrt(abs x) - 1, x - 0.5, from -2 to 2
  14.  Conway's Game of Life
Sumber : Wikipedia

Read more

Sabtu, 16 Januari 2016

Membuat Program Screenshot dengan C



Untuk dapat mengambil screenshot, program harus berkomunikasi dengan system atau display manager melalui API. Di Linux, hal ini dimungkinkan dengan library display manager yang disediakan oleh X. Namun cara ini kurang portabel, jadi sebagai alternatif kita bisa menggunakan library crossplatform GDK. Jika anda sudah pernah membuat program GTK, maka ini tidak akan sulit, karena GDK sendiri sangat erat hubungannya dengan GTK. Namun Jika belum, silahkan membaca tutorial Hello World GTK dahulu untuk menyiapkan library yang diperlukan.

Untuk dapat memahami bagaimana screenshot yang didemonstrasikan disini bekerja, anda harus mengetahui beberapa istilah baru yang digunakan dalam GDK dan X11:
  • Screen : yaitu layar penampil dimana seluruh window dan pointer mouse berada.
  • Window : Dalam sistem Linux Window dimanajemen secara hierarki, seperti halnya filesystem. Window yang menjadi pangkal dan merupakan parent dari window lain disebut sebagai root window. Semua region segiempat di desktop linux sebenarnya merupakan kumpulan dari window yang diatur tampilannya sedemikian rupa. Baik button, textbox, menu, semua itu merupakan window.
  • Pixbuf : Merupakan singkatan dari pixel buffer. Pixbuf bertugas menyimpan data gambar dalam memori. Data inilah yang bisa diambil dan diproses lebih lanjut.

Proes pengambilan screenshot yang ditunjukkan disini sangat sederhana. Pertama kita mencari tahu screen default yang sedang ditampilkan di monitor.

GdkScreen * gdk_screen_get_default (void);

Kemudian dilanjutkan dengan mengambil root window dari screen. Argumen untuk parameter screen diperoleh dari pemanggilan fungsi sebelumnya.

GdkWindow * gdk_screen_get_root_window (GdkScreen *screen);

Sebelum memperoleh pixbuf, kita harus mengetahui panjang(width) dan lebar(height) dari root window.

int gdk_window_get_width (GdkWindow *window);
int gdk_window_get_height (GdkWindow *window);

Semua window menyimpan tampilan gambarnya dalam pixbuf, jadi yang harus dilakukan sekarang adalah mengambil pixbuf dari root window tersebut.

GdkPixbuf * gdk_pixbuf_get_from_window (GdkWindow *window, gint src_x, gint src_y, gint width, gint height);

src_x dan src_y adalah parameter yang menentukan titik koordinat window yang akan diambil data pixbuf-nya. Sementara itu, width dan height adalah panjang dan lebar gambar yang diambil dari window, dihitung dari src_x dan src_y.

Terakhir, kita simpan data pixbuf tersebut ke dalam file sebagai gambar JPEG.

gboolean gdk_pixbuf_save (GdkPixbuf *pixbuf, const char *filename, const char *type, GError **error, ...);

Semua parameter prototype fungsi di atas agaknya cukup jelas, hanya ada beberapa yang masih harus dijelaskan. Parameter type menentukan format gambar yang akan disimpan; kita bisa memilih “BMP”, “PNG”, “JPEG”, “ICO”, atau yang lainnya. Parameter error digunakan untuk menunjukkan pesan error jika terjadi kesalahan, parameter ini bersifat opsional. Setiap type gambar memiliki karakteristik tersendiri. Untuk mengatur karakteristik ini, kita boleh menambahkan beberapa parameter opsional, seperti tingkat kualitas atau level kompresi gambar. Setelah itu semua, argumen 0 harus dikirim sebagai parameter paling terakhir.

Sebelum itu semua dilakukan, kita harus memanggil gtk_init() terebih dahulu. Fungsi ini akan menginisialisasikan library GDK, GTK dan beserta library dependensinya.

screenshot.c



#include <gtk/gtk.h>

int main(int argc, char *argv[]){
 GdkScreen *screen;
 GdkWindow *rootWindow;
 GdkPixbuf *rootWinPixbuf;
 int screenWidth, screenHeight; 
 
  gtk_init(&argc,&argv);
 screen = gdk_screen_get_default ();
 rootWindow = gdk_screen_get_root_window(screen);
 screenWidth = gdk_window_get_width(rootWindow);
 screenHeight = gdk_window_get_height(rootWindow);
 rootWinPixbuf = gdk_pixbuf_get_from_window(rootWindow,0,0,screenWidth, screenHeight);
 gdk_pixbuf_save(rootWinPixbuf,"/home/it/screenshot.jpg","jpeg",0,NULL);
 return 0;
}


Build dengan perintah berikut.
gcc screenshot.c `pkg-config --cflags --libs gtk+-3.0`

Selamat mencoba :)
Read more

Senin, 04 Januari 2016

Cara Memperbesar Kapasitas casper-rw di Ubuntu

http://www.omgubuntu.co.uk/wp-content/uploads/2014/04/UBN00216-1.jpg

Harddisk saya mengalami masalah serius, jadi tidak banyak pilihan yang bisa saya ambil. Mengunakan distro live CD adalah pilihan awal saya. Dengan cara ini saya mencoba memilih Ubuntu untuk dijalankan secara live, tanpa harddisk. Sayang sekali, media ini relatif kurang interaktif bagi saya. Membuka aplikasi terasa seperti biasa, tapi sebelumnya saat booting terasa agak lambat.

Jadi saya menggunakan Universal USB installer untuk menjalankan Ubuntu secara live dari flashdisk. Meski terasa lebih cepat, ada satu masalah yang tidak begitu saya sukai, yaitu media penyimpannanya bersifat temporary. Meski kita bisa mendownload file dan menginstall aplikasi baru, semuanya terbatas pada kapasitas RAM, buruknya lagi semuanya akan hilang setelah shutdown atau restart.

Dengan berat hati saya mulai mempertimbangkan untuk menginstall Ubuntu ke flashdisk saya satu-satunya. Tapi apa daya, semua file penting saya disini, untuk menginstall Ubuntu, flashdisk harus memiliki filesystem EXT2/3/4. Otomais flashdisk ini nantinya tidak bisa diakses sistem operasi Windows. Jadi saya mulai mencari alternatf lain, yaitu dengan persistent-changes file.

Dengan persistent-changes, semua perubahan dalam live-system akan disimpan dalam file virtual disk, nama filenya adalah casper-rw. Awalnya saya mengalokasikan casper-rw sebesar 1 GB, melalui opsi Universal USB Installer, namun tak berselang lama kemudian, semua space tersebut mulai menipis. Jadi saya mulai berpikir untuk memprsesar kapasitas file tersebut.
dd if=/dev/zero bs=1M count=512 >> casper-rw

Command di atas membuat file casper-rw bertambah sebesar 512 MB, jadi totalnya, sekrang 1,5 GB. Namun ternyata cara ini tidak berhasil, mungkin karena metadata dalam file tersebut masih menunjukkan ukuran file sebesar 1 GB, jadi perlu suatu cara untuk mengubah metadata tersebut. Berikut ini cara yang saya lakukan.
1. Boot ubuntu live tanpa casper-rw/persistent changes
2. Flashdisk yang dipakai biasanya di mount di folder /cdrom secara read-only. Jadi kita harus melakukan remount untuk mengaktifkan read-write, agar kita bisa mengakses file di dalamnya.
- check device yang dipakai, lihat dengan mount
- Remount device dengan command : mount -o remount,rw <device> /cdrom


3. Masuk ke direktori lokasi casper-rw, disini lokasi casper-rw saya berada pada /cdrom/multiboot/ubuntu-14.04.3-desktop-i386.
4. Setelah itu, baru kita bisa mulai dengan memperbesar ukuran casper-rw, misalnya kita ingin menambah ukurannya 512 MB
dd if=/dev/zero bs=1M count=512 >> casper-rw

Hati-hati, jangan sampai salah ketik, ya!

Casper rw sudah bertambah 512-MB, namun ruangan baru tersebut masih belum bisa dipakai sebelum kita mengubah metadata.

5. Masih dalam direktori lokasi casper-rw, ketik:
gparted casper-rw
 

6. Klik menu partition->Check
7. Klik menu Edit->Apply all operations
8. Selesai..
Read more