Image description
program mesin slot
Mesin Slot

Mesin Slot

Proyek ini menggabungkan perangkat keras dan perangkat lunak untuk menciptakan mesin slot interaktif. Perangkat keras meliputi tombol, layar, dan sirkuit elektronik, semuanya dikendalikan oleh papan Arduino. Perangkat lunak mengelola masukan, keluaran, dan fungsionalitas sistem, memastikan pengalaman pengguna yang mulus. Kami menguraikan langkah-langkah utama untuk merakit komponen dan memprogram sistem, menunjukkan bagaimana kreativitas dan teknik dapat menghadirkan ide-ide inovatif.

Perlengkapan

Elektronik:

  • 1. Arduino UNO
  • 2. Catu daya: Adaptor AC/DC model JCY-1200
  • 3. Input: AC100-249C~; Output: 12 V
  • 4. Layar utama: Layar TFT Hiletgo (ILI9341)
  • 5. Layar kredit: LCD 1602A
  • 6. 5 resistor 3,3k ohm
  • 7. 5 resistor 2,2k ohm
  • 8. Potensiometer (10k ohm)
  • 9. Papan roti
  • 10. Kabel jumper
  • 11. Tombol

Perangkat Lunak dan Alat:

  • 1. Arduino IDE
  • 2. Besi solder
  • 3. Pencetak 3D
  • 4. Lem tembak

Langkah 1: Buat Prototipe Perangkat Keras

Pertama, kami membuat prototipe yang nantinya dapat dimodifikasi.

1. Layar Utama (Layar TFT Hiletgo)

Untuk bekerja, dihubungkan ke pembagi tegangan dengan resistor 2,2k dan 3,3k ke Arduino Uno.

2. Layar Kredit (LCD 1602A)

Dihubungkan secara normal dengan potensiometer 10k untuk perubahan kontras.

3. Tombol

Tombol dihubungkan ke pin analog Arduino: kuning, merah, hijau, dan hitam dengan fungsi: tombol main, tambah dana, naikkan taruhan, turunkan taruhan.

Tata letak pin untuk Layar TFT Hiletgo (ILI9341):

Pin TFTPin ArduinoCatatan
VCC3.3VCatu daya untuk layar TFT.
GNDGNDSambungan ground.
CSDigital 6Pin Chip Select.
RSTDigital 9Pin Reset.
DCDigital 10Pin Data/Command.
SDI (MOSI)Digital 11SPI Master Out Slave In (MOSI).
SCKDigital 13SPI Clock.
LED3.3VCatu daya backlight.

Tata letak pin untuk LCD 1602:

Pin LCDPin ArduinoCatatan
VSSGNDSambungan ground.
VDD5VCatu daya untuk LCD.
VOPin tengah potensiometerPenyesuaian kontras. Gunakan potensiometer 10kΩ.
RSDigital 8Pin Register Select.
RWGNDPin Read/Write. Set ke GND untuk mode tulis saja.
EDigital 7Pin Enable.
D4Digital 5Pin data D4.
D5Digital 4Pin data D5.
D6Digital 3Pin data D6.
D7Digital 2Pin data D7.
A (LED+)5VBacklight positif
K (LED-)GNDBacklight ground

Langkah 2: Perangkat Lunak

Ikhtisar

Proyek ini mengimplementasikan permainan mesin slot menggunakan mikrokontroler Arduino Uno, yang dihubungkan dengan dua layar: Layar TFT Hiletgo (ILI9341) untuk menampilkan kisi dan animasi mesin slot, dan LCD 1602A untuk menampilkan informasi kredit dan taruhan secara dinamis. Permainan mendukung interaksi pengguna melalui tombol untuk bermain, menyesuaikan taruhan, dan menambah kredit. Permainan mensimulasikan perilaku mesin slot dengan menggabungkan bobot simbol berbasis probabilitas, logika pembayaran, dan mekanisme pembangkitan angka acak.

Fitur Utama

Rendering Simbol dan Kisi: Mesin slot menampilkan kisi 3x5 simbol yang dirender di Layar TFT Hiletgo. Simbol digambar sebagai bitmap menggunakan pustaka Adafruit_GFX dan Adafruit_ILI9341. Garis kemenangan (horizontal dan diagonal) dihitung secara dinamis, dan hasilnya ditampilkan di layar TFT.

Interaksi Pengguna: Tombol untuk bermain, menyesuaikan taruhan, dan menambah kredit. Pembaruan real-time kredit dan taruhan ditampilkan di LCD.

Logika Probabilitas dan Pembayaran: Sistem pemilihan acak berbobot menentukan frekuensi kemunculan simbol. Tabel pengali pembayaran mendefinisikan hadiah berdasarkan jumlah simbol yang cocok pada garis kemenangan.

Pustaka yang Digunakan

  • Adafruit_GFX: Menyediakan fungsi rendering grafis penting, seperti menggambar bentuk, teks, dan bitmap. Digunakan untuk merender kisi dan simbol di layar TFT.
  • Adafruit_ILI9341: Pustaka khusus untuk menghubungkan Layar TFT Hiletgo dengan driver ILI9341. Memungkinkan komunikasi SPI yang efisien dan rendering bitmap yang cepat.
  • LiquidCrystal: Menyederhanakan interaksi dengan LCD 1602A. Digunakan untuk menampilkan data pengguna seperti kredit dan jumlah taruhan.

Logika Permainan

Rendering Simbol: Setiap simbol (misalnya Ceri, Apel, Tujuh) diwakili oleh gambar bitmap yang disimpan dalam memori. Fungsi drawSlotResult() merender simbol acak pada kisi berdasarkan indeks yang dipilih.

Sistem Probabilitas Berbobot: Setiap simbol memiliki bobot yang menentukan kemungkinan kemunculannya. Bobot yang lebih tinggi berarti kemunculan lebih sering. Contoh: Ceri dan Pisang memiliki bobot tertinggi, sehingga paling umum. Tujuh dan Bar memiliki bobot terendah, sehingga paling langka dan paling menguntungkan. Fungsi pickWeightedSymbol() menggunakan pendekatan probabilitas kumulatif untuk memilih simbol secara acak berdasarkan bobotnya.

Logika Pembayaran: Garis kemenangan ditentukan sebelumnya sebagai baris dan diagonal: 3 baris (Atas, Tengah, Bawah) dan 2 diagonal (Kiri atas ke kanan bawah dan Kiri bawah ke kanan atas). Untuk setiap garis kemenangan, jumlah simbol yang cocok dihitung. Pengali pembayaran diterapkan berdasarkan simbol dan jumlah kecocokan: Pembayaran = Pengali[Simbol][Jumlah Cocok] × (Taruhan/10). Contoh: Taruhan 20 dengan 3 "Ceri" yang cocok membayar 20×20/10=40.

Logika Tombol Main: Mengurangi taruhan saat ini dari kredit. Menghasilkan kisi 3x5 simbol acak. Mengevaluasi garis kemenangan dan menghitung pembayaran. Memperbarui tampilan dengan hasil atau "Game Over" jika tidak ada kredit tersisa.

Detail Teknis

Inisialisasi: Pin untuk tombol dan layar ditentukan. Layar diinisialisasi menggunakan pustaka masing-masing. Layar selamat datang dirender di Layar TFT saat startup.

Manajemen Kredit dan Taruhan Dinamis: LCD terus diperbarui dengan nilai kredit dan taruhan real-time. Tombol "Tambah Kredit" langsung menambahkan 200 kredit untuk permainan tanpa gangguan.

Optimasi Kinerja: Komunikasi SPI memastikan rendering yang efisien di Layar TFT. Penundaan minimal diperkenalkan untuk menyeimbangkan kecepatan permainan dan kelancaran.

Alur Proyek

Startup: Layar selamat datang ditampilkan di TFT. Kredit dan taruhan diinisialisasi di LCD.

Bermain: Pengguna menyesuaikan taruhan menggunakan tombol "Naikkan Taruhan" dan "Turunkan Taruhan". Tombol "Main" memulai permainan, mengurangi taruhan dan menampilkan simbol acak. Pembayaran dihitung untuk garis kemenangan, dan LCD memperbarui kredit secara dinamis.

Game Over: Pesan "Kredit Tidak Cukup" ditampilkan di LCD jika kredit di bawah taruhan saat ini. Pengguna dapat menambah kredit menggunakan tombol khusus.

Langkah tambahan untuk peningkatan di masa mendatang: Efek Visual: Tambahkan animasi transisi simbol dan garis kemenangan. Efek Suara: Sertakan suara untuk tekanan tombol, putaran gulungan, dan kemenangan. Fitur Permainan yang Diperluas: Perkenalkan putaran bonus atau fitur jackpot. Tambahkan dukungan untuk menyimpan dan melanjutkan status permainan. Informasi lebih lanjut dan file program tersedia.

Langkah 3: Menyolder Elektronik

Ada tiga komponen utama: layar utama, layar taruhan, dan tombol.

1. Layar utama:

Tata letak: Layar → kabel jantan-betina → pembagi tegangan → pin papan → pin digital Arduino.

2. Layar taruhan:

Tata letak: Layar → kabel jantan-betina → pin papan → pin digital Arduino.

3. Tombol:

Tata letak: Tombol → papan → kabel jantan-betina → pin analog Arduino.

Kedua layar harus dipasang ke papan bantu dan disolder untuk memudahkan manajemen pin/kabel, sementara tombol langsung dihubungkan ke pin analog.

Langkah 4: Cetak 3D Kotak/Rangka

Desain Enklosur Cetak 3D: Enklosur dirancang menggunakan perangkat lunak 3ds Max dan terdiri dari tiga komponen:

  • Kotak Utama: Alas 7,4 cm x 9 cm. Bagian atas 9 cm x 9 cm dengan tinggi 15 cm. Fungsi: Menampung elektronik internal.
  • Tutup Belakang: Dimensi 8,4 cm x 15 cm. Fungsi: Meluncur ke bagian belakang untuk penutupan yang aman dan akses.
  • Kaki: Penempelan: Dilem ke dasar kotak. Fungsi: Memberikan stabilitas dan elevasi.

Perakitan: Lem kaki ke dasar kotak. Pasang komponen internal. Geser tutup belakang untuk menutup. Informasi lebih lanjut dan file untuk pencetakan 3D tersedia.

Langkah 5: Ringkasan

Proyek Mesin Slot adalah mesin slot interaktif yang didukung oleh Arduino Uno. Menggunakan layar TFT Hiletgo untuk animasi dan LCD 1602A untuk pembaruan kredit dan taruhan, dengan interaksi pengguna melalui tombol. Perangkat lunak menampilkan simbol acak berbobot dan perhitungan pembayaran, memastikan pengalaman bermain yang dinamis. Komponen utama ditempatkan dalam enklosur cetak 3D, dan sistem menggunakan pustaka seperti Adafruit_GFX untuk grafis yang halus. Proyek ini menunjukkan kombinasi perangkat keras dan perangkat lunak untuk menciptakan perangkat yang menarik dengan potensi peningkatan di masa mendatang.

© 2026 - Semua hak dilindungi undang-undang. PT dengan modal Rp 10.000.000.000. Jl. Jend. Sudirman Kav. 52-53, Jakarta Selatan 12190