Tugas Akhir: https://0fajarpurnama0.github.io/bachelor/2020/11/06/tugas-akhir-fajar-purnama
Kode Sumber: https://github.com/0fajarpurnama0/transmisi-citra-imote2-embedded-linux
Presentation of Understanding and Surpassing Dropbox Globecom 2015
Transmisi Citra JPEG2000 Linux Imote2
1. Transmisi Citra Pada Perangkat Jaringan
Sensor Visual Nirkabel Platform Imote2
Berbasis IEEE 802.15.4 ZigBee Embedded
Linux
Nama : Fajar Purnama
NIM : 1004405045
Jurusan : Teknik Elektro
Konsentrasi : Telekomunikasi
3. Flashback
Natha, F, S. 2012. "Performasi Platform Imote2 Menggunakan Standar
802.11 pada Jaringan Sensor Nirkabel," Laporan Tugas Akhir, Jurusan
Teknik Elektro., Universitas Udayana.
Wiasta, I, M. 2012. "Performasi Platform Imote2 pada Jaringan Sensor
Nirkabel," Laporan Tugas Akhir, Jurusan Teknik Elektro., Universitas
Udayana.
Purnama, F. Widyantara, I, M, O. Sastar, N, P. 14-15 November 2013.
"Implementasi Embedded Linux pada Jaringan Sensor Nirkabel Platform
Imote2," pada Prosiding Conference on Smart-Green Technology in Electrical
dan Information Systems., Bali., hal. 91-96. [online]. Tersedia:
http://ojs.unud.ac.id/index.php/prosidingcsgteis2013/article/download/7259/55
08.[Diakses: 27 Maret 2014].
Penelitian
Sebelumnya
Berhasil mengimplementasi embedded Linux pada Imote2
Dapat mentransmisikan data acak melalui IEEE 802.15.4 ZigBee
Dapat mentransmisikan data acak melalui IEEE 802.11 WLAN
Hasilnya lebih hemat daya listrik, memory, dan waktu
pada IEEE 802.15.4 ZigBee dibanding dengan IEEE
802.11 WLAN
Belum dapat mentransmisikan citra
4. Flashback
Tinjauan
Mutahir
Lanjutan Penelitian
● Transmisi citra.
Khas Penelitian
● Media transmisi IEEE 802.15.4 ZigBee.
● JSVN Platform Imote2.
● Percobaan/Experimental, berdasarkan pengukuran konsumsi daya listrik, memory, dan
waktu(bukan simulasi).
● Pengolahan citra berdasarkan standar JPEG2000.
Hal yang tidak pernah dilakukan
● Dilakukan pada sistem operasi embedded Linux.
● Mempublikasikan skema transmisi citra.
Scope Penelitian
JVSN
Imote2
Citra
Linux
Programming
Green Energy
6. Overview
Keperluan
Testbed
Program pengirim citra
“send_file_advance.c”
Program penerima citra
“recv_file_advance.c”
Program pemberi perintah
“send_command.c”
Program penerima perintah
“recv_command.c”
Program kompresi JPEG2000
“OpenJPEG 1.5.1”
Compiler
“arm-xscale-linux-gnu”
Server Node
Startuprecv_commandsend_command
Kirim citra
send_file_advancerecv_file_advance
7. Overview
ANALISIS
● Konsumsi daya listrik suatu proses transmisi
● Konsumsi tegangan listrik
● Konsumsi arus listrik
● Virtual memory yang dibutuhkan aplikasi
● Waktu untuk suatu proses transmisi
● PSNR Citra
VARIABEL (terhadap)
● Citra raw
● Transmisi citra raw
● Kompresi citra standar JPEG2000 rasio 1, 5, 10
● Kompresi citra terkompresi
● Transmisi citra terkompresi
● Jarak 5m, 10m, 15m
Kinerja
Alat ukur
● Konsumsi daya listrik :
multimeter digital
● Memory : log proses di
linux
● Waktu : stopwatch
● PSNR citra : aplikasi
image magick
8. Embedded System
Program
Program pengirim perintah
Program penerima perintah
Program pengirim
Program penerima
● Program pada penelitian sebelumnya dapat
mengirim karakter acak maksimal 28 byte dan
ditampilkan ke layar.
Modifikasi
● Fitur pengiriman bertahap setiap 28 byte untuk
mengirim data besar.
● Fitur membuka dan mengirim file dengan
mengcopy karakter dari file ke payload.
● Fitur penyimpanan karakter yang diterima, dari
payload ke dalam file.
● Fitur transmisi 2 arah, konfirmasi dan transmisi,
dan fitur resumeable, jika transmisi putus dapat
dilanjutkan.
Kompilasi program
Arm-xscale-linux-gnu-gcc -Wall
[syntax.c] -o [nama aplikasi]
9. Embedded System
Kompilasi
OpenJPEG
Compile OpenJPEGv1.5.1
● Compiler: arm-xscale-linux-gnu
● Dependencies tambahan (kompilasi ke directory
compiler dengan kompiler tersebut):
● lcms
● Libpng
● Zlib (--shared)
● Opsi kompilasi: --enable-jpwl –enable-debug
–disable-tiff
DEMO: CLICK
Export PATH=[lokasi bin compiler]/:
$PATH
Lcms
./configure prefix=[lokasi dir
compiler] --host=[nama compiler]
Zlib
prefix=[lokasi dir compiler]
CC=[compiler cc] CFLAGS=”-04”
./configure
Libpng
./configure prefix=[lokasi dir
compiler] --host=[nama compiler]
Make && make install
Embed ke Imote2
10. Testbed
Testbed
Startup
● Load radio driver ditaruh ke directory /etc/rc2.d/
S14loadtosmac
● Loop penerima perintah ditaruh ke directory
/etc/rc2.d/ dengan nama S15-inf-recv-command.
SCRIPT
Running
● Server mengirim perintah ke node.
● Kompresi img_to_j2k -i [citra.ppm] -r [rasio] -o
[citra.j2k].
● Transmisi
● Node menjalankan send_file_advance [citra]
● Server menjalankan recv_file_advance [citra]
Demo 1
Demo 2
16. Penutup
● Penelitian ini telah berhasil mengimplementasikan JPEG2000, dengan
mengkompilasi OpenJPEG-15.1 dengan arm-xscale-linux-gnu dengan
dependencies lcms2, libpng, dan zlib.
● Penelitian ini telah berhasil mentransmisikan citra antar embedded system
Imote2 Linux, dengan fitur transmisi bertahap setiap 28 byte, fitur transmisi
file yaitu pada pengirim memasukkan data dari file ke payload dan pada
penerima memasukkan payload yang diterima kedalam file baru.
● Walaupun tidak signifikan, semakin jauh jarak transmisi semakin besar
konsumsi daya listrik dan waktu transmisi.
● Penerapan kompresi JPEG2000 pada transmisi citra antar Imote2 Linux
sangat meringankan beban transmisi baik dari segi konsumsi daya listrik
dan waktu, maupun kualitas citra yang ditransmisikan.
Simpulan
17. Penutup
● Penelitian ini termasuk upaya agar Imote2 Linux dapat digunakan, baik
untuk penelitian maupun kebutuhan lain, dengan kata lain penelitian ini
merupakan kunci untuk membuka penelitian lebih lanjut, namun belum
semua kunci dibuat. Masih memungkinkan penelitian yang sejenis
contohnya dalam bidang user friendly agar dibuat versi Graphical User
Interface (GUI) untuk mengendalikan sistem ini.
Saran
18. Menentukan panjang byte dengan
menuju ke byte terakhir
Kembali ke byte pertama
Menentukan jumlah paketMenentukan jumlah paket (maks 28 byte / paket)
Jumlah byte paket terakhir
19. Proses transmisi
bertahap
Transmisi paket
terakhir
Paket 1st
– kedua terakhir
Menunggu konfirmasi jumlah paket yang telah diterima oleh penerima
Data konfirmasi diproses karena dimulai dari -3000,
Paket dikonversi ke byte
Penunjuk file dituju ke byte berikutnya(yang belum ditransmisi)
Membaca 28 byte dari file, ditaruh ke payload
Merupakan bagian kode untuk
resumeable
Menulis paket ke radio
Ukuran payload paket terakhir
Transmisi karakter tanda menunjukkan
berakhirnya transmisi
20. Jika file tidak ditemukan maka membuat file baru
Menuju ke byte akhir file dan memeriksa
jumlah byte yang telah diterima
Penerimaan byte secara tidak terbatas
21. Payload berisi informasi jumlah paket yang diterima
Menulis payload ke radio
Penerimaan paket
Jika diterima karakter ini maka penerimaan paket dihentikan (berhenti looping)
Jika group tidak sesuai paket diabaikan
Menulis payload yang diterima kedalam file
23. Merupakan komentar dimulai dengan “//” atau dimulai
dengan “/*” dan diakhiri dengan “*/”, menunjukkan penulis
program.
Merupakan “header” yang mendefinisikan fungsi-fungsi pada program.
Merupakan suatu definisi fungsi untuk menginisialisasikan variabel
transmisi pada radio.
Permulaan inti program.
Pengaturan pemakaian aplikasi ini.
Deklarasi tipe variabel.
Pembukaan radio, dimana TOSMAC_DEVICE = /dev/tosmac
Pembentukan message
Data
yang
dikirim
Input
user
Jumlah
byte
(28)
Pengiriman
Paket
dikirim
Paket
ditulis
kesini