Demo 4x4 Papan Catur Elektronik / Dengan Arduino Mega + Pembaca RFID + Sensor kesan Hall: 7 Langkah
Demo 4x4 Papan Catur Elektronik / Dengan Arduino Mega + Pembaca RFID + Sensor kesan Hall: 7 Langkah
Anonim
Demo 4x4 Papan Catur Elektronik / Dengan Arduino Mega + Pembaca RFID + Sensor kesan Hall
Demo 4x4 Papan Catur Elektronik / Dengan Arduino Mega + Pembaca RFID + Sensor kesan Hall

Hai pembuat, Saya Tahir Miriyev, lulusan 2018 dari Middle East Technical University, Ankara / Turkey. Saya mengambil jurusan Matematik Gunaan, tetapi saya selalu gemar membuat barang, terutamanya ketika melibatkan beberapa kerja tangan dengan elektronik, reka bentuk dan pengaturcaraan. Terima kasih kepada kursus prototaip yang unik, yang ditawarkan di jabatan Reka Bentuk Perindustrian kami, saya berpeluang membuat sesuatu yang sangat menarik. Projek ini boleh dianggap sebagai Projek Jangka, berlangsung selama satu semester keseluruhan (4 bulan). Pelajar ditugaskan untuk mencari pendekatan kreatif untuk merancang produk / demo yang sudah ada dan merealisasikan idea mereka menggunakan mikrokontroler dan sensor Arduino. Saya berfikir tentang catur, dan setelah melakukan kajian mengenai projek-projek yang berjaya, saya perhatikan bahawa pada projek sebelumnya pembuat pada dasarnya menggunakan mesin catur siap (di mana semua pergerakan setiap tokoh diprogramkan dalam inti), bersama dengan Raspberry Pi, beberapa MUX Suis, lampu LED dan reed. Walaupun begitu, dalam projek saya, saya memutuskan untuk menyingkirkan sebarang perisian luaran dari segi mesin catur, dan mencari penyelesaian kreatif untuk masalah Pengecaman Gambar, menggunakan pembaca RFID, sensor kesan Hall dan Arduino Mega.

Langkah 1: Apakah Masalah Pengecaman Gambar dan Bagaimana Saya Menyelesaikannya

Apakah Masalah Pengecaman Gambar dan Bagaimana Saya Menyelesaikannya
Apakah Masalah Pengecaman Gambar dan Bagaimana Saya Menyelesaikannya

Sederhananya, anggap anda mempunyai papan catur dengan "otak" = mikrokontroler, dan anda harus membuat papan anda memahami angka yang anda pegang di tangan anda dan di mana anda meletakkannya. Ini adalah masalah Pengecaman Gambar. Penyelesaian untuk masalah ini adalah sepele apabila anda mempunyai mesin catur dengan semua kepingan berdiri di kedudukan awal mereka di papan. Sebelum saya menerangkan mengapa begitu, izinkan saya membuat beberapa komen.

Bagi mereka yang bersemangat tentang bagaimana sesuatu berfungsi di sini, saya harus membuat penjelasan mengapa kita memerlukan suis buluh (atau dalam kes saya, saya menggunakan sensor kesan Hall): jika anda meletakkan magnet di bawah setiap bahagian dan mengambilnya dari petak di papan (dengan anggapan bahawa terdapat suis buluh di bawah setiap petak) kerana adanya / tidak adanya medan magnet di atas sensor, anda dapat membuat pengawal anda memahami sama ada terdapat / tidak ada bahagian yang berdiri di atas alun-alun. Walau bagaimanapun, ia masih tidak memberitahu apa-apa mikrokontroler mengenai bahagian mana yang berdiri di alun-alun. Ia hanya mengatakan bahawa ada / tidak ada sekeping di atas petak. Pada ketika ini, kita berhadapan dengan masalah Pengecaman Gambar, yang dapat diselesaikan dengan menggunakan mesin catur, dengan semua kepingan diletakkan di posisi awal ketika permainan catur dimulakan. Dengan cara ini mikrokontroler "tahu" di mana setiap bahagian berdiri sejak awal, dengan semua alamat tetap dalam memori. Walaupun begitu, ini memberi kita had yang besar: anda tidak boleh memilih, katakanlah, sebilangan kepingan dan meletakkannya secara rawak di mana sahaja di papan dan mula menganalisis permainan. Anda selalu harus bermula dari awal, semua kepingan harus berada di papan asalnya, kerana ini adalah satu-satunya cara untuk mikrokontroler mengesan lokasi mereka setelah anda mengangkat sekeping dan meletakkannya di beberapa alun-alun lain. Pada hakikatnya, inilah masalah yang saya perhatikan dan memutuskan untuk menyelesaikannya.

Penyelesaian saya agak mudah, walaupun kreatif. Saya meletakkan pembaca RFID di bahagian depan papan. Sementara itu, saya tidak hanya memasang magnet di bawah kepingan tetapi juga label RFID, dengan setiap bahagian mempunyai ID yang unik. Oleh itu, sebelum anda meletakkan gambar di mana-mana petak yang diingini, pertama-tama anda dapat menyimpan potongan itu dekat dengan pembaca RFID dan membiarkannya membaca ID, mengenal pasti bahagian tersebut, menyimpannya dalam memori, dan kemudian anda boleh meletakkannya di mana sahaja anda mahu. Selain daripada menggunakan suis reed, untuk mempermudah reka bentuk litar, saya menggunakan sensor kesan-kesan, yang berfungsi sama, dengan satu-satunya perbezaan menghantar 0 atau 1 ke mikrokontroler sebagai data digital, yang menandakan "ada" atau "tidak ada" setiap bahagian di alun-alun. Saya menambah LED juga (sayangnya tidak sama warna, tidak memiliki warna), sehingga apabila anda mengangkat sekeping, semua lokasi persegi, di mana sekeping terangkat dapat diletakkan, akan menyala. Anggap ia sebagai amalan pendidikan untuk pelajar catur:)

Akhir sekali, saya ingin menyatakan bahawa walaupun saya menggunakan beberapa teknik, projek ini tetap ringkas dan mudah difahami, tidak berjaya atau terlalu rumit. Saya tidak mempunyai cukup masa untuk meneruskan papan catur 8x8 (juga kerana 64 sensor kesan-hall mahal di Turki, saya menanggung semua perbelanjaan yang berkaitan dengan projek), sebab itulah saya melakukan versi demo 4x4 dengan hanya dua bahagian yang diuji: Pawn dan Permaisuri. Daripada menggunakan mesin catur, saya menulis kod sumber untuk Arduino, yang menghasilkan semua yang anda akan lihat dalam video di bawah.

Langkah 2: Bagaimana Perkara Berfungsi

Image
Image

Sebelum kita menerangkan langkah demi langkah bagaimana projek itu dilaksanakan, saya rasa lebih baik menonton video ilustrasi dan mendapatkan idea intuitif mengenai apa yang saya bicarakan.

Nota # 1: salah satu LED merah (pertama di baris / dari kiri ke kanan) terbakar, tidak kisah.

Catatan # 2: walaupun digunakan secara meluas, dari pengalaman saya, saya dapat mengatakan bahawa Teknologi RFID bukanlah idea terbaik untuk digunakan dalam aplikasi DIY (tentu saja jika anda mempunyai alternatif). Sebelum semuanya berfungsi, saya melakukan banyak percubaan dengan meletakkan kepingan catur di dekat pembaca dan menunggu sehingga membaca ID dengan betul. Port bersiri harus disediakan untuk itu kerana cara pembaca RFID membaca ID hanyalah sakit kepala. Seseorang harus mencuba sendiri untuk memahami masalahnya. Sekiranya anda memerlukan lebih banyak bantuan, sila hantarkan saya ([email protected]) atau tambahkan skype (tahir.miriyev9r1), supaya kami dapat menjadualkan perbualan dan membincangkan perkara secara terperinci, saya akan menerangkan semuanya secara menyeluruh.

Langkah 3: Alat dan Komponen

Alat dan Komponen
Alat dan Komponen
Alat dan Komponen
Alat dan Komponen
Alat dan Komponen
Alat dan Komponen

Berikut adalah senarai semua alat yang saya gunakan untuk projek ini: Komponen elektronik:

  • Papan Roti (x1)
  • Omnidirectional A1126LUA-T (IC-1126 SW OMNI 3-SIP ALLEGRO) Sensor kesan dewan (x16)
  • LED asas 5 mm (x16)
  • Wayar pelompat
  • Pembaca dan Antena RFID 125 kHz (x1)
  • Arduino Mega (x1)
  • Tag RFID 3M (x2)

Bahan lain:

  • Plexiglass
  • Kertas berkilat
  • Papan pendek (kayu)
  • Cat akrilik (hijau gelap dan krem) x2
  • Kadbod nipis
  • Magnet bulat 10 mm (x2)
  • Potongan bidak dan Ratu
  • Besi solder dan bahan pematerian

Langkah 4: Skematik (Fritzing)

Skematik (Fritzing)
Skematik (Fritzing)

Skema agak rumit, saya tahu, tetapi ideanya harus jelas. Ini adalah kali pertama saya menggunakan Fritzing (sangat disyorkan dengan cara itu), mungkin sambungan dapat dilukis dengan lebih tepat. Bagaimanapun, saya mencatat semua yang ada di dalam skema. Catatan: Saya tidak dapat menemui model RDIF Reader yang tepat antara komponen dalam pangkalan data Fritzing. Model yang saya gunakan ialah modul RFID 125Khz - UART. Anda boleh mendapatkan tutorial di Youtube mengenai cara mengatur modul ini dengan Arduino.

Langkah 5: Proses

Proses
Proses

Masa untuk menerangkan bagaimana sesuatu dibuat. Sila ikuti penerangan langkah demi langkah:

1. Ambil kadbod 21x21 cm, serta beberapa kadbod tambahan untuk memotong dan merekatkan dinding bahagian atas papan, untuk membuat 16 kotak dengan bilangan A B C D 1 2 3 4. Oleh kerana kadbodnya nipis, anda boleh memasukkan 16 sensor kesan ruang ke setiap petak, masing-masing dengan 3 kaki dan 16 LED dengan 2 kaki.

2. Setelah anda menetapkan komponen, anda perlu melakukan pematerian, untuk menyolder kaki sensor kesan Hall dan kabel LED ke kabel jumper. Pada ketika ini, saya akan mengesyorkan memilih wayar berwarna dengan cara yang bijak, supaya anda tidak keliru dengan kaki + dan - LED, juga kaki VCC, GND dan PIN sensor kesan Hall. Sudah tentu, seseorang mungkin mencetak PCB dengan sensor dan juga jenis LED WS2812 yang sudah dipateri, tetapi saya memutuskan untuk menjadikan projek ini mudah dan melakukan lebih banyak lagi "kerja tangan". Pada ketika ini, yang harus anda lakukan hanyalah menyiapkan kord dan sensor, pada peringkat kemudian berikut dari skema Fritzing anda dapat melihat di mana anda harus memasang hujung setiap wayar. Sebentar lagi, sebilangan dari mereka akan terus masuk ke PIN di Arduino Mega (ada cukup di Arduino), yang lain ke papan roti dan semua GND boleh disolder ke satu bahagian tali (membuat persamaan) yang kemudian harus disambungkan ke GND di papan Arduino. Satu catatan penting di sini: Sensor kesan dewan adalah OMNIDIRECTIONAL, yang bermaksud tidak kira tiang magnet mana yang akan dipegang dekat dengan sensor, ia akan menghantar 0 data sementara terdapat beberapa medan magnet di dekatnya dan 1 apabila tidak ada, iaitu, magnet jauh (lebih jauh daripada katakan 5 sm) dari sensor.

3. Sediakan kadbod 21x21 cm yang serupa dan pasangkan Arduino Mega dan papan roti panjang di atasnya. Anda juga boleh memotong 4 dinding dari ketinggian yang dikehendaki dari kadbod sekali lagi, dan lekatkan secara menegak dengan kedua lapisan papan berukuran 21x21 cm itu. Kemudian ikuti Fritzing Schematics untuk mengaturnya. Anda juga boleh menetapkan pembaca RFID setelah selesai menggunakan LED dan sensor kesan Hall.

4. Uji sama ada semua LED dan sensor berfungsi, dengan menghantar isyarat menggunakan kod asas. Jangan mengelakkan langkah ini kerana ini akan membolehkan anda menguji sama ada semuanya berfungsi dengan baik dan meneruskan pembinaan papan.

5. Siapkan Gadai dan Ratu, dengan dua magnet dengan radius 10 cm yang terpasang di bawah, serta tanda RFID bulat. Kemudian, anda perlu membaca ID tag tersebut dari Serial Screen di Arduino IDE.

6. Sekiranya semuanya berfungsi dengan baik, anda boleh memulakan kod utama dan mencuba!

7 (pilihan). Anda boleh membuat karya seni dengan kayu yang akan memberikan demo kepada anda pemandangan yang lebih semula jadi. Itu bergantung pada kehendak dan imaginasi anda.

Langkah 6: Beberapa Foto dan Video Dari Peringkat Berbeza

Image
Image
Beberapa Foto dan Video Dari Peringkat Berbeza
Beberapa Foto dan Video Dari Peringkat Berbeza
Beberapa Foto dan Video Dari Peringkat Berbeza
Beberapa Foto dan Video Dari Peringkat Berbeza

Langkah 7: Kod Sumber

Kod sumber
Kod sumber

Sekarang, apabila kita selesai menggunakan prototaip, kita sudah bersedia untuk menghidupkannya dengan kod Arduino di bawah. Saya cuba meninggalkan sebanyak mungkin komen, agar proses analisis kod dapat difahami. Sejujurnya, logiknya mungkin kelihatan agak rumit dari pandangan pertama, tetapi jika anda menggali logik kod dengan lebih mendalam, ia akan kelihatan lebih komprehensif.

Catatan: Sama seperti papan catur yang sebenarnya, saya secara abstrak menghitung kotak sebagai A1, A2, A3, A4, B1,…, C1,…, D1,.., D4. Walau bagaimanapun, dalam kodnya, tidak praktikal untuk menggunakan notasi ini. Oleh itu, saya menggunakan tatasusunan dan mewakili kotak sebagai 00, 01, 02, 03, 10, 11, 12, 13,…, 32, 33 masing-masing.

Terima kasih kerana memberi perhatian! Uji segala-galanya dan bebas menulis dalam komen mengenai apa-apa jenis kesilapan yang saya terlepas, penambahbaikan, cadangan dan lain-lain. Berharap untuk mendengar beberapa pendapat mengenai projek tersebut. Sekiranya anda memerlukan apa-apa bantuan untuk projek ini, hantarkan saya (miriyevt @ gmail).com) atau tambahkan skype (tahir.miriyev9r1), sehingga kami dapat menjadwalkan perbualan dan membincangkan hal-hal secara terperinci. Semoga berjaya!