Projek Arduino Joystick Controlled Laser


Dalam projek ini kita akan mencoba membuat laser terkendali joystick dengan menghubungkan dua servo ke joystick dan menggunakan pengaturan ini sebagai kontroler pan and tilt untuk pointer laser. 




Komponen yang diperlukan :

1. Arduino board 

2. Breadbord

3. Kabel jumper

4. 2 motor servo SG90

5. Modul joystick dua sumbu analog lima pin

6. Modul pan and tilt housing

Diperlukan librari servo


Cara Kerja :

Servo adalah motor kecil yang dapat dengan tepat memiringkan lengannya ke posisi antara 0 dan 180 derajat. Dalam proyek ini kami akan menempatkan servos ke dalam dudukan miring-dan-pan. Dudukan tilt-and-pan adalah investasi yang layak, karena membuatnya lebih mudah untuk memasang laser ke servo. Di sini kami mengontrol laser, tetapi Anda dapat dengan mudah mengganti laser dengan webcam atau perangkat kecil lainnya. Kami menggunakan dua servos: satu untuk gerakan kiri dan kanan, dan yang lainnya untuk gerakan naik dan turun. Seperti yang mungkin Anda ingat, servomotor memiliki tiga kabel, yang ditunjukkan pada Gambar: daya positif (merah), daya atau ground negatif (hitam atau coklat), dan sinyal (biasanya kuning, oranye, atau putih).


Sebelum kita mulai membangun, Anda perlu tahu sedikit tentang cara kerja joystick. Joystick yang ditunjukkan pada Gambar pada dasarnya adalah dua potensiometer dan tombol yang memungkinkan kita mengukur pergerakan tongkat dalam dua dimensi.


Potensiometer adalah resistor variabel dan bertindak sebagai sensor yang memberi kita tegangan yang bervariasi tergantung pada rotasi perangkat di sekitar porosnya. Jadi saat Anda menggerakkan joystick di sekitar pusatnya, resistansinya-dan karenanya outputnya-bervariasi. Output dari potensiometer adalah analog, sehingga hanya dapat memiliki nilai antara 0 dan 1,023 ketika dibaca oleh pin analog Arduino. Nomor ini mengirimkan pulsa ke Arduino, yang pada gilirannya memberitahu servos seberapa jauh untuk bergerak.

Joystick biasanya memiliki lima pin: VRx (sinyal sumbu x), VRy (sinyal sumbu y), SW (tombol yang tidak akan kita gunakan dalam proyek ini), dan GND dan +5V untuk daya.

Ketika sumbu x joystick dipindahkan ke kiri atau kanan, servo yang sesuai akan bergerak ke arah itu; ketika sumbu y joystick digerakkan ke atas atau ke bawah, servo lainnya akan bergerak ke atas atau ke bawah.


Cara membuat rangkaian :

1. Hubungkan kabel merah kedua servo ke rel +5V, dan kabel cokelatnya ke GND di breadbord.

2. Hubungkan salah satu kabel sinyal kuning servo langsung ke pin 9 Arduino, dan kabel sinyal servo lainnya langsung ke pin Arduino 10, seperti yang ditunjukkan pada diagram rangkaian pada Gambar.

3. Hubungkan GND dari modul joystick ke rel Arduino GND, dan +5V ke rel Arduino +5V. Hubungkan pin VRX langsung ke Arduino AO, dan pin Vry langsung ke Arduino A1. Sekali lagi, koneksi sakelar SW tidak digunakan dalam proyek ini.

4. Hubungkan rel papan tempat memotong roti ke Arduino GND dan +5V, lalu periksa apakah pengaturan Anda cocok dengan Gambar.

Memasang Laser

Untuk projek ini, saya telah memasang servos ke modul housing pan-and-tilt; Anda harus dapat menemukan housing ini atau yang serupa dengan harga yang relatif wajar di eBay dengan mencari "Arduino pan and-tilt servo kit." Anda mungkin harus merakitnya sendiri, tetapi ini mudah dilakukan dengan petunjuk yang disertakan.

Pasang dioda laser ke bagian atas modul; Saya sarankan menggunakan lem untuk perlengkapan permanen, tetapi Anda dapat menggunakan selotip jika Anda menginginkan sesuatu yang lebih sementara. Sekarang Anda dapat mengontrol laser menggunakan joystick. Servo akan dijepit ke modul tilt-and-pan seperti yang ditunjukkan pada Gambar.


Menggerakkan joystick ke kiri dan ke kanan akan menggerakkan servo sumbu x, dan menggerakkan joystick ke atas dan ke bawah akan menggerakkan servo sumbu y. Perakitan lengkap ditunjukkan pada Gambar.


Sketch program arduino :

Sketsa pertama memanggil perpustakaan Servo dan kemudian mendefinisikan dua servo sebagai kemiringan dan geser. Sumbu x joystick terpasang ke pin Arduino AO dan sumbu y ke Arduino A1, dan ini adalah INPUT kami. Sumbu x dan y kemudian ditetapkan sebagai variabel untuk pergerakan. Servo tilt terpasang ke Arduino pin 9 dan pan terpasang ke Arduino pin 10, dan ini adalah OUTPUT kami. Arduino kemudian membaca INPUT dari joystick dan mengubah tegangan ini menjadi OUTPUT, menggerakkan servo sesuai dengan arah yang dipilih.

#include <Servo.h>
Servo tilt, pan; // Create servo object
int joyX = A0; // Analog pin connected to x-axis servo
int joyY = A1; // Analog pin connected to y-axis servo
int x, y; // Variables to read values
void setup() {
tilt.attach(9); // Attach tilt servo on pin 9 to the servo object
pan.attach(10); // Attach pan servo on pin 10 to the servo object
}
void loop() {
x = joyX; // Read value of x-axis (between 0 and 1023)
y = joyY; // Read value of y-axis (between 0 and 1023)
x = map(analogRead(joyX), 0, 1023, 900, 2100); // Scale it to use
// with servo between
// 900 to 2100
// microseconds
y = map(analogRead(joyY), 0, 1023, 900, 2100);
tilt.write(x); // Set servo position according to scaled value
pan.write(y);
delay(15); // Wait for servos to get to new position
}

Demikianlah projek arduino joystick Controlled laser, selamat mencoba dan semoga bermanfaat.