İçindekiler:

Çok Yönlü NearBot: 11 Adım (Resimlerle)
Çok Yönlü NearBot: 11 Adım (Resimlerle)

Video: Çok Yönlü NearBot: 11 Adım (Resimlerle)

Video: Çok Yönlü NearBot: 11 Adım (Resimlerle)
Video: DJI Osmo Pocket: TÜM uygunsuz gerçekler 2024, Temmuz
Anonim
Image
Image

Bu talimat, yakınınızdayken (telefonunuz veya bir işaretçi ile) çeşitli cihazlarda bir düğme, anahtar veya arama gibi bir şeyi hareket ettirebilen çok yönlü bir robot tetikleyicisinin nasıl oluşturulacağını gösterecektir. Bu, *yalnızca siz* geçerken kapı mandalını otomatik olarak açıp yeniden kilitleyebileceği, bir sprinkler vanasını kapatabileceği ve böylece bir tür banliyö Musa gibi sudan zarar görmeden geçebileceğiniz anlamına gelir, garajdayken hoparlör sesi daha düşük olur grup odası, dramatik bir giriş melodisi çalan bir iPod'u tetikleyin veya odadayken bir fıkra söyleyin (Jaden Smith tweet?) veya tuvaleti kullanmak için kalktığınızda bir filmi duraklatın.

Bu proje lehimleme veya özel aletler gerektirmez

Bu talimattan yeterince hoşlanıyorsanız, lütfen Robotics 2017 yarışmasında bu talimata oy vermeyi düşünün!

Adım 1: Donanım Parçalarını Alın

İhtiyacın olacak:

  • NodeMCU v2 veya V3
  • Mikro 9G Servo Motor, eBay veya Aliexpress'de yaklaşık 1.40 USD ücretsiz gönderim
  • Arduino Jumper Kabloları Dişi - Erkek.
  • NearBot için bir kasa - Bulduğum bir hurda plastik kutu kullandım.
  • Mikro USB veri kablosu (hurda telefon parçaları)
  • USB güç kaynağı (hurda telefon şarj cihazı)

Mobil erişim noktası özelliğine sahip bir akıllı telefonunuz yoksa ayrıca şunlara da ihtiyacınız olacaktır:

  • ESP-01 modülü, DealExtreme, GearBest, Ebay veya Aliexpress'de yaklaşık 2,50 USD ücretsiz gönderim.
  • 1 Çift AAA pil
  • anahtarlı çift AAA pil tutucu

2. Adım: Hızlı Başlangıç

Bu adım, bu tür şeyleri sevmeniz durumunda hızlı bir başlangıç kılavuzu içerir. Bu talimatın geri kalanı adım adım ilerler ve daha derinlemesine bilgi ekler

//Alışveriş listesi: //NodeMCU V3 (Lolin) ESP8266 mikrodenetleyici

//SG90 9G Servo Motor

//USB Güç Bankası veya USB duvar adaptörü.

//Mikro USB veri/şarj kablosu

//Arduino erkek-dişi tip atlama telleri

//BAŞLAMADAN ÖNCE:

//. Arduino IDE'yi henüz indirmediyseniz, ücretsiz olarak edinin (bağış isteğe bağlıdır):

//. Arduino IDE'yi açın (bunu Arduino IDE'de zaten okumuyorsanız!)…

///3. Dosyalara gidin ve Arduino IDE'deki tercihe tıklayın…

///4. aşağıdaki kodu Ek panolar Yöneticisine kopyalayın: //https://arduino.esp8266.com/stable/package_esp8266com_index.json

//5. tercih sekmesini kapatmak için Tamam'ı tıklayın…

///6. Araçlara ve panoya gidin ve ardından pano yöneticisini seçin…

//7. esp8266 topluluğu tarafından esp8266'ya gidin ve Arduino için yazılımı yükleyin…

//8. NodeMCU'nun Arduino IDE'nizle konuşmasını sağlayamıyorsanız, CH340 sürücüsünü indirmeniz ve yüklemeniz gerekebilir:

//Yukarıdaki tüm işlemler tamamlandıktan sonra esp8266 NodeMCU mikro denetleyicimizi Arduino IDE ile programlamak için okuyoruz.

//9.pano menüsünden NodeMCU V1.0 ESP12E'yi seçin /

/10. Kullanmakta olduğunuz COM bağlantı noktasını seçin.

//11. kodu seçin (www.makersa.ga'dan indirin) ve yükle'ye tıklayın. /

/12. Atlama kablolarını kullanarak servoyu NodeMCU'ya takın. D0'dan sinyale, topraktan toprağa, +VCC'den VO'ya veya 3V'ye. /

/13. Bir tornavida kullanarak servo kornayı ayarlayın.

//14. Kodu kullanarak maksimum ve minimum hareket derecelerini ayarlayın.

//15. Kod her güncellendiğinde NodeMCU'ya yeniden yükleyin.

//Hangi NodeMCU sürümüne sahip olduğunuzu bulmayı önemli bulabilirsiniz. İşte bir karşılaştırma kılavuzu:

frightanic.com/iot/comparison-of-esp8266-no… // NodeMCU v1 bağlantı şeması: https://frightanic.com/iot/comparison-of-esp8266-no… // NodeMCU v2 bağlantı şeması: https://frightanic.com/iot/comparison-of-esp8266-no… // NodeMCU v3 pinout şeması:

//Teçhizatın açıklaması:

//NodeMCU ESP8266 mikro denetleyici, pil veya USB güç kaynağı ve SG90 Servo'dan yapılmıştır

// 2. değiştirilmemiş esp8266 modülünü akıllı telefon kullanmak yerine beacon hotspot AP olarak kullanabilirsiniz, programlama gerekmez.

3. Adım: Yazılım Parçalarını Edinin

Önce ücretsiz Arduino IDE'yi indirmeniz gerekecek

Arduino Web Editörü, bunu yazdığım sırada NodeMCU ile çalışmıyor, bu yüzden IDE'yi bilgisayarınıza yüklemeniz gerekecek.

Ayrıca www. MakerSa.ga adresinden NearBot dosyalarını almanız gerekecektir - Bu proje için dosya indirme bağlantısı o sitede listelenmiştir.

Adım 4: Sürücüleri ve Kart Profillerini Kurun

Bazı Faydalı Bilgiler
Bazı Faydalı Bilgiler

İndirdiğiniz ve sıkıştırdığınız NearBot zip dosyasının içinde NodeMCU modülünün sürücüleri olacaktır. Bunları bilgisayarınıza kurun.

Bunlar işinize yaramazsa, wemos.cc/downloads adresinde CH340G sürücülerini bulabilirsiniz.

NodeMCU'nuz CH340G çipini kullanmıyor olabilir, bu nedenle aradığınız sürücü ile ilgili yorum yapmanız gerekebilir, ben de o sürücü için indirme bağlantısı ile cevap vereceğim.

  1. Ardından, Arduino IDE'yi açın ve Arduino IDE'de Dosya TercihleriEk Panolar Yöneticisine gidin.
  2. Aşağıdaki kodu buraya yapıştırın:
  3. Tercih sekmesini kapatmak için Tamam'a tıklayın.
  4. Araçlar ve panoya gidin ve ardından pano yöneticisini seçin.
  5. "esp8266 by esp8266 topluluğu"na gidin ve Arduino için yazılımı yükleyin.

Yukarıdaki tüm işlemler tamamlandıktan sonra esp8266 NodeMCU mikro denetleyicimizi Arduino IDE ile programlamaya hazırız!

Adım 5: Bazı Yararlı Bilgiler

Bazı Faydalı Bilgiler
Bazı Faydalı Bilgiler
Bazı Faydalı Bilgiler
Bazı Faydalı Bilgiler

Hangi NodeMCU sürümüne sahip olduğunuzu bulmayı kullanışlı bulabilirsiniz. İşte bir karşılaştırma kılavuzu:

frightanic.com/iot/comparison-of-esp8266-nodemcu-development-boards/

Her versiyonun farklı pin düzenlemeleri vardır. Servo motora güç sağlamak için 5V çıkış pinleri olduğu için v3 (Lolin) versiyonunu satın aldım. Sonunda güvenlik için bunun yerine 3 volt güç pinlerini kullandım (NodeMCU I/O pinleri 5V toleranslı değildir), ancak teknik olarak bu tür servo motorlar 4,5 ila 5 volt güç için belirtildiği için 5V pinleri kullanmak isteyebilirsiniz.

Adım 6: Kodu NodeMCU'ya Yükleyin

Kodu NodeMCU'ya Yükleyin
Kodu NodeMCU'ya Yükleyin
Kodu NodeMCU'ya Yükleyin
Kodu NodeMCU'ya Yükleyin
  1. Herhangi bir mikro USB kablosu kullanarak NodeMCU'yu bilgisayarınıza takın.
  2. Arduino IDE'yi açın ve "Boards" altında, "ESP12E"yi ve NodeMCU için COM portunu seçin.
  3. IDE'de, "ProximityActuator013017DonovanMagryta.ino" adlı Arduino taslağını açmak için FileOpen'a gidin ve daha önce makera.ga'dan indirilen zip klasörüne göz atın.
  4. Ardından, WiFi işaretçinizin adını ve parolasını eklemek için bunu içeren kod satırını düzenleyin. Aşağıda bunun hakkında daha fazlası! Örneğin:

const char* ssid = "mywifi"; // Hotspot adınızı tırnak içine alın

const char* şifre = "mywifipassword"; // Hotspot şifrenizi tırnak içine alın

Ardından kodu NodeMCU kartına yüklemek için "yükle" ye tıklayın.

NearBot, sizi tanımlamak ve mesafeyi tahmin etmek için cepte taşınabilir bir WiFi işaretçisi kullanır. Tıpkı yakınlık anahtarları gibi, bazı yeni arabalarda siz yaklaşırken arabanın kapısını açan anahtarlar bulunur.

Akıllı telefonunuzun mobil erişim noktasını bir işaret olarak kullanabilir veya alternatif olarak bir çift AAA pil veya küçük bir lityum 3.7v pil ile çalışan ucuz bir ESP-01 WiFi modülü kullanabilirsiniz. ESP-01'i programlamaya gerek yoktur, açıldığında varsayılan olarak etkin nokta modu stokuna geçer. Bunun için devre şeması bu adımda gösterilmektedir.

7. Adım: Servoyu NodeMCU'ya bağlayın

Servoyu NodeMCU V3'e takmak için bazı aktarma kablolarına ihtiyacınız olacak.

Devre şeması basittir.

D0'ı kurşundaki sinyale sabitleyin (servodaki en açık renkli tel. genellikle sarı veya beyaz.)

3V veya pin VO'yu 5V giriş kablosuna bağlayın (servo üzerindeki en açık ikinci renkli kablo, genellikle kırmızı veya turuncu.)

GND'yi topraklama kablosuna sabitleyin (servo üzerindeki en koyu renkli tel, genellikle kahverengi veya siyah.)

8. Adım: NearBot'ta İnce Ayar Yapın

Kod, sinyal gücünü mesafe tahminine dönüştürür. 2 metreden veya 6,5 fitten daha kısa reaksiyon mesafeleri için güvenilir şekilde çalışır. Doğrudan bir dönüşüm olduğundan, potansiyel olarak daha iyi bir hesaplama yöntemiyle olabileceği gibi 3 metreden daha uzak mesafeler için o kadar düzgün değildir. Daha sonra.

Servo kornanın (hareket eden küçük beyaz kol) nerede olduğunu ayarlamak isteyebilirsiniz. Bu, servo kolu bir tornavidayla sökerek ve yeniden konumlandırarak yapılır.

Sonraki kısım, kodu kullanarak maksimum ve minimum hareket derecelerini ayarlamaktır.

Bu, şuna benzeyen satırlarda bulunan sayıları değiştirerek yapılabilir:

myservo.write(10); //servo kolunu 10 derecelik dönüşe hareket ettirir

Aşağıdaki gibi görünen satırlardaki negatif sayıları değiştirerek sinyal gücü hassasiyetini de ayarlayabilirsiniz:

if (rssi > -30 && rssi < -5) { //Sinyal gücü -30'dan güçlü ve -5'ten zayıfsa. sonra şunları yapın…

9. Adım: Nasıl Çalışır?

  1. NearBot, önce bir kullanıcı yaklaştıkça etkin noktaya önceden bağlanır.
  2. RSSI'yi (alınan sinyal gücü) tarar ve bunu yaklaşık mesafeye dönüştürür.
  3. Mesafe belirtilen aralıkta iken servo motor kolunu 1 konumuna hareket ettirir.
  4. Aksi takdirde, servo motor 2. konuma hareket ettirilir.

Bunu test ettiğimde, bu RSSI ayarı (-50), cebimde ESP-01 beacon veya telefon hotspot ile mesafe 0 ila 1.5 metre iken servoyu 1 konumuna hareket ettiriyor.

RSSI tipik olarak -90 ila -20 aralığına düşer ve -20 en güçlü sinyal gücüdür.

NearBot bilgisayara takılıyken Arduino IDE Seri Monitörünü açarsanız, kullanışlı geri bildirim almanız için sinyal gücünü ve tetik noktalarını gerçek zamanlı olarak görüntüler.

İşte tam kod:

//BAŞLAMADAN ÖNCE:

//. Arduino IDE'yi henüz indirmediyseniz, ücretsiz olarak (bağış isteğe bağlı) şu adresten edinin: https://www.arduino.cc/en/Main/Software //. Arduino IDE'yi açın (bunu Arduino IDE'de zaten okumadıysanız!)… //3. Dosyalara gidin ve Arduino IDE'deki tercihe tıklayın… ///4. Aşağıdaki bağlantıyı Ek panolar Yöneticisine kopyalayın: //https://arduino.esp8266.com/stable/package_esp8266com_index.json //5. tercih sekmesini kapatmak için Tamam'a tıklayın… //6. Araçlara ve panoya gidin ve ardından pano yöneticisini seçin… //7. esp8266 topluluğu tarafından esp8266'ya gidin ve Arduino için yazılımı yükleyin… //8. NodeMCU'nun Arduino IDE'nizle konuşmasını sağlayamıyorsanız CH340 sürücüsünü indirmeniz ve yüklemeniz gerekebilir: https://www.arduino.cc/en/Main/Software //Yukarıdaki tüm işlemler tamamlandıktan sonra esp8266 NodeMCU mikro denetleyicimizi Arduino IDE ile programlamak için okuyun. Hangi NodeMCU sürümüne sahip olduğunuzu bulmak isteyebilirsiniz. İşte bir karşılaştırma kılavuzu: https://www.arduino.cc/en/Main/Software //NodeMCU ESP8266 mikro denetleyici, pil veya USB güç kaynağı ve SG90 Servo'dan yapılmıştır //2. değiştirilmemiş esp8266 modülünü işaret olarak kullanabilirsiniz akıllı telefon kullanmak yerine hotspot AP. //NearBot Devresi: //D0 pininden Servo sinyal kablosuna (en açık renkli kablo) ///3V pinden servo 5v kablosuna (orta kablo) (usb kablosuna veya V3'ünüz varsa NodeMCU'daki VO pinine paralel olarak eklenir. / /NodeMCU'daki USB'den USB'ye güç fişi //GND pininden Servo Topraklama kablosuna (en koyu renkli kablo) // Not satırları iki eğik çizgi ile başlar ve bilgisayarlar tarafından dikkate alınmaz. Notlar sadece biz insanlar içindir! #include #include //Seri baskı için gerekli olabilir #include //Servo library #define D0 16 //Pin atamayı kolaylaştırmak için pinleri tanımlar #define D1 5 // I2C Bus SCL (clock) #define D2 4 // I2C Bus SDA (veri) #define D3 0 #define D4 2 // "LED_BUILTIN" ile aynı, ancak ters çevrilmiş mantık #define D5 14 // SPI Bus SCK (saat) #define D6 12 // SPI Bus MISO #define D7 13 // SPI Bus MOSI #define D8 15 // SPI Bus SS (CS) #define D9 3 // RX0 (Seri konsol) #define D10 1 // TX0 (Seri konsol) Servo myservo; //myservo adında bir servo nesnesi oluşturun //Telefon veya hotspot AP moduna ayarlanmış ek ESP8266 modülü: const ch ar* ssid = " "; //Hotspot adınızı tırnak içine alın const char* password = " "; //Hotspot parolanızı tırnak içine alın void setup(){ Serial.begin(115200); //mikrodenetleyicinin Arduino IDE'deki seri yazdırma arayüzü ile konuşabilmesi için seri baud hızını ayarlar - Bunun yerine 9600 olarak değiştirmeniz gerekebilir! myservo.attach(D0); // pin D0 üzerindeki servoyu, diğer bir deyişle GPIO16'yı servo nesnesine bağlar - Daha fazlasını şu adreste bulabilirsiniz: https://www.esp8266.com/viewtopic.php?f=32&t=8862#… myservo.write(10); //servo kolunu 10 derece döndürmeye hareket ettirir Serial.println("Kilitli"); // seri monitöre "Kilitli" kelimesini yazdırın WiFi.mode(WIFI_STA); //Wifi'yi İstasyon moduna ayarlar WiFi.begin(ssid, password); //Hotspot beacon'a bağlanır } void loop() { //Döngü hızla tekrar tekrar çalışır if (WiFi.status() != WL_CONNECTED) { //WiFi bağlı DEĞİLSE, aşağıdakileri yapın… Serial.println("Wifi bağlantısı alınamadı"); myservo.write(10); //Servo kolunu 10 dereceye hareket ettirir Serial.println("Kilitli"); } else { //WiFi bağlıysa, aşağıdakileri yapın… long rssi = WiFi. RSSI(); //rssi adında bir değişken yaratır ve onu etkin nokta işaretçisinin sinyal gücü okumasını döndüren fonksiyona atar Serial.print(rssi); // rssi okumasını seri monitöre gönderir if (rssi > -50 && rssi < -5) { //Sinyal gücü -50'den güçlü ve -5'ten zayıfsa. sonra şunu yapın… myservo.write(170); //Servo kolunu 170 derece döndürün Serial.println("Kilitsiz"); } else { //Yukarıdaki koşullar karşılanmıyorsa aşağıdakileri yapın… myservo.write(10); //Servo kolunu 10 dereceye kadar döndürür. Serial.println("Kilitli"); } } }

Adım 10: Bilmeniz Gerekenler…

Sorumluluk Reddi:

NearBot kodunun mevcut yinelemesi, 2 metreden veya 6,5 fitten daha kısa mesafeler için güvenilir bir şekilde çalışır. Bunun ötesinde, daha az hassas olur, ancak yine de çalışır.

Bu düzeltilebilir, ancak şu anda nasıl yapacağımı bilmiyorum. Birisi benimle çalışsa çok sevinirim, böylece bu talimatları daha kesin mesafe hesaplama yöntemiyle güncelleyebilirim!

Bu bağlantılar kullanışlı olabilir: YouTuber CNLohr, ESP8266 için sınırlı bir başarı ile bir mesafe ve konum algılama ürün yazılımı geliştirdi:

Espressif, ESP8266 için Arduino IDE ile çalışacak bir Uçuş Süresi mesafe algılama işlevi geliştirdi, ancak bunu asla yayınlamadı:

SubPos konumlandırma sistemi, Arduino IDE'de nasıl uygulanacağını bilmediğim ESP8266 modüllerini ve Yol Kaybı Hesaplamasını kullanır:

Java dilinde bir örnek buldum, ancak bunun nasıl çoğaltılacağını bilmiyorum Arduino IDE:

çift mesafe = Math.pow(10.00, (((double)(tx_pwr/10)) - rx_pwr - 10*Math.log10(4*Math. PI/(c/frequency)))/(20*mu));

Adım 11: Hepsi Bu

Kendi NearBot'unuzu yapıyorsanız, aşağıdaki yorumlarda "Ben yaptım" yazınızı yayınlayın!

Versatile NearBot platformunu ne için kullanacağınıza dair daha fazla fikriniz varsa, lütfen fikirlerinizi yorumlayın! Diğer talimat kullanıcıları için harika bir ilham kaynağı olabilir!

Bu eğitimden hoşlanıyorsanız, lütfen yarışmalarda bu talimata oy vermeyi düşünün!

Önerilen: