- Alexa tabanlı Ses Kontrollü Roket Fırlatıcı - Çalışıyor
- NodeMCU Rocket Launch Controller için Launchpad
- Alexa Kontrollü Roketatar için Gerekli Bileşenler
- Arduino Roketatar Devre Şeması
- PerfBoard'da Devre Oluşturma
- Alexa Kontrollü Roketatar için Programlama NodeMCU
- Alexa'yı Alexa Android Uygulaması ile Yapılandırma
- Alexa Kontrollü Roket Fırlatıcı - Test
Kış mevsimi yaklaşırken; ışıklar festivalinin kutlandığı yılın o zamanı geliyor. Evet, dünya çapında kutlanan gerçek bir Hint festivali olan Diwali'den bahsediyoruz. Bu yıl, Diwali çoktan bitti ve insanları havai fişekleri gördüğümde, Alexa tabanlı Ses Kontrollü Roket Fırlatıcı veya Ateşleyici inşa etme fikrini buldum, sadece sesli komutla roket fırlatarak çocuklar için çok güvenli ve eğlenceli hale getirebilir.
Açıkça söylemek gerekirse, insanları Diwali'ye kraker atmaya teşvik etmek için burada değilim, Hindistan hükümeti kirliliği azaltmak için krakerlere kısıtlamalar getirdi ve buna uymak bizim sorumluluğumuzda. Buradaki fikir, bütün günü kraker ateşleyerek geçirmek yerine, havalı bir ses kontrollü Arduino roket ateşleyicisi yapalım ve birkaç roket fırlatalım. Bunu bir kazan-kazan olarak görüyorum.
Bu Arduino roketatar diğerlerinden çok farklı olacaktır. Kontrplaktan yapılmış çok sağlam bir şasiye, güvenilir bir röle tabanlı kontrol mekanizmasına ve roketlerin fırlatılması ve yeniden yüklenmesi için çok benzersiz bir mekanizmaya sahiptir, bu yüzden daha fazla gecikmeden, doğrudan yapım sürecine geçelim.
Alexa tabanlı Ses Kontrollü Roket Fırlatıcı - Çalışıyor
Devrenin çalışma mekanizması çok basittir, roketin fırlatılmasından sorumlu olan ana bileşen nikrom teldir ve bir ısıtma bobini şeklinde gelir. Bu nikrom tel, roket ateşleyicisi olarak görev yapacak . Nasıl? Sana sonra göstereceğim
Yukarıdaki görselde de görebileceğiniz gibi nikrom tel, ısıtıcı bobin şeklinde geliyor, benim için onu elde etmenin en kolay yolu buydu. Aşağıdaki resimde gösterildiği gibi görünen bir şekil oluşturmak için onu düz bir şekilde çekip bükmemiz gerekiyor.
Bunu yaptıktan sonra, 12V kurşun asit batarya ile çalıştıracağız ve kırmızı sıcak yanacak. Bu roketin içindeki kara barutun tutuşması için yeterli olacak ve normal bir sigorta dozu gibi çalışacaktır. Bunun yüksek güçlü bir roket fırlatma kontrolörü olduğu, teli kırmızı hale getirmek için gereken akımın yüksek olduğunu unutmayın. Yüksek akımlarla çalışırken güvenlik tavsiyelerine uyun.
Test tamamlandıktan sonra, geriye kalan tek şey, makalede ilerledikçe yapacağımız kontrol sürecidir.
NodeMCU Rocket Launch Controller için Launchpad
Bu derleme için bir fırlatma panosu yapalım. Başlatma panosu yapıldığında, bazı krakerleri kolayca yeniden yükleyebilir ve çok kolay bir şekilde başlatabiliriz. Aşağıda gösterilen resimde gösterilene benzeyen bir başlatma panosu oluşturdum.
Başlatma panosunu oluşturma sürecini adım adım inceleyelim. Çerçevenin iki tarafı için, iki (25X3X1.5) inç uzunluğunda kontrplak parçası kullandım. Üst kısım için, (20X3X1.5) inç uzunluğunda bir kontrplak parçası kullandım ve taban için biraz daha fazla stabilite sağlayacak (20X6X1.5) inç uzunluğunda bir kontrplak parçası kullandım. Aşağıdaki resim size net bir fikir verecektir.
Şimdi, roketimiz için bir sigorta görevi görecek nikrom tel bazlı filamentleri yapma zamanı. Bunun için 1000W'lık nikrom tel tabanlı ısıtma bataryası aldım, doğrultup aşağıda gösterilen yapıyı yaptım. Nikrom teli aşağıda gösterildiği gibi şekillendirmek için iki pense ve yan kesici kullanmak zorunda kaldım.
Bu yapıldıktan sonra, 20 inçlik kontrplak bloğu yedi parçaya böldüm ve nikrom tel bazlı filamentleri yerleştirmek için delikler açtım ve bir kez yapıldığında aşağıdaki resimlere benziyordu.
Ancak filamentleri yerleştirmeden önce her bir terminale 1 sq mm kalınlığında bakır tel taktım ve deliklerden geçirdim, her şey yapıldığında aşağıdaki görüntüdeki gibi görünüyordu.
Gördüğünüz gibi, teli ve filamentleri yerinde sabitlemek için iki bileşenli yapıştırıcı da koydum. Bunu yaptıktan sonra fırlatma rampamız tamamlandı. Ve bu bölümdeki ilk resimden de görebileceğiniz gibi, filaman tellerini doğrudan PCB'ye bağladım çünkü çok yüksek akımlarla uğraşıyoruz, bu yüzden bir vidalı terminal yerleştirme zahmetine girmedim ve bu şasimizin sonunu gösteriyor inşa süreci.
Alexa Kontrollü Roketatar için Gerekli Bileşenler
Eşyaların donanım tarafı için, yerel hobi mağazanızdan oldukça kolay bir şekilde alabileceğiniz çok genel parçalar kullandık, öğelerin tam listesi aşağıda verilmiştir.
- 12V-Röle - 3
- BD139 Transistör - 3
- 1N4004 Diyot - 3
- 5,08 mm Vidalı Klemens - 1
- LM7805 - Voltaj Regülatörü - 1
- 100 uF Dekuplaj Kapasitör - 2
- 5.1V Zener Diyot - 1
- NodeMCU (ESP8266-12E) Kartı - 1
- Noktalı Performans Tahtası - ½
- Bağlantı Teli - 10
Arduino Roketatar Devre Şeması
Alexa Kontrollü Roket Fırlatıcı için tam şema aşağıda verilmiştir. Bir pini diğerine bağlamak için etiketleri kullandım. Yeterince yakından bakarsanız, şematiği yorumlamak zor olmamalıdır.
Devre Yapısı oldukça basit, bu yüzden ayrıntılara çok fazla girmeyeceğim.
İlk olarak, C1 ve C2 ile gösterilen 100uF dekuplaj kapasitörlerine sahip bir LM7805 voltaj regülatörü olan IC1'e sahibiz. Bundan sonra, ESP-12E modülünü barındıran projemizin kalbi NodeMCU kartı var. Tüm devreye güç sağlamak için 12V kurşun-asit batarya kullandığımızdan, bu nedenle NodeMCU kartına güç sağlamak için LM7805'i ilk önce 12V'a 5V'a dönüştürmek için kullanmalıyız. Bunu yapıyoruz çünkü yerleşik AMS1117 voltaj regülatörü 12V'u doğrudan 3.3V'ye dönüştürmek için yeterli değil, bu yüzden 7805 gerekli.
Devam edersek, üç adet 12V rölemiz var, bu gösteri için üç röle kullanıyoruz, ancak daha önce de bahsettiğimiz gibi, fırlatma rampasında 7 roket için bir yer tutucu var. Kodu biraz değiştirebilir ve yedi roketi tamamen fırlatmak için yerleştirebilirsiniz. Üç röle, üç NPN transistörü olan bir T1, T2 ve T3 tarafından tahrik edilir ve bunlar gerçek bir yükün taşınması için yeterlidir. Son olarak, devreyi röle tarafından üretilen yüksek voltaj yükselmelerinden koruyan üç serbest diyotumuz var.
PerfBoard'da Devre Oluşturma
Ana görüntüden de görebileceğiniz gibi, fikir, testimize göre, kısa bir süre için büyük miktarda akımı idare edebilen basit bir devre yapmaktı, 800 milisaniye bir kağıt parçasını aydınlatmak için yeterlidir. Bu nedenle, devreyi bir tahta parçası üzerine inşa ediyoruz ve tüm ana bağlantıları 1 sq mm kalınlığında bakır telle bağlarız. Kartı lehimlemeyi bitirdikten sonra. Bitirdiğimizde, aşağıda gösterilen bir şeye benziyordu.
Alexa Kontrollü Roketatar için Programlama NodeMCU
Donanım artık hazır olduğuna göre, Alexa tabanlı ses kontrollü roketatarımız için kodlamaya başlama zamanı. Kodun tamamı bu sayfanın sonunda bulunabilir, ancak başlamadan önce gerekli kitaplıkları Arduino IDE'nize eklemek önemlidir. Aşağıda verilen bağlantıdan doğru kitaplıkları eklediğinizden emin olun, aksi takdirde kod derlendiğinde hata verecektir.
- Espalexa Kütüphanesini İndirin
Gerekli kitaplıkları ekledikten sonra, devrenin çalışıp çalışmadığını kontrol etmek için bu sayfanın altında verilen kodu doğrudan yükleyebilirsiniz. Kodun nasıl çalıştığını öğrenmek istiyorsanız okumaya devam edin.
Her zaman olduğu gibi, programa gerekli başlık dosyalarını ekleyerek ve hotspot'umuz için pin adlarını ve kimlik bilgilerini tanımlayarak başlıyoruz.
#Dahil etmek
Kodumuzla devam ederken, işlev prototiplerimiz ve geri arama işlevi tanımlarımız var.
İşlev connectToWiFi () , Wi-Fi ağına bağlanmak için kullanılır ve bu işlev, Wi-Fi başarıyla bağlandığında doğruya döner.
Daha sonra geri arama fonksiyonlarımız var, bu fonksiyonlar Alexa'ya bir komut verdiğimizde çağrılacak, espalexa API bu fonksiyonları yerine getiriyor
void allrockets (uint8_t parlaklık); void firstrocket (uint8_t parlaklık); geçersiz ikinci roket (uint8_t parlaklık); void thirdrocket (uint8_t parlaklığı);
Ardından, Cihaz Adlarını tanımlıyoruz. Tanımlanan bu cihaz adları Alexa uygulamasına yansıyacak ve bir komut söylediğimizde Alexa cihazları bu isimlerle tanıyacaktır. Bu yüzden bu isimler çok önemli.
// Cihaz adları String First_Device_Name = "Tüm Roketler"; String Secound_Device_Name = "Rocket One"; String Third_Device_Name = "Rocket Two"; String Forth_Device_Name = "Rocket Three";
Ardından, Wi-Fi'nin bağlantı durumunu tutacak bir boole değişkeni wifiStatus tanımlıyoruz. Son olarak, bir Espalexa nesnesi espalexa oluşturuyoruz. NodeMCU'yu yapılandırmak için bu nesneyi kullanacağız.
// wifi durum kontrolü boole wifiStatus = false; // Espalexa Nesnesi Espalexa espalexa;
Ardından, void kurulum () bölümümüz var. Bu bölümde, Serial.begin () fonksiyonu ile hata ayıklama için seri iletişimi başlatıyoruz . Biz birlikte çıktı olarak önce tanımlanmış tüm işaretçilerine set pinMode () diyoruz sonraki fonksiyonu, connectToWiFi () , onu yapmazsa doğru dönecek, buna bağlıysa onbeş kez Wi-Fi bağlanmaya çalışacaktır işlevi bağlanırsanız, yanlış döndürür ve kod sonsuza kadar while () döngüsünü yürütür. Wi-Fi bağlantısı başarılı olursa, espalexa.addDevice () fonksiyonunu kullanarak önceden tanımlanmış cihazları Alexa nesnesine ekleriz.Bu fonksiyon iki argüman alır, ilki Cihaz Adı, İkincisi, geri arama işlevinin adıdır, Alexa'ya bir komut verdiğimizde, bitişik işlev çağrılacaktır. Dört cihazımız için de yapmayı bitirdiğimizde, espalexa nesnesi için begin () yöntemlerini çağırıyoruz.
geçersiz kurulum () {Serial.begin (115200); // Hata ayıklama mesajları için Seri'yi etkinleştirin pinMode (ROCKET_1_PIN, OUTPUT); // ESP pinlerini çıkış pinMode olarak ayarla (ROCKET_2_PIN, OUTPUT); // ESP pinlerini çıkış pinMode olarak ayarlayın (ROCKET_3_PIN, OUTPUT); // ESP pinlerini çıktı olarak ayarla wifiStatus = connectToWiFi (); // if (wifiStatus) ise yerel Kablosuz Ağa bağlanın {// tüm espalexa cihazlarını kurun // Cihazlarınızı burada tanımlayın. espalexa.addDevice (First_Device_Name, allrockets); // en basit tanım, espalexa.addDevice kapalı varsayılan durum (Secound_Device_Name, firstrocket); espalexa.addDevice (Third_Device_Name, secondrocket); espalexa.addDevice (Forth_Device_Name, thirdrocket); espalexa.begin (); } else {while (1) {Seri. println ("WiFi'ye bağlanılamıyor. Lütfen verileri kontrol edin ve ESP'yi sıfırlayın."); gecikme (2500); }}}
In döngü bölümünde, dediğimiz döngü () her zaman herhangi bir gelen komuta kontrol ve doğru bulursa geri çağırma işlevi arayacak espalexa nesnenin yöntemini.
boşluk döngüsü () {espalexa.loop (); gecikme (1); }
Daha sonra, tüm geri arama işlevlerimizi tanımlayacağız, bu bölümde, bu geri arama işlevi çağrıldığında ne olacağını tanımlayacağız. Ne zaman allrockets () işlevi çağrıldığında, tüm roketler birlikte çalıştırılacaktır olacak. Bunun için 00 ms için röleyi açacağız ve bundan sonra röleleri kapatacağız. Testlerimde, nikrom telin belirtilen uzunluğu için, teli tamamen ısıtmak için 800 ms gecikmeye ihtiyacım olduğunu buldum, bu sizin için geçerli olabilir veya olmayabilir. Bu nedenle gecikmeyi buna göre seçin.
allrockets geçersiz (uint8_t parlaklık) {if (parlaklık == 255) {digitalWrite (ROCKET_1_PIN, HIGH); digitalWrite (ROCKET_2_PIN, YÜKSEK); digitalWrite (ROCKET_3_PIN, YÜKSEK); gecikme (800); digitalWrite (ROCKET_1_PIN, LOW); digitalWrite (ROCKET_2_PIN, DÜŞÜK); digitalWrite (ROCKET_3_PIN, DÜŞÜK); Serial.println ("Tüm Roketler Fırlatıldı"); }}
Sonra, ilk roketimiz () var, bu, Alexa'yı aradığımızda ve ilk roketi fırlatmak için tie command dediğimizde çağrılıyor. İşlem çok benzer, röleyi 800 ms için açıp kapatıyoruz.
void firstrocket (uint8_t parlaklık) {if (parlaklık == 255) {digitalWrite (ROCKET_1_PIN, HIGH); gecikme (800); digitalWrite (ROCKET_1_PIN, LOW); Serial.println ("Fırlatılan İlk Roket"); }}
Son olarak, connectToWiFi () fonksiyonumuz var. Bu işlev oldukça genel ve açıklayıcıdır, bu nedenle bu işlevle ilgili ayrıntılara girmeyeceğim. Bu işlev ESP'yi Wi-Fi'ye bağlar ve bağlantı durumunu döndürür.
boolean connectToWiFi () {boole durumu = true; int i = 0; WiFi.mode (WIFI_STA); WiFi.begin (ssid, şifre); Serial.println (""); Serial.println ("WiFi'ye Bağlanma"); // Serial.print bağlantısını bekleyin ("Bağlanıyor…"); while (WiFi.status ()! = WL_CONNECTED) {gecikme (500); Seri.print ("."); eğer (i> 15) {durum = yanlış; kırmak; } i ++; } Serial.println (""); if (state) {Serial.print ("Connected to"); Serial.println (ssid); Seri.print ("IP adresi:"); Serial.println (WiFi.localIP ()); } else {Serial.println ("Bağlantı başarısız oldu."); } dönüş durumu; }
Tanımlanan bu işlev, kodlama bölümünün sonunu işaretler.
Alexa'yı Alexa Android Uygulaması ile Yapılandırma
Alexa, yalnızca ve ancak esp8866 cihazını tanırsa komutları kabul eder. Bunun için Alexa'yı Android'deki Alexa uygulaması yardımıyla yapılandırmamız gerekiyor. Daha fazla ilerlemeden önce yapmamız gereken önemli bir şey, Alexa'nın android uygulamamızla yapılandırıldığından emin olmamız gerektiğidir.
Bunu yapmak için, Alexa uygulamanın diğer bölümüne gidin ve üzerine tıklayın Aygıt Ekle seçeneği, tıklayın Işık, daha sonra sayfanın alt kısmında aşağı doğru ilerleyin ve tıklayın Diğer.
Ardından, CİHAZI KEŞFET'e tıklayın ve ardından Alexa yeni cihazlar bulduktan sonra bir dakika bekleyin. Alexa cihazları bulduktan sonra, üzerlerine tıklamanız ve ilgili yerlerine / kategorilerine eklemeniz gerekir ve işiniz bitti.
Alexa Kontrollü Roket Fırlatıcı - Test
Test işlemi için bahçeme gittim, tüm fitilleri roketten çıkardım, yerlerine yerleştirdim ve Alexa diye bağırdım…! Parmaklarım çapraz şekilde tüm Roketleri çalıştır. Ve tüm roketler çabalarımı büyük bir başarı olarak işaretleyerek uçtu. Bunun gibi bir şeye benziyordu.
Sonunda bir kez daha Alexa dedim…! Aşağıda görebileceğiniz filamanların destansı bir resmini elde etmek için tüm roketleri açın.
Daha destansı bir deneyim için videoyu izlemenizi şiddetle tavsiye ederim.