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

MicroPython IoT Rover استنادًا إلى WEMOS D1 (ESP-8266EX): 7 خطوات (بالصور)
MicroPython IoT Rover استنادًا إلى WEMOS D1 (ESP-8266EX): 7 خطوات (بالصور)

فيديو: MicroPython IoT Rover استنادًا إلى WEMOS D1 (ESP-8266EX): 7 خطوات (بالصور)

فيديو: MicroPython IoT Rover استنادًا إلى WEMOS D1 (ESP-8266EX): 7 خطوات (بالصور)
فيديو: Build a WiFi Controlled Robot with the ESP8266 2024, شهر نوفمبر
Anonim
Image
Image
MicroPython IoT Rover استنادًا إلى WEMOS D1 (ESP-8266EX)
MicroPython IoT Rover استنادًا إلى WEMOS D1 (ESP-8266EX)

** تحديث: لقد نشرت مقطع فيديو جديدًا للإصدار 2 بحركة **

أستضيف ورش عمل حول الروبوتات للأطفال الصغار وأبحث دائمًا عن منصات اقتصادية لبناء مشاريع مثيرة للاهتمام. في حين أن استنساخ Arduino رخيص ، إلا أنه يستخدم لغة C / C ++ التي لا يعرفها الأطفال. أيضًا ، لا يحتوي على شبكة WiFi مضمنة وهو أمر ضروري لمشاريع إنترنت الأشياء. من ناحية أخرى ، بينما يحتوي Raspberry Pi على WIFI ويمكن للأطفال برمجته باستخدام Python ، إلا أنه لا يزال نظامًا أساسيًا مكلفًا للتحكم في عدد قليل من منافذ GPIO لتشغيل الأجهزة وإيقاف تشغيلها. أحتاج إلى شيء ما بينهما يتمتع بإمكانيات WIFI و Python. يبدو أنني وجدت إجابتي في MicroPython تومض على لوحة رخيصة تعتمد على ESP8266.

ما هو Micropython؟

وفقًا لموقعه على الويب ، يعد MicroPython تطبيقًا خفيفًا وفعالًا للغات برمجة Python 3 التي تتضمن مجموعة فرعية صغيرة من مكتبة Python القياسية وهي مُحسّنة للتشغيل على وحدات تحكم دقيقة وفي بيئة مقيدة (مثل ESP8266). إنه أساسًا Python IDE على شريحة. تتمثل إحدى الفوائد الرئيسية في أنه يمكنك إنشاء رمز وتغييره أثناء التنقل باستخدام عميل متصفح ويب يسمى Webrepl. (حاول القيام بذلك في Arduino.) يمكنك أيضًا رؤية بيانات المستشعر في الوقت الفعلي على Webrepl بدلاً من الاعتماد على تسجيل البيانات أو شاشة LED في Arduino.

ما هو ESP8266؟

باختصار ، فكر في الأمر على أنه Arduino مع إمكانية شبكة مدمجة. يمكنك استخدام Arduino IDE لبرمجة لوحات ESP8266 في C / C ++ أو يمكنك تحديثها باستخدام NodeMCU أو MicroPython. في هذا المشروع ، سأومض MicroPython على لوحة ESP8266.

قررت الحصول على WEMOS D1 الذي يعتمد على ESP8266-12EX لهذا المشروع البسيط حيث سأقوم بالتنقل في سيارة ثنائية الدفع باستخدام متصفح ويب. هناك لوحات أخرى مصممة لـ MicroPython لكنني أردت شيئًا رخيصًا يمكنني التخلص منه إذا لم يفي بالمعايير الخاصة بي. كما هو متوقع ، لقد استوفى جميع متطلباتي وعلى الأرجح سأقوم بدمج WeMos و Micropython في المشاريع المستقبلية.

الخطوة 1: الأجزاء

القطع
القطع
القطع
القطع
القطع
القطع
القطع
القطع
  • Wemos D1 أو أي لوحات قائمة على ESP8266
  • درع المحرك (أستخدم L293D رخيصًا من AliExpress)
  • حاملات البطاريات لـ 4 x AA و 9 V (4 بطاريات AA للمحركات و 9 V للوحة Wemos)
  • هيكل السيارة 2WD
  • كابلات دوبونت

قد تحتاج إلى مكواة لحام وسائق لولبي ومسدس غراء لتجميع كل شيء معًا.

الخطوة 2: تجميع الأجهزة

تجميع الأجهزة
تجميع الأجهزة
تجميع الأجهزة
تجميع الأجهزة
تجميع الأجهزة
تجميع الأجهزة

أولاً ، قم بتجميع الهيكل وفقًا للتعليمات.

ثم ، الغراء الساخن المكونات الأخرى كما هو موضح.

يجب أن يتم لحام أسلاك المحرك بأطراف المحرك واستخدام الغراء الساخن لتقوية الوصلات الطرفية.

تم إلصاق مفتاح صغير بحامل بطارية 4AA. سيؤدي هذا إلى تشغيل / إيقاف تشغيل الطاقة لدرع المحرك.

الخطوة 3: الأسلاك

الأسلاك
الأسلاك
الأسلاك
الأسلاك
الأسلاك
الأسلاك

اتبع مخطط الأسلاك الخاص بي كما هو موضح.

Wemos to Motor Shield:

D1 IN2

D2 IN1 D3 IN4 ** تخطي D4 D5 IN3 GND -> GND

درع المحرك للمحرك / الطاقة:

محطة -> محرك اليسار

محطة B -> المحرك الأيمن VCC -> البطارية (+) GND -> البطارية (-)

الخطوة 4: تثبيت MicroPython

أولاً ، يحتوي Wemos على شريحة تسلسلية / USB تعتمد على CH304G. هذه هي نفس الشريحة الموجودة في نسخ Arduino الرخيصة ويجب عليك تثبيت برنامج تشغيل مناسب لجهاز Mac أو الكمبيوتر الشخصي. اتبع التعليمات الموجودة على هذا الموقع لتثبيت برنامج التشغيل.

قم بتوصيل Wemos بجهاز الكمبيوتر الخاص بك وتأكد من أن جهاز الكمبيوتر الخاص بك يمكنه اكتشاف Wemos. على نظام Mac ، قم بتشغيل الأمر التالي وسترى جهازًا يسمى /dev/tty.wchusbserial640.

$ ls -lt / dev / tty * | رئيس

crw-rw-rw- 1 عجلة الجذر 17 ، 4 مارس 2 23:31 /dev/tty.wchusbserial640

إذا كنت تستخدم جهاز كمبيوتر ، فيمكنك استخدام Instructable كمرجع.

بعد ذلك ، ستحتاج إلى إعداد Python 2 أو 3 على جهاز الكمبيوتر الخاص بك لأن أداة الفلاش esptool.py تعتمد على Python. بينما قد يوضح دليل MicroPython أن الأداة تعمل فقط مع Python 2.7 ، فقد تمكنت من تشغيل ذلك في Python 3 دون أي مشاكل. قم بتنزيل أحدث إصدار من Python من https://www.python.org واتبع إرشادات التثبيت الخاصة بجهاز الكمبيوتر الشخصي أو جهاز Mac.

أخيرًا ، ستحتاج إلى تثبيت MicroPython على Wemos. يحتوي موقع MicroPython على برنامج تعليمي ممتاز حول كيفية إعداد MicroPython على ESP8266. ما عليك سوى اتباع تعليمات التثبيت الواردة في "الشروع في استخدام MicroPython" على ESP8266.

فيما يلي الأوامر التي استخدمتها:

esptool.py --port /dev/tty.wchusbserial640 erase_flash

esptool.py v1.3 توصيل…. تشغيل كعب Cesanta المتعري … مسح الوميض (قد يستغرق ذلك بعض الوقت) … استغرق المسح 10.5 ثانية

$ esptool.py --port /dev/tty.wchusbserial640 write_flash -fm dio -fs 32m -ff 40m 0x00000 esp8266-20170108-v1.8.7.bin

esptool.py v1.3 توصيل…. تشغيل كعب Cesanta المتعري … ضبط معلمات الفلاش على 0x0240 كتب 589824 بايت عند 0x0 في 50.8 ثانية (92.8 كيلوبت / ثانية) … مغادرة …

تم تثبيت MicroPython الآن على لوحك!

الخطوة 5: إعداد الشبكة

شبكة الإعداد
شبكة الإعداد

بينما يتم الآن تثبيت MicroPython على Wemos الخاص بك ، إلا أنه غير متصل بشبكتك بعد. ستحتاج أولاً إلى تمكين الشبكة. في نظام Mac ، قم بتنفيذ الأمر SCREEN لبدء جلسة المحطة الطرفية التسلسلية إلى Wemos.

شاشة $ /dev/tty.wchusbserial640 115200

عندما ترى شاشة فارغة ، اضغط على RETURN لرؤية مطالبة:

>>

(ملاحظة: للخروج ، اكتب CTRL-A CTRL-)

الآن ، دعنا نقوم بتمكين وصول عملاء الويب. اكتب "import webrepl_setup" لتشغيل برنامج الإعداد. أدخل E لتمكين WebREPL ثم قم بتعيين كلمة المرور. أعد التشغيل لتنشيط التغييرات.

>> استيراد webrepl_setup

حالة البدء التلقائي لبرنامج WebREPL daemon: معطل هل ترغب في (E) nable أم (D) يمكن تشغيله عند التمهيد؟ (سطر فارغ للخروج)> E لتمكين WebREPL ، يجب عليك تعيين كلمة مرور لها كلمة مرور جديدة: xxxxx تأكيد كلمة المرور: xxxxx سيتم تنشيط التغييرات بعد إعادة التشغيل هل ترغب في إعادة التشغيل الآن؟ (ص / ن) ذ

أخيرًا ، قم بتنزيل عميل Webrepl على جهازك. هذا اختياري ولكن العميل يأتي مع أدوات مفيدة أخرى قد ترغب في استخدامها لاحقًا. على سبيل المثال ، يعد webrepl_cli.py أمرًا لنسخ الملفات إلى Wemos بصيغة scp. استخدم git لتنزيل العميل. (قم بتثبيت أداة git إذا لم تكن لديك بعد.)

استنساخ بوابة

افتح مستعرض الويب الخاص بك وفي حقل URL ، أدخل موقع موقع ملف عميل webrepl الذي تم تنزيله مثل:

ملف: ///Users/xxxxx/wemos/webrepl/webrepl.html

يجب أن يعرض هذا عميل webrepl على متصفحك. قبل أن تتمكن من الاتصال به ، يجب عليك أولاً الاتصال بنقطة وصول WIFi. إذا نظرت إلى WIFI المتاح لجهاز الكمبيوتر الخاص بك ، فسترى شبكة تبدأ بـ MicroPython-xxxx. اتصل بتلك الشبكة. (تحذير: بمجرد الاتصال بهذه الشبكة ، ستفقد إمكانية الوصول إلى الإنترنت.)

ارجع إلى عميل webrepl الخاص بك وانقر فوق اتصال. يجب أن يطالب بكلمة المرور. أدخل كلمة مرور Wemos الخاصة بك ويجب عليك الاتصال.

مرحبًا بك في MicroPython!

كلمة المرور: WebREPL متصل >>>

لا يزال Wemos الخاص بك قيد التشغيل في وضع AccessPoint. على الرغم من أن هذا لا بأس به ، إلا أنني أفضل تشغيله في وضع المحطة حيث يتصل بشبكة WIFI المنزلية الخاصة بي حتى يتمكن جهاز الكمبيوتر الخاص بي من الوصول إليه من خلال شبكة WIFI المنزلية ولا يزال لديه اتصال بالإنترنت. للقيام بذلك ، سيتعين عليك إنشاء ملف يسمى boot.py مع تكوين الشبكة وتحميله إلى Wemos.

هنا نموذج boot.py. قم بتغيير ssid وكلمة المرور إلى شبكة WIFI المنزلية الخاصة بك. أيضًا ، أريد أن أمنحه عنوان IP ثابتًا من 192.168.0.32. قم بتغييره إلى عنوان IP المتاح لشبكة WIFI في منزلك.

boot.py (يمكنك تنزيله من الأسفل)

استيراد gc

استيراد webrepl def do_connect (): استيراد شبكة sta_if = network. WLAN (شبكة. STA_IF) إذا لم يكن sta_if.isconnected (): طباعة ('الاتصال بالشبكة …') sta_if.active (صحيح) sta_if.ifconfig (('192.168.1.1) 0.32 '،' 255.255.255.0 '،' 192.168.0.1 '،' 192.168.0.1 ')) sta_if.connect (' '،') أثناء عدم الاتصال sta_if.isconnected (): تمرير الطباعة ('network config:'، sta_if.ifconfig ()) do_connect () webrepl.start () gc.collect ()

استخدم نموذج "إرسال ملف" الخاص بعميل Webrepl لإرسال ملف boot.py إلى Wemos. اضغط على زر إعادة التشغيل لإعادة التشغيل. إذا كنت لا تزال متصلاً عبر USB باستخدام الأمر SCREEN ، فسترى:

الاتصال بالشبكة … تهيئة الشبكة: ('192.168.0.32'، '255.255.255.0'، '192.168.0.1'، '192.168.0.1') بدأ برنامج WebREPL الخفي على ws: //192.168.4.1: 8266 WebREPL daemon بدأ في ws: //192.168.0.32: 8266 تعذر على webrepl الذي تم بدء تشغيله في الوضع العادي فتح الملف "main.py" لقراءة MicroPython v1.8.7-7-gb5a1a20a3 بتاريخ 2017-01-09 ؛ وحدة ESP مع ESP8266 اكتب "help ()" لمزيد من المعلومات. >>>

هذا يؤكد أن Wemos الخاص بك متصل بشبكة WIFI الخاصة بمنزلك باستخدام عنوان ipaddress 192.168.0.32.

يمكنك اختبار اتصال عنوان IP هذا للتحقق.

$ ping 192.168.0.32

PING 192.168.0.32 (192.168.0.32): 56 بايت بيانات

64 بايت من 192.168.0.32: icmp_seq = 0 ttl = 255 الوقت = 9.334 مللي ثانية 64 بايت من 192.168.0.32: icmp_seq = 1 ttl = 255 الوقت = 11.071 مللي ثانية..

الخطوة السادسة: تثبيت البرنامج الرئيسي

تثبيت البرنامج الرئيسي
تثبيت البرنامج الرئيسي
تثبيت البرنامج الرئيسي
تثبيت البرنامج الرئيسي

أخيرًا ، ستحتاج إلى تثبيت البرنامج الرئيسي الذي سيستمر في العمل على Wemos الخاص بك.

ارجع إلى متصفح الويب الخاص بك وقم بتشغيل برنامج عميل webrepl. قم بتغيير عنوان IP إلى عنوان IP الخاص بـ Wemos. في حالتي ، أصبح الآن 192.168.0.32. أدخل كلمة مرور Wemos الخاصة بك ويجب أن تكون متصلاً الآن بـ Wemos.

لنقم بتحميل برنامج main.py المرفق. قم بتنزيل الملف المرفق على جهاز الكمبيوتر الخاص بك. انقر فوق اختيار ملف لاختيار main.py التي تم تنزيلها وانقر فوق إرسال إلى الجهاز.

ستحتاج إلى الضغط على زر Rest لتحميل برنامج main.py. بعد الضغط على زر إعادة الضبط ، سترى:

الاتصال بالشبكة …

تهيئة الشبكة: ("192.168.0.32" ، "255.255.255.0" ، "192.168.0.1" ، "192.168.0.1")

بدأ برنامج WebREPL الخفي في ws: //192.168.4.1: 8266 WebREPL daemon بدأ في ws: //192.168.0.32: 8266 بدأ webrepl في الوضع العادي الاستماع ، قم بتوصيل المتصفح بـ …

هذا يعني أن برنامج main.py الخاص بك قد تم تنشيطه وإدراجه في المنفذ 80.

للاختبار ، افتح متصفح الويب وأدخل

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

الخطوة 7: التحسينات المستقبلية

عناصر المهام التالية موجودة في قائمة الإصدار 2 الخاصة بي:

  • استخدم PWM للتحكم في سرعة المحرك
  • تحسين واجهة الويب. ربما استخدم إطار عمل aREST. لا أعتقد أن aREST lib متاح على MicroPython في هذه اللحظة ، لذا قد أضطر إلى اختراقه.

شكرا لك على قراءة هذا Instructable. تابعوني على Facebook و Youtube و Instructables لمزيد من المشاريع في المستقبل.

موصى به: