RANCANG BANGUN MESIN PEMBUAT KOPI RASA BUAH [ Software ]


Mukadimah

Mesin pembuat kopi rasa buah adalah suatu perangkat yang dapat membuat suatu kopi dengan menambahkan beberapa macam rasa buah  secara otomatis, dimana takaran saji maupun setiap komposisi bahannya dapat diatur sedemikian rupa sesuai dengan keinginan. Alat ini terdiri dari 4 bagian, yaitu animasi, mekanik, hardware dan software. Kali ini yang akan dibahas adalah cangkupan software yang merupakan bagian yang bertanggung jawab untuk membuat HMI (Human Machine Interface) dan kontrol serial 485.Untuk bagian Baik HMI maupun kontrol serial 485 dibangun dengan menggunakan IDE Qt (versi Windows) dengan menggunakan bahasa C ditambah dengan menggunakan add-on QSerialDevice untuk dapat mengontrol keluaran maupun masukkan pada port serial RS232. Tujuan utama dari pembuatan software adalah untuk dapat melakukan kontrol terhadap secara visual dengan menggunakan beberapa Widget yang bertujuan untuk mempermudah pemakaian dan menambah kehandalan suatu alat.

 

Rancangan Sistem Software

Seperti yang telah dijelaskan, sistem software terdiri dari 2 bagian, yaitu HMI dan kontrol serial RS-485. HMI adalah suatu tampilan pada komputer yang berfungsi sebagai antarmuka visual antara manusia dengan mesin yang berisi beberapa widget dan window yang bertujuan untuk mempermudah pemakaian suatu alat dan juga untuk melakukan otomatisasi terhadap kinerja alat. Sedangkan kontrol serial merupakan sistem komunikasi yang bertujuan untuk mengatur kinerja alat sesuai dengan kontrol yang ditendukan oleh user melalui sebuah bus (kabel yang berisi beberapa core tembaga) dengan jarak antara alat dengan komputer maksimal sekitar 1 Km. Secara garis besar, rancangan sistem software dapat digambarkan sebagai berikut :

Gambar 1. Bagan rancangan software

 

Bagan rancangan software di atas dapat dijelaskan sebagai berikut :

1. HMI

Merupakan sebuah tampilan pada layar komputer yang berfungsi sebagai antarmuka antara pengguana dan alat.Pada alat ini, kami menggunakan 3 buah tampilan window yang berbeda yang akan mewakili proses yang dilakaukan, diantaranya Window Pengaturan bahan dan komposisi, Window pemberitahuan proses dan pengeksekusian, dan yang terakhir berupa dialog konfirmasi. Setiap window akan muncul secara bergantian sesuai dengan proses apa yang sedang dikerjakan.

2. Sistem Kontrol

Merupakan sebuah sistem berupa program yang berfungsi untuk mengatur alur proses kinerja software agar sistem berjalan dengan baik dan benar. Sistem kontrol merupakan sebuah unit yang sangat penting dimana sistem kontrol akan mengatur alat sesuai dengan pengaturan yang dilakukan oleh pengguna melalui HMI. Selain mengatur alat, sistem kontrol juga bertugas untuk mengatur widget secara otomatis pada masing-masing window sesuai dengan event (kejadian) yang berasal dari perubahan yang dilakukan oleh pengguna pada setiap widge dan juga akan memberikan informasi kepada pengguna melalui pengaturan HMI baik melalui perubahan widget maupun pergantian window. Sistem kontrol juga mengatur komunikasi serialantara komputer dengan alat sesuai dengan format yang sudah ditentukan agar sistem keseluruhan dapat berjalan dengan lancar.

3. Port RS-232

Merupakan sebuah port yang utamanya memiliki 2 buah titik, yaitu titik RX dan TX. RX berfungsi sebagai penerima data dari alat. Sedangkan TX berfungsi untuk mengirimkan data ke alat. komunikasi yang dilakukan merupakan komunikasi RS-232 dengan baudrate 9600 bps. Port ini akan diatur oleh Qt sesuai dengan sistem kontrol melalui add-on QSerialDevice dengan menggunakan format khusus sebagai berikut :


Gambar 2. Format data

Dimana :

- x = alamat node (1 karakter)

- y = alamat motor (1karakter)

- z = alamat sensor (1 karakter)

- t = status tulis/ baca data (1 karakter)

- ii = instruksi (2 karakter)

- vvvvv = data (5 karakter)

- :, N, M, S, ! = konstanta penanda data (Masing-masing 1 karakter)

 

 

Human Machine Interface (HMI)

Merupakan suatu tampilan sebagai antarmuka antara pengguna dan alat. Pada alat ini, menggunakan 3 buah jendela (window) untuk menjalankanproses yang memiliki tugas masing-masing. Berikut adalah Tampilan dari jendela yang digunakan :

a) Jendela Utama

Gambar 3. Jendela utama

 

Jendela utama digunakan untuk mengatur takaran saji minuman per gelas,banyaknya gelas, dan juga mengatur komposisi dari berbagai macam bahan pembuat kopi dan rasa yang dapat diisikan secara manual melalui text box, maupun dari penggeseran scrollbar dan penekanan tombol increase maupun decrease. Setiap komposisi dapat diatur presentasinya secara manual, sedangkan banyaknya bahan akan dihitung secara otomatis oleh program. Walaupun ada perubahan, maka banyaknya komposisi setiap bahan akan juga ikut berubah. Selain itu pada jendela utama juga dapat dilakukan penyimpanan komposisi dari minuman dengan cara mengetik tombol “Simpan komposisi” dan juga dapat mengambilnya kembali dengan penekanan tombol “Ambil komposisi”.

b) Dialog konfirmasi

Gambar 4. Dialog konfirmasi

 

Dialog konfirmasi berfungsi untuk menginformasikan kepada pengguna tentang persentase antara takaran saji yang diinginkan (berasal dari pengaturan takaran saji) dengan takaran saji yang akan disajikan (berasal dari total komposisi setiap bahan yang diatur oleh pengguna). Selain sebagai penginformasi dialog ini juga berfungsi untuk mengkonfirmasikan kepada pengguna apakah pengguna setuju dengan presentasi yang ada atau tidak. Jika pengguna setuju, maka proses akan dilanjutkan.

c) Jendela proses

Gambar 5. Jendela proses (1)

 

Jendela proses berfungsi untuk menginformasikan kepada pengguna tentang progres dari proses yang sedang dilakukan melalui progress bar. Proses yang akan ditampilkan adalah proses inisialisasi, pengaturan komposisi, pemasukkan bahan, pengadukkan dan penuangan minuman ke gelas. Selain berfungsi sebagai media informasi, jendela proses juga berguna untuk memberitahukan kepada pengguna terhadap kendala  yang terjadi pada saat software melakukan pengaturan alat bila terjadi kerusakkan. Pada saat proses sudah memasuki tahapan penuangan minuman, secara otomatis akan muncul widget tambahan berupa progres bar dan juga tampilan LCD seperti berikut :

Gambar 6. Jendela proses (2)

 

Perubahan di atasa berfungsi untuk menambahkan informasi mengenai proses penuangan  melalui progress bardan banyaknya minuman yang akan dituangkan melalui tampilan LCD serta pengeksekusian penuangan minuman ke gelas (setiap penekanan, maka menuangkan 1 gelas minuman) secara manual melalui penekanan tombol “Tuang”. Tampilan LCD akan berkurang satu pada saat minuman sudah dituangkan dengan penekanan tombol “Tuang”. Apabila semua minuman sudah tertuang ke gelas dan tidak adalagi minuman yang tersisa, maka jendela proses akan berubah lagi seperti berikut untuk menandai selesainya proses pembuatan minuman:

Gambar 7. Jendela proses (3)

 

Sistem Kontrol

Adalah susunan program yang bertanggung jawab untuk mengatur kinerja software keseluruhan dengan tujuan untuk dapat menghasilkan suatu kinerja yang benar dan lancar sesuai dengan keinginan pengguna dalam pembuatan minuman kopi aneka rasa. Yang diatur oleh sistem kontrol mencakupi tampilan HMI untuk memberikan interaksi yang interaktif dan informatif kepada pengguna dan juga untuk mengontrol alat pembuat minuman kopi aneka rasa dengan menggunakan komunikasi RS-485 melalui port RS-232 pada komputer dengan cara mengatur “lalu lintas data” dengan menggunakan teknik parsing dengan menggunakan format yang telah dijelaskan sebelumnya. Berikut adalah flowchart dari sistem kontrol yang menggambarkan keseluruhan proses yang dilakukan oleh sistem kontrol :

Gambar 8. Flowchart software

 

Port RS-232

Merupakan suatu port pada komputer yang dapat digunakan untuk melakukan komunikasi data 2 arah antara komputer dan piranti luar dengan cara mengirim atau menerima data karakter tertentu, dimana setiap karakter memiliki panjang data 8 bit atau 1 byte melalui 2 buah kanal, yaitu Tx (transmitter) dan Rx (receiver). Pada alat ini, port RS-232 disetting dengan menggunakan kecepatan transmisi data secepat 9600 Kbps yang berarti dalam 1 detik,dapat mengirimkan 9600 bit data sekaligus. Pada alat ini, Port RS-232 sepenuhnya dikendalikan oleh program Qt untuk melakukan proses penerimaan data maupun proses parsing data.

Proses penerimaan data adalah suatu proses penerimaan data dari piranti luar berupa karakter-karakter. Program ini menggunakan metode interupsi, yang berarti program akan melakukan proses tertentu apabila ada 1 karakter masuk ke Port-232. Pada program ini, panjangnya karakter sudah ditentukan, yaitu sepanjang 16 karakter. Seperti yang telah dijelaskan sebelumnya, format data yang dapat diproses oleh program ini adalah =  “:NxMySztiivvvvv!”. Apabila kumpulan karakter yang masuk sudah sesuai dengan format tersebut, maka secara otomatis program akan melanjutkan untuk melakukan parsing data. Sebaliknya, apabila data yang diterima tidak sesuai dengan format yang telah ditentukan, maka data akan diabaikan dan program akan siap menerima data baru. Berikut adalah method yang digunakan untuk melakukan penerimaan data :

Gambar 9. Program penerimaan data

 

Setelah melakukan penerimaan data yang cocok dengan format yang telah ditentukan, kemudian program akan melakukan pembacaan data dan akan melakukan proses pengendalian alat dengan alur yang tertata seperti flowchart yang telah ditunjukkan sebelumnya. Proses yang dilakukan hanyalah satu step saja setiap penerimaan data dari alat dan akan meneruskan ke step selanjutnya apabila komunikasi data berjalan dengan baik, dan cocok dengan progres yang terjadi yang ditunjukkan oleh progress bar. Proses-proses yang akan dikerjakan dalam komunikasi data ini antara lain :

- Inisialisasi Node 1 dan 2.

- pemberian nilai timer pada Node 1 dari motor 1 sampai dengan motor 6 sesuai dengan banyaknya komposisi bahan yang diberikan.

- Pengeksekusian proses penuangan bahan secara berurutan dari cairan bahan 1 sampai 6 satu per satu.

- Pengeksekusian proses pengadukan bahan-bahan dengan panjang waktu yang diambil dari penjumlahan dari banyaknya komposisi bahan 1 sam apai bahan 6.

- Proses penuanagan bahan-bahan dengan jumlah gelas yang ditentukan pada jendela utama.

[Program parsing data dapat dilihat pada source code file Dialog.cpp pada method void ProgressProses()]

 

Video

Video 1 :

 

 

Source Code

Pada source code alat ini, hanya menggunakan sebuah project Qt yang memuat beberapa file, diantaranya :

- ProjectSMT2.pro

- ProjectSMT2.pro.user

- mainwindow.ui

- dialog.ui

- dialogconfirmation.ui

- mainwindow.h

- dialog.h

- dialogconfirmation.h

- mainwindow.cpp

- dialog.cpp

- dialogconfirmation.cpp

 

Semua file di atas dapat di download di sini…

void Dialog::updateSerial() {

    int i, j;
    i = port->size();
    inputStream += port->read(i);
    if(inputStream.at(0) != ':')
        inputStream.clear();
    if((inputStream.size() >= 16))  {
        if((inputStream.at(0) == ':') && (inputStream.at(1) == 'N') && (inputStream.at(3) == 'M') &&
           (inputStream.at(5) == 'S') && ((inputStream.at(7) == 'R') || (inputStream.at(7) == 'W'))) {
            isSerialAvailable = true;
            serNode = inputStream.at(2) - 0x30;
            serMotor = inputStream.at(4) - 0x30;
            serSensor = inputStream.at(6) - 0x30;
            serRW = inputStream.at(7);
            serInstr = ((inputStream.at(8) - 0x30) * 10) +
                       (inputStream.at(9) - 0x30);
            serValue = ((inputStream.at(10) - 0x30) * 10000) + ((inputStream.at(11) - 0x30) * 1000) +
                       ((inputStream.at(12) - 0x30) * 100) + ((inputStream.at(13) - 0x30) * 10) + (inputStream.at(14) - 0x30);
            validStream = inputStream;
            inputStream.clear();
            qDebug() << "Readed is : " << validStream.size() << " bytes"<<validStream;
            progressProses();
        } else {
            isSerialAvailable = false;
            qDebug() << "Readed is : " << inputStream.size() << " bytes"<<inputStream<<inputStream.at(0);
            inputStream.clear();
        }
        if((i = port->bytesAvailable()) > 0) {
            buangStream = port->read(i);
        }
    }
}

2 thoughts on “RANCANG BANGUN MESIN PEMBUAT KOPI RASA BUAH [ Software ]

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>