Thursday, April 28, 2011

Simulasi Logika Alarm Kendaraan Sederhana

 
sekarang ini makin banyak saja tindak kejahatan karena adanya kesempatan tentunya, agar kesempatan itu tidak didapat perlu adanya pencegahan salah satunya alarm untuk kendaraan.

nah sekarang kita akan mencoba membuat rangkaian logika sederhana untuk alarm kendaraan sederhana.
pertama-tama kita harus merancang apa saja yang diperlukan untuk alarm yang akan dibuat, diperlukan beberapa komponen dasar yaitu:

1. remote kendaraan, yang memilki 1 tombol untuk memberi perintah terkunci(0) atau terbuka(1).
2. indikator mesin, saat mesin menyala(1) dan saat mesin tidak menyala(0).
3. indikator kunci pada kendaraan, kendaraan terkunci(0) atau tidak terkunci (1)
4. output alarm, alarm hidup(1) dan alarm mati(1)

jika di tulis dalam tabel dapat dilihat seperti berikut:
 
 pada tabel diatas telah ditulis kondisi hidup, mati seperti yang telah tertulis pada komponen dasar yang diperlukan. kondisi 0/1 dapat diubah sesuai keperluan.

tabel tersebut didapatkan dari hubungan logika, jika remote kunci tertutup(0) maka indikator terkunci akan mati(0), dan jika pada kondisi ini mesin menyala maka alarm akan menyala. jika remote kunci terbuka(1) maka indikator kunci akan menyala dan saat mesin dihidupkan alarm tidak akan menyala.
hadil output indikator dan alarm pada tabel dapat diperoleh dengan rumus:

indikator = C+D
alarm = B

rumus tersebut didapat dari hubungan kondisi output(1) dengan kondisi input(A,B,C,D)

nah rangkaian elektronik dengan gerbang logika sederhana dapat dibuat seperti berikut:
input dari kondisi remote dan mesin dimasukkan ke dalam decoder 2 to 4 seperti pada rangkaian sehingga menghasilkan 4 output kondisi a(00), b(01), c(10), dan d(11) seperti pada tabel. dan output dibuat seperti pada rumus dengan menghubungkannya dengan kondisi yang sesuai sehingga didapat hasil logika seperti yang diharapkan :)

konsep ini masih sebatas teori dasar dalam logika pembuatan alarm untuk pembuatan secara realnya tentu lebih kompleks dengan mengubah indikator input-output yang ada menjadi sensor atau perangkat mekanik yang dapat menghasilkan logika yang sama seperti konsep ini.



 
READ MORE - Simulasi Logika Alarm Kendaraan Sederhana

Wednesday, April 27, 2011

Laporan embedded system frequency divider

laporan praktikum embedded system tentang frequency divider atau pembagi frekuensi dengan memanfaatkan counter untuk memperlambat frekuensi input sehingga frekuensi output dapat sesuai kebutuhan.
download
file gdf maxII
READ MORE - Laporan embedded system frequency divider

Laporan Mikrokomputer 2 minggu 5

laporan tentang makro program sama pemakaian device eksternal buat simulasi program di emu8086
download
READ MORE - Laporan Mikrokomputer 2 minggu 5

Sunday, April 24, 2011

Jenis Bus, Protokol Dan Operating System Pada OBDH Satellite Nano

Blok Diagram OBDH
  
Fungsi subsistem dalam OBDH
a.       Subsistem Comm(komunikasi)
Misi : Telemetri, Proses Telecommand dan Kontrol Operasi Satelit dari ground segment
-          Manajemen Sistem Satelit
-          Kontrol Payload
-          Komunikasi Stasiun Bumi
b.      Subsistem ACDS(Altitude Determination And Control system)
Misi : Penentuan posisi ketinggian dan pengontrolan perilaku satelit dalam orbit
c.       Subsistem power
Misi : Pengaturan, distribusi dan suplai daya kesubsistem satelit dan pengembangan subsistem daya
d.      Subsistem payload
Misi : Pengembangan muatan satelit untuk berbagai misi (komunikasi, Ilmiah dan Pengideraan Jauh/kamera).
-          Komunikasi digital (store & forward)
-          Observasi bumi dan pengideraan jauh
-          Navigasi
-          Lingkungan Antariksa
e.      Additional Subsystem(Subsistem tambahan)
-          Subsistem Struktur Mekanis Satelit
Misi : Disain dan manufacturing struktur mekanis satelit
-          Subsistem Stasiun Bumi
Misi : Stasiun Bumi control dan komando untuk operasi satelit


Arsitektur Terdistribusi
Pada arsitektur terdistribusi seperti terlihat pada blok  diagram diatas, terlihat bahwa OBC masih berfungsi sebagai  kontrol utama tapi tidak terhubung langsung dengan subsystem  lainnya namun melalui data bus. Data bus yang digunakan  adalah serial data bus. Setiap subsistem memiliki mikrokontroller sendiri yang mengatur hubungan data dengan serial data bus. Data bus yang dipakai berbasis standar I2C.

Fungsionalitas Bus
Pada arsitektur terdistribusi, data bus adalah tulang punggung dalam OBDH, yang menjadi perantara OBC untuk berkomunikasi dengan subsystem lain. Data bus ini berbasis I2C karena itu setidaknya ada 2 jalur utama yang digunakan dalam OBDH yaitu untuk sinyal clock(SCK) dan sinyal data(SDA). Setiap kontroller(subsystem) dalam satelit akan memilki alamat unik yang memungkinkan pengalamatan data serempak ke semua kontroller. Sebuah kontroller dapat menjadi master atau slave dalam sebuah bus, master dapat meminta transfer data sedangkan slave hanya dapat merespon perintah dari master. Untuk mempermudah desain OBC system didesain sebagai satu-satunya master, sedangkan subsystem lain sebagai slave.

Pilihan Tipe Bus
Dengan menggunakan arsitektur terdistribusi sebagai dasar desain OBDH, maka distribusi masih akan menggunakan OBC dan hardware yang hanya mensupport standar I2C dan SPI. Begitu juga dengan tipe mikrokontroller yang akan digunakan pada subsystem. Salah satu fitur yang belum disediakan pada standar I2C adalah pendeteksi kesalahan, walau setiap byte yang dikirim telah disetujui oleh penerima, tidak akan menjamin data bebas dari error transmisi. Melihat dari standar serial bus yang dipakai diluar angkasa yaitu Spacewire dan CAN, dapat dilihat bahwa keduanya memiliki pendeteksi kesalahan. Kedua protokol tersebut memiliki penanganan error dan prosedur untuk melakukan restarting jika suatu error terdeteksi. Karena itu untuk mengkompensasi error yang terjadi pada protokol dalam Operating system OBDH, dapat dibuat protokol baru diatas protokol I2C standar.

Pendeteksi Error Dan Strategi Penangananya
Dalam memilih fungsi pendeteksi kesalahan yang akan diimplementasikan diatas protokol I2C ada 2 pilihan cara yaitu:
1.       Melakukan koreksi error dari algoritma itu sendiri. Spacewire menggunakan metode paritas ganjil sedangkan CAN menggunakan CRC-16 checksum. Paritas adalah metode yang lebih mudah dibuat sedangkan CRC sulit namun lebih baik untuk keakuratan data dibanding  paritas.
2.       melakukan penanganan dengan pendekatan error cara ini dilakukan memeriksa integritas data tersebut jika data tidak sesuai maka akan dilakukan pengiriman ulang data sampai integritas data yang diminta telah sesuai.
Dari kedua cara tersebut paling cocok adalah dengan metode paritas untuk pengecekan error transfer data pada serial data bus. Metode ini memerlukan kemampuan komputasi dan karena mikrokontroller akan berjalan pada clock rendah untuk menghemat energi maka dengan metode ini hanya akan memakai sedikit sumber daya. Setiap bit yang ditransfer melalui databus termasuk alamat akan diperiksa integritasnya  oleh bit paritas. Dan jika masih ada error data maka pengiriman data akan diulangi.

Transmisi Master Slave
Transmisi pada databus I2C selalu dimulai oleh master dan tidak pernah oleh slave. Ini akan membuat penanganan error lebih kompleks. Karena itu diperlukan urutan sebagai berikut:
1.       Master mengirim dan slave menerima
OBC/master mengirim pesan ke mikrokontroller(subsystem)/slave. Mikrokontroller akan memeriksa integritas data. Karena slave tidak bisa mengirim data sendiri maka slave akan menunggu sampai master meminta informasi tentang integritas data yang dikirim.
2.       master penerima dan slave pengirim.
Mikrokontroller/slave mengirim data ke OBC/master atas perintah master. Data tersebut akan dicek integritasnya oleh OBC dan apabila data tersebut error maka master akan langsung mengirim pesan ke slave untuk meminta pengiriman data ulang. Dan jika data yang diterima telah benar maka transmisi selesai.

Alasan pemilihan I2C
I2C dirancang agar semua alat yang kompatibel dengan I2C bus dapat berkomunikasi langsung melalui I2C bus. Desain ini menyelesaikan berbagai masalah antarmuka dalam mendesain rangkaian kontrol digital.

Fitur Bus I2C
-          Hanya membutuhkan 2 jalur data yaitu serial data line(SDA) dan serial clock line(SCL)
-          Setiap perangkat yang terhubung ke dalam bus memiliki alamat yang unik dan hubungan master slave yang mudah, master dapat sebagai penerima atau pengirim
-          I2C adalah multi master bus termasuk adanya deteksi tabrakan data dan pemutusan data untuk mencegah terjadinya data corrupt jika 2 atau lebih master sama-sama mengirim data
-          Serial, orientasi 8 bit, data transfer dua arah dan dapat mencapai 100kbps pada mode standar dan 400kbps pada mode cepat
-          Filter di dalam chip yang menolak gangguan pada jalur data bus untuk mengamankan integritas data
-          Jumlah IC yang dapat dikoneksikan pada bus yang sama hanya terbatas pada kapasitansi bus yaitu 400pf

Keunggulan I2C
Beberapa fitur dari IC yang kompatible dengan bus I2C yang menguntungkan desainer kontrol digital diantaranya:
-          Fungsional blok pada blok diagram dapat langsung berupa IC; proses desain akan sangat cepat dari blok diagram ke skematik
-          Tidak membutuhkan desain antarmuka bus karena antarmuka bus I2C sudah terintegrasi pada chip
-          Pengalamatan yang terintegrasi dan protokol data transfer yang memperbolehkan sistem didefinisikan oleh software
-          IC yang sama tipenya dapan digunakan pada banyak aplikasi yang berbeda
-          Mengurangi waktu desain bila desainer sudah terbiasa dengan fungsional blok bus I2C
-          IC dapat ditambahkan dan dikurangi dari sistem tanpa mempengaruhi sirkuit lain dalam bus
-          Pemeriksaan kesalahan dan debugging yang mudah; malfungsi dapat dengan cepat ditemukan
-          Waktu pengembangan software dapat dikurangi dengan pembuatan library pada modul software
Kelebihan lainnya adalah CMOS IC pada bus I2C kompatible dengan banyak perangkat sehingga memudahkan untuk peralatan portable dan sistem baterai backup, kelebihan tersebut adalah:
-          Konsumsi daya yang rendah
-          Kekebalan yang tinggi terhadap noise
-          Jangkauan tegangan yang luas
-          Jangkauan temperatur untuk operasi yang luas

Keuntungan Pembuatan
IC Yang Kompatible Dengan Bus I2C Juga Sangat Menguntungkan Untuk Pembuatan Perangkat Karena:
-          2 jalur Serial Bus I2C Meminimalkan Koneksi Dalam Jadi IC Dapat Memiliki Pin Yang Lebih Sedikit Dan Track PCB Yang Tidak Terlalu Banyak Sehingga Hasilnya PCB Yang Lebih Kecil Dan Murah
-          Bus I2C Terintegrasi Menghapus Kebutuhan Akan Alamat Decoder Dan Sejenisnya
-          Kemampuan Multi Master Dari Bus I2C Memungkinkan Tes Yang Cepat Dan Perpindahan Perangkat Koneksi Melalui Komputer
-          Ketersediaan IC Yang Kompatible Bus I2C Dalam Bentuk SO(Small Outline), VSO(Very Small Outline) Begitu Pula DIL Mengurangi Penggunaan Tempat Pada PCB.

Apakah OBDH Memerlukan Operating System?
Ya perlu, menurut saya obdh adalah suatu system terintegrasi dimana terdapat suatu prosesor yang mengontrol beberapa peripheral untuk memproses data-data input dan output. Dengan adanya operating system maka prosesor akan dapat dengan mudah melakukan pembagian tugas atau instruksi untuk masing-masing  periperal baik secara multi task maupun single task. Obdh pada satelit tentunya memerlukan operating system yang powerfull untuk bisa menjalankan misi yang diberikan. System tentunya harus memiliki kriteria sebagai berikut:
1.       Melakukan proses dengan cepat(real time operating system)
2.       Dapat menangani error dengan sendirinya(software protection code)
3.       Mampu mereset diri sendiri
4.       Start up atau booting yang singkat

Mengapa Memerlukan Operating System?
Pada intinya operating system mengerjakan 2 hal
1.       Mengatur kebutuhan hardware dan software pada system
2.       Menyediakan suatu kestabilan dimana aplikasi dapat bekerjasama dengan hardware tanpa perlu mengetahui cara kerja hardware.(perantara software ke hardware)
Dengan menggunakan operating system maka interface antara software dengan hardware akan lebih stabil dan lebih mudah karena itu, pemakaian operating system akan sangat membantu dalam OBDH terutama karena banyaknya hardware yang digunakan secara bersama-sama dalam suatu OBDH. Sehingga pengaturan data yang kompleks juga dibutuhkan agar data yang didapat bisa tertangani dengan baik.

Kebutuhan Realtime Multitasking dengan ARM 7
Operating system realtime dibutuhkan pada obdh karena kebutuhan yang cepat akan data yang perlu diproses secara realtime sehingga data yang dikirim satelit ke ground segment dapat secara realtime. Masalahnya adalah dengan adanya banyak perangkat pada OBDH yang memerlukan pemrosesan tersendiri dan tentunya membutuhkan prioritas tersendiri. Karena itu untuk memenuhi kebutuhan pemrosesan dari perangkat yang ada diperlukan multitasking system yang akan menjalankan beberapa proses instruksi dalam sekali siklus. Yang menjadi problem lain adalah penggunaan prosesor ARM 7 yang merupakan single core karena itu tidaklah mungkin untuk melakukan proses multi tasking secara ‘real’ karena untuk multi tasking yang sebenarnya tentu memerlukan lebih dari 1 core untuk menyelesaikan beberapa instruksi secara bersamaan karena itu untuk merancang sustu system operasi multi tasking diperlukan adanya prioritas dan timing untuk masing-masing instruksi sehingga pengambilanb beberapa instruksi sekaligus dapat dilakukan. Misal 1 proses instruksi belum selesai tapi akan mengambil instruksi selanjutnya untuk diproses, jadi pemrosesan beberapa instruksi akan berlangsung bergantian pada 1 core. Karena pemrosesan sangat cepat akan terlihat proses tersebut seperti multitasking meski tidak 100% multitasking

Kesimpulan
Berdasarkan informasi yang telah dikumpulkan dan ditelaah menurut kami system bus dan protocol yang paling efisien sekarang ini untuk nano satelit yang ekonomis adalah dengan menggunakan BUS serial dan dengan protocol I2C. sementara itu operating system dirasa perlu untuk menunjang kebutuhan akan pemrosesan data yang cepat dari banyaknya subsystem yang ada dalam OBDH.

Contoh Arsitektur Ncube Satellite System Dengan I2C
 
Referensi:
Dokumen
-The I2C-bus and how to use it, Philips semiconductor
-nCube Spacecraft Specification Document
-CDHS DESIGN FOR A UNIVERSITY NANO-SATELLITE,Gerard Aalbers
Link web
UoSAT OBDH Hardware Overview
g3575016 - Satellite data management (OBDH) in real-time multitasking operating system design _2293
Answers.com - Why does a computer need an operating system
On-Board Satellite Controller using ARM Based Microcontroller | DSP & Embedded Electronics
http://agfi.staff.ugm.ac.id/blog/index.php/2009/12/on-board-satellite-controller-using-arm-based-microcontroller/
READ MORE - Jenis Bus, Protokol Dan Operating System Pada OBDH Satellite Nano

Wednesday, April 20, 2011

Laporan Mikrokomputer 2 minggu 4

laporan mikrokomputer 2 tentang pemakaian prosedur dan pemakaian stack dalam efisiensi program dengan menggunakan emu 8086 dapat didownload 
disini
READ MORE - Laporan Mikrokomputer 2 minggu 4

Saturday, April 16, 2011

Konsep Membuat Gambar Bitmap per Pixel dengan Delphi 7


Gambar bitmap terdiri dari pixel-pixel. Dengan menggunakan delphi 7  dapat dibuat aplikasi yang dapat memanipulasi dan membuat gambar bitmap. Berikut adalah contoh sederhana mengenai konsep pembuatan gambar bitmap dengan memakai database array dan scanline per pixel.

     Form tampilan delphi yang terdiri dari TImage dengan ukuran 200x200 px dan 3 buah button untuk 
mengontrol bitmap yang akan ditampilkan pada TImage. 

Penjelasan source code

implementation

  CONST

    BitsPerPixel = 8;

{$R *.dfm}

Pada implementasi ditambahkan konstanta BitsPerPixel dengan nilai 8. Konstanta ini digunakan sebagai nilai standar untuk pixel yang akan dipakai dalam program, dengan nilai 8 berarti dalam 1 pixel terdapat 8bit data yang akan ditampilkan. Dipakai 8 bit untuk menghemat penulisan data dalam array.

Pada prosedur button

procedure TForm1.Button1Click(Sender: TObject);

 VAR            {variable yang akan dipakai}

   Bitmap:  TBitmap;

   i,j     :  INTEGER;

   Row   :  pByteArray; 

begin

  Bitmap := TBitmap.Create; { pembuatan bitmap}

  TRY

    WITH Bitmap DO

    BEGIN

      Width  := 200;       {setting ukuran bitmap}

      Height := 200;

      PixelFormat := pf1bit;    {format bitmap 1pixel}

    END;



    FOR j := 0 TO Bitmap.Height-1 DO {digunakan array untuk scan bit}

    BEGIN

      Row := pByteArray(Bitmap.Scanline[j]);    {scan baris sesuai array}

      FOR i := 0 TO (Bitmap.Width DIV BitsPerPixel)-1  DO  {pembagian baris untuk 1 pixel adalah 8 bit}

      BEGIN

        Row[i] := Random(256)   {nilai  baris array dapat diisi hexa $00 untuk hitam dan $FF untuk putih}

      END

    END;

    Image1.Picture.Graphic := Bitmap {memasukkan bitmap ke dalam TImage}

  FINALLY  {pengosongan bitmap}

    Bitmap.Free

  END

end;

dan hasil akhir programnya adalah
Dan untuk merubah isi gambar dapat dilakukan dengan merubah  isi array. Karena yang akan ditampilkan biasanya gamabr 2D maka sebaiknya digunakan array 2D. Misalnya array sederhana untuk menampilkan tanda panah dengan bitmap 32x32 pixel:
Arrow:  ARRAY[0..31, 0..3] OF BYTE =

{ 0}    ( ($00, $00, $80, $00),   {00000000 00000000 10000000 00000000}

{ 1}      ($00, $00, $C0, $00),   {00000000 00000000 11000000 00000000}

{ 2}      ($00, $00, $E0, $00),   {00000000 00000000 11100000 00000000}

{ 3}      ($00, $00, $F0, $00),   {00000000 00000000 11110000 00000000}

{ 4}      ($00, $00, $F8, $00),   {00000000 00000000 11111000 00000000}

{ 5}      ($00, $00, $FC, $00),   {00000000 00000000 11111100 00000000}

{ 6}      ($00, $00, $FE, $00),   {00000000 00000000 11111110 00000000}

{ 7}      ($00, $00, $FF, $00),   {00000000 00000000 11111111 00000000}

{ 8}      ($00, $00, $FF, $80),   {00000000 00000000 11111111 10000000}

{ 9}      ($FF, $FF, $FF, $C0),   {11111111 11111111 11111111 11000000}

{10}      ($FF, $FF, $FF, $E0),   {11111111 11111111 11111111 11100000}

{11}      ($FF, $FF, $FF, $F0),   {11111111 11111111 11111111 11110000}

{12}      ($FF, $FF, $FF, $F8),   {11111111 11111111 11111111 11111000}

{13}      ($FF, $FF, $FF, $FC),   {11111111 11111111 11111111 11111100}

{14}      ($FF, $FF, $FF, $FE),   {11111111 11111111 11111111 11111110}

{15}      ($FF, $FF, $FF, $FF),   {11111111 11111111 11111111 11111111}

{16}      ($FF, $FF, $FF, $FF),   {11111111 11111111 11111111 11111111}

{17}      ($FF, $FF, $FF, $FE),   {11111111 11111111 11111111 11111110}

{18}      ($FF, $FF, $FF, $FC),   {11111111 11111111 11111111 11111100}

{19}      ($FF, $FF, $FF, $F8),   {11111111 11111111 11111111 11111000}

{20}      ($FF, $FF, $FF, $F0),   {11111111 11111111 11111111 11110000}

{21}      ($FF, $FF, $FF, $E0),   {11111111 11111111 11111111 11100000}

{22}      ($FF, $FF, $FF, $C0),   {11111111 11111111 11111111 11000000}

{23}      ($00, $00, $FF, $80),   {00000000 00000000 11111111 10000000}

{24}      ($00, $00, $FF, $00),   {00000000 00000000 11111111 00000000}

{25}      ($00, $00, $FE, $00),   {00000000 00000000 11111110 00000000}

{26}      ($00, $00, $FC, $00),   {00000000 00000000 11111100 00000000}

{27}     ($00, $00, $F8, $00),    {00000000 00000000 11111000 00000000}

{28}      ($00, $00, $F0, $00),   {00000000 00000000 11110000 00000000}

{29}      ($00, $00, $E0, $00),   {00000000 00000000 11100000 00000000}

{30}      ($00, $00, $C0, $00),   {00000000 00000000 11000000 00000000}

{31}      ($00, $00, $80, $00));  {00000000 00000000 10000000 00000000}

Nilai yang dimasukkan ke dalam array adalah nilai hexa 8 bit  sedangkan yang akan ditampilkan pada bitmap adalah nilai binernya sehingga gambar terbentuk. Untuk pemanggilannya dapat dipakai dengan merubah row menjadi:
BEGIN

        Row[i] := arrow[j,i]

 END

dari penjelasan dapat disimpulkan pembuatan bitmap sederhana dengan 1 pixel scanning dapat dilakukan dengan memakai prinsip array.

program lengkapnya dapat didownload disini


READ MORE - Konsep Membuat Gambar Bitmap per Pixel dengan Delphi 7