جدول المحتويات:

NearBot متعدد الاستخدامات: 11 خطوة (مع صور)
NearBot متعدد الاستخدامات: 11 خطوة (مع صور)

فيديو: NearBot متعدد الاستخدامات: 11 خطوة (مع صور)

فيديو: NearBot متعدد الاستخدامات: 11 خطوة (مع صور)
فيديو: BIGGEST ever Retro Computer Unbarksing! Russian ZX Spectrum, Apple IIc, C128 & more! | Unboxing 2024, يوليو
Anonim
Image
Image

سيوضح لك هذا التوجيه كيفية إنشاء مشغل روبوت متعدد الاستخدامات يمكنه تحريك شيء مثل زر أو مفتاح أو طلب على أجهزة مختلفة عندما تكون (بهاتفك أو منارة في جيبك) بالقرب منك. هذا يعني أنه يمكنه فتح قفل الباب وإعادة قفله تلقائيًا عندما * أنت فقط * تمر من جانبك ، أغلق صمام الرش حتى تتمكن من المرور عبر المياه سالمة مثل نوع من الضواحي موسى ، وانخفاض مستوى صوت السماعة أثناء وجودك في المرآب غرفة الفرقة ، أو قم بتشغيل iPod أثناء تشغيل نغمة إدخال مثيرة أو أخبر نكتة (تغريدة Jaden Smith؟) أثناء وجودك في الغرفة ، أو قم بإيقاف فيلم مؤقتًا عندما تستيقظ لاستخدام الحمام.

هذا المشروع لا يتطلب لحام أو أدوات خاصة

إذا كنت تستمتع بهذه التعليمات بشكل كافٍ ، فالرجاء التفكير في التصويت لهذه التعليمات في مسابقة Robotics 2017!

الخطوة 1: الحصول على أجزاء الجهاز

سوف تحتاج:

  • NodeMCU v2 أو V3
  • Micro 9G Servo Motor حوالي 1.40 دولار أمريكي شحن مجاني على eBay أو Aliexpress
  • اردوينو الأسلاك الطائر أنثى إلى ذكر.
  • غلاف لـ NearBot - لقد استخدمت صندوقًا بلاستيكيًا خردة وجدته.
  • كابل بيانات Micro USB (أجزاء الهاتف الخردة)
  • مصدر طاقة USB (شاحن الهاتف الخردة)

إذا لم يكن لديك هاتف ذكي مزود بميزة نقطة الاتصال المحمولة ، فستحتاج أيضًا إلى:

  • وحدة ESP-01 حوالي 2.50 دولار أمريكي شحن مجاني على DealExtreme أو GearBest أو Ebay أو Aliexpress.
  • 1 زوج بطاريات AAA
  • حامل بطارية AAA مزدوج مع مفتاح

الخطوة الثانية: البدء السريع

تحتوي هذه الخطوة على دليل بدء سريع في حالة إعجابك بهذا النوع من الأشياء. ينتقل باقي هذا الدليل خطوة بخطوة ويضيف المزيد من المعلومات المتعمقة

// قائمة التسوق: // متحكم NodeMCU V3 (لولين) ESP8266

// SG90 9G محرك سيرفو

// بنك طاقة USB أو محول حائط USB.

// كابل بيانات / شحن Micro USB

// اردوينو من الذكور إلى الإناث نوع الأسلاك الطائر

//قبل ان تبدا:

// 1. إذا لم تكن قد قمت بالفعل بتنزيل Arduino IDE ، فاحصل عليه مجانًا (تبرع اختياري) على:

// 2. افتح Arduino IDE (إذا لم تكن تقرأ هذا في Arduino IDE بالفعل!) …

// 3. انتقل إلى الملفات وانقر على التفضيل في Arduino IDE …

// 4. انسخ الكود أدناه في مدير اللوحات الإضافية: //https://arduino.esp8266.com/stable/package_esp8266com_index.json

// 5. انقر فوق "موافق" لإغلاق علامة التبويب "التفضيل" …

// 6. انتقل إلى الأدوات واللوحة ، ثم حدد مدير مجلس الإدارة …

// 7. انتقل إلى esp8266 بواسطة مجتمع esp8266 وقم بتثبيت البرنامج لـ Arduino …

// 8. قد تحتاج إلى تنزيل برنامج التشغيل CH340 وتثبيته إذا لم تتمكن من جعل NodeMCU يتحدث مع Arduino IDE الخاص بك:

// بمجرد اكتمال جميع العمليات المذكورة أعلاه ، نقرأ لبرمجة وحدة التحكم الدقيقة esp8266 NodeMCU الخاصة بنا باستخدام Arduino IDE.

//9.اختر NodeMCU V1.0 ESP12E من قائمة اللوحة /

/ 10. حدد منفذ COM الذي تستخدمه.

// 11. حدد الكود (تنزيل من www.makersa.ga) وانقر فوق تحميل. /

/ 12. قم بتوصيل المؤازرة بـ NodeMCU باستخدام أسلاك التوصيل. D0 للإشارة ، من الأرض إلى الأرض ، + VCC إلى VO أو 3V. /

/ 13. اضبط بوق المؤازرة باستخدام مفك البراغي.

// 14. اضبط درجات الحركة القصوى والدنيا باستخدام الكود.

//15. أعد التحميل إلى NodeMCU كلما تم تحديث الكود.

// قد تجد أنه من المهم معرفة إصدار NodeMCU لديك. هنا دليل مقارنة:

frightanic.com/iot/comparison-of-esp8266-no… // مخطط pinout NodeMCU v1: https://frightanic.com/iot/comparison-of-esp8266-no… // مخطط pinout NodeMCU v2: https://frightanic.com/iot/comparison-of-esp8266-no… // مخطط pinout NodeMCU v3:

// شرح الحفارات:

// مصنوعة من متحكم NodeMCU ESP8266 أو بطارية أو مزود طاقة USB و SG90 Servo

// يمكنك استخدام وحدة esp8266 ثانية غير معدلة كنقطة اتصال منارة AP بدلاً من استخدام هاتف ذكي ، لا حاجة إلى البرمجة.

الخطوة 3: الحصول على أجزاء البرنامج

ستحتاج أولاً إلى تنزيل Arduino IDE المجاني

لا يعمل Arduino Web Editor مع NodeMCU في الوقت الذي أكتب فيه هذا ، لذلك سيتعين عليك تثبيت IDE على جهاز الكمبيوتر الخاص بك بدلاً من ذلك.

ستحتاج أيضًا إلى الحصول على ملفات NearBot من www. MakerSa.ga - رابط تنزيل الملف لهذا المشروع مدرج في هذا الموقع.

الخطوة 4: تثبيت ملفات تعريف برامج التشغيل واللوحة

بعض المعلومات المفيدة
بعض المعلومات المفيدة

داخل NearBot zip الذي قمت بتنزيله وفك ضغطه ، سيكون هناك برامج تشغيل لوحدة NodeMCU. قم بتثبيت هؤلاء على جهاز الكمبيوتر الخاص بك.

إذا كانت هذه لا تعمل من أجلك ، فقد تتمكن من العثور على برامج تشغيل CH340G على wemos.cc/downloads

قد لا تستخدم NodeMCU شريحة CH340G ، لذلك قد تحتاج إلى التعليق مع برنامج التشغيل الذي تبحث عنه ، وسأرد برابط التنزيل لبرنامج التشغيل هذا.

  1. بعد ذلك ، افتح Arduino IDE وانتقل إلى File PreferencesAdditional Boards Manager في Arduino IDE.
  2. الصق الكود التالي هناك:
  3. انقر فوق "موافق" لإغلاق علامة التبويب "التفضيلات".
  4. انتقل إلى الأدوات واللوحة ، ثم حدد مدير مجلس الإدارة.
  5. انتقل إلى "esp8266 by esp8266 community" وقم بتثبيت البرنامج لـ Arduino.

بمجرد اكتمال جميع العمليات المذكورة أعلاه ، نكون مستعدين لبرمجة وحدة التحكم الدقيقة esp8266 NodeMCU الخاصة بنا باستخدام Arduino IDE!

الخطوة الخامسة: بعض المعلومات المفيدة

بعض المعلومات المفيدة
بعض المعلومات المفيدة
بعض المعلومات المفيدة
بعض المعلومات المفيدة

قد تجد أنه من السهل معرفة إصدار NodeMCU لديك. هنا دليل المقارنة:

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

كل إصدار له ترتيبات دبوس مختلفة. لقد اشتريت الإصدار v3 (Lolin) لأنه يحتوي على دبابيس خرج 5 فولت لتشغيل محرك سيرفو. لقد استخدمت بدلاً من ذلك دبابيس الطاقة 3 فولت بدلاً من ذلك من أجل السلامة (دبابيس NodeMCU I / O ليست متسامحة 5 فولت) ، ولكن قد ترغب في استخدام دبابيس 5 فولت لأن هذه الأنواع من المحركات المؤازرة تقنيًا محددة بقوة 4.5 إلى 5 فولت.

الخطوة 6: قم بتحميل الكود على NodeMCU

قم بتحميل التعليمات البرمجية إلى NodeMCU
قم بتحميل التعليمات البرمجية إلى NodeMCU
قم بتحميل التعليمات البرمجية إلى NodeMCU
قم بتحميل التعليمات البرمجية إلى NodeMCU
  1. قم بتوصيل NodeMCU بجهاز الكمبيوتر الخاص بك باستخدام أي كابل USB صغير.
  2. افتح Arduino IDE ، وتحت "اللوحات" ، حدد "ESP12E" ، ومنفذ COM لـ NodeMCU.
  3. في IDE ، انتقل إلى FileOpen وتصفح المجلد المضغوط الذي تم تنزيله مسبقًا منakersa.ga لفتح رسم Arduino المسمى "ProximityActuator013017DonovanMagryta.ino"
  4. بعد ذلك ، قم بتحرير سطر الكود الذي يحتوي على هذا لإضافة اسم وكلمة مرور منارة WiFi الخاصة بك. المزيد عن ذلك أدناه! على سبيل المثال:

const char * ssid = "mywifi" ؛ // ضع اسم نقطة الاتصال الخاصة بك داخل علامات الاقتباس

const char * password = "mywifipassword" ؛ // ضع كلمة مرور نقطة الاتصال الخاصة بك داخل علامات الاقتباس

ثم انقر فوق "تحميل" لإخراج الشفرة على لوحة NodeMCU.

يستخدم NearBot منارة WiFi صغيرة الحجم للتعرف عليك وتقدير المسافة. تمامًا مثل مفاتيح القرب ، تتمتع بعض السيارات الجديدة بفتح باب السيارة عند اقترابك.

يمكنك استخدام نقطة اتصال هاتفك الذكي كمنارة ، أو بدلاً من ذلك استخدام وحدة ESP-01 WiFi رخيصة تعمل بواسطة زوج من بطاريات AAA أو بطارية ليثيوم 3.7 فولت صغيرة. لا حاجة لبرمجة ESP-01 ، فهو يتحول افتراضيًا إلى مخزون وضع نقطة الاتصال عند تشغيله. يظهر مخطط الدائرة لذلك في هذه الخطوة.

الخطوة 7: قم بتوصيل المؤازرة بـ NodeMCU

ستحتاج إلى بعض أسلاك التوصيل لتوصيل المؤازرة بـ NodeMCU V3.

مخطط الدائرة بسيط.

قم بتوصيل D0 بالإشارة الموجودة في الرصاص (سلك الألوان الأخف على المؤازرة. عادة ما يكون أصفر أو أبيض.)

قم بتوصيل 3 فولت أو دبوس VO بسلك إدخال 5 فولت (ثاني أخف سلك لون على المؤازرة ، عادة ما يكون أحمر أو برتقالي.)

قم بتثبيت GND على الرصاص الأرضي (أحلك سلك ملون على المؤازرة ، عادة ما يكون بني أو أسود.)

الخطوة 8: صقل NearBot

يحول الكود قوة الإشارة إلى تقدير المسافة. يعمل بشكل موثوق مع مسافات التفاعل التي تقل عن مترين أو 6.5 قدم. نظرًا لأنه تحويل مباشر ، فهو ليس سلسًا لمسافات أبعد من 3 أمتار كما يمكن أن يكون مع طريقة حساب أفضل. المزيد عن ذلك لاحقًا.

قد ترغب في ضبط موضع بوق المؤازرة (الذراع البيضاء الصغيرة التي تتحرك). يتم ذلك ببساطة عن طريق فك ذراع المؤازرة بمفك البراغي ، وإعادة وضعه.

الجزء التالي هو ضبط درجات الحركة القصوى والدنيا باستخدام الكود.

يمكن القيام بذلك عن طريق تغيير الأرقام الموجودة في الأسطر التي تبدو كالتالي:

myservo.write (10) ؛ // يحرك ذراع المؤازرة إلى دوران 10 درجات

يمكنك أيضًا ضبط حساسية قوة الإشارة عن طريق تغيير الأرقام السالبة في الأسطر التي تبدو كالتالي:

if (rssi> -30 && rssi <-5) {// إذا كانت قوة الإشارة أقوى من -30 وأضعف من -5. ثم قم بما يلي …

الخطوة 9: كيف يعمل

  1. يتصل NearBot أولاً بالنقطة الفعالة مقدمًا عندما يقترب المستخدمون.
  2. يقوم بمسح RSSI (قوة الإشارة المستقبلة) ويحولها إلى مسافة تقريبية.
  3. عندما تكون المسافة ضمن النطاق المحدد ، فإنه يحرك ذراع المحرك المؤازر إلى الموضع 1.
  4. خلاف ذلك ، يتم نقل محرك سيرفو إلى الموضع 2.

عندما اختبرت هذا ، فإن ضبط RSSI (-50) يحرك المؤازرة إلى الموضع 1 بينما المسافة من 0 إلى 1.5 متر مع منارة ESP-01 أو نقطة اتصال الهاتف في جيبي.

يقع مؤشر RSSI عادةً في نطاق من -90 إلى -20 ، مع كون -20 هو أقوى قوة إشارة.

إذا قمت بفتح Arduino IDE Serial Monitor أثناء توصيل NearBot بالكمبيوتر ، فسوف يعرض قوة الإشارة ونقاط التشغيل في الوقت الفعلي حتى يكون لديك ملاحظات مفيدة.

ها هو الكود الكامل:

//قبل ان تبدا:

// 1. إذا لم تكن قد قمت بالفعل بتنزيل Arduino IDE ، فاحصل عليه مجانًا (تبرع اختياري) على: https://www.arduino.cc/en/Main/Software // 2. افتح Arduino IDE (إذا لم تكن تقرأ هذا في Arduino IDE بالفعل!) … // 3. انتقل إلى الملفات وانقر فوق التفضيل في Arduino IDE… // 4. انسخ الرابط أدناه في مدير اللوحات الإضافية: //https://arduino.esp8266.com/stable/package_esp8266com_index.json // 5. انقر فوق "موافق" لإغلاق علامة تبويب التفضيلات… // 6. انتقل إلى الأدوات واللوحة ، ثم حدد مدير مجلس الإدارة… // 7. انتقل إلى esp8266 بواسطة مجتمع esp8266 وقم بتثبيت البرنامج لـ Arduino… // 8. قد تحتاج إلى تنزيل برنامج التشغيل CH340 وتثبيته إذا لم تتمكن من جعل NodeMCU يتحدث مع Arduino IDE الخاص بك: https://www.arduino.cc/en/Main/Software // بمجرد اكتمال جميع العمليات المذكورة أعلاه ، نكون قد انتهينا اقرأ لبرمجة وحدة التحكم الدقيقة esp8266 NodeMCU الخاصة بنا باستخدام Arduino IDE. قد ترغب في معرفة إصدار NodeMCU لديك. إليك دليل مقارنة: https://www.arduino.cc/en/Main/Software // مصنوع من متحكم دقيق NodeMCU ESP8266 أو بطارية أو مزود طاقة USB و SG90 Servo // يمكنك استخدام وحدة esp8266 غير معدلة ثانية كمنارة نقطة اتصال نقطة الوصول بدلاً من استخدام الهاتف الذكي. // NearBot Circuit: // D0 pin لسلك إشارة المؤازرة (سلك اللون الأخف) // دبوس 3 فولت إلى سلك مؤازر 5 فولت (السلك الأوسط) (مقسم بالتوازي مع كابل USB أو دبوس VO على NodeMCU إذا كان لديك V3. / / USB power to USB plug on the NodeMCU // GND pin to Servo Ground wire (أحلك سلك ملون) // تبدأ خطوط الملاحظات بشرطتين مائلتين للأمام ، وتتجاهلها أجهزة الكمبيوتر. الملاحظات مخصصة لنا نحن البشر فقط! // قد تكون مطلوبة للطباعة التسلسلية. # تضمين // مكتبة مؤازرة # تعريف D0 16 // يحدد المسامير لتسهيل تعيين المسامير. #define D1 5 // I2C Bus SCL (clock) #define D2 4 // I2C Bus SDA (data) #define D3 0 #define D4 2 // مثل "LED_BUILTIN" ، لكن المنطق المقلوب #define D5 14 // SPI Bus SCK (clock) #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 // Phone أو وحدة ESP8266 إضافية مضبوطة على وضع نقطة فعالة AP: const ch ar * ssid = "" ؛ // ضع اسم نقطة الاتصال الخاصة بك داخل علامتي الاقتباس const char * password = "" ؛ // ضع كلمة مرور نقطة الاتصال الخاصة بك داخل إعداد باطل علامات الاقتباس () {Serial.begin (115200) ؛ // يعين معدل الباود التسلسلي حتى يتمكن المتحكم الدقيق من التحدث إلى واجهة الطباعة التسلسلية في Arduino IDE - قد تحتاج إلى تغييره إلى 9600 بدلاً من ذلك! myservo.attach (D0) ؛ // يعلق المؤازرة على الدبوس D0 المعروف أيضًا باسم GPIO16 بكائن المؤازرة - انظر المزيد على: https://www.esp8266.com/viewtopic.php؟f=32&t=8862#… myservo.write (10)؛ // يحرك ذراع المؤازرة إلى 10 درجات دوران Serial.println ("مغلق") ؛ // إخراج الشاشة التسلسلية كلمة "مقفل" WiFi.mode (WIFI_STA) ؛ // يعين wifi على وضع المحطة WiFi.begin (ssid ، كلمة المرور) ؛ // Connects to hotspot beacon} void loop () {// تعمل الحلقة مرارًا وتكرارًا بسرعة إذا (WiFi.status ()! = WL_CONNECTED) {// إذا لم يكن wifi متصلًا ، فقم بما يلي … Serial.println ("تعذر الحصول على اتصال wifi") ؛ myservo.write (10) ؛ // يحرك ذراع المؤازرة إلى 10 درجات Serial.println ("مغلق") ؛ } else {// إذا كان WiFi متصلًا ، فقم بما يلي … long rssi = WiFi. RSSI ()؛ // ينشئ متغيرًا باسم rssi ويخصصه للدالة التي تُرجع قراءة قوة الإشارة لمنارة نقطة الاتصال Serial.print (rssi) ؛ // لإخراج قراءة rssi إلى الشاشة التسلسلية إذا (rssi> -50 && rssi <-5) {// إذا كانت قوة الإشارة أقوى من -50 ، وأضعف من -5. ثم قم بما يلي … myservo.write (170)؛ // تدوير ذراع المؤازرة إلى 170 درجة Serial.println ("مفتوح") ؛ } else {// إذا لم تتحقق الشروط أعلاه ، فقم بما يلي … myservo.write (10)؛ // يدير ذراع المؤازرة للخلف إلى 10 درجات. Serial.println ("مغلق") ؛ }}}

الخطوة العاشرة: يجب أن تعرف …

تنصل:

يعمل التكرار الحالي لرمز NearBot بشكل موثوق للمسافات التي تقل عن 2 متر أو 6.5 قدم. أبعد من ذلك ، تصبح أقل دقة ، لكنها لا تزال تعمل.

يمكن إصلاح ذلك ، لكن في الوقت الحالي لا أعرف كيفية القيام بذلك. أود أن يعمل معي شخص ما حتى أتمكن من تحديث هذه التعليمات بطريقة أكثر دقة لحساب المسافة!

قد تكون هذه الروابط مفيدة: طور YouTuber CNLohr برنامجًا ثابتًا لاستشعار المسافة والموضع لـ ESP8266 بنجاح محدود:

طور Espressif وظيفة اكتشاف مسافة الرحلة التي ستعمل مع Arduino IDE لـ ESP8266 ، لكنها لم تطلقها مطلقًا:

يستخدم نظام تحديد المواقع SubPos وحدات ESP8266 وحساب خسارة المسار ، وهو ما لا أعرف كيفية تنفيذه في Arduino IDE:

لقد وجدت مثالًا بلغة Java ، لكنني لا أعرف كيفية تكرار هذا هو Arduino IDE:

المسافة المزدوجة = Math.pow (10.0، (((double) (tx_pwr / 10)) - rx_pwr - 10 * Math.log10 (4 * Math. PI / (c / frequency))) / (20 * mu)) ؛

الخطوة 11: هذا كل شيء

إذا قمت بإنشاء NearBot الخاص بك ، فقم بإرسال "لقد صنعته" في التعليقات أدناه!

إذا كان لديك المزيد من الأفكار حول ما يجب استخدام منصة NearBot متعددة الاستخدامات من أجله ، فيرجى التعليق على أفكارك! يمكن أن يكون مصدر إلهام كبير لمستخدمي التعليمات الآخرين!

إذا كنت تستمتع بهذا البرنامج التعليمي ، فالرجاء التفكير في التصويت على هذه التعليمات في المسابقات!

موصى به: