Friday, October 21, 2011

Menambah dan Menghapus Record Database Access dengan Delphi 7

Dengan menggunakan delphi 7 dapat dibuat aplikasi yang digunakan untuk melakukan editing database access dengan ekstensi .mds, pada tutorial kali ini akan dibahas cara untuk menambahkan dan menghapus record yang terdapat dalam file database eksternal dengan ekstensi .mds.
berikut langkah-langkahnya:


langkah 1
- buat form yang terkoneksi dengan database dan memiliki tampilan sebagai berikut:


- pada gambar diatas dapat dilihat telah dibuat koneksi dengan database melalui adoconnection dan adotable, hasilnya dapat langsung dilihat pada dbgrid. untuk melakukan koneksi database dapat dilihat disini
-  dibuat juga 2 buah kotak edit untuk melakukan input nama dan input umur.
-  selanjutnya dibuat 2 buah tombol untuk melakukan insert data dan delete data pada table dan hasilnya dapat langsung dilihat pada dbgrid.

langkah 2
- double click pada tombol masukan dan masukkan kode program berikut pada prosedurnya
  • begin
  • if edit1.GetTextLen = 0 then
  •    showmessage('isi nama dahulu');
  • if edit2.GetTextLen = 0 then
  •    showmessage('isi umur dahulu');
  • if (edit1.GetTextLen >0) and (edit2.GetTextLen>0) then
  • begin
  •   with table1 do
  •   table1.Append;
  •   table1nama.Value:=edit1.text;
  •   table1umur.Value:=strtoint(edit2.Text);
  •   table1.Insert;
  •   table1.Next;
  •   edit1.text:='';
  •   edit2.Text:='';
  • end;
  • end;
- penjelasan 
tombol ini digunakan untuk melakukan insert data ke dalam database. listing program pada tombol ini akan dibahas perbagian.
untuk melakukan pengisian data diperlukan 2 buah data yang diinputkan yaitu data nama dan umur karena itu untuk menghindari terjadinya error maka pada awal dituliskan listing:
  • if edit1.GetTextLen = 0 then
  •    showmessage('isi nama dahulu');
 
dengan listing diatas maka akan dicek apabila kotak edit1 masih kosong maka akan menampilkan pesan. perintah GetTextLen adalah perintah untuk mengambil panjang nilai karakter pada edit1. jadi jika edit1 belum diisi maka nilai GetTextLen akan sama dengan 0. begitupula dengan listing:
  • if edit2.GetTextLen = 0 then
  •    showmessage('isi umur dahulu');
 
untuk mengecek isi edit2. lalu listing:
  • if (edit1.GetTextLen >0) and (edit2.GetTextLen>0) then
adalah untuk melakukan pengecekan apabila edit1 dan edit2 telah terisi maka program utama akan dijalankan. bila salah satu belum terisi maka proses insert data akan error. listing program utama:
  •   with table1 do
 akan melakukan proses dengan melibatkan table1(adotable)
  •    table1.Append;
perintah untuk mengaktifkan proses pengisian table sehingga table database dalam kondisi siap untuk diisi
  •   table1nama.Value:=edit1.text;
  •   table1umur.Value:=strtoint(edit2.Text);
field pada table 1 memiliki nama variabel tersendiri yang dapat diakses isinya, pada listing diatas adalah cara untuk melakukan pengisian field dari table tersebut. untuk nama dapat langsung diisikan karena tipe datanya sama yaitu string, sedangkan untuk umur perlu melakukan konversi dari string ke integer karena umur memiliki tipe data integer.
  •   table1.Insert;
  •   table1.Next;
data yang telah diisikan pada field sebelumnya belum sepenuhnya tersimpan pada database karena itu digunakan listing diatas. instruksi insert digunakan untuk melakukan insert data ke dalam table. dan instruksi next digunkan untuk mengganti posisi pointer sehingga dapat melakukan pengisian data selanjutnya.

  •   edit1.text:='';
  •   edit2.Text:='';
listing diatas adalah untuk mengosongkan isi dari edit1 dan edit2 setelah melakukan pengisian data sehingga siap untuk diisi data selanjutnya.


langkah 3
 - double click pada tombol hapus dan para prosedurnya isikan listing berikut:
  • begin
  • if table1.IsEmpty then
  •  showmessage('tabel kosong')
  • else
  • table1.Delete  ;
  • end;
-  tombol ini digunakan untuk melakukan penghapusan record pada table database. record yang dihapus adalah record yang ditunjuk oleh pointer(tanda segitiga hitam pada sebelah kiri dbgrid).
- pembahasan listing adalah sebagai berikut
  • if table1.IsEmpty then
  •  showmessage('tabel kosong')
listing ini digunakan untuk melakukan pengecekan kondisi table1 apakah kosong atau masih ada data di dalamnya, hal ini dilakukan untuk mencegah terjadinya error saat melakukan penghapusan tecord namun tidak ditemukan data. karena itu dengan listing ini maka saat tidak ada data di dalam table akan muncul pesan peringatan.
  • else
  • table1.Delete  ;
 listing selanjutnya digunakan untuk melakukan penghapusan record sesuai dengan posisi pointernya. cukup dengan menggunakan instruksi delete.


dengan demikian telah dapat dibuat apliaksi yang digunakan untuk mekaukan pengisian dan penghapusan data ke dalam table database dengan ekstensi .mds. 


semoga tutorial ini bermanfaat  :)




READ MORE - Menambah dan Menghapus Record Database Access dengan Delphi 7

Wednesday, October 19, 2011

Koneksi Database Acces dengan Delphi 7 melalui ADO

delphi dapat menggunakan database dari ms Access untuk dipakai sebagai penyimpanan dan pemrosesan data. dengan fasilitas ADO pada delphi 7, dapat dikoneksikan database ms access dengan ekstensi .mds berikut cara melakukan koneksinya:

langkah 1
- buka delphi 7

langkah 2
- pilih bagian ADO
- ambil ADOConnection dan ADOTable dan masukkan ke dalam form
- ADOConnection digunakan untuk melakukan koneksi dengan file database yang telah dibuat, untuk membuat file database dapat dilihat disini
- ADOTable digunakan untuk mengambil table yang ada di dalam database. pada ADOTable dapat disetting nilai field yang terdapat pada table database yang diambil. ADOTable terkoneksi dengan ADOConnection

langkah 3
- pilih bagian data access
- ambil datasource dan masukkan ke dalam form
- datasource digunakan untuk pengambilan data field yang terdapat di dalam table, datasource secara langsung terkoneksi dengan ADOTable

langkah 4
-doubleklik pada ADOConnection,  kan muncul dialog seperti pada gambar
-lalu klik build

langkah 5
- akan keluar dialog seperti gambar diatas
- pilih microsoft jet 4, microsoft jet 4 digunakan untuk mengenali file database dari ms Access
- kemudian pilih next

langkah 6
- pada bagian conection, pilih lokasi database(ekstensi .mdb) yang sebelumnya telah dibuat
- lakukan test connection untuk melihat database telah terkoneksi atau belum.
- apabila database memiliki password maka isikan pada bagian password dan username
- setelah selesai klik ok

langkah 7
- klik ADOConection, pada bagian properties (bagian kiri bawah) atur seperti pada gambar diatas
- conected diatur true agar file database terkoneksi dengan program yang dibuat
- name dapat diubah sesuai kebutuhan untuk mempermudah pembuatan program yang melibatkan ADOConnection, pada gambar diatas name diubah menjadi koneksi


langkah 8
- klik ADOTable, pada bagian properties (bagian kiri bawah) atur seperti pada gambar diatas
- active digunakan untuk mengaktifkan pengambilan tabel
- name digunakan untuk merubah nama ADOTabel yang digunakan dalam program, pada gambar diatas name diubah menjadi table1
- table direct digunakan untuk melakukan akses table pada database secara langsung
- tablename digunakan untuk melakukan pengambilan table pada file database, seringkali dalam sebuah database terdapat banyak table dan querry, karena itu untuk mengakses banyak table diperlukan banyak ADOTable karena sebuah ADOTable hanya dapat mengakses 1 table saja dalam 1 waktu, pada gambar diatas dipilih table dengan nama database pada file database yang telah diload oleh ADOConnection(ADOConnection harus dalam posisi Connected=true)

langkah 9
- klik datasource, pada bagian properties (bagian kiri bawah) atur seperti pada gambar diatas
- dataset digunakan untuk mengambil data field pada table yang diinginkan, table yang telah aktif dan telah dibuat adalah table dari ADOTable dengan nama table1 karena itu dataset dapat diisi dengna table1
- name juga dirubah untuk mempermudah penulisan program, pada gambar diubah menjadi source1
- setelah pengaturan selesai maka telah terjadi hubungan yaitu pengambilan file database oleh ADOConnection, lalu pengambilan Table Database oleh ADOTable, dan pengambilan data field oleh datasource dan koneksi antara database dan program dalam delphi telah selesai.
- selanjutnya database dapat digunakan sesuai kebutuhan
langkah selanjutnya adalah contoh untuk menampilkan database yang telah dihubungkan

langkah 10
- masuk ke bagian data control
- pilih dbgrid lalu tempatkan apda form seperti pada gambar diatas
- dbgrig adalah tampilan interface berupa table, namun karena belum diisi maka tampilan dbgrid masih kosong seperti pada gambar

langkah 11
- pada bagian properties dbgrid, datasource dapat diisi dengan source1 yaitu nilai dari field yang telah diambil dari database access
- setelah melakukan perubahan properties pada dbgrid maka tampilannya akan berubah dan menampilkan isi table database yang telah diambil seperti terlihat pada gambar
- apabila table tidak muncul pada dbgrid perlu decek kembali apakah ADOConnection sudah connected = true dan apakah ADOTable sudah active = true

langkah 12
- tampilan pada dbgrid merupakan tampilan yang masih kasar dan belum terlihat baik karena itu dapat dilakukan perubahan tampilan dari field dengan ADOTable
- doubleklik pada ADOTable, maka akan muncul form dialog
- selanjutnya klik kanan pada kotak dialog tersebut lau pilih Add all Fields


langkah 13
- setelah field muncul lau dapat dipilih field yang ingin diatur, dan pengaturannya dapat dilakukan melalui bagian properties di kiri bawah
- pada gambar dipilih field kode lalu pada properties diatur visible = false maka selanjutnya pada dbgrid terlihat bahwa field kode menghilang
-field kode sebenarnya amsih ada hanya tidak ditampilkan pada dbgrid karena telah diatur pada properties fieldnya, ini berguna untuk menyembunyikan field yang tidak perlu dilihat

langkah 14
- selanjutnya adalah field nama, pada bagian prperties terlihat size field ini 255 sehingga terlihat sangat panjang pada dbgrid karen itu dapat dipendekkan dengan merubah nilai displaywidth
- pada gambar display width dirubah menjadi 30 sehingga pada dbgrid field name memendek hanya 30 karakter
- tampilan pada dbgrid sudah terlihat sesuai dan baik


langkah 15
- form dapat diatur sesuai dengan keinginan
- program ini telah selesai untuk menampilkan database yang telah terkoneksi

langkah 16
- untuk melakukan save pada delphi 7 dapat dilakukan dengan save all untuk save form dan save project

demikian tutorial singkat mengenai koneksi database Access dengan delphi 7 serta cara unutk menampilkan isi database terkoneksi tersebut pada form delphi, untuk melakukan editing isi database dapat dilihat disini
semoga bermanfaat :)
READ MORE - Koneksi Database Acces dengan Delphi 7 melalui ADO

Membuat Database Delphi dengan Ms Access

Database merupakan kebutuhan utama untuk membuat software yang memerlukan penyimpanan data. terdapat berbagai macam cara penyimpanan data pada database salah satunya dengan memanfaatkan Ms Access yang terdapat pada bundle microsoft office. berikut adalah langkah sederhana untuk membuat table database untuk digunakan pada delphi 7 dengan memakai ms access 2007


langkah 1
 - buka ms access 2007

langkah 2
- buat blank database baru
- isikan nama file database baru apda bagian pojok kanan bawah lalu klik tombol create


langkah 3
- setelah masuk kedalam file database baru lalu klik design view pada bagian pojok kiri atas
- akan muncul kotak dialog untuk memberikan nama tabel, klik ok setelah memberi nama tabel

langkah 4
- pada design view dapat melakukan pembuatan dan pengaturan properties dari field yang akan ditempatkan pada table database.
- primary key pada design view tidak boleh memiliki data yang sama karena merupakan id dari record data karena itu primary key dapat diset menjadi auto number sehingga nilainya tidak akan pernah sama
-selanjutnya field lain dapat dibuat sesuai keinginan, disini dibuat field nama dengan tipe data text dan field umur dengan tipe data number
- setelah selesai membuat dan mengatur field lalu klik table view pada bagian pojok kiri atas dan akan muncul dialog unutk melakukan save field yang telah dibuat


langkah 5
-pada tampilan table view dapat langsung melakukan pengisian dan penghapusan data field pada tabel database yang telah dibuat(jika diperlukan data awal)


langkah 6
-agar tabel database dapat digunakan pada delphi 7 maka harus disimpan dengan format lama yaitu dengan ekstensi .mdb karena itu dilakukan save as database ke access 2000 database agar dapat kompatible dengan delphi 7 standar.

- selanjutnya database dapat digunakan untuk penyimpanan data pada delphi 7



untuk penyimpanan data dengan delphi 7dapat dilihat disini
semoga bermanfaat :)
READ MORE - Membuat Database Delphi dengan Ms Access

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