Arduino adalah prototyping platform yang sudah sangat populer
dikalangan pelajar, profesional, dan umum. Banyak sekali proyek yang
dapat dibuat menggunakan Arduino. Yang lebih menarik lagi, telah
terdapat berbagai contoh di internet yang dapat kita gunakan untuk
mengerjakan proyek kita. Salah satu jenis Arduino yang paling banyak
digunakan adalah Arduino UNO. Arduino UNO memanfaatkan kemampuan
mikrokontroler Atmel ATmega328. Lihat laman berikut untuk informasi
lebih lanjut: www.arduino.cc. Disisi lain, MATLAB adalah software yang
sangat tangguh untuk aplikasi yang melibatkan proses pengolahan data
maupun visualisasi. Kunjungi laman berikut untuk informasi lebih lanjut:
www.mathworks.com. Akan menjadi hal yang menarik ketika kemampuan kedua tools ini
dapat kita gabungkan. Nah, pada kesempatan kali ini, kita mencoba
membahas langkah yang paling sederhana dalam menghubungkan Arduino dan
MATLAB.
Untuk pembahasan kali ini, diasumsikan bahwa
kita telah mengenal sedikit dasar-dasar Arduino dan MATLAB. Syarat yang
harus kita miliki untuk percobaan kali ini adalah sebuah papan Arduino
dan software MATLAB yang telah terinstal pada komputer kita.
Untuk pembahasan kali ini, kami menggunakan Arduino UNO dan MATLAB
2014a. Selanjutnya, bagaimana mereka bisa saling berkomunikasi? Arduino
dan MATLAB dapat saling berhubungan melalui komunikasi serial.
Mari kita Ikutilah langkah-langkah berikut:
Koneksikan Arduino dengan komputer menggunakan kabel USB. Selanjutnya, buka MATLAB dan ketikkan sintaks instrhwinfo ('serial'). Asumsi nama objek kita adalah serial
>> serial = instrhwinfo ('serial')
serial =
AvailableSerialPorts: {6x1 cell}
JarFileVersion: 'Version 3.5'
ObjectConstructorName: {6x1 cell}
SerialPorts: {6x1 cell}
Cek port serial berapa saja yang available dengan mengetik serial.AvailableSerialPorts
>> serial.AvailableSerialPorts
ans =
'COM1'
'COM3'
'COM26'
'COM43'
'COM44'
'COM45'
Ini menandakan bahwa port-port inilah yang bisa terdeteksi oleh MATLAB.
Namun demikian, kita harus pilih port mana yang digunakan oleh Arduino.
Caranya, cek serial berapa yang digunakan oleh Arduino pada komputer
kita. Caranya, kita bisa cek di device manager (untuk OS Windows). Pada Windows 7, device manager dapat dicari dengan mengklik kiri lambang START, kemudian klik kanan Computer, dan pilih Manage. Amati gambar berikut:
Selanjutnya, jendela Computer Management akan terbuka. Pilihlah Devide Manager, dan amati port yang dipakai di bagian Ports(COM &LPT). Asumsi port yang terpakai adalah COM26, seperti gambar di bawah. Ini menandakan bahwa informasi yang diberikan oleh MATLAB dan komputer kita telah sesuai.
Untuk merealisasikan percobaan kita kali ini, kita harus memprogram baik
di sisi Arduino dan MATLAB. Nah, sekarang bukalah Arduino IDE, dan
ketikkan sintaks berikut:
int led = 13;
int InputData = 0;
void setup() {
pinMode(led, OUTPUT);
Serial.begin(9600);
}
void loop() {
while (Serial.available() > 0) {
InputData = Serial.read();
}
if (InputData == '1') digitalWrite(led, HIGH);
if (InputData == '0') digitalWrite(led, LOW);
}
Prinsip pemrograman Arduino di atas sangatlah sederhana. Arduino UNO
telah memiliki led internal yang diletakkan pada pin 13. Jadi, untuk
saat ini kita tidak memerlukan led tambahan. Jika Arduino menerima data
'1' melalui komunikasi serial dengan MATLAB, maka led akan menyala,
sedangkan jika menerima data '0' makan akan memadamkan led tersebut.
Sederhana, bukan? Yup, kembali ke MATLAB. Mari kontrol led kita dengan
sintaks MATLAB. Ikutilah langkah-langkah berikut dengan megetikkan
sintaks pada Command Window.
Buatlah objek untuk komunikasi serial kita menggunakan perintah serial. Beri nama s1, sebagai contoh. Selanjutnya, perintah fopen() digunakan untuk membuka komunikasi serial dengan Arduino. Setelah komunikasi dibuka, perintah fwrite() berfungsi untuk menuliskan data '1' dan mengirimkannya ke Arduino. Amati bahwa setelah perintah ini dikirim, maka led pada Arduino akan menyala. Untuk mematikan, cukup kirim data '0' menggunakan sintaks yang sama. Setelah selesai semuanya, kita bisa menutup dengan perintah fclose().
>> s1 = serial('COM26','BaudRate',9600)
>> fopen(s1);
>> fwrite(s1,'1');
>> fwrite(s1,'0');
>> fclose(s1);
Yuuppp.... sederhana, bukan? semoga bermanfaat :)
12 komentar:
Terimakasih banyak atas sharing ilmunya, semoga Tuhan YME membalas kebaikan anda. Mas saya ada pertanyaan, bisakah sintaks tersebut digunakan dengan GUI-MATLAB? Bila dapat bagaimana ya, mohon bimbingannya, saya masih newbie banget soalnya. Matur suwun...
Bisa banget, mas... umumnya segala sesuatu yang bisa dikoding menggunakan MATLAB, akan bisa dikoding pula menggunakan GUI. GUI digunakan sebagai antarmuka saja, dan selanjutnya untuk aksi sistem sama dengan pemrograman MATLAB pada umumnya. Untuk lebih jelasnya, akan saya posting di web edukasi saya beikut: www.blog.miarana.com
Terima kasih
Mas kalau aku bikin program fuzzy terus programnya ditransfer ke arduino bisa gak ya? Caranya bagaimana, mohon bantuannya!
bisa. namun mas perlu pemahaman mengenai bagaimana fuzzy bekerja. hal ini bisa menjadi kegiatan yang memusingkan. jika penggunaan komputer diperbolehkan, saran saya, mas desain fuzzy di matlab, kemudian hubungkan matlab dengan arduino. arduino digunakan sebagai pembaca input dan melakukan aksi. algoritma fuzzy sepenuhnya diprogram di matlab. nanti, output fuzzy mas keluarkan ke arduino.
mau tanya misal pas kita pingin tau port yang ada kok ngga kebaca ya serial portnya. Penyebabnya apa kira2?Mhn bantuannya
mau tanya misal pas kita pingin tau port yang ada kok ngga kebaca ya serial portnya. Penyebabnya apa kira2?Mhn bantuannya
mau tanya dong kok pas saya cek port apa saja yang dibaca MATLAB ternyata ngga ada port yg bisa dipakai. itu kenapa ya min?
saya mau beli buku yg anda buat. pembelian di nulisbuku.com ada kesulitan pada saat mengisi form pemesanan. sudah email ke adminnya tp belum diberikan solusi. Apakah saya bisa beli buku ttg Teknik Antarmuka Matlab dan Arduino secara langsung ??
terma kasih
maaf ni mas.... saya udah nyobain pake syntak diatas... untuk mendeteksi port nya berhasil tapi pas di coding s1=..... jadi ada tulisan index aceeds matrix dimension... terus selanjutnya kebawah enggak bisa.. bagaimana cara mengatasinya? mohon bantuannya.
artikel bagus gan, kunjungan baliknya di PENGENALAN DENGAN ARDUINO DAN JENIS ARDUINO ARGA YUDHA
atau langsung ke website
http://www.argayudhaadhiprama.com/2016/01/25/pengenalan-dengan-arduino/
maaf mas sblmnya. berhubung pertanyaan saya sama saudara bayu, maka prtanyaan saya "berarti matlab digunakan sebagai interfacenya? dan modul arduino uno tidak bisa lepas dr pc dong?"
mohon pencerahannya
s1 = serial('COM5', 'Baudrate', 9600);
Index exceeds matrix dimensions.
ini kenapa ya kak?
Posting Komentar