حل توقيت السباق ذو عقدة واحدة FPV ميسور التكلفة
إذا أعجبك هذا المشروع، فيمكنك دعمه من خلال المساهمة في قاعدة التعليمات البرمجية والاختبار وتقديم التعليقات ومشاركة الأفكار الجديدة والمساعدة في نشر إنجيل PhobosLT. يمكنك أيضًا التفكير في شراء شاي فقاعات أو بيرة، فهذا سيعززني لجعل المشروع أفضل!
Phobos LapTimer (أو PhobosLT) هو حل بسيط ولكنه قوي لتوقيت الدورة لطياري FPV بسرعة 5.8 جيجا هرتز. إنه مصمم للاستخدام الشخصي ومع وضع طائرات بدون طيار صغيرة في الاعتبار (2 بوصة أو أقل)، ولكن لا يوجد شيء ضد تشغيله باستخدام طائرات بدون طيار أكبر! إنه جهاز صغير مستقل يعمل ذاتيًا ويتصل عبر شبكة WiFi بهاتف أو جهاز لوحي أو كمبيوتر محمول. الهدف من المشروع هو الحصول على جهاز صغير وسهل الاستخدام يمكن استخدامه في أي مكان وقتما تريد القيام بجلسة تدريب على السباق في غرفة المعيشة الخاصة بك أو في مكان تدريب محلي مع الأصدقاء دون أي ضجة. تعتمد أجزاء من الكود على RotorHazard وExpressLRS. مجد كبير للأشخاص الذين يقفون وراء هذه المنظمات، فهم يفعلون الكثير من أجل المجتمع ويشكلون مستقبل FPV. إذا كنت لا تعرف هذه المشاريع بعد ولديك بعض الوقت، فتفقدها!
يحتوي PhobosLT على الميزات التالية:
توقيت عقدة واحدة لأنظمة 5.8 جيجا هرتز التناظرية، HDZero، Walksnail.
وسائل الشرح الصوتية، بما في ذلك اختياريا اسم الطيار.
قراءة ومعايرة RSSI في الوقت الفعلي - تسمح بالتوقيت حتى في المساحات الصغيرة مثل غرفة بمساحة 16 م^2 أو 200 قدم^2.
دورتان متتاليتان و3 دورات متتالية وقراءات اختيارية سريعة (تم تطويرها خصيصًا لـ RaceGOW).
تاريخ اللفة للعرض.
القدرة على تحديد الحد الأدنى من وقت الدورة القابل للقياس لتجنب النتائج الإيجابية الكاذبة.
إنذار الجهد المنخفض القابل للتكوين.
حجم صغير، سهل البناء.
رخيصة نسبيا.
لا حاجة لتطبيقات إضافية، حل مكتفي ذاتيا.
خطط التطوير المستقبلية:
وامض عبر WiFi أو عبر مكون الويب.
أجهزة مخصصة لتقليل اللحام.
التكامل مع ExpressLRS ونظارات VRX لإعادة توجيه أوقات الدورة إلى OSD.
التكامل مع RotorHazard لقياس أوقات الانقسام.
دعم عدة طيارين في نفس الوقت بتكلفة دقة أقل.
جوهر المشروع هو لوحة ESP32 + وحدة RX5808. يعمل ESP كخادم ويب يخدم صفحة ويب بسيطة بجميع التكوينات. يمكن استخدام أي جهاز مزود باتصال WiFi ومتصفح ويب للاتصال به وتكوين المؤقت وقياس أوقات الدورة.
يتم توقيت الدورة عن طريق قياس مؤشر RSSI مع مرور الوقت، وتصفيته والتحقق من الذروة في مؤشر RSSI حيث كلما اقتربت الطائرة بدون طيار من الموقت كلما ارتفع مؤشر RSSI. بناءً على ذلك، قمنا بإعداد عتبات Enter RSSI
والخروج من مؤشر Exit RSSI
، والتي تخبرنا متى نقطع الذروة. ثم يتم استخدام الوقت بين الدخول والخروج RSSI لقياس الوقت بين الذروة الأخيرة والذروة الحالية وهي دورة.
يتم التواصل مع العميل عبر شبكة WiFi. يقوم ESP32 بإعداد نقطة وصول ويتصل بها العميل. يتم إرسال RSSI عبر مقبس ويب لرسم الرسم البياني لـ RSSI في الوقت الفعلي. يتم إجراء التكوين وتفاعلات المستخدم والأحداث (مثل بدء المؤقت والإيقاف والإبلاغ عن وقت الدورة) باستخدام مكالمات الراحة.
يتم الاستفادة من المتصفح لإصدار أصوات أو استدعاء أوقات الدورة باستخدام مكتبة articulate.js، ولكن يمكن تثبيت إشارة صوتية اختيارية (لكن موصى بها) للمؤقت لإصدار صوت أيضًا في كل مرة يتم فيها اكتشاف ذروة أو للتنبيه على سبيل المثال عندما يكون المؤقت جهد البطارية منخفض.
لبناء Phobos LapTimer، ستحتاج إلى:
لوحة فرعية ESP32، ويفضل أن تكون مزودة بمنفذ USB. قاعدة البيانات قابلة للتوصيل والتشغيل مع LilyGo T-ENERGY
التي تحتوي على فتحة خلية Li-Ion 1s 18650 مدمجة ودائرة استشعار الجهد الكهربي خارج الصندوق. اللوحات المدعومة:
LilyGo T-ENERGY - موصى به.
LilyGo T-CELL - أغلى من تلك المذكورة أعلاه ولكن بها دائرة شحن.
ESP32-DevKit - مجرد هيكل عظمي ولكنه رخيص.
وحدة RX5808 VRx مع وضع SPI.
مصدر جهد كهربائي من أي نوع - بطارية، أو باور بانك، وما إلى ذلك. وسيعتمد ذلك على وحدة ESP32 المستخدمة.
(اختياري) مصباح LED من أي لون (+ مقاوم مطابق لإدارة التيار).
(اختياري) صفارة 3 ضد 3 إلى 5 فولت مع مولد (نشط جدًا وليس سلبيًا).
لتوصيل RX5808 بـ ESP32، استخدم جدول pinout أدناه. يرجى ملاحظة أنه يجب توصيل دبوس +5v الموجود في RX5808 بمصدر 3v3 لتقليل الجهد الكهربي لـ RX5808 للحصول على دقة RSSI أفضل وللمساعدة في التبريد:
ESP32 دبوس | RX5880 |
---|---|
33 | آر إس إس آي |
أرض | أرض |
19 | CH1 |
22 | CH2 |
23 | CH3 |
3V3 | +5 فولت |
دبوس إدخال جهد LED وجرس وبطارية اختياري ولكن موصى به:
ESP32 دبوس | محيطية |
---|---|
21 | أنود LED (+) |
27 | الجرس إيجابي (+) |
35 | إدخال VBAT بحد أقصى 3.3 فولت (يفترض الكود مقسم جهد 1/2 مع خلية Li-Ion 1 ثانية) |
يمكنك العثور على مخطط اتصال للأجهزة الطرفية أدناه. بالنسبة لـ T-Energy وT-Cell، تحتاج فقط إلى توصيل RX5808 والجرس.
وبدلاً من ذلك، يمكنك أن تطلب من المجتمع إنشاء مؤقت لك. اسأل حول الخلاف!
يتم إنشاء البرنامج الثابت حاليًا عبر Visual Studio Code. يعد إعداد سلسلة الأدوات هو نفسه تمامًا كما هو الحال في ExpressLRS، لذلك إذا كان لديك بالفعل إعداد وتشغيل سلسلة أدوات ExpressLRS، فيجب أن تكون جيدًا. متطلبات بناء البرامج الثابتة هي كما يلي:
كود الاستوديو المرئي.
منصةIO.
بوابة.
قم بتنفيذ هذه الخطوات لإعداد سلسلة الأدوات على جهاز الكمبيوتر الخاص بك:
قم بتنزيل وتثبيت vscode.
افتح vscode، وانقر على أيقونة Extensions
في شريط الأدوات الموجود على اليمين (راجع إدارة الامتدادات).
في مربع البحث، أدخل Platformio، وقم بتثبيت الامتداد (راجع وثائق pio install
).
قم بتثبيت البوابة.
الخطوة الأخيرة قبل أن تتمكن من إنشاء البرنامج الثابت هي استنساخ هذا المستودع على جهاز الكمبيوتر الخاص بك:
في VSCode، افتح لوحة الأوامر (باستخدام Cmd+Shift+P
على نظام MacOS أو Ctrl+Shift+P
على نظام Windows)
أدخل Git: Clone
.
انقر فوقه.
ثم أدخل عنوان URL الخاص بـ PhobosLT repo (يمكن العثور عليه أعلى صفحة github أسفل زر Clone
).
اختر المجلد الذي تريد وضع نسختك من المستودع فيه.
لإنشاء البرنامج الثابت، انقر فوق أيقونة PlatformIO
في شريط الأدوات الموجود على اليسار، والذي سيعرض قائمة المهام. الآن، حدد Project Tasks
، وقم بتوسيع PhobosLT
-> General
وحدد Build
. يجب أن ترى النتيجة في المحطة بعد بضع ثوانٍ ( Success
).
قبل محاولة الفلاش تأكد من وجود اتصال بين ESP32 والكمبيوتر عبر USB. الوميض هو عملية من خطوتين. نحتاج أولاً إلى تحديث البرنامج الثابت، ثم صورة نظام الملفات الثابتة إلى ESP32.
لتحديث البرنامج الثابت، انقر فوق أيقونة PlatformIO
في شريط الأدوات الموجود على اليسار، والذي سيعرض قائمة المهام. الآن، حدد Project Tasks
، وقم بتوسيع PhobosLT
-> General
وحدد Upload
. يجب أن ترى النتيجة في المحطة ( Success
). بعد ذلك، انتقل إلى الخطوة 2.
حدد Project Tasks
، وقم بتوسيع PhobosLT
-> Platform
وحدد Upload Filesystem Image
. انتظر النتيجة في المحطة التي تقول Success
. هذا كل شيء! الموقت الخاص بك جاهز للاستخدام.
إذا حدث خطأ ما - يرجى التحقق من الوحدة الطرفية أيضًا. وسوف تحتوي على الأقل على تلميح لماهية المشكلة. من فضلك اطلب من المجتمع المزيد من المساعدة بشأن الخلاف!
علبة ESP-WROOM-32 من بورلوك
سيصف هذا القسم استخدام وتكوين المؤقت. يتكون التطبيق من 3 صفحات وهو سهل الاستخدام للغاية!
قم بتشغيل المؤقت، يجب أن تسمع صوتًا قصيرًا وطويلًا.
قم بتشغيل جهازك وقم بتشغيل WiFi.
انتظر حتى تكتشف نقطة وصول WiFi تبدأ بـ PhobosLT_xxxx
.
اضغط عليها واكتب كلمة المرور: phoboslt
.
يجب أن يتصل ويفتح نافذة متصفح مع التطبيق لك. إذا لم يحدث ذلك، افتح المتصفح واكتب 20.0.0.1
.
فويلا!
لتكوين الموقت تحتاج إلى النقر على زر Configuration
. يجب أن يتم الترحيب بك بشاشة مشابهة لهذه:
يمكنك العثور أدناه على جميع معلمات التكوين ووصفها:
القناة والنطاق - اضبط على نفس النطاق والقناة مثل الطائرة بدون طيار. النطاقات المدعومة - A، B، E، Fatshark، RaceBand، LowBand، 8 قنوات لكل منها. التردد - هذا حقل ثابت سيعرض التردد بناءً على النطاق والقناة المحددة. الحد الأدنى لوقت الدورة - يمكنك تعيين الحد الأدنى لوقت الدورة الذي يمكن توقيته. يؤدي ذلك إلى تجنب النتائج الإيجابية الخاطئة عند الاصطدام ببوابة البداية، أو عندما يكون مسارك ضيقًا للغاية وتطير على مقربة من المؤقت عدة مرات خلال دورة واحدة. عتبة إنذار جهد البطارية - يضبط إنذار جهد البطارية الذي سيتم تشغيله بمجرد الوصول إلى الجهد المطلوب. النطاق بين 2.5-4.2 فولت. نوع المذيع - لديك بعض الخيارات حول الطريقة التي تريد أن يقوم بها المؤقت الخاص بك بالإبلاغ عن أوقات الدورات:
None
لا يوجد صوت على الإطلاق.
سوف تصدر Beep
صوتًا قصيرًا عند العبور لإعلامك بأنها سجلت دورة.
سيعلن Lap Time
عن وقت الدورة (بما في ذلك اسم الطيار الخاص بك إذا كان حقل اسم الطيار ممتلئًا).
سيتم الإعلان عن Two Consecutive Lap Time
عن وقت الدورتين المتتاليتين.
ستعلن Three Consecutive Lap Time
عن وقت الدورات الثلاثة المتتالية.
معدل المذيع - يتحكم في سرعة قراءة المذيع لوقت الدورة. اسم الطيار - عند ملئه سيتضمن اسم الطيار عند قراءة الأوقات، على سبيل المثال Pilot1 23.45
. يكون ذلك مفيدًا عندما يكون هناك أكثر من مؤقت واحد يعمل في نفس الوقت. عند ممارسة وحدها تركها فارغة.
ملاحظة: بمجرد التهيئة، تأكد من حفظ التكوين بالنقر فوق الزر Save Configuration
، وإلا فلن تصبح التغييرات سارية المفعول.
تعد المعايرة خطوة مهمة جدًا ويجب إجراؤها بشكل صحيح لضمان حدوث التوقيت بشكل صحيح ويتم احتساب كل دورة بواسطة المؤقت.
لإجراء المعايرة، انقر على زر Calibration
. من المفترض أن يظهر لك شريطان تمريران ورسم بياني يمثل مؤشر RSSI مع مرور الوقت. يمكنك التفكير في RSSI باعتباره معكوسًا للمسافة بين الطائرة بدون طيار والمؤقت. كلما ارتفع مؤشر RSSI، قصرت المسافة.
يمكن أن تكون العقدة إما Crossing
أو Clear
. إذا كانت العقدة Clear
، فإن جهاز ضبط الوقت يعتقد أن الطائرة بدون طيار ليست بالقرب من جهاز ضبط الوقت لأن مؤشر RSSI منخفض. إذا كان Crossing
، يعتقد الموقّت أن الطائرة بدون طيار تمر بجانب الموقّت لأن مؤشر RSSI مرتفع. سيتم تسجيل تمريرة الدورة بمجرد الانتهاء من Crossing
وعودة RSSI إلى المنطقة Clear
. نقوم بمعايرة ذلك من خلال تحديد عتبات Enter
Exit
من RSSI.
سيُظهر المؤقت الذي تمت معايرته جيدًا وقت الدورة عندما يكون لدينا عبور واحد فقط عندما تكون الطائرة بدون طيار هي الأقرب إلى المؤقت، على سبيل المثال:
سيتم دائمًا تحديد علامة Crossing
باللون الأخضر الداكن، بينما سيتم تلوين اللون Clear
باللون الأزرق.
للتوصل إلى قيم أولية جيدة Enter
والخروج Exit
RSSI، قم بتنفيذ الخطوات التالية:
قم بتشغيل المؤقت والطائرة بدون طيار، واضبطها على طاقة VTx المطلوبة، وانتظر 30 ثانية حتى تصل VTx إلى درجة حرارة التشغيل.
ضع الطائرة بدون طيار على مسافة تزيد قليلاً عن بوابة واحدة فوق الموقت.
لاحظ RSSI، اخصم 2-5 نقاط لتكون آمنًا - يجب أن يكون هذا هو Enter RSSI
الخاص بك.
قم بخصم 8-10 نقاط أخرى وقم بتعيينها Exit RSSI
.
انقر فوق Save RSSI Thresholds
- وإلا فلن تصبح التغييرات نافذة المفعول.
عند الطيران مع طيارين آخرين، قد تكون قراءات RSSI أقل بسبب كل الضوضاء الناتجة عن VTxs الأخرى على القنوات المجاورة. من الممارسات الجيدة خفض كلا الحدين ببضع نقاط عند الطيران مع طيارين آخرين في الجو.
ستسمح لك شاشة السباق ببدء السباق أو إيقافه وعرض أوقات دوراتك ومسحها. بمجرد الضغط على زر Race
ستتغير الشاشة إلى هذا:
وظائف الأزرار:
Start Race
- انقر عليه لبدء العد التنازلي وأشر إلى المؤقت لبدء عد اللفات.
Stop Race
- اضغط عليه عندما تريد التوقف عن حساب اللفات الجديدة. لا يتم مسح اللفات التي تم جمعها حتى الآن.
Clear Laps
- مسح اللفات على الشاشة، ويمكن القيام به عند تشغيل السباق أيضًا.
بمجرد تشغيل بضع دورات، سيتم ملء الشاشة بأوقات الدورات:
انضم إلى قناة Discord الخاصة بنا للحصول على الدعم والأسئلة أو لمجرد قضاء الوقت! الجميع موضع ترحيب!