You are on page 1of 14

LAPORAN PRAKTIKUM

KENDALI MOTOR DENGAN JOYSTICK PS2

Dosen Pengampu :
Amperawan, S.T., M.T.
Disusun Oleh :
Dike Musta Gunawan (061940341930)
Rinaldi (061940341939)
Kelas: 5 ELA

PROGRAM STUDI SARJANA TERAPAN TEKNIK ELEKTRO


JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI SRIWIJAYA
2021/2022
I. Tujuan

1. Dapat melakukan komunikasi antara joystick dengan mikrokontroler

2. Dapat mengendalikan motor DC dengan joystick

3. Dapat menampilkan nilai PWM dengan media Serial Monitor

II. Alat dan bahan

1. Seperangkat komputer

2. Joystick PS2

3. Motor DC

4. OLED

III. Teori Dasar

Joystick PS2 kabel dan Wireless joystick PS2 yang pengiriman menggunakan

frekuensi 2.4 GHz dimana frekwensi dimana frekwensi mempunyai noise yang

sangat kecil pengiriman datanya. Wireless joystick PS2 mengunakan komunikasi SPI

(Serial Pheripehal Interface) atau 3 wire interface yang mempunyai kemampuan

pengiriman data maksimum 18 meter.

Joystick Playstation 2 Wireless Kontroler adalah antarmuka pengguna utama

untuk PlayStation. Standar PSX kontroler memiliki 14 tombol. Diantaranya adalah:

1. 4 tombol diatur sebagai directional pad di kiri atas


2. Start dan Select tombol di tengah atas
3. 4 tombol aksi di kanan atas
4. 2 tombol aksi di sebelah kiri depan
5. 2 tombol aksi di sebelah kanan depan
Meskipun masing-masing tombol dapat dikonfigurasi untuk melakukan
tindakan tertentu dan tersendiri, tombol-tombol tersebut bekerja pada prinsip yang
sama. Pada dasarnya, setiap tombol adalah sebuah saklar yang melengkapi
rangkaian ketika ditekan.Sebuah disk logam kecil di bawah tombol ditekan ke
dalam kontak dengan dua potongan bahan konduktif pada papan sirkuit pada
kontroler. Sementara disk logam dalam kontak, menghantarkan listrik antara dua
potongan. Kontroler merespon bahwa sirkuit tertutup dan mengirim data ke PSX.
CPU membandingkan data dengan instruksi dalam perangkat lunak game untuk
tombol itu, dan memicu respon yang tepat. Ada juga disk logam di bawah masing-
masing lengan directional pad.

Dual Shock PSX terbaru memiliki joystick analog pada kontroler tersebut,
serta tombol standar. Joystick ini bekerja dengan cara yang sama sekali berbeda
dari tombol yang dijelaskan sebelumnya. Dua potensiometer (variable resistor)
yang diposisikan tegak lurus satu sama lain di bawah joystick. Arus mengalir
terus-menerus melalui masing-masing, tetapi jumlah arus ditentukan oleh jumlah
Resistansi (hambatan). Resistansi akan meningkat atau menurun berdasarkan
posisi joystick. Dengan memonitor output dari setiap potensiometer, PSX dapat
menentukan sudut yang tepat di mana joystick ditahan, dan memicu respon yang
tepat berdasarkan sudut itu. Dalam game yang mendukung joystick analog, fitur
analog seperti ini memungkinkan untuk kontrol yang menakjubkan pada
permainan.

Fitur lain dari Dual Shock kontroler adalah umpan balik yang dapat
dirasakan. Fitur ini menyediakan rangsangan taktil untuk tindakan tertentu dalam
permainan. Misalnya, dalam permainan balap, Anda mungkin merasa getaran
menggelegar seperti membanting mobil Anda ke dinding. Umpan balik ini
sebenarnya dicapai melalui penggunaan perangkat yang sangat umum, motor
listrik sederhana. Dalam Dual Shock kontroler, dua motor yang digunakan, satu
bertempat di masing- masing pegangan. Poros dari masing-masing motor
memegang berat seimbang. Bila daya dipasok ke motor, motor berputar. Karena
berat badan tidak seimbang, motor mencoba goyah. Tapi karena motor ini aman
dipasang di dalam kontroler, goyangan yang diterjemahkan menjadi getaran
gemetar dari kontroler itu sendiri.

Motor Motor

Stik PS2 Wireless terdiri dari dua modul, yaitu modul transmitter dan
modul receiver. Modul transmitter berfungsi sebagai data input dan mengirim
data input tersebut ke modul receiver. Sedangkan modul receiver berfungsi
sebagai penerima data yang dikirim dari modul transmitter. Pada setiap Stik PS
(joystick Playstation) terdapat kontroler yang bertugas untuk berkomunikasi
dengan console playstation. Komunikasi yang digunakan adalah serial sinkron,
yaitu data dikirim satu per satu melalui jalur data. Untuk mengkoordinasikan
antara pengirim dan penerima terdapat satu jalur clock. Hal inilah yang
membedakan serial sinkron dengan serial asinkron.

Konfigurasi Pin
Konfigurasi pin connector Joystik Wireless PS2, berikut gambarnya:

Wireless joystick PS2 mengunakan komunikasi SPI (Serial Pheripheral


Interface) atau biasa orang sebut sebagai 3 wire interface. Pada gambar 3.3
merupakan connector PS2 Kontroler yang akan langsung dihubungkan dengan pin-pin
pada mikrokontoler. Ada pun penjelasan setiap pin dari connector PS2 kontroler tersebut
sebgai berikut :
Data : Dihubungkan pada pin PA.7 pada mikrokontroler
Command : Dihubungkan pada pin PA.6 pada mikrokontroler
Motor Vibrate : VCC
Gnd : Ground
Vcc : +5v
Attention : Dihubungkan pada pin PA.5
Clock : Dihubungkan pada pin PA.4 (SCK)
NC : Tidak dihubungkan
ACK : Tidak dihubungkan

Pada penjelesan pin-pin dari joystick PS2 diketahui bahwa untuk melakukan
hubungan anatar joystick PS2 dan mikrokontroler dibutuhkan 3 jalur utama yaitu pin 1
Data dihubungkan ke mikrokontroler pin PA.7 (MISO), pin 2 Command dihubungan ke
mikrokontroler pin PA.6 (MOSI) dan pin 7 Clock dihubungkan ke mikrokontroler pin
PA.4 (SCK). Dari ketiga pin tersebut penjelasannya sebagi berikut :
1. MISO : Master Output Slave Input artinya jika dikonfigurasikan sebagai
master maka pin MOSI sebagi output tetapi jika dikonfigurasikan sebagi
slave maka pin MOSI sebgai input.
2. MOSI : Master Input Slave Output artinya jika dikonfigurasikan sebagai
master maka pin MOSI sebagai input tetapi jika dikonfigurasikan
sebagai slave maka pin MOSI sebagai output.
3. CLK : Clock jika dikonfigurasikan sebagai master maka pin CLK berlaku
sebagai output tetapi jika dikonfigurasikan sebagai slave maka pin CLK
berlaku sebagai input.
Data Protokol
Data protokol berfungsi untuk mengatur komunikasi dengan kontroler
pada Stik PS2 Wireless dan diperlukan beberapa proses pengiriman ID :
1. Mikrokontroler mengirim data &H01 (start up).
2. Setelah itu mikrokontroler mengirim data &H42 (read data).
3. Kemudian disaat yang sama mikrokontroler akan menerima data tipe Stik
PS2 yang digunakan. &H41 = Konsul Digital &H73 = Konsul Analog
4. Setelah itu mikrokontroler akan menerima data &H5.
Frame Data

DATA JOYSTICK ANALOG DARI PS2


IV. Langkah percobaan

1. Membuat rangkaian seperti gambar dibawah ini :

2. Membuat program seperti dibawah ini ,lalu aplikasikan pada rangkaian


yang sudah dirancang

Untuk menghubungkan joystick PS2 dengan board arduino adalah sebagai


berikut :
 pada arduino hubungkan :
CLK =13,
CMD =11
ATT =10
DATA =12
 pada socket PS2 hubungkan :
clock =7
ATT=6
VCC=5
GND=4
CMD=2
DATA=1
Syntaks Program
#include <Wire.h>
#include <PS2X_lib.h>
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128 // OLED display width, in


pixels
#define SCREEN_HEIGHT 32 // OLED display height, in
pixels

// Declaration for an SSD1306 display connected to


I2C (SDA, SCL pins)
#define OLED_RESET 4 // Reset pin # (or -1 if
sharing Arduino reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH,
SCREEN_HEIGHT, &Wire, OLED_RESET);

int mtrkiri1 = 3;
int mtrkiri2 = 4;
int kecmtr1 = 5;

PS2X ps2x;
byte Type = 0;
byte vibrate = 0;
int RX=0, RY=0, LX=0, LY=0;

int x = 0;
void setup(){
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C))
{ // Address 0x3C for 128x32
Serial.println(F("SSD1306 allocation failed"));
for (;;); // Don't proceed, loop forever
}
Serial.begin(9600);
ps2x.config_gamepad(13,11,10,12, true, true);
Type = ps2x.readType();

pinMode(mtrkiri1,OUTPUT);
pinMode(mtrkiri2,OUTPUT);
pinMode(kecmtr1,OUTPUT);
if(Type==1){
}
}

void loop(){

ps2x.read_gamepad(false, vibrate);
if(ps2x.NewButtonState()){
if(ps2x.Button(PSB_GREEN)){
Serial.println("SEGITIGA");
x = 1;
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.print("PWM : ");
display.setTextColor(WHITE);
display.println(750);
display.setTextColor(WHITE);
display.print("Arah : ");
display.setTextColor(WHITE);
display.print("Kanan");
display.display();
}
if(ps2x.Button(PSB_BLUE)){
Serial.println("SILANG");
x = 2;
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.print("PWM : ");
display.setTextColor(WHITE);
display.println(0);
display.setTextColor(WHITE);
display.print("Arah : ");
display.setTextColor(WHITE);
display.print("Kiri");
display.display();
}
if(ps2x.Button(PSB_RED)){
Serial.println("BULAT");
x = 3;
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.print("PWM : ");
display.setTextColor(WHITE);
display.println(750);
display.setTextColor(WHITE);
display.print("Arah : ");
display.setTextColor(WHITE);
display.print("Stop");
display.display();
}
if(ps2x.Button(PSB_PINK)){
Serial.println("KOTAK");
x = 4;
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.print("PWM : ");
display.setTextColor(WHITE);
display.println(0);
display.setTextColor(WHITE);
display.print("Arah : ");
display.setTextColor(WHITE);
display.print("Stop");
display.display();
}
if(ps2x.Button(PSB_R3)){
Serial.println("R3 pressed");
x = 5;
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.print("PWM : ");
display.setTextColor(WHITE);
display.println(750);
display.setTextColor(WHITE);
display.print("Arah : ");
display.setTextColor(WHITE);
display.print("Kanan");
display.display();
}
Serial.println(x);

if(x == 1){
analogWrite(kecmtr1, 750);
digitalWrite(mtrkiri1,HIGH);
digitalWrite(mtrkiri2, LOW);
}

if( x == 2){
analogWrite(kecmtr1, 750);
digitalWrite(mtrkiri1, LOW);
digitalWrite(mtrkiri2, HIGH);
}

if(x == 3){
analogWrite(kecmtr1, 0);
digitalWrite(mtrkiri1, LOW);
digitalWrite(mtrkiri2, LOW);
}
if(x == 4){
analogWrite(kecmtr1, 0);
digitalWrite(mtrkiri1, LOW);
digitalWrite(mtrkiri2, LOW);
}
if(x == 5){
analogWrite(kecmtr1, 750);
digitalWrite(mtrkiri1,HIGH);
digitalWrite(mtrkiri2, LOW);

}}
}

V. Hasil percobaan
 Analisa Percobaan
Berdasarkan percobaan , ddapat dianalisa bahwa rangkaian PS2 kontroler
sebagai masukan data yang dikirim dari PS2 kontrol akan diproses oleh Board
Arduino UNO. Mapping data joystick terdapat pada baris yang menunjukkan
baris fungsi If yang pertama. Dimana tombol digital segitiga akan menghasilkan
variabel 1, silang menghasilkan variabel, kotak menghasilkan variabel 3, bulat
menghasilkan variabel 4 dan tombol R3 menghasilkan variablel 5. Nilai output
untuk masing-masing variabel ini ditunjukkan pada began fungsi If yang kedua,
dimana masing-masing nilai variabel akan melakukan eksekusi operasi terhadap
motor. Dalam hal monitoring gerak motor dilakukan dengan Serial monitor.
Tampak melalui serial monitor yang menunjukkan tombol digital yang ditekan,
arah gerak motor dan nilai PWM yang ada pada motor. Nilai PWM yang
disetting pada motor sebesar 750 PWM hal ini berlaku apabila motor melaju ke
kanan dengan menekan tombol digital segitiga atau R3. Nilai pwm akan berlaku
ketika motor bergerak ke arah sebaliknya yang dapat dioperasikan ketika
menekan tombol digital silang. Motor akan berhenti dan menampilkan nilai
PWM sebesar 0 ketika tombol kotak atau bulat ditekan

VI. Kesimpulan

1. Berdasarkan percobaan yang telah dilakukan, didapatkesimpulan sebagai


berikut :
2. Untuk menggunakan PS2 Kontroler dapat mengaplikasikan sistem SPI
(Sherial Pheriperal Interface) pada ATMEGA 8535.
3. Jenis SPI yang digunakan adalah dengan data transfer yang dimulai dari data
terkecil atau LSB (Least Significant Bit).

You might also like