Anda di halaman 1dari 6

Laporan Demo Aplikasi Berbasis TinyOS

Zaki Indra Sukma


(12/330923/PA/14406)

Pendahuluan

Untuk dapat mengkompilasi aplikasi berbasis TinyOS, terlebih dahulu harus dilakukan instalasi
terhadap tool-tool yang diperlukan. Pada laporan ini akan dijelaskan mengenai langkah-langkah
percobaan yang telah dilakukan dalam instalasi TinyOS beserta toolset yang diperlukan, dilanjutkan dengan percobaan kompilasi terhadap source code aplikasi.
Percobaan dilaksanakan pada komputer dengan prosesor Intel Core i3-2310M 2.10GHz dengan
RAM 4 GB. Seharusnya perbedaan spesifikasi hardware tidak menjadi masalah pada percobaan
instalasi dan pengembangan aplikasi berbasis TinyOS. Kemudian sistem operasi yang digunakan
adalah Ubuntu 12.04 LTS. Berbeda dengan Ubuntu 14.04 LTS, pada Ubuntu 12.04 TinyOS beserta
toolset yang diperlukan belum tersedia di repositori, sehingga instalasi TinyOS dan development
toolnya lebih rumit dibandingkan dengan instalasi pada Ubuntu 14.04.

Instalasi dan TinyOS dan Toolset

Terlebih dahulu, dilakukan instalasi terhadap package-package yang diperlukan yang nantinya
diperlukan TinyOS serta diperlukan untuk instalasi TinyOS. Beberapa package yang diperlukan
yaitu :
build-essential
stow
automake
autoconf
libtool
libc6-dev
openssh-client
openssh-server
python3
python3-serial
python
python-serial
Untuk memasang beberapa package tersebut, pada terminal Ubuntu dapat digunakan perintah :
$
$
$
$

sudo apt-get install build-essential stow automake autoconf libtool libc6-dev


sudo apt-get install openssh-client openssh-server
sudo apt-get install python3 python3-serial python python-serial
exit

Java juga diperlukan dalam pengembangan aplikasi TinyOS. Apabila Java belum dipasang, maka
dapat dipasang dengan perintah pada terminal.
$ sudo apt-get install default-jdk

Setelah semua package tersebut berhasil dipasang, kemudian dapat dilanjutkan edngan memasang
beberapa toolset yang diperlukan untuk pengembangan aplikasi nantinya. Penulis menggunakan
toolset untuk mote msp430, yaitu :
mspdebug
msp430-46
msp430-binutils-46
msp430-gcc-46
msp430-gdb-46
msp430-libc-46
msp430mcu-46
Semua toolset tersebut terdapat pada sebuah repositori yang ada pada alamat http://tinyprod.
net/debian-dev/. Untuk memasang semua package tersebut, dilakukan beberapa langkah-langkah
sebagai berikut :
1. Memasang TinyProd Signing Key pada apt, dengan perintah pada terminal
$ wget -O - http://tinyprod.net/repos/debian/tinyprod.key | sudo apt-key add -

2. Membuat file tinyprod-debian.list dan menambahkan baris-baris alamat repositori TinyProd


pada file tersebut.
$ cd /etc/apt/sources.list.d
$ sudo echo "deb http://tinyprod.net/repos/debian wheezy main" >> tinyprod-debian.list
$ sudo echo "deb http://tinyprod.net/repos/debian msp430-46 main" >> tinyprod-debian.list

3. Lalu dilakukan update pada repositori dan memasang package-package tersebut. Masih tetap
menggunakan terminal.
$ sudo apt-get update
$ sudo apt-get install nesc tinyos-tools msp430-46 avr-tinyos

Setelah package-package yang dibutuhkan telah dipasang, kemudian mengunduh TinyOS dan
memasangnya pada direktori /opt. Langkah-langkah yang dilakukan yaitu :
1. Mengunduh tarball TinyOS dari repositori Github, dengan menggunakan terminal diketikkan
perintah :
$ wget http://github.com/tinyos/tinyos-release/archive/tinyos-2_1_2.tar.gz

2. Tarball TinyOS tersebut diekstrak dengan perintah :


$ tar xf tinyos-2_1_2.tar.gz

3. Hasil ekstrak dari paket tarball tersebut akan berupa folder dengan nama tinyos-release-tinyos-2 1 2.
Nama folder tersebut diganti menjadi tinyos-main dan dipindahkan direktori /opt.
$ sudo mv tinyos-release-tinyos-2_1_2 \opt\tinyos-main

Beberapa environment variable perlu ditambahkan pada shell Ubuntu agar TinyOS dan toolsetnya
dapat dijalankan. Penambahan environment variable dilakukan pada file .bashrc yang ada pada
direktori root di Ubuntu. Text editor digunakan untuk menambahkan beberapa baris environment
variable. Diberikan beberapa perintah pada terminal Ubuntu.
$ sudo gedit ~/.bashrc

Setelah file .bashrc dibuka dengan text editor, ditambahkan beberapa baris berikut dan simpan.

1
2
3
4
5
6
7

# Start TinyOS
export TOSROOT=/opt/tinyos-main
export TOSDIR=$TOSROOT/tos
export CLASSPATH=$TOSROOT/support/sdk/java/tinyos.jar:.$CLASSPATH
export MAKERULES=$TOSROOT/support/make/Makerules
export PATH=/usr/lib/gcc/msp430/4.6.3:$PATH
# End TinyOS
Instalasi TinyOS dan dan toolset selesai.

Membuat Source Code Aplikasi

Telah diberikan source code aplikasi yang tidak lengkap sebagai berikut :

1
2
3
4
5
6
7

*Movement.nc*
interface Move {
command error_t
command error_t
command error_t
command error_t
}

left(uint8_t distance);
right(uint8_t distance);
forward(uint8_t distance);
backward(uint8_t distance);

8
9
10
11
12
13
14
15
16
17
18
19

*RobotC.nc*
module RobotC {
provides interface Move;
uses interface Boot;
} implementation {
// pos[0] = posisi x, pos[1] = posisi y
// ke kiri = bergerak di sumbu x ke arah negatif
// ke kanan = bergerak di sumbu x ke arah positif
// ke depan = bergerak di sumbu y ke arah positif
// ke belakang = bergerak di sumbu y ke arah negatif
uint8_t pos[2] = {0, 0};

20
21
22
23

command error_t left(uint8_t distance) {


pos[0] -= distance; return SUCCESS;
}

24
25
26
27

command error_t right(uint8_t distance) {


pos[0] += distance; return SUCCESS;
}
3

28

command error_t forward(uint8_t distance) {


pos[1] -= dist; return SUCCESS;
}

29
30
31
32

command error_t backward(uint8_t distance) {


pos[0] -= dist; return SUCCESS;
}

33
34
35
36

37
38
39
40
41
42
43
44
45
46
47
48

*ControllerC.nc*
module ControllerC {
uses interface Move;
} implementation {
event void Boot.booted() {
// lengkapi kodenya untuk menggerakkan robot ke:
// kiri sejauh 8, kanan sejauh 8, kanan sejauh 8
// kiri sejauh 8, maju sejauh 2, mundur sejauh 4
// maju sejauh 2
}
}
Source code tersebut diperbaiki dan dipecah menjadi 3 file, yaitu dengan nama Movement.nc,
RobotC.nc, dan ControllerC.nc. Dua file yang berakhiran huruc C tersebut masing-masing
adalah sebuah modul. Lalu dibuat sebuah file utama yang berisi wiring antar modul-modul
tersebut dan diberi nama RobotAppC.nc. Kemudian dibuat sebuah file Makefile yang digunakan untuk kompilasi source code. Semua file tersebut diletakkan dalam sebuah direktori baru
di \opt\tinyos-main\apps. Untuk membuat direktori baru dan membuat semua file tersebut,
dilakukan beberapa langkah sebagai berikut.
1. Menggunakan terminal Ubuntu, untuk membuat direktori baru tersebut dimasukkkan perintah :
$ cd $TOSROOT/apps
$ sudo mkdir Robot
$ cd Robot

2. Beberapa file yang berisi source code aplikasi tersebut kemudian dibuat dengan menggunakan
text editor.
$ sudo gedit Movement.nc RobotC.nc ControllerC.nc RobotAppC.nc Makefile

Dimasukkan source code ke masing-masing file tersebut.


File Movement.nc

1
2
3
4
5
6

interface Movement {
command error_t
command error_t
command error_t
command error_t
}

left(uint8_t distance);
right(uint8_t distance);
forward(uint8_t distance);
backward(uint8_t distance);

File RobotC.nc
4

1
2
3
4
5
6
7
8
9

module RobotC {
provides interface Movement;
} implementation {
// pos[0] = posisi x, pos[1] = posisi y
// ke kiri = bergerak di sumbu x ke arah negatif
// ke kanan = bergerak di sumbu x ke arah positif
// ke depan = bergerak di sumbu y ke arah positif
// ke belakang = bergerak di sumbu y ke arah negatif
uint8_t pos[2] = {0, 0};

10

command error_t Movement.left(uint8_t distance) {


pos[0] -= distance; return SUCCESS;
}

11
12
13
14

command error_t Movement.right(uint8_t distance) {


pos[0] += distance; return SUCCESS;
}

15
16
17
18

command error_t Movement.forward(uint8_t distance) {


pos[1] += distance; return SUCCESS;
}

19
20
21
22

command error_t Movement.backward(uint8_t distance) {


pos[1] -= distance; return SUCCESS;
}

23
24
25
26

}
File Controller.nc

1
2
3
4
5
6
7
8
9
10
11
12
13
14

module ControllerC {
uses interface Movement;
uses interface Boot;
} implementation {
event void Boot.booted() {
call Movement.left(8);
call Movement.right(8);
call Movement.right(8);
call Movement.left(8);
call Movement.forward(2);
call Movement.backward(4);
call Movement.forward(2);
}
}
File RobotAppC.nc

configuration RobotAppC {

2
3

} implementation {
5

components MainC, RobotC, ControllerC;


ControllerC.Boot -> MainC.Boot;
ControllerC.Movement -> RobotC.Movement;

4
5
6
7

}
File Makefile

1
2

COMPONENT=RobotAppC
include $(MAKERULES)

Semua file disimpan, kemudian bisa dilanjutkan dengan kompilasi source code aplikasi tersebut.

Kompilasi Source Code Aplikasi

Source code yang telah dibuat dan disimpan dalam direktori \opt\tinyos-main\apps \Robot
dikompilasi. Tetap menggunakan terminal Ubuntu lanjutan langkah sebelumnya, digunakan perintah make msp430g2553 untuk mengkompilasi source code yang ditujukan untuk platform MSP430G2553.
$ cd $TOSROOT/apps/Robot
$ make msp430g2553

Apabila kompilasi berhasil, maka akan ditampilkan hasil kompilasi yang menyebutkan besar ROM
dan RAM yang dibutuhkan oleh aplikasi tersebut. Dari gambar 1 diketahui bahwa aplikasi RobotAppC menghabiskan ROM sebesar 580 bytes dan RAM sebesar 8 bytes.

Anda mungkin juga menyukai