Isi kandungan:

Cryptap: Kunci Pintu Berasaskan Irama: 5 Langkah
Cryptap: Kunci Pintu Berasaskan Irama: 5 Langkah

Video: Cryptap: Kunci Pintu Berasaskan Irama: 5 Langkah

Video: Cryptap: Kunci Pintu Berasaskan Irama: 5 Langkah
Video: MEGAWATI GAK PINGIN MASUK SURGA #ceramahsingkat #ustadzadihidayat #uah 2024, Julai
Anonim
Cryptap: Kunci Pintu berasaskan Irama
Cryptap: Kunci Pintu berasaskan Irama
Cryptap: Kunci Pintu berasaskan Irama
Cryptap: Kunci Pintu berasaskan Irama
Cryptap: Kunci Pintu berasaskan Irama
Cryptap: Kunci Pintu berasaskan Irama

Diilhamkan oleh beberapa mekanisme membuka kunci pintu yang pernah saya lihat di hackaday.com, saya memutuskan untuk membuatnya sendiri. Yang satu ini mempunyai antara muka dua butang; satu untuk memulakan dan mengakhiri penyerahan kata laluan, dan satu untuk benar-benar memasukkan irama iaitu kata laluan anda. Terdapat juga lampu status. Saya dapat membina alat ini dengan sangat murah menggunakan bahagian yang saya peroleh sejak beberapa bulan kebelakangan ini. Satu-satunya perkara yang perlu saya bayar ialah pengawal mikro itu sendiri, yang berharga $ 21 (https://www.pjrc.com/teensy/), dan beberapa wayar gantung gambar yang saya ada sebelumnya.

Ia sangat menyeronokkan untuk memasuki Tema Star Wars atau sesuatu untuk memasuki bilik saya. Sekarang, saya tidak perlu risau untuk mengurung diri dari bilik saya lagi! Tambahan, rasanya bagus dan geek.

Langkah 1: Bahagian dan Alat

Bahagian dan Alat
Bahagian dan Alat
Bahagian dan Alat
Bahagian dan Alat

Saya memilih Teensy kerana ini adalah mikrokontroler pertama saya, dan saya belum mempunyai programmer. Teensy hanya memerlukan kabel USB A-miniB dan perisian percuma untuk dipasang, serasi dengan Mac / Windows / Linux. Juga, sangat mudah untuk memuat naik fail hex; hanya menyusun, dan tekan butang di Teensy.

Kos projek ini bagi saya adalah $ 21, ditambah dengan wayar gantung gambar. Bahagian dari jalan berasal dari alat perkolator kopi (relay, LED, kapasitor) dan penghala (LED, jack modular, soket kuasa, kapasitor). Sampel percuma adalah pengatur 7805 5 volt, butang dan suis. Saya juga menemui banyak barang di kotak "bahagian yang rosak" di makmal EE saya: penyambung pisang dan kabel, wayar, pemacu sn754410, pengepala empat pin dan perintang. Saya mempunyai pengecas komputer riba tambahan yang saya gunakan untuk kuasa, dan kabel modem Apple yang tabnya rosak. Perkakasan lain: plat dinding. Saya menggunakan pistol lem panas, besi pematerian, fail jarum dan gerudi kuasa, yang cukup standard. Perkara yang paling tidak biasa saya gunakan ialah alat penangkap yang fleksibel dan panjang.

Langkah 2: Perkakasan yang sudah ada

Perkakasan yang sudah ada
Perkakasan yang sudah ada
Perkakasan yang sudah ada
Perkakasan yang sudah ada
Perkakasan yang sudah ada
Perkakasan yang sudah ada
Perkakasan yang sudah ada
Perkakasan yang sudah ada

Saya sangat bernasib baik kerana sudah terpasang begitu banyak. Bilik saya boleh dilayari ADA, dan terdapat pelbagai paip, kotak elektrik dan pemadam pintu elektrik yang sudah dipasang. Semasa melepaskan pintu masuk kerana ingin tahu, saya mendapati bahawa ia tidak tersambung. Terdapat paip dari pintu masuk ke plat dinding kosong di dalam bilik saya, dan paip lain dari situ ke plat dinding kosong di luar.

Mogok pintu mengatakan ia memerlukan 24V @ 3A untuk beroperasi, tetapi saya dapat bertahan dengan bekalan kuasa 19V, 7.9A yang saya ada. Mogok pintu terpolarisasi, jadi pastikan kekutuban anda betul!

Langkah 3: Litar

Litar
Litar
Litar
Litar
Litar
Litar
Litar
Litar

Untuk mengawal pemogokan pintu, saya menggunakan geganti yang saya dapati di dalam alat perap kopi. Relay ini memerlukan lebih dari 5V TTL untuk menggerakkannya, jadi sn754410 digunakan untuk menerjemahkan TTL ke 19V, yang mendorong relay. Sn754410 benar-benar pemacu quad half-H, jadi saya membuang 3/4 cip, tetapi saya tidak mempunyai transistor kuasa, jadi itulah yang saya gunakan.

Cip sn754410 mempunyai dua pin VCC, satu untuk 5V, yang lain untuk voltan yang anda mahu keluar, yang merupakan 19V untuk saya. Ia adalah cip yang sangat hebat. Anda boleh menggunakannya untuk menggerakkan motor dan relay secara langsung, kerana ia dapat menukar cip 1A per seperempat dan mempunyai diod perlindungan terbina dalam. Lihatlah lembaran data. Di litar saya, saya menyambungkan sn754410 terus ke pin output Teensy saya. Butang disambungkan sebagai rendah aktif, yang sangat biasa untuk mikrokontroler. Mereka disambungkan secara langsung ke Teensy, yang bermaksud saya harus melakukan penurunan dalam perisian. Lampu status disambungkan ke Teensy melalui perintang ohm 1K; tiada apa yang istimewa. Litar berfungsi tanpa kapasitor, tetapi saya tetap meletakkannya untuk berjaga-jaga. Terdapat penutup perlindungan pada landasan kuasa 19V dan 5V ke tanah. Semasa memprogram Teensy, 5V berasal dari USB, tetapi ketika berjalan dengan sendirinya, kekuatannya berasal dari bata kuasa komputer riba. Semasa saya menghubungkan pengatur 7805 secara langsung ke 19V, ia menjadi sangat panas, jadi saya memasukkan rangkaian perintang untuk menghadkan voltan masukan dan arus ke pengatur. Ini adalah kludge, tetapi sekarang semuanya berada pada suhu yang dapat dikendalikan.

Langkah 4: Pendawaiannya Bersama

Pendawaiannya Bersama
Pendawaiannya Bersama
Pendawaiannya Bersama
Pendawaiannya Bersama

Teensy tidak ada masalah. Ia dilengkapi dengan pin, jadi anda boleh memasangkannya terus ke papan roti.

Saya memutuskan untuk memberi kod warna wayar pada pintu pintu dengan kabel pisang merah (+) dan hitam (-) dari kotak bahagian makmal yang rosak. Terdapat beberapa plag yang terputus dari wayarnya, jadi saya membuang plastik untuk mengeluarkan titik solder. Saya sangat suka bagaimana palam pisang makmal boleh saling berhubung. Saya menggunakan kabel telefon Apple untuk menyambungkan butang dan lampu status di luar bilik ke Teensy di dalamnya. Oleh kerana satu sisi patah, saya memotong hujungnya dan menyolder pada kepala empat pin, menutupnya dengan gam panas. Ini dipasang dengan baik ke papan roti saya. Sisi yang saya tinggalkan palam masuk ke soket modular yang saya selamatkan dari penghala. Keempat-empat wayar digunakan (GND, lampu status, butang mula / berhenti, butang kod). Sekiranya anda tidak menyedari, saya suka palam dan penyambung. Bata kuasa yang disambungkan ke soket kuasa yang saya leret dari penghala. Mengikat wayar melalui paip dinding tidak terlalu sukar, kerana benda yang mudah dipegang. Itu benar-benar menyelamatkan hari saya.

Langkah 5: Kod

Kod
Kod
Kod
Kod

Saya telah cuba mengulas kod saya. Perlu diingat bahawa ini adalah perisian 1.0, yang bermaksud bahawa ia tidak bebas bug. ## OPERASI ## 1. Tekan butang mula / berhenti untuk memberi isyarat bahawa anda sudah bersedia untuk memulakan input kod. Lampu status mula berkelip perlahan. 2. Ketik kod anda pada butang kod. Lampu status akan berkelip pada 120 BPM, jadi anda boleh menggunakannya sebagai metronom anda jika anda mahu. Walau bagaimanapun, program cryptap akan mengukur panjang nadi antara satu sama lain secara proporsional, jadi anda juga boleh menggunakan tempo anda sendiri. Pastikan anda cukup tepat! 3. Apabila input kod selesai, tekan butang mula / berhenti sekali lagi. Program ini kemudian akan memutuskan sama ada akan membiarkan anda masuk. Oleh kerana manusia bukan penjaga masa yang sangat tepat (anda sebenarnya tidak), saya menetapkan nisbah toleransi kepada +/- 30%. Ini bermaksud bahawa panjang rentak dapat tidak tepat dengan jumlah itu, dan masih berjaya. Ini cukup baik untuk membezakan antara lagu yang serupa. Terdapat sebilangan kecil pertindihan yang sukar dicapai antara rentak ganda dan tiga kali ganda, tetapi kodnya masih sukar dipatahkan. Untuk membuka kunci pintu, rentak harus berada dalam perkadaran yang betul antara satu sama lain (+/- nisbah toleransi), dan jumlah rentak mestilah betul. Sekiranya kata laluan yang tidak sah dimasukkan, program menunggu beberapa saat sambil mengabaikan sebarang input pengguna. Ia juga akan menyalakan lampu status dengan cepat. Sekiranya kod yang betul dimasukkan, lampu status akan menyala dengan stabil dan pintu akan dibuka selama 8 saat. ## KONFIGURASI PENGGUNA ## Kunci disimpan dalam tatasusunan seperti ini: #tentukan panjang keyl 5 kunci int int = {2, 1, 3, 3, 3}; // "Selamat ulang tahun kepada anda" Susunan menyimpan jumlah masa yang berlaku ANTARA rentak. Oleh itu, jika kata laluan anda mempunyai ENAM nota seperti "Selamat ulang tahun kepada anda", semestinya terdapat LIMA elemen dalam array. Sekiranya kata laluan anda betul-betul panjang dan anda mempunyai lebih dari 16 denyut di dalamnya, (sangat sukar, saya tidak mengesyorkannya), anda mesti menambah bilangan yang ditentukan dalam baris ini: #define inputCodeLength 16 ## PERINGKAT KOD # # Saya ingin tahu tentang gangguan, jadi butang saya mencetuskan gangguan. Untuk menjadikan gangguan ini mudah digunakan, saya telah mengendalikan pengendali gangguan saya untuk mengetahui petunjuk fungsi tertentu. Sekiranya penunjuk tidak ditetapkan ke NULL, fungsi yang ditunjukkannya dipanggil. Ini diset dengan pelbagai fungsi "mod-setting" di dalam cryptap.c. Saya berusaha untuk mengelakkan limpahan buffer dengan menetapkan jumlah denyutan masukan maksimum. Sekiranya jumlah denyutan maksimum dimasukkan, program akan segera memulakan analisis kata laluan dan memutuskan sama ada membuka kunci pintu. Saya harap komen saya dalam kod dapat membantu. ## BUGS ## Saya cuba membuang kod debugging USB, tetapi kodnya tidak akan berfungsi jika saya melakukannya. Oleh itu, saya meninggalkan pernyataan usb_init () dan pelbagai cetakan (). Saya akan menghargainya sekiranya seseorang dapat membuangnya dan masih menjalankan program. Lebih baik lagi jika mereka dapat menjelaskan mengapa ia tidak berfungsi untuk saya. Segera setelah diprogramkan, Teensy kadang-kadang tidak menerima input kod. Untuk menyelesaikannya, litar kuasa litar.

Disyorkan: