Isi kandungan:

Bola Jawapan Ajaib Dengan Arduino Pro Mini dan Paparan TFT: 7 Langkah
Bola Jawapan Ajaib Dengan Arduino Pro Mini dan Paparan TFT: 7 Langkah

Video: Bola Jawapan Ajaib Dengan Arduino Pro Mini dan Paparan TFT: 7 Langkah

Video: Bola Jawapan Ajaib Dengan Arduino Pro Mini dan Paparan TFT: 7 Langkah
Video: Learning iOS: Create your own app with Objective-C! by Tianyu Liu 2024, November
Anonim
Magic Answers Ball Dengan Arduino Pro Mini dan TFT Display
Magic Answers Ball Dengan Arduino Pro Mini dan TFT Display
Magic Answers Ball Dengan Arduino Pro Mini dan TFT Display
Magic Answers Ball Dengan Arduino Pro Mini dan TFT Display
Magic Answers Ball Dengan Arduino Pro Mini dan TFT Display
Magic Answers Ball Dengan Arduino Pro Mini dan TFT Display

Beberapa saat yang lalu, saya dan anak perempuan saya melepaskan bola Magic 8 supaya dia dapat menggantikan dua puluh tanggapan dengan pilihannya. Ini adalah hadiah untuk rakannya. Itu membuat saya memikirkan bagaimana untuk melakukannya pada skala yang lebih besar. Mungkinkah kita mempunyai lebih daripada 20 respons? Dengan versi elektronik kita boleh!

Jadi ini akan menerangkan bagaimana saya membongkar Mattel Magic 8 Ball (maaf, Mattel) dan menggunakan paparan TFT bulat untuk menunjukkan jumlah respons tambahan yang luar biasa (kad micro-SD terkecil yang dapat saya dapati ialah 8GB, jadi ia benar-benar berlebihan untuk apa ia digunakan). Bola menggunakan papan Sparkfun Wake-on-shake untuk memicu tindak balas dan mematikan bola selepas itu untuk menjimatkan bateri. Papan pengisian semula digunakan untuk membolehkan bateri diisi semula dari sambungan USB.

Bekalan

Bahagian:

Arduino Pro Mini 328 - 3.3V / 8MHz

SparkFun Wake on Shake

Bateri Lithium Ion - 400mAh

Organizer 12pcs TP4056 Modul Pengecasan 5V Micro USB 1A 18650 Lithium Board Charging Board dengan Modul Pengecas Perlindungan (anda hanya memerlukan salah satu daripadanya, tetapi paket 12 kurang dari $ 9)

DAOKI 5Pcs Micro SD Storage Board (sekali lagi, anda hanya memerlukannya, tetapi 5 pek masih kurang dari $ 9)

Modul Paparan LCD TFT DFRobot 2.2 inci

Kingston 8 GB microSD (anda mungkin mempunyai yang lama di rumah anda)

PCB Breadboard bersaiz Perma-Proto (anda juga boleh menggunakan PCB apa sahaja yang anda suka)

Magic 8 Bola

FTDI Basic breakout 3.3V (anda mungkin sudah mempunyai salah satu daripada ini jika anda telah melakukan projek serupa dengan Arduino Pro Mini atau papan serupa)

4 Pin Perumahan dengan Kit Penyambung Kawat Dupont Kawat Pin Jantan XH Lelaki / Wanita 2.54mm (pilihan, tetapi disyorkan untuk menyambungkan bateri)

Bekalan asas lain:

Sugru Moldable Lue (boleh menggunakan pita saluran dan gam panas, tetapi saya lebih suka ini)

Pita saluran

Pita busa dua sisi

Kawat

Alat:

Besi pematerian

Alat putar pilihan anda (iaitu Dremel)

Pengapit perabot

Langkah 1: Potong Bola Magic 8 pada Separuh

Potong Bola Magic 8 pada Separuh
Potong Bola Magic 8 pada Separuh
Potong Bola Magic 8 pada Separuh
Potong Bola Magic 8 pada Separuh

Mula-mula anda perlu membelah Magic 8 Ball menjadi dua. Saya mengikat tambang ke meja kerja dengan bahagian bawah rata menggunakan penjepit perabot. Menggunakan Dremel dengan cakera pemotong asas terpasang, potong sepanjang jahitan bola. Anda perlu memotong jauh, sejauh yang dibenarkan oleh cakera pemotong. Ambil perlahan. Walaupun anda sudah selesai, anda mungkin perlu menggunakan pemutar skru atau pahat kepala rata untuk melakukan pemisahan terakhir. Terdapat silinder yang menahan cecair "sihir" dan icosahedron (bentuk dua puluh sisi - ya, saya harus mencarinya) di dalam. Buang sahaja atau gunakannya dalam projek lain. Sekiranya anda menggunakannya dalam projek lain, beritahu saya apa yang anda buat jadi saya akan tahu apa yang harus saya buat dengan projek saya.

Anda akan tinggal dengan dua bahagian seperti yang ditunjukkan dalam gambar. Saya telah melakukan ini tiga kali sekarang dan kali terakhir, bibir putihnya licin daripada mempunyai rabung, jadi bola anda mungkin kelihatan sedikit berbeza daripada yang ada dalam gambar.

Masih akan ada terak plastik di sekitar pinggir luar (plastik cair dan diperbaiki). Putuskan dengan tangan anda, jika anda boleh; menggunakan alat berisiko mencengkam penamat bola dan sanga keluar dengan mudah.

Langkah 2: Sediakan Bola

Sediakan Bola
Sediakan Bola
Sediakan Bola
Sediakan Bola
Sediakan Bola
Sediakan Bola

Terdapat dua pengubahsuaian yang perlu kita lakukan pada bahagian plastik bola.

Pertama, di bahagian terbuka, yang bertuliskan "8" di atasnya, kita perlu mencukur kawasan yang cukup besar agar papan pengecas USB kita dapat duduk dengan port USB melekat. Saya menggunakan Dremel saya dengan pam pengamplasan kasar. Anda mahukan ini setipis yang anda dapat tanpa membersihkannya. Kemudian potong bukaan kecil yang cukup besar untuk membolehkan port USB masuk ke luar. Saya menggunakan caliper untuk mengukur port USB, tetapi anda mungkin dapat melihat ini jika anda perlu. Sekali lagi, saya menggunakan Dremel dengan alat pemotong kecil untuk membuat bukaan. Dua gambar pertama menunjukkan bukaan dan seperti apa dengan papan USB di belakangnya.

Kedua, pada separuh yang lain, yang mempunyai lubang di KEDUA sisi dan bibir plastik putih, sediakan tempat untuk paparan duduk. Tepat di dalam bukaan tempat paparan akan duduk, terdapat pelek plastik dan bebibir karet (?) Di bahagian dalam bukaan. Keluarkan bebibir dan ketepikan. Kami akan mengembalikannya kemudian, tetapi kami menginginkannya untuk langkah ini. Layar mempunyai penyemperitan segi empat tepat di satu sisi yang tidak akan membiarkannya duduk rata di bukaan jika beberapa rabung ini tidak dilepaskan. Dengan menggunakan drum pengamplasan kasar pada Dremel sekali lagi, cukurnya sebanyak mungkin. Masuk dari lubang di mana paparan akan berada pada sudut yang terbaik. Ia mesti kelihatan seperti gambar apabila lengkap. Perhatikan, gambar menunjukkan paparan di tempatnya, tetapi JANGAN LAMPIRANNYA.

Langkah 3: Sediakan Respons pada Kad Micro-SD

Langkah ini sedikit lebih rumit daripada yang anda fikirkan. Sekiranya anda tidak mahu membuat senarai jawapan anda sendiri, lompat ke perenggan terakhir langkah ini.

Tujuannya adalah agar kita dapat memberikan sebaris rentetan kepada bola untuk digunakan sebagai respons yang mungkin dan mereka akan berpusat di layar tanpa jeda di tengah-tengah kata. Kami tidak mahu melakukan pemprosesan ini pada mikrokontroler dan kami mahukan fail dengan ukuran rekod statik agar dapat mencari baris tertentu dengan cepat.

Walaupun paparannya bulat, secara fungsional adalah paparan segi empat tepat maya dengan hanya piksel dalam lingkaran yang dapat dilihat. Paparan dapat menunjukkan teks pelbagai ukuran, tetapi kami hanya menggunakan versi terkecil yaitu 6 x 8 piksel. Dengan menggunakan ukuran ini, ada 315 karakter yang dapat dipaparkan pada layar (21 karakter per baris kali 15 baris), tetapi hanya 221 yang dapat dilihat dan setiap baris memiliki jumlah karakter yang berbeza. Lihat masalahnya?

Saya menulis program Java untuk memasukkan fail respons yang tidak diformat dan mengubahnya menjadi rekod berpusat sepenuhnya yang dapat dipaparkan dengan mudah pada TFT bulat. (pautan untuk memuat turun fail "FormatToPicksFileFullyCentered.java").

Tanpa menerangkan keseluruhan kod, idea umum adalah bahawa kita berusaha ke belakang dari pusat (ish) dan memasukkan ruang untuk memastikan bahawa kita tidak memecahkan kata-kata melintasi garis yang dapat dilihat, kemudian melakukan perkara yang sama dari tengah ke hadapan. Akhirnya, kita melengkapkan semua baris dan memusatkan setiap baris di dalam 21 baris watak penuh untuk membuat rakaman tepat 316 bait (315 aksara alfanumerik ditambah watak baris baru). Kod ini sebenarnya berfungsi melalui tiga fon, x 3, x 2, dan x 1 untuk melihat fon manakah terbesar yang boleh digunakan dan masih sesuai dengan teks. Pemusatan sedikit untuk fon x 2 dan x 3, maaf. Berhati-hati dengan watak yang menggunakan lebih daripada satu bait, ini boleh membuang fail yang dihasilkan.

Salin fail "picks.txt" ke kad mikro-SD.

Sekiranya anda tidak mahu menghadapi masalah membuat senarai pilihan anda sendiri, saya telah memasukkan senarai pilihan yang boleh anda salin ke kad SD dan gunakan. Saya tidak dapat memuat naik fail.txt ke instruksional pada masa ini, jadi inilah pautan ke tempat anda boleh memuat turun fail picks.txt.

Langkah 4: Muat naik Kod ke Arduino Mini

Muat naik Kod ke Arduino Mini
Muat naik Kod ke Arduino Mini
Muat naik Kod ke Arduino Mini
Muat naik Kod ke Arduino Mini
Muat naik Kod ke Arduino Mini
Muat naik Kod ke Arduino Mini

Pertama, jika anda tidak pernah menggunakan Arduino Pro Mini sebelumnya, anda tidak boleh memasang kabel USB dan memuat turun; anda mesti menggunakan papan FTDI dan sambungkan wayar ke pin yang sesuai di mini. Saya tidak akan memberikan tutorial mengenai perkara ini di sini, terdapat banyak maklumat di web. Bagi saya, saya tidak mahu menyisipkan penyambung kekal ke papan mikrokontroler yang hanya akan digunakan sekali untuk memuat turun kod, jadi saya membuat klip kecil yang boleh digunakan untuk memprogram mini tanpa pematerian (lihat gambar). Ini diilhamkan oleh produk seperti Fiddy, tetapi saya tidak mempunyai akses mudah ke pencetak 3D, jadi saya membuat klip cip kentang saya sendiri. Sekiranya orang berminat, saya akan membuat arahan hanya untuk itu.

Ke kod. Terdapat beberapa bahagian menarik untuk kod ini, tetapi kebanyakannya lurus ke hadapan.

Dalam fungsi persediaan, terdapat banyak kod yang berurusan dengan mendapatkan benih rawak yang baik. Kaedah tipikal menggunakan pembacaan analog dari pin yang tidak bersambung tidak memberikan tindak balas yang cukup berbeza dalam pengalaman saya. Saya mendapat nombor antara 477 dan 482. Oleh kerana fungsi rawak Arduino mempunyai satu dan hanya satu urutan dan benih menentukan di mana hendak bermula dalam urutan itu, julat sempit seperti itu tidak akan menghasilkan kemungkinan tindak balas yang mencukupi pada akhirnya. Perlu diingat bahawa kod ini pada dasarnya bermula setiap kali papan Wake-on-shake mematikan dan menghidupkan semula, jadi kedudukan urutan awal yang ditentukan oleh benih sangat penting. Untuk menolongnya, saya menulis fail yang sangat kecil ke kad SD untuk menjejaki benih terakhir dan menambahkannya ke nilai baru yang berasal dari pin yang tidak terhubung.

Setelah memilih dipilih dalam fungsi gelung dan dibaca ke dalam array watak, kita tidak boleh mencetak keseluruhan rentetan. Paparan mempunyai had berapa lama tali yang dapat dikendalikannya dalam satu masa. Atas sebab itu, kita harus melengkapkan setiap lima belas baris dan menghantarnya ke paparan satu demi satu.

Perpustakaan luaran yang diperlukan:

Perpustakaan ST7687S

Perpustakaan Paparan DFRobot

Langkah 5: Wire Up Komponen

Wire Up Komponen
Wire Up Komponen
Wire Up Komponen
Wire Up Komponen

Masa untuk melakukan semua pematerian wayar. Saya cenderung melakukan kesalahan pada sisi wayar yang lebih panjang daripada yang saya perlukan, tetapi akhirnya berfungsi dengan baik.

Dalam skema yang dilampirkan, paparan TFT diwakili oleh penyambung daripada gambar keseluruhan paparan (yang tidak dapat saya cari bahagian Fritzing). Saya telah melabelkan wayar / pin berdasarkan bagaimana ia dilabel di bahagiannya. Begitu juga, kad SD tidak tepat yang saya gunakan, tetapi saya melabelkan wayar / pin untuk bahagian yang disenaraikan.

Terdapat satu komponen yang saya tidak serasi bersama pada langkah ini: bateri. Sebagai gantinya, saya menggunakan penyambung empat pin dengan dua pin tengah dikeluarkan (gambar kedua). Ini membolehkan saya menguji semua komponen yang disambungkan bersama dan kemudian memutuskan bateri semasa saya melekatkan semuanya pada bola.

Akhirnya, saya menggunakan PCB papan roti kekal berukuran empat untuk menjadikan kuasa dan sambungan bersama lebih mudah. Anda akan melihatnya dalam gambar perhimpunan.

Uji bahawa semuanya berfungsi

Langkah 6: Pasang Komponen pada Bola

Pasang Komponen pada Bola
Pasang Komponen pada Bola
Pasang Komponen pada Bola
Pasang Komponen pada Bola
Pasang Komponen pada Bola
Pasang Komponen pada Bola
Pasang Komponen pada Bola
Pasang Komponen pada Bola

Pertama letakkan paparan di tempatnya dan gunakan beberapa Sugru untuk mengamankannya (dua gambar pertama). Jangan lupa tentang bebibir yang anda keluarkan sebelumnya, anda harus meletakkannya semula sebelum memasang paparan di tempatnya.

Seterusnya, saya memasukkan papan proto ke bahagian bawah separuh bola yang kosong. Saya menyimpan semua penjual saya di satu sisi papan, jadi saya masih mempunyai separuh papan yang boleh saya rakam. Saya kemudian mengetuk bateri di bahagian atas papan proto yang sama (gambar ketiga).

Kedua-dua bahagian kini dihubungkan dengan wayar. Cari tahu di mana lubang USB akan berakhir apabila anda menyatukan dua bahagian. Sekiranya bibir putih mempunyai duri yang melekat, ingatlah bahawa ia mesti turun ke tengah salah satu bilah bibir putih kerana kita akan mengikat papan pengecas USB di antara dua rabung plastik di bibir.

Dengan menggunakan sekeping kecil pita busa dua sisi, pasangkan papan pengecas USB. Pita dua sisi tidak boleh menutup semua bahagian bawah papan pengecas kerana hujung dengan wayar yang terpasang akan tergantung di tepi tengah bibir putih. Oleh itu, pita itu hendaklah meliputi kira-kira tiga perempat permukaan bawah papan. Letakkan pita di bahagian bawah papan terlebih dahulu, kemudian tekan ke tempat yang telah anda putuskan. Penyambung USB harus berada di tepi bola, melekat pada kawasan hitam plastik tanpa keluar dari bola. Akhir sekali, gunakan Sugru lagi di bahagian atas papan dan selamatkan di kedua-dua belah pihak. Ini hanya menambah kekuatan apabila kabel didorong ke port USB.

Masukkan kad mikro-SD ke dalam modul kad SD sekarang

Anda boleh memasukkan komponen lain ke bibir putih jika anda mahu. Saya hanya memasukkan komponen yang tinggal di belakang paparan.

Langkah 7: Letakkan Kedua Bahagian Bersama

Letakkan Dua Bahagian Kembali Bersama
Letakkan Dua Bahagian Kembali Bersama
Letakkan Dua Bahagian Kembali Bersama
Letakkan Dua Bahagian Kembali Bersama

Periksa semula bahawa anda telah memasukkan kad SD dan bahawa anda telah menguji semua komponen bersama-sama.

Baiklah, jika anda sudah siap, buat ular panjang dari beberapa gam Sugru dan jalankannya sepanjang pinggir separuh bola dengan bibir putih (gambar pertama). Lem hendaklah diletakkan tepat di persimpangan di mana bahagian plastik hitam dan putih bersatu. Dengan meletakkan gam di sini, pastikan anda mempunyai ikatan yang kuat sambil meminimumkan jumlah gam yang keluar dari celah setelah kedua bahagian bergabung.

Tekan dua bahagian bersama-sama memastikan bahawa port USB melekat pada lubang yang sebelumnya dipotong untuknya. Dengan menggunakan penjepit perabot, jepit kedua-dua bahagian sehingga cukup rapat agar kedua bahagiannya tetap bersama, tidak perlu mengepitnya dengan kuat. Gam Sugru akan mengeras dalam kira-kira 24 jam.

Sekiranya anda mempunyai beberapa lem yang keluar dari sendi, jangan gosokkannya dengan jari atau tuala kain / kertas yang halus.

Disyorkan: