PEMROGRAMAN BERBASIS GUI UNTUK PEMBELAJARAN ARDUINO PADA KIT PRAKTIKUM MIKROKONTROLER GUI Programming for Arduino Learning on Microcontroller Lab Kit Mela Mustika1, Sugondo Hadiyoso, ST., MT.2, Akhmad Alfaruq, ST.3 1,2
Prodi D3 Teknik Telekomunikasi, Fakultas Ilmu Terapan – Telkom University Jalan. Telekomunikasi Dayeuhkolot Bandung 40257 Indonesia
1
[email protected], 2sgo.tass.telkomuniversity.ac.id,
[email protected]
ABSTRAK Pemahaman mengenai cara kerja mikrokontroler dalam praktikum matakuliah Aplikasi Mikrokontroler pada program studi D3 Teknik Telekomunikasi sangatlah penting. Pengenalan alat mikrokontroler, fungsinya, serta cara penggunaan alat tersebut merupakan hal yang sangat penting untuk diketahui oleh setiap mahasiswa, Mahasiswa diharapkan mampu mengaplikasikan cara kerja dari mikrokontroler Hal tersebut akan menjadi kendala bagi mahasiswa apabila tidak tersediannya peralatan praktikum atau kurangnya peralatan - peralatan pendukung didalamnya. Para mahasiswa akan kesulitan untuk mengerti dan memahami pengaplikasian dalam mata kuliah pengaplikasian mikrokontroller, dari segi praktikum dan pemrograman dasarnya. Untuk mengatasi masalah tersebut maka pada proyek akhir ini dibuat sebuah GUI untuk pemrograman arduino pada kit modul praktikum mikrokontroler. Program yang ada pada GUI tersebut akan dibuat berdasarkan kit praktikum yang telah dibuat sebelumnya . Pada Proyek Akhir ini diharapkan program yang akan dibuat mempunyai antarmuka yang mudah sehingga dapat mempermudah mahasiswa dalam pemahaman mikrokontroler. Kata kunci: GUI,Mikrokontroler, kit, Arduino
ABSTRACT An understanding the works of the microcontroller in Microcontroller Applications practicum course at Diploma of Telecommunications Engineering study program is essential. Introduction of microcontroller tools, functions, and how to use these tools is very important to be known by every student, students are expected to apply the workings of the microcontroller It will be an obstacle for students if they are not tersediannya lab equipment or a lack of equipment - ancillary equipment therein. The students will find it hard to understand and comprehend the application in the course of the application microcontroller, in terms of practical and essentially programming. To overcome these problems, in this final project created a GUI for programming the kit arduino microcontroller lab module. Existing programs in the GUI will be made based on lab kits that have been made previously. At this Final Project is expected to have a program that will be made easy interface so as to facilitate students in understanding the microcontroller. Keywords: GUI, Microcontroller, kit, Arduino
1.
PENDAHULUAN 1.1 Latar Belakang Pengaplikasian mikrokontroler merupakan salah satu mata kuliah dasar yang harus dikuasai bagi mahasiswa khususnya jurusan Teknik Telekomunukasi. Bagi mahasiswa program studi D3, meraka dituntut untuk lebih mengerti dan memahami pengaplikasian dalam mata kuliah pengaplikasian mikrokontroler. Hal tersebut akan menjadi kendala bagi mahasiswa apabila sudah tersediannya peralatan praktikum tetapi para mahasiswa kesulitan dalam pemahaman pemorgraman dari kit praktikum tersebut . Hal inilah yang
mendorong untuk merancang sebuah GUI untuk pembelajaran yang digunakan untuk pemrograman dari kit praktikum yang berisikan peralatan mikrokontroler. 1.2 Tujuan dan Manfaat 1.2.1 Tujuan dari penyusunan proyek akhir ini, adalah: a. Merancang sebuah aplikasi berbasis GUI untuk pembelajaran arduino pada kit praktikum mikrokontroler . b . Merancang sebuah aplikasi GUI untuk pembelajaran arduino yang mudah dimengerti . 1.2.2 Manfaat dari penyusunan proyek akhir ini, adalah: a. Dapat mempermudah pemrograman arduino pada kit praktikum. b. Memberi solusi alternatif baru untuk aplikasi pembantu praktikum 1.3 Batasan Masalah Adapun batasan masalah dari proyek akhir ini: 1. Program arduino yang akan dibuat hanya : blink , display LCD, display dengan seven segment , pembacaan suhu , pembacaan intensitas cahaya dengan sensor LDR , running LED , pembacaan suhu, interupsi , program untuk stepper ,program untuk servo, program untuk pembacaan sensor infrared, dan keypad dengan LCD. 2. Menggunakan bahasa pemrograman C++ dan menggunakan Qt Creator 3.3.1 (opensource) . . 3. Tidak membahas tentang hardware dari kit mirkokontroler. 4. Menggunakan OS windows 7 . 1.4 Rumusan Masalah Berdasarkan uraian latar belakang diatas, maka dapat dirumuskan beberapa masalah yang terjadi, yaitu: a.Bagaimana kit praktikum yang akan dibuat GUI b.Bagaimana cara membuat GUI dengan pemrograman arduino c.Bagaimana cara mengoperasikan GUI untuk kit praktikum mikrokontroler. d.Bagaimana cara mengunggah program dengan GUI yang telah dibuat 1.5 Metodologi Penelitian ini dilakukan dengan metode-metode sebagai berikut: 1. Studi Kepustakaan Dengan mempelajari berbagai program untuk arduino . Proses pembelajaran materi dilakukan dengan kajian berbagai sumber pustaka baik berupa buku, jurnal ilmiah, dan media elektronik. 2. Perancangan Perancangan dilakukan setelah kebutuhan sistem didapatkan n, kemudian dilanjutkan dengan tahapan implementasi. 3. Implementasi Implementasi sistem dilakukan dengan mengacu kepada perancangan sistem yang sudah dibuat. 4. Pengujian Pengujian sistem dilakukan untuk mengetahui kualitas sistem secara keseluruhan apakah sistem dapat bekerja sesuai dengan spesifikasi dari kebutuhan yang mendasari perancangan sistem atau tidak. 1.6 Sistematika Penulisan Laporan disusun dalam lima bab dengan rincian sebagai berikut : Bab I Pendahuluan Pada bab ini dibahas latar belakang penelitian, tujuan penelitian, perumusan masalah, batasan masalah, metodologi penelitian, dan sistematika penulisan. Bab II Dasar Teori Pada bab ini dibahas teori yang mendukung dan mendasari penulisan proyek akhir ini; GUI, Framework,Pemrograman C++ dan Qt Creator sdk Bab III Perancangan Sistem Pada bab ini dibahas tentang langkah – langkah pembuatan tiap-tiap halaman dari aplikasi ini Bab IV Realisasi Dan Pengujian Pada bab ini dibahas hasil pengujian tiap-tiap program yang digunakan. Bab V Kesimpulan Dan Saran Bab ini berisi kesimpulan dan saran untuk pengembangan lebih lanjut. 2. Dasar Teori 2.1 GUI (Graphical User Interface) Graphical User Interface (GUI) adalah suatu sistem interface pada komputer yang memberikan atau memfasilitasi tampilan pilihan pada layar, yang biasanya berbentuk ikon (simbol gambar) atau menu (daftar karakter alfanumerik) sebagai sarana yang dapat digunakan pengguna untuk memberikan perintah melalui divais input.
2.2 Bahasa Pemrograman C++ C++ adalah bahasa pemrograman komputer yang di buat oleh Evano Christian Posumah (Bjarne Stroustrup) merupakan perkembangan dari bahasa C dikembangkan di Bell Labs (Dennis Ritchie) pada awal tahun 1970-an, Bahasa itu diturunkan dari bahasa sebelumnya, yaitu B, Pada awalnya, bahasa tersebut dirancang sebagai bahasa pemrograman yang dijalankan pada sistem Unix, Pada perkembangannya, versi ANSI (American National Standart Institute) Bahasa pemrograman C menjadi versi dominan, Meskipun versi tersebut sekarang jarang dipakai dalam pengembangan sistem dan jaringan maupun untuk sistem embedded, Bjarne Stroustrup pada Bel labs pertama kali mengembangkan C++ pada awal 1980-an. Untuk mendukung fitur-fitur pada C++, dibangun efisiensi dan sistem support untuk pemrograman tingkat rendah (low level coding). [1] Pada C++ ditambahkan konsep-konsep baru seperti class dengan sifat-sifatnya seperti inheritance dan overloading.[butuh rujukan] Salah satu perbedaan yang paling mendasar dengan bahasa C adalah dukungan terhadap konsep pemrograman berorientasi objek (Object Oriented Programming) [2] . C++ dapat di compile dengan software seperti : Acorn C/C++ , Borland C++, C++/CX, C++Builder, Cfront, Clang, CodeWarrior, Comeau C/C++, ConceptGCC, Digital Mars, GNU Compiler Collection, HP aC++ dan lain-lain. 2.3 Framework Framework adalah kerangka kerja. Framework juga dapat diartikan sebagai kumpulan script (terutama class dan function) yang dapat membantu developer/programmer dalam menangani berbagai masalah-masalah dalam pemrograman seperti koneksi ke database, pemanggilan variabel, file,dll sehingga developer lebih fokus dan lebih cepat membangun aplikasi. Bisa juga dikatakan framework adalah komponen pemrorgaman yang siap re-use kapan saja, sehingga programmer tidak harus membuat script yang sama untuk tugas yang sama . 2.4 Qt Creator 3.3.1 (opensource) Qt Framework sudah sejak lama digunakan untuk mengembangkan aplikasi lintas platform. Karena sifarnya yang lintas platform anda dapat membuat aplikasi yang berjalan diatas platform Windows, Linux, dan Mac. Dengan Qt kode yang sama dapat dijalankan pada target platform yang berbeda. Qt Framework sudah didesain sedemikian rupa sehingga mudah digunakan oleh developer tanpa harus mengorbankan fleksibilitas dan efisiensi. Qt mendukung pengembangan dengan dua bahasa utama yaitu Object Oriented C++ dan Java. Qt Framework memiliki koleksi class library yang lengkap dan konsisten didukung oleh dokumentasi yang komprehensif. Class library tersebut berisi semua function yang dibutuhkan untuk mengembangkan aplikasi. Qt Framework membantu mengurangi pekerjaan developer dengan meningkatkan produktifitas penulisan kode . Beberapa aplikasi ternama yang dikembangkan dengan menggunakan Qt Framework diantaranya Google Earth map application, Skype telephony application, VLC media player, KDE desktop environment, dan masih banyak lagi. Qt juga digunakan pada berbagai perangkat elektronik dan aplikasi industri, sebagai contoh adalah mobile transportation system yang dibuat oleh Volvo, MeVisLab digital imaging platform, dan RealFlow visual effect application pada industri dunia hiburan. Untuk platform mobile Qt mendukung beberapa sistem operasi diantaranya Symbian S60, Maemo,Symbian3, dan MeeGo. Sedangkan untuk platform desktop Qt mendukung sistem operasi Windows,Linux, dan Mac. 3. Perancangan Sistem 3.1 Kit Mikrokontroler Berikut adalah kit mikrokontroler yang akan dibuat GUI .
Gambar 3.1 Kit Praktikum Mikrokontroler berbasis Arduino Pada kit praktikum diatas,terdiri dari beberapa masukan seperti sensor infrared,sensor suhu, keypad, RTC(Real Time Clock) , dan pushbutton serta mempunyai beberarapa keluaran seperti LCD,motor servo,motor stepper,LED, dan seven segment .
3.2 Cara Kerja Sistem Secara Umum Berikut ini merupakan gambaran kerja sistem secara umum : Ketika pertama kali user masuk kedalam aplikasi,user akan masuk ke halaman awal, kemudian user akan memilih program yang user kehendaki . Setelah memasuki program yang user pilih, user mengisi parameter yang dibutuhkan program kemudiakn melihat program dalam bentuk code . Setelah melihat program, user memilih upload untuk mengunggah code ke arduino . Kegiatan upload ini menggunakan arduino debug dengan parameter “--upload” . Apabila berhasil, arduino akan menjalankan perintah dari program tersebut 3.3 Spesifikasi Sistem Pada perancangan aplikasi berbasi GUI untuk pemrograman pada kit praktikum mikrokontroler memiliki spesifikasi sebagai berikut : 3.3.1.Qt Creator 3.3.1 (opensource) Qt Creator merupakan sebuah software yang digunakan untuk membuat dan mengembangkan sebuah perangkat lunak atau aplikasi desktop . Software ini digunakan untuk pembuatan aplikasi berbasis GUI untuk pemrograman arduino pada kit praktikum mikrokontroler . 3.3.2. C++ C++ adalah bahasa pemrograman yang digunakan untuk membuat aplikasi GUI ini 3.3.3. Arduino 1.6.0 Arduino IDE adalah aplikasi yang digunakan untuk men-debug program dari GUI ke arduino . 3.4 Perancangan dan Realisasi Aplikasi Pada sub-bab ini dijelaskan langkah-langkah proses perancangan aplikasi GUI untuk pemrograman arduino pada kit praktikum mikrokontroler sehingga sistem dapat direalisasikan. Perancangan sistem ini dimulai dengan pembuatan GUI untuk aplikasi dengan menggunakan aplikasi Qt Creator . Berikut adalah perancangan GUI untuk aplikasi ini .
Gambar 3.3 Halaman awal
Gambar 3.4 Halaman pilih program
Gambar 3.5 Halaman salah satu progrm Pada gambar 3.3 dieprlihatkan rancangan halaman utama aplikasi GUI untuk pemrograman Arduino . Dihalaman utama ini, user menekan next untuk kemudian menuju halaman Pilih Program . Pada gambar 3.4 diperlihatkan rancangan halaman pilih program yang terdiri dari program : blink, LCD, jam digital, seven segment, interupsi, servo, running LED, suhu, intensitas, keypad to LCD, stepper, dan infrared . Pada halaman ini user diarahkan untuk memilih program yang akan dikehendaki . Setelah memilih user akan ditujukan ke program yang terpilih . Misalnya seperti gambar 3.4 program blink . Di halaman ini diperlihatkan apa saja paraneter yang harus disii dari program tersebut, setelah itu user memilih lihat program untuk melihat code program . Langkah selanjutanya adalah user mengunggah program tersebut ke board arduino dengan pilih upload
.
3.4.1 Use Case Diagram Berikut ini merupakan use case diagram dari keseluruhan GUI untuk Arduino yang terdiri dari satu aktor, yaitu user.
Gambar 3.6 Use case diagram GUI untuk pemrograman Arduino 3.4.2 Skenario Use Case Pada perancangan use case yang ada pada gambar 3.4 memberikan gambaran fungsi–fungsi yang ada pada aplikasi kontrol perangkat elektronik yang akan dibuat. Berikut ini merupakan identifikasi use case intruksi pengendalian. Pada perancangan use case yang ada pada gambar 3.5 memberikan gambaran fungsi-fungsi yang ada pada aplikasi GUI untuk pemrograman Arduino yang akan dibuat . Berikut ini merupakan identifikasi use case GUI untuk Arduino 3.4 Skenario Pengujian Aplikasi Pengujian aplikasi dalam proyek akhir ini dilakukan dengan beberapa skenario, yaitu: Skenarionya adalah pengujian algoritma pemrograman dan mengunggah program ke board Arduino, ini dilakukan untuk menguji apakah algoritma pemrograman yang dibuat dapat berjalan sesuai dengan perancangan awal, dan memastikan bahwa perintah yang dimasukkan ke aplikasi memiliki output yang sesuai dengan perancangan dan
semua program diunggah ke board Arduino, hal ini bertujuan untuk mengetahui apakah program yang dibuat dapat dibaca oleh arduino atau tidak . 4. Implementasi dan Pengujian Aplikasi pemrograman GUI untuk Arduino dinamakan Belajar Arduino . Apliaksi ini dapat berjalan pada OS Windows . Berikut ini merupakan screenshot aplikasi belajar arduino
4.2 Pengujian Aplikasi Pengujian aplikasi android dilakukan dengan menggunakan skenario pengujian algorithma program dan pengujian dengan board Arduino
4.2.1 Program Blink Pengujian program blink ini dilakukan untuk mengetahui apakah program dapat di upload ke arduino atau tidak . Berikut tampilahn program blink .
Gambar 4.1 Program blink dengan parameternya Dari hasil pengujian untuk membuktikan program bekerja, maka lampu yang ditandain akan berkedipkedip dengan delay on dan off 100 ms sesuai dengan program blink yang dijalankan. 4.2.2 Program LCD display Pengujian program LCD Display ini dilakukan untuk mengetahui apakah program LCD bekerja atau tidak. Untuk mengetahui program LCD bekerja atau tidak, maka dengan melakukan pengujian program dengan parameter yang diisi berupa teks “welcome Amdt” .
Gambar 4.2 Program display LCD dengan parameternya
Gambar 4.3 Tampilan pada LCD
4.2.3 Program Seven Segment Pengujian program seven segment ini dilakukan untuk mengetahui apakah program dapat di upload ke arduino atau tidak . Berikut tampilahn program seven segment yang akan menampilkan angka 24 .
Gambar 4.4 Program seven segment dengan parameternya
Gambar 4.5 Tampilan seven segment
4.2.4 Program pembacaan suhu Pengujian program pembacaan ini dilakukan untuk mengetahui apakah program dapat dapat membaca suhu atau tidak . Berikut tampilahn program pembacaan suhu .
Gambar 4.6 Tampilan program pembacaan suhu
Gambar 4.7 Tampilan suhu pada LCD
4.2.5 Program Running LED Pengujian porgram running LED ini dilakukan untuk mengetahui apakah program dapat mengerjakan program running LED dengan pin digital yang dibuah-ubah . Berikut program running led dengan menggunakan pin digital 0,3 dan 4.
Gambar 4.7 Tampilan program running LED
Gambar 4.8 Tampilan PIN yang digunnakan
4.2.6 Program Motor Servo Pengujian porgram motor servo ini dilakukan untuk mengetahui apakah program motor servo pada kit bekerja atau tidak. maka dengan melakukan pengujian rangkaian yang menggerakan motor servo
Gambar 4.9 Tampilan program motor servo Dari hasil pengujian apakah motor servo bekerja atau tidak, dapat dilihat pada motor servo, dimana motor bergerak seusai dengan program yang dimasukan atau tidak.
4.2.7 Program Stepper Pengujian program stepper ini dilakukan untuk mengetahui apakah motor stepper pada program bekerja atau tidak, maka dengan melakukan pengujian rangkaian stepper dengan step per revolusi 515 . Berikut programnya .
Gambar 4.10 Tampilan program motor stepper
4.2.8 Program Keypad To LCD Pengujian program keypad to LCD ini dilakukan untuk mengetahui apakah keypad pada kit bekerja atau tidak, maka dengan melakukan pengujian rangkaian custom keypad. Berikut rangkaian custom keypad.
Gambar 4.11 Tampilan program keypad to LCD
Gambar 4.12 Tampilan di LCD
4.2.9 Porgram Infrared Pengujian program Infrared ini dilakukan untuk mengetahui apakah program dapat bekerja atau tidak . Pada program Arduino diatur untuk menerima perintah dari IR Remote . pada program ini, LED 1 akan mati apabila angka 1 pada keypad di tekan sekal, dan akan mati lagi apabila ditekan dua kali . Berikut program infrared .
Gambar 4.13 Tampilan program infrared
\ 4.2.10 Program Interupsi Pengujian program interupsi ini dilakukan untuk apakah program dapat bekerja atau tidak . Pada program ini apabila pushbutton 1 ditekan sekali, maka led akan menyala, jika ditekan dua kali maka lampu led akan mati . Berikut program Interupsi .
Gambar 4.14 Tampilan program interupsi
4.2.11 Program Jam Digital Pengujian program jam digital ini dilakukan untuk apakah program dapat bekerja atau tidak . Pada program ini jam digital akan menampilkan waktu sekarang (real time) saat pengujian .Berikut program jam digital
.
Gambar 4.13 Tampilan program jam digital
Gambar 4.14 Tampilan waktu realtime pada LCD
4.2.12 Program Intensitas Cahaya Pengujian program intensitas cahaya dilakukan dengan menggunkan LDR, pengujian ini dilakukan untuk mengetahui apakah program penghitungan intensitas cahaya oleh LDR pada kit bekerja atau tidak. Untuk mengetahui sensor cahaya bekerja atau tidak, maka dengan melakukan pengujian rangkaian penghitungan intensitas cahaya. Berikut rangkaian penghitungan intensitas cahaya.
Gambar 4.15 Tampilan program Pengukuran intensitas cahaya
Gambar 4.16 Tampilan intensitas cahaya pada LCD
5. KESIMPULAN DAN SARAN 5.1 Kesimpulan Setelah melakukan proses perancangan, implementasi, dan pengujian maka diperoleh kesimpulan sebagai berikut. 1.
Pada program pembacaan suhu, interupsi, pembacaan intensitas cahaya, infrared ,keypad to LCD, dan jam digital tidak ada parameter yang diisi karena program yang dibuat untuk membaca respon dari sensor ataupun input dari masing-masing alat .
2.
Pada program blink, LCD display, running LED dan servo terdapat parameter yang harus diisi untuk mengatur program tersebut .
3.
Seri arduino IDE yang dapat digunakan untuk aplikasi ini mulai dari versi 1.60 hingga yang terbaru
5.2 Saran Pengembangan yang dapat dilakukan dari Proyek Akhir ini adalah sebagai berikut. 1.
Lebih banyak contoh program .
2.
Menggunakan drag and drop untuk memilih sensor ataupun output
3.
Dapat digunakan di beberapa OS .
6. Daftar Pustaka
[1] Hanif al fatta (2006). Dasar Pemrograman C++ disertai dengan Pengenalan Pemrograman Berorientasi Objek. ISBN 979-763-582-1. [2] Bruce Eckel (2000). Thinking in C++. Jilid 1 dari Thinking in C++ Introduction to Standard C+, Bruce Eckel. ISBN 0139798099, 9780139798092 Check |isbn= value (help). [3] Bjarne Stroustrup (2000). The C++ programming language, Prentice Hall, 2000. ISBN 0201889544, 9780201889543 Check |isbn= value (help). [4] michael McRoberts, 2010 Beginning Arduino. [5] Robert Faludin, 2011, Building Wireless Sensor Networks. [6] http://arduino.or.id/ [7] http://nice.or.id/qtcurriculum/