Skip to main content

Laser Shooting Game - Single Player 🔫

Perkenalan

Docs Version Dropdown

Seberapa bagus dan stabil tangan teman-teman?

Kita akan membuat permainan menembak laser untuk melatih kestabilan tangan kita dan juga untuk seru-seruan dikala gabut.

Permainan ini akan menggunakan sensor LDR untuk mendeteksi cahaya laser yang kita tembakkan. Kemudian menggunakan Servo Motor untuk menggerakkan sensor LDR nya ke posisi acak ketika kita berhasil mengenainya.

Untuk mencatat skor nya, kita akan menggunakan Modul LED. Kita akan mencatat waktu tercepat yang bisa teman-teman capai untuk memadamkan lampu merah yang berkedip pada Modul LED.

Semakin cepat lampu merah dipadamkan, semakin stabil dan jago tangan kita menembakkan laser.

Alat dan Komponen yang diperlukan

  • Obeng Plus
  • Laser Pointer

Petunjuk Merakit

◼️ Merakit Komponen Utama

▪️ Memasang Kotak Baterai

  1. Siapkan komponen pertama, yakni rangka utama.

  2. Kemudian siapkan kotak baterai seperti ditunjukkan oleh gambar di bawah.

  3. Perhatikan bahwa terdapat dua buah lubang pada kotak baterai seperti yang ditunjukkan oleh tanda panah putih nomor satu dan dua.

    Lubang pada kotak baterai tersebut sejajar dengan lubang pada rangka utama seperti yang ditunjukkan oleh tanda panah hitam nomor satu dan dua.

  4. Lubang tersebut akan dijadikan sebagai lubang untuk memasang baut. Contoh baut yang telah terpasang ditunjukkan seperti pada gambar di bawah ini

  5. Baik, sekarang kotak baterai telah terpasang, hasilnya akan seperti pada gambar di bawah ini.

    Selanjutnya kita akan memasang baterai pada kotak baterai.

▪️ Memasang Baterai

  1. Setelah kotak baterai terpasang, kita akan memasang baterai. Siapkan dua buah baterai seperti pada gambar di bawah ini.

  2. Masukkan baterai ke kotak baterai. Perhatikan, kutub negatif baterai yang ditandai oleh tanda negatif ➖, masuk terlebih dahulu ke pegas pada kotak baterai.

    Hasilnya akan seperti pada gambar di bawah ini.

    Selanjutnya kita akan memasang baterai berikutnya.

  3. Sama seperti langkah 7 di atas sebelumnya, masukkan baterai ke kotak baterai dengan kutub negatif baterai yang ditandai oleh tanda negatif ➖, masuk terlebih dahulu ke pegas pada kotak baterai.

    Hasilnya akan seperti pada gambar di bawah ini.

    Setelah kedua baterai terpasang pada kotak baterai, hasilnya akan menjadi seperti di bawah ini.

▪️ Memasang Arduino Nano

  1. Selanjutnya kita akan memasang Arduino Nano ke rangka utama. Siapkan 4 buah spacer kertas dan Arduino Nano.

    Bukalah baut pada keempat spacer kertas tersebut, kemudian pasangkan ke lubang baut pada Arduino Nano.

  2. Setelah keempat spacer kertas terpasang pada Arduino Nano, akan menjadi seperti ini.

    Ultrasonic SensorsUltrasonic Sensors

  3. Setelah keempat spacer kertas terpasang pada Arduino Nano, selanjutnya kita akan memasang Arduino Nano ke rangka utama. Namun sebelumnya, perhatikan terlebih dahulu lubang-lubang yang ditunjukkan oleh tanda panah putih pada gambar di bawah ini.

    Kita akan menancapkan keempat kaki spacer kertas pada keempat lubang tersebut.

  4. Tancapkan kaki spacer bagian depan Arduino Nano pada lubang. Setelah sejajar dengan lubang, tekan hingga masuk sepenuhnya.

    Ultrasonic SensorsUltrasonic Sensors

  5. Lakukan hal yang sama untuk dua kaki yang tersisa di belakangnya.

    Ultrasonic SensorsUltrasonic Sensors

  6. Apabila Arduino Nano telah terpasang pada rangka utama, maka hasilnya akan seperti pada gambar di bawah ini

▪️ Memasang Modul LED

  1. Selanjutnya kita akan memasang Modul LED yang akan kita gunakan untuk mencatat jumlah tembakan yang tepat sasaran. Siapkan Modul LED dan Komponen Dudukan Motor seperti yang ditunjukkan oleh gambar di bawah ini.

  2. Kemudian sejajarkan lubang 1 dan lubang 2 Modul LED dengan lubang 1 dan lubang 2 Dudukan Motor seperti yang ditunjuk oleh gambar di bawah ini.

    Ultrasonic SensorsUltrasonic Sensors

  3. Selanjutnya kita akan mengencangkan Modul LED pada Dudukan Motor dengan menggunakan dua buah baut. Kita akan memasang dua buah baut pada dua lubang yang sejajar tadi. Hasilnya akan seperti pada gambar di bawah ini. Dua buah baut telah terpasang pada lubang Modul LED dan Dudukan Motor.

    Ultrasonic Sensors

  4. Setelah kita mengencangkan Modul LED pada Dudukn Motor, kita akan memasang keduanya pada rangka utama. Pasanglah dengan posisi seperti yang ditunjukkan oleh gambar di bawah.

    Ultrasonic SensorsUltrasonic Sensors

  5. Maka hasil akhirnya akan seperti pada gambar di bawah ini.

    Ultrasonic Sensors

▪️ Memasang Servo

  1. Selanjutnya kita akan memasang Servo pada Dudukan Motor. Siapkan Servo Motor seperti ditunjukkan oleh gambar di bawah.

    Ultrasonic Sensors

  2. Kemudian siapkan Dudukan Motor, sejajarkan lubang 1 dan lubang 2 pada Servo dengan lubang 1 dan lubang 2 Dudukan Motor. Kencangkan dua lubang tersebut dengan dua buah baut.

    Ultrasonic Sensors

  3. Maka hasilnya akan seperti pada gambar di bawah ini.

    Ultrasonic Sensors

  4. Selanjutnya kita akan memasangnya ke rangka utama. Pasanglah dengan posisi seperti pada gambar di bawah ini.

    Ultrasonic SensorsUltrasonic Sensors

  5. Setelah terpasang pada rangka utama, maka hasil akhirnya akan seperti pada gambar di bawah ini.

    Ultrasonic Sensors

▪️ Memasang Sensor LDR

  1. Langkah selanjutnya, kita akan memasang Sensor LDR pada Lengan Robot. Siapkan komponen seperti pada gambar di bawah ini.

    Ultrasonic SensorsUltrasonic Sensors

  2. Selanjutnya, perhatikan baik-baik posisi lengan robot pada gambar di bawah ini. Sejajarkan lubang pada Sensor LDR ke lubang paling ujung pada lengan robot.

    Ultrasonic Sensors
    Kemudian kencangkan dengan satu buah baut seperti pada gambar di bawah ini.Ultrasonic Sensors

  3. Setelah terpasang, kita akan mengencangkan lengan robot dengan baut kecil pada lubang seperti yang ditunjuk oleh tanda panah di bawah.

    Ultrasonic Sensors

    Berikut hasilnya setelah baut kecil terpasang.Ultrasonic Sensors

  4. Langkah terakhir, kita akan memasang papan target pada Sensor LDR. Pasang dengan posisi seperti yang ditunjuk oleh gambar di bawah ini.

    Ultrasonic Sensors

    Berikut hasilnya setelah papan target terpasang.Ultrasonic Sensors

  5. Setelah semua komponen terpasang, hasil finalnya akan seperti pada gambar di bawah ini.

    Ultrasonic Sensors

◼️ Wiring Diagram

Jika sudah selesai memasang semua komponen ke rangka utama, selanjutnya kita akan merangkai dan menghubungkan komponen tersebut dengan kabel jumper.

▪️ Diagram Gambar

Teman-teman bisa gunakan gambar Wiring Diagram di bawah ini sebagai petunjuk untuk merangkai kabel-kabelnya.

Docs Version Dropdown

▪️ Diagram Tabel

Apabila titik ujung kabel pada gambar di atas kurang jelas, teman-teman bisa gunakan tabel di bawah ini.

Modul Servo LDR Sensor
Modul ServoArduino Nano Expansion Board
Kabel KuningPin 4
Kabel MerahPin V
Servo HitamPin G
LDR SensorArduino Nano Expansion Board
VCCPin V
GNDPin G
D0Pin 2
LED Module
LED ModuleArduino Nano Expansion Board
GNDPin G
RPin 7
YPin 6
GPin 5

Mengetik Program

Kemudian ketik program di bawah ini. Setelah selesai mengetik, jalankan proses Verify. Setelah proses verify dan compiling selesai, upload programnya ke Arduino Nano.

RoboKarsa_Laser_Shooter_Game.ino
#include<Servo.h>
#include <Ultrasonic.h>

Ultrasonic ultrasonic(4, 5);
int distance;

int number=0;
int randomdelay=0;

Servo servo1;
Servo servo2;
Servo servo3;

// Variables will change:
int moveState = 0; // current state of the move
int lastMoveState = 0; // previous state of the move

void setup() {
// initialize the LED as an output:
pinMode(13, OUTPUT);
// initialize serial communication:
Serial.begin(9600);
servo1.attach(9);
servo2.attach(10);
servo3.attach(11);

//initialize starting servo sequence
servo1.write(0);
servo2.write(0);
servo3.write(0);
delay(300);
servo1.write(90);
delay(300);
servo2.write(90);
delay(300);
servo3.write(90);
delay(500);
servo3.write(0);
delay(150);
servo2.write(0);
delay(150);
servo1.write(0);
delay(150);
servo1.write(90);
servo2.write(90);
servo3.write(90);
delay(300);
servo1.write(0);
servo2.write(0);
servo3.write(0);
}


void loop() {

delay(100); // Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings.
Serial.print("Jarak: ");
distance = ultrasonic.read();
Serial.print(distance);
Serial.println("cm");
if (distance<=15){
moveState=LOW;
}
else if(distance>=15){
moveState=HIGH;
}
// compare the moveState to its previous state
if (moveState != lastMoveState) {
// if the state has changed, do the robot move
if (moveState == HIGH) {

digitalWrite(13,LOW);
servo1.write(0);
servo2.write(0);
servo3.write(0);
} else {
number = random(3);
Serial.println(number);
digitalWrite(13,HIGH);
if(number==0)
{
servo1.write(0);
servo2.write(90);
servo3.write(0);
delay(2000);
}
else if(number==1)
{
servo1.write(0);
servo2.write(0);
servo3.write(90);
delay(2000);
}
else if(number==2)
{
servo1.write(90);
servo2.write(0);
servo3.write(0);
delay(2000);
}
}
// Delay a little bit to avoid bouncing
delay(50);
}
// save the current state as the last state, for next time through the loop
lastMoveState = moveState;

}