Isi kandungan:
- Langkah 1: Ciri
- Langkah 2: Teori Operasi dan Ketepatan
- Langkah 3: Skema dan Senarai Bahagian
- Langkah 4: Fail Gerber PCB
- Langkah 5: Selesaikan Pcb Anda
- Langkah 6: Memprogram Atmega328p
- Langkah 7: Paparan Lcd
- Langkah 8: Fail STL
- Langkah 9: PENGENALAN ROTARY
- Langkah 10: Paip Sensor
- Langkah 11: Alternatif Paip Sensor
- Langkah 12: Pelet pada Osiloskop dan Penentukuran
- Langkah 13: Lagi …
Video: Kronograf Senapang Udara, Kronoskop. 3D Dicetak: 13 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:07
Hai semua, hari ini kita akan melihat semula projek yang telah saya lakukan pada tahun 2010. Kronograf Air Rifle. Peranti ini akan memberitahu anda kelajuan sebuah proyektil. Pelet, BB atau bola plastik BB lembut udara.
Pada tahun 2010 saya membeli senapang udara untuk bersenang-senang. Adakah memukul tin, botol, tujuan. Saya tahu bahawa kelajuan senjata ini maksimum 500 kaki / s. Kerana itu undang-undang kanada. Beberapa senapang udara lebih kuat ada tetapi anda perlu mempunyai lesen dan anda tidak boleh membeli barang itu di Walmart.
Sekarang saya mempunyai lesen ini, saya dapat membeli yang lain. Tetapi cerita pendek, senjata yang sama tersedia untuk A. S. dengan jarak 1000 kaki / s. APA!? Pistol yang sama? ya … Di kanada, stroke mempunyai lubang di dalamnya dan mata airnya lebih lembut.
Perkara pertama yang perlu dilakukan adalah mengisi lubang. Itulah yang saya buat dengan solder. Perkara seterusnya yang perlu dilakukan ialah memesan spring pengganti. Tetapi tunggu … berapakah kelajuan mainan baru saya sekarang? Adakah musim bunga benar-benar diperlukan? Saya tidak tahu dan saya mahu tahu. Saya ingin tahu sekarang tetapi bagaimana?
Itulah sebabnya saya melakukan projek ini. Yang saya perlukan hanyalah 2 sensor, uC dan paparan dan kami berniaga.
Minggu lalu, saya melihat kronograf biru tua saya di rak dan saya bercakap dengan diri sendiri: "Mengapa tidak membagikannya dan melakukan arahan dengannya?" Kita boleh meningkatkan ketepatan dan menambahkan penunjuk bateri. Letakkan 1 butang dan bukannya 2 untuk hidup / mati. Semua permukaan dipasang. Kita sekarang pada tahun 2020!
Oleh itu, mari kita mulakan!
Langkah 1: Ciri
-Kelajuan pelet
-Kelajuan
-20 mhz berjalan, ketepatan besar
- Matikan secara automatik
- Voltan bateri dipaparkan
- skematik ada
-pcb ada
- senarai bahagian ada
-STL ada
-C code ada
Langkah 2: Teori Operasi dan Ketepatan
-Kami mempunyai uC berjalan pada 20Mhz. Pengayun yang digunakan ialah TCX0 + -2,5 ppm
-Kami mempunyai 2 sensor pada jarak 3 inci antara satu sama lain.
Proyektil memukul sensor pertama. uC mula mengira (pemasa1)
Proyektil memukul sensor kedua. uC berhenti mengira.
-uC periksa nilai pemasa1, lakukan matematik dan paparkan kelajuan dan halaju.
Saya menggunakan pemasa 16 bit1 + bendera limpahan tov1. Jumlah 17 bit untuk 131071 "tic" untuk kiraan penuh.
1/20 mhz = 50 ns. Setiap tic adalah 50ns
131071 x 50 ns = 6.55355 ms untuk melakukan 3 inci.
6.55355 ms x 4 = 26.21 ms untuk melakukan 12 inci.
1 / 26.21 ms = 38.1472637 kaki / s
Ini adalah kelajuan paling perlahan yang dapat dipastikan oleh peranti.
Mengapa 20 mhz? Mengapa tidak menggunakan 8 mhz dalaman atau bahkan kristal?
Peranti pertama saya menggunakan pengayun dalaman. Berfungsi tetapi yang satu ini tidak cukup tepat. Variasinya terlalu besar. Kristal lebih baik tetapi suhu berbeza frekuensi. Kami tidak dapat melakukan alat pengukuran yang tepat dengan itu. Juga, semakin banyak frekuensi tinggi, lebih banyak tic akan dikira untuk kelajuan yang sama. Persampelan akan lebih baik untuk mempunyai ketepatan yang sangat baik. Kerana tic tidak dapat dibahagi, kerugiannya sedikit jika kitaran tugas cepat.
Pada 20 MHz kita mempunyai langkah 50 ns. Adakah kita tahu sejauh mana tepatnya 50 ns untuk proyektil pada 38 kaki / s.
38.1472637 kaki / s dibahagi dengan 131071 = 0, 000291042 kaki
0, 0003880569939956207 kaki x 12 = 0, 003492512 inci
1/0, 003492512 = 286.37 ". Dengan kata lain. Pada 50 kaki / s kita mempunyai ketepatan + - 1/286" atau + - 0, 003492512 inci
Tetapi jika pengayun saya paling teruk dan berjalan pada 20 mhz +2.5 ppm adakah ia baik? Mari cari…
2.5 ppm 20 000 000 ialah: (20000000/1000000) x 2.5 = 20000050 Hz
Jadi senario terburuk kami mempunyai 50 jam lagi pada 20 mhz. Jam 50 pada 1 saat. Berapa banyak lagi pada pemasa1 jika pelet melakukan kelajuan yang sama (38.1472637 kaki / s atau 6.55 ms)?
1/20000050 = 49.999875 ns
49.999875 ns x 131071 = 6, 553533616 ms
6, 553533616 ms x 4 = 26.21413446 ms
1 / 26.21413446 ms = 38.14735907 kaki / s
Oleh itu, kita mempunyai 38.14735907 kaki / s dan bukannya 38.1472637 kaki / s
Sekarang kita tahu bahawa 2.5 ppm tidak mempengaruhi hasilnya.
Berikut adalah contoh kelajuan yang berbeza
Untuk 1000 kaki / s
1000 kaki / s x 12 ialah 12000 inci / s
1 saat untuk 12000 "berapa masa untuk melakukan 3"? 3x1 / 12000 = 250 saat kita
250 us / 50 ns = 5000 tic.
Pemasa1 akan berada pada 5000
uC melakukan matematik dan 1000 kaki / s ditunjukkan. Setakat ini begitu baik
Untuk 900 kaki / s
900 kaki / s ialah 10800 / s
3x1 / 10800 = 277.77 kita
277, 77 ns / 50 ns = 5555, 5555 tic
Pemasa 1 akan berada di 5555
uC melakukan matematik dan 900, 09 akan dipaparkan dan bukannya 900
Kenapa? kerana pemasa 1 pada 5555 dan 0, 5555 hilang. Tic pada pemasa tidak boleh dibahagi.
Kami mempunyai ralat untuk 0, 09 pada 900 kaki / s
Kesalahan 0, 09 / 900x100 = 0, 01% sahaja
Untuk 1500 kaki / s1500 kaki / s adalah 18000 / s 3x1 / 10800 = 166.66 kita
166.66 us / 50 ns = 3333.333 tic Pemasa 1 akan berada di 3333
uC lakukan matematik dan 1500.15 akan dipaparkan dan bukannya 1500 itu.15 / 1500x100 = 0, 01%
Untuk 9000 kaki / s
9000 x 12 = 180000 inci / s
3x1 / 180000 = 27.7777 kita
27.77 kita / 50 ns = 555, 555
Pemasa1 akan berada di 555 dan 4 / (1 / 555x50ns) akan dipaparkan 9009, 00 akan dipaparkan
Kesalahan di sini adalah 9 kaki / s pada 9000 = 0, 1%
Seperti yang anda lihat% ralat meningkat apabila kelajuan lebih tinggi. Tetapi tinggal <0.1%
Hasilnya sangat baik.
Tetapi ketepatan tidak linear. Pada 10000 kaki / s adalah 0, 1%. Yang baru adalah kita tidak pernah menguji pelet 10, 000 kaki / s.
Perkara lain yang perlu diingat. Apabila gangguan berlaku, uC selalu menyelesaikan arahan terakhir sebelum memasukkan gangguan. Ini adalah perkara biasa dan semua uC melakukan ini. Sekiranya anda kod arduino, dalam C atau bahkan assembler. Sebilangan besar masa anda akan menunggu dalam lingkaran selamanya … untuk menunggu. Masalahnya, dalam satu gelung kita menghabiskan 2 kitaran. Biasanya ini tidak penting. Tetapi dalam kes kami. YA, setiap tic itu penting. Mari lihat gelung yang tidak terhingga:
penghimpun:
gelung:
gelung rjmp
Dalam C:
semasa (1) {}
Sebenarnya penyusun C menggunakan arahan rjmp. RJMP adalah 2 kitaran.
Ini bermaksud jika gangguan berlaku pada kitaran pertama, kita kehilangan satu kitaran (tic) (50ns).
Cara saya memperbaikinya adalah dengan menambahkan banyak arahan nop dalam gelung. NOP adalah 1 kitaran.
gelung:
nop
nop
nop
nop
nop
gelung rjmp
Sekiranya gangguan berlaku pada arahan nop. Kami ok. Sekiranya ia berlaku pada kitaran kedua arahan rjmp, kami baik-baik saja. Tetapi jika ia berlaku pada kitaran pertama arahan rjmp, kita akan kehilangan satu tic. Ya itu hanya 50 ns tetapi seperti yang anda lihat di atas, 50 ns pada 3 inci bukanlah apa-apa. Kami tidak dapat membetulkannya dengan perisian kerana kami tidak tahu bila sebenarnya gangguan itu berlaku. Itulah sebabnya dalam kod anda akan melihat banyak arahan nop. Sekarang saya cukup yakin bahawa gangguan akan jatuh pada arahan nop. Sekiranya saya menambah 2000 nop saya mempunyai 0, 05% untuk jatuh pada arahan rjmp.
Perkara lain yang perlu diingat. Apabila gangguan berlaku. Penyusun melakukan banyak tolakan dan tarikan. Tetapi bilangannya selalu sama. Jadi sekarang kita boleh melakukan pembetulan perisian.
Untuk membuat kesimpulan mengenai perkara ini:
Ketepatan untuk pelet purata 1000 kaki / s adalah 0, 01%
100x lebih tepat daripada 1% lain di pasaran. Kekerapan lebih tinggi dan dengan TCXO, lebih tepat
Sebagai contoh, 1% daripada 1000 kaki / s lebih kurang 10 kaki / s. Ini perbezaan yang sangat besar.
Langkah 3: Skema dan Senarai Bahagian
Di sini saya melaksanakan litar hidup / mati satu butang tekan saya. (lihat arahan terakhir saya) Litar ini sangat berguna dan berfungsi dengan baik.
Saya menggunakan atmega328p. Yang ini diprogramkan dalam C.
Paparan adalah serasi 2 baris lcd HD44780 standard. Mod 4 bit digunakan.
Pengatur 3.3v digunakan untuk memberikan voltan ke TCXO 20mhz.
D1 adalah untuk lampu latar lcd. Pilihan. Bateri akan bertahan lebih lama jika anda tidak memasang D1.
Semua perintang dan penutup adalah pakej 0805
C1.1uf 25v
C2 1uf 16v
C3 2.2uf 10v
C4.1uf
C5.1uf
C6.1uf
C7 1uf
C8.1uf
C9.1uf
C10.1uf
D1 1n4148 SM SOT123
D2 5.1v SOT123
IC1 ATMEGA328p
IC2 MIC5225-5.0YM5-TR TPS70950DBVT SOT23-DBV
OSC1 TXETDCSANF-20.000000
R1 1M
R2 1M
R4 2.2k
R5 160
R6 160
R7 1M
R8 1M
U1 MIC5317-3.3 MIC5317 SOT23-5
U2 DMG6601LVT DMG6601LVT SOT23-6
Paparkan lcd 2 baris HD44780. Tidak perlu membeli modul i2c.
Sensor:
2x Emitter OP140A
2x Penerima OPL530
Encoder: PEC11R-4215K-S0024 * Jangan lupa untuk menambah perintang 4x 10k dan 2x.01uf untuk melakukan penapis pengekod. lihat gambar di bawah
Langkah 4: Fail Gerber PCB
Berikut adalah fail gerber
Langkah 5: Selesaikan Pcb Anda
Dengan bantuan skematik, pateri semua komponen anda di pcb. Setiap bahagian atau ditulis pada pcb, r1, r2 … dan sebagainya.
Saya tidak memasang D1. Ini untuk lampu belakang lcd. Ia cantik tetapi jangka hayat bateri terjejas. Oleh itu, saya memilih untuk mematikan lampu belakang lcd.
Langkah 6: Memprogram Atmega328p
Lihat di sini pada langkah 12 untuk memprogram atmega328p. Saya sediakan di sini fail.hex untuk ini.
Inilah program avrdude yang siap diprogramkan dalam kumpulan fail. Cuma klik pada program usbasp.bat dan usbasp anda dipasang dengan betul. Semua akan dilakukan secara automatik termasuk fuse bit.
1drv.ms/u/s!AnKLPDy3pII_vXaGPIZKMXxaXDul?e…
Dalam projek ini saya berkongsi juga kod sumber C. Ketahuilah bahawa beberapa catatan di dalamnya boleh dalam bahasa Perancis.https://1drv.ms/u/s! AnKLPDy3pII_vXUMXHdxajwGRFJx? E…
Langkah 7: Paparan Lcd
Pasang sedikit pita dan sambungkan pcb dan lcd bersama
Langkah 8: Fail STL
fail stl
1drv.ms/u/s!AnKLPDy3pII_vgezy0i0Aw3nD-xr?e…
Sokongan diperlukan untuk penutup, paip sensor dan pemegang senapang.
Saya semua telah dicetak pada ketinggian.2 mm.
Langkah 9: PENGENALAN ROTARY
Pengekod putar ini disambungkan ke penyambung isp. ia digunakan untuk menukar berat pelet dan menghidupkan dan mematikan peranti.
pin isip vcc 2 (tarik ke atas perintang)
Terminal A (kuning) menuju ke pin 1 ISP
Terminal B (hijau) pergi ke pin 3 ISP
Pin CP Terminal C (gnd) 6
Saya menambah 2 gambar untuk melihat perbezaan antara mempunyai penapis berbanding tanpa penapis. Anda dapat melihat perbezaan antara keduanya dengan mudah.
Butang tekan pergi ke penyambung SW pcb.
Langkah 10: Paip Sensor
PENTING:
Paip sensor mestilah Hitam dan penerima sensor mesti disembunyikan
Percubaan pertama saya adalah mempunyai paip merah yang cantik. Tetapi ini sukar! Itu sama sekali tidak berfungsi. Saya tahu bahawa cahaya luar masuk membuang plastik dan sensor penerima sentiasa menyala.
Untuk mendapat hasil yang baik saya tidak mempunyai pilihan untuk menukar warna menjadi hitam.
Pasang penerima di bahagian atas. Dan sembunyikan plastik jernih dengan cat hitam, pita atau gusi, silikon hitam.
Pasang pemancar di bahagian bawah.. Periksa dengan pen jika sensor bertindak balas dengan baik. Mungkin lubang pemancar perlu diperbesarkan sedikit. ia bergantung pada penentukuran pencetak anda.
Saya juga memperoleh hasil yang lebih baik. Elakkan cahaya matahari langsung.
Langkah 11: Alternatif Paip Sensor
Sekiranya anda tidak mempunyai pencetak 3d, anda boleh melakukan perkara yang sama dengan paip tembaga. Ia akan berfungsi dengan baik. Perkara yang sukar dilakukan ialah lubang tepat 3 inci dan penerima dan pemancar mesti sejajar.
Langkah 12: Pelet pada Osiloskop dan Penentukuran
Ini adalah pelet sebenar yang melempar paip. Probe 1 kuning adalah sensor 1. Probe 2 ungu adalah sensor 2.
Masa / div adalah 50 kita.
Kita boleh mengira 6 pembahagian 50us. 50 kita x 6 = 300 kita (untuk 3 inci). 300 us x 4 = 1.2 ms untuk 1 kaki
1 / 1.2ms = 833.33 kaki / dtk
Kita juga dapat melihat bahawa sensor biasanya pada 5v. Dan bolehkah kita menyekat cahaya pemancar, sensor jatuh ke 0.
Ini cara anda memulakan dan menghentikan konternya (pemasa1)
Tetapi untuk mengetahui sama ada kelajuannya tepat, saya memerlukan kaedah untuk mengatasi ini.
Untuk melakukan penentukuran perisian dan menguji ketepatan peranti ini, saya menggunakan pengayun rujukan 10 mhz. Lihat GPSDO saya pada arahan lain.
Saya memberi makan atmega328 lain dengan 10 mhz ini. Dan atur satu ini dalam assembler untuk menghantar saya 2 denyutan setiap kali saya menekan butang untuk mensimulasikan pelet. Sama seperti yang kita lihat dalam gambar tetapi sebagai gantinya mempunyai pelet sebenar, ia adalah satu lagi uC yang menghantar saya 2 denyutan.
Setiap kali butang tekan ditekan 1 denyut dihantar dan tepat 4 ms setelah denyutan lain dihantar.
Dengan cara ini, saya dapat mengimbangi penyusun perisian agar sentiasa ditampilkan 1000 kaki / saat.
Langkah 13: Lagi …
Ini adalah prototaip pertama saya pada tahun 2010.
Untuk sebarang pertanyaan atau laporan ralat, anda boleh menghantar e-mel kepada saya. Inggeris atau perancis. Saya akan melakukan yang terbaik untuk membantu.
Disyorkan:
Pengesanan Pencemaran Udara + Penapisan Udara: 4 Langkah
Pengesanan Pencemaran Udara + Penapisan Udara: Pelajar (Aristobulus Lam, Victor Sim, Nathan Rosenzweig dan Declan Loges) dari Sekolah Antarabangsa Swiss Jerman bekerjasama dengan kakitangan MakerBay untuk menghasilkan sistem pengukuran pencemaran udara dan keberkesanan penapisan udara yang bersepadu. Ini
Senapang Tindakan Storm 220 V1.7 Knex Bolt .: 10 Langkah
Senapang Aksi Knorm Bolt Storm 220 V1.7: Ini adalah pistol knex baru saya, ribut 220. Ia direka khas untuk penampilan, tetapi berfungsi dengan baik, dan mempunyai jangkauan yang baik. Saya tidak akan mengatakan bersikap baik, walaupun ini adalah Instructable pertama saya, kerana saya rasa orang berhak mendapat pendapat mereka
Senapang Semi Auto Storm 222 V1.1 Knex Pseudo: 6 Langkah
The Storm 222 V1.1 Knex Pseudo Semi Auto Rifle: Hai kawan, ini adalah arahan ketiga saya, dan yang ketiga dari lima dalam siri ribut. Saya percaya bahawa senapang ini adalah yang pertama seumpamanya. Ia menggunakan mekanisme yang saya ciptakan, dan yang serupa dengan ini dikeluarkan oleh penemu pisang, tetapi menggunakan sa
Senapang Knex "XFN Snowflak3": 9 Langkah
Knif Rifle "XFN Snowflak3": The XFN Snowflak3: Senapang yang mempunyai konsep umum yang sama selama dua tahun. Senapang tiub dan tongkat sederhana dengan sistem blok trig.Pros: Sangat tepat Kuat (boleh menembusi 6- 8 helai kadbod bergelombang) Cukup mudah dibuat, mudah
Senapang Sub-mesin Marshmallow Bertenaga Udara: 8 Langkah
Air-Power Marshmallow Sub-machine Gun: Dalam arahan ini, saya akan menunjukkan kepada anda cara membuat senapang mesin berkuasa udara. Ia cepat dan senang dibuat