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

روبوت فوضوي ذاتي التعلم: 3 خطوات
روبوت فوضوي ذاتي التعلم: 3 خطوات

فيديو: روبوت فوضوي ذاتي التعلم: 3 خطوات

فيديو: روبوت فوضوي ذاتي التعلم: 3 خطوات
فيديو: الذكاء الاصطناعي و تعلم الآلة و الفرق بينهما 2024, يوليو
Anonim
روبوت الفوضى التعلم الذاتي
روبوت الفوضى التعلم الذاتي

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

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

الخطوة 1: أجهزة AKA the Robot

الأجهزة AKA the Robot
الأجهزة AKA the Robot
الأجهزة AKA the Robot
الأجهزة AKA the Robot
الأجهزة AKA the Robot
الأجهزة AKA the Robot

انت تحتاج:

- 1 اردوينو ديو

- 8 ميكرورفوس

- 1 PS / 2 فأرة

- 1 مستوي شيفتر

- بعض المتغيرات لدرع المستشعر أو ما شابه ذلك ، لقد سئمت من درع المستشعر ولحمت درع المستشعر.

-أسلاك

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

- بعض القطع المعدنية الخردة وبعض الصمغ وبعض الخيوط الفولاذية. وشريط!

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

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

قم بتوصيل الماكينات بالمستحق ، في حالتي فهي متصلة بـ D39 ، 41 ، 43 ، 45 ، 47 ، 49 ، 51 ، 53.

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

قم بتوصيل PS / 2 بالطاقة (5V) والأرضي. قم بتوصيل الساعة وخط البيانات الخاص بـ PS / 2 بـ Due من خلال مفتاح تبديل المستوى. (يذهب وقت الاستحقاق 3.3 فولت ، PS / 2 يذهب 5 فولت). قم بتوصيل الساعة على D12 والبيانات على D13.

للحصول على تفاصيل حول بروتوكول PS / 2 ، يعد هذا تعليمات جيدة جدًا:

www.instructables.com/id/Optical-Mouse-Od…

مكتبة PS / 2 بواسطة jazzycamel التي استخدمتها:

الخطوة الثانية: الكود

الرمز
الرمز

في البداية دعني أقول: أنا لست مبرمجًا. بعض الأجزاء كبيرة جدًا ، يمكن للمبرمج الماهر بالطبع تقصيرها وهكذا وهكذا.

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

هذا يعني أيضًا أنه يمكنك استخدام هذا الرمز لتدريب الروبوت الخاص بك على القيام بشيء آخر ، طالما تم قياسه وإعادته إلى الروبوت!

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

يستخدم الكود 50 فردًا. جوهر هذا هو مجموعة من 50 × 50 بايت.

الفرد هو صفيف من البايتات. عند استخدام الفرد لتشغيل الروبوت ، يتم إرسال هذا الفرد إلى وظيفة في الرمز تسمى "tolken".

في بداية السباق هناك 8 متغيرات m1 و m2 و m3 و m4 و m5 و m6 و m7 و m8 (واحد لكل مؤازر). في هذا الروبوت ، لديهم جميعًا قيم بداية ثابتة. في "tolken" يتم تحويل mś في حالة / حلقة التبديل اعتمادًا على قيم الفرد. على سبيل المثال ، القيمة "1" تنفذ ما يلي: m1 = m1 + m2.

إذا كان الفرد هو: 1 ، 2 ، 3 ، 0 ، 0 ، 0 ، 0….. فسيتم تحويل mś بالطريقة التالية:

م 1 = م 1 + م 2 ؛

م 1 = م 1 + م 3 ؛

م 1 = م 1 + م 4 ؛

Tolken هي قائمة من 256 عملية رياضية مختلفة ، لذا فإن كل قيمة ممكنة للمصفوفة الفردية تمثل تغييرًا رياضيًا لقيم m.

تتم عملية التوكن 4 مرات ، مع قراءة بين كل لفة ، مما يؤدي إلى توليد أربعة رموز مختلفة للمحرك لكل "م". أكواد الموتور هي القيم التي يتم إرسالها لاحقًا إلى الماكينات.

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

إذا لم يعمل أي فرد على الإطلاق ، فستحدث طفرة في العناصر الفردية لتوليد أخرى جديدة.

يمكنك العثور على الكود على جيثب:

الخطوة 3: كيف تدربه؟

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

لقد وضعت بعض نقاط الفحص داخل الكود للتأكد من أن الروبوت في موضع البداية.

لذا قم بمحاذاة الروبوت واتركه يعمل.

يختبر 4 أفراد ثم يختار أفضل 2 ليكونا آباء. بعد استبدال الأسوأ بالأطفال ، تطبع بعض البيانات عن أداء الأفراد. كما أنها تطبع مجموعة 50x50. من الحكمة نسخ هذا في ورقة Excel أو ما شابه ذلك. (أو اكتب بعض التعليمات البرمجية في المعالجة) إذا كانت عمليات إعادة التعيين المستحقة (يحدث هذا لأسباب مختلفة) فلن تفقد عملك التدريبي. يمكنك نسخ / لصق المصفوفة في الكود والاستمرار في التدريب حيث تركت.

تعلم الروبوت الخاص بي الزحف بعد بضع ساعات. قم بتنزيل الفيديو لرؤيته الزحف. لم يذهب في الاتجاه الذي اعتقدت أنه سيكون!

جرب أيضًا طوابق مختلفة! كان أداء الروبوت أفضل على سجادة من النايلون.

التحسينات الممكنة:

1. سيكون من الأفضل أن يكون لديك نانو منفصل لقراءة الماوس PS / 2 ، وإرسال المسافة المعالجة المنقولة عبر المسلسل إلى النانو. قراءة الماوس PS / 2 الخاص بي مهتزة بعض الشيء. هذا هو سبب قراءة الماوس / مسح أجزاء من الكود.

2. نوع من معدات الاختبار التي تسحب الروبوت إلى موضع البداية من شأنه أن يسرع التدريب.

3. أعتقد أنه من الحكمة تدريبه بشكل أبطأ قليلاً مما فعلت. التدريب الأبطأ يؤكد أنه يتم تدريبه "في الاتجاه الصحيح". يمكن أن يكون الأداء المتوسط للعديد من الاختبارات التجريبية طريقة ممكنة.

موصى به: