Professional Documents
Culture Documents
Laporan Motor Joystic
Laporan Motor Joystic
Dosen Pengampu :
Amperawan, S.T., M.T.
Disusun Oleh :
Dike Musta Gunawan (061940341930)
Rinaldi (061940341939)
Kelas: 5 ELA
1. Seperangkat komputer
2. Joystick PS2
3. Motor DC
4. OLED
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
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:
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
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