İçindekiler:
- Adım 1: Malzemeleri Toplayın
- Adım 2: Devreyi Birleştirin
- Adım 3: MCU'da PWM'yi kurun
- Adım 4: Mikrodenetleyiciyi Programlayın
- Adım 5: Seri Bağlantı Noktası İletişimi
Video: Servo Squirter - USB Su Tabancası: 5 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:22
USB kontrollü servo su tabancası. Yoldan geçenlere ateş etmek veya can sıkıcı soruları olan insanları uzak tutmak için harika. Bu proje, yönlü ateşleme için bir servo üzerine monte edilmiş küçük bir su pompasıdır. Her şey bir mikro denetleyici tarafından yönetilir ve klavyenizden USB üzerinden kontrol edilir. Daha fazla projemizi ve ücretsiz video eğitimlerini görmek için web sitemizi ziyaret edin
Adım 1: Malzemeleri Toplayın
Bu proje mikrodenetleyici tabanlıdır. USB NerdKit'te bulunan ATmega168 mikrodenetleyici dışında. Bu proje için aşağıdakileri kullandık:1 Hobby Servo, Hitec HS-501 Alçak gerilim pistonlu su pompası1 Küçük n-channel MOSFET, 2N7000
Adım 2: Devreyi Birleştirin
Devremizin ilk kısmı sadece servoya bağlanır. Bu burada basittir: mikrodenetleyiciden servoya bir tel. Üreticiye bağlı olarak birkaç farklı renk etiketi vardır, bu yüzden bunu denemeden önce kontrol edin. NerdKits devre tahtasındaki ServoSquirter devresinin şematik fotoğrafı Devrenin ikinci kısmı, mikro denetleyicinin pompa motorunu açıp kapatmasını sağlar. ATmega168 çipinin kendisi herhangi bir pime maksimum 40mA giriş ve çıkışa izin verir, ancak pompamız 1000mA'ya daha yakın gerektirir! Bu daha büyük yükü kontrol etmek için daha büyük bir transistör olan 2N7000'i kullanmayı seçtik. İlk önce MOSFET'leri (Metal Oksit Yarı İletken Alan Etkili Transistörler) anahtar olarak kullanmanın temellerini açıklıyoruz: Kapı voltajını Kaynağın üzerine getirerek akımın Dren'den Kaynağa akmasına izin verebiliriz. 2N7000 veri sayfasından, farklı geçit kaynağı voltajı ayarları için boşaltma akımı ve boşaltma kaynağı voltajı arasındaki ilişkiyi gösteren Şekil 1'i çıkardık. Bu grafikten öğrenebileceğiniz birkaç önemli şey vardır: 1. Yaklaşık 3,0 voltun altındaki VGS için hiçbir akımın akmasına izin verilmez. Bu, "kesme" olarak da adlandırılan kapalı durumdur. 2. Küçük VDS için, eğri orijin boyunca kabaca doğrusal görünür -- bu da elektriksel olarak bir direnç gibi "göründüğü" anlamına gelir. Eşdeğer direnç, eğrinin ters eğimidir. MOSFET işleminin bu bölgesine "triyot" denir. 3. Daha büyük VDS için, bir maksimum akım seviyesine ulaşılır. Buna "doygunluk" denir. 4. VGS'yi artırdıkça, hem triyot hem de doyma modlarında daha fazla akımın akmasına izin verilir. Ve şimdi aslında MOSFET çalışmasının üç modunu da öğrendiniz: kesme, triyot ve doyma. Çünkü kapı kontrolümüz dijital (+5 veya 0), VGS=5V için yalnızca sarı ile vurgulanan eğriyle ilgileniyoruz. Normalde, bir MOSFET'i bir anahtar olarak kullanmak, genellikle üçlü çalışma modunu içerir, çünkü MOSFET, gücü PD=ID*VDS dağıtır ve iyi bir anahtar, anahtarın kendisinde çok az güç harcar. Ancak bu durumda, bir motorla uğraşıyoruz ve motorlar, ilk çalışmaya başladıklarında çok fazla akım (küçük voltaj düşüşü ile) gerektirme eğilimindedir. Bu nedenle, ilk veya iki saniye için, MOSFET yüksek VDS ile çalışacak ve maksimum akımı ile sınırlı olacaktır - veri sayfasında çizdiğimiz kırmızı kesikli çizgiden yaklaşık 800mA. Bunun pompayı çalıştırmak için yeterli olmadığını gördük, bu yüzden küçük bir numara kullandık ve iki MOSFET'i paralel koyduk. Bu şekilde akımı paylaşırlar ve yaklaşık 1600mA'yı etkili bir şekilde birlikte batırabilirler. Ayrıca pompanın yüksek güç gereksinimleri nedeniyle, daha yüksek akım çıkışlı bir duvar trafosu kullandık. 5V'tan büyük çıkışlı bir duvar transformatörünüz varsa - belki 9V veya 12V - o zaman
Adım 3: MCU'da PWM'yi kurun
PWM Kayıtları ve HesaplamalarıVideoda timer/counter modülü tarafından kullanılan iki seviyeden bahsediyoruz: üst değer ve karşılaştırma değeri. Bunların her ikisi de istediğiniz PWM sinyalinin üretilmesinde önemlidir. Ancak ATmega168'in PWM çıkışını aktif hale getirmek için ilk etapta birkaç register kurmamız gerekiyor. İlk olarak, en yüksek değer olarak OCR1A ile Hızlı PWM modunu seçiyoruz, bu da keyfi olarak yeni bir darbenin ne sıklıkta başlatılacağını belirlememize izin veriyor. Ardından, saati 8'lik bir ön bölme ile çalışacak şekilde ayarladık, bu da sayacın artacağı anlamına gelir. 1 her 8/(14745600 Hz) = 542 nanosaniye. Bu zamanlayıcı için 16 bitlik kayıtlarımız olduğundan, bu, toplam sinyal periyodumuzu 65536*542ns = 36 milisaniye kadar yüksek bir değere ayarlayabileceğimiz anlamına gelir. Daha büyük bir bölme numarası kullansaydık, nabızlarımızı birbirinden uzaklaştırabilirdik (ki bu bu durumda yardımcı olmaz) ve çözünürlüğü kaybederiz. Daha küçük bir bölme numarası (1 gibi) kullansaydık, servomuzun beklediği gibi darbelerimizi en az 16 milisaniye aralıklarla yapamazdık. Son olarak, "ters çevirmeyen" bir PWM için Çıktıyı Karşılaştır modunu ayarladık. videomuzda açıklanan çıktı. Ayrıca PB2 pinini bir çıkış pini olarak ayarladık -- burada gösterilmemiştir, ancak koddadır. Bu görüntüleri ATmega168 veri sayfasının 132-134. sayfalarından, kayıt değeri seçimlerimiz vurgulanmış olarak büyütmek için tıklayın:
Adım 4: Mikrodenetleyiciyi Programlayın
Şimdi MCU'yu gerçekten programlamanın zamanı geldi. Kaynak kodunun tamamı https://www.nerdkits.com/videos/servosquirter adresindeki web sitemizde verilmiştir. Kod önce servoyu sürmek için PWM'yi kurar. Kod daha sonra kullanıcı girdisini bekleyen bir süre döngüsünde oturur. 1 ve 0 karakterleri, pompa transistörüne bağlı MCU pinini açar veya kapatır. Bu, pompayı açıp kapatacak ve bize istediğimiz zaman ateşleme yeteneği verecek. Kod ayrıca '[' ve ']' tuşlarına da yanıt verir, bu tuşlar PWM pinindeki karşılaştırma değerini artıracak veya azaltacaktır, bu da servoya neden olacaktır. konumu değiştirmek için motor. Bu size ateş etmeden önce nişan alma yeteneği verir.
Adım 5: Seri Bağlantı Noktası İletişimi
Son adım, komutları Mikrodenetleyiciye gönderebilmeniz için bilgisayarı kurmaktır. NerdKit'te bilgisayara komut ve bilgi göndermek için seri kablo kullanıyoruz. Çoğu programlama dilinde seri port üzerinden NerdKit ile iletişim kurabilen basit programlar yazmak mümkündür. Ancak bizim için seri iletişimi yapmak için bir terminal programı kullanmak çok daha kolaydır. Bu şekilde sadece klavyede yazabilir ve NerdKit'ten gelen yanıtı görebilirsiniz. WindowsWindows XP veya önceki bir sürümünü kullanıyorsanız, HyperTerminal dahildir ve Başlat Menünüzde "Başlat -> Programlar -> Donatılar -> altında olmalıdır. iletişim". HyperTerminal'i ilk açtığınızda, bir bağlantı kurmanızı ister. Ana HyperTerminal ekranına gelene kadar bunlardan vazgeçin. HyperTerminal'i kurmanız, doğru COM bağlantı noktasını seçmeniz ve bağlantı noktası ayarlarını NerdKit ile çalışacak şekilde ayarlamanız gerekir. Doğru HyperTerm kurulumunu elde etmek için aşağıdaki ekran görüntülerini izleyin. Windows Vista kullanıyorsanız, HyperTerminal artık dahil değildir. Bu durumda, PuTTY'yi (Windows yükleyici) indirin. Uygun COM portunu kullanarak Putty'yi kurmak için aşağıdaki bağlantı ayarlarını kullanın. Mac OS XTerminal uygulamasına girdikten sonra seri port üzerinden haberleşmeye başlamak için "screen /dev/tty. PL* 115200" yazın. LinuxOn Linux'ta "kullanıyoruz" minicom" seri portla konuşmak için. Başlamak için, minicom'un kurulum menüsüne girmek için konsolda "minicom -s" komutunu çalıştırın. "Seri Bağlantı Noktası Kurulumu"na gidin. Parametreleri aşağıdaki gibi ayarlayın: Linux'ta Minicom konfigürasyonuArdından, escape tuşuna basın ve ayarları varsayılan olarak kaydetmek için "Kurulumu dfl olarak kaydet"i kullanın. Artık "Çıkış"a basabilmeli ve NerdKit ile konuşmak için minicom'u kullanabilmelisiniz.
Önerilen:
Lazer Kesimli Işın Tabancası Montaj Talimatlarım: 10 Adım
Lazer Kesimli Işın Tabancası Montaj Talimatlarım: Gecikme için özür dilerim, işte Lazer Pointer Işın Tabancasının nasıl monte edileceğine dair gecikmiş Talimatlarım, Vektör çizim planlarını satın alabilir, yaptırabilirsiniz… CNC'de Lazer Kesici!https://cults3d.com/en/3d-model/gadget/ray-gunİşte böyle
4'ü 1 Arada KUTU (Güneş Şarjlı Şok Tabancası, Güç Bankası, LED Işık ve Lazer): 5 Adım (Resimlerle)
4'ü 1 Arada KUTU (Solar Rechargeable Stun Gun, Power Bank, LED Light & Laser): Bu projede 4 in 1 Solar Rechargeable Stun Gun, Power Bank, LED Light & Lazer hepsi bir arada kutu. Bu projeyi yaptım çünkü istediğim tüm cihazları kutuya eklemek istiyorum, hayatta kalma kutusu gibi, büyük kapasiteli
Arduino Kızılötesi Termometre Tabancası MDF Kılıfı: 4 Adım (Resimli)
Arduino Kızılötesi Termometre Tabancası MDF Kılıfı: Bu proje Arduino ile kızılötesi termometre yapmak içindir, devre piyasada bulunan medikal bir kızılötesi termometreye benzeyen MDF kılıfına konur. Sensör kızılötesi termometre GY-906 nesne sıcaklığını temassız ölçmek için kullanılır, anlamına gelebilir
Ses Efektli Işın Tabancası V2: 17 Adım (Resimlerle)
Ses Efektli Işın Tabancası V2: Geçenlerde bir hurda dükkanında eski bir tatbikatla karşılaştım ve onu gördüğüm anda ondan bir ışın tabancası yapmam gerektiğini anladım. Şimdi birkaç ışın tabancası yaptım ve her zaman bulunan bir nesneden ilham alarak başlarlar. Diğer yapımlarıma da buradan göz atabilirsiniz
Arduino Karton Tabancası(RangeFinder &Takometre): 8 Adım
Arduino Karton Tabancası(RangeFinder &Takometre): Kanepede rahatça otururken mesafeyi ölçebilmek harika olmaz mıydı? Geleneksel bant kullanmak yerine? Bu yüzden bugün 2cm'den 400cm w'ye kadar olan mesafeleri temassız olarak ölçebilen bir arduino tabancası yapacağım