Archive for the ‘Robotik’ Category

AN-0201 Merancang Robot KRCI/KRPAI Beroda dengan Sistem Fuzzy Logic (bagian 2)

Thursday, September 10th, 2015

Setelah kita mengetahui bahan-bahan yang digunakan maka pada kesempatan kali ini kita mulai membahas bagian perancangan robot. Berikut adalah bagian-bagian dari algoritma Robot KRCI kategori beroda.

Teknik Jelajah Ruangan

Proses penjelajahan ruangan dilakukan dengan menelusuri dinding-dinding ruangan untuk mencari ruangan yang mengandung titik api. Teknik penjelajahan dilakukan dengan menghitung jarak robot terhadap dinding-dinding ruangan. Untuk aplikasi Robot KRCI ini digunakan 6 buah sensor yang ditujukan pada 6 arah yaitu 1. Kiri, 2. Serong kiri, 3. Depan, 4. Serong Kanan, 5. Kanan dan 6. belakang.

Sensor yang digunakan adalah Sensor Ultrasonic HCSR04 dan Sensor Infrared GP2Y0A21. Sensor Ultrasonic digunakan untuk mengatasi gangguan berupa dinding kaca yang dapat mengacau sensor infrared dan Sensor Infrared digunakan untuk mengatasi gangguan berupa dinding tidak beraturan.

Artikel AN0185 Algoritma Robot KRCI Menjelajah Ruangan dengan Fuzzy telah menjelaskan teknik Fuzzy Logic pada aplikasi menjelajah ruangan dengan menggunakan Software Fudge. Pada kesempatan kali ini kami membahas teknik perancangan Fuzzy Logic tersebut dengan menggunakan Software Delta Robotic Studio yaitu sebuah Software IDE yang dirancang oleh Delta Electronic untuk membuat program mikrokontroler dengan menggunakan Sistem Flowchart.

Selain disain Flowchart, Delta Robotic Studio juga memiliki fitur Disain Fuzzy Logic. Pada dasarnya sistem Fuzzy Logic yang digunakan pada aplikasi ini adalah menentukan gerakan robot berdasarkan kondisi jarak robot terhadap dinding dari dan diukur dari 6 arah. Untuk itu pada awalnya didifenisikan 6 buah input yang diberi nama Sensor Kiri (~Kiri), Sensor Serong Kiri (~SKiri), Sensor Depan (~Depan), Sensor Serong Kanan (~SKanan), Sensor Kanan (~Kanan) dan Sensor Belakang (~Belakang).

Setiap sensor terlebih dahulu didefinisikan member functionnya dalam kategori ~dekat (sudah terlalu dekat dengan dinding), ~sesuai (pada jarak yang aman), ~jauh (di luar batas jarak aman) dan ~kosong (sangat jauh).

Kemudian Output Membership Function didefinisikan sebagai berikut

Setelah itu kita dapat memasukkan rule-fule untuk aplikasi ini satu persatu. Untuk mempermudah pembuatan rule akan lebih mudah bila dilakukan langsung di kondisi lapangan.

1. Download Buka Program KRCI3.flc dan download ke robot

2. LCD akan menampilkan jarak-jarak tiap sensor

3. Letakkan robot di lapangan dan perhatikan jarak-jarak tiap sensor serta tentukan robot harus bergerak ke mana. Contoh bila ~kiri dekat, ~skiri dekat, ~depan dekat  maka sudah pasti robot harus berbelok ke kanan

Setelah rule-rule dirasa cukup atau ingin mencoba reaksi rule maka gabungkan rule-rule ini dengan Source Code Robot KRCI dengan melakukan proses compile dengan menekan tombol Compile & Build.

Rule dan source code akan tergabung dalam file Hex dan dapat didownload ke robot.  Rule dapat diedit apabila masih ada yang kurang dari gerakan robot saat dicoba.

Teknik Pendeteksi Pintu Ruangan

Setiap ruangan diberi tanda dengan garis putih, untuk mengetahui apakah robot sudah mencapai pintu ruangan dilakukan dengan menambahkan makro sensor garis sehingga terbentuk decision di flowchart krci.flc sebagai berikut

Di sini saat Robot KRCI mendeteksi garis maka ditempatkan Makro Robot Stop yang akan menghentikan robot. Selanjutnya Smart UVTRON diaktifkan untuk mencari titik api.

Apabila titik api ditemukan, maka Smart UVTRON akan memadamkan dan robot mundur meninggalkan ruangan. Namun bila titik api tidak ditemukan, maka robot langsung mundur meninggalkan ruangan.

Pada aplikasi dasar di file krci3.flc ini memang Robot KRCI hanya mencari titik api di pintu dan mundur kembali tanpa memasuki ruangan. Dengan Sistem Flowchart, pengguna dapat dengan mudah mengubah algoritma Robot KRCI tanpa harus mengenali pemrograman mikrokontroler, contohnya saat titik api tidak ditemukan robot tetap maju menjelajah ruangan hingga ditemukan pintu berikutnya.

Teknik Pencarian Titik Api

Dengan bantuan Delta Smart UVTRON maka Robot KRCI ini tidak memerlukan algoritma yang rumit untuk melakukan pencarian titik api, bahkan proses scanning titik api juga dapat dilakukan sambil Robot KRCI tetap menjelajah ruangan. Robot KRCI hanya cukup memerintahkan Delta Smart UVTRON aktif atau tidak saja.

Saat Smart UVTRON aktif  maka servo pada Smart UVTRON akan bergerak mencari titik api. Titik api dianggap ditemukan setelah diperoleh intensitas api sesuai nilai yang telah disetting pada Smart UVTRON.  Kipas akan aktif hingga titik api dianggap padam.

Setelah titik api dianggap padam, Smart UVTRON akan memberitahukan ke Robot KRCI bahwa api telah padam. Dalam File KRCI3.flc ini, Robot KRCI diatur untuk mundur sebanyak 50x celah encoder terdeteksi, putar kanan sebanyak 100 celah encoder terdeteksi, maju dan kembali menjelajah ruangan.

Customize Macro

Bagi pengguna tingkat advance yang sudah mengenali pemrograman mikrokontroler juga diperkenankan untuk mengedit source code makro dengan cara sebagai berikut:

- Arahkan mouse ke daftar makro di kiri layar

- Klik kanan mouse dan klik edit

- Maka tampilah isi makro seperti pada gambar di bawah ini

Di sini source code maupun Icon makro dapat diedit.

Paulus Andi Nalwan, Delta Electronic

Download

- File Flowchart KRCI3.flc

- Software Delta Robotic Studio

Untuk Robot Siap pakai dapat dibeli di sini

AN-0199 Merancang Robot KRCI/KRPAI Beroda dengan sistem Fuzzy Logic (bagian 1)

Wednesday, September 9th, 2015

Artikel berikut ini akan membahas aplikasi Robot KRCI yaitu robot pemadam api yang biasa digunakan pada Kontes Robot Cerdas Indonesia dengan teknik-teknik yang telah disesuaikan dengan aturan-aturan KRCI.

Sebelum membahas mengenai teknik perancangan, terlebih dahulu perlu diketahui bahan-bahan yang digunakan.

Wild Thumper Gear Box motor ratio 75:1

Robot KRCI beroda bergerak dengan menggunakan Motor DC dan dalam hal ini kita gunakan Wild Thumper Gear Box Motor yang mempunyai torsi 8 Kg dengan RPM 133. Untuk mengetahui jumlah putaran motor dapat ditambahkan encoder yang mendeteksi jumlah perpotongan celah yang terjadi.

Wild Thumper Encoder

Wild Thumper Encoder adalah encoder yang sudah didisain sesuai dengan konstruksi motor Wild Thumper

Pololu BCM Wheel

Merupakan Roda yang didisain sesuai dengan as Wild Thumper Motor dengan diameter 60mm

SST-06 Sub System 06 30A DC Driver

Merupakan Kit Driver Motor produksi Delta Electronic yang mampu mengendalikan dua buah motor dengan arus maksimal 30A. Modul ini juga memiliki mikrokontroler sehingga dapat mengatur sendiri mode kerjanya sebagai DC Control atau Servo Control. CPU Robot cukup mengirimkan perintah-perintah melalui serial dan Sub System ini akan mengatur gerakan motor sesuai perintah tersebut.

ST-51 Small System AT8951 + USB Downloader

Merupakan Sistem Minimum AT89S51 yang paling ekonomis dan sudah dilengkapi dengan USB Downloader yang kompatibel dengan Delta Robotic Studio, AVR Studio, Code Vision dll

HC-SR04 Ultrasonic Proximity Sensor

Merupakan Sensor Ultrasonic pengukur jarak yang berfungsi untuk mengukur jarak robot terhadap dinding. Sensor ini dapat mengatasi kondisi dinding kaca karena tidak terpengaruh dengan pantulan cahaya.

GP2Y0A21 Infrared Object Detector

Merupakan Sensor Infrared Pengukur jarak yang berfungsi untuk mengukur jarak robot terhadap dinding. Sensor ini dapat mengatasi kondisi dinding uneven (dinding tak rata)

DST Navi Range Finder & Navigation Sensor

Merupakan Sensor Controller yang menangani akses ke 8 Sensor Ultrasonic, 8 Sensor GP2Y0A21 dan Digital Compass. Namun dalam aplikasi kali ini hanya digunakan 6 Sensor saja.

Delta Smart UVTRON

Merupakan sistem sensor api yang dilengkapi motor servo sehingga dapat melakukan scanning posisi api tanpa harus menggerakan robot. Juga terdapat High Speed Fan yang dapat memadamkan api dari jarak maksimum 100 cm.

DSF-01 Delta Single Line Follower

Berfungsi sebagai sensor penjejak garis putih dan akan memberikan kondisi logic 0  saat mengenai garis putih dan 1 saat di bagian hitam.

Berikut adalah video klip percobaan pertama dari Robot KRCI Beroda

Paulus Andi Nalwan, Delta Electronic

AN-0198 Dasar Robotika 3 – Kerangka Robot

Tuesday, May 27th, 2014

Kerangka robot berdasarkan jenisnya terdiri dari:

Kerangka Robot Vehicle

Robot Vehicle adalah jenis robot beroda seperti pada Delta Robo Kits. Berikut adalah bagian-bagian dari kerangka Delta Robo Kits

Robot Vehicle biasanya memiliki roda, berikut adalah roda yang diproduksi oleh Delta Electronic yaitu Delta Robo Wheel V2 yang memiliki bagian-bagian sebagai berikut:

Kerangka Robot Walker

Robot walker adalah robot yang digerakkan oleh kaki, konstruksi yang
paling mudah adalah robot berkaki enam yang didisain dengan
menggunakan motor DC di mana gerakan memutar akan dikonversi
menjadi gerakan melangkah pada robot.

Robot Walker Sederhana

Untuk robot walker yang lebih kompleks, gerakan setiap kaki bukan lagi menggunakan gerakan memutar namun gerakan sudut yang dilakukan oleh motor servo. Sebagai contoh adalah robot laba-laba DH-18

Kerangka Robot Appendage

Robot Appendage didisain menyerupai bentuk lengan dan berfungsi
untuk memindahkan barang.

Paulus Andi Nalwan, ST Delta Electronic

Hardcopy

Dapatkan versi hardcopy disertai cara-cara membuat robot di sini

AN-0197 Dasar Robotika 2 – Motor Servo

Saturday, May 24th, 2014

Berbeda dengan motor DC, motor servo tidak bergerak kontinyu melainkan hanya menuju ke sudut tertentu dan berhenti di sudut tersebut. Motor ini digunakan untuk aplikasi gerakan-gerakan sudut dari robot contohnya gerakan lengan, gripper menjepit benda atau gerakan kaki melangkah.

Gambar 1 menunjukkan motor servo yang sering digunakan pada aplikasi robotik.

Motor Servo

Motor servo ini terdiri dari beberapa bagian sebagai berikut:

Jangkar untuk menghubungkan motor servo dengan obyek-obyek yang akan digerakkan.

Lubang Jangkar bagian ini berfungsi untuk menempatkan sekrup yang mengaitkan jangkar ke obyek-obyek yang akan digerakkan. Pada gambar 14 tampak lubang jangkar dihubungkan ke obyek dengan sekrup untuk gerakan memutar.

Lubang Sekrup yang berfungsi untuk mengaitkan motor servo dengan tubuh robot

Housing Servo, di dalam bagian ini terdapat motor DC, gearbox dan rangkaian pengatur sudut servo

Kabel, kabel yang menghubungkan rangkaian servo dengan pengendali servo

Konektor, konektor 3 pin yang terdiri dari input tegangan positif (+), input tegangan negatif (GND) dan input pulsa (Signal) dengan konfigurasi seperti pada gambar 4

jangkar motor servo

Gambar 2 Pemasangan obyek pada jangkar untuk gerakan memutar

motor servo pengait
Gambar 3 Pemasangan obyek untuk gerakan mengait

Pin Out Motor Servo
Gambar 4. Pin Out Motor Servo

Tidak seperti pada Motor DC, untuk mengendalikan motor servo harus dilakukan dengan terlebih dahulu melalui rangkaian pengatur sudut di mana rangkaian ini membutuhkan masukan berupa pulsa. Pada umumnya pulsa servo berada di antara 1 hingga 2 mS di mana 1.5 mS adalah merupakan titik tengahnya seperti tampak pada gambar 5

pulsa servo

Gambar 5. Pulsa Servo

Parameter-parameter yang perlu dipertimbangkan dalam memilih motor servo adalah:

  • Tegangan operasi: Tegangan sumber dari motor servo, contohnya pada HS-645MG adalah 4.8V – 6V.
  • Operating Speed atau kecepatan operasi: Merupakan kecepatan servo untuk bergerak menuju sudut tertentu. Contoh pada HS-645MG adalah 0.24 detik untuk menuju sudut 60 ?C pada tegangan 4.8V dan tanpa beban
  • Stall Torque adalah torsi paling maksimum yang dapat dilakukan oleh motor servo ini. Kondisi ini tidak boleh berlangsung terlalu lama. Contoh pada HS-645MG adalah 9.6 kg.cm yang artinya adalah menarik beban 9.6 kg dengan jangkar sepanjang 1 cm.
  • Current Drain adalah arus yang digunakan motor servo. Contoh pada HS-645MG 9.8mA saat standby dan 450mA saat beroperasi / bergerak tanpa beban
  • Dead Band Width adalah akurasi servo dalam bergerak. Gerakan servo baru terjadi apabila perubahan pulsa lebih besar ari 6 uS

Pulsa motor servo biasanya dibangkitkan oleh komponen cerdas seperti mikrokontroler atau modul elektronik Delta Servo Controller. Modul Delta Servo Controller berfungsi untuk membangkitkan pulsa-pulsa untuk mengendalikan motor servo dari PC. Dengan bantuan software PC Servo Controller maka enam motor Servo dapat dikendalikan dengan menggeser-geser panel yang ada pada software tersebut.

Gambar 6. PC Servo Controller

Paulus Andi Nalwan, ST Delta Electronic

Hardcopy

Dapatkan hardcopy artikel ini di

Dapatkan versi hardcopy disertai cara-cara membuat robot di sini

Modul Pendukung
- DSR-08 Delta Servo Controller

AN-0193 Dasar Robotika 1 – Motor DC

Sunday, March 24th, 2013

Pada sebuah robot, motor ini merupakan bagian penggerak utama di mana hampir setiap robot pasti selalu menggunakan motor DC. Kecuali beberapa robot yang menggunakan pneumatic, muscle wire atau motor AC.

Motor DC terdiri dari sebuah magnet permanen dengan dua kutub dan kumparan, cincin belah yang berfungsi sebagai komutator (pemutus arus)

  1. Arus mengalir dari sisi kiri cincin belah ke sisi kanan. Arus ini akan dilanjutkan ke kumparan yang terkait pada cincin belah
  2. Arus mengalir dalam kumparan menimbulkan medan magnet dan membentuk kutub-kutub magnet pada kumparan
  3. Kutub magnet yang sama dengan kutub magnet permanen akan saling tolak menolak dan kumparan akan bergerak memutar hingga kumparan berada pada posisi di mana kedua kutubnya berbeda dengan kutub magnet permanen.

Fase 1 Motor DC

Fase 2 Motor DC

  1. Perputaran kumparan yang terkait pada cincin belah akan mengakibatkan perubahan polaritas pada kumparan karena sikat-sikat (brush) yang dialiri listrik terhubung pada sisi cincin belah yang berbeda
  2. Perubahan polaritas kumparan juga mengakibatkan perubahan kutub pada kumparan sehingga kumparan kembali bergerak memutar.
  3. Proses tersebut terjadi berulang-ulang sehingga kumparan akan berputar secara kontinyu selama aliran arus terjadi pada kedua kutub sikat.

Arah putaran motor DC dapat diubah dengan mengubah polaritas aliran arus yang terhubung ke sikat-sikatnya. Sedangkan kecepatan putar motor tergantung dari berapa besar arus yang mengalir. Paulus Andi Nalwan, Delta Electronic

Hardcopy

Dapatkan versi hardcopy disertai cara-cara membuat robot di sini

Buku Robot Dasar

Artikel-artikel pendukung

AN0182 Membangun Sistem Mekanik Pada Robot KRCI kategori beroda

AN0181 Membangun Rangkaian Elektronik Robot Beroda

AN0043 Pengaturan Arah Motor DC

Bahan-bahan pendukung

AN-0189 Aplikasi Micro Tank Dengan Remote Sony

Friday, July 20th, 2012

Pada aplikasi kali ini akan membahas mengenai penggunaan protocol remote sony sebagai sarana untuk pengaturan robot micro tank. Micro tank ini sendiri dilengkapi dengan sensor infra merah yaitu TSSOP dan juga infraled diode untuk memancarkan sinyal infra merah sesuai dengan protocol remote sony. Adapun protocol remote sony adalah seperti dibawah ini:

Gambar 1 Protokol Remote Sony

Dari gambar 1 diatas dapat dilihat bentuk gelombang yang dipancarkan remote sony. Data remote itu sendiri terdiri dari :

  • Start bit
  • Space
  • 7 bit perintah
  • 5 bit alamat

Untuk pengiriman data, remote sony ini menggunakan data lsb duluan kemudian data msb. Sedangkan yang dibaca oleh mikrokontroler adalah output TSSOP, gambar bawah pada gambar 1. Dimana output dari TSSOP ini adalah kebalikan dari ouput remote sony, sehingga kita nanti pada program untuk pembacaan lebar pulsa ini kita baca pada level low. Untuk membedakan antara ‘0’ dan ‘1’ pada protocol remote sony ini menggunakan lebar pulsa, untuk ‘0’ lebar pulsanya 0,6 ms sedangkan untuk ‘1’ selebar 1,2 ms. Sedangkan untuk start bit lebar pulsanya sebesar 2,4 ms. Jadi nantinya pada program kita harus mengukur lebar pulsa tersebut untuk dapat membedakan start bit dan data.

Untuk memancarkan kembali kita juga harus menuruti aturan seperti diatas tersebut, dimana kita harus menghasilkan pulsa dengan lebar pulsa yang sesuai dengan remote sony. Hal ini diperlukan untuk kompatibilitas dengan remote sony, dan juga ini digunakan untuk proses tembakan yang digunakan oleh mini tank. Setelah kita memahami semua bentuk protocol dari remote sony baru kita bisa membuat program yang akan mendecode protocol dari remote sony tersebut.

TSSOP ini adalah komponen yang akan menerima sinyal infra merah, pada prinsipnya sinyal infra merah ini dimodulasikan pada frekuensi 40Khz. Sehingga sinyal infra merah yang dipancarkan bisa mencapai jarak yang jauh. Nantinya pada program untuk memancarkan sinyal infra merah ini akan memodulasikan sinyal infra merah pada frekuensi 40Khz. Pada TSSOP sudah terintegrasi rangkaian yang akan memodulasikan sinyal infra merah yang diterima, kemudian akan mengeluarkan pulsa ‘0’ jika menerima sinyal infra merah yang dimodulasikan pada frek 40Khz. Sehingga memudahkan kita dalam program, karena kita tidak perlu membuat program untuk mendemodulasikan sinyal infra merah yang diterima.

Setelah selesai membahas protocol remote sony yang kita gunakan untuk komunikasi data dari satu mini tank ke micro tank yang lain. Sekarang kita memahami bagian penggerak dari micro tank itu sendiri. Micro tank ini menggunakan 2 motor yang mini, sesuai dengan namanya, sehingga memudahkan kita dalam penggunaannya. Motor ini tidak membutuhkan arus yang besar sehingga tidak diperlukan driver untuk menggerakkan motor ini. Gambar berikut ini menggambarkan sambungan dari mikrokontroler ke motor. Dari gambar dapat dilihat rangkaian yang sangat sederhana. Mikrokontroler mampu memberikan arus sebesar 20 mA setiap output. Jadi untuk membuat motor bergerak maju dan mundur dengan cara mengatur level output mikrokontroler yang tersambung ke motor.

Hubungan Motor dengan Mikrokontroler

Setelah membahas sambungan maupun rangkaian kita mulai membahas program. Pertama kita akan membahas mengenai pembacaan remote sony, potongan program dibawah ini merupakan program yang digunakan untuk mendefinisikan port mikro sebagai input, mengaktifkan timer untuk mengukur lebar pulsa dari sinyal infra merah yang diterima.

DDRD=0xFB

PORTD=0×04

void baca data infra(void)

{

uint8_t i;

perintah infra=0;

alamat infra=0;

TCCR1B=0×02;

TCNT1=0;

while( !(PIND & 0×04) );

if( TCNT1>2400 )

{

while( PIND & 0×04);

for( i=0; i<7; i++ )

{

TCNT1=0;

while( !(PIND & 0×04) );

if( TCNT1>1200 ) perintah infra|=0×80;

while( PIND & 0×04 );

perintah infra>>=1;

}

for( i=0; i<5; i++)

{

TCNT1=0;

while( !(PIND & 0×04) );

if( TCNT1>1200 ) alamat infra|=0×80;

while( PIND & 0×04 );

alamat infra>>=1;

}

}

perintah infra&=0×7F;

alamat infra>>=2;

alamat infra&=0×1F;

TCCR1B=0×00;

}

Pada potongan program diatas, baris 1 untuk mendefinisikan port d.2 sebagai input, kemudian baris 2 untuk mengaktifkan pull up pada port tersebut. Pada prosedur baca data infra kita harus mengisikan data perintah dan alamat infra dengan nilai 0. Kemudian mengaktifkan timer 1 dengan frek 1 Mhz, dan kita harus mengisikan nilai timer dengan 0 . Kemudian menunggu selama pin infra merah dalam level low, itu dilakukan dengan perintah “while (!(PIND&0×04))” kemudian kita ukur lebar pulsa yang diterima. Hal ini dilakukan dengan membaca nilai timer, karena timer tadi kita aktifkan dengan frek 1Mhz maka didapat periode = 1us. Setelah didapat lebar pulsa, kemudian dicek apakah lebar pulsanya mencapai 2,4ms, jika ya berarti ada start bit yang diterima, lihat gambar 1,kita lanjutkan untuk pengecekan  data perintah dan data alamat yang dikirimkan. Pada gambar 1 terlihat setelah start bit maka berikutnya adalah data perintah sebanyak 7 bit, maka diperlukan pembacaan lebar pulsa sebanyak 7 kali. Pada potongan program diatas terlihat “for(i=0;i<7;i++)” perintah ini merupakan perintah untuk melakukan pengulangan. Kemudian dilakukan pengukuran lebar pulsa, jika lebar pulsa=1,2 ms maka data bitnya adalah 1 sedangkan jika 0,6ms data bitnya ‘0’ , setelah dilakukan pengukuran lebar pulsa, data bit digeser 1 bit kekiri ini dilakukan karena pada pengiriman data remote sony adalah lsb duluan. Setelah dilakukan pengecekan perintah infra berikutnya kita harus melakukan pengecekan alamat infra, alamat infra ini sebanyak 5 bit, lihat gambar 1. Prosedur pengukuran lebar pulsa pada pengecekan alamat infra ini sama dengan pengecekan perintah infra, yang beda hanya banyak pengulangan yang dilakukan.

Data dari setiap tombol yang ada pada remote sony berbeda-beda perintahnya, kita tinggal menentukan tombol mana saja yang digunakan untuk menggerakkan robot. Hal ini dapat dilakukan dengan menampilkan data remote yang diterima melalui serial port. Pada saat tombol di remote  ditekan secara terus menerus maka dilakukan pengiriman data secara terus menerus juga dengan jeda waktu 30ms. Berikutnya setelah data diterima tinggal kita menerjemahkan data tersebut menjadi pergerakan robot.

Berikut ini diberikan potongan program untuk menggerakkan robot mini tank, sebenarnya untuk pergerakan robot ini progamnya sangat mudah, hanya diperlukan untuk mengatur port-port mikro. Karena motor langsung terhubung ke port mikro dan tidak menggunakan driver motor.

void belok kanan(void)

{

ML_P_OUT;

ML_M_OUT;

MR_P_OUT;

MR_M_OUT;

ML_P_HIGH;

ML_M_LOW;

MR_P_HIGH;

MR_M_LOW;

}

void belok kiri(void)

{

ML_P_OUT;

ML_M_OUT;

MR_P_OUT;

MR_M_OUT;

ML_M_HIGH;

ML_P_LOW;

MR_M_HIGH;

MR_P_LOW;

}

void mundur(void)

{

ML_P_OUT;

ML_M_OUT;

MR_P_OUT;

MR_M_OUT;

ML_P_HIGH;

ML_M_LOW;

MR_M_HIGH;

MR_P_LOW;

}

void maju(void)

{

ML_P_OUT;

ML_M_OUT;

MR_P_OUT;

MR_M_OUT;

ML_M_HIGH;

ML_P_LOW;

MR_P_HIGH;

MR_M_LOW;

}

void berhenti(void)

{

ML_P_IN;

ML_M_IN;

MR_P_IN;

MR_M_IN;

}

Dengan potongan program diatas sudah dapat menjalankan robot micro tank untuk bergerak maju, mundur, belok kiri dan belok kanan.

Selamat berkreasi

AN0185 Algoritma Robot KRCI Menjelajah Ruangan dengan Fuzzy

Saturday, March 24th, 2012

Hal pertama yang perlu dilakukan oleh Robot KRCI pada saat pertandingan adalah menjelajah ruang untuk mencari titik-titik api. Untuk menjelajah ruang-ruang tersebut dibutuhkan algoritma tertentu agar robot tidak menabrak dinding. Dengan bantuan Modul DST-NAVI maka 8 buah sensor jarak baik inframerah maupun ultrasonik dapat dihubungkan pada robot dengan mudah. Namun untuk kondisi standard, 6 buah sensor sudah cukup baik. yaitu di posisikan di kiri, serong kiri, depan, serong kanan, kanan dan belakang.

Keenam sensor tersebut akan selalu mengukur jarak terhadap obyek di saat robot berjalan dan memutuskan ke arah mana robot bergerak berdasarkan jarak-jarak sensor terhadap obyek.

Masing-masing sensor dalam mendeteksi jarak memiliki 4 level jarak yaitu dekat, sesuai, jauh dan kosong. Dekat artinya robot sudah terlalu dekat dengan dinding, Sesuai artinya jarak robot dengan dinding berada di posisi aman (tidak terlalu jauh atau dekat). Jauh artinya jarak robot terlalu jauh dari dinding, sehingga apabila robot ingin menyusuri dinding tersebut, robot harus bergerak mendekati dinding. Sedangkan Kosong artinya jarak sensor sangat jauh dengan obyek karena adanya lorong di depan atau belokan (untuk sensor samping.

Agar pengguna dapat lebih mudah / fleksibel dalam mem-program gerakan robot berdasar kondisi-kondisi sensor, digunakan metode Fuzzy.

Untuk mengembangkan proses fuzzy ini dibutuhkan dua buah software yaitu Software Fuzzy Development yang bekerja di PC / Laptop yang digunakan untuk mendisain proses fuzzy dan Kernel Fuzzy pada mikrokontroler. Untuk Software Fuzzy Development dapat dilakukan dengan menggunakan Software FUDGE yang dikembangkan oleh Motorola. Dengan software ini akan menghasilkan kode database yang akan menjadi acuan Kernel Mikrokontroler untuk melakukan proses Fuzzy.

Perancangan sistem fuzzy ini dilakukan dengan langkah-langkah sebagai berikut:

  1. Tentukan Crisp Input

Crisp input dalam hal ini adalah merupakan karakteristik sensor di mana bagian ini akan diisi sesuai dengan karakteristik sensor yang digunakan. Dalam aplikasi ini digunakan 6 buah sensor jarak yaitu Sensor Kiri, Sensor Serong Kiri, Sensor Depan, Sensor Serong Kanan, Sensor Kanan dan Sensor Belakang di mana masing-masing sensor memiliki range antara 0 – 255

Number of member function adalah jumlah level yang dideteksi oleh sensor tersebut seperti yang dijelaskan di atas yaitu (dekat, sesuai, jauh, kosong)

2. Atur Input Membership Function di mana pada proses ini dilakukan pengaturan pada jarak berapa sensor dianggap dekat, sesuai, jauh atau kosong.

3. Tentukan Crisp Output. Dalam aplikasi ini output adalah proses gerakan robot dan terdiri dari 8 jenis gerakan.

Pengaturan Output Membership Function

4. Tentukan Output Membership Function di mana pada bagian ini akan dinyatakan gerakan apa yang dilakukan oleh robot saat diperoleh output tersebut.

Pengaturan Output Membership Function

5. Buat rule-rule yang berupa apa yang harus dilakukan saat diperoleh kondisi tertentu pada sensor. Contoh rule 1, jika sensor kiri dekat, serong kiri dekat, depan jauh maka robot akan putar kanan.

6. Generate Code dan gabungkan code yang dihasilkan ke program utama bersama kernel fuzzy.

7. Untuk menyimpan hasil disain fuzzy dilakukan dalam file Save.FDG melalui menu File – Save As.

8. Dengan menggunakan File Save.FDG yang ada pada Paket CD Robot KRCI, robot akan berjalan menyusuri sisi sebelah kiri dinding.

Source Code untuk aplikasi ini dapat diperoleh pada setiap pembelian

Robot KRCI dengan 6 sensor ultrasonic SRF-05/04

Robot KRCI dengan 6 SRF05 dan 6 Sensor Infrared GP2D12

Robot KRCI Pro Version

Paulus Andi Nalwan, Delta Electronic

AN-0188 Instalasi Delta Smart UVTRON pada Robot Laba-laba MSR-H01

Tuesday, March 20th, 2012

Modul ini adalah modul UVTRON cerdas yang dapat mencari posisi titik api hanya dengan sebuah perintah dari mikrokontroler robot. Hal ini akan mempermudah pemrograman dan efisiensi program karena proses pencarian titik api dilakukan oleh modul ini berdasarkan perintah dari mikrokontroler robot. Pencarian titik api dilakukan dengan proses scanning motor servo dengan sudut tertentu sehingga robot tidak harus bergerak ke kiri atau ke kanan untuk mencari titik api. Proses scanning dapat dilakukan sambil robot tetap berjalan bebas.

Setelah titik api ketemu, maka Delta Smart UVTRON dapat diatur untuk langsung mengaktifkan kipas atau hanya memberi info pada mikrokontroler robot bahwa titik api ditemukan.

Bagian-bagian Paket

  1. Kipas
  2. Smart UVTRON Microcontroller, bagian mikrokontroler yang berfungsi mendeteksi sinyal UVTRON, menggerakkan servo dan mengaktifkan kipas.
  3. Relay 12 Volt, relay untuk mengaktifkan motor DC penggerak kipas
  4. UVTRON Reflector, bagian yang memfokuskan sinar ultraviolet yang diterima UVTRON sehingga hanya bagian yang tepat didepan celah yang dapat terdeteksi.
  5. UVTRON Driver, rangkaian pembangkit tegangan DC 400 Volt untuk mengaktifkan UVTRON R9454 dilengkapi rangkaian pengkondisi dengan keluaran level TTL
  6. Battery 12 Volt + holder, battery sumber daya bagi UVTRON maupun relay.
  7. High Speed DC Motor, motor DC kecepatan tinggi untuk menggerakkan kipas.

Bagian-bagian Delta Smart UVTRON

Instalasi Delta Smart UVTRON kit pada MSR-H01

  1. Pasang High Speed DC Motor pada Pan Tilt Head seperti pada gambar berikut. Kabel motor sifatnya non polarity sehingga bebas untuk dibolak balik di mana posisi kabel hanya akan mengubah arah putaran kipas

    Instalasi High Speed DC Motor pada Pan Tilt Head

  2. Pasang UVTRON + Driver di atas jangkar servo dan motor

Instalasi UVTRON Driver

3. Pasang Reflektor UVTRON pada sensor UVTRON

UVTRON reflektor

4. Pasang kabel konektor 3 pin ke Delta Smart UVTRON Microcontroller dan Battery holder 12 Volt

Delta Smart UVTRON Microcontroller

5. Pasang Kipas di High Speed DC Motor dan hubungkan kabel konektor 3 pin ke UVTRON driver

Delta Smart UVTRON Fan

6. Pasang Delta Smart UVTRON kit pada kerangka MSR-H01

Delta Smart UVTRON pada MSR-H01

Wiring Diagram Instalasi ST-8535 – Delta Hex Engine dan Delta Smart UVTRON


Wiring Diagram Delta Smart UVTRON dengan ST-8535


Cara Kerja Sistem

Delta Smart UVTRON kit bergerak melacak titik api dengan menggerakkan servo ke arah CW dan CCW pada sudut tertentu dengan kecepatan 60 derajat per detik. Reflektor UVTRON berfungsi agar titik api hanya terdeteksi saat berada tepat di depan bagian celah reflektor sehingga lebih terfokus.

Saat api terdeteksi, gerakan servo akan melambat dan bergerak bertahap menuju ke titik api dan berhenti saat UVTRON tepat berada di depan titik api. Untuk mengetahui apakah UVTRON telah berada di depan titik api dilakukan dengan mendeteksi frekwensi yang dihasilkan oleh UVTRON Driver. Mikrokontroler yang ada pada Modul Smart UVTRON Microcontroller akan melakukan sampling setiap 150 mS. Pada saat titik api terdeteksi, maka akan ada sejumlah pulsa yang terdeteksi pada setiap kali sampling, semakin dekat arah UVTRON ke titik api maka akan semakin banyak pula pulsa yang diperoleh. Saat diperoleh sejumlah pulsa tertentu maka akan merupakan indikasi bahwa sensor telah mendekati arah titik api.

Melakui protokol yang dikirimkan ke Delta Smart UVTRON Microcontroller maka dapat diatur berapa pulsa di mana UVTRON dianggap telah mengarah ke titik api. Selain itu kadang-kadang diperoleh kondisi di mana pulsa maksimum sudah diperoleh walau sensor belum mengarah sepenuhnya seperti pada kondisi pada gambar berikut.

Pada gambar tersebut terlihat bahwa pulsa yang terdeteksi sudah mencapai maksimum padahal sensor belum terarah tepat ke titik api. Agar dapat dipastikan UVTRON dapat mengarah tepat ke titik api maka dapat dilakukan pengaturan di mana titik api dinyatakan ketemu saat kondisi pulsa maksimum diperoleh berturut-turut selama sejumlah sampling tertentu. Contohnya nilai 3 berarti titik api ditemukan setelah 3 kali sampling berturut-turut adalah sejumlah pulsa maksimum. Nilai ini disebut Nilai Api Ketemu pada bagian protokol.

Saat titik api ditemukan, Smart UVTRON Microcontroller dapat diatur untuk langsung mengaktifkan kipas atau hanya memberitahu mikrokontroler robot bahwa titik api telah ketemu dengan memberikan logika 0 pada bagian Output Smart UVTRON Microcontroller.

Saat titik api hilang, maka kipas akan otomatis padam dan proses scanning kembali berjalan. Hilangnya titik api diketahui dengan tidak adanya pulsa lagi pada saat sampling. Namun seringkali api yang kecil juga tidak akan menimbulkan pulsa lagi oleh karena itu keputusan api telah padam sebaiknya tidak langsung diputuskan hanya dalam satu kali sampling. Jumlah sampling di mana api dianggap padam dapat diatur pada nilai Nilai Api Hilang pada bagian protokol. Pada kondisi standard nilai ini adalah 3.

Kecepatan gerak servo saat titik api ditemukan juga dapat diatur di bagian Durasi Gerak dalam satuan 20uS pada bagian protokol. Pada kondisi standard nilai ini adalah 8000h atau 32768 x 20uS = 0.65 second.

Posisi servo saat titik api ditemukan juga dapat dideteksi dengan perintah meminta info ke Delta Smart UVTRON Microcontroller.

Kipas juga dapat diaktifkan dan non aktif secara manual melalui protokol.

Kadang-kadang pada kondisi tertentu, proses scanning diperlukan dalam sudut yang tidak terlalu besar karena masalah mekanis, untuk itu pengguna dapat mengatur arah maksimum CCW dan CW servo melalui protokol juga.

Untuk memastikan api benar-benar padam, juga terdapat perintah untuk mengaktifkan kipas sambil menggerakkan servo CW dan CCW untuk menyapu titik-titik api.

Deskripsi I/O Delta Smart UVTRON Microcontroller

SERVO           : Port Output PWM ke Motor Servo

KIPAS            : Port Output untuk mengaktifkan kipas. Logika 0 = kipas aktif, Logika 1= kipas non aktif

TXD    : Output UART Delta Smart UVTRON Microcontroller

RXD   : Input UART Delta Smart UVTRON Microcontroller

GND   : Input Power 0 Volt

VCC    : Input Power 5 Volt

UVTRON       : Input yang diambil dari keluaran UVTRON Driver C10423

CONTROL     : Input pemilih modul di mana pada saat logika 0 data perintah yang dikirim ke

UART akan diproses, pada logika 1 semua data yang masuk ke UART akan

diabaikan.

BUSY : Output yang mengindikasikan modul siap untuk dikirim perintah. Logika 0 adalah status

non busy di mana hal ini akan memberitahukan mikrokontroler robot bahwa perintah

boleh dikirimkan dan sebaliknya pada logika 1.

OUTPUT        : Output yang mengindikasikan bahwa posisi titik api telah ditemukan sehingga

mikrokontroler robot dapat memberikan keputusan selanjutnya.

Algoritma pengiriman protokol

  1. Tunggu kondisi tidak busy dengan mencari kondisi logika 0 pada port ini.
  2. Beri logika 0 pada input control untuk memilih modul ini.
  3. Kirimkan data UART sesuai protokol.

Pengaturan Komunikasi:

-          Baudrate 57600 bps

-          8 bit

-          No Parity

-          None

Protokol Data

PROTOKOL DARI MASTER / PC KE Delta Smart UVTRON
Byte Nilai Deskripsi
00 1E Awal Paket
01 30h ID Smart UVTRON
02 01 Selalu 01
03 00 ID Pengirim adalah Master/PC
04 00 – FF Nomor urut Master/PC
05 01 – FF Panjang data mulai byte 6 hingga sebelum checksum
06 01 – 05 01 Mode Setting, 02 Minta info, 03 aktivasi kipas, 04 aktivasi kipas + Scan
05 aktivasi scan
07+panjang+1 Checksum di mana total semua data + checksum = 00
Mode Setting
Byte Nilai Deskripsi
06 01 Perintah Setting
07 01 – FF Durasi Gerak dalam satuan per 20uS
08 01 – FF Nilai Setting Api atau jumlah pulsa dalam sampling 150mS di mana
dianggap pulsa maksimum titik api terdeteksi
09 01 – FF Nilai Api hilang, jumlah sampling di mana diperoleh nilai 0 pulsa berturut2
10 01 – FF Nilai Api Ketemu, jumlah sampling di mana diperoleh nilai max pulsa
berturut-turut
11 00 / 01 Control kipas otomatis, 00 = kipas tetap padam, 01 = kipas langsung aktif
saat titik api diperoleh
Minta Informasi
Byte Nilai Deskripsi
06 02 Perintah minta info
Aktivasi Kipas
Byte Nilai Deskripsi
06 03 Perintah aktivasi kipas
07 00 / 01 00 = Kipas non aktif, 01 = kipas aktif
Aktivasi Kipas dan Scan
Byte Nilai Deskripsi
06 04 Perintah aktivasi kipas dan Scan
07 00 / 01 00 = Kipas dan scan non aktif, 01 = kipas dan scan aktif
Aktivasi Scan
Byte Nilai Deskripsi
06 05 Perintah aktivasi scan
07 00 / 01 00 = Scan non aktif, 01 = scan aktif
PROTOKOL dari Delta Smart UVTRON ke PC / MASTER
Byte Nilai Deskripsi
00 1E Awal Paket
01 00 ID Master / PC
02 00 – FF Nomor urut Master/PC
03 30 ID Delta Smart UVTRON
04 01 Selalu 01
05 01 – FF Panjang data
06 02 02 = Data informasi jarak, 06 = ACK
07+panjang+1 Checksum di mana total semua data + checksum = 00
Data Informasi Jarak
Byte Nilai Deskripsi
06 01 Data Informasi Jarak
07 01 – FF Durasi Gerak
08 01 – FF Nilai Setting Api
09 01 – FF Nilai Api hilang
10 01 – FF Nilai Api ditemukan
11 01 – FF Jumlah pulsa titik api yang diperoleh
12 00 / 01 00 = kipas tidak langsung aktif saat titik api ketemu, 01 = kipas langsung
saat titik api ketemu
Modul-modul Pendukung

- Delta Smart UVTRON Kit

- Pan Tilt Head

- Small System ATMega8535

- Delta Hex Engine

- Mekanik laba-laba MSR-H01

Paulus Andi Nalwan, Delta Electronic

AN0186 Teknik Melacak dan Memadamkan Titik Api Pada Robot KRCI

Friday, March 2nd, 2012

Pencarian titik api pada Robot KRCI biasanya dilakukan dengan menggerakkan robot ke kiri dan ke kanan untuk memastikan posisi titik api. Proses ini membutuhkan waktu dan daya yang cukup besar karena harus menggerakkan seluruh body robot.

Pada artikel ini proses pelacakan titik api tidak memerlukan robot bergerak ke kiri dan ke kanan melainkan dengan bantuan Modul Delta UV Kit sensor tersebut akan digerakkan oleh servo ke kiri dan ke kanan mencari titik api tanpa robot harus bergerak ke kiri dan ke kanan. Bahkan untuk mempersingkat waktu, dapat dilakukan sambil robot bergerak.

Gerakan Sensor pada Robot KRCI

Modul Delta UV Kit ini menggunakan sensor api UVTRON R9454 dengan Driver C10423 yang dapat mendeteksi titik api dari jarak 5 meter dapat digerakkan dengan menggunakan motor servo HS-311 sehingga dapat melakukan gerakan scanning ke kiri dan ke kanan dalam sudut 180 derajat.

Delta UV Kit (UVTRON Driver + Servo HS-311 + Propeller

Agar UVTRON dapat mendeteksi api lebih terfokus maka ditambahkan reflektor yang menyelubungi UVTRON dengan sebuah celah kecil

Reflektor UVTRON

Saat titik api terdeteksi, gerakan scanning akan melambat dan bergerak step by step mengarah ke titik api. Semakin reflektor UVTRON mengarah ke titik api maka keluaran driver UVTRON C10423 akan berupa frekwensi yang semakin merapat. Sistem mikrokontroler pada Delta UV Kit akan melakukan sampling data setiap 5.5 mS dan akan diperoleh berapa kali perubahan logic yang diperoleh dari output UVTRON selama itu. Dengan frekwensi 700 Hz maka akan diperoleh periode 1.42 mS di mana perubahan logic akan terjadi setiap 0.71 mS.

Dalam 5.5 mS akan terjadi 7.7 kali perubahan atau 7 – 8 kali perubahan yang menandakan bahwa UVTRON telah mengarah ke titik api. Melalui Protokol data yang dikirimkan pada Port UART, pengguna dapat mengatur apakah propeller akan langsung aktif atau menunggu perintah dari robot saat UVTRON dianggap mengarah ke titik api.

Pengguna juga dapat mengatur agar pemadaman api dapat dilakukan dengan mengaktifkan propeller sambil motor servo melakukan scanning 180 derajat. Setelah titik api tak terdeteksi lagi, maka servo akan melakukan scanning 180 derajat lagi dengan kecepatan yang tinggi.

Pada saat UVTRON telah dianggap mengarah ke titik api tadi sistem mikrokontroler juga akan memberikan logic output ke robot untuk memberitahu robot bahwa posisi telah terarah ke titik api. Robot dapat meminta informasi sudut melalui Port UART sehingga robot dapat dibelokkan sesuai arah UVTRON.

Delta UVTRON Kit pada DST-NAVI dalam MSR-H01 robot

Untuk video klip dapat dilihat di

Paulus Andi Nalwan, Delta Electronic

AN0184 Antarmuka Robot KRCI dengan sensor-sensornya menggunakan DST Navi

Sunday, February 26th, 2012

Seperti telah dibahas pada artikel AN0172 di mana sistem navigasi robot dapat dilakukan dengan lebih mudah menggunakan DST-Navi. Dengan Sub System ini, proses perhitungan pulsa dari sensor sonar, proses penghitungan tegangan sensor inframerah ataupun akses I2C kompas dapat dilakukan dengan mudah karena mikrokontroler robot tidak perlu lagi melakukan perhitungan jarak. Proses perhitungan dilakukan oleh mikrokontroler yang ada dalam sub system berdasarkan perintah dari mikrokontroler robot. Hasil dari perhitungan akan dikirim ke mikrokontroler robot melalui Port UART.

DST Navi (SRF05, CMPS10, GP2Y0A21)