Sunday, 30 November 2014

Sekilas Tentang Bahasa C sharp (C#)

C# (dibaca: C sharp) merupakan sebuah bahasa pemrograman yang berorientasi objek yang dikembangkan oleh Microsoft sebagai bagian dari inisiatif kerangka .NET Framework. Bahasa pemrograman ini dibuat berbasiskan bahasa C++ yang telah dipengaruhi oleh aspek-aspek ataupun fitur bahasa yang terdapat pada bahasa-bahasa pemrograman lainnya seperti Java, Delphi, Visual Basic, dan lain-lain) dengan beberapa penyederhanaan. Menurut standar ECMA-334 C# Language Specification, nama C# terdiri atas sebuah huruf Latin C (U+0043) yang diikuti oleh tanda pagar yang menandakan angka # (U+0023). Tanda pagar # yang digunakan memang bukan tanda kres dalam seni musik (U+266F), dan tanda pagar # (U+0023) tersebut digunakan karena karakter kres dalam seni musik tidak terdapat di dalam keyboard standar.

Standar European Computer Manufacturer Association (ECMA) mendaftarkan beberapa tujuan desain dari bahasa pemrograman C#, sebagai berikut:
  • Bahasa pemrograman C# dibuat sebagai bahasa pemrograman yang bersifat bahasa pemrograman general-purpose (untuk tujuan jamak), berorientasi objek, modern, dan sederhana.
  • Bahasa pemrograman C# ditujukan untuk digunakan dalam mengembangkan komponen perangkat lunak yang mampu mengambil keuntungan dari lingkungan terdistribusi.
Portabilitas programmer sangatlah penting, khususnya bagi programmer yang telah lama menggunakan bahasa pemrograman C dan C++.Dukungan untuk internasionalisasi (multi-language) juga sangat penting.  
 
C# ditujukan agar cocok digunakan untuk menulis program aplikasi baik dalam sistem klien-server (hosted system) maupun sistem embedded (embedded system), mulai dari perangkat lunak yang sangat besar yang menggunakan sistem operasi yang canggih hingga kepada perangkat lunak yang sangat kecil yang memiliki fungsi-fungsi terdedikasi.
Bahasa C sharp (C#)
Bahasa C sharp (C#)

Meskipun aplikasi C# ditujukan agar bersifat 'ekonomis' dalam hal kebutuhan pemrosesan dan memori komputer, bahasa C# tidak ditujukan untuk bersaing secara langsung dengan kinerja dan ukuran perangkat lunak yang dibuat dengan menggunakan bahasa pemrograman C dan bahasa rakitan.

Bahasa C# harus mencakup pengecekan jenis (type checking) yang kuat, pengecekan larik (array), pendeteksian terhadap percobaan terhadap penggunaan Variabel-variabel yang belum diinisialisasikan, portabilitas kode sumber, dan pengumpulan sampah (garbage collection) secara otomatis.

Pada akhir dekade 1990-an, Microsoft membuat program Microsoft Visual J++ sebagai sebuah langkah percobaan untuk menggunakan Java di dalam sistem operasi Windows untuk meningkatkan antarmuka dari Microsoft Component Object Model (COM). Akan tetapi, akibat masalah dengan pemegang hak cipta bahasa pemrograman Java, Sun Microsystems, Microsoft pun menghentikan pengembangan J++, dan beralih untuk membuat pengganti J++, kompilernya dan mesin virtualnya sendiri dengan menggunakan sebuah bahasa pemrograman yang bersifat general-purpose. Untuk menangani proyek ini, Microsoft merekrut Anders Helsberg, yang merupakan mantan karyawan Borland yang membuat bahasa Turbo Pascal, dan Borland Delphi, yang juga mendesain Windows Foundation Classes (WFC) yang digunakan di dalam J++. Sebagai hasil dari usaha tersebut, C# pun pertama kali diperkenalkan pada bulan Juli 2000 sebagai sebuah bahasa pemrograman modern berorientasi objek yang menjadi sebuah bahasa pemrograman utama di dalam pengembangan di dalam platform Microsoft .NET Framework.

Pengalaman Helsberg sebelumnya dalam pendesain bahasa pemrograman seperti Visual J++, Delphi, Turbo Pascal) dengan mudah dilihat dalam sintaksis bahasa C#, begitu pula halnya pada inti Common Language Runtime (CLR). Dari kutipan atas interview dan makalah-makalah teknisnya ia menyebutkan kelemahan-kelemahan yang terdapat pada bahasa pemrograman yang umum digunakan saat ini, misalnya C++, Java, Delphi, ataupun Smalltalk. Kelemahan-kelemahan yang dikemukakannya itu yang menjadi basis CLR sebagai bentukan baru yang menutupi kelemahan-kelemahan tersebut, dan pada akhirnya memengaruhi desain pada bahasa C# itu sendiri. Ada kritik yang menyatakan C# sebagai bahasa yang berbagi akar dari bahasa-bahasa pemrograman lain. [1] Fitur-fitur yang diambilnya dari bahasa C++ dan Java adalah desain berorientasi objek, seperti garbage collection, reflection, akar kelas (root class), dan juga penyederhanaan terhadap pewarisan jamak (multiple inheritance). Fitur-fitur tersebut di dalam C# kini telah diaplikasikan terhadap iterasi, properti, kejadian (event), metadata, dan konversi antara tipe-tipe sederhana dan juga objek.

C# didisain untuk memenuhi kebutuhan akan sintaksis C++ yang lebih ringkas dan Rapid Application Development yang 'tanpa batas' (dibandingkan dengan RAD yang 'terbatas' seperti yang terdapat pada Delphi dan Visual Basic).

Agar mampu mempromosikan penggunaan besar-besaran dari bahasa C#, Microsoft, dengan dukungan dari Intel Corporation dan Hewlett-Packard, mencoba mengajukan standardisasi terhadap bahasa C#. Akhirnya, pada bulan Desember 2001, standar pertama pun diterima oleh European Computer Manufacturers Association atau Ecma International (ECMA), dengan nomor standar ECMA-334. Pada Desember 2002, standar kedua pun diadopsi oleh ECMA, dan tiga bulan kemudian diterima oleh International Organization for Standardization (ISO), dengan nomor standar ISO/IEC 23270:2006.

Fitur-fitur bahasa

C# kadang-kadang dapat disebutkan sebagai bahasa pemrograman yang paling mencerminkan dasar dari CLR dimana semua program-program .NET berjalan, dan bahasa ini sangat bergantung pada kerangka tersebut sebab ia secara spesifik didisain untuk mengambil manfaat dari fitur-fitur yang tersedia pada CLR.

Sensor Optik Inframerah Pada Sensor

Sensor Inframerah pada sensor
Sensor Inframerah pada sensor
Sensor Optik RVL 003  termasuk kamera inframerah jenis monokrom 128x96 dengan built-in image processing. Kamera terlihat melalui pass filter inframerah dalam casing plastik remote. Built-in image processing kamera ini mampu melacak hingga 4 objek bergerak, dan data ini adalah data hanya tersedia untuk tuan rumah. Data pixel baku tidak tersedia bagi tuan rumah, sehingga kamera tidak dapat digunakan untuk mengambil gambar konvensional. Prosesor built-in menggunakan 8x analisis subpixel untuk memberikan resolusi 1024x768 untuk poin dilacak. The Bar Sensor yang datang dengan Wii mencakup dua kelompok LED IR di setiap akhir, yang dilacak oleh Sensor Optik RVL 003  untuk memberikan informasi yang menunjuk. Jarak antara pusat cluster LED adalah 20 cm (yang diukur pada satu unit).

Kamera IR diaktifkan dengan menetapkan bit 2 pada laporan output 0x13 dan 0x1A:
 (A2) 13 04
 (A2) 1a 04

Yang pertama memungkinkan jam pixel 24MHz pada pin 7 dari kamera. Yang kedua menarik pin 4 rendah - mungkin aktif-rendah.

Komponen kamera dipasang pada permukaan bagian bawah papan sirkuit. Modul kamera itu sendiri dipasang pada soket tegak lurus ke papan sirkuit, untuk menghapus hanya modul kamera, tidak ada pematrian diperlukan. Prosesnya adalah sebagai berikut:

Pertama, orientasi kamera sehingga Anda melihat ke lensa dengan PCB horisontal dan di bawah lensa. Ada klip logam empat, dua di masing-masing sisi vertikal soket. Gunakan sesuatu yang kecil untuk meluncur antara masing-masing klip logam dan modul kamera: mungkin kawat kawat bungkus? Kemudian melihat bagian belakang modul kamera, lensa berlawanan. Ada sebuah lubang persegi kecil di tengah-tengah setiap sisi vertikal soket. Menggunakan pin atau sesuatu untuk mengorek / tekan modul kamera keluar.

Setelah modul kamera bebas dari soket, maka selanjutnya dapat dibongkar dengan lembut prizing up PCB kecil dengan kontak emas ini lembut terpaku pada struktur modul, tetapi akan lepas tanpa kerusakan. Pada titik ini Anda memiliki tiga buah: soket kamera, masih menempel pada Wiimote PCB, perumahan modul kamera, lengkap dengan lensa dan dichroic filter (sifat optik tidak diketahui), dan PCB kecil dengan chip kamera dan kontak emas delapan pada bagian bawah.

Saturday, 29 November 2014

Bluetooth Pairing Pada Sensor

Bluetooth Pairing
Bluetooth Pairing
Sensor Optik RVL 003  mendukung metode bluetooth pairing. Hal ini melibatkan pengiriman PIN ke Sensor Optik RVL 003 . Pairing Bluetooth tidak diperlukan untuk menggunakan Sensor Optik RVL 003  dan Anda dapat melanjutkan dengan membentukkoneksi HID tanpa pasangan sama sekali. Namun, jika Sensor Optik RVL 003  dipasangkan, maka akan secara aktif mencari untuk host yang terakhir terhubung pada pemutusan dan membangun kembali koneksi. Bagian berikut menjelaskan perangkat bluetooth pasangan, jika pasangan tidak diperlukan.

Pairing Bluetooth harus diprakarsai oleh hostdengan mengirimkan "Perlu Otentikasi" perintah ke perangkat bluetooth HCI nya. Perangkat bluetooth akan meminta hostuntuk kunci link, yang harus ditolak sehingga akan meminta Kode PIN-. PIN-Kode adalah alamat bluetooth biner dari Sensor Optik RVL 003  mundur. Setelah potongan pendek kode C untuk menghitung PIN:

Mari kita asumsikan Sensor Optik RVL 003  memiliki alamat bluetooth "00:01 E: 35:3 B: 7E: 6D
Jika menghubungkan dengan menekan tombol 1 +2, PIN adalah alamat bluetooth dari Sensor Optik RVL 003  mundur, jika menghubungkan dengan menekan tombol "sync" tombol di bagian belakang Sensor Optik RVL 003 , maka PIN adalah alamat bluetooth dari host mundur.

Setelah mengirimkan PIN ke perangkat bluetooth melalui perintah HCI, Sensor Optik RVL 003  akan kembali "Otentikasi diterima" perintah dan pasangan yang didirikan (kedua perangkat terikat sekarang). Jika host berhasil terikat dengan Sensor Optik RVL 003 dan mendirikan koneksi HIDSensor Optik RVL 003  akan menyimpan alamat bluetooth dari host dan memungkinkan rekoneksi menekan satu. Itu berarti jika Sensor Optik RVL 003  kini terputus dari tuan rumah, akan secara aktif mencari untuk hostjika tombol yang ditekan dan membangun baseband dan koneksi HID. Sensor Optik RVL 003  tidak akan pernah aktif mengirim pasangan kunjungan sejak ini tidak diperlukan. Juga ingat bahwa ini bekerja dengan tombol tidak hanya kekuatan-tombol. Namun, setelah membangun koneksi, Sensor Optik RVL 003  mengirimkan tombol masukan laporan dan ini memungkinkan host untuk melihat apa tombol ditekan. Jadi hostmungkin menolak koneksi baru jika ada tombol kecuali tombol power-ditekan.

Sensor Optik RVL 003  memiliki ruang untuk alamat host beberapa (setidaknya 3 diketahui bekerja) sehingga dapat dipasangkan dengan lebih dari satu host (seperti PC atau Wii) dan akan mencoba dalam urutan terbalik untuk menyambung kembali ke host. Artinya, hostyang terakhir dipasangkan dicoba pertama dan jadi satu. Jika tombol 1 dan 2 atau tombol sync di punggungnya ditekan, Sensor Optik RVL 003  tidak akan secara aktif mencari untuk host tetapi menempatkan dirinya dalam mode dapat terdeteksi dan menunggu koneksi masuk sehingga pasangan bluetooth tidak bertentangan dengan normal host-sisi koneksi.
Hal ini tidak diketahui cara menghapus alamat host dari Sensor Optik RVL 003 , bagaimanapun, dengan beberapa penyelidikan itu harus mungkin untuk menemukan mereka di EEPROM dan memanipulasi mereka. Jika ini dianggap sebagai masalah keamanan, maka jangan memasangkan perangkat Anda.

Sekilas Tentang Sensor Optik RVL 003

Sensor Optik RVL 003 adalah perangkat nirkabel menggunakan teknologi Bluetooth standar untuk berkomunikasi dengan perangkat lain. Mengunakan chip BCM2042 Broadcom bluetooth mengandung beberapa peripheral yang menyediakan beberapa jenis data serta port ekspansi untuk eksternal add-ons. Sensor ini mengunakan standar Bluetooth Human Interface Device (HID) protokol untuk berkomunikasi dengan host, yang langsung didasarkan pada USB HID standar. Dengan demikian, maka akan muncul sebagai perangkat input standar untuk semua host Bluetooth. Namun, Sensor Optik RVL 003  tidak menggunakan tipe data standar dan deskriptor HID, dan hanya menjelaskan panjang laporan formatnya, meninggalkan isi sebenarnya terdefinisi, yang membuatnya tidak berguna dengan driver HID standar. Sensor Optik RVL 003  benar-benar menggunakan satu set yang cukup kompleks operasinya, ditularkan melalui laporan output HID, dan mengembalikan jumlah paket data yang berbeda melalui laporan input, yang berisi data dari peripheral nya.
BCM2042 Broadcom Bluetooth Chip pada Sensor
BCM2042 Broadcom Bluetooth Chip pada Sensor
Rangkain Dalam Sensor Optik RVL 003
Rangkain Dalam Sensor Optik RVL 003
Sensor Optik RVL 003  berkomunikasi dengan host melalui protokol bluetooth standar. Sensor Optik RVL 003  dapat ditempatkan ke dalam mode dapat terdeteksi dengan menekan tombol sync di punggungnya bawah penutup baterai. Menekan tombol 1 dan 2 akan terus memaksa Sensor Optik RVL 003  untuk tetap dalam mode dapat terdeteksi tanpa mematikan. Ini tidak bekerja dengan tombol sync, meskipun. Ketika dalam mode dapat terdeteksi, sejumlah LED pemain berdasarkan tingkat baterai akan berkedip. Dengan baterai penuh semua empat LED akan berkedip, semakin rendah baterai LED maka kedipan akan berkurang.
Selama penyelidikan perangkat host akan menemukan semua Sensor Optik RVL 003 dekatnya ditemukan. Sekarang host dapat membuat sambungan bluetooth baseband ke Sensor Optik RVL 003 , tidak ada pasangan bluetooth diperlukan, namun, jika pasangan bluetooth dilakukan, Sensor Optik RVL 003  mampu untuk menyambung kembali ke host jika terputus.

ORGANISASI MEMORI

ORGANISASI MEMORI Memiliki 3 jenis memori :

1.  Memori program
  • Kapasitas 8 Kbyte dengan lebar data 16 bit
  • Sering dituliskan 4K x 16 bit
  • Dipetakan dengan alamat 0000h s/d 0FFFh
  • Disimpan pada Flash memory yang bersifat Non-Volatile
  • Terbagi menjadi 2 bagian : program boot dan program aplikasi

2.  Memori  Data
  • Kapasitas 608 byte dengan lebar data 8 bit
  • Terbagi menjadi 3 bagian :
  1. Register serba guna  sebesar 32 byte, menggunakan alamat 0000h s/d 001Fh → untuk mendukung operasi pada ALU
  2. Register I/O sebesar 64 byte, menggunakan alamat 0020h s/d 005Fh → untuk mengatur fasilitas (timer/counter, interupsi,  ADC, USART, SPI, EEPROM, dan Port I/O (Port A, B, C dan D))
  3. SRAM sebesar 512 byte  (=0.5Kb), menggunakan alamat mulai 0060h s/d 0025Fh → untuk memori data
3.  Memori  EEPROM
  • Kapasitas 512 byte (=0.5 Kb), terpisah dari memori program dan memori data
  • Hanya dapat diakses menggunakan register-register I/O : register EEPROM Address (EEARH-EEARL), register EPROM  Data (EEDR)dan register EEPROM Control (EECR)
  • Sama seperti mengakses data eksternal → waktu eksekusinya lebih lama dibanding mengakses data dari SRAM
REGISTER
  • Status Register (SREG)
  • Untuk menyimpan informasi dari hasil operasi aritmatika yang terakhir
    ORGANISASI MEMORI
    ORGANISASI MEMORI