خبرة في إنشاء أول روبوت على Arduino (الروبوت- "الصياد")

مرحبا

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

خبرة في إنشاء أول روبوت على Arduino (الروبوت- "الصياد")

كلما أمكن ذلك، أشركت ابني (8 سنوات) في المشاركة. ما الذي نجح معه بالضبط وما الذي لم ينجح - لقد خصصت لهذا جزءًا من المقالة، ربما يكون مفيدًا لشخص ما.

وصف عام للروبوت

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

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

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

هيكل الروبوت

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

خبرة في إنشاء أول روبوت على Arduino (الروبوت- "الصياد")

"أدمغة" الروبوت هي لوحة اردوينو أونو (1)؛ كان في مجموعة أمرت من الصين. لأغراضنا، هذا يكفي (نركز على عدد المسامير المستخدمة). من نفس المجموعة أخذنا هيكلًا جاهزًا (2) مثبتًا عليه عجلتان للقيادة (3) وواحدة خلفية (تدور بحرية) (4). تشتمل المجموعة أيضًا على حجرة بطارية جاهزة (5). يوجد أمام الروبوت مستشعر بالموجات فوق الصوتية (HC-SR04) (6)، وفي الخلف يوجد محرك محرك (L298N) (7)، وفي المنتصف يوجد فلاش LED (8)، وقليلًا ل يوجد على الجانب مكبر صوت (9).

في مرحلة التخطيط ننظر إلى:

- بحيث يناسب كل شيء
- أن تكون متوازنة
- أن يتم وضعها بشكل عقلاني

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

الفروق:

  1. يحتوي الهيكل الموجود في المجموعة على الكثير من ثقوب المصنع، لكنني ما زلت لم أفهم المنطق الموجود فيها. تم تأمين المحركات والبطاريات دون مشاكل، ثم بدأ «التعديل» بحفر ثقوب جديدة لتأمين هذه اللوحة أو تلك.
  2. كانت الرفوف النحاسية والمثبتات الأخرى من مناطق التخزين بمثابة مساعدة كبيرة (في بعض الأحيان كان علينا إخراجها).
  3. مررت قضبان التوصيل من كل لوحة عبر المشابك (ومرة أخرى، وجدتها في المخزن). مريحة للغاية، جميع الأسلاك موضوعة بشكل جيد ولا تتدلى.

كتل فردية

الآن سأمر كتل وسأخبرك شخصيا عن كل واحد.

حجرة البطارية

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

بالطبع، كان لدي بعض الحذر، لكن هذا الحل عملي تمامًا.

نظرًا لأن الطاقة مطلوبة في كل مكان، فقد قمت من أجل الراحة بإنشاء موصلين في وسط الروبوت: أحدهما "يوزع" الأرض (على اليمين)، والثاني - 5 فولت (على اليسار).

خبرة في إنشاء أول روبوت على Arduino (الروبوت- "الصياد")

المحركات والسائق

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

خبرة في إنشاء أول روبوت على Arduino (الروبوت- "الصياد")

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

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

سأضيف هنا أيضًا أنه بعد كل مطاردة، يختار الروبوت اتجاهًا عشوائيًا لدورة جديدة (في اتجاه عقارب الساعة أو عكس اتجاه عقارب الساعة).

أجهزة الاستشعار بالموجات فوق الصوتية

خبرة في إنشاء أول روبوت على Arduino (الروبوت- "الصياد")

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

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

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

المتعري وصفارة الإنذار

ولعل أبسط العناصر من كل ما سبق. يمكن رؤيتها في الصور أعلاه. ليس هناك ما يمكن كتابته عن الأجهزة هنا، فلننتقل الآن إلى ذلك قانون.

برنامج التحكم

لا أرى أي معنى في وصف الكود بالتفصيل، ومن يحتاج إليه - الرابط موجود في نهاية المقالة، كل شيء قابل للقراءة تمامًا هناك. ولكن سيكون من الجميل شرح الهيكل العام.

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

يمكن أن تكون مترابطة الموقتات. على سبيل المثال، يعمل مكبر الصوت بشكل متزامن مع المتعري. وهذا يبسط البرنامج قليلا.

وبطبيعة الحال، نقوم بتقسيم كل شيء إلى وظائف منفصلة (الأضواء الوامضة، والصوت، والانعطاف، والتحرك للأمام، وما إلى ذلك). إذا لم تفعل هذا، فلن تتمكن من معرفة ما يأتي من أين وأين.

الفروق الدقيقة في أصول التدريس

فعلت كل ما هو موضح أعلاه في وقت فراغي في المساء. وبطريقة مريحة، أمضيت حوالي ثلاثة أسابيع على الروبوت. كان من الممكن أن ينتهي الأمر هنا، لكنني وعدت أيضًا بإخبارك عن العمل مع طفل. ما الذي يمكن عمله في هذا العمر؟

العمل وفقا للتعليمات

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

ترتيب العمل ("من الخاص إلى العام")

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

تركيب

الحفر والخيوط والمسامير والصواميل واللحام ورائحة الصنوبري - أين سنكون بدونها؟ تلقى الطفل المهارة الأساسية "العمل بمكواة اللحام" - تمكن من لحام عدة اتصالات (لقد ساعدت قليلاً، ولن أخفي ذلك). لا تنسى شرح السلامة.

عمل الكمبيوتر

لقد كتبت برنامجًا للروبوت، لكنني تمكنت من تحقيق بعض النتائج الإيجابية.

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

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

النص المخفييمكنك القول أن ما ورد أعلاه يكاد يكون واضحا. لكن بصراحة، هذا الخريف أتيحت لي الفرصة لتدريس علوم الكمبيوتر في الصف التاسع في إحدى المدارس. هذا فظيع. لا يعرف الطلاب أشياء أساسية مثل Ctrl + Z وCtrl + C وCtrl + V، وتحديد النص أثناء الضغط على Shift أو النقر المزدوج على الكلمة، وما إلى ذلك. هذا على الرغم من أنهم كانوا في السنة الثالثة من دراسة علوم الكمبيوتر... استنتجوا استنتاجكم الخاص.

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

كما ترون، ما زلنا في البداية. وسوف نستمر في صقل مهاراتنا ومعارفنا، فهي ستكون مفيدة في الحياة.

بالمناسبة بخصوص المستقبل..

مزيد من التطوير

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

وفي النهاية أبطال هذا المقال (فيديو بالضغط):

خبرة في إنشاء أول روبوت على Arduino (الروبوت- "الصياد")

شكرا لك!

رابط الكود

المصدر: www.habr.com

إضافة تعليق