Prototyp Papan Catur Elektronik 4x4 – Integrasi RFID & Arduino
Komponen dan Perlengkapan
Sensor Efek Hall × 16
Breadboard Tanpa Solder Ukuran Penuh × 1
LED (generik) × 16
Pembaca RFID (generik) 125 kHz × 1
Arduino Mega 2560 × 1
Tag RFID 3M × 2
Alat dan Mesin yang Diperlukan
Plexiglass
Kertas Glossy
Papan kayu
Cat Akrilik (hijau tua dan krim) × 2
Magnet bundar 10 mm
Bidang catur Pawn dan Queen
Pemolot dan bahan solder
Aplikasi dan Layanan Online
Arduino IDE
Tentang Proyek
Halo para pembuat,
Saya Tahir Miriyev, lulusan tahun 2018 dari Middle East Technical University, Ankara/ Turkiye. Saya mempelajari Matematika Terapan, tetapi saya selalu suka membuat hal, terutama ketika melibatkan pekerjaan tangan dengan elektronika, desain, dan pemrograman. Berkat kursus unik tentang prototyping yang ditawarkan di departemen Desain Industri kami, saya mendapatkan kesempatan untuk membuat sesuatu yang benar-benar menarik. Proyek ini dapat diperlakukan sebagai Proyek Akhir, yang berlangsung selama satu semester penuh (4 bulan). Siswa diberi tugas untuk menemukan pendapat kreatif dalam merancang produk/demo yang sudah ada dan mewujudkan ide mereka menggunakan mikrokontroler dan sensor Arduino. Saya memikirkan tentang catur, dan setelah melakukan beberapa riset tentang proyek-proyek sukses, saya memperhatikan bahwa dalam proyek-proyek sebelumnya pembuat-b pembuat pada dasarnya menggunakan mesin catur siap pakai (di mana semua gerakan setiap bidang diprogram di inti), bersama dengan Raspberry Pi, beberapa MUX, LED dan saklar reed. Dalam proyek saya, meskipun, saya memutuskan untuk menghilangkan perangkat lunak eksternal dalam hal mesin catur, dan untuk menemukan solusi kreatif untuk masalah Pengenalan Figuran, menggunakan pembaca RFID, sensor Efek Hall dan Arduino Mega.
Untuk menjadikannya sederhana, bayangkan Anda memiliki papan catur dengan “otak”=mikrokontroler, dan Anda harus membuat papan Anda memahami bidang mana yang Anda pegang di tangan Anda dan di mana Anda telah menempatkannya. Ini adalah masalah Pengenalan Figuran. Solusi untuk masalah ini sederhana ketika Anda memiliki mesin catur dengan semua bidang berdiri di posisi awal mereka di papan. Sebelum saya menjelaskan mengapa itu demikian, biarkan saya membuat beberapa catatan.
Bagi yang antusias tentang bagaimana hal bekerja di sini, saya harus memberikan klarifikasi tentang mengapa kita membutuhkan saklar reed (atau dalam kasus saya, saya menggunakan sensor Efek Hall): jika Anda menempatkan magnet di bawah setiap bidang dan mengangkatnya dari kotak pada papan (asumsi bahwa ada saklar reed di bawah setiap kotak) karena keberadaan/kehilangan medan magnet di atas sensor, Anda dapat membuat kontroler Anda memahami apakah ada/tidak ada bidang yang berdiri di kotak. Namun, ini masih tidak memberitahu mikrokontroler apa-apa tentang bidang mana yang tepat yang berdiri di kotak. Ini hanya memberitahu bahwa ada/tidak ada bidang di kotak. Pada titik ini, kita berhadapan dengan masalah Pengenalan Figuran, yang dapat diselesaikan menggunakan mesin catur, dengan semua bidang ditempatkan di posisi awal mereka saat permainan catur dimulai. Dengan cara ini mikrokontroler “tahu” di mana setiap bidang berdiri sejak awal, dengan semua alamat tetap di memori. Namun, ini membawa keterbatasan besar: Anda tidak dapat memilih, katakanlah, sejumlah bidang dan menempatkannya secara acak di mana pun di papan dan mulai menganalisis permainan. Anda selalu harus memulai dari awal, semua bidang harus ada di papan awalnya, karena ini adalah satu-satunya cara untuk mikrokontroler melacak lokasi mereka setelah Anda mengangkat sebuah bidang dan menempatkannya di kotak lain. Pada intinya, ini adalah masalah yang saya perhatikan dan memutuskan untuk bekerja menuju.
Solusi saya cukup sederhana, meskipun kreatif. Saya menempatkan pembaca RFID di sisi depan papan. Sementara itu, saya melekatkan tidak hanya magnet di bawah bidang tetapi juga tag RFID, dengan setiap bidang memiliki ID unik. Oleh karena itu, sebelum Anda menempatkan bidang di kotak mana pun yang Anda inginkan, Anda dapat pertama-tama memegang bidang dekat pembaca RFID dan membiarkannya membaca ID, mengidentifikasi bidang, menyimpannya di memori, dan kemudian Anda dapat menempatkannya di mana pun yang Anda inginkan. Selain itu, alih-alih menggunakan saklar reed, untuk menyederhanakan desain rangkaian, saya menggunakan sensor Efek Hall, yang bekerja dengan cara yang sama, dengan perbedaan satu-satunya mengirim 0 atau 1 ke mikrokontroler sebagai data digital, yang menandakan “ada” atau “tidak ada” bidang di kotak, masing-masing. Saya juga menambahkan LED (sayangnya tidak sama warnanya, tidak punya yang sama), sehingga saat Anda mengangkat bidang, semua lokasi kotak, di mana bidang yang diangkat dapat ditempatkan, akan menyala. Anggaplah ini sebagai latihan edukatif untuk pembelajar catur:)
Terakhir, saya ingin mencatat bahwa meskipun saya menggunakan beberapa teknik, proyek tetap sederhana dan mudah dipahami, tidak terlalu mendalam atau terlalu rumit. Saya tidak memiliki cukup waktu untuk melanjutkan ke papan catur 8x8 (juga karena 64 sensor Efek Hall mahal di Turkiye, saya menutupi semua biaya terkait proyek), itulah sebabnya saya membuat versi demo 4x4 dengan hanya dua bidang yang diuji: Pawn dan Queen. Alih-alih menggunakan mesin catur, saya menulis kode sumber untuk Arduino, yang menghasilkan semuanya.
Sebelum kita melanjutkan ke penjelasan langkah demi langkah tentang bagaimana proyek dilakukan, saya akan merekomendasikan untuk menonton video ilustratif dan mendapatkan ide intuitif tentang apa yang saya bicarakan.
Catatan #1: Salah satu LED merah (pertama dalam baris/ dari kiri ke kanan) padam, tidak apa-apa.
Catatan #2: Meskipun banyak digunakan, dari pengalaman saya saya dapat mengatakan bahwa teknologi RFID bukan ide terbaik untuk digunakan dalam aplikasi DIY (tentu saja jika Anda memiliki alternatif). Sebelum semuanya bekerja, saya melakukan banyak percobaan dengan menempatkan bidang catur dekat pembaca dan menunggu sampai ia dengan benar membaca ID. Port serial harus diatur untuk itu karena cara pembaca RFID membaca ID hanyalah sesuatu yang merepotkan. Seseorang harus mencoba sendiri untuk memahami masalahnya.
Berikut adalah daftar semua alat yang saya gunakan untuk proyek:
Komponen elektronik:
Breadboard (x1)
Sensor Efek Hall Omnidirectional A1126LUA-T (IC-1126 SW OMNI 3-SIP ALLEGRO) (x16)
Ambil kardus 21x21 cm, serta kardus tambahan untuk memotong dan menempelkan dinding bagian atas papan, untuk membuat 16 kotak yang tercatat A B C D 1 2 3 4. Karena kardus tipis, Anda dapat menempelkan 16 sensor Efek Hall ke dalam setiap kotak, dengan 3 kaki masing-masing dan 16 LED dengan 2 kaki masing-masing.
Setelah Anda menempatkan komponen, Anda perlu melakukan beberapa solder, untuk menyolder kaki sensor Efek Hall dan LED ke kabel jumper. Pada titik ini, saya akan merekomendasikan memilih kabel berwarna dengan cara yang cerdas, sehingga Anda tidak akan bingung dengan kaki + dan - LED, juga kaki VCC, GND dan PIN sensor Efek Hall. Tentu saja, seseorang dapat mencetak PCB dengan sensor dan bahkan LED tipe WS2812 yang sudah di-solder, tetapi saya memutuskan untuk menjaga proyek tetap sederhana dan melakukan lebih banyak “pekerjaan tangan”. Pada titik ini, semua yang harus Anda lakukan adalah menyiapkan kabel dan sensor, pada tahap selanjutnya mengikuti skema Fritzing Anda dapat melihat di mana Anda harus menempelkan ujung setiap kabel. Singkatnya, beberapa dari mereka akan pergi langsung ke PIN pada Arduino Mega (cukup banyak di Arduino), yang lain ke breadboard dan semua GND dapat di-solder ke sepotong kabel tunggal (membuat ground umum) yang nantinya harus dihubungkan ke GND pada papan Arduino. Catatan penting di sini: sensor Efek Hall adalah OMNIDIRECTIONAL, yang berarti tidak masalah kutub mana magnet yang akan didekatkan ke sensor, ia akan mengirim data 0 sementara ada medan magnet di sekitar dan 1 ketika tidak ada, yaitu, magnet jauh (lebih dari katakan 5 cm) dari sensor.
Siapkan kardus serupa 21x21 cm dan pasang Arduino Mega dan breadboard panjang di atasnya. Anda juga dapat memotong 4 dinding dengan tinggi apa pun dari kardus lagi, dan menempelkan mereka secara vertikal dengan dua lapisan papan persegi 21x21 cm. Lalu ikuti Skematis Fritzing untuk menyiapkan semuanya. Anda juga dapat menempatkan pembaca RFID setelah Anda selesai dengan LED dan sensor Efek Hall.
Uji apakah semua LED dan sensor bekerja, dengan mengirim sinyal menggunakan kode dasar. Jangan lewati langkah ini karena itu akan memungkinkan Anda menguji apakah semuanya bekerja dengan baik dan melanjutkan ke konstruksi lebih lanjut dari papan.
Siapkan Pawn dan Queen, dengan dua magnet radius 10 cm yang dipasang di bawah, serta tag RFID bundar. Nantinya, Anda akan perlu membaca ID tag tersebut dari Layar Serial pada Arduino IDE.
Jika semuanya bekerja dengan baik, Anda dapat memulai kode utama dan mencoba hal-hal!
7 (opsional). Anda dapat melakukan beberapa pekerjaan artistik dengan kayu yang akan memberi demo Anda tampilan yang lebih alami. Itu tergantung pada kehendak dan imajinasi Anda.
Berikut adalah beberapa video dan foto dari berbagai tahap:
Terima kasih atas perhatian Anda! Uji semua dan bebas untuk menulis di komentar tentang kesalahan apa pun yang saya lewatkan, perbaikan, saran, dll. Menunggu beberapa pendapat tentang proyek. Jika Anda membutuhkan bantuan apa pun dengan proyek, kirim email kepada saya (miriyevt@gmail.com) atau tambahkan di Skype (tahir.miriyev9r1), sehingga kami dapat menentukan jadwal percakapan dan membicarakan hal-hal secara detail. Semoga sukses!
Kode
thinK_code.ino
Saya mencoba meninggalkan sebanyak mungkin komentar, untuk membuat proses analisis kode dapat dipahami. Untuk jujur, logika mungkin terlihat sedikit kompleks pada pandangan pertama, tetapi jika Anda mengejar logika kode lebih dalam, itu akan terlihat lebih komprehensif.
Catatan: Mirip dengan papan catur asli, saya secara abstrak menomori kotak sebagai A1, A2, A3, A4, B1, ..., C1, ..., D1, ..., D4. Namun, dalam kode, tidak praktis untuk menggunakan notasi ini. Oleh karena itu saya menggunakan array dan mewakili kotak sebagai 00, 01, 02, 03, 10, 11, 12, 13, ..., 32, 33 masing-masing.
#include <SoftwareSerial.h>
SoftwareSerial RFID(11, 12);
// ... kode lengkap tersedia dalam file proyek
Skematis
Skematis sedikit rumit, saya tahu, tetapi ide seharusnya jelas. Ini adalah pertama kalinya saya menggunakan Fritzing (dengan sangat direkomendasikan, sebetulnya), mungkin koneksi dapat digambar dengan lebih akurat. Bagaimanapun, saya mencatat semuanya di dalam skematis.
Catatan: Saya tidak dapat menemukan model Pembaca RFID yang tepat di antara komponen dalam basis data Fritzing. Model yang saya gunakan adalah modul RFID 125Khz - UART. Anda dapat menemukan tutorial di Youtube tentang cara mengatur modul ini dengan Arduino.