Buat Digital "meow" Dari Jam Analog: 7 Langkah (dengan Gambar)

Buat Digital "meow" Dari Jam Analog: 7 Langkah (dengan Gambar)

Isi kandungan:

Anonim

Adakah jam analog anda tidak melakukan perkara yang cukup? Mahu melakukan perkara digital dengan jam analog?

Tutorial ini akan menunjukkan kepada anda cara membuat Jam Kucing Kit memainkan klip bunyi "meow", pada masa yang tepat, menggunakan Atmega 328P-PU melalui papan pembangunan Arduino Uno. Dalam contoh saya, meow akan berlaku setiap jam. Ini tidak perlu menjadi jam Kit-Cat sama ada, idea ini boleh berfungsi dengan jam lain yang menggunakan motor magnet.

Andaian (melangkau jika anda sudah menjadi ahli dalam segala hal)

Projek ini meliputi banyak pertengahan dan kemahiran maju seperti membakar bootloader dan pematerian wayar. Oleh itu, ada pengetahuan dan kemahiran yang diperlukan sebelum meneruskan. Saya akan mengandaikan bahawa anda tahu bagaimana, atau sekurang-kurangnya bersedia untuk melakukan perkara berikut:

Membakar bootloader ke Atmel328P-PU (kecuali jika anda sudah mempunyai satu).

Memuat naik "lakaran" ke Atmel328P-PU melalui Arduino

Memasukkan arahan ke emulator terminal atau command prompt (windows)

Menggunakan besi pematerian untuk membuat sambungan antara komponen.

Kemungkinan penggunaan gerudi atau alat Dremel untuk memotong / memotong bahagian plastik, dan lubang membosankan.

Bahan

Arduino Uno R3 x 1

Breadboard x 1

Jumper Wire (kepingan yang cukup)

Resistor:

350 Ohm x 1

150 Ohm x 1

220 Ohm x 1

280 Ohm x 1

10K Ohm x 1

330 Ohm x 1 (pilihan jika anda mahu LED semasa menggunakan Arduino pada Persediaan Breadboard)

Kapasitor:

100 uF x 1

10 uF x 1

22 pF x 2 (mungkin pilihan)

16 Mhz Crystal Oscillator

0.5 Watt speaker kecil (lebih kurang 50.8 mm diameter) x 1

7.5 Volt AC adapter (Saya menggunakan jenama Vtech yang ditemui di Toys R Us) x 1

7805 Pengawal selia voltan x 1

Pematerian Besi dan Solder

Protoboard (atau beberapa papan projek akhir yang akan cukup kecil untuk disesuaikan dengan kes jam)

Gam super

Pengecutan haba (pilihan)

Senapang gam panas (pilihan)

Jam Kuarza Takane (dengan asumsi anda perlu menggantikan satu lalai di dalam Kit Cat, seperti yang saya lakukan)

Sensor kesan Dewan x 1

Saya menggunakan keluarga sensor kesan Hall SS41. Sensor ini cukup sensitif untuk mengesan medan magnet yang relatif lemah dari motor magnet jam. Yang spesifik yang saya beli boleh didapati di sini

Bekalan:

Langkah 1: Tinjauan Projek Umum:

Aspek menarik projek ini menggunakan peranti analog (dalam kes ini jam analog) untuk berinteraksi dengan dunia digital Atmel 328P-PU. Arduino mungkin salah satu cara paling mudah untuk mencapai matlamat ini. Saya akan menggunakan motor jam biasa yang terdapat di dalam jam Kit Kucing klasik untuk menghasilkan denyutan digital yang akan memakan cip Atmel. Alasan ini akan berfungsi kerana motor jam menggunakan magnet tetap, terletak di dalam jarak gegelung, untuk menghasilkan tork mekanikal yang diperlukan untuk memutar tangan jam. Saya akan mengambil kesempatan daripada medan magnet ini dengan menggunakan sensor Dewan Kesan untuk mengesan fluks magnet dari motor jam. Sensor akan mengeluarkan TINGKAT digital apabila salah satu tiang dari magnet menghadap sensor, dan kemudian keluaran LOW apabila tiang bertentangan adalah dekat sensor. Peralihan tiang ini berlaku setiap saat, atau mempunyai kekerapan 1 Hz dan merupakan sebab mengapa ini berfungsi sebagai motor yang sesuai untuk memandu jam tangan.

Nota: sensor sebenarnya tidak menyentuh magnet, ia hanya sangat dekat dengannya. Gambar menunjukkan betapa dekatnya saya perlu meletakkan sensor, untuk mendapatkan bacaan.

Gambar-gambar di sini menunjukkan bahagian dalam jam sebenar dan motor magnet ke sebelah kanan. Jenis jam dipanggil "Takane Quartz" dan mereka cukup biasa dalam jam analog murah.

Sekali kita mempunyai nadi yang stabil dari sensor, segala macam perkara boleh dilakukan secara digital, dan benar-benar hanya terhad kepada imaginasi anda tentang apa yang boleh anda lakukan. Dalam tutorial ini, saya hanya akan membuat kaunter yang mengira jam denyutan (dari sensor Hall), dan setelah menyelesaikan kiraan, kemudian memainkan klip audio "meow".

Langkah pertama melibatkan pemasangan penderia Hall cukup dekat dengan motor magnet supaya anda dapat membaca dengan baik. Saya terpaksa meletakkan sensor yang sangat dekat dengan motor magnet saya untuk mendapatkan output. Anda boleh menguji sensor dengan melampirkan sesuatu seperti LED ke pin output sensor dan kemudian hidupkan jam. Jika ini berfungsi maka LED perlu berkelip setiap detik yang lain. Ini kerana keluaran hanya TINGGI manakala salah satu kutub menghadapi sensor (katakan kutub utara sebagai contoh); apabila tiang bertentangan (selatan) menghadap sensor, output adalah LOW.

Selepas anda menentukan lokasi dan jarak yang sesuai untuk mendapatkan pembacaan anda, anda perlu mula memikirkan bagaimana untuk melancarkannya di sana selama-lamanya. Saya memilih untuk menggunakan gam super untuk memegang sensor itu. Saya juga menganggap lokasi kerana di mana sarung belakang akan menjadi. Saya terpaksa memotong lubang segi empat tepat kecil supaya pin sensor dapat diakses. Anda harus menentukan apa yang paling berkesan kerana walaupun jam ini hampir sama, kadang-kadang susun atur sedikit berbeza di dalamnya, dan penempatan sensor mungkin berbeza-beza bergantung pada jam tertentu yang anda miliki.

Langkah 2: Kawat Pematerian ke Pins Input Sensor

Kini tiba masanya untuk menyolder pin ke wayar. Alasan saya melakukan ini adalah kerana dua sebab: Pertama anda ingin dapat menguji sensor semasa anda terus bekerja, dan juga kerana anda akan memerlukan wayar tersebut apabila anda menyambungkannya ke papan roti anda dan akhirnya protoboard. Perhatikan, menggunakan dawai warna yang berbeza boleh memudahkannya apabila anda perlu mengenali dengan cepat pin. Itulah yang saya lakukan.

Konfigurasi pinout boleh didapati di laman web ini

Langkah 3: Menyediakan Fail Audio

Sekiranya anda sudah tahu bagaimana untuk menukar file.WAV ke fail C, maka anda boleh melangkau atau menginjak langkah ini.

Sekarang bahawa sensor dipasang pada pin yang bersesuaian di papan roti, anda perlu memuat naik lakaran audio ke Atmel328P. Tetapi pertama, beberapa pengubahsuaian dan "mengurut" perlu dilakukan terlebih dahulu. Di sinilah anda boleh membuat beberapa pengubahsuaian anda sendiri dan saya akan pergi ke beberapa (tetapi tidak semua) butiran mengenai penggunaan program Audacity dan wav2c. Anda perlu meneruskan dan membuka kod yang saya berikan di IDE Arduino anda. Apabila anda membuka lakaran dalam IDE Arduino, tab pertama adalah sedikit perubahan lakaran audio PCM yang ditulis oleh Michael Smith, asalnya boleh didapati di laman Arduino:

playground.arduino.cc/Code/PCMAudio

Audacity adalah program penyuntingan audio. Ia sangat berkuasa dan membolehkan fail.wav untuk dieksport sebagai file mono 8-bit, unsigned.wav. Ini adalah perlu untuk mendapatkan saiz fail yang dikurangkan dan juga untuk memaksimumkan keserasian dengan lakaran main balik audio. Anda mungkin boleh bekerja di sekitar kadar dan saiz bit yang berbeza, tetapi saya tidak bereksperimen dengannya. Kami hanya akan menggunakan ciri-ciri yang diperlukan dalam Audacity untuk mendapatkan kerja yang dilakukan.

Wav2c, seperti namanya, boleh menukar fail.wav ke fail C. Ini juga perlu kerana fail.wav dengan sendirinya terlalu besar untuk dimuatkan dalam memori 328P-PU. Sehingga penulisan ini anda boleh memuat turun kod sumber terus dari github. Anda juga boleh mendapatkan versi yang disusun dari laman web lain. Sama ada cara, anda harus menggunakannya atau program lain yang serupa untuk proses penukaran.

github.com/olleolleolle/wav2c

Langkah 4: Menggunakan Audacity dan Wav2c

Matlamat penukaran fail bunyi adalah untuk mengambil fail audio (.wav) dan mengubahnya menjadi dokumen fail header yang berguna. Ini membolehkan arduino untuk menggunakan maklumat dalam fail header untuk output sebagai bunyi melalui pembesar suara.

-First terbuka dalam fail dalam Audacity.

-Bahangkan kadar projek kepada 8000 Hz (terletak di sudut kiri bawah).

-Kemudian pilih "trek" dari menu dan pilih "resample".

-Selepas melakukan eksport> fail tidak dikompres lain.

-Dalam pilihan pilih 8-bit yang ditandatangani.

Ini akan menyediakan fail untuk langkah seterusnya di bawah, yang merupakan penukaran kepada fail C.

-Selepas membuka terminal dan tukar ke direktori yang sama sebagai fail.

-Run arahan berikut (sox) untuk memangkas ekor (dengan mengandaikan ada satu)

-Lalu jalankan arahan terakhir untuk melakukan penukaran

(perhatikan bahawa salinan fail asal sebenarnya sedang ditukar)

-Sekarang, buka IDE arduino dan tambahkan tab kosong baru (butang untuk menambah tab baru berada di sebelah kanan kanan Arduino IDE).

-Rename tab dengan nama yang sama dengan file header.

-Copy dan tampal kandungan ke dalam tab

Langkah 5: Menguji Bunyi anda

Sekarang bahawa anda mempunyai file sounddata.h siap, dan anda telah mengesahkan lakaran Arduino, anda kini harus memuat naik ke cip anda. Saya menggunakan papan Arduino secara langsung untuk semua ujian awal saya, tetapi kemudian menggunakan konfigurasi "Arduino di Breadboard" untuk ujian saya yang tinggal. Saya telah melampirkan rajah di sini.

Jika semuanya berjalan lancar, aktifkan jam anda, dan uji itu untuk memastikan ia menghitung denyutan dari jam dan kemudian menyampaikan output. Nota: apabila saya mula melakukan ini, saya menetapkan kaunter main balik audio setiap 60 saat supaya saya tidak perlu menunggu satu jam untuk melihat sama ada ia berfungsi, kemudian saya menukar kaunter untuk 3600 saat atau 1 jam). Untuk menukar selang meow, cari sekeping kod berhampiran baris terakhir dan cari pembolehubah jamCount. Tukar ke nilai yang anda mahu.

Langkah 6: Pematerian Segala-galanya untuk Reka Bentuk yang Lebih Kekal, Kompak

Sekarang untuk bahagian yang menyeronokkan … pematerian semua bahagian penting dari papan roti anda ke protoboard yang lebih padat. Anda tidak akan memerlukan segala-galanya seperti output LED atau butang reset (dengan menganggap anda mempunyai satu dari Arduino di litar Breadboard). Terdapat banyak cara yang lebih baik untuk melakukan ini, tetapi jika anda mempunyai bekalan yang terhad, protoboard mungkin menjadi taruhan terbaik anda. Ramai orang kini melakukan etsa dan pemprosesan PCB sendiri. Jika anda boleh melakukannya, maka dengan segala cara melakukannya, kerana ia lebih baik daripada protoboard.

Anda juga perlu menyambung penyesuai AC anda ke nod positif dan negatif protoboard di mana ia memenuhi pin regulator voltan. Saya menggunakan model Vtech 7.5 volt. Ini adalah kira-kira 10 dolar pada Target, dan 12 di Toys R Us. Atau anda boleh menggunakan apa-apa yang serupa yang anda telah berbaring di rumah. Awas: Anda harus cuba untuk menjaga perbezaan voltan antara pengatur dan penyesuai sekurang-kurangnya, kerana ia akan memanaskan sebaliknya. Sekiranya perbezaannya besar, maka anda perlu meletakkan sink haba pada pengawal untuk membantu menghilangkan haba. Perbezaan voltan di antara 7805 dan penyesuai AC Vtech hanya 2.5 volt pada 300mA, tetapi anda masih perlu meletakkan heatsink kecil di atasnya.

Nota: pastikan anda gembira / berpuas hati dengan lakaran di cip Atmega kerana sebaiknya dipamerkan di papan anda, anda tidak akan dapat memprogram semulanya.

Nota: Saya juga menggunakan dremel untuk membuat lubang kecil di bahagian bawah kes jam supaya kord penyesuai kuasa akan kemas. Saya juga menggunakannya untuk pelbagai perkara lain semasa mengubah jam, seperti memotong tepi tajam dan hanya membersihkan bahagian dalam secara umum.

Langkah 7: Menguruskan Segala-galanya dan Pasangnya Di dalam Jam

Sebaik sahaja anda mempunyai semua wayar dan komponen yang disepuh dengan betul, kini sudah tiba masanya untuk mengatur pendawaian dan membuat keputusan penempatan yang betul di dalam perumahan Kit Cat. Kebimbangan utama di sini adalah meletakkan segala sesuatu di tempat yang tidak akan mengganggu pergerakan ekor dan mata. Saya juga tidak menyedari betapa sukarnya pembesar suara itu, jadi saya terpaksa menggerudi beberapa lubang untuk membantu melancarkan pembesar suara di tempat yang akan menghalang perlengkapan motor ekor.

Mencari tempat untuk papan boleh menjadi rumit dan mungkin memerlukan beberapa percubaan dan kesilapan. Saya menetap di tempat ke kiri, berhampiran perumahan bateri. Saya kemudian menggunakan pistol gam panas di pinggir papan untuk membantu mengekalkannya. Anda boleh mencari ikatan cabutan atau hubungan zip yang berguna untuk menganjurkan dan mengelompokkan wayar dengan kemas.

Apa sahaja teknik yang anda memutuskan untuk melakukan ini adalah terpulang kepada anda, kerana menguruskan untuk menyesuaikan semuanya di dalam selongsong jam akan bergantung pada jam anda dan jumlah barang yang masuk ke dalamnya.

Finalis dalam

Peraduan Sensor