İçindekiler:

Servo Squirter - USB Su Tabancası: 5 Adım
Servo Squirter - USB Su Tabancası: 5 Adım

Video: Servo Squirter - USB Su Tabancası: 5 Adım

Video: Servo Squirter - USB Su Tabancası: 5 Adım
Video: Arduino nano project with SERVO MOTOR | SERVO MOTOR Tutorial [Code and Circuit Diagram] 2024, Kasım
Anonim
Servo Squirter - USB Su Tabancası
Servo Squirter - USB Su Tabancası

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

Malzemeleri Toplayın
Malzemeleri Toplayın
Malzemeleri Toplayın
Malzemeleri Toplayın
Malzemeleri Toplayın
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

Devreyi Birleştirin
Devreyi Birleştirin
Devreyi Birleştirin
Devreyi Birleştirin
Devreyi Birleştirin
Devreyi Birleştirin
Devreyi Birleştirin
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

MCU'da PWM'yi Ayarlayın
MCU'da PWM'yi Ayarlayın
MCU'da PWM'yi Ayarlayın
MCU'da PWM'yi Ayarlayın
MCU'da PWM'yi Ayarlayın
MCU'da PWM'yi Ayarlayın

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

Seri Bağlantı Noktası İletişimi
Seri Bağlantı Noktası İletişimi
Seri Bağlantı Noktası İletişimi
Seri Bağlantı Noktası İletişimi
Seri Bağlantı Noktası İletişimi
Seri Bağlantı Noktası İletişimi
Seri Bağlantı Noktası İletişimi
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: