تنصيب برنامج mBlock

يمثل برنامج mBlock منصة مفتوحة المصدر يمكن من خلالها تصميم الألعاب والرسوم والمتحركة و برمجة الروبوت والأردوينو باستخدام البرمجة الرسومية المبنية على Scratch
سنقوم في هذا الدرس بالتعرف على واجهة البرنامج وطرق ربط الروبوت بجهاز الكمبيوتر

makeblock-mblock

سنقوم بتطبيق خطوات هذا الدرس على mBot Kit كمثال ويمكن أن تطبق على جميع اللوحات الرئيسية لمنتجات MakeBlock

الأدوات المطلوبة:

 

makeblock-mblock

mBot Kit

تنصيب برنامج mBlock

يتوفر برنامج mBlock بشكل مجاني  للتنزيل من الموقع http://www.mblock.cc
اختر النسخة المتوافقة مع نظام التشغيل لجهازك (ويندوز، MAC، لينيكس)

makeblock-mblock

قم باتباع خطوات تنصيب البرنامج عند فتح ملف التنزيل
ستظهر لك واجهة البرنامج بهذا الشكل

makeblock-mblock

ربط اللوحة الرئيسية للروبوت

 

1- عن طريق كيبل USB

وهذه الطريقة التي يمكن من خلالها تنزيل البرنامج على اللوحة الرئيسية
قم بفتح برنامج mBlock واختر نوع الروبوت/ اللوحة الرئيسية من قائمة Board

makeblock-mblock

عند استخدام mBlock لأول مرة ستحتاج إلى تثبيت  Arduino driver من قائمة connect  يقوم ذلك بتثبيت البرامج اللازمة للتواصل بين جهاز الكمبيوتر ولوحة الأردوينو/الروبوت.
إذا كنت من مستخدمي نظام Mac OS Sierra قد تحتاج إلى تغيير إعدادات الأمان والخصوصية باتباع الخطوات على الرابط التالي

لمستخدمي Windowes
من قائمة Connect > Serial Port
واختر اسم المنفذ الخاص بالروبوت مثلا COM 5

makeblock-mblock

 

إذا كنت تستخدم نظام Mac  فاختر قائمة Connect >serial Port
وسيظهر العنوان مثل /tty.usbserial

makeblock-mblock

ستحتاج إلى تجربة عدة عناوين إذا كان لديك أكثر من جهاز متصل

 

 

ربط اللوحة الرئيسية للروبوت

 

2- الربط عبر 2.4G dongle

يمكن من خلال هذه الطريقة التحكم بالروبوت لاسلكيا باستخدم dongle خاص بجهاز الكمبيوتر ووحدة 2.4G المتصلة بالروبوت

 

makeblock-mblock

قم بتوصيل وحدة 2.4G باللوحة الرئيسية واضغط على زر الطاقة

 

makeblock-mblock

قم بالضغط على الزر العلوي الموجود في وحدة 2.4G ستتحول إضاءة LED من وميض متقطع إلى سريع خلال ذلك قم بتوصيل dongle  إلى جهاز الكمبيوتر
يجب أن تتحول إضاءة LED إلى إضاءة ثابتة

 

makeblock-mblock

 

قم باختيار قائمة Connect   من الشريط  العلوي
2.4G Serial > Connect

makeblock-mblock

 

الآن يمكنك التحكم بالروبوت الخاص بك لاسلكيا

 

ربط اللوحة الرئيسية للروبوت

 

3- الربط عبر البلوتوث

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

makeblock-mblock

لمستخدمي Windows
اختر قائمة connect
Bluetooth > Discover
حتى تظهر نافذة منبثقة بأجهزة البلوتوث المكتشفة . قد يستغرق ذلك 60 ثانية

makeblock-mblock

 

حدد الاسم الذي ترغب في الاتصال به وفق الجهاز الذي تستخدمه
مثلا سيظهر لك “MakeBlock”
انقر فوق “نعم” عند السؤال عن  عن “الاقتران” للسماح للكمبيوتر بالتواصل مع الروبوت

makeblock-mblock

 

لمستخدمي MAC
عند ربط الروبوت عبر البلوتوث للمرة الأولى ستحتاج إلى اختيار رمز البلوتوث < Bluetooth Preference

makeblock-mblock

انقر على زر الاقتران يمين اسم الجهاز

makeblock-mblock

ثم في واجهة mBlock اختر قائمة Connect
Serial Port
ثم اختر عنوان جهاز البلوتوث الخاص بك

 

makeblock-mblock

 




أجزاء الطابعة ثلاثية الأبعاد وكيفية عملها

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

3d-printer-parts

أجزاء الطابعة ثلاثية الأبعاد :

الهيكل:

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

3d-printer-parts

أنواع مختلفة من الألومنيوم، الخشب، أو الحديد، أو الفولاز المقاوم للصدأ عادة تشكل الإطارات. وعادة ما تشكل المفاصل المطبوعة بالليزر أو المفصلة ثلاثي الأبعاد ما تبقى من الإطار.

منصة البناء:

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

3d-printer-parts

البعض الآخر من الطابعات تحتوي على منصة زجاج أو لوحة أخرى غير ساخنه تحتاج إلى أن تكون مغطاة بشريط من نوع ما لضمان التصاق الطبقة الأولى من المجسم على منصة البناء.

الأجزاء المتحركة :

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

3d-printer-parts

الطابعة  ثلاثية الأبعاد يجب أن تتحرك في ثلاثة أبعاد X، Y ، Z  لبناء النموذج ثلاثي الأبعاد. لذلك هناك 3 إلى 4 محركات خطوية والتي تستخدم لإعطاء الحركات إلى هذه المحاور. هناك أنواع مختلفة من الطابعات المتاحة التي تستخدم مزيج مختلف من الحركات، فتتحرك المنصة في اتجاه Y و تحرك الفوهة بتجاه X و Y  (أو تتحرك المنصة في اتجاه Z  وتتحرك الفوهة في اتجاه Xو Y  )، ويوجد لكل إتجاه محرك.ويستخدم محرك واحد آخر لدفع المادة (الخيوط) بإتجاه الفوهة الساخنه.

الكترونيات التحكم :

3d-printer-parts

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

أجزاء النهاية الساخنه للطابعة :

الطارد/البثق :

تجهز معظم الطابعات بأداة طرد واحدة. يعتبر الطارد الجزء المسؤول عن سحب المادة الخام وصهرها ومن ثم نفثها إلى منصة البناء . ويتكون الطارد على عدة أجزاء: محرك الطارد والتي تدفع الخيوط إلى النهاية الساخنة، حيث يتكون الطرف الساخن من سخان (heater) ، وفوهة (Nozzle) ، وجهاز استشعار حرارة thermistor  ، لمعرفة مدى سخونة السطح.

3d-printer-parts

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

أنواع الطارد :

النمط الآخر من الطارد يعرف باسم Bowden محرك الطرد المباشر (direct-drive extruder)
3d-printer-parts 3d-printer-parts
هنا يتم فصل ترس التدوير عن النهاية الساخنة مع انبوب التوجيه . يعمل الطارد البعيد هنا بنفس الطريقة التي يستخدمها الطارد المباشر، ومع ذلك فإن الفرق هو ان الخيط يجب أن يسافر مسافة خلال أنبوب للوصول أخيرا إلى النهاية الساخنة.

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

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

 

 

الفوهة (Nozzle) :

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

3d-printer-parts

الفوهات قابلة للتبديل، يختلف قطر الفوهة حسب حجم المنتج ودقة وسرعة الإنتاج. بالعادة تكون الفوهة 0.4mm  ، وفي حين قد تستخدم فوهة أصغر للحصول على التفاصيل الدقيقة أو فوهة اكبر لطباعة أسرع.

المحرك الخطوي :

3d-printer-parts

ووظيفته سحب المادة الخام ودفعها إلى أنبوبة التسخين عن طريق ترس التدوير. يتم التحكم في المحرك من لوحة التحكم لتعيين مقدار الكمية المراد سحبها وسرعة السحب والانصهار ومقدار التراجع .

السخان :

3d-printer-parts

يقوم برفع حرارة المادة الخام لدرجة الانصهار ليسهل صبها . ويحتاج السخان إلى حساس للحرارة للتحكم ومعرفة درجة الحرارة من لوحة التحكم.

 أنبوبة التسخين :

3d-printer-parts

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

 المبرد أو المروحة : 

3d-printer-parts

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

آلية العمل :

تقوم الطابعات ثلاثية الأبعاد بإنشاء المجسم ثلاثي الأبعاد من خلال بناء طبقات متتالية حتى يتم تحقيق النموذج المطلوب.

3d-printer-parts

مجموعة أدوات الطباعة ثلاثية الأبعاد الأساسية:

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

الشريط الاصق الأزرق:

3d-printer-parts

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

الشريط الأكثر شيوعا من شريط الاصق هو الشريط الأزرق. في حين هناك العديد من الأنواع المختلفة متاحة من الشريط الأزرق.عند شراء شريط، تأكد من تحديد عرض لا يقل عن 50 ملم (2 انش) .

شريط Kapton :

3d-printer-parts

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

بسبب خصائصها المقاومة للحرارة كما يستخدم عادة شريط Kapton لتأمين مكونات الطباعة ثلاثية الأبعاد في منطقة الطرف الساخن.

صمغ الورق:

3d-printer-parts

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

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

قدمة ذات الورنية الرقمية :

3d-printer-parts

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

خيوط الطباعة ثلاثية الأبعاد على الرغم من كونها تعلن بقاياسات 3 ملم او 1.75 ملم، نادرا ما يتم تصنيعها بهذه القياسات الدقيقة. فمن الضروري قياس أقطار الخيوط المستخدمة لتتناسب مع الطابعة.

 Spatula or palette knife :

3d-printer-parts

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

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

مشرط :

3d-printer-parts

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

الكماشة :

3d-printer-parts

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

Screwdrivers / hex key screwdrivers :

3d-printer-parts

سيتم استخدام هذه المفكات لإعادة شد المسامير الخاصة بمنصة الطباعة وسائر المحركات  للطابعة ثلاثية الأبعاد.




استخدام عصا التحكم joystick مع الاردوينو

خلال هذا المشروع، سنتعلم كيفية استخدام عصا التحكم  Joystick مع الاردوينو. ليتم استخدامها في تطبيقات مختلفة مثل التحكم في حركة الروبوت وتوجيهه، أو في عمل ألعاب الفيديو باستخدام الاردوينو.

استخدام-عصا-التحكم-joystick-مع-الاردوينو

المكونات المطلوبة

arduino uno r3

لوحة الأردوينو (Arduino Uno)

عصا التحكم ( Joystick)

Full size breadboard 830

لوح التجارب (Breadboard)

Breadboard Jumper Wire 65 pcs

أسلاك توصيل (Wires)

عصا التحكم Joystick

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

استخدام-عصا-التحكم-joystick-مع-الاردوينو

تتكون عصا التحكم من مقاومتين متغيرتين للتحكم بمحاور الاتجاه X  و Y . يؤدي تحريك عصا التحكم  إلى تغيير في قيمة المقاومتان. ويتم تمثيل موضع عصا التحكم بنقطة يتم وصفها على محاور X,Y .

joystick-arduino

يتكون عصا التحكم من ثلاث مدخلات يتم توصيلهم إلى الأردوينوالخاص بك، في حين ان الاثنين المتبقية امدادات للطاقة.

joystick-arduino

توصيل الدارة :

قم بتوصيل عصا التحكم إلى الأردوينو كما هو موضح بالصورة التالية :

استخدام-عصا-التحكم-joystick-مع-الاردوينو

استخدام-عصا-التحكم-joystick-مع-الاردوينو

التوصيل :
Arduino Joystick
5v Vcc
Gnd Gnd
A0 VRx
A1 VRy

الكود البرمجي :

int xVal;                 //X values from joystick
int yVal;                 //Y values from joystick

void setup() {
  Serial.begin(9600);     //Starts serial at 9600 baud
  pinMode(A0, INPUT);     //Sets the analog ports used to an input
  pinMode(A1, INPUT);
}

void loop() {
  xVal = analogRead(A0);  //read the X value
  yVal = analogRead(A1);  //read the Y value
  Serial.print(" Y = ");
  Serial.print(yVal);     //prints Y value
  Serial.print(" X = ");
  Serial.println(xVal);   //prints X value
  delay(1000);            // so that we dont get a spam on the serial monitor
}

شرح الكود :

قمنا بتعريف متغيرين xVal، yVal إحداهما لتخزين قيمة X  والأخر لتخزين قيمة Y  ، حيث تمثل القيميتين موضع/موقع عصا التحكم.
في دالة التهيئة قمنا بتفعيل شاشة الاتصال التسلسلي، ثم ضبط الأطراف الموصله مع عصا التحكم كمدخل.

int xVal;                 //X values from joystick
int yVal;                 //Y values from joystick

void setup() {
  Serial.begin(9600);     //Starts serial at 9600 baud
  pinMode(A0, INPUT);     //Sets the analog ports used to an input
  pinMode(A1, INPUT);
}

نقوم بقراءة قيم X  و Y  ثم عرض النتائج على شاشة الاتصال التسلسلي باستخدام الدالة (Serial.print(value .

void loop() {
  xVal = analogRead(A0);  //read the X value
  yVal = analogRead(A1);  //read the Y value
  Serial.print(" Y = ");
  Serial.print(yVal);     //prints Y value
  Serial.print(" X = ");
  Serial.println(xVal);   //prints X value
  delay(1000);            // so that we dont get a spam on the serial monitor
}




المواد المستخدمة في عملية الطباعة ثلاثية الأبعاد

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

3d-printing-materials-guide

المواد المستخدمة في عملية الطباعة :

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

حيث يجري الآن تطوير مواد محددة بوجة عام لمنصات محددة تقوم بتنفيذ تطبيقات مخصصة (مثال على ذلك في مجال قطاع الأسنان) مع خصائص مادية تتناسب بدقة مع التطبيق المستخدم لأجله.

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

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

3d-printing-materials-guide

خيوط الطباعة كانت تقتصر على ABS  و PLA ، ولكن الآن هناك مجموعة من المواد المختلفة . فسنقوم بالتعرف على انواع الخيوط وخصائصها، وسيتم سرد نطاقات درجة الحرارة الأساسية، ولكن نضع في اعتبارنا ان درجات الحرارة الموصى بها تختلف حسب الفوهة والمنصة للطابعة المستخدمة. ومن المهم ان نعرف أنه ليس كل الطابعات يمكن أن تقبل كل المواد- البعض سوف تعمل مع نوع واحد فقط.  فسنقوم بالتعرف على انواع الخيوط وخصائصها.

PLA :

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

 درجة حرارة الفوهة 235–185 درجة مئوية
 درجة حرارة منصة البناء 60°C
 سطح الطباعة الشريط الاصق الأزرق، شريط Kapton ، زجاج ساخن، قطع الفينيل

خصائص خيط PLA :

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

ABS :

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

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

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

 درجة حرارة الفوهة  250-215 درجة مئوية
 درجة حرارة منصة البناء 115–90 درجة مئوية
 سطح الطباعة الشريط الاصق Kapton

خصائص الخيط ABS :

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

nylon :

هو البوليمر الاصطناعية الشائعة المستخدمة في العديد من التطبيقات الصناعية. مع خيوط البلاستيك تكون التكلفة أقل، قوي، ومرن،ومقاوم للصدمات. فهي أقل هشاشة من PLA ،  ABS، ولكن أقوى و اكثر دواما من الاثنين.

خيوط الطباعة ثلاثية الابعاد هذه يمكن استخدامها في مجموعة متنوعة من التطبيقات. وهي تشمل الحاويات، والأدوات، والمنتجات الاستهلاكية، والألعاب.

 درجة حرارة الفوهة 260-235 درجة مئوية
 درجة حرارة منصة البناء 50-100 درجة مئوية
 سطح الطباعة ورق النايلون ، Garolite

خصائص الخيط  Nylon :

– المزايا الأساسية هي القوة العالية والمتانة والمرونة.
– مثالية للأجزاء الميكانيكية، الأجزاء الهيكيلية، التروس والمحامل، الأحمال الديناميكية.
– يمكن إعادة تدويرها.

HIPS :

تستخدم HIPS عادة في صناعة المواد الخاصة بالتغليف الغذائي. HIPS هي خيوط طباعة ثلاثية الأبعاد قابلة للتحلل ولها لون أبيض مشرق، وليس هناك أي آثار ضارة عند التعامل معها.

فهي شائعة جدا للاستخدام كمواد ثانوية في الطابعات مزدوجة البثق. فهي توفر الدعم الهيكلي للمجسمات المعقدة الذي يتم طباعته باستخدام ABS كمادة اساسية. وبمجرد اكتمال مهمة الطباعة، يمكن إذابة الخيوط باستخدام هيدروكربون سائل عديم اللون.

 درجة حرارة الفوهة 220-235 درجة مئوية
 درجة حرارة منصة البناء 115°C
 سطح الطباعة الشريط الاصق Kapton

خصائص الخيط  HIPS :

– متانة عالية.
– مرونة منخفضة.
– قابلة للذوبان بمختلف المذيبات.
-لايعتبر آمنة للاستخدام مع المواد الغذائية.

مراقبة جودة الخيوط :

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

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

من الناحية المثالية، يجب أن تحافظ الخيوط على قطر ثابت على طول ملف الخيوط بأكمله لكن هناك دائما نسبة تفاوت بسبب عيوب صغيرة في عملية تصنيع الخيوط،. نسبة التفاوت في الخيوط تصف الاختلاف في القطر الموجود في الخيوط التي تستخدمها. على سبيل المثال، لدينا خيوط 1.75 ملم بنسبة تفاوت 0.05 ± ملم.

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

3d-printing-materials-guide

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

3d-printing-materials-guide

للتحقق من قطر الخيوط، قم باستخدام أداة القدمة ذات الورنية ((Vernier caliper، كما هو مبين بالصورة التالية، أو الميكرومتر لقياس القطر في عدة أماكن والتأكد من انه يلبي نسبة التفاوت المعلن عنها.

3d-printing-materials-guide

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




مقدمة عن الطباعة ثلاثية الأبعاد

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

introduction-3d-printing

تاريخ موجز للطباعة ثلاثية الأبعاد :

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

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

introduction-3d-printing

ولا تزال تقنيات الطباعة ثلاثية الأبعاد في تطور مستمر حتى الوقت الحالي.

ماهي الطباعة ثلاثية الأبعاد ؟

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

introduction-3d-printing

كما أن الطباعة ثلاثية الأبعاد تجلب اثنين من الابتكارات الأساسية: التلاعب في المجسمات في شكلها الرقمي و تصنيع أشكال جديدة عن طريق إضافة المواد.

استخدامات الطباعة ثلاثية الأبعاد :

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

introduction-3d-printing

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

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

هناك عدة أنواع من الطابعات ثلاثية الأبعاد أهمها :

ستيريوليثغرافي (stereolithography ):

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

introduction-3d-printing

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

يتم قبول المجسم عموما باعتبارها واحدة من عمليات الطباعة ثلاثية الأبعاد الأكثر دقة. ومع ذلك فإن عملية المعالجة المطلوبة يمكن أن تجعل المنتج أكثر هشاشة. وهي شعبية في مجال الصناعات مثل المجوهرات وطب الأسنان التجميلي.

النمذجة بالترسيب المنصهر (FDM) :

عملية سحب المواد بالحرارة هي الأكثر شيوعا، والاسم الأكثر شعبية لهذة العملية هي النمذجة بالترسيب المنصهر (FDM) . تعمل هذه العملية عن طريق ذوبان خيوط البلاستيك التي يتم سحبها من البكرة ليغذي فوهة الطارد (extruder) الساخن والذي يستطيع التحكم في السريان بوقفه أو تشغيله، ويدفع البلاستيك المنصهر في إحداثيات X  و Y في حين أن منصة البناء تنخفض في إتجاه z عند الانتهاء من كل طبقة لتشكيل طبقات متتالية على منصة البناء وفقا للبيانات ثلاثية الأبعاد المقدمة إلى الطابعة.

introduction-3d-printing

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

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

معالجة الضوء الرقمي (DLP) :

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

introduction-3d-printing

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

التلبيد الانتقائي بالليزر (SLS) :

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

introduction-3d-printing

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

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

ويستخدم SLS على نطاق واسع لتطوير المنتجات والنماذج الأولية السريعة في مجموعة واسعة من الصناعات التجارية. المواد المستخدمة في  SLS  يمكن أن تتراوح من النايلون و الزجاج والسيراميك إلى الألومنيوم والفضة وحتى الفولاذ.

سير العمل لإنشاء النماذج :

introduction-3d-printing

رسم التصميم :

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

النمذجة ثلاثية الأبعاد :

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

نماذج التصدير: كل برنامج لتصميم ثلاثي الأبعاد لديها تنسيق للملفات الخاصة بها. ومن اجل الطباعة ثلاثية الأبعاد يجب أن يتم تصدير النموذج الصلب كتصميم ذو شبكة مضلعة . STL  هو الشكل الأكثير شيوعا لتصدير الهندسي للطباعة ثلاثية الأبعاد . حيث يحاول هذا التنسيق تقريب المجسم وتبسيطه عن طريق تقسيم اسطح التصميم لمساحات من المثلثات لينتج مجسم تام المعالم.

إعداد وتقطيع المجسمات :

التخطيط/ الإصلاح/الدعم : بمجرد تصدير الملفات STL  للطباعة، يجب أن تكون مستعدة للطباعة. ويجب أن تكون الشبكة محكمة أي أن سطحها لا يمكن أن يكون فيه ثقوب. يمكن أن تحدث أخطاء هندسية أخرى من شأنها أن تؤدي إلى طباعة فاشلة، لذلك يجب استخدام برنامج أخر (مثل Meshmixer or Print Studio) ، والتي من شأنها التفحص الأخطاء وتصحيحها. في برنامج الإعداد، يمكنك أيضا إضافة نماذج إضافية، و التحكم بتوجيه النموذج والحجم ووضع النماذج في مكان للطباعة ثلاثية الأبعاد. ويمكن أيضا أن تستخدم برمجيات التحضير لإنشاء هياكل دعم للطباعة ثلاثية الأبعاد.

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

الطباعة ثلاثية الأبعاد:

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

 

 




توصيل مؤقت الساعة الحقيقي RTC على الراسبيري باي

فى هذا الدرس سنتعلم كيفية توصيل مؤقت الساعة الحقيقي Real Time Clock – RTC على الراسبيري باي عن طريق بروتوكول I2C، حيث سيمكننا ذلك من جعل توقيت الراسبري باي يعمل بإستمرار حتى مع قطع التيار الكهربي عنها.

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

Raspberry_Pi_RTC_2

المكونات المطلوبة

Raspberry Pi

راسبيري باي

Raspberry_Pi_RTC

مؤقت ساعة حقيقي Real Time Colck – RTC

Raspberry_Pi_RTC_Wires

أسلاك توصيل Female / Female jumper

 

توصيل الدائرة

نقوم بتوصيل الدائرة كما فى الصورة التالية مع ملاحظة أن هذا الموديول يعتمد على الشريحة DS3231 وهي تعمل على جهد 3.3 فولت، لذلك هي مناسبة لتعمل على الراسبري باي مباشرة بدون أي مكونات أخرى.

Raspberry_Pi_RTC_1

الكود البرمجي

في البداية نقوم بفتح الـ Terminal الخاص بالراسبري باي وكتابة الأوامر التالية أو نقوم بفتح نافذه الـ SSH الخاصة بها من جهاز آخر مربوط معها علي نفس الشبكة كما تم شرحه في الدرس الخامس.

فى البداية نقوم بتحديث نظام تشغيل الراسبيري باي.

sudo apt-get update
sudo apt-get –y upgrade

ثم نقوم بالتعديل في أحد ملفات النظام كالتالي.

sudo nano /etc/modules

قم بإضافة السطر التالي (rtc-ds1307) داخل ملف modules الذى قمنا بفتحه بمحرك النصوص Nano، ثم نقوم بالضغط على Ctrl+O ثم enter ثم Ctrl+X وذلك لحفظ الملف السابق.

Raspberry_Pi_RTC_4

نقوم بإعادة تشغيل الراسبري باي كالتالي.

sudo reboot

نقوم بتشغيل الراسبري باي وكتابة الأمر التالي، إذا كنت تستخدم راسبيرى باى ذات الإصدار Rev 1، ستحتاج لتغيير الرقم 1 فى آخر الأمر وإستبدالة بـ 0.

sudo i2cdetect -y 1

سوف تشاهد التالي بعد كتابة الأمر.

Raspberry_Pi_RTC_5

فى هذه التجربة يكون 0x68 هو عنوان الـ RTC Module .

ثم نقوم بالتعديل فى أحد ملفات النظام مرة أخرى كالتالي.

sudo nano /etc/rc.local

قم بإضافة السطرين التاليين داخل ملف rc.local الذي قمنا بفتحه بمحرك النصوص Nano.

echo ds1307 ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
hwclock –s
Raspberry_Pi_RTC_6

ثم نقوم بالضغط على Ctrl+O ثم enter ثم Ctrl+X وذلك لحفظ الملف السابق.

لاحظ أنه يجب تغيير العنوان 0x68 للعنوان الذي سيظهر لك من الخطوة السابقة، وكذلك إذا كنت تستخدم راسبيري باي Rev1 نقم بتغيير i2c-1 إلى i2c-0.

نقوم بإعادة تشغيل الراسبيري باي مرة أخرى.

sudo reboot

بعد إعادة التشغيل إذا قمت بكتابة أمر i2cdetect ستلاحظ أن عنوان الموديول قد تغير إلى UU، وهذا دليل على أن الموديول يعمل جيداً.

sudo i2cdetect -y 1
Raspberry_Pi_RTC_7

الآن نقوم بضبط إعدادات الوقت والتاريخ من خلال الأمر التالي.

sudo raspi-config

نقوم بإختيار Internationalisation Options ثم Change Timezone  وتختار بعد المنطقة والدولة التى تقيم بها.

Raspberry_Pi_RTC_8

 

Raspberry_Pi_RTC_9

 

Raspberry_Pi_RTC_10

يمكنك قراءة وقت وتاريخ الراسبيري باي بالأمر التالي.

date

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

sudo date -s “16 APR 2017 23 : 00 : 00”

وبمجرد تغيره يجب عليك كتابته على الـ RTC Module كالتالي.

sudo hwclock –w

وللتأكد يمكنك قراءة الوقت والتاريخ من الموديول مرة أخرى كالتالي.

sudo hwclock –r

يمكنك قراءة وقت الراسبيري باي وكذلك وقت الـ RTC Module سوياً لتتأكد من أنهم نفس التوقيت كالتالي.

sudo date; sudo hwclock –r
Raspberry_Pi_RTC_11

 




تحديد المسافات باستخدام الراسبيري باي

في هذا الدرس سنتعلم كيفية توصيل حساس تحديد المسافات Ultrasonic Module بالراسبيري باي، حيث سيمكِنك هذا الحساس من تصميم الروبوتات التى تتفادى العوائق من حولها حتى وهي تتحرك في الظلام.

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

Raspberry_Pi_Ultrasonic

المكونات المطلوبة

Raspberry Pi

راسبيري باي

Raspberry_Pi_Ultrasonic

حساس تحديد المسافات Ultrasonic Module

Raspberry_Pi_RTC_Wires

أسلاك توصيل Female / Female jumper

raspberry-pi-lcd-16x2-3

أسلاك توصيل Female / Male jumper

Raspberry-pi-lcd-16x2-15

لوحة تجارب Breadboard

Raspberry_Pi_Ultrasonic

مقاومة 1.2 كيلو أوم

Raspberry_Pi_Ultrasonic

مقاومة 2.2 كيلو أوم

توصيل الدائرة

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

Raspberry_Pi_Ultrasonic
Raspberry_Pi_Ultrasonic

توصيل هذه الدائرة سهل وبسيط ولكن الأساس بها مراعاة أن حساس الـ ultrasonic يعمل على 5 فولت وأن الراسبيري باي تعمل على 3 فولت، فيجب علينا تقسيم الفولت الخارج من الحساس لكي يصل للراسبيري باي كفولت منخض ولا يحرق الدائرة، كل ذلك يتم بإستخدام مقاومتين أحدهما كبيرة 2.2  كيلوأوم والأخري صغيرة 1.2 كيلوأوم كالتالي.

Raspberry_Pi_Ultrasonic

فى البداية نقوم بفتح الـ Terminal الخاص ب الراسبيري باي وكتابة الأوامر التالية أو نقوم بفتح نافذه الـ SSH الخاصة بها من جهاز آخر مربوط معها علي نفس الشبكة كما تم شرحه في الدرس الخامس.

الأساس في هذا الكود هو المعادلة الحسابية التي يعمل عليها الحساس حيث أن السرعة التي يتحرك بها أي جسم تساوي المسافة التي تحركها مقسومة على الزمن الذي احتاجه لقطع هذه المسافة.

Raspberry_Pi_Ultrasonic

ومنها نحصل على معادلة المسافة والتى تقسم على 2 وذلك حيث أن الصوت المرسل من حساس الـ Ultrasonic يتحرك مرتين مره ذهاباً حتى يصطدم بالجسم الذي أمامه ويعود مرة أخرى للحساس.

Raspberry_Pi_Ultrasonic

 

Raspberry_Pi_Ultrasonic

فى البداية نقوم بفتح ملف بايثون ونسميه ultrasonic.py

sudo nano ultrasonic.py

ثم نقوم بكتابة الكود التالي بداخله.

import RPi.GPIO as GPIO                    #Import GPIO library
import time                                #Import time library
GPIO.setmode(GPIO.BCM)                     #Set GPIO pin numbering 

TRIG = 4                                   #Associate pin 4 to TRIG
ECHO = 17                                  #Associate pin 17 to ECHO

print "Distance measurement in progress"

GPIO.setup(TRIG,GPIO.OUT)                  #Set pin as GPIO out
GPIO.setup(ECHO,GPIO.IN)                   #Set pin as GPIO in

while True:

  GPIO.output(TRIG, False)                 #Set TRIG as LOW
  print "Waitng For Sensor To Settle"
  time.sleep(2)                            #Delay of 2 seconds

  GPIO.output(TRIG, True)                  #Set TRIG as HIGH
  time.sleep(0.00001)                      #Delay of 0.00001 seconds
  GPIO.output(TRIG, False)                 #Set TRIG as LOW

  while GPIO.input(ECHO)==0:               #Check whether the ECHO is LOW
    pulse_start = time.time()              #Saves the last known time of LOW pulse

  while GPIO.input(ECHO)==1:               #Check whether the ECHO is HIGH
    pulse_end = time.time()                #Saves the last known time of HIGH pulse 

  pulse_duration = pulse_end - pulse_start #Get pulse duration to a variable

  distance = pulse_duration * 17150        #Multiply pulse duration by 17150 to get distance
  distance = round(distance, 2)            #Round to two decimal points

  if distance > 2 and distance < 400:      #Check whether the distance is within range
    print "Distance:",distance,"cm"        #Print distance
    print "Out Of Range"                   #display out of range

ثم نقوم بتشغل البرنامج عن طريق الأمر التالي.

sudo python ultrasonic.py

نلاحظ أن البرنامج يعمل ويقوم بعرض المسافة بين حساس الـ ultrasonic والكائن الذى أمام، قم بتغيير المسافة بين الحساس والكائن الذى أمامة ستلاحظ أن المسافة تتغير بالفعل.

Raspberry_Pi_Ultrasonic

أما عن شرح الكود الذي استخدمناه فهو في غاية السهولة حيث يتم إرسال نبضة للرجل Trig مع الأخذ فى الإعتبار مقدار الوقت بين high و الـ low وهو 10 ميكرو ثانية كالتالي.

GPIO.output(TRIG, True)                  #Set TRIG as HIGH
time.sleep(0.00001)                      #Delay of 0.00001 seconds
GPIO.output(TRIG, False)                 #Set TRIG as LOW

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

while GPIO.input(ECHO)==0:             #Check whether the ECHO is LOW
   pulse_start = time.time()   #Saves the last known time of LOW pulse

while GPIO.input(ECHO)==1:           #Check whether the ECHO is HIGH 
   pulse_end = time.time()    #Saves the last known time of HIGH pulse

pulse_duration = pulse_end - pulse_start #Get pulse duration to a variable

بمعلومية سرعة الصوت فى الهواء والتى تساوي 343 متر فى الثانية أي تساوي 34300 سنتى متر في الثانية، نقوم بالتعويض في المعادلة لتصبح الصيغة النهاية هي حاصل ضرب الزمن فى 17150، ثم نقوم بالتقريب لأقرب رقمين عشريين.

distance = pulse_duration * 17150       #Multiply pulse duration by 17150 to get distance
distance = round(distance, 2)           #Round to two decimal points

مع الأخذ في الأعتبار بأن هذا الحساس لا يستطيع الأحساس بالمسافات الأقل من 2 سنتى متر ولا أكثر من 4 أمتار، لذلك يتم إضافة الدالة الشرطية التالية.

if distance > 2 and distance < 400:      #Check whether the distance is within range
 print "Distance:",distance,"cm"  #Print distance 
else:
 print "Out Of Range"                   #display out of range



توصيل شاشة OLED على الراسبري باي

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

Raspberry-Pi-OLED

 

المكونات المطلوبة

Raspberry Pi

راسبري باي

Raspberry_pi_OLED_1

شاشة عرض OLED

raspberry-pi-lcd-16x2-2

أسلاك توصيل Female / Female jumper

توصيل الدائرة

نقوم بتوصيل الدائرة كما في الصورة التالية ومن الممكن أن نقوم بتوصيلها بإستخدام لوحة التجارب الـ breadboard

raspberry-pi-oled
Raspberry-Pi-OLED

الكود البرمجي

فى البداية نقوم بفتح الـ Terminal  الخاص بالراسبري باي وكتابة الأوامر التالية أو نقوم بفتح نافذه الـ SSH الخاصة بها من جهاز آخر مربوط معها علي نفس الشبكة كما تم شرحه في الدرس الخامس

في البداية نقوم بتحديث نظام تشغيل الراسبرى باى وتنصيب مكتبة GPIO الخاصة بالتحكم في أطراف الإدخال والإخراج.

sudo apt-get update
sudo apt-get install build-essential python-dev python-pip
sudo pip install RPi.GPIO

ثم نقوم بتنصيب مكتبات إضافية لتعمل الشاشة على الراسبري باي.

sudo apt-get install python-imaging python-smbus

ثم نقوم بتحميل ملفات مكتبة SSD1306 للتحكم فى الـOLED والمعدة مسبقاً من Adafruit من خلال الأوامر التالية.

sudo apt-get install git
git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git

نقوم بتغيير المسار إلى الملف الذي قمنا بتنزيلة ونقوم بعمل تنصيب للمكتبة من خلال الأوامر التالية.

cd Adafruit_Python_SSD1306
sudo python setup.py install

بمجرد الإنتهاء من تنصيب المكتبة تصبح جاهزة مباشرة لإستدعائها من خلال أي برنامج Python عن طريق كتابة الأمر التالي في ملف الـ Python.

import Adafruit_SSD1306

سنقوم الآن بالذهاب لملف examples داخل مكتبة الـ OLED لنشغل أحد الأمثلة حتى نتأكد من أن الشاشة تعمل بنجاح وذلك كالتالي.

cd examples
sudo python shapes.py

سنلاحظ أن الشاشة تعمل وتعرض مجموعة من الأشكال المختلفة وكذلك كلمة Hello World كالتالي.

Raspberry_Pi_OLED_3

يجب ملاحظة أن هذه المكتبة تدعم برتوكول I2C وكذلك SPI وكذلك عدد مختلف من مقاسات الشاشات، فكل ما عليك أن تقوم بتحدد البروتوكول الذي تعمل علية شاشتك وفي هذه الحالة I2C ومقاس الشاشة 128×64، فنقوم بفتح ملف shapes.py من خلال برنامج nano.

sudo nano shapes.py
# 128x32 display with hardware I2C:
disp = Adafruit_SSD1306.SSD1306_128_32(rst=RST)
	 
# 128x64 display with hardware I2C:
# disp = Adafruit_SSD1306.SSD1306_128_64(rst=RST)
	 
# Alternatively you can specify an explicit I2C bus number, for example
# with the 128x32 display you would use:
# disp = Adafruit_SSD1306.SSD1306_128_32(rst=RST, i2c_bus=2)
 
# 128x32 display with hardware SPI:
# disp = Adafruit_SSD1306.SSD1306_128_32(rst=RST, dc=DC, spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE, max_speed_hz=8000000))
	 
# 128x64 display with hardware SPI:
# disp = Adafruit_SSD1306.SSD1306_128_64(rst=RST, dc=DC, spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE, max_speed_hz=8000000))

كل ما عليك هو أن تقوم بإزالة علامة # من أمام البروتوكل والمقاس المناسب لشاشتك ووضعها قبل كل المقاسات الأخرى، وفى حالة الشاشة المستخدمة هنا

# 128x64 display with hardware I2C:
# disp = Adafruit_SSD1306.SSD1306_128_64(rst=RST)

بإمكانك قراءة المزيد ومراجعة الكود المكتوب فى برنامج py فهو سهل وبسيط حيث يقوم برسم مجموعة من الخطوط عن طريق الأمر draw وكذلك طباعة كلمة Hello World مثل التالي.

draw.ellipse
draw.rectangle
draw.polygon
draw.line
draw.text((x, top),    'Hello',  font=font, fill=255)

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

Raspberry_Pi_OLED_4



توصيل شاشة LCD 16×2 للراسبيري باي

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

raspberry_pi_LCD_16x2

المواد والأدوات

راسبري باي

Raspberry Pi

شاشة عرض LCD 16×2

Raspberry-pi-lcd-16x2-1

أسلاك توصيل Female / Female jumper

raspberry-pi-lcd-16x2-2

أسلاك توصيل Female / Male jumper

raspberry-pi-lcd-16x2-3

مقاومة متغيرة 10 كيلو أوم

raspberry-pi-lcd-16x2-3

لوحة تجارب

 Raspberry-pi-lcd-16x2-15

توصيل الدائرة

نقوم بلحام الـ Pin Header المرفق مع الشاشة كالتالى.

raspberry-pi-lcd-16x2-5

 

raspberry-pi-lcd-16x2-6

 

raspberry-pi-lcd-16x2-7

 

raspberry-pi-lcd-16x2-8

 

نقوم بتوصيل الدائرة كما فى الصورة التالية ومن الممكن أن نقوم بتوصيلها بإستخدام لوحة التجارب الـ  breadboard

توصيل الدائرة
Raspberry-pi-lcd-16x2-10

الكود البرمجي

في البداية نقوم بفتح الـ Terminal الخاص ب الراسبري باي وكتابة الأوامر التالية أو نقوم بفتح نافذة الـ SSH الخاصة بها من جهاز آخر مربوط معها على نفس الشبكة كما تم شرحه في الدرس الخامس.

في البداية يجب ان نقوم بتحميل ملفات مكتبة التحكم فى الشاشة والمعدة مسبقاً من Adafruit من خلال الأمر التالي.

git clone https://github.com/adafruit/Adafruit_Python_CharLCD.git

نقوم بعمل تنصيب للمكتبة من خلال الأوامر التالية.

cd ./Adafruit_Python_CharLCD
sudo python setup.py install

سنقوم الآن بكتابة كود بسيط لتوضيح كيفية إستخدام المكتبة والتحكم فى الشاشة، عن طريق سطر أوامر لينكس Terminal نقوم بكتابة الأمر التالي لفتح ملف جديد وكتابة كود بلغة الـ Python به.

sudo nano ~/Adafruit_Python_CharLCD/Adafruit_CharLCD/GeeksValley_LCD.py

ثم نقوم بكتابة الأسطر البرمجية التالية لطباعة نص يتم ادخاله من قبلنا و بعدها يتم طباعة عبارة (Goodbye World) لمدة 5 ثواني

#!/usr/bin/python
# Example using a character LCD connected to a Raspberry Pi 
import time
import Adafruit_CharLCD as LCD

# Raspberry Pi pin setup
lcd_rs = 27
lcd_en = 22
lcd_d4 = 25
lcd_d5 = 24
lcd_d6 = 23
lcd_d7 = 18

# Define LCD column and row size for 16x2 LCD.
lcd_columns = 16
lcd_rows = 2

lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows)

lcd.message('Hello\nworld!')
# Wait 5 seconds

time.sleep(5.0)
lcd.clear()
text = raw_input("Type Something to be displayed: ")
lcd.message(text)

# Wait 5 seconds
time.sleep(5.0)
lcd.clear()
lcd.message('Goodbye\nWorld!')

time.sleep(5.0)
lcd.clear()

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

sudo python ~/Adafruit_Python_CharLCD/Adafruit_CharLCD/GeeksValley_LCD.py

يقوم البرنامج السابق بمجرد تشغيله بعرض كلمة Hello World لمدة 5 ثوانى .

Raspberry-pi-lcd-16x2-11
  • بعد ذلك يقوم بعرض رسالة من خلال سطر الأوامر ويطلب منك أن تقوم بكتابة جملة ما لتعرض على الشاشة مثل Geeks Valley وبمجرد الضغط على Enter سنلاحظ أن تم طباعة جملة Geeks Valley على الشاشة لمدة 5 ثوانى.
شاشة اطبع النص

 

Raspberry-pi-lcd-16x2-13

بعد ذلك يقوم البرنامج بطباعة جملة Goodbye World على الشاشة لمدة خمس ثوانى أخرى.

Raspberry-pi-lcd-16x2-14

ثم بعد ذلك يقوم البرنامج بمسح الشاشة وتركها خالية.

هناك الكتير من الأوامر الخاصة بهذه المكتبة وهذه المجموعة من أهمها.

home()– يقوم هذا الأمر بتحريك نقطة الكتابة لأول الشاشة
clear()– يقوم بمسح كل ما هو مكتوب على الشاشة
set_cursor(col, row)– يقوم هذا الأمر بتحديد نقطة الكتابة على الشاشة وذلك بتحديد رقم العمود col وكذلك رقم السطر row
show_cursor(show)– يقوم بعرض نقطة الكتابة على الشاشة
blink(blink)– يقوم بومض نقطة الكتابة على الشاشة
move_left()or move_right() – يقوم بتحريك نقطة الكتابة على الشاشة يميناً ويساراً
set_right_to_left()or set_left_to_right() – يقوم بتغيير إتجاه الكتابة من اليمين لليسار ومن اليسار لليمين
message(text)– ببساطة نقوم بكتابة النص المراد عرضه على الشاشة




Dashboards وواجهات المستخدم في Node-Red

في هذا الدرس سوف نستعرض بعض التقنيات التي تسمح لنا بعمل عرض تصوّري للبيانات (visualize data) التي تمر خلال التدفقات. سوف نركز على ثلاث أساليب:

  • استخدام الطرف الثالث من أداة Dashboard وهي FreeBoard (الجزء الأول)
  • استخدام العقد الافتراضية لواجهة المستخدم (Dashboard) المقدمة بشكل افتراضي في Node-RED
    (الجزء الثاني)
  • استخدام أداة الرسم التخطيطي للجافا سكريبت القياسية  (الجزء 3).
dashboards-and-ui-nodes

بنهاية هذا الدرس ستكون لديك معرفة كافية لتحديد الطريقة المناسبة لتحقيق احتياجاتك في الحصول على عرض تصويري للبيانات على صفحة ويب.

استخدام خدمة لوحة التحكم FreeBoard :

تعد هذه الطريقة مثالا بسيطا لقراءة وعرض البيانات تصويريا باستخدام عقدة FreeBoard  من عقد الـNode-Red  . سوف نستخدم خدمة FRED القائمة على السحابه كمحرك للـNode-Red  ونستعرض البيانات تصويريا من خلال خدمة الطقس على الانترنت يمكن تقسيم هذا المثال إلى جزئين:

الأول: إنشاء عقدة  الطقس openweathermap في FRED الموجودة ضمن العقد المدمجة. كما قمنا به في درس بناء التدفقات:تنبيهات الطقس

الثاني: عرض البيانات من عقدة openweathermap  باستخدام عقدة FreeBoard

أولا لإنشاء عقدة الطقس قم  بإنشاء حساب أو تسجيل الدخول إلى http://openweathermap.org/appid للحصول على مفتاح API الخاص بك.

dashboards-and-ui-nodes

قم بسحب عقدة الطقس openwethermap إلى مساحة العمل والنقر عليها مرتين لإدخال البيانات: مقتاح API وإحداثيات مدينتك.

نقوم بعد ذلك بربطها بعقدة الإخراج debug  والضغط على نشر Deploy

dashboards-and-ui-nodes

نجد أن البيانات التي تظهر في لوحة الإخراج debug  هيكل JSON مما يعني أنه يمكننا استخدام أي من هذه القيم ببساطة.

سنقوم بإنشاء صفحة تحكم لعرض البيانات مرئيًا باستخدام عقدة FreeBoard .

نقوم بسحب عقدة FreeBoard  إلى ساحة العمل والنقر عليا مرتين لتسميتها

dashboards-and-ui-nodes

بالنقر على نشر Deploy ستحصل عقدة الطقس على البيانات وتقوم بإرسالها إلى كلا من عقدة الإخراج depug  وعقدة freeboard.

عقدة FreeBoard ذكية جدًا فهي تقوم باستقبال البيانات وتحليلها ومعرفة كيفية جعلها متاحة باستخدام واجهة المستخدم FreeBoard

للحصول على مزيد من المعلومات عن هذه العقدة قم بالنقر على علامة التبويبinfo  في لوحة الإخراج

dashboards-and-ui-nodes

قم بالضغط على الرابط في لوحة المعلومات أو الرابط التالي:

https://{username}.fred.sensetecnic.com/api/freeboard/

ستفتح لك نافذة تبويب جديدة

dashboards-and-ui-nodes

هذا التبويب يسمح لك بعمل عرض تصويري للبيانات في FreeBoard وحفظها وتحميلها.

سنقوم الآن بعمل عرض تصويري لبيانات الطقس لدينا، نحتاج أولا إلى إضافة مصدر للبيانات في freeboard  . انقر على “ِADD ” تحت عنوان “DATASOURCES”

وتحت عنوان “TYPE” حدد اسم العقدة “FreeBoard”. في حالتنا أطلقنا عليها اسم “freeboard” مما  سيسمح لنا بالوصول إلى أي بيانات تتصل بعقدة “freeboard” في Node-Red.

dashboards-and-ui-nodes

سنقوم الآن بإضافة pane  انقر على “ADD PANE” سوف يظهر لنا جزء جديد فارغ. ولإضافة “Widget” قم بالنقر على علامة ( + )   في الجزء الجديد واختر “”Gauge

تحت “DATASOURCE” قم باختيار عقدة “Freeboard”.  كما تشاهد فإن حقول البيانات المختلفة في عقدة الطقس openwethermap هيكل JSON متاحة لتصويرها مرئيًا.

إذا لم تظهر لك الحقول في القائمة المنسدلة قم بالرجوع إلى صفحة Node-Red  وانقر على نشر deploy  مرة أخرى ليتمكن freeboard  من استقبال البيانات وتخزينها

في هذا المثال قمنا باختيار “tempC”

dashboards-and-ui-nodes

FreeBoard يأخذ البيانات بشكل أساسي هيكل JSON لينتج الحقول الأخرى

العرض التصويري لبياناتك ينبغي أن يظهر بهذا الشكل:

dashboards-and-ui-nodes

 

 

 

 

مقدمة لعقد واجهة المستخدم من Node-RED-dashboar :

في هذا المثال سنستخدم العقد المضمنة في Node-Red. إذا كنت تستخدم FRED فتحقق من إضافة هذه العقدة من خلال زر إضافة/إزالة العقد في لوحة الإدارة وأنك لا تستخدم واجهة المستخدم القديمة للعقد.

في البداية سنقوم ببناء تدفق بسيط يرسل أرقامًا عشوائية بين 0 و 99 إلى رسم بياني بسيط. سنحتاج إلى:

  • عقدة إدخال لتكرار إطلاق البيانات مرارا كل بضعة ثوان
  • عقدة معالجة function لتوليد أرقام عشوائية
  • وواحدة من عقد  node-red-dashboard وفي هذه المرة سنختار عقدة الرسم البياني Chart node

 

dashboards-and-ui-nodes

قبل أن ننظر في كيفية عمل عقدة الرسم البياني، سنقوم بتكوين عقدة إدخال تقوم بإرسال طابع زمني كل 5 ثوان عن طريق وضع الحمولة على الطابع الزمني ونختار الفترة 5 ثوان في حقل التكرار.

dashboards-and-ui-nodes

سيمثل هذا جزء الإدخال في التدفق الذي نريد بناءه

لإعداد عقدة المعالجة function لتوليد الأرقام العشوائية سنفوم بكتابة دالة رياضية بسيطة بواسطة جافا سكربت

msg.payload = Math.round(Math.random()*100);
return msg;

لمحة عن الكود :

msg المتغير الذي يحتوي على نص الرسالة. استخدمنا الدالة ()Math.round للحصول على أعداد مقربة إلى أقرب عدد صحيح

والدالة Math.random()*100 لتوليد أرقام عشوائية بين 0 و99

ستولد عقدة المعالجة رقم عشوائي بين 0 – 99 وتمررها إلى عقدة الرسم البياني

بالنقر مرتين على عقدة الرسم البياني ستظهر لنا خيارات إعدادها

dashboards-and-ui-nodes

اذا قمت بالنقر على زر حقل Group، سيطلب منك إعداد علامات التبويب  لواجهة المستخدم

dashboards-and-ui-nodes

يسمح خيار التبويب بتحديد علامات التبويب التي تريدها في صفحة واجهة المستخدم وسترى عنصر واجهة المستخدم  (في مثالنا هذا الرسم البياني ). علامة التبويب الافتراضية هي الصفحة الرئيسية Home  التي نستخدمها هنا. إذا قمت بالنقر على زر تعديل edit في يمين حقل التبويب ستتمكن من إنشاء تبويب جديد واختياره.

الآن سنستخدم الافتراضي Home

حقل الاسم هو الاسم الأساسي لعقدة Node-Red – الافتراضي هنا هو الرسم البياني ويمكنك تسميته كما شئت

حقل المجموعة Group يسمح لك بتجميع عناصر واجهة المستخدم – سيأتي فيما بعد كيفية عمله عند إضافة عنصر واجهة مستخدم آخر –

يمكنك تسميته بأي نص الآن سنستخدم الافتراضي  Home

حقل محور × : يتيح لك تحديد مقدار البيانات التي تريد من الرسم البياني تخزينها وعرضها. كلما زادت القيمة في حقل last  يعني أن بيانات أكثر سيتم تخزينها وعرضها على الرسم

سنختار مدى قصير وهو 5 دقائق أي أن الرسم سيتضمن البيانات الواردة خلال 5 دقائق.

وأخيرا حقل Interpolate سيحدد كيف سيقوم الرسم البياني بإدراج القيم الفعلية التي يستقبلها في الرسم ، سنستخدم الافتراضي الخطي linear

قم بتوصيل العقد واضغط على زر النشر Deploy

تأكد أن لوحة الإخراج depug  تُظهر أرقاما عشوائية

ثم توجه إلى تبويب dashboard الافتراضية الخاصة بك لرؤية النتيجة عند العمل في FRED ستجد واجهة الاستخدام الخاصة بك كالتالي:

dashboards-and-ui-nodes

 

أو بزيارة الرابط التالي

https://{your username}.fred.sensetecnic.com/api/ui/

يمكن الحصول بهذه الطريقة على رسوم بيانية رائعة وفقًا لمدى البيانات التي تختارها (محور Y) مع الزمن (محور x)

ويظهر اسم الرسم Default  كما تم اختياره خلال تهيئة عقدة الرسم البياني

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

سنقوم الآن بإضافة عناصر واجهة المستخدم أخرى إلى Dashboard. قم بإضافة عقدة  Gauge إلى مساحة العمل وربطها بعقدة function. وبالنقر عليها مرتين لفتح الإعدادات الخاصة بها.

dashboards-and-ui-nodes

سوف نستخدم هنا نفس التبويب السابق Home ونفس المجموعة [Default [Home

حقلي Min و Max يسمحان لنا بتحديد الحد الأدنى والأقصى في المقياس الذي سيظهر. تأكد من تعيين الحد الأقصى 100 ليعطى أعلى قيمة من الأعداد العشوائية التي ستولدها عقدة function

في حقل التدرج اللوني يمكنك تغيير الألوان التي تظهر في المقياس

قم بالضغط على نشر deploy وتوجه إلى الصفحة الخاصة بك Dashboard لمشاهدة النتيجة

سيُظهر الرسم القيم العشوائية التي تم توليدها في الخمس دقائق الأخيرة وسيمثل المقياس القيمة الأخيرة

dashboards-and-ui-nodes

كمثال أخير سنستخدم عقدتين أخرى من عقد واجهة المستخدم وهما عقدة Slider وعقدة النص text لإظهار نفس البيانات على شريط تمرير وكسلسلة نصية.  قم بسحبهما إلى مساحة العمل وربطهما بعقدة function

dashboards-and-ui-nodes

 

 

سنضع هاتين العقدتين تحت نفس التبويب Home لكن سنختار اسم مجموعة آخر وليكن “anthorWidget”

ستحتاج إلى النقر على إضافة مجموعة واجهة استخدام جديدة (add new_ui group) من القائمة المنسدلة لحقل Group

ستحتاج إيضا لتعديل الحد الأدنى والأقصى للقيم  (max: 100) في عقدة slider لإظهار الموقع الصحيح في شريط التمرير

dashboards-and-ui-nodes

قم بالضغط على نشر deploy ومشاهدة النتيجة في  صفحتك  Dashboard

dashboards-and-ui-nodes

في علامة تبويب dashboard في FRED يمكنك إعادة ترتيب العناصر في الصفحة.

إذا لم يكن تبويب dashboard ظاهرا لك فانقر على زر القائمة في أعلى الزاوية اليمنى من الصفحة واختر view < dashboard

dashboards-and-ui-nodes

لديك الآن الأساسيات اللازمة لبناء صفحتك الخاصة dashboard باستخدام بيانات العالم الحقيقي وربطها بعقد أخرى.

استخدام مكتبة الرسم البياني للجافا سكريبت لبناء dashboard مخصصة :

سنستخدم في هذا المثال من درس بناء Dashboards وواجهات المستخدم خدمة الويب التي تتمثل في عقدة HTTP حيث تسمح لنا باستضافة صفحات ويب عبر قبول طلبات HTTP

لقد استخدمنا بالفعل هذا النهج في مثالنا الأول دون شرح التفاصيل من خلال عقدة الطقس openweathermap

حيث كانت تولد البيانات في هيكل JSON ثم عرضها تصويريا باستخدام مكتبة  Morris.JS للرسوم البيانية.

تدعم المكتبة 4 أنواع رئيسية من الرسوم: الرسم الخطي والمساحة والأعمدة bar chart والحلقيchart  donut

سنستخدم في هذا المثال الرسم الحلقي لكن الطريقة ستكون نفسها بالنسبة لكل أنواع الرسوم البيانية.

سنبني تدفقًا يتكون من 4 عقد. العقدة الأولى والأخيرة هي عقدة HTTP كمدخل ومخرج تعملان معا بحيث تستقبل طلبات HTTP وترسل ردود HTTP

يمثل التدفق مثالا بسيطا لخادم ويب لرسم بيانات الطقس

dashboards-and-ui-nodes

يستقبل هذا التدفق طلبات HTTP من أي مصدر وليكن المتصفح، عند وصول الطلب يتم الاستعلام عن الطقس عبر عقدة openweathermap ثم يستخدم عقدة القالب template لبناء صفحة HTTP باستخدام بيانات الطقس ثم يمرر ذلك إلى عقدة الاخراج HTTP التي ترسل صفحة ويب للمتصفح.

بالنقر مرتين على عقدة الإدخال HTTP وتهيئتها مع موقعك في هذا المثال سيكون:

/public/weather

وللوصول إليها فيما بعد نستخدم الرابط التالي

https://{user name}.fred.sensetecnic.com/api/public/weather

عند وصول طلب إلى عقدة الإدخال HTTP تتكون رسالة لتحريك العقدة التالية في التدفق وهي عقدة الطقس

تحصل عقدة الطقس على البيانات وفق إحداثيات الموقع الذي تم إعدادها بالنسبة له وتقوم بإرسالها كهيكل JSON إلى عقدة القالبtemplate .

عقدة HTML template  هي عقدة أخرى مبنية في Node-RED ، و التي تشبه عقدة function ، حيث تسمح لك ببناء تعليمات برمجية . فبدلا من استخدام الجافا سكريبت (javaScript)   مثل عقدة function ، فإن عقدة template  تعمل مع نص مثل HTML .

dashboards-and-ui-nodes

قم بكاتبة كود html المستخدم في عقدة template، كما هو موضح أدناه :

<!doctype html>
<head>
 <title>A Node RED Example</title>
 <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.css">
 <script src="//cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
 <script src="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.min.js"></script>
</head>
<html>
 <div id="chart-example" style="height: 250px;"></div>
 <script>
 Morris.Donut({
 element: 'chart-example',
 data: [
 {label: "Temperature (Celcius)", value: {{payload.tempc}} },
 {label: "Humidity", value: {{payload.humidity}} },
 {label: "Wind Speed (knts)", value: {{payload.windspeed}} }
 ]
 });
 </script>
</html>

يبدأ الكود بهيكل <head>

لتعريف المكتبات الخارجية التي سيتم استخدامها وهنا قمنا بتعريف مكتبات  Morris.JS

لاحظ بأننا قمنا بجمع جميع عناصر صفحة الويب في عقدة واحدة قد لا يكون هذا مناسبا في مشاريع أخرى.

في السطر العاشر <div>  يتم تعريف الاسم والارتفاع

وفي السطر 11 يبدأ الكود المتعلق بالرسم البياني وفقا لمكتبة  Morris.JS  وتحديدا الرسم البياني الحلقي donut chart

في السطر 15 و16 و17   يتم تعريف عناصر الرسم البياني

وهنا تم اختيار 3 عناصر : درجة الحرارة والرطوبة وسرعة الرياح

القيم من عقدة الطقس هيكل JSON يمكن استخدامها بصورة مباشرة عبر تحميلها على الرسالة المتدفقة أي payload.tempC و   payload.humidity و  payload.windspeed

وبمجرد أن تولد عقدة template ملف HTTP تمرر الرسالة إلى العقدة الأخيرة عقدة الإخراج HTTP

وهي عقدة استجابة HTTP. هذه العقدة تحزم HTML كرد HTTP و التي ترسل إلى المتصفح .

الآن قم بالضغط على نشر deploy  ثم توجه في المتصفح إلى الرابط الذي تم تكوينه في عقدة الإدخال HTTP

https://{user name}.fred.sensetecnic.com/api/public/weather

ستظهر النتيجة رسم بياني حلقي بسيط يظهر لك درجة الحرارة والرطوبة وسرعة الرياح بمجرد تمرير المؤشر عليه

dashboards-and-ui-nodes



تنفيذ برنامج البايثون تلقائياً على الراسبيري باي

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

DSC00009

المكونات المطلوبة

DSC00009

راسبيري باي

الكود البرمجى

فى البداية نقوم بفتح ال Terminal الخاص ب الراسبيري باي وكتابة الأوامر التالىة أو نقوم بفتح نافذه ال SSH الخاصة بها من جهاز آخر مربوط معها على نفس الشبكة كما تم شرحة فى الدرس الخامس.
نقوم بفتح محرر النصوص Nano ويقوم بإنشاء ملف البرنامج الذى نريد تشغيلة مع فتح الراسبري باي وليكن اسمه print.py

nano print.py

نقوم بكتابة الكود بداخلة بلغة البايثون python وللتوضيح سأقوم بكتابة برنامج يقوم بطباعة كلمة Hello World! ويقوم بطباعة الوقت والتاريخ الحالى.

#!/bin/python
import datetime
print “Hello World!”
print datetime.datetime.now()

ثم نقوم بالضغط علي Ctrl+O ثم enter ثم Ctrl+X وذلك لحفظ الملف السابق.
نقوم بإنشاء directory جديد لنضع الكود بداخلة ونسمية launcher ونوجه الـ terminal لهذا المسار الجديد ونقوم بإنشاء برنامج shell script.

mkdir launcher
cd launcher
nano launcher.sh

فى هذا البرنامج نكتب الكود التالى الذى يقوم بتوجيه الـ terminal إلى مكان تواجد كود البايثون المراد تنفيذه وكذلك بدأ تشغيله.

#!/bin/bash
cd /
cd home/pi
sudo python print.py

ثم نقوم بالضغط علي Ctrl+O ثم enter ثم Ctrl+X وذلك لحفظ الملف السابق.
نحتاج الآن أن نجعل هذا البرنامج excutable كالتالي.

chmod 755 launcher.sh

نقوم بإنشاء directory جديد بإسم logs فى الـ home وهو لكى يقوم الـ crontab بكتابة أى رسائل أخطاء هناك.

cd
mkdir logs 

الـ crontab هو عبارة عن deamon يعمل فى خلفية نظام الـ Linux وهو يتيح لنا تنفيذ برامج فى أوقات محددة.
نقوم بكتابة الأمر التالى لكي يفتح نافذة الـ crontab

sudo crontab -e

نقوم بكتابة الأمر التالي والذى يقوم بتشغيل الـ script مع كل Reboot للراسبري باي وسوف تلاحظ أنه أمر بسيط جداً فقط نقوم بكتابة @ ثم متى نريد تنفيذ هذا الأمر ثم مسار الملف المراد تنفيذه وهنا كي يتضح المثال سنقوم بعمل حفظ لناتج تنفيذ الأمر فى file بإسم cronlog فى directory الـ logs الذى قمنا بإنشائه مسبقاً عن طريق (<<) وهى تقوم بالإستمرار فى الحفظ فى نفس الملف ثم نقوم بعمل redirection للـ standard error فى الـ standard out  عن طريق كتابة 2>&1.

@reboot sh /home/pi/launcher/launcher.sh >>/home/pi/logs/cronlog 2>&1

نقوم بعمل أعادة تشغيل للراسبري باى عن طريق الأمر التالي.

sudo reboot

إذا قمنا الآن بفتح الـفايل cronlog سنجد أنه قد طبع بداخلة كلمة Hello World! ومن بعدها التاريخ والوقت ، وفى كل مرة نعيد تشغيل الجهاز فيها سيقوم بنفس الكتابة مجدداً مما يعنى أن الـ crontab يعمل جيداً.
الآن إذا أردت تنفيذ أمر معين فى وقت محدد كل ما عليك هو إتباع الـ format التالي فى الأمر.

MIN HOUR DOM MON DOW CMD
الخانة الوصف القيم المتاحة
MIN الدقائق 0 to 59
HOUR الساعات 0 to 23
DOM يوم فى الشهر 1 to 31
MON الشهر 1 to 12
DOW يوم فى الأسبوع  0 to 6
CMD  الأمر المراد تنفيذه

وإذا أرت التكرار بشكل منتظم قم بإستبدل الخانة المراد التكرار فيها بـ * بدلاً من القيمة.
فمثلا إذا أردت تنفيذ البرنامج السابق فى وقت محدد وكتبت التالى فى الـ crontab.

30 08 10 06 * /home/pi/launcher/launcher.sh

 فهذا يعنى التالى :

30 => 30 دقيقة

08 => الساعة الثامنة صباحاً

10 => اليوم العاشر من الشهر

06 => شهر يونيو

*  => أى يوم من أيام الأسبوع

مثلاً أيضاً أذا أردت تنفيذ برنامج كل دقيقة فما عليك إلا الكود التالي.

* * * * * /home/pi/launcher/launcher.sh

أما إستخدام @ يكون كالتالي:

الأمر يساوى المعنى
@yearly 0 0 1 1 * كل عام
@daily 0 0 * * * كل يوم
@hourly 0 * * * * كل ساعة
@reboot مع كل إعادة تشغيل



إستخدام الراسبيري باي كجهاز إرسال موجات FM

فى هذا الدرس سنتعلم كيفية إسخدام الراسبيرى باى كجهاز راديو لإرسال الأصوات عن طريق موجات ال FM ويتم ذلك عن طريق ال hardware  المدمج فى الراسبيرى باى الذى يقوم بتوليد spread-spectrum clock من خلال أحد أطراف ال GPIO وهو GPIO4 وكل ما تحتاج إضافته هو سلك لهذا الطرف كي يحدث التذبذب حولة وتنتشر الموجات لمسافة كبيره تصل إلى 100 متر ومن الممكن أن لا تستخدم هذا الهوائي ولكن مدى الراديو سيقل إلى 10 cm فقط.

raspberry_pi_fm_radio

المكونات المطلوبة

Raspberry Pi

راسبيرى باى

raspberry_pi_fm_radio_1

سلك توصيل طوله أكبر من 75 cm

raspberry_pi_fm_radio_1

سلك توصيل Female jumper

raspberry_pi_fm_radio_3

قطعة Heat Shrink

raspberry_pi_fm_radio_5

مكواة لحام

raspberry_pi_fm_radio_6

قصدير لحام

توصيل الدائرة

نقوم بقياس 75 cm  من كابل التوصيل (من الممكن أن يقل الكابل عن هذا الطول ولكن كلما قل طوله كلما قلت المساحة المغطاه لبث الراديو)، ونقوم بلحامه فى طرف واحد من سلك التوصيل ال Female  بإستخدام مكواة اللحام كالتالي ويكون مجال بث هذا الهوائي حوالي 100 متر .

raspberry_pi_fm_radio_7

 

raspberry_pi_fm_radio_8

 

نقوم بإستخدام قطعة ال heat shrink لتغطية مكان اللحام ثم نقوم بتسخينها بإستخدام قداحة حتى تنكمش على السلك لتقوم بحمايته كالتالي :

raspberry_pi_fm_radio_9
raspberry_pi_fm_radio_10

 

نقوم بتوصيل الكابل السابق الإعداد فى الطرف رقم 7 من ارجل التوصيل GPIO وهو GPIO4.

 

raspberry_pi_fm_radio_11

الكود البرمجى

فى البداية نقوم بفتح ال Terminal  الخاص ب الراسبيري باي وكتابة الأوامر التالية أو نقوم بفتح نافذه ال SSH الخاصة بها من جهاز آخر مربوط معها على نفس الشبكة كما تم شرحة فى الدرس الخامس.

 نقوم بكتابة الأمر التالي وهو يقوم بتزيل مالفات PiFm الخاصة بتحويل الراسبيري باي لجهاز إرسال وهي تكون مضغوطة في ملف من النوع tar.

wget http://omattos.com/pifm.tar.gz

نقوم بفك ضغط الملفات التي تم إنزالها عن طريق الأمر التالي.

tar -xvf pifm.tar.gz

نقوم بالـتأكد أنه تم فك ضغط كل الملفات التي تقوم بتشغيل الراديو عن طريق الأمر ls الذي يعرض محتويات المجلد المتواجدين فيه.

raspberry-pi-fm-radio-12

نقوم بكتابة الأمر التالى الذي بدورة يقوم بتشغيل الراديو على تردد ال FM الذى نكتبة فى نهاية الأمر فقد أستخدمت تردد 93.7 MHz  وهو تردد لا ينتمي لأى قناه إذاعية وكذلك قمت بإختار التسجيل المرفق مع الملفات المسمي sound.wav ولكنك تستطيع تغيره إلى أى تسجيل تفضلة على أى يكون إمتداده .wav وليس .mp3 ويكون أيضاً 16-bit mono

sudo ./pifm sound.wav 93.7

إذا أرت فى أى وقت وقف الصوت ما عليك سوى الضغط على ctrl + c فيتوقف الصوت المرسل تماماً.

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

raspberry-pi-fm-radio-13