Interfacing Arduino dengan Python


melalui serial monitor, kita dapat melakukan banyak hal terhadap Arduino, membuat data logging, membuat aplikasi berbasis RFID, membuat mesin plotter seperti CNC dan lain sebagainya. Ada banyak IDE dengan bahasa-bahasa pemrograman tertentu yang dapat kita gunakan untuk melakukan interfacing antarat Arduino dengan PC, seperti python, delphi, VB, dan sebagainya. Untuk delphi dan VB saya sudah membahas pada artikel sebelumnya
Dalam artikel ini saya akan membahas mengenai interfacing Arduino dan PC dengan menggunakan Python, python merupakan bahasa tingkat tinggi sehingga akan mudah untuk dipahami, asal kita tahu saja fungsi-fungsi dari setiap perintah nya, seperti import, print dan sebagainya.
Ok supaya tidak terlalu panaang saya menulis artikel ini, langsung saja kita masuk pada bahan-bahan yang dibutuhkan, bahan-bahan tersebut diantaranya adalah:

1. PC :D
ini mutlak harus ada ya? :D, karena berdasarkan judulnya kita akan membuat interfacing Arduino dan PC
2. Board arduino
3. Software Arduino IDE
4. software python
untuk pengguna OS linux, umumnya python sudah terinstal, tapi untuk pengguna windows silahkan download terlebih dahulu
5. Pyserial
untuk pengguna linux, anda dapat menggunakan perintah berikut
sudo apt install python-serial

sebagai percobaan, kita akan mencoba menyalakan dan memadamkan LED pada board arduino dengan python. Berikut adalah program pada python-nya

import time
import serial
Ser = serial.Serial('/dev/ttyACM0',9600)
# untuk mengetahui port yang digunakna arduino. ketik "dmesg" di terminal linux
for x in xrange(1,3):
print "masukkan perintah on / off"
var = raw_input()
Ser.write(var)
Ser.write('\n')
print "Tekan enter untuk melanjutkan, atau Ctrl+z untuk berhenti"


kemudian untuk program Arduino nya adalah sebagai berikut:


String inString = ""; // Untuk menampung string yang masuk
void setup() {
Serial.begin(9600);
pinMode(13, OUTPUT);
Serial.println("Interfacing Arduino & Python"); }

void loop() {
while (Serial.available() > 0) {
int inChar = Serial.read();
inString += (char)inChar;
if (inString == "on\n"){
Serial.print(inString);
digitalWrite(13, HIGH);
inString = "";
} else if (inString == "off\n"){
Serial.print(inString);
digitalWrite(13, LOW);
inString = "";
} } }

>> Pembahasan program
dalam program di python kita menggunakan perulangan for, dengan jumlah perulangan adalah 2 kali, ini hanya untuk memastikan bahwa perintah yang kita buat dapat diterima oleh arduino atau tidak.
Silahkan masukkan perintah on atau perintah off, kemudian perhatikan LED pada board arduino ketika kita masukkan perintah tersebut, jika LED arduino menyala ketika kita masukkan perintah on, dan pada ketika kita masukkan perintah off, itu berarti program kita berjalan dengan baik

oh iya, bila diperhatikan, disana terdapat perintah Ser.write(‘/n’) itu untuk mengirimkan perintah garis baru, karena data yang kita kirimkan berupa string (tidak 1 karakter), dan bergitu juga di program Arduino-nya, disana ditambahkan perintah inString += (char)inChar, perintah tersebut untuk menampung karakter yang masuk.

Kenapa saya menggunakan string sebagai perintah-nya, karena untuk pengaplikasian yang lebih besar kita akan banyak mengirimkan data berupa string daripada perkarakter.

Comments