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

الذراع الروبوتية المتحكم بها من Arduino W / 6 درجات من الحرية: 5 خطوات (بالصور)
الذراع الروبوتية المتحكم بها من Arduino W / 6 درجات من الحرية: 5 خطوات (بالصور)

فيديو: الذراع الروبوتية المتحكم بها من Arduino W / 6 درجات من الحرية: 5 خطوات (بالصور)

فيديو: الذراع الروبوتية المتحكم بها من Arduino W / 6 درجات من الحرية: 5 خطوات (بالصور)
فيديو: جديد جولة في كتاب التكنولوجيا 2017-2018م- إعداد/ مهند يوسف صيام. 2024, يوليو
Anonim
الذراع الروبوتية المتحكم بها من Arduino W / 6 درجات من الحرية
الذراع الروبوتية المتحكم بها من Arduino W / 6 درجات من الحرية
الذراع الروبوتية المتحكم بها من Arduino W / 6 درجات من الحرية
الذراع الروبوتية المتحكم بها من Arduino W / 6 درجات من الحرية
الذراع الروبوتية المتحكم بها من Arduino W / 6 درجات من الحرية
الذراع الروبوتية المتحكم بها من Arduino W / 6 درجات من الحرية

أنا عضو في مجموعة روبوتات وتشارك مجموعتنا كل عام في مسابقة Mini-Maker Faire السنوية. بدءًا من عام 2014 ، قررت إنشاء مشروع جديد لحدث كل عام. في ذلك الوقت ، كان لدي ما يقرب من شهر قبل الحدث لتجميع شيء ما ولم يكن لدي أي فكرة عما أريد القيام به.

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

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

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

الخطوة 1: ما تحتاجه - الأجهزة والإلكترونيات

ما تحتاجه - أجهزة وإلكترونيات
ما تحتاجه - أجهزة وإلكترونيات
ما تحتاجه - أجهزة وإلكترونيات
ما تحتاجه - أجهزة وإلكترونيات

عاش مصمم المشروع الأصلي في أوروبا واستخدم بعد ذلك القياسات والمواد المترية الشائعة هناك. على سبيل المثال ، كانت لوحة الضغط التي استخدمها للجسم معيارًا بسماكة 5 مم. مادة مماثلة هنا في الولايات المتحدة يبلغ سمكها 1/8 بوصة أي حوالي 3.7 مم. ترك هذا فجوة في الفتحات التي تم تصميمها في الأصل ليتم تركيبها بالضغط. بدلاً من تصحيح الرسومات ، استخدمت ببساطة Gorilla Glue لتأمين هذه المفاصل.

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

  • 22 - M3 × 0.5 × 23 ملم مواجهات
  • 15 - فواصل M3 x 15mm
  • 40 - مسامير M3
  • M3 عرافة المكسرات
  • مسامير M3 25 مم
  • 1 - الربيع
  • شريط تثبيت مزدوج الجوانب 3/4 بوصة
  • 5 - SG 5010 TowerPro Servo
  • 1 - أجهزة مصغرة SG92R TowerPro
  • 1 - أجهزة مصغرة SG90 TowerPro
  • 2.54 مم رأس دبوس مستقيم صف واحد
  • 1 - اللوح نصف الحجم
  • 1 - أسلاك توصيل وصلة ذكر / أنثى - 40 × 6 بوصة
  • لوح أكريليك أزرق مقاس 1-12 بوصة × 24 بوصة أو القطع المقطوعة بالليزر من مزود الخدمة المفضل لديك
  • 2-3 مم × 20 مم + 4 مم × 5 مم فواصل محامل مشتركة مطبوعة ثلاثية الأبعاد (انظر أدناه)
  • 1 - لوحة التحكم * انظر الملاحظة في قسم الأسلاك
  • 1 - منتشر RGB (ثلاثي الألوان) 10 مم LED
  • 1 - اردوينو اونو
  • 1 - LCD قياسي 16x2 + إضافات - أبيض على أزرق
  • 1 - حقيبة ظهر بشاشة LCD من نوع i2c / SPI
  • 1 - برنامج تشغيل Adafruit 16-Channel 12-bit PWM / Servo
  • 1 - MCP3008 - 8 قنوات 10 بت ADC بواجهة SPI
  • 3 - مستشعر وحدة اندلاع JoyStick * انظر الملاحظة في قسم الأسلاك
  • جاك برميل DC
  • محول تيار متردد إلى تيار مستمر
  • كبلات التمديد المؤازرة - أطوال متنوعة

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

ارتفاع مؤازر + قرن مؤازر + محمل مشترك + شريط مزدوج الجوانب = 47 مم +/- 3 مم.

الخطوة 2: تجميع الذراع

تجميع الذراع
تجميع الذراع
تجميع الذراع
تجميع الذراع
تجميع الذراع
تجميع الذراع
تجميع الذراع
تجميع الذراع

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

  1. قم بتوصيل المؤازرة الأساسية بلوحة القاعدة العلوية باستخدام مسامير M3 مقاس 25 مم والصواميل السداسية. لا تفرط في الشد ملاحظة: قد ترغب في تطبيق إحكام الإغلاق على الخيوط لتقليل الصواميل أثناء الاستخدام.

  2. إذا كنت تستخدم قائمة الأجزاء التي أتيحت لها أعلاه ، فستحتاج بعد ذلك إلى تجميع 5 فواصل أساسية عن طريق ربط 2 من كل من المواجهة M3 x 0.5 x 23mm معًا ثم إرفاقها بلوحة القاعدة العلوية باستخدام صواميل سداسية.
  3. قم بتوصيل لوحة القاعدة السفلية بالمواعد باستخدام 5 براغي M3.
  4. قم بتوصيل لوحة الكتف بلوحتي التثبيت المؤازرتين باستخدام لاصق أكريليك آمن. لقد استخدمت Gorilla Glue هنا. ملحوظة: كل من لوحتين المؤازرتين بها فتحة في الخلف تسمح بإدخال فاصل تقوية يربط بينهما. تأكد من محاذاة الثقوب! * بينما يكون لديك الغراء في متناول اليد ، انطلق وانضم إلى لوحة تثبيت المعصم مع لوحة القابض الرئيسية. لم أفعل هذا باختيار بدلاً من ذلك لربط هذه المواجهات معًا كما هو موضح أدناه.
  5. قم بتوصيل مجموعة الكتف التي تم علاجها الآن بمؤازرة القاعدة. لقد استخدمت أكبر بوق متضمن مع المؤازرة وهو البوق المتصاعد ذو الستة جذوع.
  6. يمكن أن تكون إضافة إطار الذراع السفلي إلى الماكينات للكتف أمرًا صعبًا. أقترح تثبيت الأبواق على إطارات الذراع السفلية قبل المتابعة. ملاحظة: تأكد من توسيط الماكينات الخاصة بك لتجميع الكتف قبل إرفاقها بالإطار. يجب أن تتحرك هاتان المؤازرتان في انسجام تام ، وإذا كانت محاذاة غير متوازنة ، فستتسبب على الأقل في حدوث تذبذب مؤازر ، وإذا انحرفت بشكل كافٍ ، فقد يؤدي ذلك إلى إتلاف الإطار أو الماكينات. * يتم تثبيت كل من الماكينات الكتفية مع أقواسها على الجانب الخلفي من لوحات التركيب بدلاً من تمرير الماكينات عبر اللوحات - سيسمح لك ذلك بدفع القرن على عمود المؤازرة بزاوية وتثبيت المسمار. لا تقم بعد بتثبيت المؤازرة بلوحة التركيب. * بعد ذلك ، أضف المؤازرة الداخلية وقم بتركيب الذراع

  7. قم بتجميع إطار الذراع العلوية وأجهزة الماكينة عن طريق دفع الماكينات عبر الفراغات الموجودة في الذراعين ثم إدخال الفواصل بين لوحي الذراع العلوي وتأمينها باستخدام براغي M3.
  8. أضف شريطًا لاصقًا على الوجهين إلى الجزء الخلفي من مباعد مفصل الكوع وقم بقص الفائض.
  9. قم بتوصيل الفاصل بأسفل المؤازرة التي ستعمل كمشغل الكوع.
  10. انزلق مجموعة الذراع العلوية في إطار تجميع الذراع السفلي وقم بتأمين براغي بوق المؤازرة.
  11. أضف مواجهات التعزيز بين لوحين من أسفل الذراع. لقد استخدمت اثنين بدلاً من الأربعة لتقليل الوزن.
  12. أضف شريطًا لاصقًا على الوجهين إلى الجزء الخلفي من الفاصل العلوي لمفصل الرسغ وقم بقص الفائض.
  13. قم بتوصيل الفاصل بأسفل المؤازرة التي ستعمل كمشغل للمعصم.
  14. قم بتوصيل لوحة المعصم الخارجية بقرن معزز المعصم وثبتها ببرغي بوق.
  15. قم بتجميع لوحة معصم المعصم مع لوحي مفصل الرسغ والأقفال.
  16. قم بتأمين معزز المعصم على لوحة المؤازرة باستخدام لوحة المشبك المؤازرة.
  17. ستحتاج إلى تثبيت بوق الرسغ بالمؤازرة قبل إرفاق مجموعة القابض بهذا البوق بسبب انسداد فتحة برغي البوق.
  18. قم بتجميع قطع القابض بشكل غير محكم لتناسبها قبل توصيل قرن مؤازر القابض بالمؤازرة. سيتيح لك ذلك مساحة لفك البوق في الخطوة السابقة.
  19. قم بتوصيل قرن القابض بمؤازرته وشد المسامير اللولبية التي تمسك مفاصل القابض. ملاحظة: لا تقم بإحكام ربط هذه الصواميل والمسامير بشكل كامل حيث يجب أن تكون فضفاضة للسماح للقابض بالتحرك.

الخطوة 3: لوحة الأسلاك والتحكم

لوحة الأسلاك والتحكم
لوحة الأسلاك والتحكم
لوحة الأسلاك والتحكم
لوحة الأسلاك والتحكم
لوحة الأسلاك والتحكم
لوحة الأسلاك والتحكم

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

هناك 3 مجموعات من المكونات:

  1. المدخلات - تأخذ هذه العناصر المعلومات من المستخدم وتتألف من أذرع التحكم و mcp3008 ADC.
  2. المخرجات - تنقل هذه العناصر البيانات إلى العالم إما عن طريق إظهار الحالة للمستخدم أو تحديث الماكينات ببيانات الموقع. هذه العناصر هي شاشة LCD ، وحقيبة ظهر LCD ، و RGB LED ، ولوحة القيادة المؤازرة وأخيرًا الماكينات.
  3. المعالجة - يختتم Arduino المجموعة الأخيرة التي تأخذ البيانات من المدخلات وتدفع البيانات إلى المخرجات وفقًا لتعليمات الكود.

يوضح مخطط Fritzing أعلاه تفاصيل اتصالات الدبوس لجميع المكونات.

المدخلات

سنبدأ بالمدخلات. أذرع التحكم هي أجهزة تمثيلية - مما يعني أنها تقدم جهدًا متغيرًا كمدخل إلى Arduino. يحتوي كل من أذرع التحكم الثلاثة على مخرجات تناظرية لـ X و Y (أعلى ، أسفل ، يسار يمين) مما يجعل إجمالي 6 مدخلات في Arduino. بينما يتوفر في Arduino Uno 6 مدخلات تناظرية ، نحتاج إلى استخدام اثنين من هذه المسامير لتوصيل I2C بالشاشة ووحدة التحكم المؤازرة.

لهذا السبب ، قمت بدمج المحول التناظري إلى الرقمي (ADC) MCP3008. تستوعب هذه الشريحة ما يصل إلى 8 مدخلات تناظرية وتحولها إلى إشارة رقمية عبر دبابيس اتصال SPI الخاصة بـ Arduino على النحو التالي:

  • دبابيس MCP 1-6> النواتج المتغيرة لعصا التحكم بالإبهام
  • دبابيس MCP 7 & 8> لا يوجد اتصال
  • MCP Pin 9 (DGND)> أرضي
  • MCP Pin 10 (CS / SHDN)> Uno Pin 12
  • MCP Pin 11 (DIN)> Uno Pin 11
  • MCP Pin 12 (DOUT)> Uno Pin 10
  • MCP Pin 13 (CLK)> Uno Pin 9
  • MCP Pin 14 (AGND)> أرضي
  • MCP Pin 15 & 16> + 5V

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

  • الدبوس 1 - القاعدة - ستدور البيانات التناظرية على هذا الدبوس أدنى مؤازر على الروبوت
  • دبوس 2 - الكتف - ستعمل البيانات التناظرية على هذا الدبوس على تدوير المؤازرتين فوق المؤازرة الأساسية
  • الدبوس 3 - الكوع - ستدور البيانات التناظرية على هذا الدبوس المؤازرة التالية لأعلى من الماكينات الكتفية
  • الدبوس 4 - معصم UP / DN - ستؤدي البيانات التناظرية الموجودة على هذا الدبوس إلى تدوير معزز المعصم ، ورفع وخفض مجموعة القابض
  • الدبوس 5 - القابض - ستفتح البيانات التناظرية الموجودة على هذا الدبوس وتغلق القابض
  • دبوس 6 - تدوير المعصم - ستؤدي البيانات التناظرية الموجودة على هذا الدبوس إلى تدوير القابض

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

النواتج

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

الماكينات متصلة على النحو التالي:

  • المركز 0 - المؤازرة الأساسية
  • الموضع 1 - مؤازرة الكتف (كابل مؤازر Y)
  • الموضع 2 - أجهزة الكوع
  • الموضع 3 - معصم 1 مضاعفات
  • الموضع 4 - القابض المؤازر
  • الموضع 5 - المعصم 2 مضاعفات

بالإضافة إلى ذلك ، يتم توصيل كل من VCC و V + بـ +5 فولت ويتم توصيل GND بالأرض.

ملاحظة 1: ملاحظة واحدة كبيرة هنا: يأتي جهد الإمداد للمشروع بأكمله من خلال كتلة محطة الطاقة في لوحة التحكم المؤازرة. يقوم دبوس V + الموجود على وحدة التحكم المؤازرة بتزويد الطاقة من الكتلة الطرفية إلى بقية الدائرة. إذا كنت بحاجة إلى برمجة Uno الخاص بك ، فإنني أوصي بشدة بفصل V + pin قبل توصيل Uno بجهاز الكمبيوتر الخاص بك لأن السحب الحالي من الماكينات قد يؤدي إلى إتلاف منفذ USB الخاص بك.

ملاحظة 2: أنا أستخدم محول جداري بجهد 6 فولت تيار متردد إلى تيار مستمر لتشغيل المشروع. أوصي بمحول يمكنه توفير ما لا يقل عن 4A من التيار بحيث عندما يتم ربط واحد أو أكثر من الماكينات ، فإن الارتفاع المفاجئ في التيار لا يؤدي إلى تعطيل نظامك وإعادة ضبط Arduino.

يتم توصيل شاشة 16X2 LCD بحقيبة ظهر Adafruit LCD للاستفادة من واجهة I2C التي يتم استخدامها بالفعل بواسطة جهاز التحكم المؤازر. يتصل كل من SCL على وحدة التحكم المؤازرة و CLK على حقيبة الظهر بـ Pin A5 على Uno. وبالمثل ، يتصل كل من SDA على وحدة التحكم المؤازرة و DAT على حقيبة الظهر بـ Pin A4 على Uno. بالإضافة إلى ذلك ، يتم توصيل 5 فولت بـ +5 فولت ويتم توصيل GND بالأرض. LAT on the Backpack غير متصل بأي شيء.

أخيرًا ، يتم توصيل RGB LED بالدبابيس 7 (RED) و 6 (الأخضر) و 5 (الأزرق) على Uno. يتم توصيل الجزء الأرضي من LED بالأرض من خلال المقاوم 330Ohm.

يعالج

أخيرًا وليس آخرًا ، باقي اتصالات Arduino غير المذكورة أعلاه هي كما يلي: Pin 5V متصل بـ +5 Volts و GND متصل بالأرض.

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

الخطوة 4: الكود

الشفرة
الشفرة

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

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

عملية أساسية

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

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

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

الخطوة 5: الروابط والموارد

مراجع الذراع

  • المنشور الذي ألهم هذا المشروع
  • منشورات مدونة المصممين الأصلية ذراعي الروبوتية القابضون المؤازرة المصغرون والذراع الآلي المكتمل اضربوا الذراع الآلية والإلكترونيات
  • ذراع Thingiverse
  • القابض المؤازر الصغير

برمجيات Libries

  • موارد تحكم Adafruit PWM / المؤازرة
  • مكتبة MCP3008
  • ورقة بيانات MCP3008

لوحة التحكم والرمز

  • رسم Tinkercad للوحة التي صنعتها
  • مستودع الكود الحالي

موصى به: