Mündəricat:

Çox yönlü NearBot: 11 addım (şəkillərlə birlikdə)
Çox yönlü NearBot: 11 addım (şəkillərlə birlikdə)

Video: Çox yönlü NearBot: 11 addım (şəkillərlə birlikdə)

Video: Çox yönlü NearBot: 11 addım (şəkillərlə birlikdə)
Video: “Çok Yönlü" Olmak Neyi İfade Eder? 2024, Iyul
Anonim
Image
Image

Bu təlimat sizə (telefonunuz və ya cibinizdə bir mayakla) yaxınlıqda olduqda müxtəlif cihazlarda düymə, açar və ya yığım kimi bir şeyi hərəkət etdirə biləcək çox yönlü bir robot tətikini necə quracağınızı göstərəcək. Bu o deməkdir ki, qapı kilidini avtomatik olaraq aça və yenidən kilidləyə bilər * yalnız siz * yanınızdan keçərkən, bir çiləyici klapanı bağlaya bilərsiniz ki, qarajda olarkən bir növ şəhərətrafı Musa kimi yara almadan sudan keçəsiniz. qrup otaq, dramatik bir giriş melodiyası oynayan bir iPodu işə salın və ya otaqda olarkən bir zarafat söyləyin (Jaden Smith tweet?) və ya tualetdən istifadə etmək üçün qalxdığınız zaman bir filmə fasilə verin.

Bu layihə lehimləmə və ya xüsusi alətlər tələb etmir

Bu təlimatlardan kifayət qədər zövq alırsınızsa, Robotics 2017 yarışmasında bu təlimatlandırıcıya səs verməyi düşünün!

Addım 1: Avadanlıq hissələrini əldə edin

Sizə lazım olacaq:

  • NodeMCU v2 və ya V3
  • Micro 9G Servo Motoru eBay və ya Aliexpress -də 1.40 ABŞ dolları dəyərində pulsuz çatdırılır
  • Arduino Jumper qadından kişiyə tel bağlayır.
  • NearBot üçün bir korpus - tapdığım plastik bir plastik qutudan istifadə etdim.
  • Mikro USB məlumat kabeli (telefon hissələri)
  • USB enerji mənbəyi (telefon şarj cihazı)

Mobil qaynar nöqtəyə sahib bir smartfonunuz yoxdursa, sizə də lazım olacaq:

  • ESP-01 modulu təxminən 2.50 ABŞ dolları, DealExtreme, GearBest, Ebay və ya Aliexpress-də pulsuz göndərmə.
  • 1 cüt AAA batareya
  • açarı olan ikili AAA batareya tutacağı

Addım 2: Tez Başlayın

Bu cür bir şeyi sevdiyiniz halda sürətli bir başlanğıc təlimatı var. Bu təlimatın qalan hissəsi addım-addım gedir və daha dərin məlumatlar əlavə edir

// Alış -veriş siyahısı: // NodeMCU V3 (Lolin) ESP8266 mikro nəzarətçi

// SG90 9G Servo Motor

// USB Güc Bankı və ya USB divar adapteri.

// Mikro USB məlumat/şarj kabeli

// Arduino kişi -qadın tipli tullanan tellər

// başlamazdan əvvəl:

// 1. Arduino IDE -ni hələ yükləməmisinizsə, https://www.arduino.cc/en/Main/Software ünvanından pulsuz olaraq (hədiyyə olaraq isteğe bağlı) əldə edin.

// 2. Arduino IDE -ni açın (bunu Arduino IDE -də oxumamısınızsa!)…

// 3. Fayllara gedin və Arduino IDE -də olan seçimə vurun …

// 4. Aşağıdakı kodu Əlavə lövhələr menecerinə kopyalayın: //https://arduino.esp8266.com/stable/package_esp8266com_index.json

// 5. seçim sekmesini bağlamaq üçün OK düyməsini basın …

// 6. Alətlərə və lövhəyə gedin və sonra idarəçi seçin …

// 7. Esp8266 icması tərəfindən esp8266 -ya gedin və Arduino üçün proqramı quraşdırın …

// 8. NodeMCU -nu Arduino IDE ilə danışa bilmirsinizsə, CH340 sürücüsünü yükləməyiniz və yükləməyiniz lazım ola bilər:

// Bütün yuxarıda göstərilən proses başa çatdıqdan sonra esp8266 NodeMCU mikro nəzarətçimizi Arduino IDE ilə proqramlaşdırmaq üçün oxuduq.

//9. lövhə menyusundan NodeMCU V1.0 ESP12E seçin /

/10. İstifadə etdiyiniz COM portunu seçin.

// 11. kodu seçin (www.makersa.ga saytından yükləyin) və yüklə düyməsini basın. /

/12. Keçid tellərindən istifadə edərək servonu NodeMCU -ya qoşun. Siqnal üçün D0, yerdən yerə, +VCC -dən VO -ya 3V. /

/13. Bir tornavida istifadə edərək servo buynuzunu tənzimləyin.

// 14. Koddan istifadə edərək maksimum və minimum hərəkət dərəcələrini tənzimləyin.

// 15. Kod yenilənəndə NodeMCU-ya yenidən yükləyin.

// Hansı NodeMCU versiyasına sahib olduğunuzu anlamağı vacib hesab edə bilərsiniz. Budur bir müqayisə təlimatı:

frightanic.com/iot/comparison-of-esp8266-no… // NodeMCU v1 pinout diaqramı: https://frightanic.com/iot/comparison-of-esp8266-no… // NodeMCU v2 pinout diaqramı: https://frightanic.com/iot/comparison-of-esp8266-no… // NodeMCU v3 pinout diaqramı:

// Qurğuların izahı:

// NodeMCU ESP8266 mikrokontrolöründən, batareyadan və ya USB enerji təchizatından və SG90 Servodan hazırlanmışdır.

// Bir ağıllı telefon istifadə etmək əvəzinə bir işarə nöqtəsi olaraq 2 -ci dəyişdirilməmiş esp8266 modulundan istifadə edə bilərsiniz, proqramlaşdırmaya ehtiyac yoxdur.

Addım 3: Proqram hissələrini əldə edin

Əvvəlcə pulsuz Arduino IDE yükləməlisiniz

Arduino Veb Redaktoru bunu yazarkən NodeMCU ilə işləmir, buna görə IDE -ni kompüterinizə quraşdırmalı olacaqsınız.

NearBot fayllarını www. MakerSa.ga saytından da götürməlisiniz - Bu layihə üçün fayl yükləmə linki həmin saytda verilmişdir.

Addım 4: Sürücüləri və Kart Profillərini Qurun

Bəzi faydalı məlumatlar
Bəzi faydalı məlumatlar

Yüklədiyiniz və açılmamış NearBot zip -in içərisində NodeMCU modulunun sürücüləri olacaq. Bunları kompüterinizə quraşdırın.

Bunlar sizin üçün işləmirsə, CH340G sürücülərini wemos.cc/downloads saytından tapa bilərsiniz.

NodeMCU'nuz CH340G çipini istifadə edə bilməz, buna görə axtardığınız sürücü ilə şərh etməyiniz lazım ola bilər və mən həmin sürücünün yükləmə linki ilə cavab verəcəyəm.

  1. Sonra Arduino IDE -ni açın və Arduino IDE -də Fayl Tercihləri Əlavə Kartlar Menecerinə gedin.
  2. Aşağıdakı kodu ora yapışdırın:
  3. Tercih sekmesini bağlamaq üçün OK düyməsini basın.
  4. Alətlərə və lövhəyə gedin və sonra idarəçi seçin.
  5. "Esp8266 by esp8266 icma" na gedin və Arduino üçün proqramı quraşdırın.

Yuxarıda göstərilən bütün işlər başa çatdıqdan sonra esp8266 NodeMCU mikro nəzarətçimizi Arduino IDE ilə proqramlaşdırmağa hazırıq!

Addım 5: Bəzi faydalı məlumatlar

Bəzi faydalı məlumatlar
Bəzi faydalı məlumatlar
Bəzi faydalı məlumatlar
Bəzi faydalı məlumatlar

Hansı NodeMCU versiyasına sahib olduğunuzu anlamaq lazım ola bilər. Budur bir müqayisə təlimatı:

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

Hər bir versiyanın fərqli pin tənzimləmələri var. V3 (Lolin) versiyasını aldım, çünki Servo motorunu gücləndirmək üçün 5V çıxış pininə malikdir. Nəticədə təhlükəsizlik üçün 3 volt güc pinlərindən istifadə etdim (NodeMCU G/Ç pinləri 5V dözümlü deyil), ancaq 5V sancaqlardan istifadə etmək istəyə bilərsiniz, çünki texniki olaraq bu tip servo mühərriklər 4,5 ilə 5 volt arasında müəyyən edilmişdir.

Addım 6: Kodu NodeMCU -ya yükləyin

Kodu NodeMCU -ya yükləyin
Kodu NodeMCU -ya yükləyin
Kodu NodeMCU -ya yükləyin
Kodu NodeMCU -ya yükləyin
  1. NodeMCU -nu hər hansı bir mikro USB kabelindən istifadə edərək kompüterinizə qoşun.
  2. Arduino IDE -ni açın və "Kartlar" altında "ESP12E" və NodeMCU üçün COM portunu seçin.
  3. IDE -də FileOpen -ə gedin və "ProximityActuator013017DonovanMagryta.ino" adlı Arduino eskizini açmaq üçün əvvəllər makersa.ga saytından yüklənmiş zip qovluğuna baxın.
  4. Sonra, WiFi mayakınızın adını və şifrənizi əlavə etmək üçün bunu ehtiva edən kod xəttini düzəldin. Aşağıda bu barədə daha çox! Misal üçün:

const char* ssid = "mywifi"; // Qaynar nöqtənin adını sitatların içinə daxil edin

const char* parol = "mywifipassword"; // İstifadə nöqtəsi şifrənizi sitatın içərisinə daxil edin

Sonra kodu NodeMCU lövhəsinə yandırmaq üçün "yüklə" düyməsini basın.

NearBot sizi müəyyən etmək və məsafəni təxmin etmək üçün cib telefonu olan bir WiFi mayakından istifadə edir. Yaxınlıq düymələri kimi, bəzi yeni avtomobillər yaxınlaşdıqca maşının qapısını açır.

Smartfonunuzun mobil qaynar nöqtəsini mayak kimi istifadə edə bilərsiniz və ya alternativ olaraq bir cüt AAA batareya və ya kiçik bir lityum 3.7v batareya ilə işləyən ucuz ESP-01 WiFi modulundan istifadə edə bilərsiniz. ESP-01-i proqramlaşdırmağa ehtiyac yoxdur, açıldıqda hotspot rejiminin ehtiyatını təyin edir. Bunun üçün dövrə diaqramı bu addımda göstərilmişdir.

Addım 7: Servo NodeMCU -ya qoşun

Servo NodeMCU V3 -ə qoşmaq üçün bir neçə keçid telinə ehtiyacınız olacaq.

Dövrə diaqramı sadədir.

Qurğundakı siqnala D0 pin (servoda ən açıq rəngli tel. Ümumiyyətlə sarı və ya ağ rəngdədir).

3V və ya VO pinini 5V giriş qurğusuna bağlayın (servoda ikinci ən açıq rəngli tel, ümumiyyətlə qırmızı və ya narıncıdır.)

GND -ni torpaq telinə bağlayın (servoda ən tünd rəngli tel, ümumiyyətlə qəhvəyi və ya qara rəngdədir.)

Addım 8: NearBot'u İncə Ayarlayın

Kod siqnal gücünü məsafə təxmininə çevirir. 2 metr və ya 6.5 futdan az reaksiya məsafələri üçün etibarlı işləyir. Birbaşa çevrilmə olduğundan, daha yaxşı bir hesablama üsulu ilə ola biləcəyi qədər 3 metrdən daha uzaq məsafələr üçün hamar deyil. Bu barədə daha sonra.

Servo buynuzunun (hərəkət edən kiçik ağ qol) harada yerləşdiyini tənzimləmək istəyə bilərsiniz. Bu, servo qolu bir tornavida ilə açmaq və yenidən yerləşdirməklə edilir.

Növbəti hissə, kodu istifadə edərək maksimum və minimum hərəkət dərəcələrini tənzimləməkdir.

Bu kimi görünən sətirlərdə olan nömrələri dəyişdirməklə edilə bilər:

myservo.write (10); // servo qolu 10 dərəcə fırlanmağa aparır

Aşağıdakı kimi görünən xətlərdəki mənfi ədədləri dəyişdirərək siqnal gücü həssaslığını da tənzimləyə bilərsiniz:

if (rssi> -30 && rssi <-5) {// Siqnal gücü -30 -dan güclü və -5 -dən zəifdirsə. sonra aşağıdakıları edin …

Addım 9: Necə Çalışır

  1. NearBot, istifadəçilər yaxınlaşdıqca əvvəlcə qaynar nöqtəyə əvvəlcədən bağlanır.
  2. RSSI (alınan siqnal gücü) tarar və onu təxmini məsafəyə çevirir.
  3. Məsafə göstərilən diapazonda olsa da, servo motor qolunu 1 mövqeyinə keçir.
  4. Əks təqdirdə, servo motor 2 -ci mövqeyə keçir.

Bunu sınayanda bu RSSI tüninqi (-50) cibimdə ESP-01 işarəsi və ya telefon qaynar nöqtəsi ilə məsafə 0 ilə 1,5 metr aralığında servo 1 mövqeyinə keçir.

RSSI tipik olaraq -90 ilə -20 aralığına düşür, -20 ən güclü siqnal gücüdür.

NearBot kompüterə qoşulduqda Arduino IDE Serial Monitorunu açarsanız, lazımlı rəy əldə etməyiniz üçün siqnal gücünü və tətik nöqtələrini real vaxtda göstərəcəkdir.

İşdə tam kod:

// başlamazdan əvvəl:

// 1. Arduino IDE -ni hələ yükləməmisinizsə, https://www.arduino.cc/en/Main/Software // 2 ünvanından pulsuz (hədiyyə olaraq isteğe bağlı) əldə edin. Arduino IDE -ni açın (Arduino IDE -də bunu oxumamısınızsa!)… // 3. Fayllara gedin və Arduino IDE… // 4 seçimini vurun. Əlavə lövhələr menecerində aşağıdakı linki kopyalayın: //https://arduino.esp8266.com/stable/package_esp8266com_index.json // 5. üstünlük sekmesini bağlamaq üçün OK düyməsini basın… // 6. Alətlərə və lövhəyə gedin və sonra idarəçi seçin … // 7. Esp8266 icması tərəfindən esp8266 -ya gedin və Arduino üçün proqramı quraşdırın … // 8. NodeMCU -nu Arduino IDE ilə danışa bilmirsinizsə, CH340 sürücüsünü yükləməyiniz və yükləməyiniz lazım ola bilər: https://www.arduino.cc/en/Main/Software // Yuxarıda göstərilən bütün işlər başa çatdıqdan sonra esp8266 NodeMCU mikro nəzarətçimizi Arduino IDE ilə proqramlaşdırmaq üçün oxuyun. Hansı NodeMCU versiyanız olduğunu anlamaq istəyə bilərsiniz. Budur bir müqayisə bələdçisi: https://www.arduino.cc/en/Main/Software // NodeMCU ESP8266 mikrokontrolöründən, batareyadan və ya USB enerji təchizatından və SG90 Servo -dan hazırlanmışdır // Bir mayak olaraq 2 -ci dəyişdirilməmiş esp8266 modulundan istifadə edə bilərsiniz. bir smartfon istifadə etmək yerinə hotspot AP. // NearBot Circuit: // D0 pin Servo siqnal telinə (ən açıq rəngli tel) // 3V pin servo 5v telə (orta tel) (usb kabelinə və ya V3 varsa NodeMCU üzərindəki VO pininə paralel olaraq bağlanır. / /NodeMCU -dakı USB fişinə USB gücü // GND pinini Servo Topraklama telinə (ən qaranlıq rəngli tel) // Qeyd xətləri iki irəli kəsiklə başlayır və kompüterlər tərəfindən nəzərə alınmır. Qeydlər yalnız insanlar üçündür! #İnclude #include // Seriya çapı üçün lazım ola bilər. #Daxil edin // Servo kitabxanası #define D0 16 // Pinləri təyin etməyi asanlaşdırmaq üçün pinləri təyin edin. #Define D1 5 // I2C Bus SCL (clock) #define D2 4 // I2C Bus SDA (data) #define D3 0 #define D4 2 // "LED_BUILTIN" ilə eynidir, amma ters çevrilmiş məntiq #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 (Serial console) #define D10 1 // TX0 (Serial console) Servo myservo; // myservo adlı bir servo obyekt yaradın // Telefon və ya əlavə ESP8266 modulu hotspot AP rejiminə təyin edildi: const ch ar* ssid = ""; // Hotspot adınızı quotes const char* password = "" daxil edin; // Hotspot parolunuzu quotes void setup () {Serial.begin (115200) daxil edin; // mikrodenetleyicinin Arduino IDE -də seriyalı çap interfeysi ilə danışa bilməsi üçün serial ötürmə sürətini təyin edir - Bunun əvəzinə onu 9600 -ə dəyişmək lazım ola bilər! myservo.attach (D0); // servoyu D0 aka GPIO16 pinindəki servo obyektə bağlayır - Daha çoxuna baxın: https://www.esp8266.com/viewtopic.php?f=32&t=8862#… myservo.write (10); // servo qolu 10 dərəcə fırlanmağa keçir Serial.println ("Kilitli"); // seriyalı monitoru "Kilitli" WiFi.mode (WIFI_STA) sözünü çıxarın; // WiFi -ni Stansiya rejiminə təyin edir WiFi.begin (ssid, parol); // Hotspot mayakına qoşulur} void loop () {// (WiFi.status ()! = WL_CONNECTED) {// Döngə sürətlə təkrar işləyir, əgər wifi bağlı deyilsə, aşağıdakıları edin … Serial.println ("Wi -Fi bağlantısı alınmadı"); myservo.write (10); // Servo qolunu 10 dərəcəyə keçir Serial.println ("Kilitli"); } else {// WiFi IS bağlıdırsa, aşağıdakıları edin … long rssi = WiFi. RSSI (); // rssi adlı bir dəyişən yaradır və onu hotspot beacon Serial.print (rssi) siqnal gücünün oxunuşunu qaytaran funksiyaya təyin edir; // (rssi> -50 && rssi <-5) {// siqnal gücü -50 -dən güclü və -5 -dən zəifdirsə rssi oxunuşunu seriyalı monitora çıxarır. sonra aşağıdakıları edin … myservo.write (170); // Servo qolunu 170 dərəcəyə çevirin Serial.println ("Kilidi açılmış"); } else {// Yuxarıdakı şərtlər yerinə yetirilmirsə, aşağıdakıları edin… myservo.write (10); // Servo qolunu 10 dərəcəyə qaytarır. Serial.println ("Bağlandı"); }}}

Addım 10: Bilməlisiniz …

İmtina:

NearBot kodunun cari iterasiyası 2 metr və ya 6,5 futdan az məsafələr üçün etibarlı şəkildə işləyir. Bunun xaricində daha az dəqiq olur, amma yenə də işləyir.

Bu düzəldilə bilər, amma hazırda bunu necə edəcəyimi bilmirəm. Məsafəni hesablamaq üçün daha dəqiq bir üsulla bu təlimatları yeniləyə biləcəyim üçün kimsə mənimlə işləsəydi çox istərdim!

Bu bağlantılar lazımlı ola bilər: YouTuber CNLohr, məhdud müvəffəqiyyətlə ESP8266 üçün məsafə və mövqe algılayıcı bir firmware hazırladı:

Espressif, ESP8266 üçün Arduino IDE ilə işləyəcək Uçuş məsafəsi aşkarlama funksiyasını inkişaf etdirdi, lakin heç vaxt buraxmadı:

SubPos yerləşdirmə sistemi, Arduino IDE -də necə tətbiq edəcəyimi bilmədiyim ESP8266 modullarından və Yol Zərərlərinin Hesablanmasından istifadə edir:

Java dilində bir nümunə tapdım, amma Arduino IDE -nin necə təkrarlanacağını bilmirəm:

ikiqat məsafə = Math.pow (10.0, (((ikiqat) (tx_pwr/10)) - rx_pwr - 10*Math.log10 (4*Math. PI/(c/tezlik))) ((20*mu));

Addım 11: Hamısı budur

NearBotu öz əlinizlə edirsinizsə, aşağıdakı şərhlərdə "Mən bacardım" yazın!

Çox yönlü NearBot platformasını nədən istifadə edəcəyinizlə bağlı fikirləriniz varsa, fikirlərinizi bildirin! Digər təlimatçı istifadəçilər üçün böyük bir ilham ola bilər!

Bu dərsdən zövq alırsınızsa, zəhmət olmasa yarışmalarda bu təlimata səs verməyi düşünün!

Tövsiyə: