Anda di halaman 1dari 23

Implementasi Perhitungan Posisi Robot

dengan FPGA Menggunakan Rotary


Encoder

Lukman Hakim

Pembimbing:
Rudy Dikairono, ST., M.Sc.
Ir. Totok Mujiono, M.IKom.
>> Latar Belakang
• Alasan akademis
Perlu mengetahui kinematik robot kemudian
diimplementasikan di FPGA
• Alasan praktis
Menggunakan rotary encoder untuk
menentukan posisi robot RITS 01.
>> Permasalahan
• Bagaimana mengetahui kinematik robot
• Bagaimana mengetahui sudut pergerakan
robot
• Bagaimana mengetahui posisi robot (x,y)
>> Batasan Masalah
• Bahasa yang digunakan adalah VHDL (Very High
Speed Integrated Circuit Hardware Description
Language) dengan compiler Quartus II 11.0 web
edition (32-bit) dan sensor yang digunakan untuk
menentukan posisi (x,y) dan sudut pergerakan robot
adalah rotary encoder.
• Pada saat awal, robot berada pada koordinat (0,0)
>> Tujuan
Mempelajari, memahami serta
mengimplementasikan komponen FPGA
dengan aplikasi pembacaan sensor rotary
encoder untuk menentukan posisi robot.
>> Penelaahan studi
Pembuatan mekanik robot, mengetahui
karakteristik rotary encoder, mengetahui
kinematik robot, mengetahui Modul FPGA
DE2, mengetahui bahasa pemrograman VHDL,
pengolahan data pada FPGA dari rotary
encoder dalam menentukan posisi robot
>> Blok diagram sistem
>> FPGA DE2

DE2 keluaran Altera cyclone II


>> Fitur – Fitur FPGA DE2 yang digunakan
1. LCD
GDM1602A adalah merupakan modul LCD
dengan tampilan 16 x 2 baris yang sudah
tersedia di modul DE2.
1. LCD PIN
Signal Name FPGA Pin No Description

LCD_DATA [0] PIN_J1 LCD Data [0]

LCD_DATA [1] PIN_J2 LCD Data [1]

LCD_DATA [2] PIN_H1 LCD Data [2]

LCD_DATA [3] PIN_H2 LCD Data [3]

LCD_DATA [4] PIN_J4 LCD Data [4]

LCD_DATA [5] PIN_J3 LCD Data [5]

LCD_DATA [6] PIN_H4 LCD Data [6]

LCD_DATA [7] PIN_H3 LCD Data [7]

LCD_RW PIN_K4 0=Write, 1=Read

LCD_EN PIN_K3 LCD Enable

LCD_RS PIN_K1 0=Command, 1=Data

LCD_ON PIN_L4 LCD Power ON/OFF

LCD_BLON PIN_K2 LCD Back Light ON/OFF


>> Fitur – Fitur FPGA DE2
2. Clock dan Switch[0]
• Clock internal yang digunakan adalah 50MHz.
Clock tersebut dimanfaatkan untuk program
sistem digital sekuensial.
• Switch[0] digunakan sebagai reset untuk inisial
kondisi robot
Signal Name FPGA Pin No Description

CLOCK_50 PIN_N2 Clock

SWITCH [0] PIN_N25 Reset


>> Fitur – Fitur FPGA DE2
3. Expansion Header General Purpose Input Output
(GPIO [0])

DE2 tersedia 2 x 40-pin expansion header


dengan proteksi. Setiap header terhubung
langsung ke pin-pin cyclone II FPGA
Signal Name FPGA Pin No Description

GPIO 0 [0] PIN_D25 1, kanal A

GPIO 0 [1] PIN_J22 1, kanal B

GPIO 0 [2] PIN_E26 2, kanal A

GPIO 0 [3] PIN_E25 2, kanal B

GPIO 0 [4] PIN_F24 3, kanal A

GPIO 0 [5] PIN_F23 3, kanal B


>> Rotary encoder
Jenis rotary encoder yang
digunakan adalah incremental
rotary encoder.
Spesifikasi incremental rotary
encoder
• E30S4-200-3-T-24
• 12-24±5%
• Hitam : OUT A
• Putih : OUT B
• Oren : OUT Z
• Coklat : +V
• Biru : GND
>> VHDL
VHDL adalah Diagram Alur Perancangan
VHSIC Hardware
Description
Language dimana
bahasa
pemrograman ini
sangat populer
digunakan untuk
memodelkan
arsitektur diskrit
yang memiliki
kecepatan proses
data yang tinggi.
>> Mekanik robot

Diameter roda rotary dan omniwheel = 4.75 cm


sudut antara rotary 1 dan rotary 2 = 120°
sudut antara rotary 2 dan rotary 3 = 120°
sudut antara rotary 1 dan rotary 3 = 120°
>> Forward/reverse rotary encoder

Flowchart forward/reverse rotary encoder


>> Menentukan theta robot
1 putaran rotary = 200 pulsa
200 = π d
Diameter roda rotary = 4.75 cm
>> 1 cm = 13.4 pulsa rotary

Rot1 = pulsa yang dihasilkan rotary 1


Rot2 = pulsa yang dihasilkan rotary 2
Rot3 = pulsa yang dihasilkan rotary 3
Theta robot = (Rot1 + Rot2 + Rot3) / 13.4
>> Hasil pengujian theta robot

(1) (2)

(1). Inisial kondisi robot


(2). Theta target = (199 +207 +200) / 13.4 =
45.4°
>> Menentukan posisi X,Y robot
1. Segitiga Phytagoras

(1) (2)

(1). Gambar segitiga phytagoras


(2). Persamaan segitiga phytagoras
>> Menentukan posisi X,Y robot
2. Menentukan theta masing – masing rotary

Diketahui θrot1 = -60° θrot2 = 60° θrot3 = 180°


>> Menentukan posisi (X,Y) robot

(2)

(1)
(3) (4)
Langkah-langkah menentukan posisi setelah mendapatkan masing – masing theta
rotary encoder
(1). Mencari resultan sumbu x
(2). Mencari resultan sumbu y
(3). Mencari resultan rata-rata sumbu x dan sumbu y
(4). Mencari posisi terhadap sumbu x dan sumbu y dalam satuan centimetre
>> Hasil pengujian posisi (X,Y) robot

Diketahui Xrot1 = -388, Xrot2 = 201 , Xrot3 = 204


Rx1 = -388/cos (-60°) = -388/0.5 = -776
Rx2 = 201/cos 60° = 201/0.5 = 402
Rx3 = 204/cos 180° = 204/ -1 = -204
Ry1 = -776 * sin (-60°) = -776 * (-0.87) = 675
Ry2 = 402 * 0.87 = 349
Ry3 = 0
Rxave = ((-776 + 402 – 204) / 3) = -192
Ryave = ((675 + 349) / 3) = 341
Posisix(cm) = -(-192 / 13.4) = 14.3 cm
Posisiy(cm) = 341 / 13.4 = 25.4 cm
>> Hasil mengindikasikan bahwa robot bergerak kearah kuadaran 1
Terima Kasih

Anda mungkin juga menyukai