الجمعة، 17 سبتمبر 2010

ما هو الروبوت الصناعي؟


الروبوت الصناعي : كلمة تمثل وصفا عاما لكل آلة صناعية تعمل وفقا لإشارات رقمية آتية من الحاسوب ونابعة من تطبيقات معينة تتعامل مع الرسوم او الاوامر المباشرة او وسائل التحسس المختلفة (sensors). ويشمل كافة مكائن اللحام والصباغة والقطع والحفر والخياطة وتوجيه الضوء والاشعة والليزر الى الاجسام المراد تغييرها وتصييرها الى اشكال او هيئات مختلفة أو التأثير الكيميائي عليها وتغيير تركيبتها, أو مجرد نقلها من مكان الى آخر.
وماكنة الـ CNC هي إحدى أكثر آلات الروبوت الصناعي شهرة- والتي تقوم بحفر أشكال معينة على الاجسام أو قطع الاجسام وفق نسق معين سواء على سطح أفقي أو لجسم ثلاثي الابعاد.
وتختلف مكائن الروبوت الصناعي وفقا لآليات حركتها أو للاجسام التي تعمل عليها وطبيعة حركتها, وهل هي ثلاثية الابعاد او ثنائية الابعاد. او قد تزيد الابعاد عن الثلاثة اذا ما اضيفت اليها أبعاد الدوران فقد يقوم الراس الصناعي في مكائن الـ CNC مثلا بالاستدارة بالجهات الثلاث بالاضافة الى ابعاد الحركة الثلاث.
كما تختلف الرؤوس الصناعية المضافة للمكائن حسب الوظيفة فقد يضاف للماكنة ذاتها رأس للقطع تارة ويستبدل بآخر للحفر تارة أخرى, وهكذا.
كما يمكن أن يكون الرأس الصناعي للماكنة ثابتا بينما تتحرك الارضية او الجسم حول هذا الرأس.
يمكن مشاهدة أمثلة كثيرة لمكائن الروبوت الصناعي في مصانع السيارات (المختصة بلحيم الشاصي) او في الصناعات المعدنية الاخرى. كما يمكن مشاهدتها في حركات نقل وتدوير البضائع والعلب المنتجة حديثا في المصانع.

شهادة تقديرية للطالب عمر سيروان الفائز العاشر في مسابقة مركز تقنية المعلومات 2010

شهادة تقديرية لمشاركتي في مسابقة مركز تقنية المعلومات في الجامعة التكنلوجية
فاز مشروع منظومة الروبوت الصناعي للطالب عمر سيروان بالمركز العاشر على صعيد الجامعات العراقية المشاركة في المسابقة السنوية لمركز تقنية المعلومات في الجامعة التكنلوجية, وقد دام العمل في المشروع ما يقارب الـ 5 أشهر, وكلف ما يقارب الـ 300$. وسلك العمل فيه الاتجاهات الثلاث الميكانيكي والالكتروني والبرمجي وتم إنتهاء عمل المشروع ضمن الجدول الزمني المحدد والحمد لله.

واجهة تطبيق إدارة ماكنة الروبوت الصناعي - industrial robot management

صورة الواجهة النهائية للبرنامج بجزئيه الاوتوماتيكي واليدوي
1- الخانات والازرار الخاصة بالتحكم في إدخال وإخراج البيانات من وإلى المنفذ المتوازي.
2- الجزء اليدوي للتحكم بالبرنامج ويحتوي على أزرار مخصصة لكل اتجاه بالاضافة الى مربع لإدخال عدد النبضات المعطاة الى الماطور ليتحرك بإتجاه معين.
3- الخانة المخصصة لإعطاء عدد النبضات لكل ماطور.
4- قائمة النقاط المستخرجة من ملف الـ DXF بعد تحليله.
5- خانة إدخال إسم ملف الـ DXF المراد تحليله.
6- زر التحليل ويتم تفعيله بعد إختيار ملف بصيغة DXF.
7- زر الحركة ويقوم بتوجيه أمر الحركة للماطورات بعد تحليل وإستخراج النقاط من مخطط الـ DXF.
8- سرعة دوران الماطور خلال مضيه على النقاط بعد الضغط على زر Move.
9- زر delete لمسح النقاط غير المطلوبة من القائمة.





تعريف المنفذ المتوازي Parallel port بواسطة لغة #C سي شارپ

class PortAccess
    {
        public static string now = string.Empty;

        [DllImport("inpout32.dll", EntryPoint = "Out32")]
        public static extern void output(int adress, int value);

        [DllImport("inpout32.dll", EntryPoint = "inp32")]
        public static extern int input(int adress);
    }

يمكن الحصول على ملف المكتبة الخاصة بتعريف  المنفذ المتوازي على لغة سي شارپ في الموقع الاتي:
والذي يجب أن يتم نسخه ووضعه في ملف 
system32
ويمكن بعد ذلك ان يتم استخدام طريقتي الادخال والاخراج اعلاه بشكل مباشر بعد تعريف الكلاس (الصنف) داخل الكود. وبإضافة العنوان والقيمة المطلوب إسنادها الى العنوان,. وعموما فإن العنوان الخاص بقراءة خطوط البيانات هو 888
Datalines 888
status lines 889
control lines 890
وخطوط الداتا (البيانات) هي أكثر الخطوط إستخداما. في حال القراءة (إصدار اوامر للخارج) أو الكتابة (إستقبال ما يكتبه الجهاز الخارجي)ـ

طريقة لقراءة ملفات اوتوكاد DXF بواسطة لغة #C


كود لقراءة ملفات DXF بواسطة لغة #C

 يمكن الاستفادة من الكود أدناه في ترجمة نصوص DXF وقراءتها بواسطة التطبيقات المطورة بلغة #C
try
            {
                TextReader r = new StreamReader(أسم الملف);

           
                string g = r.ReadToEnd();
                int last = g.LastIndexOf("AcDbLine");

                int a = g.IndexOf("AcDbBlockBegin");
                string p1 = g.Substring(a);

                int count = 0;
                int counter = 0;
                while (counter < last)
                {
                  Try
{
                  p1 = p1.Substring(counter);
                  int b = p1.IndexOf("AcDbLine");
                  string p2 = p1.Substring(b);
                 مجموع أحرف كلمة AcDbline هو ثمانية //                  
                  string g5 = p2.Substring(8);


                  int nnn10 = g5.IndexOf(" 10");
                  string nn10 = g5.Substring(nnn10 + 3);
                  int nnn10n = nn10.IndexOf(".");
                  string test = g5.Substring(nnn10 + 5, nnn10n + 2);
   x[count] = Convert.ToDouble(g5.Substring(nnn10 + 5, nnn10n + 2));
                    listBox1.Items.Add(x[count]);
 يستخدم الكود أعلاه لقراءة نص DXF الذي يتكون من مقاطع عديدة تتمثل فيها كل نقطة بالمخطط بالكود الاتي:
AcDbLine
 10
1433.260800051317
 20
396.7336593840455
 30
0.0
 11
1597.170766689316
 21
1133.845501609716
 31
0.0
  0
LINE
ويبتدئ البلوك الواحد من الكود بعبارة AcDbBlockBegin فيقوم البرنامج اولا بتحديد اخر مقطع entity يبدأ بـ Acdbline وأول مقطع يبدأ بـ AcDbBlockBegin ثم وبإستخدام العداد يقوم البرنامج بالمضي نزولا طالما أن العداد ما زال دون قيمة النهاية التي تم تحديدها بالبداية.
وبطرق الاقتطاع والبحث في لغة #C یقوم البرنامج بتحديد كافة المقاطع وخزن كافة النقاط في مصفوفات X و Y و Z. 

DXF file
ملفات دي اكس أف DXF


ملفات دي اكس اف (Drawing exchange file- DXF file) وهو صيغة من الملفات التي اصدرتها شركة Autodesk  مع برنامج الاوتوكاد لتمكين نقل بيانات المخططات والرسوم بين الاوتوكاد والبرامج الاخرى. وقد تمت إضافتها الى البرنامج عام 1982.
يمكن الاستفادة من ملفات DXF في البرامج الاخرى لأنها مكتوبة بصيغ مفهومة تتضح فيها العناصر المختلفة التي يتكون منها الرسم. وبهيئة ASCII code بخلاف بقية صيغ الملفات الناتجة من الاوتوكاد.
ويتكون ملف الـ DXF بصورة عامة من المكونات الاتية:

HEADER : ويشتمل على معلومات عامة عن المخطط.
CLASSES : أيضا لا يحتوي على معلومات مهمة لنقل المخطط الى تطبيقات أخرى ولكنه يحتوي على معلومات عن أصناف البيانات التي يحتويها المخطط.
  TABLES: ويشتمل على العناصر الاتية:
Application ID (APPID) tabl
Block Record (BLOCK_RECORD) table
Dimension Style (DIMSTYPE) table
Layer (LAYER) table
Linetype (LTYPE) table
Text style (STYLE) table
User Coordinate System (UCS) table
View (VIEW) table
Viewport configuration (VPORT) table
BLOCKS: ويشتمل على جميع المعلومات الهامة التي تحتويها أجزاء المخطط.
ENTITIES: ويتحوي على المعلومات التي تشير اليها الـ Blocks بتفاصيلها أي أنها جزء فرعي من الـ Blocks.
OBJECTS: ويحتوي على العناصر غير المرئية التي استخدمت في المخطط كالـObjectARX
THUMBNAILIMAGE : ويحتوي على صورة للـ DXF file
END OF FILE
وعموما يمكن الاستفادة من ملفات الـ DXF بواسطة طرق أقتطاع الجمل وتحويلها الى ارقام في لغات البرمجة كلغة #C أو لغة فيجول.

الدائرة الالكترونية لربط الـمنفذ المتوازي - Electronical interface for parallel port

مخطط الـ PCB الكامل للواجهة الالكترونية المختصة بربط الـ Parallel port بالـ Stepper motor
تلخص فائدة الدائرة أعلاه بنقل الاشارات من الحاسوب وتضخيمها وعزلها لتكون ملائمة لتشغيل ماطور ستيبير (Stepper motor) ولحماية الاجزاء والدوائر الداخلية للحاسوب من الاشارات والتشويش الاتي من الماطور في الوقت نفسه.

تأخذ الدائرة الالكترونية أسلاكها مباشرة من المنفذ المتوازي-Parallel port وذلك عبر سلك مصنوع محليا (تتوفر المنافذ لدى المحال التجارية المختصة ببيع معدات الاتصالات) أو عن طريق إستخدام سلك جاهز يرتبط من جهة الثقوب بإسلاك صغيرة تتصل بالدائرة الالكترونية.
ويمكن إسستخدام قطعة  التجارب (Bread-board) أو القطعة المثقبة أو إعطاء الدائرة لشركة مختصة بطباعة الدوائر الالكترونية لغرض الحصول على الشكل أعلاه مطبوعا على دائرة.
تتوفر معظم القطع الموجودة في الرسم في كافة أسواق الالكترونيات وبأسعار منخفضة.
وتتكون الدائرة أعلاه مما يلي:
1- منفذ متوازي - باراليل بورت (Parallel port) أو الاسلاك القادمة منه, لنقل الاشارات الاتية من الحاسوب الى الدائرة.

2- 74LS244 address octal buffer line driver - وهو دائرة مضغوطة تنقل العنوان بشكل مباشر من أحد طرفيها الى الطرف الاخر وبدون أي تعديل على الاشارة, غير أن عملية التنقل تمر عبر Buffer فالاشارة الاتية لا تنتقل بذاتها الى مخرج الدائرة وإنما تعمل كمفتاح لإخراج الاشارات من مخارج الدائرة والاتية من مصدر تجهيز الدائرة المغوطة (5 فولت). وتلعب هذه الدائرة بذلك دورا هاما في عزل الاشارات عن دوائر الحاسوب الداخلية, فالحاسوب لن يتعامل بشكل مباشر مع الدوائر ذات التيار او فرق الجهد العاليين.

3- ULN2003- تتكون هذه الدائرة مما يعرف بالـ Darlington array (مصفوفة دارلنگتون) والتي تشتمل على أزواج Darlington التي يتكون كل منها من قطعتي Operational amplifier  والمعروف بتضخيم التيار الكهربائي أو فرق الجهد. فيزداد ربح التيار في الدارينكتون بعد إزدواج المضخمات الى حد كبير جدا يمكن من خلاله أن يتم التحكم بماطور يحتاج تيار عالي عن طريق مصدر يولد تيار قليل.

4-  Stepper motor- أربعة أقطاب للماطور الستيبر تتابع حسب النسق الخاص بها لتنظيم حركة الماطور بالاتجاهين, وتستلم الاقطاب إشارتها من الـ ULN2003.

5- مصادر الطاقة: يجب توفير مصدري طاقة للدائرة أحدهما 5 فولت من أجل دوائر الـ 74LS244 والاخر 12 فولت أو خمسة فولت (حسب حاجة الماطور) من أجل دوائر الـ ULN2003.