Dalam artikel ini, kita akan melihat bagaimana anda dapat membuat chronograph mudah dari bahagian yang murah dan terjangkau. Perlawanan perlu untuk mengukur kelajuan peluru dalam senapang. Angka-angka ini diperlukan untuk menentukan keadaan senapang, kerana dari masa ke masa, beberapa bahagian pneumatik haus dan memerlukan penggantian.
Kami menyediakan bahan dan alat yang diperlukan:
- Chinese Digispark (pada masa pembelian kos 80 rubel);
- paparan jenis segmen pada TM1637 (berharga 90 Rubles apabila dibeli);
- LED dan phototransistor inframerah (10 pasang) - kos ialah 110 rubel;
- Seratus 220 Ohm perintang kos 70 rubel, tetapi hanya dua dari mereka yang diperlukan.
Itulah semua, ini adalah senarai keseluruhan item yang anda perlukan untuk membeli. Dengan cara ini, resistor juga boleh didapati di perkakas rumah lama. Anda boleh bertaruh lebih pada nilai muka, tetapi tidak kurang. Akibatnya, anda boleh menyimpan dalam lingkungan 350 rubel, tetapi ini tidak begitu banyak, memandangkan chronograph kilang akan menelan kos sekurang-kurangnya 1000 Rubel, dan perhimpunan di sana jauh lebih buruk daripada kami buatan sendiri.
Antara lain, anda perlu menyimpan maklumat seperti:
- wayar;
- sekeping paip dengan panjang sekurang-kurangnya 10 cm (paip air plastik sesuai);
- semua untuk pematerian;
- multimeter (pilihan).
Keterangan ketiga yang pertama diterangkan mempunyai nuansa mereka sendiri, sehingga masing-masing perlu dipertimbangkan secara berasingan
Digispark
Item ini adalah papan litar kecil yang serasi dengan ArduinoDi atas kapal dia mempunyai ATtiny85. Bagaimana untuk menyambungkan elemen ini kepada Arduino IDE, anda boleh membaca, anda juga boleh memuat turun driver untuknya di sana.
Papan ini mempunyai beberapa pilihan, satu menggunakan microUSB, dan yang lain dilengkapi dengan penyambung USB, yang dipasang secara langsung di papan. Oleh kerana produk buatan sendiri tidak mempunyai bekalan kuasa individu, penulis memilih versi pertama lembaga. Jika anda memasang bateri atau bateri dalam produk buatan sendiri, ini akan meningkatkan harganya, dan tidak akan menjejaskan praktikal. Dan hampir semua orang mempunyai kabel untuk mengecas bank mudah alih dan Power.
Bagi ciri-ciri, mereka serupa dengan ATtiny85, di sini kemampuannya banyak. Mikrokontroler dalam chronograph hanya menginterogasi sensor dan mengawal paparan.
Sekiranya anda tidak pernah bertemu Digispark sebelum ini, nuansa yang paling penting boleh didapati di dalam jadual.
Adalah penting untuk mempertimbangkan fakta bahawa penanda pin untuk fungsi analogRead () mempunyai perbezaan. Dan pada pin ketiga ialah perintang pull-up dengan nilai nominal 1.5 kOhm, kerana ia digunakan dalam USB.
Beberapa perkataan mengenai paparan
Sesiapa sahaja boleh menggunakan paparan untuk buatan sendiri, tetapi penulis memilih pilihan yang murah. Untuk menjadikan peranti ini lebih murah, anda boleh meninggalkan sepenuhnya paparan. Data hanya dapat dihasilkan melalui kabel ke komputer. Ia akan diperlukan di sini. Paparan yang dimaksudkan adalah salinan paparan.
Bagaimana paparan yang kelihatan di depan dan belakang dapat dilihat dalam foto.
Oleh kerana jarak di antara nombor adalah sama, apabila titik usus dimatikan, nombor dibaca tanpa masalah. Perpustakaan standard mampu memaparkan nombor dalam julat 0-9. huruf dalam julat a-f, dan masih terdapat peluang untuk mengubah kecerahan keseluruhan paparan. Nilai digit boleh ditetapkan menggunakan fungsi paparan (int 0-3, int 0-15).
Cara menggunakan paparan
Jika anda cuba melampaui nilai-nilai [0, 15], paparan akan menunjukkan kekeliruan, yang, sebagai tambahan kepada segala-galanya, tidak statik. Oleh itu, untuk memaparkan watak-watak khas, seperti darjah, minus, dan lain-lain, anda perlu menggerunkan.
Penulis ingin paparan untuk memaparkan tenaga siap peluru penerbangan, yang akan dikira bergantung pada kelajuan peluru dan jisimnya. Nilai-nilai mengikut idea itu perlu dipaparkan secara berurutan, tetapi untuk memahami mana mana yang harus diperhatikan entah bagaimana, contohnya, menggunakan huruf "J". Dalam kes-kes yang teruk, anda boleh menggunakan kolon, tetapi penulis tidak menyukainya, dan dia memanjat ke perpustakaan. Akibatnya, berdasarkan fungsi paparan, fungsi setSegments (byte addr, data byte) dibuat, ia menyala segmen yang dikodkan dalam data dalam nombor dengan nombor addr:
Segmen-segmen sedemikian dikodkan dengan ringkas, sedikit data penting yang bertanggungjawab untuk segmen atas, dan kemudian mengikut arah jam, bit 7 bertanggungjawab untuk segmen pertengahan. Watak "1" apabila dikodkan kelihatan seperti 0b00000110. Bit kelapan yang paling ketara bertanggungjawab untuk kolon, ia digunakan dalam digit kedua, dan dalam semua yang lain ia diabaikan. Seterusnya, pengarang automatik menggunakan proses mendapatkan kod menggunakan Excel.
Apa yang akhirnya berlaku dapat dilihat dalam foto
Akhirnya, sensor
Tiada maklumat yang tepat diberikan mengenai sensor, hanya diketahui bahawa mereka mempunyai panjang gelombang 940 nm. Semasa eksperimen, didapati bahawa sensor tidak dapat menahan arus melebihi 40 mA. Bagi voltan bekalan, ia tidak boleh lebih tinggi daripada 3.3V. Bagi fototransistor, ia mempunyai badan yang sedikit telus dan bertindak balas kepada cahaya.
Kami pergi ke perhimpunan dan konfigurasi buatan sendiri:
Langkah pertama. Perhimpunan
Semuanya dipasang mengikut skema yang sangat mudah. Daripada semua pin, hanya P0, P1 dan P2 yang diperlukan. Dua yang pertama digunakan untuk paparan, dan P2 diperlukan untuk sensor.
Seperti yang anda lihat, satu perintang digunakan untuk mengehadkan arus untuk LED, tetapi yang kedua menarik P2 ke tanah. Disebabkan fakta bahawa phototransistors disambung selari, apabila peluru berlalu di hadapan mana-mana optocoupler, voltan pada P2 akan jatuh. Untuk menentukan kelajuan penerbangan peluru, anda perlu mengetahui jarak antara sensor, mengukur dua lonjakan kuasa dan menentukan masa di mana ia berlaku.
Kerana kenyataan bahawa hanya satu pin yang akan digunakan, tidak kira mana sampingan untuk menembak dari. Phototransistors akan melihat peluru pula.
Semua butiran yang dapat dilihat dalam foto dikumpulkan. Untuk mengumpulkan segala-galanya, penulis memutuskan untuk menggunakan papan roti. Kemudian struktur keseluruhan ditutup dengan gam panas untuk kekuatan. Sensor diletakkan di atas paip dan wayar disolder kepada mereka.
Untuk mengelakkan dioda dari denyut apabila dikuasai oleh bank kuasa, penulis memasang elektrolit pada 100 mKf selari dengan LED.
Ia juga penting untuk ambil perhatian bahawa pin P2 dipilih kerana alasannya, hakikatnya ialah P3 dan P4 digunakan dalam USB, jadi sekarang dengan bantuan P2 ada peluang untuk flash buatan sendiri selepas perhimpunan.
P2 juga merupakan input analog, jadi tidak perlu menggunakan gangguan. Anda hanya dapat mengukur pembacaan antara nilai semasa dan sebelumnya, jika perbezaan menjadi lebih tinggi dari ambang tertentu, maka pada saat itu peluru hanya berlalu di dekat optocoupler.
Langkah Dua Firmware
Prescaler adalah pembahagi frekuensi, dalam kes standard dalam papan seperti Arduino ia adalah 128. Angka ini mempengaruhi berapa kerap ADC ditinjau. Iaitu, untuk lalai 16 MHz, 16/128 = 125 kHz keluar. Setiap digitisasi terdiri daripada 13 operasi, jadi pin boleh dilihat sebanyak mungkin pada kelajuan 9600 kHz. Dalam amalan, ini tidak lebih daripada 7 kHz. Oleh itu, selang antara pengukuran adalah 120 μs, yang terlalu banyak untuk kerja buatan sendiri. Jika peluru terbang pada kelajuan 300 m / s, ia akan mengatasi laluan 3.6 cm pada masa ini, iaitu, pengawal semata-mata tidak akan dapat melihatnya. Untuk segala-galanya untuk berfungsi dengan baik, selang antara pengukuran harus sekurang-kurangnya 20 μs. Untuk ini, nilai pembagi mestilah sama dengan 16. Penulis membuat pembahagi 8, bagaimana untuk melakukan ini, boleh dilihat di bawah.
Apa yang berlaku untuk belajar semasa percubaan, boleh dilihat dalam foto
Logik firmware mempunyai beberapa peringkat:
- mengukur perbezaan nilai pada pin sebelum dan selepas;
- jika perbezaan melebihi ambang, maka gelung akan keluar dan masa kini (micros ()) diingati;
- kitaran kedua berfungsi sama dengan yang pertama dan mempunyai kaunter masa dalam kitaran;
- jika kaunter telah mencapai nilai yang ditetapkan, maka mesej ralat dihantar dan peralihan ke keadaan awal. Dalam kes ini, kitaran itu tidak masuk ke dalam keabadian jika peluru tidak tiba-tiba ditangkap oleh sensor kedua;
- jika kaunter tidak melimpah dan perbezaan nilai lebih besar daripada ambang, masa semasa diukur (micros ());
- Sekarang, berdasarkan perbezaan masa dan jarak antara sensor, anda boleh mengira kelajuan penerbangan bullet dan memaparkan maklumat pada skrin. Nah, maka semuanya bermula sekali lagi.
Peringkat terakhir. Ujian
Sekiranya semuanya dilakukan dengan betul, peranti akan berfungsi tanpa masalah. Satu-satunya masalah adalah tindak balas yang lemah terhadap lampu pendarfluor dan LED, dengan frekuensi riak 40 kHz. Dalam kes ini, ralat mungkin berlaku di dalam peranti.
Kerja buatan sendiri dalam tiga mod:
Selepas menghidupkan, ada ucapan, dan kemudian skrin dipenuhi dengan jalur, ini menunjukkan bahawa peranti sedang menunggu pukulan
Sekiranya terdapat ralat, mesej "Err" dipaparkan, dan mod siap sedia dihidupkan.
Nah, kemudian datang pengukuran laju
Sejurus selepas tembakan, peranti akan menunjukkan kelajuan peluru (ditunjukkan oleh simbol n), dan kemudian maklumat tentang tenaga peluru (simbol J) akan dipaparkan. Apabila joule dipaparkan, kolon juga dipaparkan.