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

كيفية كتابة محرك بسيط لـ FRC (جافا): 12 خطوة (بالصور)
كيفية كتابة محرك بسيط لـ FRC (جافا): 12 خطوة (بالصور)

فيديو: كيفية كتابة محرك بسيط لـ FRC (جافا): 12 خطوة (بالصور)

فيديو: كيفية كتابة محرك بسيط لـ FRC (جافا): 12 خطوة (بالصور)
فيديو: Харакири раз или ж..пой в таз? #6 Прохождение Призрак Цусимы (Ghost of Tsushima) 2024, شهر نوفمبر
Anonim
كيفية كتابة محرك بسيط لـ FRC (جافا)
كيفية كتابة محرك بسيط لـ FRC (جافا)

هذا برنامج تعليمي حول كيفية صنع مجموعة دفع بسيطة لروبوت FRC. يفترض هذا البرنامج التعليمي أنك تعرف أن أساسيات java و eclipse و wpilib مثبتة بالفعل ، بالإضافة إلى مكتبات CTRE.

الخطوة 1:

صورة
صورة

افتح الكسوف

الخطوة الثانية: إنشاء مشروع روبوت جديد

قم بإنشاء مشروع روبوت جديد
قم بإنشاء مشروع روبوت جديد
قم بإنشاء مشروع روبوت جديد
قم بإنشاء مشروع روبوت جديد
قم بإنشاء مشروع روبوت جديد
قم بإنشاء مشروع روبوت جديد
قم بإنشاء مشروع روبوت جديد
قم بإنشاء مشروع روبوت جديد
  1. انقر بزر الماوس الأيمن فوق مستكشف الحزمة ، وانقر فوق جديد ، ثم فوق آخر.
  2. قم بالتمرير لأسفل حتى ترى WPILib Robot Java Development (إذا لم تره ، فلن يكون لديك موارد wpilib مثبتة.)
  3. انقر فوق مشروع Robot Java Project
  4. ثم املأ اسم المشروع وانقر فوق نوع مشروع الروبوت المستند إلى الأوامر. (يجب ملء الحزمة بالفعل ونفس الشيء مع عالم المحاكاة.)

الخطوة 3: إنشاء / ملء خريطة RobotMap

أنشئ / املأ خريطة RobotMap
أنشئ / املأ خريطة RobotMap
أنشئ / املأ خريطة RobotMap
أنشئ / املأ خريطة RobotMap

قم بإنشاء متغيرات نهائية تحتوي على عدد منافذ تالون المختلفة

الخطوة 4: حذف مثال للنظام ومثال للنظام الفرعي

حذف مثال النظام ومثال النظام الفرعي
حذف مثال النظام ومثال النظام الفرعي
حذف مثال للنظام ومثال النظام الفرعي
حذف مثال للنظام ومثال النظام الفرعي

الخطوة الخامسة: إنشاء نظام DriveTrainSubSub

قم بإنشاء DriveTrainSubSystem
قم بإنشاء DriveTrainSubSystem
قم بإنشاء DriveTrainSubSystem
قم بإنشاء DriveTrainSubSystem
قم بإنشاء DriveTrainSubSystem
قم بإنشاء DriveTrainSubSystem
  1. أنشئ مُنشئًا جديدًا في النظام الفرعي لمجموعة القيادة الذي تم إنشاؤه حديثًا. ثم قم بإنشاء كائنات CANTalon التي تتوافق مع المخالب الموجودة على نظام الدفع.
  2. قم بإنشاء RobotDrive يسمى Drive
  3. إنشاء هذه الكائنات في المنشئ (تأكد من استخدام قيم المخالب التي أنشأناها في خريطة الروبوت). بالنسبة إلى Robot Drive ، سوف نستخدم المُنشئ الذي يستخدم 4 وحدات تحكم في المحركات (RobotDrive (SpeedController frontLeftMotor ، SpeedController rearLeftMotor ، SpeedController frontRightMotor ، SpeedController rearRightMotor))
  4. ثم أنشئ طريقة arcadeDrive () باستخدام متغيرين للإدخال هما x للأمام وللخلف و y لليمين واليسار. في الداخل سوف تستدعي drive.arcade بقيم الأمام والدوران
  5. ثم قم بتغيير initDefaultCommand () لاحتواء سطر setDefaultCommand (new DriveTrainCommand ()) ؛.
  6. لا تقلق بشأن كل الأخطاء حتى الآن.

الخطوة 6: قم بإنشاء DriveTrainCommand

قم بإنشاء DriveTrainCommand
قم بإنشاء DriveTrainCommand
قم بإنشاء DriveTrainCommand
قم بإنشاء DriveTrainCommand
قم بإنشاء DriveTrainCommand
قم بإنشاء DriveTrainCommand
قم بإنشاء DriveTrainCommand
قم بإنشاء DriveTrainCommand
  1. ابدأ أولاً بالذهاب إلى القائمة التي استخدمناها لإنشاء النظام الفرعي ومشروع الروبوت بنفسه (هذه هي المرة الأخيرة التي سأعرض فيها هذه الخطوة الفعلية في الخطوات المستقبلية التي سأقولها فقط لإصدار أمر أو لعمل النظام الفرعي وستفترض أنه موجود في هذه القائمة.) انقر فوق الأمر وقم بملء اسم الفئة بـ DriveTrainCommand (إذا قمت بتغيير أسماء هذه الملفات فلا يمكنك جعلها متطابقة).
  2. في DriveTrainCommand الجديد ، سترى أن هناك 6 طرق ، أحدها هو المُنشئ والآخر 5 أجزاء من الكود الذي سيستدعيه الروبوت عند تشغيل الأمر. نحن نعلم ما يفعله المُنشئ ، لذلك دعونا نشرح التهيئة والتنفيذ والانتهاء والانتهاء والمقاطعة. يتم استدعاء Initialize مرة واحدة في كل مرة يتم استدعاء الأمر ، يتم استدعاء طريقة التنفيذ بشكل مستمر حتى ينتهي الأمر ، والذي ينتج عن انتهاء الأمر عندما تعود طريقة isFinished إلى القيمة الصحيحة سيتوقف الأمر عن العمل ، ويتم استدعاء طريقة end مرة واحدة بعد isFinished يتم استدعاء الأسلوب ، ويتم استدعاء المقاطعة عندما يتم استخدام موارد الأوامر بواسطة أمر آخر وينتهي الأمر (بدون استدعاء طريقة النهاية).
  3. أولاً في DriveTrainCommand في المُنشئ ، تحتاج إلى إضافة سطر يتطلب (يتطلب (Robot. DriveTrainSub)) لاحظ أن DriveTrainSub ليس هو نفسه اسم النظام الفرعي وهذا عن قصد.

الخطوة 7: انتقل إلى الروبوت

القفز إلى الروبوت
القفز إلى الروبوت
القفز إلى الروبوت
القفز إلى الروبوت
القفز إلى الروبوت
القفز إلى الروبوت
القفز إلى الروبوت
القفز إلى الروبوت
  1. بعد ذلك ، سننتقل إلى فئة الروبوتات
  2. ثم سنقوم بتغيير الخط (النهائي العام الثابت ExampleSubsystem exampleSubsystem = new ExampleSubsystem () ؛) إلى (النهائي الثابت العام DriveTrainSubsystem DriveTrainSub = new DriveTrainSubsystem () ؛) لاحظ أن الاسم الأول بعد النهائي هو نفس اسم النظام الفرعي و الاسم بعد الجديد لاحظ أيضًا أن DriveTrainSub هو نفس الاسم الذي وضعناه في خطوتنا الأخيرة وأنه ليس هو نفسه اسم النظام الفرعي (يجب أن يكون لديك اسم كائن (DriveTrainSub) يختلف عن النظام الفرعي اسم).
  3. ثم قم باستيراد DriveTrainSubSystem الخاص بنا.
  4. بعد ذلك سنقوم بإزالة السطر (chooser.addDefault ("Default Auto"، new ExampleCommand ())؛)
  5. ثم قم بإزالة عمليات الاستيراد غير المستخدمة.
  6. ثم احفظ.

الخطوة 8: العودة إلى DriveTrainCommand

ارجع إلى DriveTrainCommand
ارجع إلى DriveTrainCommand
  1. استيراد الروبوت (الثاني في الصورة)
  2. ثم احفظ

الخطوة 9: اذهب إلى DriveTrainSub

انتقل إلى DriveTrainSub
انتقل إلى DriveTrainSub
  1. استيراد DriveTrainCommand
  2. ثم احفظ.

الخطوة 10: بعد ذلك سننشئ كود OI

بعد ذلك سنقوم بإنشاء كود OI
بعد ذلك سنقوم بإنشاء كود OI
  1. اذهب إلى OI.
  2. قم بإنشاء كائن جويستيك عام جديد باستخدام المنفذ 0.
  3. وإزالة الواردات غير المستخدمة.
  4. يحفظ.

الخطوة 11: اذهب إلى DriveTrainCommand

انتقل إلى DriveTrainCommand
انتقل إلى DriveTrainCommand
  1. انتقل إلى DriveTrainCommand.
  2. الآن سنقوم بالجزء الذي يأخذ أذرع التحكم ونطبقها لتحريك الروبوت. داخل التنفيذ (لأنه يعمل باستمرار) أضف السطر (Robot. DriveTrainSub.arcadeDrive (Robot.oi. Driver.getRawAxis (1) ، Robot.oi. Driver.getRawAxis (4)) ؛) حيث نسمي ArcadeDrive في منطقتنا النظام الفرعي بقيم Robot.io. Driver.getRawAxis (1) الذي يُرجع قيمة عصا التحكم وحيث 1 هو محور المحور y الأيسر ونفس الشيء للقيمة الثانية باستثناء 4 هو المحور x الأيمن. لذا فإن هذا يعني أن العصا اليسرى ستتحرك للأمام والخلف وأن العصا اليمنى ستتحرك يمينًا ويسارًا. (إذا أردت ، يمكنك الرجوع إلى RobotMap وإنشاء قيم جديدة لمحور عصا التحكم ثم الاتصال بها باستخدام RobotMap. (اسم المحور) ولا تنس أن تجعلها نهائية إذا قمت بذلك بهذه الطريقة.)
  3. بعد ذلك ، قم بإزالة أي واردات غير مستخدمة من المشروع بأكمله.

الخطوة 12: أخيرًا قم بتجميع الكود وتحميله إلى الروبوت

موصى به: