Daftar Isi:

Bola Jawaban Ajaib Dengan Arduino Pro Mini dan Layar TFT: 7 Langkah
Bola Jawaban Ajaib Dengan Arduino Pro Mini dan Layar TFT: 7 Langkah

Video: Bola Jawaban Ajaib Dengan Arduino Pro Mini dan Layar TFT: 7 Langkah

Video: Bola Jawaban Ajaib Dengan Arduino Pro Mini dan Layar TFT: 7 Langkah
Video: 3 Bocah Terlindas Truk Saat Selfie Di Atas Motor 2024, November
Anonim
Bola Jawaban Ajaib Dengan Arduino Pro Mini dan Layar TFT
Bola Jawaban Ajaib Dengan Arduino Pro Mini dan Layar TFT
Bola Jawaban Ajaib Dengan Arduino Pro Mini dan Layar TFT
Bola Jawaban Ajaib Dengan Arduino Pro Mini dan Layar TFT
Bola Jawaban Ajaib Dengan Arduino Pro Mini dan Layar TFT
Bola Jawaban Ajaib Dengan Arduino Pro Mini dan Layar TFT

Beberapa waktu yang lalu, putri saya dan saya membongkar bola Magic 8 sehingga dia bisa mengganti dua puluh tanggapan dengan yang dia pilih. Ini adalah hadiah untuk temannya. Itu membuat saya berpikir tentang bagaimana melakukannya dalam skala yang lebih besar. Bisakah kita memiliki lebih dari 20 tanggapan? Dengan versi elektronik kita bisa!

Jadi ini akan menjelaskan bagaimana saya membongkar Mattel Magic 8 Ball (maaf, Mattel) dan menggunakan layar TFT bundar untuk menunjukkan jumlah respons tambahan yang luar biasa (kartu micro-SD terkecil yang dapat saya temukan adalah 8GB, jadi itu benar-benar berlebihan untuk digunakan untuk apa). Bola menggunakan papan Sparkfun Wake-on-shake untuk memicu respons dan mematikan bola sesudahnya untuk menghemat baterai. Papan pengisian ulang digunakan untuk memungkinkan baterai diisi ulang dari koneksi USB.

Perlengkapan

Bagian:

Arduino Pro Mini 328 - 3.3V/8MHz

SparkFun Wake on Shake

Baterai Lithium Ion - 400mAh

Organizer 12pcs TP4056 Modul Pengisian 5V Micro USB 1A 18650 Papan Pengisian Baterai Lithium dengan Modul Pengisi Daya Perlindungan (Anda hanya memerlukan salah satu dari ini, tetapi paket 12 kurang dari $9)

DAOKI 5Pcs Micro SD Storage Board (sekali lagi, Anda hanya perlu satu, tapi 5 pack masih kurang dari $9)

Modul Tampilan LCD TFT DFRobot 2.2 inci

Kingston 8 GB microSD (Anda mungkin memiliki yang lama tergeletak di sekitar rumah Anda)

PCB papan tempat memotong roti berukuran Perma-Proto (Anda juga dapat menggunakan PCB apa pun yang Anda suka)

bola ajaib 8

FTDI Basic breakout 3.3V (Anda mungkin sudah memiliki salah satu dari ini jika Anda telah melakukan proyek serupa dengan Arduino Pro Mini atau papan serupa)

4 Pin Perumahan dengan 2.54mm JST XH Male/Female Pin Header Dupont Wire Connector Kit (opsional, tetapi disarankan untuk menghubungkan baterai)

Perlengkapan dasar lainnya:

Sugru Moldable Glue (bisa menggunakan lakban dan lem panas, tapi saya lebih suka ini)

Lakban

Pita busa dua sisi

Kabel

Peralatan:

Besi solder

Alat putar pilihan Anda (mis. Dremel)

Penjepit furnitur

Langkah 1: Potong Bola 8 Ajaib menjadi Setengah

Potong Bola Ajaib 8 menjadi Setengah
Potong Bola Ajaib 8 menjadi Setengah
Potong Bola 8 Ajaib menjadi Setengah
Potong Bola 8 Ajaib menjadi Setengah

Pertama, Anda perlu membagi Magic 8 Ball menjadi dua. Saya mengamankan milik saya ke meja kerja dengan sisi datar menghadap ke bawah menggunakan penjepit furnitur. Menggunakan Dremel dengan piringan pemotong dasar terpasang, potong di sepanjang jahitan bola. Anda harus memotong lebih dalam, sejauh yang dimungkinkan oleh disk pemotong. Santai saja. Bahkan setelah Anda memotong seluruhnya, Anda mungkin perlu menggunakan obeng atau pahat kepala datar untuk melakukan pemisahan akhir. Ada sebuah silinder yang menampung cairan "ajaib" dan icosahedron (bentuk dua puluh sisi - ya, saya harus mencarinya) di dalamnya. Buang saja itu atau gunakan di proyek lain. Jika Anda menggunakannya di proyek lain, beri tahu saya apa yang Anda lakukan sehingga saya akan tahu apa yang harus dilakukan dengan milik saya.

Anda akan dibiarkan dengan dua bagian seperti yang ditunjukkan pada gambar. Saya telah melakukan ini tiga kali sekarang dan terakhir kali, bibir putihnya halus daripada memiliki tonjolan, jadi bola Anda mungkin terlihat sedikit berbeda dari yang ada di gambar.

Masih akan ada beberapa terak plastik di sekitar tepi luar (plastik yang meleleh dan mengeras). Rem itu dengan tangan Anda, jika Anda bisa; menggunakan alat berisiko menimbulkan lecet pada bola dan teraknya mudah lepas.

Langkah 2: Siapkan Bola

Siapkan Bolanya
Siapkan Bolanya
Siapkan Bolanya
Siapkan Bolanya
Siapkan Bolanya
Siapkan Bolanya

Ada dua modifikasi yang perlu kita lakukan pada bagian plastik bola.

Pertama, di bagian yang terbuka, yang memiliki "8" dicat di atasnya, kita perlu mencukur area yang cukup besar untuk papan pengisi daya USB kita untuk duduk dengan port USB mencuat. Saya menggunakan Dremel saya dengan drum pengamplasan kasar terpasang. Anda ingin ini setipis yang Anda bisa tanpa membersihkannya. Kemudian potong lubang kecil yang cukup besar untuk memungkinkan port USB menyodok ke luar. Saya menggunakan caliper untuk mengukur port USB, tetapi Anda mungkin bisa melihat ini jika perlu. Sekali lagi, saya menggunakan Dremel dengan alat pemotong kecil untuk membuat lubangnya. Dua gambar pertama menunjukkan pembukaan dan seperti apa dengan papan USB di belakangnya.

Kedua, di separuh lainnya, yang memiliki lubang di KEDUA sisinya dan bibir plastik putih, siapkan tempat untuk dudukan layar. Tepat di dalam bukaan tempat tampilan akan diletakkan, ada tonjolan plastik dan flensa karet(?) di bagian dalam bukaan. Keluarkan flens dan sisihkan. Kami akan mengembalikannya nanti, tetapi kami ingin itu menyingkir untuk langkah ini. Layar memiliki ekstrusi persegi panjang di satu sisi yang tidak akan membiarkannya duduk rata di bukaan jika beberapa tonjolan ini tidak dilepas. Dengan menggunakan drum pengamplasan kasar pada Dremel lagi, cukurlah sebanyak mungkin. Masuklah dari lubang di mana tampilan akan berada untuk sudut terbaik. Seharusnya terlihat seperti gambar ketika selesai. Catatan, gambar menunjukkan tampilan di tempat, tapi JANGAN PASANG.

Langkah 3: Siapkan Tanggapan pada Kartu Micro-SD

Langkah ini sedikit lebih rumit dari yang Anda kira. Jika Anda tidak ingin membuat daftar tanggapan Anda sendiri, lewati ke paragraf terakhir dari langkah ini.

Tujuannya adalah agar kita dapat memberikan bola daftar string apa pun untuk digunakan sebagai respons yang mungkin dan mereka akan dipusatkan di layar tanpa ada jeda di tengah kata. Kami tidak ingin melakukan pemrosesan ini pada mikrokontroler dan kami ingin file dengan ukuran catatan statis agar dapat menemukan baris tertentu dengan cepat.

Meskipun tampilannya bulat, secara fungsional merupakan tampilan persegi panjang virtual dengan hanya piksel di dalam lingkaran yang terlihat. Layar dapat menampilkan beberapa teks ukuran, tetapi kami hanya menggunakan versi terkecil yaitu 6 x 8 piksel. Dengan menggunakan ukuran ini, ada 315 karakter yang dapat ditampilkan pada layar (21 karakter per baris dikali 15 baris), tetapi hanya 221 karakter yang terlihat dan setiap baris memiliki jumlah karakter yang terlihat berbeda. Lihat masalahnya?

Saya menulis program Java untuk mengambil file tanggapan yang tidak diformat dan mengubahnya menjadi catatan terpusat yang dapat dengan mudah ditampilkan pada TFT bulat. (tautan untuk mengunduh file "FormatToPicksFileFullyCentered.java").

Tanpa menjelaskan keseluruhan kode, ide umumnya adalah bahwa kita bekerja mundur dari pusat(ish) dan menyisipkan spasi untuk memastikan bahwa kita tidak memecah kata-kata melintasi garis yang terlihat, kemudian melakukan hal yang sama dari tengah ke depan. Akhirnya, kami mengulang semua baris dan memusatkan setiap baris di dalam 21 baris karakter penuh untuk membuat catatan tepat 316 byte (315 karakter alfanumerik ditambah karakter baris baru). Kode sebenarnya bekerja melalui tiga font, x 3, x 2, dan x 1 untuk melihat font terbesar yang dapat digunakan dan masih sesuai dengan teks. Pemusatan agak kurang untuk font x 2 dan x 3, maaf. Hati-hati dengan karakter yang mengambil lebih dari satu byte, ini dapat membuang file yang dihasilkan.

Salin file "picks.txt" ke kartu micro-SD.

Jika Anda tidak ingin repot membuat daftar pilihan Anda sendiri, saya telah menyertakan daftar pilihan saya yang dapat Anda salin ke kartu SD dan gunakan. Saya tidak dapat mengunggah file.txt ke instruksi saat ini, jadi inilah tautan ke tempat Anda dapat mengunduh file picks.txt.

Langkah 4: Unggah Kode ke Arduino Mini

Unggah Kode ke Arduino Mini
Unggah Kode ke Arduino Mini
Unggah Kode ke Arduino Mini
Unggah Kode ke Arduino Mini
Unggah Kode ke Arduino Mini
Unggah Kode ke Arduino Mini

Pertama, jika Anda belum pernah menggunakan Arduino Pro Mini sebelumnya, Anda tidak bisa hanya mencolokkan kabel USB dan mengunduh; Anda harus menggunakan papan FTDI dan menghubungkan kabel ke pin yang sesuai pada mini. Saya tidak akan memberikan tutorial tentang itu di sini, ada banyak di web. Bagi saya, saya tidak ingin menyolder konektor permanen ke papan mikrokontroler yang hanya akan digunakan sekali untuk mengunduh kode, jadi saya membuat klip kecil yang dapat digunakan untuk memprogram mini tanpa menyolder (lihat gambar). Ini terinspirasi oleh produk seperti Fiddy, tetapi saya tidak memiliki akses mudah ke printer 3D, jadi saya membuatnya sendiri dari klip keripik kentang. Jika orang tertarik, saya akan membuat instruksi hanya untuk itu.

Ke kode. Ada beberapa bagian yang menarik untuk kode ini, tetapi sebagian besar lurus ke depan.

Dalam fungsi pengaturan, ada sejumlah kode yang layak yang berhubungan dengan mendapatkan benih acak yang baik. Metode khas menggunakan pembacaan analog dari pin yang tidak terhubung tidak memberikan respons yang cukup bervariasi menurut pengalaman saya. Saya mendapatkan angka antara 477 dan 482. Karena fungsi acak Arduino memiliki satu dan hanya satu urutan dan benih menentukan di mana untuk memulai dalam urutan itu, rentang yang sempit seperti itu tidak akan menghasilkan respons yang cukup mungkin pada akhirnya. Ingatlah bahwa kode ini pada dasarnya dimulai dari awal setiap kali papan Wake-on-shake mematikan dan menghidupkan kembali, jadi posisi urutan awal yang ditentukan oleh seed sangat penting. Untuk membantu dengan ini, saya menulis file yang sangat kecil ke kartu SD untuk melacak benih terakhir dan menambahkannya ke nilai baru yang berasal dari pin yang tidak terhubung.

Setelah pick dipilih dalam fungsi loop dan dibaca ke dalam array karakter, kita tidak bisa hanya mencetak seluruh string. Tampilan memiliki batas berapa panjang string yang dapat ditangani pada suatu waktu. Untuk alasan itu, kita harus mengulang setiap lima belas baris dan mengirimkannya ke layar satu per satu.

Pustaka eksternal yang diperlukan:

Perpustakaan ST7687S

Perpustakaan Tampilan DFRobot

Langkah 5: Hubungkan Komponen

Hubungkan Komponen
Hubungkan Komponen
Hubungkan Komponen
Hubungkan Komponen

Saatnya melakukan semua penyolderan kabel. Saya cenderung melakukan kesalahan di sisi kabel yang sedikit lebih panjang dari yang sebenarnya saya butuhkan, tetapi itu akhirnya berhasil dengan baik.

Dalam skema terlampir, tampilan TFT diwakili oleh konektor daripada gambar seluruh tampilan (yang saya tidak dapat menemukan bagian Fritzing untuk). Saya telah memberi label pada kabel/pin berdasarkan bagaimana mereka diberi label pada bagian tersebut. Demikian pula, kartu SD tidak persis seperti yang saya gunakan, tetapi saya memberi label kabel/pin untuk bagian yang terdaftar.

Ada satu komponen yang tidak saya solder bersama pada langkah ini: baterai. Sebagai gantinya, saya menggunakan konektor empat pin dengan dua pin tengah dilepas (gambar kedua). Ini memungkinkan saya menguji semua komponen yang dihubungkan bersama dan kemudian melepaskan baterai saat saya memasang semuanya ke bola.

Terakhir, saya menggunakan PCB papan tempat memotong roti permanen berukuran seperempat untuk membuat daya dan koneksi bersama lebih mudah. Anda akan melihatnya di gambar perakitan.

Uji apakah semuanya berfungsi

Langkah 6: Pasang Komponen ke Bola

Pasang Komponen ke Bola
Pasang Komponen ke Bola
Pasang Komponen ke Bola
Pasang Komponen ke Bola
Pasang Komponen ke Bola
Pasang Komponen ke Bola
Pasang Komponen ke Bola
Pasang Komponen ke Bola

Pertama-tama letakkan tampilan di tempatnya dan gunakan beberapa Sugru untuk mengamankannya (dua gambar pertama). Jangan lupa tentang flensa yang Anda lepaskan sebelumnya, Anda harus memasangnya kembali sebelum mengamankan tampilan di tempatnya.

Selanjutnya, saya menempelkan papan proto ke bagian bawah bola yang kosong. Saya menyimpan semua solder saya di satu sisi papan, jadi saya masih memiliki setengah papan yang bisa saya rekatkan. Saya kemudian menempelkan baterai di atas setengah papan proto yang sama (gambar ketiga).

Kedua bagian sekarang terhubung dengan kabel. Cari tahu di mana lubang USB akan berakhir saat Anda menyatukan kedua bagian. Jika bibir putih memiliki duri yang mencuat ke atas, perlu diingat bahwa itu perlu diturunkan di tengah ke salah satu irisan bibir putih karena kami akan mengamankan papan pengisi daya USB di antara dua tonjolan plastik di bibir.

Menggunakan sepotong kecil pita busa dua sisi, pasang papan pengisi daya USB. Pita perekat dua sisi tidak boleh menutupi semua bagian bawah papan pengisi daya karena ujung dengan kabel yang terpasang akan menggantung di tepi tengah bibir putih. Jadi selotip harus menutupi sekitar tiga perempat dari permukaan bawah papan. Letakkan selotip di bagian bawah papan terlebih dahulu, lalu tekan ke tempat yang telah Anda tentukan. Konektor USB harus berada di tepi bola, menempel ke area hitam plastik tanpa keluar dari bola. Terakhir, gunakan lagi Sugru di atas papan dan kencangkan di kedua sisi. Ini hanya menambah kekuatan tambahan ketika kabel didorong ke port USB.

Masukkan kartu micro-SD ke dalam modul kartu SD sekarang

Anda dapat mengamankan komponen lain ke bibir putih jika diinginkan. Saya hanya menyelipkan komponen yang tersisa di belakang layar.

Langkah 7: Letakkan Kedua Bagian Kembali Bersama

Letakkan Kedua Bagian Kembali Bersama
Letakkan Kedua Bagian Kembali Bersama
Letakkan Dua Bagian Kembali Bersama
Letakkan Dua Bagian Kembali Bersama

Periksa kembali apakah Anda telah memasukkan kartu SD dan Anda telah menguji semua komponen secara bersamaan.

Ok, jika Anda sudah siap, buat ular panjang dari lem Sugru dan gosokkan sepanjang tepi setengah bola dengan bibir putih (gambar pertama). Lem harus diletakkan tepat di persimpangan tempat bagian hitam dan putih dari plastik menyatu. Menempatkan lem di sini memastikan Anda memiliki ikatan yang kuat sambil meminimalkan jumlah lem yang keluar dari celah setelah kedua bagian disambungkan.

Tekan kedua bagian bersama-sama untuk memastikan port USB menempel melalui lubang yang sebelumnya dipotong untuk itu. Dengan menggunakan penjepit furnitur, klem kedua bagian bersama-sama cukup erat untuk menjaga bagian tetap bersama, tidak perlu menjepitnya dengan keras. Lem Sugru akan mengeras dalam waktu sekitar 24 jam.

Jika Anda memiliki beberapa lem yang terjepit dari sambungan, jangan ragu untuk mengikisnya dengan jari Anda atau kain/handuk kertas yang halus.

Direkomendasikan: