Build Notes: The Counting Box - 💡 Fix My Ideas

Build Notes: The Counting Box

Build Notes: The Counting Box


Penulis: Ethan Holmes, 2019

Lebih dari beberapa kali saya telah mengintip di malam hari untuk menemukan anak saya di tempat tidur dengan kalkulator di satu tangan dan senter di tangan lainnya, tertidur lelap setelah mendorong "1 + = = =" dan menonton angka-angka naik hingga dia tidak bisa matanya tetap terbuka. Jadi, untuk ulang tahun keempatnya, saya memutuskan untuk membangunnya sebuah mesin khusus yang tidak akan melakukan apa pun selain menghitung dan menghitung mundur atas perintahnya.

Ide awal saya sederhana: layar LED tujuh-segmen multi-digit yang besar, dua tombol arcade besar untuk menambah dan mengurangi, dan 10-posisi rotary switch di tengah. Putar sakelar putar untuk memilih nilai dari satu hingga 10, lalu tekan tombol untuk menambah angka yang ditampilkan pada LED dengan jumlah itu. Tekan tombol lainnya dan itu akan turun dengan cara yang sama.

Sirkuit

Rangkaian datang pertama dalam proyek ini, karena ukuran kasing akan tergantung pada ukuran paket elektronik jadi.

Inti dari semuanya adalah ATmega328, salah satu prosesor Arduino yang paling umum. Sepasang tampilan jam LED 4-digit menunjukkan angka tersebut, didorong oleh chip driver tampilan Maxim MAX7219 yang mampu menangani 64 LED, atau 8 digit tujuh-segmen, hanya menggunakan 3 pin output pada ATmega.

Setelah membangun sirkuit di atas papan tempat memotong roti dan menulis program uji dasar, saya memiliki pengantar pertama saya untuk beralih bouncing, suara elektronik atau obrolan pada tingkat milidetik ketika kontak saklar membuka atau menutup. Apa yang tampak seperti satu tombol untuk kita dapat dibaca oleh mikroprosesor sebanyak puluhan, ratusan, atau lebih. Untungnya, tombol arcade yang saya pesan kebetulan adalah saklar lemparan ganda. Ini memungkinkan solusi debounce yang cukup sederhana di perangkat keras menggunakan 2 gerbang logika NAND untuk setiap sakelar. Sirkuit terintegrasi 74HC00 menyediakan semua 4 gerbang yang diperlukan dalam satu chip.

Sakelar putar diberi kode biner, jadi itu hanya masalah menyambungkan 4 pin - satu untuk setiap bit yang diperlukan hingga 10 - ke pin input ATmega, membaca masing-masing dan menggabungkannya, kemudian mengubahnya menjadi desimal.

Sekarang sirkuit dapat dihitung, saya perlu cara untuk menyimpan nilai saat ini dari tampilan. Anda tidak ingin mendapatkan Kotak Hitung Anda hingga ke angka yang luar biasa tinggi hanya untuk kehilangannya ketika Anda mematikan daya. Ini seharusnya menjadi pekerjaan yang mudah untuk EEPROM internal ATmega, tetapi ketika saya melihat spesifikasi itu hanya dinilai untuk 100.000 siklus tulis. Dengan tampilan yang bisa mencapai 99.999.999, itu sepertinya tidak memadai. Alih-alih, saya menemukan chip memori EEPROM 24LC256 dengan 1.000.000 siklus tulis - masih tidak setinggi yang dapat dicapai Kotak Hitung, tetapi jauh lebih dekat. Namun, dalam penggunaan aktual, memori terpasang ATmega akan lebih dari cukup.

Saya melakukan prototyping dan pemrograman saya dengan Arduino Duemilanove, tetapi untuk build terakhir saya menggunakan chip ATmega yang sama untuk membangun sirkuit mandiri di stripboard. Saya lebih suka mikrokontroler mandiri dalam proyek saya karena menggunakan lebih sedikit ruang daripada membangun di seluruh papan Arduino, lebih murah, dan membuat Arduino saya gratis untuk proyek berikutnya.

Layar LED ada di papannya sendiri, dihubungkan dengan kabel pita ke papan prosesor utama. 99.999.999 hitungan yang memungkinkan 8 digit pasti berlebihan, tetapi menggunakan tampilan LED 4-digit menghemat banyak kabel dan solder dibandingkan dengan menggunakan masing-masing digit.

Untuk daya, saya berencana menggunakan baterai AA yang dapat diisi ulang.

Perangkat Lunak

Perangkat lunak ini memiliki 3 fungsi utama: tombol penanganan ditekan untuk menambah dan mengurangi angka dengan jumlah yang dipilih, menampilkan nomor, dan menyimpan nomor ke memori.

Penekanan tombol dilakukan sebagai interupsi, yang melakukan seperti apa yang akan mereka lakukan - mengganggu tindakan lain yang terjadi dalam program. Alternatif untuk ini adalah terus-menerus polling tombol untuk melihat apakah itu sedang ditekan, tetapi ini tidak efisien dibandingkan dengan meminta tombol pada dasarnya untuk memberi tahu Anda ketika sedang ditekan. Ketika sebuah tombol ditekan, program membaca nilai sakelar putar, menambah atau mengurangi jumlah itu dari variabel, kemudian memecahnya menjadi digit individu untuk dikirim ke MAX7219 untuk ditampilkan. Dalam setiap loop, program membandingkan nilai variabel saat ini dengan nilai variabel pada loop sebelumnya. Jika berbeda, ia menyimpan nilai baru ke chip memori EEPROM.

Anda dapat nolkan Kotak Hitung dengan mengatur pemilih nomor ke 8 dan menahan tombol penurunan saat Anda menyalakannya. Demikian pula, mengatur pemilih nomor ke 3 dan menahan tombol kenaikan selama power-up akan menampilkan statistik seperti angka tertinggi dan terendah yang dicapai dan jumlah total tombol yang ditekan selama umur kotak. Untuk menghemat daya, ATmega tidur dan tampilan LED menjadi gelap jika tidak ada tombol yang ditekan selama satu menit. Menekan salah satu tombol akan membangunkan sistem.

Membangun Kotak

Setelah sirkuit dan perangkat lunak selesai, saya mengesampingkan keduanya. Mereka pasti bisa bertahan beberapa optimasi lebih lanjut, tetapi satu-satunya persyaratan nyata mereka adalah bahwa mereka bekerja. Kotak itu, bagaimanapun, akan terlihat setiap hari dan harus terlihat sebaik mungkin. Itu harus ramah kepada tangan muda dan cukup tangguh untuk menahan kejatuhan sesekali. Kayu adalah bahan yang sempurna, tetapi saya tidak memiliki keterampilan pengerjaan kayu yang presisi atau toko untuk membangun apa yang saya inginkan. Potong laser untuk menyelamatkan!

Untuk meletakkan pola sambungan di sudut, saya menggunakan utilitas online bernama BoxMaker (boxmaker.rahulbotics.com). Masukkan lebar terluar, kedalaman, dan tinggi kotak jadi Anda, ketebalan bahan, dan goresan (lebar bahan dihapus oleh potongan), dan menghasilkan PDF dari semua bagian yang diperlukan.

Saya mengimpor PDF ini ke Adobe Illustrator, membuat beberapa perubahan kecil pada spasi untuk simetri antara sisi kiri dan kanan, dan menempatkan elemen-elemen seperti potongan jendela dan lubang kancing.

Sebelum mengunggah untuk memotong, saya mencetak paket dan menyemprotkannya ke papan busa inti berukuran 1/4,, kemudian memotong dan menyusun potongan-potongannya. Papan busa jauh lebih murah daripada pemotongan laser, jadi tahap ini adalah tempat yang jauh lebih baik untuk menemukan kesalahan (seperti tab tempat slot seharusnya, atau kotak yang tidak cukup dalam untuk menahan tombol).

Tidak hanya mockup cocok bersama, tetapi semua komponen cocok ke dalamnya. Setelah pemeriksaan terakhir selesai, saya mengunggah desain ke Ponoko (ponoko.com) untuk dipotong laser dari kayu lapis bambu.

Dua minggu kemudian, sebuah paket tiba dengan kayu yang dipotong tipis. Potongan-potongan itu indah, tetapi tidak pas. Saya telah menetapkan terlalu lebar garitan (lebar potongan), dan sebagai kompensasi untuk itu, program BoxMaker telah menyesuaikan lebar takik untuk menutup celah yang tidak ada. Dengan sebuah file dan beberapa kertas ampelas, aku bisa memperluas takik yang cukup untuk menyatukan kotak itu.

Saya menempelkan sambungannya, mengampelas jari-jari di semua sudut, lalu menghabiskan kayu dengan lapisan poliuretan untuk perlindungan dan memberi bambu cahaya yang hangat dan kuning.

Jendela akrilik merah yang menutupi LED adalah laser-cut pada saat yang sama dengan kayu. Saya berharap untuk pas ketat yang tidak memerlukan lem jadi saya membuat 6 versi berbeda dari jendela, masing-masing berukuran beberapa ratus inci lebih besar dari yang terakhir, dan menggunakan yang cocok.

Ketika saya mulai menyatukan semuanya, saya menyadari bahwa saya tidak senang dengan cara baterai AA masuk ke dalam kasing. Mereka jelek, dan mengeluarkan mereka untuk pengisian akan merepotkan. Untuk menggantinya, saya menggunakan baterai lithium-ion dan pengisi daya USB, keduanya dari Adafruit (adafruit.com). Baterai 3.7V dimasukkan ke dalam rangkaian step-up tegangan untuk menyediakan 5V yang dibutuhkan.

Seperti kebanyakan dari kita, anak saya suka melihat ke dalam sesuatu dan melihat cara kerjanya. Perubahan catu daya menit terakhir biarkan saya meletakkan sirkuit menghadap keluar di tempat baterai berada, memungkinkan pintu di bagian belakang berfungsi sebagai jendela baginya untuk mengintip barang-barang elektronik di dalamnya. Untuk menjaga kabel rapuh aman, saya menutupi sirkuit dengan potongan akrilik yang jelas untuk ukuran dan dipegang oleh kebuntuan.

Pintu di bagian belakang kotak dipegang oleh empat magnet neodymium 3mm yang diromox menjadi lubang yang dibor ke panel pintu dan kusen. Magnet-magnet itu cukup kuat untuk menjaga pintu tetap aman dalam penggunaan reguler, tetapi magnet itu memberi ketika dibuka dengan menggunakan guntingan setengah bulan di setiap sisi.

Menggunakan Kotak Hitung

Selain sensasi jelas melihat seberapa tinggi angka yang bisa didapat, mudah untuk membuat game untuk dimainkan dengan Counting Box. Ajukan pertanyaan seperti, “Bagaimana Anda bisa mencapai angka 49 dengan menekan tombol paling sedikit? Bisakah Anda melakukannya dengan sakelar pemilih yang disetel ke nilai yang sama sepanjang waktu? ”Kotak Hitung juga dapat digunakan untuk membantu memperkenalkan konsep matematika seperti penghitungan lompatan. Gagasan yang lebih maju seperti penggandaan dan pembagian datang dengan cepat ketika dinyatakan bahwa itu tidak lebih dari penambahan atau pengurangan berulang.

Saya tidak yakin siapa yang belajar lebih banyak, saya dalam membangunnya atau anak saya bermain dengannya, tetapi bagaimanapun juga Counting Box menambah banyak kesenangan.

Lebih banyak di hahabird.com.

MAKE Volume 33 menampilkan bagian Software for Makers khusus kami yang mencakup aplikasi untuk desain papan sirkuit, desain dan pencetakan 3D, mikrokontroler, dan pemrograman untuk anak-anak. Juga, temui robot Rovera baru yang didukung Arduino dan mulailah dengan Raspberry Pi. Seperti biasa, Anda juga akan menemukan pembuat yang menarik di dalam, seperti maniak di sampul kami, peretas di balik acara Power Racing Series yang populer di Maker Faire.

Cobalah tangan Anda di 22 proyek besar DIY, seperti kotak efek gitar Tremolo Optik, "Panjolele" cake-pan ukelele, Wii Nunchuk Mouse, Trik bengkel tukang kayu CNC, trik menggosok-gosok pengepakan kucing, buku kayu melentur potong laser, pembuatan bir demi sake, pembuatan bir, tumbuh cabai "hantu cabai" yang sangat panas, dan banyak lagi.

Di kios berita sekarang, dengan berlangganan, atau tersedia di Maker Shed

Beli sekarang!



Anda Mungkin Tertarik

Make: Live is Tonight! Episode 08: Menyeduh Bir dan Kopi

Make: Live is Tonight! Episode 08: Menyeduh Bir dan Kopi


CRAFT: 02 - Teh Kombucha

CRAFT: 02 - Teh Kombucha


Praktek dengan Kit Pengembangan Aksesori Terbuka Android

Praktek dengan Kit Pengembangan Aksesori Terbuka Android


Resep: Madu dan Walnut Semi-Frio

Resep: Madu dan Walnut Semi-Frio