فهرست مطالب:

[WIP] ایجاد Drawbot کنترل شده توسط بازوبند Myo: 11 مرحله
[WIP] ایجاد Drawbot کنترل شده توسط بازوبند Myo: 11 مرحله

تصویری: [WIP] ایجاد Drawbot کنترل شده توسط بازوبند Myo: 11 مرحله

تصویری: [WIP] ایجاد Drawbot کنترل شده توسط بازوبند Myo: 11 مرحله
تصویری: MICHAEL JORDAN ULTIMATE 1991-92 Season Highlights! 🏆🏆 BACK 2 BACK! | GOAT SZN 2024, نوامبر
Anonim
[WIP] ایجاد Drawbot کنترل شده توسط بازوبند Myo
[WIP] ایجاد Drawbot کنترل شده توسط بازوبند Myo

سلام به همگی!

چند ماه پیش ، ما تصمیم گرفتیم تا ایده ساخت یک کش باز با فریم باز را که فقط از یک باند Myo برای کنترل آن استفاده می کرد ، برطرف کنیم. هنگامی که ما برای اولین بار پروژه را آغاز کردیم ، می دانستیم که باید به چند مرحله مختلف تقسیم شود. اولین مرحله اصلی ما این بود که سعی کنیم سر خود را با یک طرح فریم باز برای ربات قرعه کشی خود بپیچانیم. این یک مجموعه غیر استاندارد است و ما می خواهیم ببینیم مزایای این طرح چیست.

دوم ، ما می دانستیم که ساخت این نمونه اولیه فقط برای خود ما مفید خواهد بود. طرح و برنامه ما این بود که قاب نهایی خود را به فلز منتقل کنیم و با استفاده از آردوینو موقعیت خود را از شتاب سنج و ژیروسکوپ تعبیه شده در نوار Myo دریافت کنیم. سپس این اطلاعات به موتورها ارسال می شود و حرکت کاربر را تکرار می کند. ما می دانستیم که این باعث می شود مرحله دوم ما به سه جنبه اصلی تقسیم شود:

  1. برنامه نویسی از Myo به موتورها ، از طریق آردوینو
  2. طراحی الکتریکی برای تبدیل داده های ما به حرکت
  3. طراحی مکانیکی برای ایجاد یک قاب با اندازه معقول که حرکت ما را تسهیل می کند

هر یک از اعضای تیم ما با بخش خاصی از فرایند طراحی ما احساس راحتی بیشتری می کردند ، بنابراین تصمیم گرفتیم کار خود را بین هر فرد تقسیم کنیم. ما همچنین در طول کل فرآیند طراحی خود ، یک وبلاگ را نگه داشتیم تا بر خلاف ظاهر جهانی تر ، تفکرات روزمره خود را ردیابی کنیم.

مرحله 1: آنچه ما برای انجام آن برنامه ریزی کرده بودیم

Image
Image

هدف ما این بود که این دو محصول را به گونه ای ترکیب کنیم که قبلاً هیچ کدام از آنها را ندیده بودیم. ما قصد داریم یک پخش مستقیم بین بازوبند Myo و نسخه خودمان از یک طرح با الهام از AxiDraw Evil Mad Scientist انجام دهیم.

مرحله 2: فهرست مواد اولیه نمونه

2 تخته چوبی 2 x 4 1 اندازه کمربند یا زنجیر> = 65 اینچ 4 میخ چوبی 3 چرخ دنده با دندان مناسب کمربند یا زنجیر 4 صفحه 3 3 x 8 vex سوراخ دار 30 ⅜ اینچ فاصله لاستیکی 8 1 اینچ واشر با قطر 1 1 اینچ چوبی رولپلاک 1 "بلند 8 پیچ Vex 1" 8 "" پیچ Vex 8 2 "پیچ Vex 8" اینچ فاصله لاستیکی 48 مهره Vex 1 کراوات کوچک زیپ دار

مرحله 3: [نمونه اولیه] نازک کاری چوب بازوها و کابین داخلی ما

[نمونه اولیه] نجاری چوب و بازوهای داخلی ما
[نمونه اولیه] نجاری چوب و بازوهای داخلی ما

ما دو عدد 4x4 گرفتیم و آنها را به طول مساوی برش دادیم (33 )

با استفاده از اره رومیزی ، ما در کنار قسمت باریک تخته ها "عمق و" عرض وسط یک بریدگی ایجاد کردیم.

رولپلاک را به 4 قطعه 2 اینچ برش دهید و در وسط رولپلاک با قطر حدود ¼ اینچ سوراخ کنید

مرحله 4: [نمونه اولیه] ساخت کالسکه ما

[نمونه اولیه] ساخت کالسکه ما
[نمونه اولیه] ساخت کالسکه ما
[نمونه اولیه] ساخت کالسکه ما
[نمونه اولیه] ساخت کالسکه ما
[نمونه اولیه] ساخت کالسکه ما
[نمونه اولیه] ساخت کالسکه ما

در حالت ایده آل ما از دو قطعه 7x7 فولاد سوراخ دار استفاده می کنیم ، اما تنها چیزی که در اختیار داشتیم نوارهای 2x7 بود ، بنابراین آنها را در یک پیکربندی "X" به هم وصل کردیم.

5 عدد فاصله گیر لاستیکی ⅜ اینچی را روی هم چیده و گوشه های ورقه های نازک را به یکدیگر محکم کنید

رولپلاک های چوبی را همانطور که در شکل 1 نشان داده شده است محکم محکم کنید تا بتوانند آزادانه با فاصله 2 اینچی بین آنها بچرخند و از تصویر برای دیدن محل قرارگیری چرخ دنده ها در این نقطه استفاده کنید ، اما بعداً متوجه شدیم که چرخ دنده های پلاستیکی کوچک بهتر کار می کنند. به

با استفاده از پیچ "vex ، فاصله دهنده های لاستیکی ¼" و واشرهای با قطر 1 "، واشرها را در حالت مرتفع مانند شکل 1 ثابت می کند (ما از چرخ دنده های پلاستیکی سبز استفاده کردیم زیرا واشرهای مناسب را پیدا نکردیم) مطمئن شوید که واشرها قادر هستند به راحتی بچرخد و در شکاف تخته جا شود.

مرحله 5: [نمونه اولیه] همه چیز را کنار هم قرار دهید

[نمونه اولیه] همه چیز را کنار هم قرار دادن
[نمونه اولیه] همه چیز را کنار هم قرار دادن
[نمونه اولیه] همه چیز را کنار هم قرار دادن
[نمونه اولیه] همه چیز را کنار هم قرار دادن
[نمونه اولیه] همه چیز را کنار هم قرار می دهیم
[نمونه اولیه] همه چیز را کنار هم قرار می دهیم
[نمونه اولیه] همه چیز را کنار هم قرار می دهیم
[نمونه اولیه] همه چیز را کنار هم قرار می دهیم

یک تخته را روی سطحی قرار دهید و کالسکه را به وسط بکشید تا واشرها واگن را بالای تخته نگه دارند و در دو طرف تخته چرخ دنده ها را به پایین میخ کنند تا آزادانه بچرخند. یک دنده را به یک سر تخته دوم محکم کنید و مطمئن شوید که در مرکز قرار دارد و آن را بر روی کالسکه عمود بر تخته اول بکشید.

اکنون تسمه باید همانطور که در تصویر نشان داده شده است از طریق سیستم حلقه شود ، به نحوه قرار گرفتن رولپلاک در قسمت بیرونی کمربند و اینکه در مرکز شاسی هیچ چیز نمی تواند مانع تسمه در حین حرکت شود ، دقت کنید.

اکنون کمربند باید در طرف تخته که دنده ندارد بسته شود. ما از یک میخ و زیپ اضافی برای بستن بند خود استفاده کردیم. اما تا زمانی که کمربند در آن نقطه لنگر انداخته شده باشد ، روش مورد استفاده اهمیتی ندارد

مرحله 6: [نمونه اولیه] تمام شد و حرکت می کند

Image
Image

این باید باشد ، کمربند را در ترکیب های مختلف بکشید و تأثیرات متفاوتی را که روی بازو دارد ببینید!

مرحله 7: ترجمه مدل ما به طراحی نهایی ما

ترجمه مدل ما به طراحی نهایی ما
ترجمه مدل ما به طراحی نهایی ما
ترجمه مدل ما به طراحی نهایی ما
ترجمه مدل ما به طراحی نهایی ما

هنگامی که نمونه اولیه خود را تکمیل کردیم ، به وجد آمده بودیم. هیچکدام از ما مطمئن نبودیم که سیستم قبل از مونتاژ چگونه کار می کند. اما ، هنگامی که قطعات ما به هم نزدیک شدند ، ما به سرعت کشف کردیم که چه چیزی را دوست داریم و چگونه می توانیم آن را هنگام ایجاد طرح نهایی بهبود بخشیم. عمده شکایات ما از سیستم برای حل این موارد عبارت بودند از:

  1. مقیاس

    1. نمونه اولیه ما عظیم و دشوار بود ، که باعث می شد در لبه بازوهای ما به سمت بالا پرتاب شود
    2. کالسکه بسیار بزرگتر از حد لازم بود و فضای زیادی را هدر داده بود
    3. کمربند ما (یک آج مخزن مخملی) بسیار بزرگتر از مقدار لازم بود ، که باعث ایجاد فضای اضافی بین بازوها می شد
  2. اصطکاک

    1. روکش های گلی ما در تمام نقاط به راحتی از غلطک های رولپلاک چوبی عبور نمی کردند
    2. پلاستیک روی چوب باعث می شد تا واگن در بسیاری از موارد حرکت نکند
  3. موتور دهی

    ما نیاز داشتیم که سیستم را قدرتمند کنیم

با در نظر گرفتن این موارد ، ما برنامه های خود را برای طراحی نهایی ترسیم کردیم. ما می خواستیم drawbot با Myo از طریق آردوینو کنترل شود و می خواستیم قاب را آلومینیومی و کوچکتر کنیم.

برای انجام این کار ، ما درصدی از نمونه اولیه خود را برداشته و از همان اندازه شروع به کار کردیم. با استفاده از ورق های فلزی که می توانند کانال هایی به اندازه کافی گسترده برای عبور یاتاقان محافظ داشته باشند ، طراحی سبک و در عین حال محکمی خواهیم داشت که از تحمل استفاده بالاتری برخوردار خواهد بود.

نمونه اولیه ما همچنین به ما این امکان را داد که تنها در چند دقیقه تعیین کنیم که چگونه چرخش موتور بر روی نوار کشنده ما تأثیر می گذارد. این ما را به این درک می رساند که طراحی کنترل ما ساده تر از آن چیزی است که تصور می کردیم. با بازرسی دقیقتر متوجه شدیم که حرکت موتور افزودنی است! این بدان معناست که هر موتور تأثیر مطلوب مستقل بر حرکت ما دارد ، اما وقتی آنها را با هم ترکیب می کنیم ، شروع به خاموش شدن می کنند.

به عنوان مثال ، اگر مانند یک صفحه مختصات در نظر گرفته شود ، موتور در انتهای منفی x همیشه تمایل دارد کشوی ما را به ربع دوم و چهارم بکشد. برعکس ، موتور روی قسمت انتهایی x مثبت همیشه کشو را به ربع اول و سوم متمایل می کند. اگر حرکت موتورهای خود را با هم ترکیب کنیم ، بخش های هدایت کننده این ناسازگاری را لغو می کند و قسمت های موافق را تقویت می کند.

مرحله 8: کد نویسی

در حالی که چند سال پیش در C به طور گسترده ای کار می کردم ، هیچ تجربه ای در مورد lua یا C ++ نداشتم ، و این بدان معناست که من باید زمان قابل توجهی را صرف بررسی اسناد و مدارک کنم. من می دانستم که وظیفه کلی که من سعی می کنم انجام دهم این است که موقعیت کاربر را در بازه های زمانی بدست آورم و سپس آن را به موتورها منتقل کنم. تصمیم گرفتم وظیفه خود را برای هضم بهتر قطعات مورد نیاز خود تقسیم کنم.

1. دریافت داده از Myo (lua)

می دانستم که باید راهی برای جمع آوری اطلاعات از Myo پیدا کنم. این اولین قسمت از چالشی بود که می خواستم به آن نزدیک شوم. برای انجام این کار ، می خواستم قبل از شروع به کشیدن ، اندازه بوم خود را برای کاربر کالیبره کنم. این به من اجازه می دهد تا محدوده ای برای کار داشته باشم. سپس می توانم برنامه را بین کاربران مختلف عادی کنم و فقط درصد حداکثر بوم را به عنوان نقاط داده ام ارسال کنم. من تصمیم گرفتم که یک رویداد اسکریپتی داشته باشم که هر نیم ثانیه یک بررسی جهت گیری انجام دهد ، زیرا به چک ها اجازه می دهد هرگز یک پرش وحشی انجام ندهند که باید حدس بزنید (به عنوان مثال ، اگر کاربر در حال چرخش شدید به عقب و جلو)

این اولین مانعی بود که به آن برخورد کردم. من محدودیت بسیار زیادی در لوآ کشف کردم و این اجازه نمی داد که قبل از ادامه فیلمنامه منتظر بمانم. تنها راهی که می توان این عمل را انجام داد این بود که CPU را متوقف کند (که به طور جهانی آن را متوقف می کرد ، حتی با نگه داشتن ساعت سیستم) ، یا از دستورات خاص سیستم عامل استفاده می کرد. در کد نمونه من ، در سیستم عامل اصلی که انجام دادم (نظر دادم) گذاشتم. این پس از انجام تحقیقات زیادی در اسناد lua انجام شد و با بررسی قالب بندی مسیر سیستم انجام شد. این زمانی بود که تصمیم گرفتم باید به اسناد پروژه هایی که قبلاً منتشر شده بودند ، نگاهی بیندازم. من بلافاصله متوجه شدم چقدر زمان را هدر داده ام و بلافاصله به متغیر پلتفرم هدایت شدم. با استفاده از آن ، من توانستم دستورات انتظار سیستم عامل را تقریباً بلافاصله پیاده سازی کنم ، برخلاف روزهایی که طول کشید تا راه حل قبلی خود را با هم جمع کنم.

در همین زمان طراحی بود که کار روی جنبه الکتریکی آغاز شد و من کار روی این جنبه از کد را متوقف کردم. هدف ما یادگیری نحوه ارتباط موتورهای ما با آردوینو است.

2. کار در اطراف آردوینو (C ++)

با پیچیده تر شدن کار با تخته نان ما ، متوجه شدم که آردوینو قادر به چند رشته نیست. این یک مشکل بزرگ در طراحی کد اصلی من بود و پس از مطالعه بیشتر در مورد محدودیت های ارائه شده با کنترلر ما ، متوجه شدم که باید نحوه تغییر آردوینو بین این دو را برنامه ریزی کنم. با نزدیک شدن به مهلت مقرر ، این موضوع مورد توجه تلاشهای من قرار گرفت. من مجبور شدم قسمت های بزرگی از اسکریپت اصلی خود را بردارم زیرا آنها برای نوشتن داده ها به صورت همزمان با کنترلر موتور در حال خواندن فایل طراحی شده بودند. این به منظور ایجاد یک عملکرد صف برای اطمینان از این است که حتی اگر کاربر جلوتر از کشوی ما باشد ، پروژه را خراب نمی کند.

من تصمیم گرفتم که عملکرد صف باید ذخیره شود ، اگر به همان روش قبلی اجرا نشود. برای انجام این کار ، من یک بردار از آرایه ها ایجاد کردم. این به من این امکان را داد که نه تنها روح طرح قبلی خود را نسبتاً دست نخورده نگه دارم ، بلکه این بدان معناست که من مجبور نیستم جایگاه خود را در پرونده برای خواندن یا نوشتن پیگیری کنم. در عوض ، در حال حاضر تنها کاری که باید انجام می دادم این بود که اگر کاربر در حال حرکت بود یک مقدار جدید به بردار من اضافه می کرد (آزمایش اولیه کمتر از 1 difference تفاوت اندازه بوم در هر دو x و y از آخرین موقعیت ثبت شده منجر به عدم ثبت داده ها) به سپس می توانم قدیمی ترین مقدار را در بردار خود بگیرم و در یک حرکت ، آن را به کنترل موتور ارسال کنم ، آن را در فایل ما بنویسم و سپس آن را از بردار خود حذف کنم. با این کار بسیاری از نگرانی های من در مورد اجرای مداوم جریان IO برطرف شد.

مرحله نهم: برق

Image
Image
برق
برق

در حالی که من در گذشته در کلاس الکترونیک شرکت کرده ام و مقدار قابل توجهی با آردوینو کار کرده ام. من هرگز عمیقاً مجبور به دریافت آردوینو از منبع خارجی (myo) نشده ام ، فقط تجربه خروج اطلاعات از طریق آردوینو را دارم. با این حال ، من سیم کشی موتورها را روی خط کش خود انجام دادم و روی کد کار کردم تا بتوانند با کد myo کار کنند.

موادی که استفاده کردم:

2 عدد موتور پله ای

1 عدد تخته نان

1 عدد آردوینو (Uno)

2 عدد درایور IC L293DE

40 عدد سیم جامپر

2 عدد طرفدار

1. اتصال Stepper Motors و Fan به Breadboard

پس از نمودار مدار ، می توانیم یک موتور پله ای را روی راننده روی تخته نان متصل کنیم. سپس ، با رعایت همان نمودار که برای راننده و موتور دوم اعمال می شود ، سیم های جامپر باید در پین های مختلف آردوینو به پین های مختلف متصل شوند (از آنجا که موتور اول فضای 4 نفر دیگر را اشغال کرده است).

هشدار/نکته:

درایورها بسیار کوچک هستند و پین ها بسیار نزدیک یکدیگر هستند. عاقلانه است که دو راننده را از هم جدا کنید تا سیم ها گیج نشوند.

مرحله بعدی سیم کشی فن ها است. این نسبتاً ساده است ، طرفدارانی که من در دسترس داشتم ، فن های اصلی پردازنده کامپیوتر بودند که دارای ویژگی های مثبت و قوی هستند. آن دو را به پین های +/- مربوطه خود روی تخته وصل کنید و هر کدام را به سمت هر راننده زاویه دهید. (ما دریافتیم که به دلیل اینکه موتورهای پله ای اطلاعات زیادی و دستورات زیادی را در مدت زمان طولانی دریافت می کنند ، رانندگان بیش از حد داغ می شوند و بو می گیرند. با افزودن فن برای خنک کردن آن این مشکل برطرف می شود).

2. کد آردوینو

این بخش آسان است!

Arduino IDE را باز کنید به برگه "File" بروید و سپس به برگه "example" بروید که حتی بیشتر پایین می آید و یک برگه "stepper" به شما نشان می دهد سپس می خواهید "Stepper_OneStepAtATime" را باز کنید

با این کار یک کد نمونه که تقریباً به سیم کشی آردوینو/موتور وصل می شود بارگذاری می شود. ما مجبوریم تنظیمات کوچکی انجام دهیم زیرا دو موتور را اجرا می کنیم که در زیر آنها را نشان خواهم داد. همچنین ممکن است مجبور شوید بسته به پین هایی که تصمیم گرفته اید از آنها استفاده کنید ، تغییرات جزئی را انجام دهید ، زیرا Arduino IDE به طور پیش فرض روی پین 8-11 تنظیم شده است.

کدی که برای حرکت دو موتور در حالت "همگام سازی" استفاده کرده ام ، در زیر آمده است:

//#عبارتند از

const int stepsPerRevolution = 200؛

Stepper myStepper1 (مراحلPerRevolution ، 9 ، 10 ، 11 ، 12) ؛

Stepper myStepper2 (مراحلPerRevolution ، 4 ، 5 ، 6 ، 7) ؛

int stepCount = 0؛

void setup () {// مقداردهی اولیه پورت سریال: Serial.begin (9600)؛ }

حلقه خالی () {

myStepper1.step (1)؛

Serial.print ("مراحل:")؛

Serial.println (stepCount) ؛

stepCount ++؛

تاخیر (0.5) ؛

myStepper2.step (1)؛ تاخیر (0.5) ؛ }

3. مشکلات احتمالی

مسائلی که در این فرایند با آن روبرو شدم استفاده نکردن از کد مناسب ، استفاده از سیم جامپر بد ، استفاده از IC درایور اشتباه بود.

اطمینان حاصل کنید که راننده شما که از آن استفاده می کنید توانایی کنترل موتور را دارد

شماره سریال را بررسی کرده و مشخصات آن را بررسی کنید

من با داشتن یک سیم جامپر مرده روبرو شدم که باعث چرخش عجیب موتورهایم شد

مجبور شدم از مولتی متر برای بررسی هر سیم استفاده کنم

و همیشه کد خود را برای خطاهای کوچک مانند از دست دادن پایان “؛” دوبار بررسی کنید. فرمان

مرحله 10: مکانیکی

مکانیکی
مکانیکی
مکانیکی
مکانیکی
مکانیکی
مکانیکی
مکانیکی
مکانیکی

1. مواد

برای مدل تولید کامل بازوها توصیه می شود که از مواد قوی و در عین حال سبک وزن ساخته شده باشند ، ما احساس کردیم که آلومینیوم کاملاً مناسب است.

ما از ورق های آلومینیوم 032 با ابعاد 9.125 اینچ در 17.5 اینچ استفاده کردیم و الگو را از نقاشی نشان داده شده در مرحله قبل دنبال کردیم.

2. ساخت

ما با استفاده از چکش (دستگاه آبی) سجاف هایی را که جهت مخالف دارند ، اضافه کردیم تا وقتی قطعه شکسته و تا شد ، دو سجاف به هم متصل شوند و یک قطعه کامل واحد تشکیل دهند.

در پیچ های بزرگ از تنیسمیت استفاده کردیم ، زیرا دقت بالایی دارد.

در حال حاضر برای پیچ های کوچکتر ، شما می خواهید از دستگاهی با پای کوچکتر استفاده کنید ، این جایی است که دستگاهی مانند روتومیت وارد می شود. بدلیل کوچکتر بودن پای آن ، متاسفانه می توان وقفه های کوچکتری ایجاد کرد. ، قالب گردان در اختیار ما هنوز برای راه آهن ما بسیار بزرگ بود و تغییر شکل داده بود.

** از طرف دیگر ، اگر به تجهیزات یا ابزارهای مناسب دسترسی ندارید ، می توانید جایگزینی تهیه کنید. **

در مورد ما ، ما بازوهای خود را از ریل های پنل خورشیدی آلومینیومی با استفاده از برش پلاسما جدا کرده و انتهای آن را صاف می کنیم و سپس آنها را پشت و رو می کنیم تا یک سیستم راه آهن دو طرفه ایجاد کنیم. در حالت ایده آل ، ما می خواهیم ریل ها را به هم جوش دهیم ، با این حال ، بدون دسترسی به ایستگاه جوشکاری ، در عوض ریل ها را به هم محکم کرده و سوراخ کرده و سپس آنها را به هم وصل کرده ایم. اما اگر این مسیر طی شود ، باید مراقبت ویژه ای از مهره و واشر قفل شده انجام شود تا اطمینان حاصل شود که قطعه تا حد ممکن خم می شود.

3. کمربند

برای کمربندها از تسمه های چاپگر سه بعدی قدیمی استفاده کردیم که توانستیم آنها را نجات دهیم.

کمربندها در ابتدا به اندازه کافی بلند نبودند ، بنابراین با استفاده از لوله های کوچک کننده حرارتی ، ما دو قطعه را با هم ترکیب کردیم تا یکی را بسازیم که به اندازه کافی طولانی باشد.

چرخ دنده های سبز و رولپلاک چوبی با یاتاقان های دیسکی با واشرهای بسیار وسیع جایگزین شدند تا کمربند از جای خود خارج نشود.

4. کالسکه

و سرانجام کالسکه از یک ورق آلومینیومی 032 "5" در 5 "ساخته شد ، با سوراخ هایی که پیچ ها و واشرهای مربوطه باید در آن فشرده شوند. بسته به اینکه عرض ریل شما چقدر است و چقدر فاصله از واشرهای خود دارید ، فاصله متغیر خواهد بود.

مرحله 11: بازتاب ها

متأسفانه ، هر طرف پروژه ما با مانع بزرگ زمان روبرو شد ، و ما نتوانستیم طراحی خود را تا تاریخ مورد نظر خود به پایان برسانیم. هر یک از اعضای تیم ما حداقل در برخی از جنبه های دیگر طراحی ما همکاری کردند و منجر به کاهش زمان منحنی یادگیری شد. این امر همراه با تمایل به طراحی محصول با حداقل منابع خارجی (همانطور که همه ما می خواستیم قطعات مربوطه را از ابتدا ایجاد کنیم) ، منجر به ایجاد تعداد زیادی چرخ جدید شد.

همه کسانی که روی پروژه کار کردند بیشتر با سایر جنبه های پروژه آشنا شدند. ایجاد نرم افزار برای انجام یک کار یک چیز است ، و سپس کارکردن نرم افزار در کنار سخت افزار یک چیز دیگر است. من می گویم مهم است که هرکسی که در زمینه برنامه نویسی این پروژه کار می کند ، مانند رمزگذار پروژه ما آشنا باشد.

به طور کلی ، ما نتوانستیم دقیقاً به آنچه می خواستیم برسیم. با این حال ، من احساس می کنم که ما در مسیر درستی بودیم و همه ما مفاهیم جدیدی را کشف کردیم و آموختیم که قادر خواهیم بود در پروژه های آینده از آنها استفاده کنیم.

توصیه شده: