صنع وحدة توسع لـ Raspberry Pi مع Arduino على متنها

في الاختراق ، لدينا العديد من Raspberry Pi المختلفة ، التي نعلم الأطفال من خلالها البرمجة في الثعبان ، وصنع الروبوتات والأدوات المفيدة المختلفة. بالطبع ، نحن نفعل الشيء نفسه على Arduino. على مدى ثلاث سنوات من الحياة ، من روح إلى روح مع هذه المنصات المختلفة للغاية ، كان لدينا العديد من الأفكار حول كيفية جعل روبوت التدريب بشكل صحيح ، مع مراعاة إيجابيات وسلبيات كل قطعة من الحديد. كل هذه الأفكار تتحقق في جهاز جديد ، والذي سيتم مناقشته لاحقًا.



بشكل أساسي ، قمنا بتصميم وحدة توسيع متوافقة مع Arduino لـ RPi ، والتي تحتوي على محرك محرك ومنظم للطاقة. من الواضح أن هذه الوحدة هي وحدة تحكم مكتفية ذاتيًا للروبوت التعليمي ، ولكن شطيرة RPi + Arduino هي التي توضح النهج الصحيح أيديولوجيًا لإنشاء الروبوتات. كيف يبدو هذا الشيء ، وما هي خصائصه ، وأين يمكن تطبيقه ، تابع القراءة.




لقد مر القليل من التاريخ بالفعل منذ 4 سنوات منذ إصدار سلسلة Raspberry Pi Model B. في وقت ما ، كانت الضجة حول RPi هي التي شجعتنا جزئيًا على إنشاء مساحة اختراق لدينا. بعد كل شيء ، كان أول شيء بدأنا القيام به هو تعليم الأطفال الروبوتات على RPi. بعد الدروس الأولى مع طلاب المدارس الثانوية على أساس مدرسة N.N.Krasovsky Ural للكمبيوتر ، فكرنا في مختبر ورشة العمل لدينا ، وهو مفتوح لجميع المنكوبين.

تطورت دروسنا إلى دورة أساسية تم تكييفها لاحقًا مع Arduino. كان من المفترض أن يكون استمرار هذه الدورة مشاريع محددة يمكن للأطفال من خلالها تطبيق المعرفة المكتسبة حول تشغيل وحدات التحكم الدقيقة ومكونات مفيدة مختلفة. لقد خصصنا فئة كاملة من هذه المشاريع التدريبية لإنشاء الروبوتات المحمولة ، سواء على أساس Raspberry Pi أو على Arduino.

تم إنشاء أول روبوت يعتمد على RPi خصيصًا كدليل للعمل مع الطلاب. كان روبوتًا ذا عجلتين ، مارس فيه الرجال العمل مع المحركات وجميع أنواع المستشعرات ، في وقت واحد يستعدون للمنافسة. كهيكل ، تم استخدام محرك ترام طامية. كان سائق المحرك drv8833 من TI. في إصدار روبوت LineFollower ، كان هناك مستشعران للانعكاس منزلي الصنع. على السطح العلوي للروبوت تم تثبيت اللوح بدون لحام مع 400 نقطة.



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

بمرور الوقت ، أصبح من الواضح أن محرك التروس لم يكن الأكثر شعبية ، ولكنه صاخب جدًا أيضًا. لم يستوعب جسم الروبوت كل قائمة الرغبات ، ولم يكن متوافقًا مع المصممين العاديين. والأهم من ذلك ، جاءت الفكرة لإنشاء وحدة تمديد لـ RPi ، والتي ستنقذ الروبوت من الاتصالات والأجهزة "الروتينية" غير الضرورية. لذلك بدأ مشروع روبوت ذو عجلات ، يحمل الاسم الرمزي MR-K-1 ، ثم MR-K-2. منذ البداية ، بدأنا في توفير ثقوب هبوط لكلتا المنصتين ، ونقدم أدناه نموذج الروبوت مع Arduino على متن الطائرة.



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

أصبحت

وحدة تمديد RPiDuino Alexander Vasiliev ، المدونة الرائدة المفيدة للغاية alex-exe.ru ، المطور الرئيسي للوحدة. بحلول الوقت الذي بدأ فيه المشروع ، كان لديه بالفعل خبرة واسعة في تطوير محركات المحركات ومثبتات الطاقة والعديد من الأجهزة الأخرى المثيرة للاهتمام للروبوتات. تقرر أن يطلق على المجلس اسم RPiDuino ، لأنه كان من المفترض أن يقدم تكافلًا بين Raspberry Pi و Arduino.

لذا ، ما قررنا وضعه على السبورة.

كان على الوحدة أن تتحكم بشكل مباشر في محرك السيارة ، الماكينات وأجهزة الاستشعار. كل هذا يتطلب متحكم. ونظرًا لأننا نصنع روبوتًا تعليميًا ويجب أن تومض وحدة التحكم بسهولة من قبل طلابنا ، فقد وقع الاختيار على atmega328 المعروف مع أداة تحميل arduino على متن الطائرة. إن وجود atmega يجعل الوحدة وحدة تحكم مستقلة للتحكم في روبوتات التدريب الصغيرة.



منذ ظهور atmega على اللوحة ، كانت هناك حاجة أيضًا إلى جسر USB-UART ، قمنا بتعيين CP2102 له. علامة أخرى على توافق Arduino هي الموصلات المألوفة على جانبي اللوحة ، مما يسمح لك بدفع وحدات التوسع في الأعلى.

يجب أن تتحكم الوحدة في المحركات ، لذلك ظهر السائق المقابل. أصبحت برامج التشغيل الحديثة مجهرية تمامًا ، بحيث يمكن وضعها بسهولة على اللوح دون حدوث الكثير من الضرر للمكونات المجاورة. اختاروا DRV8833 من Pololu ، لأن لديهم بالفعل بعض الخبرة معهم. السائق هو قناتين ، مع تيار عمل للقناة - 1A.



أخيرًا ، كانت هناك حاجة ببساطة إلى منظم جهد على اللوح. في البداية ، كان من المفترض أن تصنع قوة منفصلة للجزء الحاسوبي والمؤازرات ، لكننا واجهنا مشاكل بسيطة في التصميم. لذلك كان هناك مثبت LM2596 واحد فقط ، والذي يغذي RPi ، متحكم دقيق ، الجزء المنطقي من محرك المحرك وأجهزة الاستشعار.



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



يتم توصيل RPiDuino في فتحة GPIO Raspberry Pi ، مثل جميع الوحدات المماثلة. يتواصل Atmega328 و RPi عبر UART.



يتم سحب الأرجل المتبقية لـ GPIO مباشرة ، بحيث يمكن استخدامها وفقًا لتقديرك.

RPiDuino مخطط الميزات الرئيسية

التغذية
جهد الإمداد7.5-24 ( )
7.5-10.5 ( )
0,5 4, , ,
5
: //1.5/2/3
1%
5.52.1
2,7-10,5
/1/2
50
855622
855633 ( RaspberryPi)
49


إنسان آلي يتم التحكم فيه عن بعد يعتمد على RPi + RPiDuino

إن العرض الجيد لقدرات RPi هو روبوت يتم التحكم فيه عن بعد. يمكن أن تظهر العمل المنسق لـ RPi و Arduino ، حيث تعمل المنصة القديمة في معالجة الفيديو وواجهة المستخدم ، والثانية تؤدي مهامها الروبوتية الروتينية.



الآن يحتوي الروبوت على كاميرا ويب مع دعم الأجهزة لضغط mjpg ، متصل بـ Raspberry عبر USB. يتمسك الروبوت بشبكة WiFi عبر موجه USB TL-WN722N. يتم تعزيز المحركات بنسبة 1: 120. العجلات كبيرة بمطاط ناعم لتشبث مشمع في مساحة القرصنة لدينا. تساعد برامج التشفير في المحركات على تسوية الاختلاف في قوة دفع المحرك. كل هذا يعمل ببطاريتين LiIon بحجم 18650.

كيف يعمل كل ذلك

في برنامج RPiDuino ، يدور البرنامج الذي يستمع إلى أوامر الحركة من UART ويرسل بعض القياس عن بعد. في مشاريعي ، أستخدم مكتبة SerialFlow ، المكتوبة لأول طائرة رباعية . يمكن أيضًا العثور على رمز برنامج RPiDuino على github.

على الجانب Raspberry Pi ، الأمور أكثر تعقيدًا قليلاً. أولاً ، يتم التحكم في الروبوت عن طريق واجهة الويب ، لذلك كان علي رفع خادم ويب صغير في بيثون. تحتوي شاشة التحكم على أسهم لتحديد اتجاه الحركة ، ومنظم السرعة ، والقياس عن بعد ، ونافذة لعرض الدفق من كاميرا الويب. لبث الفيديو ، أستخدم تقليديا mjpg-streamer.

إذا كنت ترغب في تكرار شيء مشابه على الروبوت الخاص بك ، فستكون خوارزمية التثبيت كما يلي.
1) تثبيت mjpg-streamer ، وتكوين نقل دفق الفيديو إلى http.
2) تثبيت حزمة pyserial.
3) قم بتنزيل الأرشيف وفك ضغطه باستخدام جزء الخادم من برنامج التحكم.
4) نقوم بملء رسم التحكم في RPIDuino.
5) تكوين واي فاي على RPi.
6) تكوين التشغيل التلقائي لبرنامج التحكم على RPi.



RPiDuino و ROS

سبب آخر لحاجتنا إلى وحدة التمديد هذه هو القدرة على إظهار طلابنا مفهوم الروبوت الصحيح. الآن يبدو الأمر مثل هذا: "انظر يا رفاق ، يمتلك الروبوت جهاز كمبيوتر مضيفًا يدير الحسابات المعقدة. يمكنه التعرف على الصور ، وبناء خريطة باستخدام lidar و SLAM. كل هذا يأخذ الكثير من الموارد منه ، حتى أنه لم يعد بإمكانه التحكم بحساسية في عجلات الروبوت الأرضي ، ولا قدر الله ، استقرار الطائرة الرباعية أثناء الطيران. لهذه العمليات على مستوى النخاع الشوكي ، هناك كمبيوتر آخر متخصص في مهام بسيطة محددة ولا يصرفه أي شيء آخر. "جهازي الكمبيوتر متصلان بواسطة ناقل بيانات ، يتواصلان من خلالهما مع بعضهما البعض ووحدات أخرى."

هنا يأتي مفهوم ROS. في هذه الحالة ، يدور جوهر النظام على RPi ، و RPiDuino هي عقدة ROS. بالمناسبة ، لقد قمنا بالفعل بعمل حزمة صغيرة لإدارة RPIDuino من خلال ROS. قريباً سننشر مقالاً منفصلاً حول هذا الموضوع.

ما هي الخطوة التالية؟

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

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


All Articles