Visualisasi data merupakan salah satu kegiatan penting dalam bidang keteknikan. Viasualisasi data dapat memberikan gambaran bagaimana sistem berjalan dan apakah hasil sudah sesuai dengan harapan. Selain itu, visualisasi data dapat dijadikan acuan dalam perbaikan suatu sistem.
MATLAB diakui sebagai salah satu perangkat paling tangguh yang pernah ada sampai saat ini terkait dengan visualisasi data. Selain visualisasi, MATLAB juga sangat tangguh untuk memodelkan suatu sistem dan selanjutnya dapat berguna dalam menganalisis sistem tersebut.
Pada ulasan kali ini, kita akan memvisualisasikan data menggunakan MATLAB berdasarkan data yang diperoleh dari Arduino. Arduino akan kita aktifkan sebagai signal generator. Arduino akan diprogram untuk menghasilkan gelombang sinus secara terus-menerus, dan selanjutnya sinyal ini akan diplot secara real-time menggunakan MATLAB. Komunikasi yang digunakan antara Arduino dan MATLAB adalah komunikasi secara serial, dalam hal ini menggunakan kabel USB.
Untuk merealisasikan project ini, kita harus memprogram baik disisi Arduino maupun di sisi MATLAB. Untuk sisi Arduino, ketik dan upload-lah program di bawah ini.
double x; void setup() { //kecepatan komunikasi serial Serial.begin(9600); x = 0; } void loop() { Serial.flush(); Serial.println(sin(x)); x += .05; if(x >= 2*3.14) x = 0; //Tunggu sebentar utk komunikasi serial delay(50); }
Serial.flush(); adalah sintaks yang digunakan untuk menunggu sampai data yang dikirim benar-benar selesai dikirim. Selanjutnya, sin(x) berguna untuk menghasilkan gelombang sinus sesuai dengan nilai x.
Langkah selanjutnya adalah memprogram MATLAB. Ketiklah sintaks MATLAB berikut.
Adapun penjelasan dari program MATLAB tersebut adalah sebagai berikut.
[[{"fid":"142","view_mode":"wysiwyg","fields":{"format":"wysiwyg","field_file_image_alt_text[und][0][value]":"ploting_realtime","field_file_image_title_text[und][0][value]":"ploting_realtime"},"type":"media","attributes":{"alt":"ploting_realtime","title":"ploting_realtime","height":"357","width":"400","class":"media-element file-wysiwyg"},"link_text":null}]]
Jika kita ganti nilai lebarScroll = 10; menjadi lebarScroll = 0; maka akan dihasilkan jendela berikut:
[[{"fid":"143","view_mode":"wysiwyg","fields":{"format":"wysiwyg","field_file_image_alt_text[und][0][value]":"ploting_realtime2","field_file_image_title_text[und][0][value]":"ploting_realtime2"},"type":"media","attributes":{"alt":"ploting_realtime2","title":"ploting_realtime2","height":"356","width":"400","class":"media-element file-wysiwyg"},"link_text":null}]]
Mengambil Data dari Sensor
Sekarang, kita modifikasi program Arduino. Kalau sebelumnya Arduino sebagai signal generator, yaitu membangkitkan sinyal sinus, maka sekarang kita ganti dengan membaca suatu sensor. Misalkan kita akan meletakkan sensor analog di Pin A0, maka dapat kita ubah sintaks sebelumnya menjadi berikut:
double x; void setup() { //kecepatan komunikasi serial Serial.begin(9600); } void loop() { Serial.flush(); int nilaiSensor = analogRead(A0); Serial.println(nilaiSensor); delay(50); }
Untuk MATLAB, yang harus diubah hanya nilai maksimum dan minimum sumbu-y. Karena ADC yang digunakan Arduino adalah 10-bit (saat ini saya menggunakan Arduino UNO), maka nilai maksimal haruslah 2^10 - 1 = 1023. Oleh karena itu, nilai maksimum sumbu-y sebesar 1050 adalah masuk akal. Mari kita ubah bagian tersebut:
min = 0;
max = 1050;
Misalkan untuk mengganti sebuah sensor, saya menggunakan sebuah potensiometer yang dihubungkan di Pin A0, sesuai dengan gambar di bawah ini.
Adapun koding lengkapnya adalah sebagai berikut.
[[{"fid":"144","view_mode":"wysiwyg","fields":{"format":"wysiwyg","field_file_image_alt_text[und][0][value]":"potensiometer","field_file_image_title_text[und][0][value]":"potensiometer"},"type":"media","attributes":{"alt":"potensiometer","title":"potensiometer","height":"313","width":"400","class":"media-element file-wysiwyg"},"link_text":null}]]
Jika kita putar-putar potensiometer, maka akan ditampilkan contoh grafik berikut:
[[{"fid":"145","view_mode":"wysiwyg","fields":{"format":"wysiwyg","field_file_image_alt_text[und][0][value]":"ploting_realtime3","field_file_image_title_text[und][0][value]":"ploting_realtime3"},"type":"media","attributes":{"alt":"ploting_realtime3","title":"ploting_realtime3","height":"357","width":"400","class":"media-element file-wysiwyg"},"link_text":null}]]
Demikian tutorial ini. Semoga bermanfaat.
Referensi:
[1] [MATLAB] Real Time Serial Data Logger https://billwaa.wordpress.com/2013/07/10/matlab-real-time-serial-data-logger/
Komentar Terbaru