مشروع OMower - منصة العجلة العالمية المفتوحة (البدء)

أريد أن أقدم مشروعي لمنصة عالمية مفتوحة للروبوتات المنزلية (جزازات العشب ، المكانس الكهربائية وما شابه). لا يزال المشروع في مرحلة تجميع وكتابة البرمجيات ، آمل الحصول على تعليقات واقتراحات مفيدة.



تعرفت مؤخرًا على مشروع Ardumower ( مقال عنه ) وحصلت على الكثير من الخبرة المثيرة للاهتمام. ولكن ، للأسف ، هذا الروبوت له العديد من القيود المختلفة ، لذلك قام عميل "المنزل الذكي" برعاية مشروع روبوت جديد تمامًا وأكثر قوة يمكنه التعامل بشكل جيد مع قص العشب ومهام أخرى متنوعة (على سبيل المثال ، هناك فكرة تقديم المشروبات للضيوف في المنزل :)). يتم تطوير المشروع كمنصة عالمية وقابلة للتوسيع ، مع دائرة مفتوحة و SDK لكتابة خيارات البرامج الخاصة بها.

العنصر الرئيسي للروبوت هو اللوحة التي تحتوي على معالج ATSAM3X8E 32 بت ، المطابق لتلك المستخدمة في Arduino Due ، والذي يسمح لك باستخدام بيئة تطوير بسيطة ومألوفة ، ويزيل أيضًا العديد من المشاكل المتعلقة بالمشكلات الفنية بسبب المجتمع الكبير من الأشخاص الذين يكتبون برامج لهذا النظام الأساسي. نظرًا للعدد الكبير من منافذ وحدة التحكم الدقيقة ، يمكنك توصيل أي شيء تقريبًا باللوحة. مواصفات المجلس:

مدعوم من 12 إلى 30 فولت ، وحدة شحن بطارية مدمجة بتيار يصل إلى 5 أمبير ، وحتى معزز للشحن من البطارية الشمسية أثناء التشغيل.

مقعدين لوحدات التحكم بمحرك مجمعات Polulu Dual MC33926 المستخدمة على نطاق واسع ، مع القدرة على التحكم في ما يصل إلى أربعة محركات (في نسختين - محركان على عجلات ، وحدة التحكم الثانية تتحكم في محرك القص ؛ أو أربعة محركات على عجلات بقنوات منفصلة). موصلات المحرك لها وصلات لربط عداد المسافات.

بصمة وحدة تحكم محرك السائر (محرك لتغيير ارتفاع العشب القص ، على سبيل المثال).

موصل لتثبيت Orange Pi Zero (لدعم RTK GPS بدقة السنتيمتر وبعض خوارزميات التحكم المعقدة الخارجية) مع القدرة على تحديث البرامج الثابتة عبر هذا الكمبيوتر الصغير.

6 مخرجات إشارة PPM للتحكم في المحركات الخالية من الفرشاة والمؤازرة.

6 منافذ لأجهزة السونار HC-SR04 ، و 2 منفذين لأجهزة استشعار التصادم (مصد ardumower مع مستشعراته الهوائية ، على سبيل المثال) ، وجهازي استشعار العشب بالسعة ، ومدخلان لمستشعرات المسافة التناظرية بالأشعة تحت الحمراء ، وأربعة مدخلات لأجهزة الاستشعار المحيطية السلكية ، وموصلين من الثرمستور يتم التحكم فيهما منافذ للمروحة والصافرة وثلاثة مصابيح LED (20 و 70 مللي أمبير). بالطبع ، يمكن استخدام العديد من المنافذ لتوصيل أجهزة استشعار أخرى ، مع قيود معينة.

يتم توصيل جميع المنافذ الخارجية تقريبًا التي يدعمها وحدة التحكم الدقيقة بالموصلات:

3 موصلات منفذ تسلسلي ، واثنين من حافلات I2C مع 9 موصلات (أحدهما مخزّن بموصلات لكل من الأجهزة ذات الخمسة فولت وثلاثة فولت) ، و 2 SPI ، وحافلات CAN (بدون جهاز إرسال / استقبال مادي) ، USB ، واثنين من DACs منفصلة (تم إحضارها للتو إلى الموصلات بما أنه يوجد ، يمكنك تشغيل الموسيقى هناك أو شيء من هذا القبيل).

منظم تحويل أمبير 5 فولت 2 إضافي مع ستة موصلات للأجهزة الخارجية. حسنًا ، مرحل مع مزلاج ، لإغلاق البطارية في حالة الطوارئ ، لمنع الشحن الزائد في حالة عدم وصولك إلى محطة الشحن. بطبيعة الحال ، يتم التحكم في الجهد والاستهلاك الحالي بواسطة متحكم (جزئيًا من خلال ADC متعدد القنوات المدمج ، جزئيًا من خلال MAX11617EE الاختياري).

في وضع الخمول (تكون المحركات غير نشطة) - الاستهلاك الحالي هو 130-140 مللي أمبير.

مخطط (رمى كل شيء على ورقة واحدة ، للراحة):



في عملية لحام اللوحة ، صادفت حقيقة أن بعض العناصر صغيرة جدًا بالنسبة للحام اليدوي باستخدام مجفف الشعر ، وقد يسخن شيء ما (مثل الصمام الثنائي في وحدة الشحن) ، لذلك يمكن إجراء بعض التغييرات الطفيفة.

يجري حاليًا تطوير SDK لكتابة البرامج الثابتة للروبوت ، بمساعدتها سيكون من الممكن الانفصال التام تمامًا عن إدارة الأجهزة على مستوى منخفض ، بعد تلقي مجموعة من الفئات لجميع الأجهزة الطرفية وأجهزة الاستشعار. على سبيل المثال ، ستبدو قطعة من التعليمات البرمجية التي تجعل الروبوت يتحول إلى الشمال على النحو التالي (هذه الأمثلة تعمل بالفعل ، على الرغم من عدم وجود بعض عمليات فحص التحميل الزائد وما شابه):

course = 0.0; imuSens.setCourse(course); motWheel.rollCourse((navThing *) &imuSens, 9000); 

وللذهاب على طول المحيط السلكي إلى المحطة ، ورفع محرك القص:

  mow.setHeight(0); perSens.setTracking(true); motWheel.moveCourse((navThing *) &perSens, 120000); 

لسوء الحظ ، لا يمكنني وضع حزمة SDK بنفسي حتى الآن ، ولم تتم كتابة الكثير (مثل الرمز لدعم علامات Decawave DW1000 RFID وأي مستشعرات ثانوية). ولكن يمكنني القول أن جميع الوظائف منخفضة المستوى تعمل وبعد فترة قصيرة يمكنني وضعها على github.

إعلان تشويقي:

Source: https://habr.com/ru/post/ar406177/


All Articles