• Tidak ada hasil yang ditemukan

Kode Program Untuk Perangkat Arduino

N/A
N/A
Protected

Academic year: 2019

Membagikan "Kode Program Untuk Perangkat Arduino"

Copied!
8
0
0

Teks penuh

(1)

Lampiran 1

Kode Program Untuk Perangkat Arduino

#include <Wire.h>

#include <Adafruit_BMP085.h>

Adafruit_BMP085 tinggi; // create a BMP085 object char input;

void setup() {

Serial.begin(9600); Wire.begin(); tinggi.begin(); }

void loop() {

input = Serial.read(); switch(input) {

case 'R': // R is sent from Scilab to ask whether Radio is ready or not Serial.println("Ready");

break;

case 'P': // P is sent from Scilab to command Radio start sending data Serial.println(tinggi.readAltitude());

(2)

Lampiran 2

Kode Program Untuk Scilab

/////////////////////////////////////////////////////////////////////////////// // CREATE A WINDOW AND ITS COMPONENTS /////////////////////////////////////////////////////////////////////////////// clear;

gui = createWindow(); gui.axes_size = [770480]; gui.figure_name = "Skripsi"; gui.backgroundcolor = [111]; gui.figure_position = [32080]; gui.resize = "off";

handles.gui = 1;

/////////////////////////////////////////////////////////////////////////////// // Connect Button

pbConnect = uicontrol(gui, 'Style', 'pushbutton', 'Units', 'points', ... 'position', [202807020], 'String', 'Connect', ... 'HorizontalAlignment', 'center', 'Callback', 'connect');

// Disconnect Button

pbDisconnect = uicontrol(gui, 'Style', 'pushbutton', 'Units', 'points', ... 'position', [202407020], 'String', 'Disconnect', ... 'HorizontalAlignment', 'center', 'Callback', 'disconnect');

// Plotting Button

pbPlot = uicontrol(gui, 'Style', 'pushbutton', 'Units', 'points', ... 'position', [202007020], 'String', 'Plot', ...

'HorizontalAlignment', 'center', 'Callback', 'dataPlot');

// Stop the Plotting Button

pbStop = uicontrol(gui, 'Style', 'pushbutton', 'Units', 'points', ... 'position', [201607020], 'String', 'Stop Plotting', ... 'HorizontalAlignment', 'center', 'Callback', 'stop');

// Load Data Button

pbCallLoad = uicontrol(gui, 'Style', 'pushbutton', 'Units', 'points', ... 'position', [201207020], 'String', 'Load', ...

'HorizontalAlignment', 'center', 'Callback', 'callDataLoad');

// Save and Exit Button

pbCallSaveandExit = uicontrol(gui, 'Style', 'pushbutton', 'Units', 'points', ... 'position', [03487020], 'String', 'Save & Exit', ...

'HorizontalAlignment', 'center', ... 'Callback', 'callSaveExit');

/////////////////////////////////////////////////////////////////////////////// // A place for Axes

handles.frame4axes = uicontrol(gui, 'Style', 'frame', 'Position', [150120450360], ... 'HorizontalAlignment', 'center', ...

'Background', [111]);

(3)

// A place for Status Text

handles.frame4status = uicontrol(gui, 'Relief', 'solid', ... 'Style', 'frame', 'Position', [403069580], ... 'HorizontalAlignment', 'center', ...

'Background', [111]);

// Title for the place of Status Text

handles.frame4statusTitle = uicontrol(gui, 'Style', 'text', 'String', 'Status', ... 'Position', [601005020], ...

'HorizontalAlignment', 'center', ... 'Background', [111]);

// Status Text

handles.txtStatus = uicontrol(gui,'Style', 'text', 'Position', [504067560], ... 'FontSize', [16], 'FontWeight', 'bold', ...

'HorizontalAlignment', 'left', ... 'Background', [111]); set(handles.txtStatus,"String","Welcome");

/////////////////////////////////////////////////////////////////////////////// // A place for Height Variable each second

parameter = [" ""Height"];

awalTabel1 = ["detik 1""detik 2""detik 3""detik 4""detik 5""detik 6", ... "detik 7""detik 8""detik 9""detik 10"]';

awalTabel2 = [" "" "" "" "" "" "" "" "" "" "]'; table = [parameter; [ awalTabel1 awalTabel2 ]];

handles.tableTinggi = uicontrol(gui, 'Style', 'table', 'String', table, ... 'Position', [600163150187]);

/////////////////////////////////////////////////////////////////////////////// // What is the height now?

handles.txtHeight = uicontrol(gui,'Style', 'text', 'Position', [6004206020], ... 'FontSize', [12], 'FontWeight', 'bold', ...

'HorizontalAlignment', 'left', ... 'Background', [111]); set(handles.txtHeight,"String","Height :");

handles.txtHeightVar = uicontrol(gui,'Style', 'text', 'Position', [6604205020], ... 'FontSize', [12], 'FontWeight', 'bold', ...

'HorizontalAlignment', 'center', ... 'Background', [111]);

handles.txtMeter = uicontrol(gui,'Style', 'text', 'Position', [7104204020], ... 'FontSize', [12], 'FontWeight', 'bold', ...

'HorizontalAlignment', 'right', ... 'Background', [111]);

set(handles.txtMeter,"String","Meter");

/////////////////////////////////////////////////////////////////////////////// // Creating an Axes

handles.axes1 = newaxes(handles.frame4axes);

// Axes1 title and axis

handles.axes1.title.text = "Height"; handles.axes1.title.font_size = 4;

(4)

// Axes1 X label

handles.axes1.x_label.text = "Time (Second)"; handles.axes1.x_label.font_size = 2;

// Axes1 Y label

handles.axes1.y_label.text = "Height (Meter)"; handles.axes1.y_label.font_size = 2;

// Initialization

global bthpanjangtinggiGUIstatusPLOTstatusSAVEstatusFilePathk

GUIstatus = 0; PLOTstatus = 0; SAVEstatus = 0; k = 0;

panjang = 41; // terdapat 41 sampel data ketinggian

b = zeros(1,panjang); // membuat tempat 1 x 41 untuk data ketinggian tinggi = zeros(1,10); // variabel untuk data ketinggian per detik t = 0:0.25:10; // banyaknya waktu sampel

h = 150; // tinggi pada axis Y

FilePath = 'C:\Users\ASUS\Desktop\DATA\Scilab files\SOD files\';

/////////////////////////////////////////////////////////////////////////////// // CALLBACK FOR EACH BUTTON

///////////////////////////////////////////////////////////////////////////////

// Connect to Arduino through Radio function connect

global radioGUIstatus

// Koneksi antara penerima dan pengirim belum terhubung (GUIstatus = 0) if GUIstatus == 0then

radio = openserial(6, "9600,n,8,1"); sleep(2000);

writeserial(radio,"R"); sleep(1000);

set(handles.txtStatus,"String",readserial(radio)); readserial(radio);

// Menutup koneksi jika penerima dan pengirim masih terhubung (GUIstatus = 1) if GUIstatus == 1then

closeserial(radio);

(5)

function dataPlot

global abtzkpanjangheighttinggiradioGUIstatusPLOTstatusSAVEstatus

awalTabel2 = [" "" "" "" "" "" "" "" "" "" "]'; table = [parameter; [ awalTabel1 awalTabel2 ]];

set(handles.tableTinggi,"String",table); // Menghapus tabel delete(handles.axes1.children); // Menghapus grafik

// Membuat tombol selain tombol "Stop Plotting" dalam keadaan OFF set(pbConnect,'Enable','Off');

set(handles.txtStatus,"String","Processing and Plotting Data..."); for z = 1:panjang set(handles.tableTinggi,"String",table);

(6)

// Interrupt and stop the plot function stop

global kradioPLOTstatusSAVEstatus

global FilePathFileNameH1FileNameH0FullPathguiLoad

set(FileNameH1,"String","H1 File Name...");

FileNameH0 = uicontrol(guiLoad,'Style', 'edit', ... 'Position', [31612320], ...

'FontSize', [10], 'HorizontalAlignment', 'left'); set(FileNameH0,"String","H0 File Name...");

global SAVEstatusFilePathFileNameH1FileNameH0FullPathguiLoad

SAVEstatus = 0;

delete(handles.axes1.children);

//Memuat data b, t, dan tinggi untuk H0 dengan dari file LoadFileNameH0 LoadFileNameH0 = get(FileNameH0,"String");

FullPath = strcat([FilePath,LoadFileNameH0]);

// Memuat data b, t, dan tinggi FileName dengan path FullPath load(FullPath,'b','t','tinggi');

H0Data = b; H0 = tinggi';

//Memuat data b, t, dan tinggi untuk H1 dengan dari file LoadFileNameH1 LoadFileNameH1 = get(FileNameH1,"String");

FullPath = strcat([FilePath,LoadFileNameH1]);

(7)

load(FullPath,'b','t','tinggi');

table = [parameter; [ awalTabel1 awalTabel2 awalTabel3 ]]; set(handles.tableTinggi,"String",table);

set(handles.txtStatus,"String","Loaded."); close(guiLoad);

endfunction

// Save data and exit function callSaveExit

global SAVEstatusFileNameguiSave

if SAVEstatus == 1then

global bttinggiFilePathFileNameFullPathguiSave

// Menyimpan variabel b, t, dan tinggi ke FullPath // Disimpan dengan nama SaveFileName

SaveFileName = get(FileName,"String"); FullPath = strcat([FilePath,SaveFileName]); save(FullPath,'b','t','tinggi');

close(guiSave);

set(handles.txtStatus,"String","Saving..."); sleep(1000);

(8)

Referensi

Dokumen terkait

Hal ini sesuai dengan penelitian Pono (2017), yang menyatakan bahwa pada keadaan unsur N yang rendah menyebabkan keadaan tanah tidak mampu menyediakan unsur hara yang

Pada parameter tinggi tanaman umur 45 hari setelah tanam, pemberian jenis pupuk organik berpengaruh nyata, hal ini diduga bahwa pupuk organik yang diberikan sudah

bahwa perusahaan tersebut mempunyai nilai laba rugi selisih kurs paling rendah dibanding perusahaan lain sedangkan nilai maksimum LN_ML (Manajemen Laba pada Pos Laba

;ari pembahasan makalah di atas, maka dapat kami simpulkan baha Pengolahan informasi mengandung pengertian tentang bagaimana individu mempersepsi, mengorganisasi, dan

Menimbang : bahwa untuk melaksanakan ketentuan Pasal 29 Peraturan Bupati Tangerang Nomor 30 Tahun 2019 tentang Pembentukan Unit Pelaksana Teknis Daerah Pada Dinas dan

Kotak pertama sebagai tempat supir, berarti kemungkinan ada 2 orang yang bisa duduk di situ Kotak pertama sebagai tempat supir, berarti kemungkinan ada 2 orang yang bisa duduk di

Kurikulum di Universitas ‘Aisyiyah disusun berdasarkan Peraturan Presiden Republik Indonesia No 8 tahun 2012 tentang KKNI, Peraturan Menteri Pendidikan dan Kebudayaan RI No

Nilai koefisien determinasi sebesar 0,964 yang menunjukkan bahwa 96,4 persen variasi (naik turunnya) jumlah kredit konsumtif pada bank umum di Bali dijelaskan oleh variasi