Daftar Isi:

Servo Squirter - Pistol Air USB: 5 Langkah
Servo Squirter - Pistol Air USB: 5 Langkah

Video: Servo Squirter - Pistol Air USB: 5 Langkah

Video: Servo Squirter - Pistol Air USB: 5 Langkah
Video: Before safety was invented... 2024, November
Anonim
Servo Squirter - Pistol Air USB
Servo Squirter - Pistol Air USB

Pistol air servo yang dikendalikan USB. Bagus untuk menembaki orang yang lewat, atau menjaga orang dengan pertanyaan yang mengganggu. Proyek ini adalah pompa air kecil yang dipasang di atas servo untuk penembakan terarah. Semuanya digerakkan oleh mikrokontroler, dan dikendalikan dari keyboard Anda melalui USB. Untuk melihat lebih banyak proyek kami dan tutorial video gratis, lihat situs web kami

Langkah 1: Kumpulkan Bahan

Kumpulkan Bahannya
Kumpulkan Bahannya
Kumpulkan Bahannya
Kumpulkan Bahannya
Kumpulkan Bahannya
Kumpulkan Bahannya

Proyek ini berbasis mikrokontroler. Selain mikrokontroler ATmega168 yang disertakan dalam USB NerdKit. Untuk proyek ini kami menggunakan yang berikut: Servo Hobby, Hitec HS-501 Pompa air piston tegangan rendah1 MOSFET n-channel kecil, 2N7000

Langkah 2: Merakit Sirkuit

Merakit Sirkuit
Merakit Sirkuit
Merakit Sirkuit
Merakit Sirkuit
Merakit Sirkuit
Merakit Sirkuit
Merakit Sirkuit
Merakit Sirkuit

Bagian pertama dari sirkuit kami hanya terhubung ke servo. Ini sederhana di sini: satu kabel dari mikrokontroler ke servo. Ada beberapa pelabelan warna yang berbeda tergantung pada pabrikannya, jadi periksalah sebelum mencoba ini. Foto Skema rangkaian ServoSquirter pada papan tempat memotong roti NerdKitsBagian kedua dari rangkaian memungkinkan mikrokontroler untuk menghidupkan dan mematikan motor pompa. Chip ATmega168 itu sendiri hanya memungkinkan 40mA max masuk atau keluar dari pin apa pun, tetapi pompa kami membutuhkan lebih dekat ke 1000mA! Jadi untuk mengontrol beban yang lebih besar ini, kami memilih untuk menggunakan transistor yang lebih besar, 2N7000. Pertama kami menjelaskan dasar-dasar penggunaan MOSFET (Transistor Efek Medan Semikonduktor Logam Oksida) sebagai sakelar: membawa tegangan Gerbang di atas Sumber, kami dapat mengizinkan arus mengalir dari Tiriskan ke Sumber. Dari lembar data 2N7000, kami telah mengekstrak Gambar 1, yang menunjukkan hubungan antara arus saluran dan tegangan sumber saluran untuk pengaturan tegangan sumber gerbang yang berbeda. Ada beberapa hal penting yang dapat Anda pelajari dari grafik ini: 1. Untuk VGS di bawah sekitar 3,0 volt, arus tidak diperbolehkan mengalir. Ini adalah keadaan off, juga disebut "cutoff". 2. Untuk VDS kecil, kurva terlihat secara kasar linier melalui titik asal -- yang berarti secara elektrik "terlihat" seperti resistor. Resistansi ekivalen adalah kebalikan kemiringan kurva. Wilayah operasi MOSFET ini disebut "triode". 3. Untuk VDS yang lebih besar, beberapa tingkat arus maksimum tercapai. Ini disebut "kejenuhan". 4. Saat kita meningkatkan VGS, lebih banyak arus diperbolehkan mengalir baik dalam mode triode dan saturasi. Dan sekarang Anda telah benar-benar belajar tentang ketiga mode operasi MOSFET: cutoff, triode, dan saturation. Karena kontrol gerbang kita adalah digital (+5 atau 0), kami hanya memperhatikan kurva yang disorot dengan warna kuning, untuk VGS=5V. Biasanya, menggunakan MOSFET sebagai sakelar umumnya melibatkan mode operasi triode, karena MOSFET menghilangkan daya PD=ID*VDS, dan sakelar yang baik harus membuang sedikit daya di sakelar itu sendiri. Tetapi dalam kasus ini, kita berurusan dengan motor, dan motor cenderung membutuhkan banyak arus (dengan sedikit penurunan tegangan) saat pertama kali dihidupkan. Jadi untuk satu atau dua detik pertama, MOSFET akan beroperasi dengan VDS tinggi, dan akan dibatasi oleh arus maksimumnya -- sekitar 800mA dari garis putus-putus merah yang telah kita gambar di lembar data. Kami menemukan bahwa ini tidak cukup untuk memulai pompa, jadi kami menggunakan sedikit trik dan menempatkan dua MOSFET secara paralel. Dengan cara ini, mereka berbagi arus, dan dapat secara efektif menenggelamkan sekitar 1600mA bersama-sama. Juga karena kebutuhan daya pompa yang tinggi, kami menggunakan transformator dinding dengan keluaran arus yang lebih tinggi. Jika Anda memiliki trafo dinding dengan keluaran lebih besar dari 5V -- mungkin 9V atau 12V -- maka Anda dapat

Langkah 3: Atur PWM di MCU

Siapkan PWM di MCU
Siapkan PWM di MCU
Siapkan PWM di MCU
Siapkan PWM di MCU
Siapkan PWM di MCU
Siapkan PWM di MCU

Register dan Perhitungan PWM Dalam video, kita berbicara tentang dua level yang digunakan oleh modul timer/counter: nilai teratas, dan nilai perbandingan. Kedua hal ini penting dalam membangkitkan sinyal PWM yang Anda inginkan. Tetapi untuk mengaktifkan output PWM ATmega168 Anda terlebih dahulu, kita harus menyiapkan beberapa register. Pertama, kami memilih mode Fast PWM dengan OCR1A sebagai nilai teratas, yang memungkinkan kami secara sewenang-wenang mengatur seberapa sering memulai pulsa baru. Kemudian, kami mengatur jam untuk berjalan dengan pra-pembagian 8, yang berarti penghitung akan meningkat dengan 1 setiap 8/(14745600 Hz) = 542 nanodetik. Karena kami memiliki register 16-bit untuk pengatur waktu ini, ini berarti kami dapat mengatur periode sinyal keseluruhan kami setinggi 65536*542ns = 36 milidetik. Jika kami menggunakan nomor pembagian yang lebih besar, kami dapat membuat pulsa kami lebih jauh (yang tidak membantu dalam situasi ini), dan kami akan kehilangan resolusi. Jika kita menggunakan nomor pembagian yang lebih kecil (seperti 1), kita tidak akan dapat membuat pulsa kita terpisah setidaknya 16 milidetik, seperti yang diharapkan servo kita. Akhirnya, kita mengatur mode Bandingkan Output untuk PWM "non-inverting". output, yang dijelaskan dalam video kami. Kami juga menyetel pin PB2 menjadi pin keluaran -- tidak ditampilkan di sini, tetapi ada di dalam kode. Klik untuk memperbesar bidikan ini dari halaman 132-134 lembar data ATmega168, dengan pilihan nilai register kami disorot:

Langkah 4: Program Mikrokontroler

Sekarang saatnya untuk benar-benar memprogram MCU. Kode sumber lengkap disediakan di situs web kami https://www.nerdkits.com/videos/servosquirterKode pertama-tama mengatur PWM untuk menggerakkan servo. Kode kemudian hanya duduk di loop sementara menunggu input pengguna. Karakter 1 dan 0 menghidupkan atau mematikan pin MCU yang terhubung ke transistor pompa. Ini akan menghidupkan dan mematikan pompa sehingga memberi kita kemampuan untuk menembak sesuka hati. Kode juga merespons tombol '[' dan ']'. Tombol ini akan menambah atau mengurangi nilai perbandingan pada pin PWM, yang akan menyebabkan servo motor untuk mengubah posisi. Ini memberi Anda kemampuan untuk membidik sebelum menembak.

Langkah 5: Komunikasi Port Serial

Komunikasi Port Serial
Komunikasi Port Serial
Komunikasi Port Serial
Komunikasi Port Serial
Komunikasi Port Serial
Komunikasi Port Serial
Komunikasi Port Serial
Komunikasi Port Serial

Langkah terakhir adalah mengatur komputer sehingga Anda dapat mengirim perintah ke Mikrokontroler. Di NerdKit, kami menggunakan kabel serial untuk mengirim perintah, dan informasi ke komputer. Dimungkinkan untuk menulis program sederhana dalam sebagian besar bahasa pemrograman yang dapat berkomunikasi melalui port serial ke NerdKit. Namun jauh lebih mudah menggunakan program terminal untuk melakukan komunikasi serial untuk kita. Dengan cara ini Anda cukup mengetik di keyboard, dan melihat respons dari NerdKit. WindowsJika Anda menggunakan Windows XP atau sebelumnya, HyperTerminal disertakan, dan seharusnya ada di Start Menu Anda di bawah "Start -> Programs -> Accessories -> Komunikasi". Saat pertama kali membuka HyperTerminal, ia meminta Anda untuk mengatur koneksi. Batalkan dari itu, sampai Anda berada di layar HyperTerminal utama. Anda harus mengatur HyperTerminal, memilih port COM yang benar, dan mengatur pengaturan port dengan tepat untuk bekerja dengan NerdKit. Ikuti screenshot di bawah ini untuk mendapatkan pengaturan HyperTerm yang benar. Jika Anda menggunakan Windows Vista, HyperTerminal tidak lagi disertakan. Dalam hal ini, unduh Putty (penginstal Windows). Gunakan pengaturan koneksi di bawah ini untuk mengatur Putty, menggunakan port COM yang tepat. Mac OS XSetelah memasuki aplikasi Terminal, ketik "screen /dev/tty. PL* 115200" untuk mulai berkomunikasi melalui port serial. LinuxDi Linux, kami menggunakan " minicom" untuk berbicara dengan port serial. Untuk memulai, jalankan "minicom -s" di konsol untuk masuk ke menu pengaturan minicom. Pergi ke "Pengaturan Port Serial". Atur parameternya sebagai berikut: Konfigurasi minicom di Linux Kemudian, tekan escape dan gunakan "Save setup as dfl" untuk menyimpan pengaturan sebagai default. Anda sekarang dapat menekan "Keluar" dan menggunakan minicom untuk berbicara dengan NerdKit.

Direkomendasikan: