جدول المحتويات:
- الخطوة 1: المواد
- الخطوة الثانية: طباعة ثلاثية الأبعاد للذراع الآلي
- الخطوة 3: المونتاج الإلكتروني
- الخطوة 4: تطبيق الهاتف الذكي
- الخطوة 5: كود اردوينو
- الخطوة 6: هذا كل شيء
فيديو: لعبة الذراع الروبوتية - وحدة تحكم الهاتف الذكي: 6 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:38
أهلا !
إليك لعبة صيفية ممتعة: الذراع الآلية التي يتحكم فيها الهاتف الذكي !!
كما ترى في الفيديو ، يمكنك التحكم في الذراع ببعض أذرع التحكم على هاتفك الذكي.
يمكنك أيضًا حفظ نمط ، يقوم الروبوت بإعادة إنتاجه في حلقة ، من أجل القيام ببعض المهام المتكررة كمثال. لكن هذا النمط قابل للتعديل كما يحلو لك !!!!
كن مبدعا !
الخطوة 1: المواد
هنا يمكنك رؤية المواد التي تحتاجها.
سيكلفك بناء هذا الذراع الآلية حوالي 50 يورو. يمكن استبدال البرامج والأدوات ، لكنني استخدمتها لهذا المشروع.
الخطوة الثانية: طباعة ثلاثية الأبعاد للذراع الآلي
تمت طباعة الذراع الآلية ثلاثية الأبعاد (باستخدام برنامج prusa i3 الخاص بنا).
بفضل موقع الويب "HowtoMechatronics.com" ، فإن ملفات STL الخاصة به رائعة من أجل بناء ذراع ثلاثي الأبعاد.
سوف يستغرق الأمر حوالي 20 ساعة لطباعة جميع القطع.
الخطوة 3: المونتاج الإلكتروني
المونتاج منفصل إلى جزئين:
جزء إلكتروني ، حيث يتم توصيل اردوينو بالمضاعفات عن طريق الدبابيس الرقمية ، وبجهاز البلوتوث (Rx ، Tx).
جزء الطاقة ، حيث يتم تشغيل الماكينات بشاحن هاتف (5 فولت ، 2 أمبير كحد أقصى).
الخطوة 4: تطبيق الهاتف الذكي
تم إنشاء التطبيق على مخترع التطبيق 2. نستخدم 2 جويستيك للتحكم في 4 أجهزة و 2 أزرار أخرى للتحكم في القبضة النهائية.
نقوم بتوصيل Arm و Smartphone معًا باستخدام وحدة Bluetooth (HC-06).
أخيرًا ، يتيح وضع الحفظ للمستخدم حفظ ما يصل إلى 9 وظائف للذراع.
سوف ينتقل الذراع بعد ذلك إلى الوضع التلقائي ، حيث يقوم بإعادة إنتاج المواضع المحفوظة.
الخطوة 5: كود اردوينو
// 08/19 - يتم التحكم في الهاتف الذكي ذو الذراع الآلية
# تضمين # تعريف صحيح صحيح # تعريف خطأ خطأ // ********************** الإعلانات ***************** ***********
مندوب كلمة // mot envoyé du module اردوينو au الذكي
int chiffre_final = 0 ؛ int cmd = 3 ؛ // متغير commande du servo moteur (troisième fil (البرتقالي ، jaune)) int cmd1 = 5 ؛ // servo1 int cmd2 = 9 ؛ // servo2 int cmd3 = 10 ؛ // servo3 // int cmd4 = 10 ؛ // servo4 int cmd5 = 11 ؛ // pince int activ_saving = 0 ؛ محرك مؤازر // على définit notre servomoteur Servo moteur1 ؛ مؤازر مؤازر 2 ؛ مؤازر مؤازر 3 ؛ // مؤازر moteur4 ؛ مؤازر مؤازر 5 ؛ كثافة العمليات step_angle_mini = 4 ؛ كثافة العمليات step_angle = 3 ؛ زاوية int ، زاوية 1 ، زاوية 3 ، زاوية 5 ، زاوية 2 ؛ // زاوية int pas ؛ int r ، r1 ، r2 ، r3 ؛ مسجل int زعنفة منطقية = خطأ ؛ زعنفة منطقية 1 = خطأ ؛ زعنفة منطقية 2 = خطأ ؛ زعنفة منطقية 3 = خطأ ؛ زعنفة منطقية 4 = خطأ ؛ كلمة w ؛ // متغير envoyé du للهواتف الذكية au module Arduino int sauvegarde_positions1 [5] ؛ int sauvegarde_positions2 [5] ؛ int sauvegarde_positions3 [5] ؛ int sauvegarde_positions4 [5] ؛ int sauvegarde_positions5 [5] ؛ int sauvegarde_positions6 [5] ؛ int sauvegarde_positions7 [5] ؛ int sauvegarde_positions8 [5] ؛ int sauvegarde_positions9 [5] ؛
// زاوية كثافة العمليات ؛ // زاوية الدوران (0 أ 180)
//********************اقامة*************************** ******** إعداد باطل () {sauvegarde_positions1 [0] = sauvegarde_positions1 [1] = sauvegarde_positions1 [2] = sauvegarde_positions1 [3] = sauvegarde_positions1 [4] = 0 ؛ sauvegarde_positions2 [0] = sauvegarde_positions2 [1] = sauvegarde_positions2 [2] = sauvegarde_positions2 [3] = sauvegarde_positions2 [4] = 0 ؛ sauvegarde_positions3 [0] = sauvegarde_positions3 [1] = sauvegarde_positions3 [2] = sauvegarde_positions3 [3] = sauvegarde_positions3 [4] = 0 ؛ sauvegarde_positions4 [0] = sauvegarde_positions4 [1] = sauvegarde_positions4 [2] = sauvegarde_positions4 [3] = sauvegarde_positions4 [4] = 0 ؛ sauvegarde_positions5 [0] = sauvegarde_positions5 [1] = sauvegarde_positions5 [2] = sauvegarde_positions5 [3] = sauvegarde_positions5 [4] = 0 ؛ sauvegarde_positions6 [0] = sauvegarde_positions6 [1] = sauvegarde_positions6 [2] = sauvegarde_positions6 [3] = sauvegarde_positions6 [4] = 0 ؛ sauvegarde_positions7 [0] = sauvegarde_positions7 [1] = sauvegarde_positions7 [2] = sauvegarde_positions7 [3] = sauvegarde_positions7 [4] = 0 ؛ sauvegarde_positions8 [0] = sauvegarde_positions8 [1] = sauvegarde_positions8 [2] = sauvegarde_positions8 [3] = sauvegarde_positions8 [4] = 0 ؛ sauvegarde_positions9 [0] = sauvegarde_positions9 [1] = sauvegarde_positions9 [2] = sauvegarde_positions9 [3] = sauvegarde_positions9 [4] = 0 ؛ moteur.attach (cmd) ؛ // على relie l'objet au pin de commande moteur1.attach (cmd1) ؛ moteur2.attach (cmd2) ؛ moteur3.attach (cmd3) ؛ // moteur4.attach (cmd4) ؛ moteur5.attach (cmd5) ؛ moteur.write (6) ؛ زاوية = 6 ؛ moteur1.write (100) ؛ زاوية 1 = 100 ؛ moteur2.write (90) ؛ moteur3.write (90) ؛ //moteur4.write(12) ؛ moteur5.write (90) ؛ زاوية = 6 ؛ زاوية 1 = 100 ؛ زاوية 2 = 90 ؛ زاوية 3 = 90 ؛ زاوية 5 = 90 ؛ Serial.begin (9600) ؛ // permettra de communiquer au module Bluetooth} // ********************** BOUCLE ****************** ***************** حلقة فارغة() {
// Serial.print ("زاوية") ؛
//Serial.print(angle)؛Serial.print ("\ t")؛ Serial.print (زاوية 1)؛ Serial.print ("\ t")؛ Serial.print (زاوية 2)؛ Serial.print ("\ t") ") ؛ Serial.print (زاوية 3) ؛ Serial.print (" / t ") ؛ Serial.print (زاوية 5) ؛ Serial.print (" / n ") ؛
//Serial.print("angle ") ؛
إنت أنا w = recevoir () ؛ // on recevoir une information du smart، la متغير w switch (w) {case 1: TouchDown_Release ()؛ break؛ الحالة 2: TouchDown_Grab () ؛ كسر ؛ الحالة 3: Base_Rotation () ؛ كسر ؛ الحالة 4: Base_AntiRotation () ؛ كسر ؛ الحالة 5: Waist_Rotation () ؛ كسر ؛ الحالة 6: Waist_AntiRotation () ؛ كسر ؛ الحالة 7: Third_Arm_Rotation () ؛ كسر ؛ الحالة 8: Third_Arm_AntiRotation () ؛ كسر ؛ الحالة 9: 4th_Arm_Rotation () ؛ كسر ؛ الحالة 10: 4th_Arm_AntiRotation () ؛ استراحة ؛ // الحالة 11: Fifth_Arm_Rotation () ؛ كسر ؛ // الحالة 12: Fifth_Arm_AntiRotation () ؛ استراحة ؛ الحالة 21: Serial.print ("زر الحالة 1") ؛ chiffre_final = 1 ؛ sauvegarde_positions1 [0] = زاوية ؛ sauvegarde_positions1 [1] = angle1 ؛ sauvegarde_positions1 [2] = angle2 ؛ sauvegarde_positions1 [3] = angle3_positions1 [4] = زاوية 5 ؛ Serial.println (sauvegarde_positions1 [1]) ؛ Serial.println (sauvegarde_positions1 [2]) ؛ Serial.println (sauvegarde_positions1 [3]) ؛ Serial.println (sauvegarde_positions1 [4]) ؛ استراحة؛ الحالة 22: chiffre_final = 2؛ sauvegarde_positions2 [0] = angle؛ sauvegarde_positions2 [1] = angle1؛ sauvegarde_positions2 [2] = angle2؛ sauvegarde_positions2 [3] = angle3؛ sauvegarde_positions2 [4] = angle5؛ استراحة؛ الحالة 23: chiffre_final = 3؛ sauvegarde_positions3 [0] = angle؛ sauvegarde_positions3 [1] = angle1؛ sauvegarde_positions3 [2] = angle2؛ sauvegarde_positions3 [3] = angle3؛ sauvegarde_positions3 [4] = angle5؛ break الحالة 24: chiffre_final = 4؛ sauvegarde_positions4 [0] = angle؛ sauvegarde_positions4 [1] = angle1؛ sauvegarde_positions4 [2] = angle2؛ sauvegarde_positions4 [3] = angle3؛ sauvegarde_positions4 [4] = angle5؛ استراحة؛ الحالة 25: chiffre_final = 5؛ sauvegarde_positions5 [0] = angle؛ sauvegarde_positions5 [1] = angle1؛ sauvegarde_positions5 [2] = angle2؛ sauvegarde_positions5 [3] = angle3؛ sauvegarde_positions5 [4] = angle5؛ استراحة؛ الحالة 26: chiffre_final = 6؛ sauvegarde_positions6 [0] = angle؛ sauvegarde_positions6 [1] = angle1؛ sauvegarde_positions6 [2] = angle2؛ sauvegarde_positions6 [3] = angle3؛ sauvegarde_positions6 [4] = angle5؛ استراحة؛ الحالة 27: chiffre_final = 7؛ sauvegarde_positions7 [0] = angle؛ sauvegarde_positions7 [1] = angle1؛ sauvegarde_positions7 [2] = angle2؛ sauvegarde_positions7 [3] = angle3؛ sauvegarde_positions7 [4] = angle5؛ استراحة؛ الحالة 28: chiffre_final = 8؛ sauvegarde_positions8 [0] = angle؛ sauvegarde_positions8 [1] = angle1؛ sauvegarde_positions8 [2] = angle2؛ sauvegarde_positions8 [3] = angle3؛ sauvegarde_positions8 [4] = angle5؛ استراحة؛ الحالة 29: chiffre_final = 9؛ sauvegarde_positions9 [0] = angle؛ sauvegarde_positions9 [1] = angle1؛ sauvegarde_positions9 [2] = angle2؛ sauvegarde_positions9 [3] = angle3؛ sauvegarde_positions9 [4] = angle5؛ استراحة؛
الحالة 31: Serial.print ("31") ؛ activ_saving = 1 ؛ chiffre_final = 0 ؛ كسر ؛ // ابدأ
الحالة 33: Serial.print ("33") ؛ activ_saving = 0 ؛ استراحة ؛ // BUTTON SAVE الافتراضي: استراحة ؛ } إذا (w == 32) {Serial.print ("\ nReproduce / nChiffre final:")؛ Serial.print (chiffre_final) ؛ Serial.print ("\ n Sauvegarde position 1: / n")؛ لـ (i = 0؛ i <5؛ i ++) {Serial.print (sauvegarde_positions1 )؛ Serial.print ("\ t")؛} Serial.print ("\ n Sauvegarde position 2: / n")؛ لـ (i = 0؛ i <5؛ i ++) {Serial.print (sauvegarde_positions2 )؛ Serial.print ("\ t")؛} Serial.print ("\ n Sauvegarde position 3: / n")؛ لـ (i = 0؛ i <5؛ i ++) {Serial.print (sauvegarde_positions3 )؛ Serial.print ("\ t")؛} لـ (i = 1؛ i <= chiffre_final؛ i ++) {Serial. طباعة ("\ n / n ابدأ / n حلقة:") ؛ Serial.print (i)؛ Serial.print ("\ n") ؛ التبديل (i) {الحالة 1: goto_moteur (* (sauvegarde_positions1)) ؛ تأخير (200) ؛ goto_moteur1 (* (sauvegarde_positions1 + 1)) ؛ تأخير (200) ؛ goto_moteur2 (* (sauvegarde_positions1 + 2)) ؛ تأخير (200) ؛ goto_moteur3 (* (sauvegarde_positions1 + 3)) ؛ تأخير (200) ؛ goto_moteur5 (* (sauvegarde_positions1 + 4)) ؛ تأخير (200) ؛ استراحة؛ الحالة 2: goto_moteur (* (sauvegarde_positions2)) ؛ تأخير (200) ؛ goto_moteur1 (* (sauvegarde_positions2 + 1)) ؛ تأخير (200) ؛ goto_moteur2 (* (sauvegarde_positions2 + 2)) ؛ تأخير (200) ؛ goto_moteur3 (* (sauvegarde_positions2 + 3)) ؛ تأخير (200) ؛ goto_moteur5 (* (sauvegarde_positions2 + 4)) ؛ تأخير (200) ؛ استراحة؛ الحالة 3: goto_moteur (* (sauvegarde_positions3)) ؛ تأخير (200) ؛ goto_moteur1 (* (sauvegarde_positions3 + 1)) ؛ تأخير (200) ؛ goto_moteur2 (* (sauvegarde_positions3 + 2)) ؛ تأخير (200) ؛ goto_moteur3 (* (sauvegarde_positions3 + 3)) ؛ تأخير (200) ؛ goto_moteur5 (* (sauvegarde_positions3 + 4)) ؛ تأخير (200) ؛ استراحة؛ الحالة 4: goto_moteur (* (sauvegarde_positions4)) ؛ تأخير (200) ؛ goto_moteur1 (* (sauvegarde_positions4 + 1)) ؛ تأخير (200) ؛ goto_moteur2 (* (sauvegarde_positions4 + 2)) ؛ تأخير (200) ؛ goto_moteur3 (* (sauvegarde_positions4 + 3)) ؛ تأخير (200) ؛ goto_moteur5 (* (sauvegarde_positions4 + 4)) ؛ تأخير (200) ؛ استراحة؛ الحالة 5: goto_moteur (* (sauvegarde_positions5)) ؛ تأخير (200) ؛ goto_moteur1 (* (sauvegarde_positions5 + 1)) ؛ تأخير (200) ؛ goto_moteur2 (* (sauvegarde_positions5 + 2)) ؛ تأخير (200) ؛ goto_moteur3 (* (sauvegarde_positions5 + 3)) ؛ تأخير (200) ؛ goto_moteur5 (* (sauvegarde_positions5 + 4)) ؛ تأخير (200) ؛ استراحة؛ الحالة 6: goto_moteur (* (sauvegarde_positions6)) ؛ تأخير (200) ؛ goto_moteur1 (* (sauvegarde_positions6 + 1)) ؛ تأخير (200) ؛ goto_moteur2 (* (sauvegarde_positions6 + 2)) ؛ تأخير (200) ؛ goto_moteur3 (* (sauvegarde_positions6 + 3)) ؛ تأخير (200) ؛ goto_moteur5 (* (sauvegarde_positions6 + 4)) ؛ تأخير (200) ؛ استراحة؛ الحالة 7: goto_moteur (* (sauvegarde_positions7)) ؛ تأخير (200) ؛ goto_moteur1 (* (sauvegarde_positions7 + 1)) ؛ تأخير (200) ؛ goto_moteur2 (* (sauvegarde_positions7 + 2)) ؛ تأخير (200) ؛ goto_moteur3 (* (sauvegarde_positions7 + 3)) ؛ تأخير (200) ؛ goto_moteur5 (* (sauvegarde_positions7 + 4)) ؛ تأخير (200) ؛ استراحة؛ الحالة 8: goto_moteur (* (sauvegarde_positions8)) ؛ تأخير (200) ؛ goto_moteur1 (* (sauvegarde_positions8 + 1)) ؛ تأخير (200) ؛ goto_moteur2 (* (sauvegarde_positions8 + 2)) ؛ تأخير (200) ؛ goto_moteur3 (* (sauvegarde_positions8 + 3)) ؛ تأخير (200) ؛ goto_moteur5 (* (sauvegarde_positions8 + 4)) ؛ تأخير (200) ؛ استراحة؛ الحالة 9: goto_moteur (* (sauvegarde_positions9)) ؛ تأخير (200) ؛ goto_moteur1 (* (sauvegarde_positions9 + 1)) ؛ تأخير (200) ؛ goto_moteur2 (* (sauvegarde_positions9 + 2)) ؛ تأخير (200) ؛ goto_moteur3 (* (sauvegarde_positions9 + 3)) ؛ تأخير (200) ؛ goto_moteur5 (* (sauvegarde_positions9 + 4)) ؛ تأخير (200) ؛ استراحة؛ } Serial.print ("\ n *********************** FIN REPRODUCE ***************** \ن ")؛ تأخير (500) ؛ } /*Serial.print ("debut / n") ؛ Serial.print (sauvegarde_positions1 [0]) ؛ Serial.print ("\ t") ؛ Serial.print (sauvegarde_positions1 [1]) ؛ Serial.print ("\ t") ؛ Serial.print (sauvegarde_positions1 [2]) ؛ Serial.print ("\ t") ؛ Serial.print (sauvegarde_positions1 [3]) ؛ Serial.print ("\ t") ؛ Serial.print (sauvegarde_positions1 [4]) ؛ Serial.print ("\ n") ؛ Serial.print (sauvegarde_positions2 [0]) ؛ Serial.print ("\ t") ؛ Serial.print (sauvegarde_positions2 [1]) ؛ Serial.print ("\ t") ؛ Serial.print (sauvegarde_positions2 [2]) ؛ Serial.print ("\ t") ؛ Serial.print (sauvegarde_positions2 [3]) ؛ Serial.print ("\ t") ؛ Serial.print (sauvegarde_positions2 [4]) ؛ Serial.print ("\ n") ؛ Serial.print (sauvegarde_positions3 [0]) ؛ Serial.print ("\ t") ؛ Serial.print (sauvegarde_positions3 [1]) ؛ Serial.print ("\ t") ؛ Serial.print (sauvegarde_positions3 [2]) ؛ Serial.print ("\ t") ؛ Serial.print (sauvegarde_positions3 [3]) ؛ Serial.print ("\ t") ؛ Serial.print (sauvegarde_positions3 [4]) ؛ Serial.print ("\ n") ؛ Serial.print (sauvegarde_positions4 [0]) ؛ Serial.print ("\ t") ؛ Serial.print (sauvegarde_positions4 [1]) ؛ Serial.print ("\ t") ؛ Serial.print (sauvegarde_positions4 [2]) ؛ Serial.print ("\ t") ؛ Serial.print (sauvegarde_positions4 [3]) ؛ Serial.print ("\ t") ؛ Serial.print (sauvegarde_positions4 [4]) ؛ Serial.print ("\ n") ؛
Serial.print ("\ nfin / n") ؛ * /
تأخير (100) ؛ } // **************************** الوظائف ******************** ********************
كلمة recevoir () {// fonction permettant de recevoir l'information du phone
إذا (Serial.available ()) {w = Serial.read () ،
Serial.flush () ،
عودة ث ؛ }}
goto_moteur باطلة (int angle_destination)
{while (angle_destination angle + step_angle) {Serial.print ("\ n -------------- * * * * * * -------------- ----\ن")؛ Serial.print ("angle_destination = / t") ؛ Serial.print (angle_destination) ؛ Serial.print ("\ n angle1 = / t") ؛ Serial.print (زاوية) ؛ if (angle_destination angle + step_angle) {angle = angle + step_angle؛ moteur.write (angle)؛} delay (100)؛ } moteur.write (angle_destination) ؛ } void goto_moteur1 (int angle_destination) {while (angle_destination angle1 + step_angle) {Serial.print ("\ n -------------- * * * * * * ------- -----------\ن")؛ Serial.print ("angle_destination = / t") ؛ Serial.print (angle_destination) ؛ Serial.print ("\ n angle2 = / t") ؛ Serial.print (زاوية 1) ؛ if (angle_destination angle1 + step_angle) {angle1 + = step_angle ؛ moteur1.write (زاوية 1) ؛؛} تأخير (100) ؛ } moteur1.write (angle_destination) ؛ } void goto_moteur2 (int angle_destination) {
بينما (زاوية الوجهة 2 + الخطوة_انجل)
{Serial.print ("\ n -------------- * * * * * * ------------------ / n") ؛ Serial.print ("angle_destination = / t") ؛ Serial.print (angle_destination) ؛ Serial.print ("\ n angle3 = / t") ؛ Serial.print (زاوية 2) ؛ if (angle_destination angle2 + step_angle) {angle2 + = step_angle ؛ moteur2.write (angle2) ؛} تأخير (100) ؛ } moteur2.write (angle_destination) ؛ } void goto_moteur3 (int angle_destination) {
بينما (زاوية الوجهة 3 + مثلث الخطوة)
{Serial.print ("\ n -------------- * * * * * * ------------------ / n") ؛ Serial.print ("angle_destination = / t") ؛ Serial.print (angle_destination) ؛ Serial.print ("\ n angle4 = / t") ؛ Serial.print (زاوية 3) ؛ if (angle_destination angle3 + step_angle) {angle3 + = step_angle ؛ moteur3.write (زاوية 3) ؛} تأخير (100) ؛ } moteur3.write (angle_destination) ؛ } void goto_moteur5 (int angle_destination) {
بينما (زاوية الوجهة 5 + خطوة_انجل)
{Serial.print ("\ n -------------- * * * * * * ------------------ / n") ؛ Serial.print ("angle_destination = / t") ؛ Serial.print (angle_destination) ؛ Serial.print ("\ n angle5 = / t") ؛ Serial.print (زاوية 5) ؛ if (angle_destination angle5 + step_angle) {angle5 + = step_angle ؛ moteur5.write (زاوية 5) ؛} تأخير (100) ؛ } moteur5.write (angle_destination) ؛ }
باطل TouchDown_Release () // TouchDown Button Release
{if (angle5 <180) {angle5 = angle5 + step_angle_mini ؛ } moteur5.write (زاوية 5) ؛ }
باطل TouchDown_Grab () // انتزاع زر TouchDown
{if (angle5> 0) {angle5 = angle5-step_angle_mini ؛ } moteur5.write (زاوية 5) ؛ } void Base_Rotation () {if (angle 0) {angle = angle-step_angle؛ } زاوية أخرى = 0 ؛ moteur.write (زاوية) ؛ } void Waist_Rotation () {if (angle1 20) {angle1 = angle1-step_angle؛ } else angle1 = 20 ؛ moteur1.write (زاوية 1) ؛ } void Third_Arm_Rotation () {if (angle2 0) {angle2 = angle2-step_angle؛ } moteur2.write (زاوية 2) ؛ } void Fourth_Arm_Rotation () {if (angle3 = 0) {angle3 = angle3-step_angle_mini؛ } moteur3.write (زاوية 3) ؛ }
الخطوة 6: هذا كل شيء
شكرا للمشاهدة ، اتمنى ان تكون مقدرا!
إذا أعجبك هذا Instructable ، يمكنك بالتأكيد زيارتنا للمزيد! =)
موصى به:
الذراع الروبوتية مع القابض: 9 خطوات (بالصور)
الذراع الآلية مع القابض: يعتبر حصاد أشجار الليمون عملاً شاقًا ، نظرًا لكبر حجم الأشجار وأيضًا بسبب المناخ الحار في المناطق التي تزرع فيها أشجار الليمون. لهذا السبب نحتاج إلى شيء آخر لمساعدة العمال الزراعيين على إكمال عملهم بشكل أكبر
الذراع الروبوتية مع مضخة شفط فراغ: 4 خطوات
الذراع الروبوتية مع مضخة شفط فراغ: ذراع آلية مع مضخة شفط فراغ يتحكم فيها Arduino. تتميز الذراع الآلية بتصميم فولاذي وهي مجمعة بالكامل. هناك 4 محركات مؤازرة على الذراع الآلية. هناك 3 محركات ذات عزم دوران عالي وجودة عالية. في هذا المشروع ، كيفية نقل
الذراع الروبوتية لعصا المصاصة (تنسيق بديل): 6 خطوات
الذراع الروبوتية لعصا المصاصة (تنسيق بديل): تعرف على كيفية بناء ذراع آلي بسيط قائم على الأردوينو مع قابض باستخدام عصي المصاصة وعدد قليل من الماكينات
الذراع الروبوتية التي يتحكم فيها Arduino والكمبيوتر الشخصي: 10 خطوات
الذراع الآلية التي يتم التحكم فيها بواسطة Arduino والكمبيوتر الشخصي: تستخدم الأذرع الروبوتية على نطاق واسع في الصناعة. سواء كان ذلك لعمليات التجميع أو اللحام أو حتى يتم استخدام أحدها للالتحام على محطة الفضاء الدولية (محطة الفضاء الدولية) ، فهي تساعد البشر في العمل أو تحل محل الإنسان تمامًا. الذراع التي بنيتها أصغر
الذراع الروبوتية المتحكم بها من Arduino W / 6 درجات من الحرية: 5 خطوات (بالصور)
الذراع الروبوتية المتحكم فيها من Arduino W / 6 درجات من الحرية: أنا عضو في مجموعة الروبوتات وتشارك مجموعتنا كل عام في مسابقة Mini-Maker السنوية. بدءًا من عام 2014 ، قررت إنشاء مشروع جديد لحدث كل عام. في ذلك الوقت ، كان لدي حوالي شهر قبل الحدث لأضع شيئًا ما