Archive for the ‘Arduino’ Category

Wah…..

udah lama ga posting di blog pribadi, postingan kali ini sebenernya postingan blog kelompok Tugas Akhir saat masih kuliah, berhubung sepertinya banyak teman yang bertanya tentang proses parsing data, postingan ini saya post kembali di blog pribadi. Hitung-hitung nambah jumlah postingan 😀

Parsing data merupakan sebuah kegiatan yang wajib ada pada sebuah program, jika pada program tersebut terdapat pengolahan data terhadap sebuah paket data tertentu. Parsing data juga diperlukan pada sisi software dan hardware dari robosoccer. Data yang diperoleh dari komputer server mengharuskan hardware melakukan paring data terhadap paket data yang diterima. Pada postingan kali ini, akan dibahas mengenai program parsing data pada robot, yang mana pembuatan programnya menggunakan arduino IDE.

Pada program kali ini, terdapat beberapa bagian mulai dari program inisialisasi, terima data, parsing data, menampilkan data dan beberapa bagian lainnya. Berikut ini penjelasan singkat mengenai bagian-bagian pada program.

1. Deklarasi variabel

Deklarasi variabel digunakan untuk mengenalkan variabel-variabel yang akan digunakan. Terdapat beberapa variabel yang dideklarasikan sebagai variabel global, yaitu sebagai berikut :

 String dataIn;
 String dt[10];
 int i;
 boolean parsing=false;

 

2. Inisialisasi

Proses inisialisasi dan beberapa konfigurasi terletak pada fungsi setup(). Hal ini dikarenakan fungsi setup() adalah fungsi yang hanya dijalankan sekali saat program pertama kali dijalankan. Dengan kata lain fungsi setup() akan dijalankan pada saat rangkaian diberi sumber tegangan.

 void setup() {
   Serial.begin(9600);
   dataIn="";
}

pada program diatas, terdapat sebuah konfigurasi yang merupakan pengaktifan komunikasi serial dengan nilai baudrate sebesar 9600. Selain itu, variabel dataIn akan diinisialisasi dengan cara mengisi variabel tersebut dengan data kosong.

 

3. Terima data serial

Proses terima data serial terdapat didalam fungsi loop(). Setiap program yang ada didalam fungsi ini akan dijalankan terus selama rangkaian mendapatkan supplai tegangan. Kontroller selalu dalam posisi stand by untuk menerima data serial. Jika ada data masuk, maka data tersebut akan ditampung dahulu kedalam sebuah variabel bernama inChar. Variabel tersebut akan dicek, jika karakter yang diterima berupa karakter enter (‘\n’) maka proses penerimaan data selesai yang kemudian akan memberikan nilai true pada variabel parsing. Jika karakter yang diterima buka karakter enter, maka karakter tersebut akan ditampung terlebih dahulu kedalam sebuah buffer yang berupa variabel string bernama dataIn.
Jika variabel parsing bernilai true, maka menandakan proses parsing data dimulai. Proses parsing data dimulai dengan pemanggilan fungsi parsingData(). Dan proses parsing data pun dimulai.

void loop() {
  if(Serial.available()>0) {
    char inChar = (char)Serial.read();
    dataIn += inChar;
    if (inChar == '\n') {
    parsing = true;
  }
}

if(parsing){
    parsingData();
    parsing=false;
    dataIn="";
  }
}

 

4. Parsing data

Proses parsing data terjadi pada fungsi parsingData(). Sebelum proses parsing dimulai, data yang diterima yang telah ditampung sebelummnya ditampilkan/dikirimkan kembali melalui serial port.

Parsing data dilakukan dengan cara mengecek tiap karakter yang ada pada variabel dataIn. Tiap karakter tersebut akan dibandingkan dengan tail (karakter terakhir paket data) yang berupa karakter pagar (#) dan karakter pemisah antar data yang berupa karakter koma(,). Pengecekan dimulai dari index 1 (karakter kedua) variabel dataIn, hal ini dikarenakan index 0 (karakter pertama) merupakan header (karakter pertama) dalam paket data.

Setiap karakter yang telah melalui proses pengecekan, akan ditampung kedalam sebuah variabel string yang dikelompokkan dalam sebuah array yang diberi nama dt. Jika pada proses pengecekan ditemukan karakter koma (,), maka dengan otomatis variabel penampung data setelah dicek akan berpindah dengan cara increment index array nya. Proses tersebut akan terus dilakukan berulangkali sampai perulangan berakhir.

Setelah proses parsing data selesai, data hasil proses parsing yang terdapat pada array dt akan ditampilkan. Dengan begitu, proses parsing data pun selesai dilakukamn.

Berikut ini merupakan program yang terdapat pada fungsi parsingData().

void parsingData(){
int j=0;

//kirim data yang telah diterima sebelumnya
Serial.print("data masuk : ");
Serial.print(dataIn);
Serial.print("\n");

//inisialisasi variabel, (reset isi variabel)
dt[j]="";
//proses parsing data
for(i=1;i<dataIn.length();i++){
//pengecekan tiap karakter dengan karakter (#) dan (,)
if ((dataIn[i] == '#') || (dataIn[i] == ','))
{
//increment variabel j, digunakan untuk merubah index array penampung
j++;
dt[j]="";       //inisialisasi variabel array dt[j]
}
else
{
//proses tampung data saat pengecekan karakter selesai.
dt[j] = dt[j] + dataIn[i];
}
}

//kirim data hasil parsing
Serial.print("data 1 : ");
Serial.print(dt[0].toInt());
Serial.print("\n");
Serial.print("data 2 : ");
Serial.print(dt[1].toInt());
Serial.print("\n");
Serial.print("data 3 : ");
Serial.print(dt[2].toInt());
Serial.print("\n\n");
}

Hasil program :

parsing data

==================================
Semoga bermanfaat 🙂
Sumber : https://grsbatch5.wordpress.com/2013/02/19/parsing-data-di-arduino/

arduino pcArduino umumnya menggunakan komunikasi serial RS232 yang memanfaatkan rangkaian tambahan dengan komponen utama berupa IC MAX232, FT232, PL2303 maupun ATMega8U2 dan ATMega16U2 (pada arduino seri terbaru) untuk dapat terkoneksi dengan PC. Dengan komunikasi serial ini, kita dapat meng-upload program yang telah kita buat sebelumnya menggunakan arduino IDE ke board arduino. Selain itu, kita juga dapat mengkoneksikan arduino dengan PC sesuai dengan keinginan kita agar dapat saling berkomunikasi/bertukar data.

Saat board arduino terkoneksi dengan PC/laptop pertama kali, maka akan muncul permintaan untuk menginstal driver. Driver inilah yang menghubungkan arduino dengan COMPort yang ada pada PC/laptop. Berikut ini merupakan cara penginstalan driver tersebut.

 

Setelah berhasil melakukan penginstalan driver, maka secara otomatis arduino akan terdaftar pada salah satu COMPort pada PC. Kita dapat melihat COM yang digunakan dengan cara membuka device manager PC. Berikut ini merupakan COM yang digunakan oleh arduino pada PC saya.

(more…)

Jual IC atmega328, kosongan atau isi bootloader arduino UNO. cukup dengan harga Rp. 55.000 saja.

murah meriah, tapi performa tidak mengecewakan 🙂

spesifikasi :

Standard Package 14
Category Integrated Circuits (ICs)
Family Embedded – Microcontrollers
Series AVR® ATmega
Core Processor AVR
Core Size 8-Bit
Speed 20MHz
Connectivity I²C, SPI, UART/USART
Peripherals Brown-out Detect/Reset, POR, PWM, WDT
Number of I /O 23
Program Memory Size 32KB (16K x 16)
Program Memory Type FLASH
EEPROM Size 1K x 8
RAM Size 2K x 8
Voltage – Supply (Vcc/Vdd) 1.8 V ~ 5.5 V
Data Converters A/D 6x10b
Oscillator Type Internal
Operating Temperature -40°C ~ 85°C
Package / Case 28-DIP (0.300″, 7.62mm)

berikut ini penampakan ic nya :

ATMega8-1

Harga Rp. 55.000

belum termasuk ongkir

jika anda berminat silahkan hubungi saya 🙂

contact

Jual Arduino Mega 2560 (Kloning)

 

Jual murah arduino mega 2560murah meriah, hanya Rp. 310.000 belum termasuk ongkos kirim.
Arduino yang saya jual bukan arduino original dari italy, tapi arduino kloning. tapi jangan khawatir, walaupun kloning performa tetep sama dengan board arduino yg asli/original dari italy. tanpa panjang lebar, monggo dilihat penampakan arduinonya.

Arduino Mega-1 Arduino Mega-3 Arduino Mega-4 Arduino Mega-10

Fitur

Microcontroller ATmega2560
Operating Voltage 5V
Input Voltage (recommended) 7-12V
Input Voltage (limits) 6-20V
Digital I/O Pins 54 (of which 15 provide PWM output)
Analog Input Pins 16
DC Current per I/O Pin 40 mA
DC Current for 3.3V Pin 50 mA
Flash Memory 256 KB of which 8 KB used by bootloader
SRAM 8 KB
EEPROM 4 KB
Clock Speed 16 MHz

Kelengkapan

  • Arduino Mega 2560 board

Bonus

  • USB cable

harga : rp. 310.000

jika anda tertarik, silahkan hubungi saya via

sms/whatsapp di 085668040830,

atau dengan mengirim email ke

rifqi.thokz@gmail.com.

melayani jika ada pemesanan board mikrokontroller ataupun sistem kontrol, monitoring ataupun project.

selain arduino mega 2560, masih banyak lagi yang lainnya, silahkan kunjungi www.barelangstore.com

communicationAkhirnya, ada kesempatan untuk posting lagi setelah beberapa lama ga posting karena lagi ada kerjaan +  sibuk ngerjain tugas kuliah + malas yang bercampur menjadi 1. 😀

Postingan kali ini sebenernya untuk menjawab beberapa pertanyaan yang ada di postingan saya sebelumnya tentang Program kirim dan terima data via serial port di JAVA.

Nah, pada postingan ini ada beberapa penambahan pada source/program java untuk kirim dan terima data serial, yang mana nantinya aplikasi akan dikoneksikan ke hardware. Disini saya menggunakan arduino uno sebagai hardwarenya.

Pertama, akan saya paparkan dulu beberapa penambahan pada program JAVA untuk kirim dan Terima data serial.

Secara umum, dari segi tampilan tidak banyak berubah hanya saja saya tambahkan 1 textBox yang mana nantinya data pada textBox tersebut akan dikirimkan ke hardware/arduino. Selain itu saya tambahkan juga 2 buah jLabel yang saya gunakan untuk menandai mana textBox untuk menampilkan data yang diterima melalui serial port dan data yang akan dikirimkan.

Untuk tampilan aplikasi, silahkan susun sesuai dengan keinginan, berikut ini merupakan tampilan yang saya buat. Rada kacau + berantakan tapi alhamdulillah berfungsi dengan baik.

 java arduino serial port 1

Dari segi source/program ada beberapa penambahan, yaitu diantaranya sebagai berikut :

1.  Program tampilan (program saat tombol “Kirim Data” ditekan)

private void btnKirimActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
//Serial.kirimData((byte)'a');
Serial.kirimData(txtDataOut.getText());
}

Program diatas berfungsi untuk mengirimkan data yang ada pada txtDataOut melalui serial port.

2.  Program untuk kirim data

             Pada class SerialPort, khususnya untuk kirim data, saya tambahkan 1 fungsi lagi untuk menampung data string sebelum dikirimkan. Berikut ini adalah programnya.

public void sendChar(Byte a){
try {
outPut.write(a);
outPut.flush();
}
catch (IOException ex) {
//System.out.println("Kirim Gagal");
}
}

public void kirimData(String str){
for(int i=0; i&lt;str.length();i++){
sendChar((byte)str.charAt(i));
}
try{
outPut.write(10);
outPut.flush();
}
catch(IOException ex){}
}

2.  Program untuk terima data

       Pada program terima datanya, ada penambahan pada saat event terima data serial. Pada program sebelumnya, data akan diterima per karakter kemudian akan ditampilkan perkarakter pula. Sehingga, jika pada saat kita menerima sebuah data string, yang ditampilkan adalah karakter terakhir dari string tersebut. Jika karakter terakhir dari data yang kita kirimkan adalah berupa enter(new line) sehingga seolah-olah pada txtDataIn tidak menampilkan karakter yang diterima.

pada program yang baru, ada beberapa baris program yang saya tambahkan untuk menampung data yang masuk. Untuk menampilkan data string, maka data yang masuk perkarakter tersebut saya tampung dulu, nah penanda untuk menampilkan data tersebut adalah data enter(new line). Jadi, setiap data yang dikirimkan dari hardware ke aplikasi harus diakhiri dengan new line.

Berikut ini program terima datanya :

public void serialEvent(SerialPortEvent evt) {
if (evt.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
try {
if(dataSerial != '\n'){
dataSerial = (char) inPut.read();
dataIn = dataIn + String.valueOf(dataSerial);
System.out.print(dataIn);
System.out.print("\t");
System.out.print(dataSerial);
System.out.print("\n");
}
else{
window.txtDataIn.setText(dataIn);
dataSerial=' ';
dataIn="";
}
} catch (IOException ex) {
JOptionPane.showMessageDialog(null, ex.toString());
}
}
}

        Data yang masuk adalah data per karakter, kemudian saya tampung dahulu kedalam sebuah variabel bertype string yang saya beri nama dataIn. Kemudian setelah mendapat karakter new line, data yang ada pada variabel dataIn ditampilkan ke txtDataIn.

Setelah menambahkan beberapa program pada aplikasi, saya kemudian membuat sedikit program untuk menerima dan mengirim data pada arduino, yang mana program pada arduino ini saya ambil dari contoh SerialEvent. Berikut ini adalah program untuk hardware yang telah saya buat.

arduino Java

Pada program diatas, data yang masuk ditampung dahulu pada variabel inputString. Kemudian, sama seperti pada aplikasi setelah menerima data karakter new line data pada variabel inputString tadi akan dikirim balik ke aplikasi. Terjadi kesamaan saat mengolah data yang diterima antara aplikasi dan hardware, hal ini disebabkan karena library yang saya gunakan pada aplikasi sama dengan library yang digunakan pada IDE arduino.

berikut screenshot saat aplikasi dijalankan

java arduino serial port 2

java arduino serial port 3

Program aplikasi Java dan arduino diatas dapat didownload disini (aplikasi) dan disini (hardware/arduino).

Semoga bermanfaat. 🙂