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

Pipboy مبني من الخردة: 26 خطوة (بالصور)
Pipboy مبني من الخردة: 26 خطوة (بالصور)

فيديو: Pipboy مبني من الخردة: 26 خطوة (بالصور)

فيديو: Pipboy مبني من الخردة: 26 خطوة (بالصور)
فيديو: Moving robot for sale- eBay built from scrap! the 13HP horse! Rufford ford, 2024, شهر نوفمبر
Anonim
Image
Image
بناء قلب Pipboy
بناء قلب Pipboy

هذا هو Pipboy الخاص بي ، الذي تم بناؤه من خردة عشوائية من المرآب وغارة على مخزون المكونات الإلكترونية الخاص بي. لقد وجدت هذا البناء صعبًا واستغرق الأمر عدة أشهر من العمل ، لذلك لن أصنف هذا كمشروع مبتدئ كامل. تشمل المهارات المطلوبة الأعمال البلاستيكية والخشبية والإلكترونيات والترميز. تم بناء الجسم من قطع مختلفة من البلاستيك الخردة المقطوعة والملحومة معًا. لقد استخدمت Raspberry Pi 0 كوحدة تحكم دقيقة ، مع رأس شاشة مثبتة على جزء من دبابيس GPIO. تُستخدم المسامير المتبقية لتشغيل مصابيح LED وتوصيل الأزرار / عناصر التحكم. لقد كتبت واجهة مستخدم بأسلوب "Pipboy" مع بعض الشاشات التجريبية بلغة Python لإكمال المشروع.

كانت أهدافي للمشروع هي:

  • يجب أن تعمل - أي يلزم أن يكون لديك بالفعل شاشة تقوم بالأشياء
  • كنت أرغب في الحصول على "قرص" لتحديد الشاشات المختلفة حيث كان ذلك دائمًا ما يميزني باعتباره جزءًا مميزًا من واجهة المستخدم في Fallout
  • كان لابد من إكمال البناء بأكمله باستخدام أشياء كنت أمتلكها بالفعل في المرآب أو في مكتبي (لم يتم تحقيق ذلك بالكامل ، لكنني اقتربت - تم العثور على ما يزيد عن 90٪ من هذه العناصر أو الأشياء التي كنت أضعها بالفعل)
  • يلزم أن تكون قابلة للارتداء

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

اللوازم

اللوازم

  • أنبوب تجويف عريض (مثل قطعة من أنبوب التصريف)
  • خردة البلاستيك (سواء لصنع الجسم أو لأغراض الديكور)
  • حاوية صغيرة
  • حصيرة أرضية من الإسفنج
  • فطيرة التوت
  • شاشة مقاس 3.5 بوصة
  • جهاز التشفير الدوار KY040
  • 3x المصابيح
  • أزرار دفع 2x
  • أداة للشحن
  • الأسلاك
  • البراغي والمواد اللاصقة والدهانات والحشو وما إلى ذلك

أدوات

  • دريميل
  • أداة متعددة مع ملحقات القاطع والصنفرة
  • تدريبات
  • الملفات
  • لحام حديد
  • مسدس الغراء الساخن
  • سائق (ق) المسمار
  • سكين حاد
  • رأى

الخطوة 1: بناء قلب Pipboy

بناء قلب Pipboy
بناء قلب Pipboy

أول شيء كنت بحاجة إلى القيام به هو التأكد من أنني أستطيع الحصول على شاشة عرض ووحدة تحكم دقيقة في شكل عامل يمكنني العمل معه. تصادف أن لديّ شاشة مقاس 3.5 بوصات تتدحرج وتجلس كقبعة على دبابيس GPIO في Raspberry PI ، لذلك قررت استخدام هذا. لقد قمت بإقرانه مع Raspberry Pi 0 وتأكدت من أنه يعمل بشكل جيد ، هناك بضع خطوات لجعل Linux يتعرف على الشاشة التي يجب عليك تشغيلها.

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

من الجدير بالذكر أيضًا في هذه المرحلة ، أنه في وقت لاحق من البناء واجهت مشكلات في الأداء مع هذا الإعداد - في الغالب معدل التحديث على الواجهة بين 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: إضافة حالة للشاشة و Pi

أضف حافظة للشاشة و Pi
أضف حافظة للشاشة و Pi
أضف حافظة للشاشة و Pi
أضف حافظة للشاشة و Pi

كنت أرغب في أن تكون زوايا منطقة الشاشة منحنية ، وكنت بحاجة إلى شيء ما لأحمل Pi وعرضه - كان الحل هو استخدام حاوية بلاستيكية صغيرة أمتلكها. لقد قطعت ثقبًا في الجزء العلوي من الجسم وألصقت الحاوية من خلاله. ثم قمت بلصق جميع الجوانب معًا. لقد استخدمت superglue هنا مع صودا الخبز الوفيرة للمساعدة في تقوية اللحامات. في وقت لاحق ، ملأت كل شيء وأرسلته / صقلته بالرمل لترتيب كل شيء وإضفاء طابع "مصبوب" عليه.

الخطوة 5: كرر للوحة التحكم

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

بعد ذلك ، قمت بعمل نفس القالب بالضبط من خلال النقل والقطع واللصق لبناء غلاف لوحة التحكم.

الخطوة 6: قطع الأنبوب

اقطع الأنبوب
اقطع الأنبوب

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

الخطوة 7: الحافة

حافة
حافة
حافة
حافة

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

الخطوة 8: اختبار البطارية

اختبار البطارية
اختبار البطارية
اختبار البطارية
اختبار البطارية
اختبار البطارية
اختبار البطارية

في هذه المرحلة ، حولت رأيي إلى كيفية إجراء هذا التشغيل بشكل مستقل عن USB المزود بالتيار الكهربائي. لقد اختبرت العديد من البطاريات ووجدت أن شاشة Raspberry Pi + لم تستقطب هذا القدر من الطاقة في الواقع وكان من دواعي سروري تمامًا أن تعمل حتى على واحدة من حزم البطاريات الأصغر (هدية مجانية من معرض تجاري). كان هذا محظوظًا حقًا لأن العبوة تتناسب تمامًا مع فجوة داخل التصميم (الصور لاحقًا). الآن يمكننا أن نلصق مكونات الجسم الرئيسية معًا مؤقتًا ، ونحصل على أول تجربة تشغيل لنا لها على ذراعي!

الخطوة 9: اختبار الملاءمة

اختبار صالح
اختبار صالح
اختبار صالح
اختبار صالح
اختبار صالح
اختبار صالح

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

الخطوة 10: إضافة عناصر التحكم والتفصيل

إضافة الضوابط والتفصيل
إضافة الضوابط والتفصيل
إضافة الضوابط والتفصيل
إضافة الضوابط والتفصيل
إضافة الضوابط والتفصيل
إضافة الضوابط والتفصيل

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

الخطوة 11: إعادة بناء الإطار رقم 3

إعادة بناء الحافة رقم 3
إعادة بناء الحافة رقم 3
إعادة بناء الحافة رقم 3
إعادة بناء الحافة رقم 3
إعادة بناء الحافة رقم 3
إعادة بناء الحافة رقم 3

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

الخطوة 12: وضع نماذج أولية للإلكترونيات

النماذج الأولية للإلكترونيات
النماذج الأولية للإلكترونيات
النماذج الأولية للإلكترونيات
النماذج الأولية للإلكترونيات

أستخدم لوح التجارب لتخطيط دوائري البسيطة مثل هذا ، وبما أنني غالبًا ما أقوم بهذا الجزء من المشروع في مساحة مختلفة عن هيكل الجسم الرئيسي ، فقد قمت أيضًا بإقرانه مع Raspberry PI مختلف. استخدمت هنا نموذجًا 3 ، والذي منحني مزيدًا من القوة للاتصال به مباشرةً وتشغيل IDE على متن الطائرة. هذا فقط جعل النماذج الأولية السريعة للكود أسهل قليلاً بالنسبة لي. هناك الكثير من الطرق الأخرى للاتصال / الكود / التصحيح عن بُعد ، وهذا فقط أريد أن أفعله هنا.

التصميم هنا واضح إلى حد ما ، لدينا ؛

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

أعطاني هذا 3 مصابيح LED للمقياس الخاص بي ، وجهاز تشفير دوار للتدوير عبر الشاشات الموجودة على أنبوب الأنابيب و 3 أزرار ضغط لدفع الإجراءات (واحد على المشفر الدوار و 2 سلكي منفصل). كان هذا هو كل ما يمكنني ملاءمته ، ومع احتواء الشاشة على مجموعة من المسامير ، تستهلك إلى حد كبير ما لديك في تخطيط Pi GPIO القياسي. ومع ذلك كان جيدًا لأغراضي.

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

ملاحظة حول أجهزة التشفير الدوارة. لقد أمضيت الكثير من الوقت في كتابة آلة حالة التشفير الروتاري الخاصة بي لتتبع تغييرات GPIO العالية / المنخفضة وتعيينها إلى المواضع الدوارة. لقد حققت نجاحًا متباينًا هنا ، لقد نجحت في العمل مع "معظم" الحالات ، ولكن هناك دائمًا حالات متطرفة و (de) الارتداد وما إلى ذلك للتعامل معها. من الأسهل بكثير استخدام مكتبة جاهزة وهناك مكتبة رائعة متاحة للتثبيت في Python. لقد استخدمت ذلك في النهاية لأنه سمح لي بالتركيز على الجزء الممتع من البناء ، بدلاً من قضاء الأعمار في تصحيح المشكلات. يتم تضمين كافة التفاصيل الخاصة بذلك في التعليمات البرمجية المصدر.

إذا كنت جديدًا في Raspberry Pi و GPIO والإلكترونيات ، فإنني أوصي بشدة بالبرامج التعليمية التالية التي توجهك خلال كل ما تحتاجه للقيام بالتخطيط أعلاه ؛

projects.raspberrypi.org/en/projects/physi…

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

الخطوة 13: نقل الإلكترونيات إلى الجسم

نقل الإلكترونيات إلى الجسم
نقل الإلكترونيات إلى الجسم
نقل الإلكترونيات إلى الجسم
نقل الإلكترونيات إلى الجسم
نقل الإلكترونيات إلى الجسم
نقل الإلكترونيات إلى الجسم

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

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

استغرق LED المزيد من العمل - لهذا ، قررت استخدام القليل من خردة البلاستيك (مقطعة لتناسب) لإنشاء لوحة قابلة للإزالة لتركيب مصابيح LED فيها. ثم قمت بلصقها في مكانها الساخن ولحمت المقاومات والأسلاك. جعل هذا وحدة إزالة يمكنني تركيبها وإزالتها وجعل الطلاء والتشطيب أسهل.

لاحظ أن اللحام الخاص بي أمر مروع ، لذلك أبقيت هذا بسيطًا وتجنب أي شيء مفصل / جيد جدًا. في الصورة النهائية ، يمكنك أن ترى أنني حصلت أيضًا على بعض الألواح العريضة الصغيرة جدًا (5 × 5) ، وقد استخدمت أحد هذه اللوحات المثبتة بالداخل لتوفير لوحة لتوصيل كل شيء إلى / من GPIO. على وجه الخصوص ، كان هذا مفيدًا لإنشاء سكة أرضية مشتركة يمكنني استخدامها وتجنب وجود الكثير من الأسلاك الأرضية التي تعود إلى Pi.

ثم قطعت ثقوبًا مختلفة في الحاوية لتغذية الأسلاك من خلال Pi والاتصال بـ GPIO. سمح لي هذا التصميم بإكمال تجريد كل شيء إذا احتجت إلى ذلك (شيء قمت به عدة مرات أثناء الانتهاء من البناء).

الخطوة 14: الضبط الدقيق للملاءمة

ضبط الملاءمة
ضبط الملاءمة
ضبط الملاءمة
ضبط الملاءمة

في هذه المرحلة واجهت بعض القضايا "الملائمة". أولاً ، كان استخدام موصلات دوبونت للأسلاك يعني أنه كان من الصعب جعلها تتلاءم مع المسامير مع وجود غطاء الشاشة في مكانه نظرًا لعدم وجود خلوص ارتفاع كافٍ. لقد قمت بحل هذا عن طريق شراء (هذا أحد الأشياء القليلة التي اشتريتها بالفعل لهذا المشروع) موسع دبوس GPIO صغير حتى أتمكن من وضع قبعة الشاشة أعلى وترك مساحة للوصول إلى دبابيس GPIO المتبقية باستخدام موصلات دوبونت.

لقد قمت أيضًا بتقطيع بعض القطع الصغيرة من حصيرة الأرضية الرغوية لعمل بعض الحشوة الجانبية داخل الحاوية ، مما ساعد على وضع Pi + Display في المكان المناسب وإيقافها عن الحركة.

الخطوة 15: ريترو أعلى التشفير الروتاري

Retro Up the Rotary Encoder
Retro Up the Rotary Encoder

غالبًا ما تأتي أجهزة التشفير الدوارة (كما فعلت لي) بمقبض نمط "hi fi" حديث ولامع ولطيف. كان هذا خارج الطابع تمامًا عن التصميم ، لذلك كان عليّ أن أتوصل إلى شيء آخر. في صندوقي العشوائي للأجزاء ، صادفت ترسًا قديمًا من تمرين كسرته منذ فترة طويلة. بدا هذا جيدًا ، لكنه لم يتناسب مع المشفر الدوار. كان الحل هنا هو تجربة سدادات حائط مختلفة حتى وجدت واحدة تناسب القرص الدوار ، ثم قصتها لتشكيلها حتى أتمكن من استخدامها كـ "طوق داخلي" لوضع ترس الحفر على المشفر الدوار كموضوع أكثر ملاءمة مراقبة.

الخطوة 16: البطانة الداخلية

البطانة الداخلية
البطانة الداخلية
البطانة الداخلية
البطانة الداخلية

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

الخطوة 17: إضافة التفاصيل

إضافة التفاصيل
إضافة التفاصيل
إضافة التفاصيل
إضافة التفاصيل

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

الخطوة 18: الطلاء وتشطيب الجسم

طلاء وتشطيب الجسم
طلاء وتشطيب الجسم
طلاء وتشطيب الجسم
طلاء وتشطيب الجسم
طلاء وتشطيب الجسم
طلاء وتشطيب الجسم

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

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

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

الخطوة 19: البرمجة

الترميز
الترميز

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

اخترت كتابة هذا في Python نظرًا للدعم الممتاز لـ Raspberry Pi و GPIO وما إلى ذلك ، فإن Python منخفضة جدًا في قائمة اللغات التي أعرفها ، لذلك كان هذا منحنى تعليميًا كبيرًا بالنسبة لي ، والكثير من الكود هو نتيجة لذلك. سأقوم بتحديث هذا بمرور الوقت لأنني لم أنتهي تمامًا من كل ما أردت القيام به هنا - ولكن قريبًا بما يكفي للمشاركة الآن حيث أن جميع المفاهيم الأساسية موجودة.

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

المكتبات الرئيسية المستخدمة:

  • pygame: أستخدم هذا كمحرك لتشغيل واجهة المستخدم لأنه سمح لي برسم رسومات عشوائية ومعالجة الصور والخطوط والانتقال إلى وضع ملء الشاشة وما إلى ذلك.
  • pyky040: يوفر هذا التعامل مع القرص الدوار ويوفر لي الكثير من الوقت (شكرًا جزيلاً لرافائيل يانسي لإطلاقه هذا.
  • RPi. GPIO: لقيادة GPIO بشكل جيد ، قمت باللعب مع بعض الخيارات هنا ، ولكن هذا أعطاني المستوى المناسب من المرونة الذي أردته ، لا سيما مع أشياء مثل استخدام GPIO احتياطي مثل 3.3 فولت أخرى لتشغيل المشفر الدوار وما إلى ذلك.
  • الضوضاء: لتوليد ضوضاء بيرلين ، للسماح لي بإنشاء شكل موجة عشوائي لشاشة الراديو الذي يبدو أكثر طبيعية
  • قائمة الانتظار: واجهت خطأ محبطًا في توقيت الأحداث من جهاز التشفير الدوار الذي يتم تشغيله ومعدل التحديث البطيء (جدًا) لشاشة LCD. في النهاية ، كانت الطريقة التي قمت بحلها هي إدراج الأحداث الواردة في قائمة الانتظار من المشفر الدوار واختيارها واحدة تلو الأخرى أثناء تحديث الشاشة.
  • os ، sys ، threading ، الوقت: كلها تستخدم لوظائف python القياسية

ملاحظة حول تصميم معالجة الشاشة. يتم تعريف الشاشات على أنها قائمة بالأسماء داخل الكود. يمكن أن يحتوي كل إدخال في القائمة على ملف-p.webp

يتم إنشاء محتويات هذه الملفات في مكان آخر (يدويًا أو بواسطة برامج نصية أخرى) ، ويتم حفظ مخرجاتها كملفات-p.webp

هناك استثناءات غريبة حيث يتم تشفير بعض الأشياء - مثل شكل الموجة لشاشة الراديو العشوائية حيث يتم حسابها في الوقت الفعلي وتحريكها.

إذا كان هناك تشبيه مفيد ، ففكر في تصميم واجهة المستخدم باعتباره متصفح ويب بسيطًا وبسيطًا للغاية - كل "شاشة" تشبه صفحة ويب بسيطة حقًا يمكن أن تتكون فقط من ملف-p.webp

فيما يلي روابط للمكتبات الرئيسية التي استخدمتها هنا:

www.pygame.org/news

pypi.org/project/pyky040/

pypi.org/project/noise/

الخطوة 20: شاشة الإحصائيات

شاشة الإحصائيات
شاشة الإحصائيات

لن يكتمل أي أنبوب صغير بدون شاشة إحصائيات صورة ظلية pipboy الكلاسيكية. لهذا ، أنشأ صديق لي ملف-p.webp

الخطوة 21: شاشة الجرد

شاشة الجرد
شاشة الجرد

هناك شيء مفيد دائمًا في مشاريع Pi وهو أن يكون لديك طريقة لعرض المعلومات الأساسية مثل عنوان IP الخاص بـ DHCP وما إلى ذلك. قررت زيادة تحميل شاشة الجرد كعرض لـ "جرد" Pi - ما وحدة المعالجة المركزية والذاكرة وعنوان IP وما إلى ذلك لقد كتبت نصًا صغيرًا من برنامج Linux لتجميع هذه المعلومات وإعادة توجيهها إلى ملف نصي (.txt) مسمى بشكل مناسب يلتقطه نظام واجهة المستخدم ويعرضه. بهذه الطريقة ، إذا كنت في موقع مختلف ، يمكنني تشغيل البرنامج النصي والتقاط ملف.txt جديد مع عنوان IP المحدث وما إلى ذلك.

الخطوة 22: شاشة الخريطة

شاشة الخريطة
شاشة الخريطة

كانت هذه الشاشة واحدة من أكثر الشاشات تعقيدًا للعمل عليها. لا يأتي Raspberry Pi 0 مع وحدة GPS ، لكنني أردت أن أجعل الخريطة تتمتع ببعض الصلاحية في مكان وجود Pi. الحل الخاص بي لهذا هو برنامج نصي منفصل يسحب عنوان IP IP ، ويستخدم https://ipinfo.io للبحث عن موقع تقريبي. يتم التقاط استجابة JSON ثم أقوم بتحويل الإحداثيات حتى أتمكن من سحب مربع openstreetmap.org للموقع تقريبًا.

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

أثناء العملية المذكورة أعلاه ، يتم إنشاء ملف نصي بالموقع والإحداثيات التقريبية ، ويتم إنشاء لوحة الخريطة على هيئة png. تقوم واجهة مستخدم pipboy بسحب هذين الملفين وتراكب المحتويات لإنشاء شاشة خريطة تعمل (ضمن دقة دقة عنوان IP إلى الموقع).

الخطوة 23: شاشة البيانات

شاشة البيانات
شاشة البيانات

هذه مجرد بطاقة اختبار (تم إنشاؤها بواسطة برنامج نصي آخر من نوع Python وإخراجها إلى ملف png) يتم عرضها للمساعدة في اختبار الحجم / التخطيط. لقد تركته لأنه لا يزال مفيدًا نوعًا ما للتحقق من مقدار العقارات التي يجب أن ألعب بها عند محاكاة الشاشات.

الخطوة 24: شاشة الراديو

شاشة راديو
شاشة راديو

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

هذه هي الشاشة الوحيدة التي تقوم فيها حلقة pygame بأي عمل حقيقي لأن كل دورة ، عليها حساب الشكل الموجي الجديد ومحو جزء الشاشة الموجود في هذه الحلقة وإعادة الرسم.

الخطوة 25: الأفكار النهائية

Image
Image
افكار اخيرة
افكار اخيرة

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

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

الخطوة 26: فتح الكود على جيثب

فتح الكود على جيثب
فتح الكود على جيثب

لقد تمكنت أخيرًا من فتح الكود على Github. متاح على هذا الرابط:

موصى به: