Daftar Isi:

Game Gunting Batu Kertas Arduino Genggam Menggunakan Layar LCD 20x4 Dengan I2C: 7 Langkah
Game Gunting Batu Kertas Arduino Genggam Menggunakan Layar LCD 20x4 Dengan I2C: 7 Langkah

Video: Game Gunting Batu Kertas Arduino Genggam Menggunakan Layar LCD 20x4 Dengan I2C: 7 Langkah

Video: Game Gunting Batu Kertas Arduino Genggam Menggunakan Layar LCD 20x4 Dengan I2C: 7 Langkah
Video: ArduMeka #1 - Gunting Batu Kertas Arduino 2024, Juli
Anonim
Game Gunting Batu Kertas Arduino Genggam Menggunakan Layar LCD 20x4 Dengan I2C
Game Gunting Batu Kertas Arduino Genggam Menggunakan Layar LCD 20x4 Dengan I2C
Game Gunting Batu Kertas Arduino Genggam Menggunakan Layar LCD 20x4 Dengan I2C
Game Gunting Batu Kertas Arduino Genggam Menggunakan Layar LCD 20x4 Dengan I2C
Game Gunting Batu Kertas Arduino Genggam Menggunakan Layar LCD 20x4 Dengan I2C
Game Gunting Batu Kertas Arduino Genggam Menggunakan Layar LCD 20x4 Dengan I2C

Halo semuanya atau mungkin saya harus mengatakan "Halo Dunia!"

Akan sangat menyenangkan untuk berbagi proyek dengan Anda yang telah menjadi entri saya untuk banyak hal Arduino. Ini adalah permainan Gunting Batu Kertas Arduino genggam menggunakan layar LCD I2C 20x4. Saya tahu Anda mungkin berpikir, "Permainan Gunting Batu Kertas lainnya?" Tetapi sebagian besar game Gunting Batu Kertas Arduino menggunakan LED sederhana dan saya juga melihat salah satu yang menggunakan simbol kertas yang diangkat oleh servos. Itu keren. Proyek ini menggunakan layar LCD 20x4 dan melakukan satu dengan I2C dan satu tanpa itu (tidak ditampilkan di sini). Menginginkan kasing murah dengan tampilan akhir, bukan hanya papan roti yang berantakan. Tidak semua orang memiliki akses ke printer 3D dan ingin membayar seseorang yang memilikinya. Dan saya ingin membuatnya mudah sehingga saya bisa berbagi ide dengan orang lain. Karena keterampilan pemrograman saya adalah tingkat pemula, sketsanya cukup sederhana dan mudah dimengerti dan diedit. Ini adalah pendidikan pribadi saya untuk membuat sketsa. Anda akan menemukan banyak catatan dalam sketsa dan itu telah melalui banyak, banyak (20+?) iterasi sampai saya yakin itu tepat. Biaya pembuatan proyek kurang dari $20 (non I2C).

Memulai dengan Arduino pada tahun 2018 dan mengunjungi situs web mereka dan membaca semua yang saya bisa. Dibangun dan bereksperimen dengan proyek-proyek contoh yang menyertainya dan membaca banyak Instructables yang telah Anda bagikan selama bertahun-tahun. Sangat menghargai mereka dan telah belajar banyak dari Anda semua. Terima kasih. Sekarang saya ingin berbagi beberapa dari apa yang telah saya pelajari menambahkan kreativitas saya sendiri. Sebelum bagian komentar dipenuhi dengan banyak pertanyaan tentang bagaimana melakukan ini dan itu harap diingat, saya memulai ini tanpa pengalaman di Arduino. Saya belajar dengan membangun proyek contoh di situs web Arduino dan Instructables. Saya belajar dari kalian. Ketika Anda terjebak, itu mungkin cara tercepat bagi Anda untuk menemukan solusi.

Langkah 1: Pengenalan Proyek

Pengenalan Proyek
Pengenalan Proyek
Pengenalan Proyek
Pengenalan Proyek

Memilih layar LCD dari Amazon dan memilih LCD I2C 20x4 karena biaya rendah (sekitar $12 - $18) dan kemudahan pemasangan kabel dan pemrograman. Jika mau, Anda dapat menggunakannya tanpa I2C dan mungkin mendapatkannya semurah $7. Tetapi Anda perlu menggunakan perpustakaan dan skema pengkabelan yang berbeda dan menggunakan lebih banyak pin Arduino. Jangan khawatir, itu sudah cukup untuk pergi. Serial I2C 20x4 akan lebih mudah dibuat, lebih sedikit kabel sehingga tidak membingungkan. Tapi LCD 20x4 paralel sekitar $5 lebih murah. Saya menggambar skema untuk kedua skema pengkabelan. Sebagian besar bagian lain saya beli dari Amazon dan beberapa toko lokal. Kotak saya adalah kotak campuran minuman cappuccino kosong. Saya suka tutupnya mudah lepas untuk menghidupkan/mematikan daya, mengerjakan komponen apa pun, atau mengganti baterai. Dan "Hei!" kotak itu gratis dan saya suka cappuccino. Daur ulang plastik baik untuk lingkungan. Anda dapat menggunakan kotak apa pun yang Anda suka sehingga semuanya cocok atau bahkan melewatkan kotak atau papan roti proyek. Saya ingin "tampilan proyek yang sudah selesai" dengan harga murah. Saya yakin seseorang membuat versi cetak 3D. Arduino memainkan permainan Gunting Batu Kertas dengan Anda di LCD, menyimpan skor, Anda dapat memasukkan dengan tombol, dan jika Anda memilih ada opsi yang memungkinkan Anda curang. Awalnya fitur cheat ditulis untuk tujuan debugging dan ketika saya selesai dengannya saya berkomentar. Hanya untuk bersenang-senang saya memasukkannya kembali.

Langkah 2: Papan roti

Papan tempat memotong roti
Papan tempat memotong roti
Papan tempat memotong roti
Papan tempat memotong roti

Saya melapisi sirkuit saya menggunakan Arduino Uno tetapi ketika menggabungkan semuanya menggunakan Arduino Nano karena lebih pas di dalam kotak. Jadi, Anda dapat membangun ini dengan salah satunya. Tapi ingat untuk mengubah beberapa pengaturan di IDE. Nano dipasang di bagian belakang LCD menggunakan Command Strips atau selotip dua sisi. Posisikan Arduino Nano di samping piggyback board I2C sehingga konektor USB akan menghadap ke luar (sebelah kanan LCD). Anda dapat menggunakan kotak baterai 9v atau 4x AA (yang memberi Anda 6v) dengan sakelar geser SPST untuk daya yang dipasang di dalam kotak juga dengan Strip Perintah. Dibangun dua arah, Arduino memiliki regulator tegangan on-board yang menurunkannya ke 5 volt yang dibutuhkannya. Jika Anda memikirkannya, game ini sebenarnya dapat mendaur ulang "kebanyakan baterai 9v mati" untuk daya dan berfungsi dengan baik. (Anda memang mengganti baterai detektor asap dua kali setahun, kan?) Perangkat lain yang menggunakan baterai 9v mungkin mengatakan baterai mati pada 6 – 8 volt; tapi itu tidak mati sampai "Arduino Dead!"

Saat merancang proyek saya menggunakan 4 tombol tekan SPST untuk input. Tetapi membangun game yang sudah selesai ke dalam kotak menggunakan 5 tombol tekan SPST berpikir di masa depan saya mungkin mencoba membuat game yang membutuhkan lebih banyak tombol. Mungkin permainan labirin? Pembagi tegangan resistor untuk tombol dipasang bersama pada potongan papan proto yang juga dapat dipasang dengan Strip Perintah.

Langkah 3: Perakitan

perakitan
perakitan
perakitan
perakitan
perakitan
perakitan

Perakitan:

4 rakitan utama adalah LCD dengan papan piggyback I2C opsional, Arduino Nano, resistor dan sakelar daisy yang dirantai ke papan proto interkoneksi dan kotak baterai dengan sakelar hidup/mati.

Anda harus mulai dengan memasang papan sirkuit atau memasang kabel keras pada papan proto mengikuti skema. Saya suka menyimpan LCD menghadap ke bawah di dalam tutup kotak agar tidak tergores. Saya menggunakan header hanya di satu sisi Arduino yang memiliki 5v untuk menghubungkannya ke papan proto. Saya membuat jembatan dengan 3 header (banyak pekerjaan solder) dari Arduino ke papan proto sehingga mereka berbaring rata di bagian belakang LCD dengan strip Perintah atau selotip dua sisi. Tapi sungguh, papan dapat dihubungkan hanya dengan menyolder kabel dari satu ke yang lain. Menggunakan header perempuan untuk menghubungkan papan proto ke LCD I2C. Kaki resistor papan proto dapat digunakan untuk membuat 5 titik solder untuk tombol. Kaki lainnya dari setiap tombol menuju ke pin Arduino A0. Setiap tombol akan membutuhkan 2 kabel yang disolder. Gunakan pengukur Ohm untuk menentukan kaki kancing mana yang akan digunakan, tetapi umumnya Anda tidak bisa salah dengan kaki yang tidak berdekatan (diagonal satu sama lain).

Pilih pengaturan Anda untuk Arduino Anda di IDE. Unduh sketsa dan muat ke Arduino dan uji / pemecahan masalah.

Siap memasukkannya ke dalam kotak? Menghapus label untuk cappuccino, mencuci dan mengeringkan kotak saya. Ukur dengan hati-hati dan potong lubang di kotak untuk LCD seperti yang Anda lihat dan dipasang dengan 3 pasak yang disekrup ke tiga lubang sudut LCD (2 di bagian bawah kotak, 1 di dekat tutup) cukup panjang untuk mencapai belakang kotak dan tetap di tempatnya dengan gesekan. Lubang sekrup pada LCD piggyback board mungkin terlalu dekat dengan terminal, jadi saya abaikan saja. Menggunakan pisau Exacto untuk mengebor lubang pilot untuk sekrup di pasak agar tidak pecah (hati-hati, jangan terpeleset dan menusuk diri sendiri, pegang pasak dengan tang). Harus sedikit membengkokkan / menghaluskan kotak untuk pemasangan terakhir, tetapi terkunci kembali ke bentuk yang tepat. Lubang untuk tombol "dibor" dengan memposisikannya (gambar garis dengan tepi lurus) dan panaskan terminal dengan besi solder sampai "meleleh" kotak. Kemudian lepaskan tombol setelah dingin dan solder pada 6" - 9" sisa kabel CAT 5e atau kabel 18ga hingga 22ga ke tombol. Pasang kabel-kabel tombol-pertama kembali ke lubangnya kemudian solder ke proto-board resistor. Setitik lem super, lem panas, atau bahkan hanya gesekan akan membuat kancing tetap di tempatnya. Pada satu build menggunakan beberapa penyambung kabel telepon (lingkaran merah di blok plastik bening) untuk membantu membuat beberapa koneksi terakhir lebih mudah antara kotak baterai, proto-board resistor dan perakitan LCD / Arduino. Jika mau, Anda bisa menggunakan solder dan heat shrink sebagai gantinya. Kemudian dengan hati-hati dan perlahan dorong semua kabel dan komponen ke dalam kotak dan tutup penutupnya. Anda memasang baterai dan mengunggah sketsa Arduino sebelum melakukan semua ini? Anda juga akan memerlukan perpustakaan untuk layar LCD 20x4 dengan atau tanpa I2C (mana pun yang Anda pilih) yang dapat Anda unduh secara gratis di Github. Nyalakan, coba, dan lihat apakah itu berhasil. Kemudian saya mengedit sketsa saya dengan jeda agar lebih mudah dibaca, menambahkan "efek titik kedip" dan beberapa hal lain bersama dengan banyak komentar. Coba posisikan Arduino agar USB masih bisa terhubung dan sketsa baru diunggah. Menggunakan diagram alur, tentu saja, saat membuat sketsa. Anda akan menemukan komentar cukup banyak menentukan di mana setiap blok diagram alur berada.

Anda akan menemukan bahwa tombol berada dalam rangkaian seri / paralel yang memungkinkan Anda untuk menggunakan satu pin input Arduino untuk tombol sebanyak yang Anda suka. Rangkaian bertindak seperti pembagi tegangan untuk memberi makan nilai ke pin analog yang mengubah nilai yang dibaca oleh setiap tombol yang ditekan. Anda dapat menggunakan monitor serial untuk mengetahui nilai rangkaian Anda berdasarkan resistor Anda dan mengubah "nilai yang diterima" dalam sketsa Anda.

Semoga Anda bersenang-senang membangun sendiri! Jika Anda membuat satu atau bahkan membuat beberapa mod ini, silakan bagikan dengan kami semua. Terima kasih telah membaca.

Langkah 4: Pemrograman dan Pengaturan

Pemrograman dan Pengaturan
Pemrograman dan Pengaturan
Pemrograman dan Pengaturan
Pemrograman dan Pengaturan

Sekarang untuk bersenang-senang dengan IDE. Saya harap Anda sudah minum cappuccino. Anda mungkin membutuhkannya untuk membantu Anda tetap terjaga.

Anda mungkin perlu menyiapkan beberapa perpustakaan. Anda akan membutuhkan Wire.h Untuk I2C, LCD.h untuk LCD, LiquidCrystal_I2C.h untuk LCD yang dikontrol I2C. Anda juga perlu menggunakan perintah lcd.begin(20, 4) untuk memberi tahu Arduino bahwa Anda menggunakan LCD 20 karakter 4 baris dan mungkin ada pengaturan lain.

Untuk informasi tentang menginstal perpustakaan, lihat:

Di Arduino IDE Anda mungkin perlu mengatur papan dan port yang terhubung dengannya. Port dapat ditemukan di panel kontrol komputer/manajer perangkat/pengontrol Universal Serial Bus. Anda harus mencari tahu Arduino mana yang Anda gunakan. Saya menggunakan Arduino Nano tetapi Uno juga berfungsi untuk ini. Pilih pengaturan Anda dengan hati-hati.

Anda mungkin perlu mengetahui alamat I2C Anda. Anda harus dapat membacanya langsung dari jumper papan. Anda juga dapat mengunduh pemindai I2C dari Arduino.cc atau juga https://www.gammon.com.au/forum/?id=10896 dan tempat lainnya.

Di suatu tempat di sekitar titik ini Anda harus dapat memuat program ke Arduino dan menguji fungsionalitasnya. Apakah layar LCD menyala? Bisakah Anda membaca karakter? Suatu kali saya membangun sirkuit kemudian mengujinya, lampu latar menyala tetapi karakter tidak dapat dibaca. Menghabiskan berjam-jam (benar, JAM) mencoba pengaturan dan mengencangkan koneksi untuk memastikan itu dibangun dengan benar. Menyerah selama beberapa hari. Kembali lagi nanti dan menyadari bahwa resistor variabel pada papan piggyback disetel ke minimum. Munculkan dan karakternya terlihat. Bang kepala di atas meja. Alasan lain untuk membenturkan kepala ke meja? Jika Anda perlu mengganti baterai, Anda mungkin perlu menyesuaikan resistor variabel ini lagi. Ketika ini terjadi, saya membuat lubang kecil di bagian belakang kotak untuk akses.

Anda mungkin perlu mengatur nilai tombol Anda sendiri dalam program ini berdasarkan resistor yang Anda gunakan untuk tombol Anda. Anda dapat menggunakan sketsa kecil yang berguna ini untuk itu dan ingat untuk mengaktifkan monitor serial. Jalankan sketsa dan tekan setiap tombol dan tuliskan setiap nilai. Kemudian edit sketsa untuk mencerminkan nilai tombol Anda. Kemudian unggah sketsa yang diedit ke papan Anda dan lihat apakah itu berfungsi.

Ada banyak variabel kecil yang semuanya harus tepat dan variabel Anda mungkin berbeda dari variabel saya. Bersabar dan mencoba berbagai hal akan membantu Anda mendapatkan pekerjaan Anda. Juga ingat setelah Anda mengatur variabel Arduino Anda (Seperti nama papan, com 3, 5 atau apa pun, prosesor dan programmer [semua di bawah alat]), Anda mungkin sudah mengatur semuanya dengan benar tetapi tidak berfungsi karena Anda perlu mem-boot ulang. Cabut Arduino dan pasang kembali ke komputer Anda. Anda mungkin harus menyimpan dan mem-boot ulang komputer Anda juga.

Unggah sketsa ini, jalankan monitor, tekan tombol dan catat nilainya, lalu edit sketsa Paper Rock Scissors menggantikan nilai resistor saya dengan Anda. Jalankan sketsa Paper Rock Scissors dan lihat apakah itu bekerja dengan benar. Oh ya, apakah Anda memasang tombol dengan urutan yang salah? Anda mungkin harus menginstal ulang jika Anda menginginkannya dalam urutan tertentu.

Selamat bersenang-senang!

Langkah 5: Sketsa Membaca Tombol Akan Membantu Anda Menemukan Nilai Resister Anda untuk Diedit Ke Sketsa Utama. Tekan Setiap Tombol dan Catat Nilai Resistor Anda untuk Masuk Ke Sketsa Utama

// tombol membaca sketsa

batalkan pengaturan() {

// letakkan kode pengaturan Anda di sini, untuk dijalankan sekali:

Serial.begin(9600);

}

lingkaran kosong() {

// letakkan kode utama Anda di sini, untuk dijalankan berulang kali:

int tombol; //Untuk tombol baca

butTon = 0; //Untuk tombol baca

butTon = analogRead(A0); //Perintah yang digunakan untuk membaca Tombol

penundaan(100);

Serial.println(button);

Langkah 6: Daftar Bagian dan Alat yang Mungkin Anda Butuhkan

Daftar Bagian Dari Amazon:

Arduino Uno atau Arduino Nano

Layar LCD 20x4 dengan atau tanpa I2C

Kotak baterai 9v atau 6v dengan sakelar geser SPST (atau dapatkan sakelar geser secara terpisah)

5x tombol tekan SPST

1x Pull-up Resistor 1k - 5k

5x Resistor kurang dari 1k, 200 - 500 Ohm bagus

Daftar Suku Cadang Lokasi atau toko lain:

Baterai 9v atau 4x 1,5 volt (opsi 9v memungkinkan Anda mendaur ulang baterai "kebanyakan mati")

Command Strips (menggunakan paket isi ulang) atau selotip dua sisi

Penyambung kabel telepon (opsional tetapi membuatnya mudah untuk menghubungkan kabel)

Beberapa inci dari 1/4 dowel

Sekrup kayu kecil untuk memasang pasak ke LCD

Pateri

Heat Shrink untuk kabel 18 ga

Memo atau Bagian Daur Ulang:

Kotak campuran minuman cappuccino kosong (tidak semua orang memiliki printer 3D, memiliki beberapa cappuccino dan mendaur ulang beberapa plastik)

Sekitar 1" x 2" Proto board scrap meskipun saya menggunakan protoboard dari Amazon

Berbagai panjang kawat 18ga hingga 22ga atau inti padat Cat 5e

Alat yang Mungkin Anda Butuhkan:

Obeng Philips kecil

Obeng pipih kecil

Pisau Tepat

Besi solder dan solder

Gunting tugas berat

Tang hidung jarum

Penggaris

Langkah 7: Beberapa Info Lebih Lanjut dan Sketsa Utama

Terima kasih telah membaca. Aku tahu itu banyak. Ini adalah Intructable pertama saya dan ini saja sudah sedikit mendidik bagi saya. Melihat ke belakang, saya melihat saya bertele-tele di beberapa tempat dan terlalu singkat di tempat lain. Saya seharusnya memecah perakitan menjadi beberapa langkah. Dan karena saya membangun proyek ini sekitar belasan kali sampai tepat beberapa gambar berasal dari satu model atau yang lain. Saya harus kembali dan memotret satu model saja. Saya juga ingin memasukkan satu atau dua video. Jadi ya, saya akan kembali dan memperbaiki hal ini. Tapi untuk saat ini aku menyerahkannya ke tanganmu. Saya harap Anda menikmati membangunnya seperti yang saya lakukan. Terima kasih lagi untuk membaca.

Direkomendasikan: