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

سيارة RasbperryPi مع كاميرا FPV. التحكم عن طريق مستعرض الويب: 31 خطوة (بالصور)
سيارة RasbperryPi مع كاميرا FPV. التحكم عن طريق مستعرض الويب: 31 خطوة (بالصور)

فيديو: سيارة RasbperryPi مع كاميرا FPV. التحكم عن طريق مستعرض الويب: 31 خطوة (بالصور)

فيديو: سيارة RasbperryPi مع كاميرا FPV. التحكم عن طريق مستعرض الويب: 31 خطوة (بالصور)
فيديو: How To Install Yahboom Raspblock AI Smart Robot Car Kit? - Banggood Toy&Hobbies 2024, شهر نوفمبر
Anonim
Image
Image

سنقوم ببناء سيارة 4wd - سيكون التوجيه مشابهًا لخزان - لتشغيل جانب واحد من العجلات سوف يدور بسرعة مختلفة عن الأخرى. في السيارة سيتم وضع الكاميرا على حامل خاص حيث يمكننا تغيير موضع الكاميرا. سيتم التحكم في الروبوت عن طريق متصفح الويب (Chrome أو Firefox على سطح المكتب ، أو Firefox على الهاتف المحمول) ، في المتصفح ، سنحصل على فيديو بالكاميرا (مع زمن انتقال 200 مللي ثانية فقط) ، ومن المتصفح ، يمكننا التحكم في حركات السيارة و موقف الكاميرا. لتسهيل الاتصال ، استخدمت نظام app.remoteme.org ، هناك أيضًا عمل خارج الصندوق للتحكم في هذا النوع من السيارات ، لذلك ليس عليك كتابة الكود الخاص بك ، ولكن بالطبع يمكنك تعديل البرامج النصية وإضافة إمكانيات جديدة إلخ.

قبل توصيل الطاقة بـ PCB ، يرجى التحقق مرتين من جميع التوصيلات

الخطوة 1: بعض المعلومات حول App.remoteme.org

يتكون النظام من ثلاثة أجزاء

  • تطبيق الويب - عندما تستضيف صفحات الويب الخاصة بالتحكم وتربط كل الاتصالات
  • برنامج rasbperryPi - البرنامج الذي يرسل الفيديو ، وإدارة البرامج النصية للبيثون
  • المكتبات حيث تجد الفصل ، تعريفات الوظائف

Remoteme.org نظام سريع يمكنك ربط جميع أجهزتك ببعضها البعض ، ويمكنك استضافة صفحات الويب الخاصة بك هناك ، والاطلاع على أجهزتك المتصلة. تم تصميم نظام Remoteme.org لمساعدتك على البدء في إنشاء مشاريعك ، دون القلق بشأن اتصالات البروتوكول ، والفكرة الرئيسية هي إرسال رسائل ثنائية بين الأجهزة المختلفة مثل صفحات الويب و RasbeprryPI و arduino والبرامج النصية.

من ناحية أخرى ، يمنحك Remoteme.org التحكم الكامل في ملفاتك ، ويمكنك تعديلها بسهولة عن طريق كتابة الوظائف الخاصة بك

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

في نهاية هذا البرنامج التعليمي ، قمت بوضع روابط مفيدة ستساعدك على فهم نظام remoteme.org.

الخطوة الثانية: ما هو المطلوب:

ما هو مطلوب
ما هو مطلوب
ما هو مطلوب
ما هو مطلوب
  • Raspberry PI Zero W
  • كاميرا مخصصة
  • Adafruit 16-Channel 12-bit PWM / Servo Driver - واجهة I2C - PCA9685 أو استنساخه
  • آليتان مؤازرتان متوافقان مع حامل الكاميرا
  • حامل الكاميرا
  • البطاريات - في البرنامج التعليمي هناك احتمالان للاتصال
  • H جسر TB6612FNG ، للتحكم في سبير العجلة
  • ملفات PCB eagle من السهل جعلها طريقة النقل الحراري DC-DC
  • تنحى وحدة المحول DC
  • حالة الروبوت

الخطوة 3: التوصيلات

روابط
روابط

آلية التحكم المؤازرة Raspberry Pi من خلال وحدة PWM وسرعة المحرك عن طريق جسر H المتصل بدبابيس RasbperryPi ، يتم إنشاء إدخال PWM إلى جسر H بواسطة نفس الوحدة التي استخدمتها في الماكينات (الأجزاء التي ذكرتها أعلاه لا حاجة إلى محولات منطقية)

الخطوة 4: ثنائي الفينيل متعدد الكلور

ثنائي الفينيل متعدد الكلور
ثنائي الفينيل متعدد الكلور
ثنائي الفينيل متعدد الكلور
ثنائي الفينيل متعدد الكلور

يمكنك تحميل ملفات PCB eagle من هنا Paths هي سمين لذا من السهل القيام بها عن طريق طريقة النقل الحراري

الخطوة 5: مخرجات PCB

مخرجات ثنائي الفينيل متعدد الكلور
مخرجات ثنائي الفينيل متعدد الكلور
مخرجات ثنائي الفينيل متعدد الكلور
مخرجات ثنائي الفينيل متعدد الكلور
  1. يجب توصيل مدخل PWM لمحركات الدفع بوحدة PWM رقم 15 و 16 (تحقق من المستطيل الأخضر في صورة وحدة PWM)
  2. مدخلات الطاقة لمحركات القيادة (تحقق من الجهد الأقصى الذي يمكن أن تعمل به محركاتك)
  3. الطاقة لوحدة RasbperryPi و PWM - يجب أن تكون بالضبط
  4. نواتج محرك القيادة (هناك نوعان من المخرجات لأننا سنقوم بإقران محركات القيادة)
  5. قوة آليات المؤازرة - عليك أيضًا التحقق من الجهد الجيد بالنسبة لهم
  6. ستعمل وصلة قوتها الحالية من المدخل الخامس على تشغيل المحركات أيضًا ، لذلك لا داعي لتوصيل أي شيء بالمدخل 2
  7. وصلة العبور في حالة وجود RasbperryPi ستكون طاقة من الإدخال الثالث - قبل وضع العبور هنا تحقق مما إذا كانت التوصيلات على ما يرام - لا تريد نسخ RPi
  8. يتيح هنا لحام الكابلات لأننا لا نحتاج إلى محولات منطقية

الخطوة 6: كيف تسير الأمور إلى العمل

يوجد في RasbperryPi نص بيثون يستخدم مكتبتين

  • استيراد RPi. GPIO كـ GPIO - للدبابيس 25-AIN1 و 8-AIN2 و 24-BIN1 و 23-BIN2 (تدوين BCM) المتصلة بجسر H
  • استيراد Adafruit_PCA9685 لوحدة PWM

يتم توصيل دبابيس Rpi على النحو التالي 25-AIN1 ، 8-AIN2 ، 24-BIN1 ، 23-BIN2 (BCM) ووضع التحكم في جسر H (للأمام ، للخلف ، توقف ، فاصل قصير). يحتاج جسر H أيضًا إلى إشارتي PWM حتى نتمكن من التحكم في السرعة أو دوران المحرك. لأنه في المشروع لدينا بالفعل وحدة تحكم PWM (تستخدم لأجهزة المؤازرة) ، سنستخدمها أيضًا لإنشاء PWM للجسر H.

تستخدم وحدة PWM بروتوكول اتصال I2C. لقد استخدمت العمل خارج الصندوق Adafruit_PCA9685. مكتبة

الخطوة السابعة: تجميع السيارة - العجلات

تجميع السيارات - العجلات
تجميع السيارات - العجلات
تجميع السيارات - العجلات
تجميع السيارات - العجلات

سنبدأ من توصيل محركات القيادة بحافظة السيارة. تتصل المحركات الجانبية اليسرى / الجانبية معًا ، ويتصل كلا الزوجين ببعض كبلات الطاقة التي سيتم توصيلها لاحقًا بـ PCB. ملاحظة مهمة أثناء توصيل عجلات المحركات في كل جانب يجب أن تدور في نفس الاتجاه.

الخطوة 8: الطاقة (بطاريات شحن AA) الخيار 1/2

الطاقة (بطاريات شحن AA) الخيار 1/2
الطاقة (بطاريات شحن AA) الخيار 1/2
الطاقة (بطاريات شحن AA) الخيار 1/2
الطاقة (بطاريات شحن AA) الخيار 1/2
الطاقة (بطاريات شحن AA) الخيار 1/2
الطاقة (بطاريات شحن AA) الخيار 1/2
الطاقة (بطاريات شحن AA) الخيار 1/2
الطاقة (بطاريات شحن AA) الخيار 1/2

سأكتب احتمالين لطاقة السيارة ، الأول هو من بطاريات إعادة الشحن 10xAA.

الخطوة 9: الطاقة (بطاريات Li-Po 7.2V) الخيار 2/2

الطاقة (بطاريات Li-Po 7.2V) الخيار 2/2
الطاقة (بطاريات Li-Po 7.2V) الخيار 2/2
الطاقة (بطاريات Li-Po 7.2V) الخيار 2/2
الطاقة (بطاريات Li-Po 7.2V) الخيار 2/2

والخيار الثاني هو بطارية 7.2 LI-PO. في هذه الحالة ، حصلنا على 3 فولتات - 5 فولت لـ Rpi والوحدة النمطية ، و 6 فولت للمضاعفات ومباشرة من البطاريات 7.2 فولت لمحركات القيادة. اضطررت إلى استخدام وحدتي تنحي

الخيار 2 مع LI-PO أفضل:

  • البطاريات ذات سعة أكبر - ستقود السيارة لفترة أطول
  • جهد أكبر لمحركات القيادة - ستقود السيارة بشكل أسرع
  • احتمالية أقل أنه بعد أن تبدأ محركات القيادة في تحديد الموقع ، يمكن أن يكون لدينا انخفاض كبير في الجهد وإعادة تشغيل RPI.

الخطوة 10: اللحام

لحام
لحام
لحام
لحام
لحام
لحام
لحام
لحام

لقد وضعت في PCB بعض الفواصل لوحدة PWM. لا يوجد شيء للكتابة فقط تحقق من الصور كيفية لحام كل شيء معًا

الخطوة 11: الكاميرا

الة تصوير
الة تصوير

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

الخطوة 12: وضع قطع غيار السيارات معًا

تجميع قطع غيار السيارات
تجميع قطع غيار السيارات
تجميع قطع غيار السيارات
تجميع قطع غيار السيارات
تجميع قطع غيار السيارات
تجميع قطع غيار السيارات

بالنسبة لثنائي الفينيل متعدد الكلور ، صنعت طاولة زجاج شبكي صغيرة

الخطوة 13: تكوين App.remoteme.org

تكوين App.remoteme.org
تكوين App.remoteme.org

لقد استخدمت نظام app.remoteme.org المجاني فهو يساعدك على إجراء اتصالات ، ولديه بالفعل نصوص برمجية نحتاجها

في هذا الدليل ، سأعرض فقط خطوة بخطوة ما يجب فعله لجعل قيادة السيارة (هنا ستجد المزيد من التفاصيل)

  • اشترك في https://app.remoteme.org بعد التسجيل ، سيتم تسجيل دخولك تلقائيًا
  • افتح علامة التبويب Token على اليسار ، ثم انقر فوق "رمز مميز جديد" أدخل بعض الاسم وانقر فوق موافق ، لقد أنشأنا للتو رمزًا جديدًا (الصورة على الشاشة)
  • في هذا المثال ، قيمة الرمز المميز هي: ~ 1_ & p @ + BNnZ @ A + x8 (ستكون قيمتك مختلفة ؛))

الخطوة 14: تكوين RasbperryPi

تكوين RasbperryPi
تكوين RasbperryPi

في وحدة التحكم في المعجون (هنا كيفية إعداد RPi ، قم بتشغيل اتصال الكاميرا I2c)

بوابة استنساخ git: //github.com/remoteme/remoteme.git

القرص المضغوط البعيد

python3.5 install.py

  • سيطرح علينا Instalator بعض الأسئلة لجميع نرد [Y] ونؤكد من خلال [أدخل]
  • عندما يطلب التثبيت رمزًا مميزًا ، نقوم بلصق الرمز المميز (shift + insert) المنسوخ من التطبيق وإدخال
  • الاسم على سبيل المثال Rpi
  • deviceId 1 أدخل
  • بعد التثبيت - قم بتشغيل البرنامج

./runme.sh

الخطوة 15: فحص التوصيلات

التحقق من التوصيلات
التحقق من التوصيلات

لنعد إلى

في علامة تبويب الأجهزة ، سنرى RPi المتصل (رمز الارتباط الأخضر يعني أن RPi متصل الآن)

الخطوة 16: إضافة برنامج بايثون

مضيفا برنامج بايثون
مضيفا برنامج بايثون
مضيفا برنامج بايثون
مضيفا برنامج بايثون

سنضيف الآن نص Python ، وهو موجود بالفعل في القوالب لذلك لا يتعين علينا برمجة أي شيء.

في علامة تبويب الأجهزة ، افتح قائمة RasbperryPi واختر "إضافة نص خارجي".

عندما تظهر نافذة جديدة ، قدم المعلومات كما في الصورة أعلاه

لا تنس اختيار النموذج "car4wd". بعد هذه الخطوات ، سيضيف remoteme.org نص python إلى RasbperryPi الخاص بنا ويعيد تشغيله

الخطوة 17: التحقق مما إذا تمت إضافة نص بايثون بنجاح

التحقق من إضافة نص بايثون بشكل ناجح
التحقق من إضافة نص بايثون بشكل ناجح

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

الخطوة 18: إضافة صفحة ويب للتحكم في السيارة

إضافة صفحة ويب للتحكم في السيارة
إضافة صفحة ويب للتحكم في السيارة

في علامة التبويب "الأجهزة" ، انقر فوق "جديد" ثم "صفحة الويب". نضيف فقط جهازًا آخر - صفحة الويب التي سنستخدمها للتحكم في سيارتنا. ونظرًا لأننا استخدمنا القالب "car4wdDesktop" في صفحة الويب ، فقد أصبحت بالفعل ملفات جاهزة للاستخدام تقريبًا

الخطوة 19: تكوين جهاز صفحة الويب للتحكم في السيارة 1/2

تكوين جهاز صفحة الويب للتحكم في السيارة 1/2
تكوين جهاز صفحة الويب للتحكم في السيارة 1/2

قم بتوسيع صفحة الويب في علامة تبويب الجهاز وانقر فوق index.html ثم فتح

الخطوة 20: تكوين جهاز صفحة الويب للتحكم في السيارة 2/2

قم بتكوين جهاز صفحة الويب للتحكم في السيارة 2/2
قم بتكوين جهاز صفحة الويب للتحكم في السيارة 2/2

تظهر النافذة ثم نحتاج إلى توفير deviceId من نص Python النصي في حالتنا deviceId هو 2. دعونا نغير المكان الموضح في الصورة

الخطوة 21: افتح مركز التحكم بالسيارة

افتح مركز التحكم بالسيارة
افتح مركز التحكم بالسيارة
افتح مركز التحكم بالسيارة
افتح مركز التحكم بالسيارة

حان الوقت الآن لفتح صفحتنا ومعرفة كيفية عملها. في علامة تبويب الجهاز ، انقر فوق index.html ثم "فتح في علامة تبويب جديدة" للحصول على معاينة الفيديو ، يجب عليك استخدام متصفح Chrome أو Firefox ، ولا يدعم المستعرض الآخر webRTC بالكامل

الخطوة 22: تكوين الكاميرا 1/2

تكوين الكاميرا 1/2
تكوين الكاميرا 1/2

عندما نحرك الماوس في منطقة الفيديو ، يجب تغيير موضع الكاميرا ، ويجب أن تعمل تمامًا كما هو الحال في ألعاب FPS. ربما لن يتحرك بشكل صحيح

الخطوة 23: تكوين الكاميرا 2/2

تكوين الكاميرا 2/2
تكوين الكاميرا 2/2

افتح script.js (قم بتوسيع صفحة الويب ثم انقر فوق script.js ثم افتح) وابحث عن المكان الذي عرضته على الشاشة

في مركز حالتي ، يكون الموضع 560 و 430 ومدى الحركات لكلا المحورين 200

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

الخطوة 24: القيادة 1/2

القيادة 1/2
القيادة 1/2

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

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

الخطوة 25: القيادة 2/2

القيادة 2/2
القيادة 2/2

الانعطاف - اضغط على السهم الأيسر إذا كانت السيارة تستدير لليمين ، عليك قلب الكابلات (تحقق من الصورة أعلاه)

إذا قمت بلحام هذه الكابلات يمكنك تغييرها في script.j فقط قم بتغيير ترتيب إرسال سرعة المحركات ،

قبل:

pos = putByte (ret، pos، carController.getMotorMode (carController.getRightSideSpeed ())) ؛ pos = putByte (ret، pos، Math.abs (carController.getRightSideSpeed () * 255)) ؛

pos = putByte (ret، pos، carController.getMotorMode (-carController.getLeftSideSpeed ())) ؛

pos = putByte (ret، pos، Math.abs (carController.getLeftSideSpeed () * 255)) ؛

بعد، بعدما:

pos = putByte (ret، pos، carController.getMotorMode (-carController.getLeftSideSpeed ())) ؛

pos = putByte (ret، pos، Math.abs (carController.getLeftSideSpeed () * 255)) ؛

pos = putByte (ret، pos، carController.getMotorMode (carController.getRightSideSpeed ())) ؛

pos = putByte (ret، pos، Math.abs (carController.getRightSideSpeed () * 255)) ؛

والآن عليك أن تلعب مع السلبيات مثل خطوة واحدة قبل أن تعمل بشكل صحيح ؛). كما لاحظت على الأرجح بعد ضرب السهم لأعلى ، فإن السيارة لا تقود بأقصى سرعة لجعل السيارة تتحرك بشكل أسرع ، فقط قم بتحرير السهم للأعلى بسرعة عندما يكون في أقصى وضع واضغط مع الاستمرار عليه مرة أخرى

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

ترسل صفحة الويب رسائل رسائل 9 بايت إلى برنامج Python النصي بتنسيق:

  • 1 بايت بايت واحد قيمة عدد صحيح 1
  • 2 بايت عدد صحيح X موقع الكاميرا
  • 2 بايت عدد صحيح Y موقف الكاميرا
  • 1 بايت صحيح وضع المحرك الأيسر (3 = للخلف ، 1 = للأمام ، 2 = توقف)
  • 1 بايت عدد صحيح اليسار سرعة المحرك
  • 1 بايت صحيح وضع المحرك الصحيح (3 = للخلف ، 1 = للأمام ، 2 = توقف)
  • 1 بايت صحيح سرعة المحرك

يتم إرسال الرسالة في ملف script.js في الوظيفة "sendNow ()"

في RasbperryPi python.py تتلقى هذه الرسالة في الوظيفة "onUserMessage"

يمكنك التحقق من ذلك واللعب قليلاً حتى تعرف ما يجري.

وصف وظائف الفصل هنا

الخطوة 27: جهاز لوحي ، وتوجيه متنقل

كمبيوتر لوحي ، وتوجيه متنقل
كمبيوتر لوحي ، وتوجيه متنقل

نضيف صفحة ويب جديدة بشكل مثير كما فعلنا في المرة السابقة ولكن الآن نختار النموذج "car4wdMobile"

بعد ذلك ، نقوم بتهيئة كل شيء في script.js كما فعلنا لصفحة ويب التحكم في سطح المكتب. تنسيق الرسالة هو نفسه تمامًا لذلك لا يتعين علينا تغيير python.py script.

الخطوة 28: افتح الصفحة على الهاتف المحمول

افتح الصفحة على الهاتف المحمول
افتح الصفحة على الهاتف المحمول
افتح الصفحة على الهاتف المحمول
افتح الصفحة على الهاتف المحمول

بدلاً من تسجيل الدخول إلى حسابك من الهاتف المحمول ، ما عليك سوى مسح QR anymous url.

تفاصيل QR هنا

إذا كان التحكم في هاتفك المحمول يعمل عندما يكون RPi والجوال على نفس شبكة wifi ولكن لا يعمل إذا كنت تستخدم الإنترنت عبر الهاتف المحمول ، فيجب عليك إضافة خادم بدوره ، لقد كتبت هنا.

الخطوة 29: إضافة Turn Server

مضيفا بدوره الخادم
مضيفا بدوره الخادم
مضيفا بدوره الخادم
مضيفا بدوره الخادم
مضيفا بدوره الخادم
مضيفا بدوره الخادم

في بعض الأحيان (عندما تكون خلف NAT أو بعض إعدادات جدار الحماية) لا يمكنك توصيل الروبوت الخاص بك من شبكة أخرى ، ثم يكون الروبوت الخاص بك متصلاً. إنها ليست مشكلة كبيرة ومن ثم عليك إضافة خادم بدوره.

لقد اختبرت خادمًا من شركة XIRSYS (مجاني لاستخدام المطور) وسأوضح كيفية تكوين خادم بدوره باستخدام نظام XIRSYS

تسجيل:

global.xirsys.net/dashboard/signup

ثم انقر فوق "زائد" لإضافة التطبيق

على اليمين أسفل "بيانات اعتماد المنعطف الثابت" لديك كل البيانات التي تحتاجها. انسخه إلى ملف webrtc_streamer.conf للقيام بذلك ، انتقل إلى

قم بتوسيع RaspberryPi deivces

انقر فوق ملف webrtc_streamer.conf

انقر فوق فتح

وإضافة المعلومات

turn_server = turn_username =

turn_credential =

بعد الانتهاء من التحرير ، يجب أن يكون لديك شيء مثل الشاشة.

ثم انقر فوق حفظ وإعادة تشغيل You Rpi ، بالنقر فوق القائمة في جهاز RasbperryPi واختيار إعادة التشغيل

بعد إعادة تشغيل برنامج RPi ، يمكنك مشاهدة معاينة الفيديو على هاتفك المحمول حتى إذا كنت تستخدم الإنترنت عبر الهاتف المحمول.

الخطوة 30: التوجيه المتنقل

التوجيه المحمول
التوجيه المحمول

في الدائرة 1 ، نضع الإبهام الأيسر ، على 2 على اليمين - لا يجب أن تكون بالضبط في هذه النقاط - ستحدد صفحة الويب الموضع الصفري بعد لمس الشاشة مباشرةً ، وبتحريك إبهامك (القيادة اليسرى ، وضع الكاميرا الأيمن) يمكنك التحكم سيارتك

الخطوة 31: الملخص

آمل أن تكون قد أحببت هذا البرنامج التعليمي ، حيث كتبت من قبل في هذا البرنامج التعليمي هو مزيد من التفاصيل حول كيفية عمله تحت الغطاء.

بعض الروابط:

remoteme.org - الصفحة الرئيسية لموقع remoteme.org هناك تجد الوثائق والبرامج التعليمية

صفحة المعجبين على FB - أحدث معلومات لصفحة المعجبين على Facebook حول remoteme.org

يوتيوب - بعض مقاطع الفيديو الخاصة بالمشروع والبرامج التعليمية

هتافات،

ماسيك

موصى به: