فهرست مطالب:

Pipboy ساخته شده از قراضه: 26 مرحله (همراه با تصاویر)
Pipboy ساخته شده از قراضه: 26 مرحله (همراه با تصاویر)

تصویری: Pipboy ساخته شده از قراضه: 26 مرحله (همراه با تصاویر)

تصویری: Pipboy ساخته شده از قراضه: 26 مرحله (همراه با تصاویر)
تصویری: Fallout 76 نکات و ترفندها (آلمانی ، زیرنویس چند زبانه) 10+ نکاتی برای مبتدیان و Advanced Ep. 2 2024, جولای
Anonim
Image
Image
ساختن قلب Pipboy
ساختن قلب Pipboy

این Pipboy کار من است ، ساخته شده از مواد ناخواسته از گاراژ و حمله به قطعات الکترونیکی من. به نظر من این یک ساختار چالش برانگیز بود و چندین ماه کار برای من طول کشید ، بنابراین من این را به عنوان یک پروژه کامل مبتدیان طبقه بندی نمی کنم. مهارت های مورد نیاز شامل کارهای پلاستیکی و چوبی ، الکترونیک و کد نویسی است. بدنه از قطعات مختلف پلاستیک قراضه ساخته شده و به هم جوش داده شده است. من از Raspberry Pi 0 به عنوان میکرو کنترلر استفاده کردم و هدر صفحه نمایش روی قسمتی از پین های GPIO نصب شده بود. پین های باقی مانده برای رانندگی LED ها و اتصال دکمه ها/کنترل ها استفاده می شود. برای تکمیل پروژه ، یک رابط کاربری به سبک "Pipboy" با چند صفحه نمایشی در پایتون نوشتم.

اهداف من برای پروژه عبارت بودند از:

  • باید کار می کرد - یعنی برای داشتن صفحه نمایش که کارها را انجام می داد ، لازم بود
  • من می خواستم یک صفحه برای انتخاب صفحات مختلف داشته باشم ، زیرا همیشه برای من به عنوان بخشی از UI در Fallout برجسته بود
  • کل ساخت و ساز باید با استفاده از چیزهایی که قبلاً در گاراژ یا دفتر کار داشتم تکمیل شود (این به طور کامل به دست نیامد ، اما من نزدیک شدم - بیش از 90 of از این موارد یا چیزهایی که قبلاً در اطراف آنها گذاشته بودم پیدا شد)
  • لازم است پوشیدنی باشد

یکی از اهدافی که من نداشتم این بود که آن را به کپی دقیق یکی از مدل های درون بازی تبدیل کنم - من ترجیح می دهم چیزهایی را به سبک یک چیز بسازم ، زیرا به من فضا می دهد تا آشغال های تصادفی که پیدا می کنم را تطبیق دهم ، و اجازه دهید کمی خلاق تر باشم سرانجام ، بله ، می دانم که می توانید اینها را بخرید ، اما این نیز مهم نبود ؛)

تدارکات

تدارکات

  • لوله عریض (مانند یک قطعه لوله تخلیه)
  • پلاستیک قراضه (هم برای ایجاد بدنه و هم برای اهداف تزئینی)
  • ظرف کوچک
  • تشک کف فوم
  • تمشک پای
  • صفحه نمایش 3.5 اینچی
  • رمزگذار روتاری KY040
  • LED های 3x
  • 2 دکمه فشاری
  • پاوربانک
  • سیم کشی
  • پیچ ، چسب ، رنگ ، پرکننده و غیره

ابزارها

  • درمل
  • چند ابزار با ضمیمه های برش و سنباده
  • مته
  • فایل ها
  • آهن لحیم کاری
  • چسب حرارتی تفنگی
  • پیچ گوشتی (ها)
  • چاقوی تیز
  • اره

مرحله 1: ساختن قلب Pipboy

ساختن قلب Pipboy
ساختن قلب Pipboy

اولین کاری که باید انجام دهم این بود که اطمینان حاصل کنم که می توانم یک صفحه نمایش و میکروکنترلر را در فاکتور فرمی که می توانم با آن کار کنم ، تهیه کنم. من یک صفحه نمایش 3.5 اینچی داشتم که به عنوان HAT روی پین های GPIO یک Raspberry PI قرار داشت ، بنابراین تصمیم گرفتم از این استفاده کنم. آن را با Raspberry Pi 0 جفت کردم و مطمئن شدم که خوب کار می کند ، چند مرحله برای به دست آوردن لینوکس برای نمایش صفحه ای که باید از طریق آن کار کنید.

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

در این مرحله نیز لازم به ذکر است که بعداً در هنگام ساخت این دستگاه با مشکلات عملکردی روبرو شدم - عمدتاً میزان بازخوانی رابط کاربری بین Pi و صفحه نمایش ، بعداً در هنگام ساخت به این موضوع می پردازم ، اما اگر این کار را دوباره انجام دادم ممکن است سخت افزارهای مختلف را در اینجا در نظر بگیرم.

در اینجا چند لینک مفید برای این کار وجود دارد:

www.raspberrypi.org/forums/viewtopic.php؟t…

www.raspberrypi.org/forums/viewtopic.php؟t…

www.raspberrypi.org/forums/viewtopic.php؟f…

learn.sparkfun.com/tutorials/serial-periph…

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

مرحله 2: نمونه اولیه مقوایی

نمونه اولیه مقوایی
نمونه اولیه مقوایی
نمونه اولیه مقوایی
نمونه اولیه مقوایی
نمونه اولیه مقوایی
نمونه اولیه مقوایی

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

مرحله 3: از نمونه اولیه تا الگو

از نمونه اولیه تا الگو
از نمونه اولیه تا الگو
از نمونه اولیه تا الگو
از نمونه اولیه تا الگو
از نمونه اولیه تا الگو
از نمونه اولیه تا الگو

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

مرحله 4: Case for Screen & Pi را اضافه کنید

Case for Screen & Pi را اضافه کنید
Case for Screen & Pi را اضافه کنید
Case for Screen & Pi را اضافه کنید
Case for Screen & Pi را اضافه کنید

من می خواستم گوشه های صفحه نمایش منحنی باشد ، و من به چیزی نیاز داشتم که واقعاً Pi را نگه دارد و نمایش دهد - راه حل من استفاده از یک ظرف پلاستیکی کوچک بود. من سوراخی را از بالای بدن جدا کردم و ظرف را از طریق آن چسباندم. سپس همه طرف ها را به هم چسباندم. من از چسب فوق العاده با جوش شیرین زیاد برای تقویت جوش ها استفاده کردم. بعداً همه چیز را پر کردم و ثبت کردم/سنباده زنی کردم تا همه چیز را مرتب کنم و به آن احساس "قالب بندی" بیشتری بدهم.

مرحله 5: برای کنترل پنل تکرار کنید

برای کنترل پنل تکرار کنید
برای کنترل پنل تکرار کنید
برای کنترل پنل تکرار کنید
برای کنترل پنل تکرار کنید
برای کنترل پنل تکرار کنید
برای کنترل پنل تکرار کنید

در مرحله بعد ، من دقیقاً همان الگو را برای انتقال ، برش و چسباندن محفظه کنترل پنل انجام دادم.

مرحله 6: لوله را برش دهید

لوله را قطع کنید
لوله را قطع کنید

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

مرحله 7: قاب

قاب
قاب
قاب
قاب

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

مرحله 8: تست باتری

تست باتری
تست باتری
تست باتری
تست باتری
تست باتری
تست باتری

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

مرحله 9: تست تناسب اندام

Testing Fit
Testing Fit
Testing Fit
Testing Fit
Testing Fit
Testing Fit

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

مرحله 10: کنترل ها و جزئیات را اضافه کنید

افزودن کنترل ها و جزئیات
افزودن کنترل ها و جزئیات
افزودن کنترل ها و جزئیات
افزودن کنترل ها و جزئیات
افزودن کنترل ها و جزئیات
افزودن کنترل ها و جزئیات

من می خواستم یک سری LED قرمز/زرد/سبز برای اندازه گیری اندازه گیری و همچنین یک صفحه چرخشی و حداقل 2 دکمه فشار دهید. همه اینها در قسمت کنترل پنل نصب شده بودند - فقط یک مورد برای سوراخ کردن تمام سوراخ های مناسب. من همچنین شروع به اضافه کردن قطعات کوچک از قطعات پلاستیکی ضایعاتی (اساساً کیت bashing) کردم تا جزئیات و علاقه بیشتری به بدنه و کنترل پنل اضافه کنم.

مرحله 11: بازسازی شماره 3 Bezel

بازسازی شماره 3
بازسازی شماره 3
بازسازی شماره 3
بازسازی شماره 3
بازسازی شماره 3
بازسازی شماره 3

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

مرحله 12: نمونه سازی الکترونیک

نمونه سازی الکترونیک
نمونه سازی الکترونیک
نمونه سازی الکترونیک
نمونه سازی الکترونیک

من از یک تخته نان برای چیدمان مدارهای ساده خود به این شکل استفاده می کنم و همانطور که اغلب این قسمت از پروژه را در فضایی متفاوت با ساختار اصلی بدن انجام می دهم ، آن را با یک PI تمشک متفاوت نیز جفت کردم. در اینجا من از مدل 3 استفاده کردم ، که به من قدرت بیشتری داد تا بتوانم مستقیماً به آن متصل شوم و یک IDE را روی صفحه اجرا کنم. این فقط نمونه سازی سریع کد را برای من کمی ساده تر کرد. راههای زیادی برای اتصال از راه دور/کد/اشکال زدایی وجود دارد ، این تنها چیزی است که من ترجیح دادم اینجا انجام دهم.

طراحی در اینجا نسبتاً مستقیم است ، ما داریم ؛

  1. رمزگذار روتاری - این از یک پایه و تعدادی پین GPIO برای رسیدگی به جهت کلیک و دکمه فشار استفاده می کند.
  2. جفت دکمه فشاری ، اینها به سادگی از یک پین GPIO واحد و از یک نقطه مشترک استفاده می کنند
  3. 3 چراغ LED ، هر کدام دارای یک مقاومت داخلی برای جلوگیری از ظاهر شدن آنها ، همه به یک نقطه مشترک می روند ، اما هر کدام با یک پین GPIO جداگانه به طوری که هر یک به صورت جداگانه قابل بررسی است.

این به من 3 LED برای اندازه گیری من ، یک رمزگذار دوار برای چرخاندن از طریق صفحه نمایش در pipboy و 3 دکمه فشار برای حرکت (یکی در رمزگذار چرخشی و 2 جداگانه با سیم) به من داد. این تقریباً تمام چیزی بود که می توانستم جا دهم ، و با نمایش تعداد زیادی پین در صفحه نمایش ، تقریباً آنچه را که در یک طرح استاندارد Pi GPIO دارید مصرف می کند. با این حال برای اهداف من خوب بود.

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

نکته ای درباره رمزگذارهای دوار. من زمان زیادی را صرف نوشتن دستگاه Rotary Encoder خودم می کردم تا تغییرات GPIO بالا/پایین را ردیابی کنم و اینها را در موقعیت های چرخشی ترسیم کنم. من در اینجا موفقیت های متفاوتی داشتم ، من آن را برای "بیشتر" موارد کار می کردم ، اما همیشه موارد پیشرو و (عدم) جهش و غیره برای رسیدگی وجود دارد. استفاده از یک کتابخانه آماده بسیار آسان تر است و برای این کتابخانه هایی مناسب برای نصب در پایتون وجود دارد. من در نهایت از آن استفاده کردم زیرا به من اجازه داد به جای سرگرم کردن مسائل مربوط به اشکال زدایی ، روی بخش سرگرم کننده ساختمان تمرکز کنم. تمام جزئیات مربوط به آن در کد منبع گنجانده شده است.

اگر با رزبری پای ، GPIO و لوازم الکترونیکی تازه کار هستید ، آموزش های زیر را به شدت توصیه می کنم که همه چیزهایی را که برای انجام طرح بالا نیاز دارید به شما آموزش می دهد.

projects.raspberrypi.org/fa/projects/physi…

thepihut.com/blogs/raspberry-pi-tutorials/…

مرحله 13: انتقال وسایل الکترونیکی به بدن

انتقال وسایل الکترونیکی به بدن
انتقال وسایل الکترونیکی به بدن
انتقال وسایل الکترونیکی به بدن
انتقال وسایل الکترونیکی به بدن
انتقال وسایل الکترونیکی به بدن
انتقال وسایل الکترونیکی به بدن

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

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

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

توجه داشته باشید لحیم کاری من وحشتناک است ، بنابراین من این را ساده نگه داشتم و از هر چیزی که خیلی دقیق/خوب باشد اجتناب کردم. در تصویر نهایی مشاهده می کنید که من چند صفحه گسترده کوچک (5x5) نیز داشتم ، من از یکی از این وسایل نصب شده در داخل برای ارائه یک پنل برای اتصال همه چیز به/از GPIO استفاده کردم. این امر به ویژه برای ایجاد یک راه آهن زمینی مشترک که می توانم از آن استفاده کنم و جلوگیری از برخورد زیاد سیم های زمینی به Pi ، مفید بود.

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

مرحله 14: تنظیم دقیق Fit

تنظیم دقیق Fit
تنظیم دقیق Fit
تنظیم دقیق Fit
تنظیم دقیق Fit

در این مرحله به برخی از مسائل "مناسب" برخورد کردم. در ابتدا استفاده از اتصالات dupont برای سیم کشی به این معنی است که به سختی می توان آنها را روی پین ها با کلاه نمایش در محل قرار داد زیرا فاصله کافی از ارتفاع وجود نداشت. من این مشکل را با خرید (این یکی از معدود چیزهایی است که من واقعاً برای این پروژه خریدم) با یک پین کوچک GPIO حل کردم تا بتوانم کلاه نمایشگر را بالاتر بگذارم و برای دسترسی به پین های GPIO باقی مانده با استفاده از اتصالات dupont فضا را رها کنم.

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

مرحله 15: یکپارچهسازی با سیستمعامل رمزگذار روتاری

Retro Up the Rotary Encoder
Retro Up the Rotary Encoder

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

مرحله 16: پوشش داخلی

پوشش داخلی
پوشش داخلی
پوشش داخلی
پوشش داخلی

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

مرحله 17: اضافه کردن جزئیات

افزودن جزئیات
افزودن جزئیات
افزودن جزئیات
افزودن جزئیات

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

مرحله 18: رنگ آمیزی و تکمیل بدن سازی

رنگ آمیزی و تکمیل ساخت بدن
رنگ آمیزی و تکمیل ساخت بدن
رنگ آمیزی و تکمیل ساخت بدن
رنگ آمیزی و تکمیل ساخت بدن
رنگ آمیزی و تکمیل ساخت بدن
رنگ آمیزی و تکمیل ساخت بدن

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

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

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

مرحله 19: کدگذاری

کد نویسی
کد نویسی

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

من به دلیل پشتیبانی عالی از Raspberry Pi ، GPIO و غیره ، این را در پایتون می نویسم. Python در لیست زبانهای آشنا من بسیار کم است ، بنابراین این یک منحنی یادگیری بزرگ برای من بود و بسیاری از کد ها در نتیجه آشفته من به مرور زمان این کار را به روز خواهم کرد زیرا تمام کارهایی را که می خواستم در اینجا انجام دهم به طور کامل به پایان نرسانده ام - اما به اندازه کافی نزدیک است که بتوانم آن را به اشتراک بگذارم زیرا همه مفاهیم اصلی وجود دارد.

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

کتابخانه های اصلی مورد استفاده:

  • pygame: من از این به عنوان موتور برای اجرای رابط کاربری استفاده می کنم زیرا به من امکان می دهد گرافیک دلخواه بکشم ، تصاویر ، فونت ها را دستکاری کنم ، به حالت تمام صفحه بروم و غیره.
  • pyky040: این کار باعث می شود که صفحه گردان چرخانده شود و زمان زیادی را برای من صرفه جویی کرد (با تشکر فراوان از رافائل یانسی برای انتشار آن.
  • RPi. GPIO: برای رانندگی خوب GPIO ، من با چند گزینه در اینجا بازی کردم ، اما این سطح انعطاف پذیری مطلوبی را به من داد ، به ویژه در مواردی مانند استفاده از GPIO اضافی به عنوان 3.3 ولت دیگر برای رانندگی رمزگذار چرخشی و غیره.
  • نویز: برای ایجاد نویز پرلین ، به من اجازه دهید یک شکل موج تصادفی برای صفحه رادیو ایجاد کنم که طبیعی تر به نظر برسد
  • صف: با زمان وقوع حوادث ناشی از چرخاندن رمزگذار چرخشی و سرعت تازه سازی (بسیار) کند صفحه نمایش LCD ، به یک اشکال ناامیدکننده برخورد کردم. در نهایت راهی که من این را حل کردم این بود که رویدادهای ورودی را از رمزگذار چرخشی در صف قرار دهم و همزمان با تازه شدن صفحه ، آنها را یکی یکی انتخاب کنم.
  • os، sys، threading، time: همه برای توابع استاندارد پایتون استفاده می شود

نکته ای در مورد نحوه طراحی صفحه نمایش صفحه نمایش ها به عنوان لیستی از نام های درون کد تعریف می شوند. هر ورودی در لیست می تواند یک فایل-p.webp

محتویات آن فایلها در جاهای دیگر (با دست یا توسط اسکریپتهای دیگر) تولید می شود ، خروجی آنها به صورت فایلهای-p.webp

استثنائات عجیب و غریبی وجود دارد که در آن چند مورد کدگذاری می شوند - مانند شکل موج برای صفحه رادیویی تصادفی که در زمان واقعی محاسبه و متحرک می شود.

اگر تشبیهی به شما کمک می کند ، طراحی UI را به عنوان یک مرورگر وب بسیار خام و ساده در نظر بگیرید - هر "صفحه" مانند یک صفحه وب واقعاً ساده است که فقط می تواند شامل یک-p.webp

در اینجا پیوندهایی به کتابخانه های اصلی وجود دارد که در اینجا استفاده کردم:

www.pygame.org/news

pypi.org/project/pyky040/

pypi.org/project/noise/

مرحله 20: صفحه آمار

صفحه آمار
صفحه آمار

هیچ پیپبی بدون صفحه نمایش آمار کلاسیک pippoy آمار کامل نخواهد بود. برای این کار ، یکی از دوستانم یک-p.webp

مرحله 21: صفحه موجودی

صفحه موجودی
صفحه موجودی

چیزی که همیشه در پروژه های Pi مفید است ، راهی برای نمایش اطلاعات اولیه مانند آدرس IP DHCP'd و غیره است. من تصمیم گرفتم صفحه نمایش موجودی را به عنوان نمایشگر "موجودی" Pi - CPU ، حافظه ، آدرس IP و غیره بارگذاری کنم.. من یک اسکریپت لینوکس کوچک برای جمع آوری این اطلاعات نوشتم و فقط آن را به یک فایل متنی مناسب (.txt) هدایت کردم که سیستم UI سپس آن را برداشته و نمایش می دهد. به این ترتیب اگر من در مکان دیگری بودم می توانم اسکریپت را آتش بزنم و یک فایل.txt تازه با آدرس IP به روز و غیره انتخاب کنم.

مرحله 22: صفحه نقشه

صفحه نقشه
صفحه نقشه

این صفحه یکی از پیچیده ترین صفحات برای کار بود. Raspberry Pi 0 با ماژول GPS ارائه نمی شود ، اما من می خواستم که نقشه تا اندازه ای که Pi در آن قرار داشت اعتبار داشته باشد. راه حل من یک اسکریپت جداگانه است که آدرس IP Pi را می کشد ، از https://ipinfo.io برای جستجوی یک مکان تقریبی استفاده می کند. پاسخ JSON ضبط می شود و سپس مختصات را تبدیل می کنم تا بتوانم کاشی openstreetmap.org را برای محل تقریبی پایین بیاورم.

کاشی ها در چندین رنگ پایین می آیند ، اما من می خواستم یک تصویر در مقیاس سبز مطابق با ظاهر و احساس Pipboy باشد و دقیقاً مشابه آن را پیدا نکردم ، بنابراین یک فیلتر مقیاس سبز در پایتون نوشتم تا رنگ ها را تغییر دهد از کاشی openstreetmap و سپس تصویر جدید را در یک فایل-p.webp

طی فرایند فوق یک فایل متنی با محل تقریبی و مختصات ایجاد می شود و کاشی نقشه به صورت-p.webp

مرحله 23: صفحه نمایش داده ها

صفحه داده
صفحه داده

این فقط یک کارت آزمایشی است (که توسط یک اسکریپت پایتون دیگر تولید شده و در یک فایل-p.webp

مرحله 24: صفحه رادیو

صفحه نمایش رادیو
صفحه نمایش رادیو

همراه با صفحه نقشه ، این صفحه دیگری است که واقعاً باعث کار زیادی برای من شد. این تنها صفحه ای است که من با انیمیشن در آن بازی می کردم - و عمدتا مطابق برنامه عمل می کند ، اما عملکرد هنوز هم با نرخ تازه سازی صفحه LCD مشکل دارد. ساختار صفحه یک فایل متنی است که حاوی برخی از نامهای رادیویی تصادفی است (اینها فقط رشته های دلخواه هستند و هیچ کاری جز ارائه لیست روی صفحه انجام نمی دهند) ، یک فایل-p.webp

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

مرحله 25: اندیشه های نهایی

Image
Image
افکار نهایی
افکار نهایی

این احتمالاً چالش برانگیزترین ساختی است که من انجام داده ام ، با مفاهیم و مهارت های مختلف فراخوانده شده است ، اما در عین حال یکی از لذت بخش ترین چیزهایی است که در نتیجه کار می کند. من هنوز در حال مرتب کردن برخی از یادداشت های فنی تر و همچنین repo github برای کد هستم. همه این موارد را به زودی در اختیار شما قرار می دهم ، بنابراین به زودی مجدداً برای اطلاع از جزئیات و اطلاعات بیشتر به محض اینکه زمان لازم برای افزودن آنها به نوشتن را پیدا کردید ، بازگردید.

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

مرحله 26: کد را در Github باز کنید

کد را در Github باز کنید
کد را در Github باز کنید

سرانجام با باز کردن کد در Github آشنا شدم. در این پیوند موجود است:

توصیه شده: