Salam, Habr!

Seperti yang dapat Anda tebak dari foto itu, hari ini kita tidak berbicara tentang klasifikasi cognac. Saya akan membuat game tic-tac-toe ... Siapa yang peduli - saya minta dipotong ->
Gagasan itu, seperti biasa, lahir secara spontan. Suatu malam musim gugur yang tenang, saya menggambar sembilan sel di atas daun dan mengundang putri saya untuk memainkan permainan baru baginya. Setelah bermain beberapa kali, saya melihat bahwa ada minat yang tulus ... dan kemudian Ostap menderita.
Tampaknya lebih mudah untuk terus menggambar sel di selembar kertas atau mengunduh program ke ponsel Anda, tetapi apakah ini menarik? Tidak!
Apa yang ingin saya dapatkan:
- Perangkat ringkas pada baterai (semua jenis layar tachi kapasitif dan MIPI segera menghilang).
- Dengan demikian, pengisian daya dari USB (lebih disukai dengan indikasi).
- Biaya waktu minimum untuk papan dan perangkat lunak (yah, seperti biasa, secara umum).
- Tombol sentuh.
- Perangkat cerdas dengan kemampuan bermain dengan controller (tanpa pemain kedua). Beralih ke satu dan dua pemain.
- Nyalakan / matikan dengan satu tombol dan lebih baik tidak menyentuh, sehingga tidak disengaja dinyalakan.
- Cetak kasing pada printer 3D + kaca buram untuk menutup LED.
Hal pertama yang pertama.
1. Jadi, diputuskan untuk mengambil pengontrol STM32F100. Di atasnya, saya bisa sepenuhnya menerapkan logika sederhana gim untuk memulai. Pada kasus dengan 48 kaki semua GPIO diduduki (tanpa menggunakan multiplexer dan ekspander). Untuk setiap silang dan nol, 8 LED digunakan (terhubung secara paralel), yang diaktifkan oleh pekerja lapangan (IRLML6401).
Perangkat ini terdiri dari dua papan, satu dengan LED dan tombol sentuh, yang kedua dengan controller, pengisian daya, baterai, dll. Mereka dihubungkan oleh konektor dengan peningkatan 2mm, di antara papan ada baterai 1250mA.
Fig. 1. Papan pengontrol
Fig. 2. Papan LEDBeberapa hari kemudian, papan akhirnya keluar dari produksi. Saya merasa bahwa permainan akan menjadi tidak nyaman karena ukuran atau tombol sentuh. Ke depan, saya akan mengatakan bahwa bermain itu sangat keren! Tombol-tombol berfungsi dengan baik melalui plexiglass 1.5-2mm.
Fig. 3. Sisi atas papan pengontrol dan LED
Fig. 4. BOTTOM sisi papan pengontrol dan LED2. Skema pengisian daya adalah yang paling sederhana yang saya masukkan ke perangkat serupa.
Fig. 5. Rangkaian pengontrol muatan.3. Semuanya akan baik-baik saja, tetapi ada lebih banyak komponen daripada yang saya harapkan, dan saya tersiksa untuk menyolder. Itulah yang terjadi setelah penyolderan.
Fig. 6. Papan pengontrol dengan komponen
Fig. 7. Papan LED dengan komponen
Fig. 8. Papan LED dengan komponen di sisi tombol sentuh.Versi pertama, dan sejauh ini satu-satunya, perangkat lunak yang saya buat seandainya dan dalam satu lingkaran tanpa akhir. Sederhana dan berfungsi tanpa bug. Saat menang, seluruh bidang padam dan kombinasi yang menang berkedip dua kali.
4. Saya memutuskan untuk mengimplementasikan tombol sentuh pada sirkuit mikro TTP223, saya sudah menggunakannya di salah satu proyek saya. Mereka tidak menuntut untuk kabel dan untuk ada / tidak adanya poligon di bawah sensor.
Fig. 9. Skema penyertaan tombol sentuh.Saya memiliki lebih dari 9 buah dan jadi saya memutuskan untuk tidak menggunakan multiplexer dan menggantung setiap tombol pada pengendali GPIO saya.
5. Selanjutnya, saya berencana untuk mengintegrasikan algoritma game dengan controller (saya sudah menemukan beberapa opsi yang layak). Perpindahan sejauh ini direncanakan akan dilakukan dengan menahan tombol sentuh tengah sebelum menyalakannya (tetapi ini belum final).
6. Saya sudah lama berpikir tentang cara menghidupkan / mematikan dengan satu tombol dengan cara sederhana. Opsi tercepat dan paling benar, menurut saya, adalah pada transistor dan menggunakan dua pengendali GPIO, yang tidak saya miliki. Karena itu, saya meletakkan chip CD4013BM. Menyalakan dilakukan dengan menekan sekitar 1s, mematikan dengan menekan cepat. Ini bekerja dengan baik.
Fig. 10. Wiring diagram CD4013BM.Pin "OUT_KEY" mengarah ke menghidupkan (EN) DC / DC AP3418 (ini berfungsi 3V3). Jadi, konsumsi minimal.
Fig. 11. Papan dengan mikrokontroler dan baterai.7. Kasingnya masih dalam tahap desain. Hanya sebuah kotak kecil yang rapi dengan plexiglass matte 1.5mm di atas yang direncanakan.
Ketika saya meletakkan beberapa lembar kertas di atas untuk melihat bagaimana transusinya terjadi, saya menyadari bahwa itu adalah kegagalan. Tidak, ini terlihat dengan baik, tetapi penguasa bidang tidak terlihat. Oleh karena itu, dalam "Gambar. 2. " 4 LED tambahan dipasang di sudut-sudut alun-alun (tidak ada pada papan sirkuit solder saya). Jika semuanya berjalan seperti yang terlihat di kepala saya, maka jika Anda melakukan penggilingan di sisi belakang pada plexiglass, maka 4 LED biru ini akan memberikan 4 balok tipis yang membentuk tanda bidang, yang akan menyala ketika perangkat dihidupkan. Jika sinar tidak berfungsi, maka dalam hal apa pun, penggilingan akan terlihat.
Ada speaker di papan, tetapi dengan generator built-in tidak cocok dengan ketinggian, dan tanpa generator saya tidak. Saya pikir vibromotor dari ponsel akan jatuh ke tempat ini dan akan ada respon vibro ketika ditekan dan dimenangkan.
Hasilnya, saya dapat mengatakan bahwa mainan itu ternyata sangat menarik. Foto tidak menunjukkan keseluruhan efek, tetapi tanda silang dan angka nol terlihat bagus, tanpa highlight. Bermain itu menyenangkan! Tombol-tombolnya bekerja dengan sempurna dan ukuran bidangnya sangat nyaman. Ketika kasing sudah siap, saya pasti akan memposting foto.

Sampai ketemu lagi!
UPD:
Menambah harga saat membeli komponen untuk 1 perangkat, mungkin saya lupa sesuatu. Papan dan perakitan tidak dihitung. Sesuatu dapat ditukar dengan yang lebih murah.
1. STM32F100C4T6B - 1 pc - 130 gosok.
2. CD4013BM - 1pc - 16r.
3. LTC4054 - 1pc - 5p.
4. AP3418KTR - 1 pc - 30 gosok.
5. IRLML6401TRPBF (Si2307DS) - 18pcs - 11r.
6. LP503759 - 1 pc - 300 gosok.
7. C191KRCT / C191KGCT - 148pcs - 436 rubel.
8. TTP223 - 8pcs - 40r.
9. Tombol, konektor, pasif - banyak - 100 rubel.
10. Biaya
11. Majelis
Total: 1068 gosok.
UPD:
Tautan Video