Posts Tagged ‘peraturan kri’

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)

AN0183 Membangun Sistem Mekanik pada Robot KRCI kategori berkaki

Thursday, February 23rd, 2012

Pada Robot KRCI kategori berkaki, sistem mekanik sangat jauh berbeda dengan Robot KRCI kategori beroda. Gerakan-gerakan  yang dilakukan pada kategori ini bukanlah gerakan memutar biasa namun gerakan sudut. Konstruksi yang paling efektif pada Robot KRCI kategori berkaki adalah konstruksi kaki laba-laba di mana robot tidak harus mengatur keseimbangan dengan adanya keenam kakinya.

Setiap kaki memiliki dua ruas dengan tiga derajat kebebasan yaitu naik-turun untuk ruas pertama dan kedua serta maju-mundur untuk kedua ruas sekaligus.

Gerak Vertikal Kaki Hexapod

Gerak Horisontal Kaki Hexapod

Gambar Mekanik Hexapod Robot

Mekanik laba-laba Robot KRCI MSR-H01

Mekanik laba-laba MSR-H01 didisain dengan menggunakan aluminium anodize dan tersedia berbagai warna yaitu silver, hitam dan merah. Gerakan-gerakan sudut dari robot ini dilakukan dengan menggunakan motor servo, yaitu motor yang bergerak menuju sudut tertentu berdasarkan perubahan pulsa PWM. Proses pengaturan gerak kaki-kaki Robot KRCI ini dengan menggunakan PWM bukanlah hal yang mudah bagi pemula. Untuk mempermudah proses ini dapat dilakukan dengan menggunakan suatu modul yang berfungsi mengatur gerakan-gerakan robot krci ini yaitu P-Brain Hex Engine buatan Micromagic

P-brain hex engine

Dengan modul ini, gerakan-gerakan robot dapat dilakukan hanya dengan mengirimkan perintah-perintah melalui UART port saja. Proses pengaturan PWM akan dilakukan oleh modul P-brain sendiri di mana pengguna tidak perlu menghitung pulsa PWM lagi.

Mekanik penggerak sensor Robot KRCI (Pan Tilt Head)

Agar robot krci dapat bergerak sambil memperhatikan kondisi sekitar maka dibutuhkan sebuah sensor yang dinamis yaitu dapat bergerak menoleh kekiri dan kanan tanpa robot krci ini harus bergerak

Sensor baik berupa infrared ataupun sonar (ultrasonic) dapat dipasang pada mekanik ini.

Untuk versi lokal dengan harga yang lebih ekonomis  kami juga telah memproduksi yaitu DH-18 Mechanic yang menggunakan bahan aluminium

Mekanik Robot KRCI kategori berkaki (DH-18)

Untuk mengatur gerakan-gerakan mekanik ini kami juga menyediakan versi lokalnya yaitu Delta Hex Engine

Delta Hex Engine

Versi lengkap dari DH-18 dapat dilihat di sini

Mekanik Robot KRCI kategori berkaki (DH-18 Economic)

Untuk versi lokal mekanik robot laba-laba terdapat versi yang lebih ringan sehingga gerakan lebih tangkas yaitu dengan menggunakan akrilik setebal 5mm.

DH-18 Hexapod Mechanic versi Akrilik

Servo-servo yang ada pada robot ini digerakkan oleh Delta Hex Engine yang diperintah melalui UART dengan menggunakan Modul ST-32

Pada paket economic ini robot menggunakan battery 6 volt sehingga dapat dihubungkan langsung ke servo tanpa harus menambahkan rangkaian regulator penurun tegangan lagi. Namun sistem ini sangat riskan terhadap drop tegangan pada battery. Dengan tegangan 6 volt maka saat battery mengalami drop tegangan sedikit akan mempengaruhi kinerja robot. Agar robot lebih tahan dalam mengalami drop tegangan maka dapat digunakan battery dengan tegangan yang lebih besar seperti 7.2 Volt dan diturunkan dengan menggunakan regulator.

Kami telah menyediakan regulator khusus dengan arus maksimum 3A yang didisain memanjang sesuai kaki laba-laba yaitu DDC-01

Voltage Regulator

Modul ini dapat dipasang pada masing-masing kaki dari Robot KRCI berkaki dan menyediakan arus 3A untuk servo-servo yang ada di kaki tersebut

Paulus Andi Nalwan, Delta Electronic

AN0182 Membangun Sistem Mekanik Pada Robot KRCI kategori beroda

Friday, February 3rd, 2012

Pada Robot KRCI kategori beroda, motor adalah merupakan bagian penggerak robot. Dalam hal ini motor yang digunakan adalah motor DC. Untuk memperoleh torsi yang kuat maka perlu ditambahkan gearbox pada motor tersebut. Gear berfungsi memperkuat torsi sesuai dengan perbandingan gigi-giginya.

Rasio gear

Dengan rasio 2:1 maka torsi motor Robot KRCI akan diperkuat dua kali lipat namun kecepatan akan turun juga dua kali.

Berikut ini adalah jenis-jenis gear yang digunakan pada sebuah motor

  • Worm gear adalah gigi yang berbentuk ulir yang berfungsi mengubah arah putaran dari horizontal menjadi vertical
  • Transfer Gear adalah gigi yang berfungsi untuk konversi antara gigi dengan jumlah banyak ke jumlah kecil ataupun sebaliknya.
  • Gear Shaft adalah gigi yang terhubung langsung dengan as atau sumbu motor

Arduino DC Motor dengan torsi 5.5 kg dan kecepatan 240 RPM dalam hal ini yang kita gunakan sebagai motor penggerak robot.

Arduino DC Motor

Agar diperoleh torsi pada Robot KRCI yang kuat dalam bergerak dapat digunakan sistem 4 wheel drive pada mekanik robot beroda yaitu dengan menggunakan 4 buah motor dc yang terpasang di setiap sudut dari Robot KRCI seperti pada gambar berikut.

4 wheel drive robot

Robot KRCI dapat bergerak berputar di tempat dengan menggerakkan motor di sisi kiri dan kanan secara berlawanan. Robot KRCI juga dapat berbelok dengan membuat perbedaan kecepatan pada motor di kedua sisi. Contohnya agar robot dapat berbelok ke kanan maka motor di sisi kiri diputar lebih lambat dan sisi sebelah kanan lebih cepat. Ketajaman belokan dapat diatur dengan besarnya perbedaan kecepatan. Apabila perbedaan kecepatan semakin besar maka belokan akan semakin tajam.

Robo Kits Body

Pengaturan kecepatan pada motor kita lakukan dengan menggunakan sistem PWM (Pulse Width Modulation) yaitu pengaturan lebar pulsa yang diberikan pada motor. Semakin lebar pulsa maka semakin cepat pula motor berputar.

Pulse Width Modulation

T On / Periode x 100 % = Duty Cycle. Semakin besar pulsa ON maka akan semakin besar pula duty cyclenya. Kecepatan maksimum motor akan diperoleh dengan duty cycle 100%.

Sinyal yang digambarkan di atas adalah merupakan kondisi tegangan pada output mikrokontroler yang diinputkanke rangkaian pengendali kecepatan yang dibahas pada AN0181 (rangkaian gate 74ls02). Rangkaian ini bersifat aktif low, oleh karena itu T ON di sini adalah T saat berlogika low.

Pada aplikasi ini kami sediakan pengaturan PWM dengan 8 buah tingkat kecepatan, oleh karena itu duty cycle yang ditimbulkan adalah 12.5%, 25%, 37.5%, 50%, 62.5%, 75%, 87.5% dan 100%. Hal ini dilakukan dengan menggunakan menggeser variabel 8 bit ke I/O mikrokontroler. Contoh variabel 00000000b akan menghasilkan duty cycle 100% karena semua logika yang digeser adalah logika low. Sedangkan variabel 00001111b akan menghasilkan 50% karena perbandingan logika high dan low yang sama.

Potongan Program Pembangkit PWM 8 step pada dua buah motor pada Robot KRCI

PWMMotor:
Mov    A,PWMValueMOtor1    ;PWM Motor 1
Rl    A            ;
Mov     C,ACC0                   ;
Mov    LeftEnable,C        ;
Mov    PWMValueMotor1,A    ;
Mov    A,PWMValueMotor1+1    ;
Rlc    A            ;
Mov    PWMValueMotor1+1,A    ;
Mov    A,PWMValueMotor1    ;
Mov     ACC0,C                   ;
Mov    PWMValueMotor1,A    ;

Mov    A,PWMValueMOtor2    ;PWM Motor 2
Rl    A            ;
Mov     C,ACC0                   ;
Mov    RightEnable,C        ;
Mov    PWMValueMotor2,A    ;
Mov    A,PWMValueMotor2+1    ;
Rlc    A            ;
Mov    PWMValueMotor2+1,A    ;
Mov    A,PWMValueMotor2    ;
Mov     ACC0,C                   ;
Mov    PWMValueMotor2,A    ;
Ret

Pada listing di atas, nilai variabel terletak di PWMValueMotor1 dan PWMValueMotor 2 untuk motor 2.

Agar robot dapat bergerak dengan jarak tertentu ada dua macam cara yang digunakan, yaitu dengan menghitung durasi gerakan atau dengan menghitung putaran roda. Perhitungan durasi atau delay adalah metode yang paling sederhana, namun metode ini memiliki kelemahan apabila sumber daya mengalami penurunan. Contoh saat battery robot turun maka kecepatan robot akan menurun sehingga dengan perhitungan delay yang sama maka jarak yang ditempuh akan berbeda.

Cara perhitungan putaran roda adalah cara yang paling efektif dan dibutuhkan tambahan sensor yang disebut encoder. Rangkaian ini dibangun oleh optocoupler MOC70T3 seperti yang dibahas pada AN0181. Perhitungan gerakan dilihat dari berapa banyak piringan encoder menghalangi cahaya pada encoder saat motor berputar.

Potongan Program Encoder pada Robot KRCI

CekEncoder1:
Mov    A,FlagEncoder

Jb    ACC0,CekEncode1Low
Jnb     DetectEncoder1,NoFlagEncode

Setb    ACC0
Mov    FlagEncoder,A
Lcall    IncCounterEncoder1

Ret

CekEncode1Low:
Jb      DetectEncoder1,NoFlagEncode

Clr    ACC0
Mov    FlagEncoder,A

NoFlagEncode:
Ret

IncCounterEncoder1:
Inc    CounterEncoder1
Mov    A,CounterEncoder1
Jnz    Nox1
Inc    CounterEncoder1+1
Nox1:
Ret

Potongan program di atas adalah merupakan potongan program pendeteksi encoder yang dilakukan dengan mendeteksi kondisi port mikrokontroler yang terhubung ke encoder. Setiap adanya pulsa akan menambah nilai pada variable 16 bit counterencoder1. Potongan program ini akan lebih efektif ditempatkan pada timer interrupt yang aktif sehingga kita tidak perlu bingung kapan program ini dijalankan.

Berikut adalah contoh program untuk menggerakkan robot dengan kecepatan tertentu dan berhenti setelah encoder mencapai posisi tertentu pula.

Main Program

Start:
Mov     A,#4                    ;Set kecepatan 50%
Lcall   SetKecepatan            ;
Lcall   StartPWM                ;

Mov     EncoderVCompare,#50     ;Set nilai komparasi encoder
Mov     EncoderVCompare+1,#0    ;
Mov     R7,#6
Lcall   RobotPutarKananEncoder  ;Gerakkan robot putar kanan
TungguEncoder:
Mov     A,TaskTimer             ;Tunggu encoder sesuai dengan nilai
Jb      ACC0,TungguEncoder      ;komparasi
Ljmp    $

Nilai kecepatan diisikan pada R7 adalah 6 yaitu 75% duty cycle sedangkan variabel komparasi encoder (EncoderVCompare) adalah 0050. Robot akan berputar ke kanan dengan 75%  kecepatan hingga garis encoder terpotong sebanyak 50 kali dan robot akan berhenti.

Di dalam include file motor.asm juga terdapat prosedur2 atau subroutine untuk menggerakkan robot maju, mundur, berputar maupun berbelok. Program-program ini dapat didownload di

Roboencd.zip untuk versi assembler

Robotc.zip untuk versi C

Sedangkan program assemblernya dapat didownload di asm51.zip

Paulus Andi Nalwan, Delta Electronic

AN0181 Membangun Rangkaian Elektronik Robot Beroda

Tuesday, January 31st, 2012

Robot beroda adalah merupakan robot yang paling sederhana karena hanya menggunakan dua motor DC saja untuk mengatur gerakan. Robot ini termasuk kategori vehicle yang bergerak dengan menggunakan roda. Kadang-kadang untuk memperkuat torsi digunakan empat buah motor yaitu sistem 4 wheel drive. Namun untuk pengatur gerakannya tetap hanya dibutuhkan dua, karena motor depan dan motor belakang untuk setiap sisi terhubung paralel.

Agar robot dapat bergerak maju, mundur, berbelok maupun berputar dilakukan dengan permainan arah putar dan kecepatan motor yang akan dibahas lebih detail di bagian membangun bagian mekanik. Pengaturan arah putar pada motor DC dilakukan dengan mengalirkan arus pada motor tersebut di mana arah arus akan menentukan arah putaran motor.

Pengaturan Arah Motor berdasar Aliran Arus

Agar arah arus dapat mengalir bergantian maka dibutuhkan dua buah saklar SPDT seperti pada gambar berikut.

Pengaturan Aliran Arus Motor

Pada sebuah robot, pengaturan motor dilakukan oleh otak robot yaitu mikrokontroler. Agar pengaturan aliran arus dapat dilakukan oleh mikrokontroler maka saklar SPDT S1 dan S2 digantikan dengan rangkaian transistor yang disebut H-Bridge. Rangkaian ini sebetulnya dapat juga digantikan dengan IC seperti L293 atau LMD18200T namun dalam hal ini penulis lebih cenderung menggunakan transistor. Dengan penggunaan transistor akan lebih mudah bagi kita untuk meningkatkan arus apabila motor yang digunakan untuk aplikasi-aplikasi yang lebih berat. Cukup dengan mengganti transistor dengan transistor yang memiliki arus kolektor lebih besar maka rangkaian H-Bridge akan dapat mengendalikan motor yang lebih besar pula.

Rangkaian H-BridgeLebih detail mengenai pengaturan arah motor DC ini dapat dilihat di link berikut. Pada rangkaian H-Bridge tidak diperkenankan terjadi dua buah transistor di sisi yang sama aktif bersamaan, kondisi ini disebut kondisi inhibit. Apabila terjadi kondisi tersebut maka V+ dan Ground akan terhubung singkat dan dapat merusak rangkaian. Untuk mencegah terjadinya kondisi tersebut maka ditambahkan rangkaian gate yang dibangun dengan 74LS02 seperti yang tampak pada gambar berikut. Dengan rangkaian tersebut, DRV0 dan DRV1 tidak mungkin berkondisi logika 1 secara bersamaan.

Rangkaian Gate 74LS02

Dalam hal ini P1.3 berfungsi sebagai pengatur aktivasi motor. Saat P1.3 logika 1 maka motor akan OFF apapun kondisi P1.2 sedangkan saat P1.3 logika 0 maka motor akan ON dan P1.2 berfungsi sebagai pengatur arah (Lihat tabel kebenaran di gambar di atas)

Melalui rangkaian ini, mikrokontroler juga dapat mengatur kecepatan putar motor dengan dengan memberikan logika 0 dan logika 1 secara periodik dengan durasi tertentu. Semakin durasi logika 0 dibanding logika 1 maka akan semakin cepat putaran motor. Teknik ini adalah teknik PWM (Pulse Width Modulation) yang akan kita bahas lebih lanjut.

Kelemahan motor DC adalah kesulitan dalam menentukan posisi, sudah berapa jauh motor tersebut berputar? Untuk mengetahui hal ini ditempatkan sebuah encoder dan rangkaian opto interrupt yang dibangun dengan sensor  MOC70T3. Encoder akan memotong aliran cahaya infrared pada celah yang ada di MOC70T3 sehingga sensor ini akan mengeluarkan pulsa-pulsa sebagai indikasi terpotong dan tidaknya cahaya.

Opto Interrupt MOC70T3

Output dari Opto interrupt ini akan berupa pulsa-pulsa yang dapat dihitung oleh mikrokontroler.

Otak dari sebuah robot adalah bagian pemroses atau mikrokontroler dan bagian pengingat atau memori. Berikut adalah rangkaian sistem mikrokontroler yang dilengkapi memori I2C AT24C08. Rangkaian juga dilengkapi jumper yang dapat mengubah reset dari logika 1 menjadi logika 0 sehingga sistem mikrokontroler selain digunakan untuk AT89S51 juga dapat digunakan untuk mikrokontroler ATMega8515

Sistem Mikrokontroler

Skema Mikrokontroler dan Driver Motor Robot

Pada skema tersebut terdapat JP5 yaitu Port UART yang dapat menghubungkan robot ke modul lain yang menggunakan UART seperti Subsystem DST Navi yang merupakan sub system yang menangani 8 buah sensor jarak inframerah GP2D12 / GP2Y0A21, 8 buah sensor jarak SRF05 serta sebuah compass cmps10 / cmps03, atau ke Modul Servo Control seperti DSR-08 dan lain-lain.

JP12 merupakan port dengan 8 I/O yang dapat difungsikan secara bebas oleh pengguna, seperti mengaktifkan relay kipas, menghitung pulsa output UVTRON dan lain-lain.

JP8, JP9, JP10 dan JP11 yang ditempatkan pada 4 sisi robot pada Delta Robo Kits berfungsi sebagai port input untuk mendeteksi garis yang dapat dihubungkan pada Modul Single Line Follower seperti DSF-01

Anda dapat membeli komponen-komponen dari skema tersebut dengan mengirimkan file berikut ke email kami paulus@delta-electronic.com atau anda dapat membeli rangkaian yang telah siap pakai dengan PCB dan dilengkapi downloader serta kabel USB dan CD Software di sini

Paulus Andi Nalwan, Delta Electronic

AN0179 Battery dan Power Supply untuk Robot KRCI

Wednesday, January 4th, 2012

Sumber Daya atau Power adalah merupakan sumber tenaga dari robot, agar diperoleh gerakan mekanik yang kuat dan kinerja rangkaian elektronik yang stabil dibutuhkan sumber daya yang stabil pula.

Robot-robot yang menggunakan motor DC, stepper ataupun servo menggunakan sumber daya DC sebagai sumber tenaga. Namun sumber daya ini rentan sekali mengalami drop tegangan apalagi bila digunakan untuk beban yang berat.

Agar sumber daya tidak mengalami drop tegangan maka sumber daya tersebut sebaiknya memiliki tegangan di atas tegangan yang dibutuhkan dan diregulasi sesuai tegangan yang dibutuhkan. Analoginya pada sebuah saluran air, agar diperoleh aliran yang stabil maka dibutuhkan tekanan yang lebih tinggi dari kebutuhan dan keran diatur agar sesuai dengan tekanan yang dibutuhkan.

Contoh pada robot yang menggunakan motor-motor DC bertegangan 6 Volt DC. Apabila digunakan battery yang memiliki tegangan 6 volt juga, maka pada saat battery tersebut sedikit menurun kapasitasnya, tegangan yang masuk ke motor juga akan turun dan mempengaruhi kinerja motor.

regulator

Namun bila kita gunakan tegangan di atas 6 volt maka saat kapasitas battery menurun, hal ini tidak menyebabkan sumber daya robot menurun selama batas tertentu. Batasan tersebut ditentukan dari karakteristik regulator yang digunakan. Regulator yang baik adalah tipe LDO (Low Drop Output). Contoh untuk regulator dengan drop output sebesar 0.35V maka saat battery mengalami penurunan tegangan hingga 6.35 volt output pada regulator masih tetap pada tegangan 6 volt. Tegangan output akan turun dibawah 6 volt saat tegangan input regulator dibawah 6.35 volt.

Power Regulator DDC-01

Modul DDC-01 adalah modul power regulator yang termasuk LDO dengan drop output sebesar 0.35 volt dan arus maksimum 3A. Modul ini juga dilengkapi dengan thermal protection yang mengamankan modul pada kondisi panas berlebih dan overcurrent protection yang mengamankan modul dari kondisi arus berlebih ataupun terhubung singkat.

Regulator juga dapat difungsikan untuk memisahkan sumber daya. Pada aplikasi yang menggunakan motor, sebaiknya sumber daya mikrokontroler dan sumber daya motor dipisahkan. Agar dapat diperoleh sumber daya terpisah dalam satu battery maka dapat dilakukan dengan menggunakan dua buah regulator

Dual Regulator

Apalagi mikrokontroler biasanya membutuhkan tegangan 5 volt, maka perlu ditambahkan sebuah regulator 5 volt untuk keperluan tersebut. Hal ini dapat dilakukan dengan dua buah Modul DDC-01

Motor adalah merupakan komponen induksi, sehingga seringkali gejala elektromagnet yang ditimbulkan oleh gerakan motor mengakibatkan arus balik yang masuk ke rangkaian elektronik. Arus balik terbesar terjadi apabila motor mendadak berputar ke arah yang sebaliknya dengan daya penuh. Hal ini akan menimbulkan gangguan pada sistem elektronik terutama pada mikrokontroler apabila memiliki sumber daya dari regulator yang sama. Agar noise dari arus balik ini sama sekali tidak mengganggu mikrokontroler, lebih baik lagi bila digunakan battery terpisah, regulator terpisah dan opto isolator untuk I/O-I/O mikrokontroler yang terhubung ke motor.

Modul Opto Isolator DIM-01

Modul DDC-01 juga didisain dengan konstruksi yang memanjang sehingga cocok untuk disematkan pada kaki-kaki robot. Tampak pada gambar berikut Modul DDC-01 dipasang di setiap kaki robot laba-laba

Regulator di Kaki Robot

Rechargeable Battery

Untuk memilih battery, perlu diperhatikan tegangan dan kapasitas battery selain juga ukuran dan beratnya. Tegangan yang dipilih sebaiknya tidak terlalu jauh dari tegangan yang dibutuhkan, hal ini dilakukan untuk menghindari disipasi panas yang terlalu besar pada regulator. Semakin besar perbedaan tegangan, maka daya yang dibuang untuk menurunkan tegangan semakin besar pula. W = VxIxt di mana V = perbedaan tegangan, I = arus yang dibutuhkan dan t adalah waktu.

Sedangkan kapasitas tergantung dari berapa arus yang dibutuhkan oleh robot dan berapa lama robot harus bekerja. Sebagai contoh battery dengan kapasitas 5000mAH seperti pada gambar di bawah ini, battery ini akan menghasilkan arus sebesar 5000mA atau 5A selama 1 hour atau 1 jam.

Rechargeable Battery

Battery tersebut adalah tipe NiMH atau Nickel Metal Hydride Cell yang memiliki ukuran lebih kecil untuk kapasitas yang sama dibanding Battery NiCd ataupun Li-on (Lithium Ion). Ukuran yang kecil dan beratnya yang ringan membuat battery ini sangat cocok untuk aplikasi robotik di mana ukuran dan berat merupakan hal yang sangat kritis.

Dengan battery 7.2 volt dibutuhkan regulator agar tegangan dapat diturunkan sesuai kebutuhan motor servo yang biasanya berkisar 5 atau 6 volt. Dengan battery kapasitas ini dan regulator, penurunan tegangan pada battery tidak akan mengganggu kinerja robot selama masih di atas 6.3 volt (tegangan yang dibutuhkan + nilai drop output regulator).

Namun untuk anggaran robot yang lebih murah, dapat juga digunakan battery 6 volt tanpa melalui regulator. Tentunya dengan konsekwensi, penurunan nilai tegangan battery akan langsung mempengaruhi kinerja robot.

Battery NiMH 2000mA 6V

Untuk sistem mikrokontroler, bila diinginkan sumber daya yang betul-betul terpisah, dapat ditambahkan lagi battery yang lebih kecil kapasitasnya dengan tegangan yang lebih kecil pula seperti battery 6V / 1.3A pada gambar berikut

Battery 6V

Battery Charger

Bagian yang tak kalah penting lagi adalah bagian pengisi battery atau Battery Charger. Agar battery yang diisi dapat berumur panjang maka perlu dihindari kondisi memory effect dengan membuang muatan battery terlebih dahulu sebelum proses pengisian dilakukan.

Battery Charger iMax B6AC adalah merupakan battery charger yang selain mengisi, juga dapat membuang muatan battery 0.1 – 1A. Battery charger ini juga dilengkapi LCD untuk monitoring pengisian untuk setiap selnya.

NiMH & Li Po Battery Charger Discharger

Battery charger ini juga dapat digunakan untuk pengisian battery Lithium Polimer atau Lipo. Selain itu sumber daya dari battery charger ini dapat menggunakan sumber daya AC 100V hingga 240VAC baik 50 atau 60Hz dan juga sumber daya DC 11 – 18 Volt DC

Paulus Andi Nalwan, Delta Electronic

Kontes Robot Indonesia dan Kontes Robot Cerdas Indonesia 2012 (KRI & KRCI 2012)

Monday, December 26th, 2011

KRI dan KRCI adalah merupakan ajang kontes robot yang diadakan secara nasional di Indonesia dan diselenggarakan oleh Direktorat Jenderal Pendidikan Tinggi Indonesia.

KRI atau Kontes Robot Indonesia dilakukan oleh 3 buah robot yaitu robot manual, robot otomatis dan robot kolektor yang saling bekerja sama untuk memasukkan burns ungu ke dalam keranjang dengan melewati berbagai rintangan. Titik berat dari kontes ini lebih diutamakan pada gerakan-gerakan mekanis seperti memanjat, mengambil robot collector dan lain-lain.

KRCI atau Kontes Robot Cerdas Indonesia lebih mengutamakan kecerdasan robot dan sama sekali tidak memperbolehkan operator untuk mengendalikan robot selama proses. Kontes ini terdiri dari dua bagian yaitu Kontes Robot Beroda dan Kontes Robot Berkaki dengan tema yang sama yaitu menjelajah ruangan dan mencari titik api serta kembali ke posisi awal. Semua gerakan robot dilakukan berdasarkan hasil dari sensor.

Pertandingan diawali dengan pertarungan di tingkat regional yang kemudian akan dilanjutkan ke tingkat nasional. Pemenang dari pertandingan akan mewakili tim Indonesia dalam Abu Robocon 2012 di China.

Berikut adalah informasi-informasi yang dapat berguna bagi peserta

Untuk memperoleh kemenangan, tingkat keakuratan dan kecepatan robot adalah merupakan point utama, berikut ini kami ulas bahan-bahan untuk keperluan KRI dan KRCI sekaligus dengan bahasan mengenai spesifikasi masing-masing dan cara penggunaannya sehingga pengguna dapat menjadikan referensi bahan mana yang sesuai dengan robot yang sedang dikerjakan.

Artikel-artikel untuk mendukung KRCI

Berikut ini kami sajikan artikel-artikel yang dapat digunakan untuk mendukung KRCI. Artikel ini akan kami update terus secara periodik, untuk itu silahkan kunjungi halaman ini untuk mengikuti perkembangan artikel. Artikel-artikel ini akan membahas teknik-teknik yang digunakan pada KRCI dengan berbagai mikrokontroler seperti MCS-51, AVR maupun Renesas R8C dengan berbagai jenis sensor.

Robot KRCI kategori beroda

Robot KRCI Kategori beroda

Cek link ini untuk memesan

Robot KRCI kategori berkaki

Delta Hexapod 18 Servo

Cek link ini untuk memesan

PREVIEW VIDEO DENGAN POWER SUPPLY klik disini

PREVIEW VIDEO DENGAN BATTERY klik di sini

PREVIEW VIDEO SAAT MASA PROTOTYPE DI PANTAI SAMUDERA INDONESIA klik di sini

Berikut kami akan mengulas langkah-langkah teknik pembuatan Robot KRCI secara periodik. Sering-seringlah mengunjungi halaman ini untuk melihat perkembangan.

Kategori Beroda

Kategori Berkaki

Paulus Andi Nalwan, Delta Electronic

AN0173 Antarmuka LCD M1632 dengan LPC1114 pada Modul DST-ARM

Thursday, September 8th, 2011

Artikel kali ini saya akan membahas cara pemakaian LCD M1632 pada LPC1114 dengan Modul DST-ARM. LCD yang digunakan adalah LCD 16×2 karakter atau M1632. LCD ini sangat popular pemakaiannya, disatu sisi dikarenakan pemogramannya yang gampang, dan harganya yang tidak terlalu mahal.

Modul Pendukung Artikel ini adalah:

- DST ARM Development Board

- LCD M1632

Source code dapat didownload di sini

Artikel lengkap dapat didownload di sini

Penulis Januar Susanto