![]() |
#1
|
|||
|
|||
![]()
بسم الله الرحمن الرحيم
سوف نتحدث فى هذه المجموعه ان شاء الله عن التاتش Touch وانواعه وكيفية التعامل معه من خلال لغه الميكروسى MikroC وباستخدام ميكروكنترولر من عائلة PIC وسوف يكون هناك تطبيق عملى ان شاء الله لهذه الانواع اولا دة رابط الجزء الاول وهو التعريف بالانواع http://www.dbaasco.com/vb/showthread.php?t=8009 ثانيا فى هذا الجزء سوف نتحدث ان شاء الله عن Resistive Touch فى البداية سوف نتحدث عن كيفية سير الشرح 1 - شرح المبادئ وكيف تعمل هذه التقنيةومما تتكون. 2 - مميزات وعيوب هذا النوع. 3 - من اين يمكن الحصول عليها. 4 - فديوهات تجربة لها. 5 - اكواد الميكروسى وكيفية استخدامها مع ملف لمخطط الدائرة. ((1)) من اسم هذه التقنية نعلم انها تعمل بالمقاومة ولكن كيف هذا بكل بساطة هى مجرد مقاومة متغيرة شفافة ان صح التعبير ![]() فالكهرباء تدخل من طرفين احدهم سالب والاخر موجب ويتم قياس الفولت من الطرف الاوسط وعلى حسب مكان الزراع تكون قيمة المقاومة وبالتالى قيمة الفولت ايضا ![]() ولوحة اللمس تعمل بنفس الطريقة فلا فرق ولكن كما قلت شفافة انظرو الى الصورة التالية ![]() هكذا تعمل بالضبط ولكن هذا فى محور واحد فقط ((سيتم التوضيح بعد قليل)) ولمعرفة ما اقصدة هنا يجب ان نعلم مما تتكون هذه الوحة هى تتكون من 3 طبقات طبقتان تعملان كا مقاومة متغيرة شفافة يتكونوا من البلاستيك المغطى بمواد موصلة ((لن ندخل فى التفاصيل اكثر)) وطبقة فى الوسط تتكون من كرات ومساحات فارغه تعمل على فصل الطبقتين عن بعضهم البعض وعند الضغط على اى طبقة من الاثنين تلتصق بالاخرى ويتم قياس الفولت وعند زوال الضغط تعمل الكرات فى الطبقة الوسطى على اعادة الطبقتين الى موضعهما لهذا تعمل هذه التقنية مع اى شىء سواء صوابعنا او اقلام او اى شىء يمكنة الضغط على الوحة انظروا الى الصورتين ![]() كما نرى عند الضغط تنزل احدى الطبقات للمس الاخرى ويتم قياس الفولت ويتم تحديد مكان الضغطة او اللمسة على حسب قياس الفولت وهنا ايضا ![]() وهنا ايضا ![]() فكما نرى طبقة تاخذ موجب من طرف وطرف اخر سالب والطبقة الاخرى نقيس من خلالها الفولت لتحديد مكان اللمسة بالظبط اذن يمكن القول ببساطة لكل لمسة قيمة فولت تشير الى مكانها اذا ماذا نحتاج الان !! لنذهب ونحول كل اغرادنا لكى تعمل باللمس :lul::fig: لا انتظر هناك مشكلة وهى انك ان قمت بقياس الفولت من اللوحة من طبقة واحدة فهذا يعنى انك حددت مكان اللمسة فى اتجاة واحدة اى فى بعد واحد وهذا يعنى انك حددت مكان اللمسة فى البعد الافقى او البعد الراسى بمعنى اخر مكان اللمسة بالطول او بالعرض وهذا غير دقيق بالمرة وهذا لن يكفى لاننا هكذا لم نحدد مكان اللمسة كا نقطة محدد على الشاشة فقط نقطة فى بعد واحد وهذا لا يكفى بل يجب تحديدها كا نقطة تقع بين محورين اى احداثياتها فى المحور X والمحور Y اى مكان اللمسة بالطول ومكانها بالعرض لنحدد مكان النقطة بالظبط على الشاشة او اللوحة ولتوضيح اكثر تخيل معى اننا قمنا بقياس الفولت الناتج من للمسة من خلال طبقة من اقصى اليمين وكان القياس يساوى 5 فولت ولكن اذا كانت اللمسة فى الاعلى وكانت اقصى اليمين سيكون القياس ايضا 5 فولت واذا كانت اللمسة فى الاسفل وكانت اقصى اليمين سيكون القياس ايضا 5 فولت ولهذا لن تستطيع ابدا تحديد النقطة الا فى اتجاة واحد وهو اقصى اليمين او اقصى اليسار ولن تسطيع تحديدها اذا كانت فى الاعلى او الاسفل وهذا ما ااقصدة بالظبط ![]() اذن ما الحل لهذه المشكلة الحل بسيط جدا وهو ان نستعمل طبقتان فى نفس الوقت طبقة نقيس من خلالها قيمة اللمسة فى محور X ((يسارا ويمينا)) وطبقة نقيس من خلالها قيمة اللمسة فى محور Y ((اعلى واسفل)) انظر الى الصور التالية ![]() هنا ندخل الفولت على الوحة ونقيس قيمة الفولت لنحدد الاحداثيات بالنسبة للمحور X ((يسارا ويمينا)) وهنا ![]() ندخل الفولت على الوحة ونقيس قيمة الفولت لنحدد الاحداثيات بالنسبة للمحور Y ((اعلى واسفل)) وعند جمع الطبقتين معا هنا يمكننا قياس الاحداثيات لكلا المحورين ويمكننا الان تحديد مكان اللمسة بدقة على اللوحة سواء اعلى او اسفل او يمينا او يسارا فاذا كان القياس فى اقصى اليمين سنحتاج لمعرفة ان كان فى الاعلى ام فى الاسفل وهنا يمكننا تحديد نقطة اللمسة ولهذا نحتاج الى طبقتين وهما المكونين للوحة كما قلت فى الاعلى وهناك طبقة فى الوسط بينهم وذكرت الهدف منها ايضا اذن عندنا طبقة بنقيس من خلالها المحور X وطبقة بنقيس من خلالها المحور Y ودة فديو لتوضيح اكثر http://www.youtube.com/watch?v=Sml6f...0CCB5&index=17
______________________________________________________________X ............................................................................................................ ______________________________________________________________Y ((2)) مميزات هذا النوع : 1 - رخص ثمنة . 2 - يمكن استخدام اى شئ للتعامل معه مثل الاصابع والاقلام الى اخرة . 3 - الدقة الى حد ما . 4 - سهولة تصنيعه . 5 - سهولة استخدامة . 6 - يمكن تركيبة ولصقة على اى شىء. 7 - لا يتاثر بالماء . عيوب هذا النوع : 1 - يتلف مع الوقت والاستعمال بشكل اسرع من غيرة . 2 - اذا تلفت نقطة واحدة منة يتلف كلة . 3 - لا يعمل مع اكثر من للمسة فى نفس الوقت بطريقة مباشرة . 4 - يحتاج الى الضغط علية الى حد ما لكى يتم الاحساس باللمس . 5 - يستهلك الكثير من الكهرباء بالمقارنة مع انواع اخرى . 6 - لا يمرر الضوء بنسبة %100 بل اقل من ذلك . ______________________________________________________________X ............................................................................................................ ______________________________________________________________Y ((3)) يمكن الحصول على هذا النوع عن طريق بعض المحلات والشركات مثل رام http://ram-e-shop.com/oscmax/catalog...oducts_id=2253 ولكن ثمنه فى رام 65 جنية وهذا لا يحقق الاسم الموجود فى العنوان ودعاً Push Button بكل بساطة اذهب الى اى محل لتصليح الموبايل وقل لة اريد التاتش بتاع اى موبايل صينى او لو الراجل بيفهم ههههههه ولونو نادر قلة تاتش Resistive بتاع موبايل ولمعرفة انه Resistive يجب ان يعمل بالقلم او بالاصبع او اى شىء اخر وليس الاصبع البشرى فقط او اقلام خاصة بة فهذا نوع اخر وهكذا نعرف الانواع التى تعمل بهذا النوع من التاتش ستجد سعر الصغير منة ب 5 جنية واكبر حجم كبير جدا ب 10 جنية وهكذا يمكننا التعويض عن الازرار وعن الكيباد بسعر رخيص جدا وبشكل اقوى والتصميم على مزاجنا وكمان شىء حديث ونقدر نقول بثقة ودعاً Push Button :lul::lul::lul: ______________________________________________________________X ............................................................................................................ ______________________________________________________________Y ((4)) اول فديو ودة تجربتى الخاصة http://www.youtube.com/watch?v=MOCys...ature=youtu.be
وهنا فديو اخر مع تركيبة على الشاشة والتحكم فى الليد http://www.youtube.com/watch?v=MfkL9...ature=youtu.be
وهنا فديو لفكرة عمل الكيباد فقط قم بالرسم على ورقة ولزقها اسفل اللوحة او اطبع صور وقم بلزقها ايضا او ورق عادى اى شىء يمكنك الطباعه والرسم علية والازرار بالحجم والون والشكل الذى تريد http://www.youtube.com/watch?v=0AQKXsbQ5Ug
______________________________________________________________X ............................................................................................................ ______________________________________________________________Y ((5)) قبل الاكواد لازم نعرف شىء مهم عن النوع دة اولا هذا النوع ينقسم الى ثلاثة انواع وكلهم يادون نفس الغرض مع امكانيات اكثر النوع الاول يكون ب 4 اطراف فقط وهذا ما نتعامل معه هنا . النوع الثانى يكون ب 5 اطراف وسوف نتعرف علية . النوع الثالث ب 8 اطراف وسوف نتعرف علية . النوع الاول هو ما كنا نتحدث عنة طوال هذا الموضوع وهو المتكون من طبقتين يتم من خلالهما قياس الفولت وتحديد اين تم اللمس ![]() ولهذا له 4 اطراف فقط لكل طبقة 2 طرف اما النوع المكون من 5 اطراف فهو بكل بساطة عبارة عن طبقة واحدة لها 4 اطراف وهم لتوصيل الفولت موجب وسالب لكل محور ويتم التبديل فى كل مرة نقوم فيها بالقياس اى مرة نوصل السالب والموجب للمحور Y ومرة اخرى للمحور X اما الطرف الخامس فا من خلالة يمكننا قياس الفولت للمحورين اما النوع الثالث ذو 8 اطراف فهو مثل الرابع ولكن بدقة اكثر منة وطبقات مقسمة ناتى الان الى الجزء الخاص بالتعامل مع اللوحة وبرمجتها وما الى ذلك فى البداية يجب ان نعلم اننا سوف نحتاج الى قناتان من محول ADC Module قناة للمحور X وقناة للمحور Y هذه صورة لاحدى هذه الوح ![]() وكما نرى هناك 4 اسلاك وكما قلت فى الاعلى لماذا هم 4 سوف نقوم بتوصيل هذه الاسلاك الاربعه باى سلوك عادية لكى تلحم على البوردة او يمكننا استخدام محول مثل هذا ![]() كما تريد المهم توصل السلوك للوحة بالنسبة لمعرفة اطراف الطبقات اى الطبقة الخاصة بالمحور X والطبقة الخاص بالمحور Y لان كل طبقة لها 2 طرف بكل بساطة اول طرف وثالث طرف خاصين بالطبقة Y والطرف الثانى والرابع خاصين بالطبقة X لا توجد قطبية بينهم مثل هذه الصورة ![]() ناتى الان الى كيفية التعامل معها وكيفية كتابة الكود الامر فى غاية البساطة والسهولة سوف نقوم بادخال سالب وموجب على اطارف الطبقة X وبعد ذلك نقوم بالقياس من خلال احد اطراف الطبقة Y وبعد ذلك نقوم بعكس العملية اى نقوم بادخال سالب وموجب على اطراف الطبقة Y ونقوم بالقياس من خلال اطراف الطبقة X وهكذا باستمرار نحصل على الحداثيات من المحورين ولفعل هذه المهمة هناك طريقتين الاولى وهى الافضل والادق والاصح ان نقوم بصنع دائرة تتكون من 5 ترنسيزتورات مع بعض المقومات وهذه صورة الدائرة ![]() الجزء المظلل بالون الاسود وهذة الطريقة تعطى دقة وتوفر طرفين من الميكرو بحيث انك ب 2 طرف تتحكم فى دخول وخروج الكهرباء من والى اللوحة والطرفين الاخرين تقيس من خلالهما الفولت وتقدر الاحداثيات وبهذه الطريقة سنيتهلك 4 اطراف فقط من البك وهذه الدوائر تباع جاهزة لمن يريدها http://www.mikroe.com/add-on-boards/...troller-proto/ او هنا من رام http://ram-e-shop.com/oscmax/catalog...roducts_id=822 وهناك طريقة اخرى ولكن تستهلك 6 اطراف 4 للكهرباء الخاصة بالوحة و2 لقياس الفولت للطبقتين وهذه هى الدائرة التى استخدمها انا شخصيا ![]() يجب توصيل 2 مقاومة 10 كيلوا على الارضى على كل قناه لكى تعمل الدائرة باستقرار حمل الكود من هنا وقمت باستخدام PIC16f877a وكريستالة 4 ميجا وهذا هو الكود كود:
#define X1 PORTB.f0 #define X2 PORTB.f1 #define Y1 PORTB.f2 #define Y2 PORTB.f3 int natg,natg2; char txt[7],txt2[7]; void getX(){TRISB.f2=1;TRISB.f3=1;TRISB.f0=0;TRISB.f1=0;X1=0;X2=1;natg=ADC_Read(0);} void getY(){TRISB.f2=0;TRISB.f3=0;TRISB.f0=1;TRISB.f1=1;Y1=0;Y2=1;natg2=ADC_Read(1);} void AD(){ getX();getY(); } void main(){ trisb=0;portb=0; ADC_Init(); while(1){ AD(); if(550>natg&&natg>300&&550>natg2&&natg2>300){PORTB.f7=~PORTB.f7;delay_ms(350);} } } فى البداية قمت بالتعويض عن اسماء الاطراف ب X1 , X2 , Y1 , Y2 لكى نعمل بسهولة وبعد ذلك قمت بتعريف المتغيرات ثم قمت بعمل دوال void getX و void getY وبكل بساطة عند قياس المحور X اقوم بجعل اطرافة خرج واقوم باخراج 0 فولت على طرف و5 فولت على طرف اخر للمحور X ثم اجعل اطراف المحور Y دخل حتى لا تؤثر على القياس واقوم بالقياس من القناة الاولى والى متوصلة على طرف واحد من المحور Y وبعد ذلك احفظ الناتج فى متغير natg واقوم بعد ذلك بتكرار العملية ولكن معكوسة اى الدخل خرج والخرج دخل وهكذا وبعد ذلك جعلت البورت b خرج وقمت بعمل حلقة تكرار ثم الذهاب الى الدالة AD لكى تقوم بالحسابات وتعود لى بالاحداثيات وللعلم الاحداثيات تاتى على شكل رقم يقع بين 0 الى 1023 وهى تعبر عن 0 فولت الى 5 فولت كما نعلم جميعا وبعد ذلك اختبر النواتج اذا كانت تقع بين ارقام محددة يقوم البك بانارة الليد او ينفذ اى تعليمة تريدها ولكن بهذه الطريقة يكون القياس صعب بعض الشىء لاننى احتاج الى العرض على شاشة لكى احدد اين بالزبط يمككنى ان احدد مكان اللمس المطلوب لاضاءة الليد هناك اكثر من طريقة لحل هذه المشكلة فمثلا اذا كنت ستركب اللوحة على شاشة ونريد التعامل بالبكسل اى اقول لة اذا كان القياس من البكسل كذا لكذا قم بالامر الاتى اى تحويل الفولت الى وحدة البكسل بكل بساطة نقوم بهذا الامر بعد قراءة الاحداثيات اى داخل دالة AD كود:
void AD(){ getX();getY(); natg = (natg * 128) / 1024; natg2 = 64 -((natg2 *64) / 1024); } بهذه الطريقة نسطتيع التحكم من خلال البكسل اى بدل القول اذا كان القياس يقع بين 0 الى 1023 لا سنقول مثلا اذا كان يقع بين 30 الى 100 بكسل جيد حتى الان ولكن اذا احتجنا التحويل الى وحدة اللملى متر حيث اننا لا نريد التحكم من خلال شاشة بل صورة مطبوعة اسف لوحة اللمس بكل بساطة اكتب قياس الطول الخاص بك بالمللىمتر او اى وحدة تريد مكان 128 والعرض ايضا مكان 64 وهكذا يتم التوحويل والقياس باى وحدة نريد وللعلم هناك مكتبة خاصة بهذه الجزئية داخل الميكروسى ولكن تعمل على دائرة الموجودة باالعلى بالترانزيستورات وسوف اقوم بشرحها ان شاء الله تم الامر بحمد الله اذا كان هناك اى شىء صعب ويحتاج للشرح فلا تترددوا وان كان الشرح صعب ساحاول ان اشرحة بشكل افضل ان شاء الله لنرى هل فهمتم الموضوع ام لا اولا .. لان الصراحة انا حاسس انوا مش كامل او صعب او فية غموض زيادة عن اللزوم |
#2
|
||||
|
||||
![]()
الحق اعملى كوباية شاى بسرعة واجى افهم الدنيا
بس بجد عن نظرة سريعة واضح ان الشرح قوى جدا بسم الله ماشاء الله ربنا يحفظك ويبارك فيك جزاك الله خيرا لى عودة مرة اخرى ولي الشرف بانى اول من يرد |
#3
|
|||
|
|||
![]()
بسم الله الرحمن الرحيم
الله يكرمك يا بشمهندس عمرو دة من كرم اخلاقك ربنا يزيدك والشرف لى انا يا هندسة بارك الله فيك |
#4
|
||||
|
||||
![]()
بارك الله لك اخى وفعلا كما قال الاخ عمرو محتاج كوب شاى وقرأته بتمعن وفهمه جيدا
ولنا رجعه للاستفسارات |
#5
|
|||
|
|||
![]()
بسم الله الرحمن الرحيم
ان شاء الله يكون سهل وواضح يا بشمهندس واى استفسارت انا تحت امرك ان شاء الله |
#6
|
|||
|
|||
![]() ![]() اى مكان اجيب منو المحول دة لان الشغل عليها و هى كدة هايكون صعب و انا دورت فى رام و النخيلى و الجمال و كل المحلات الى موجودة فى باب اللوق و ملقتش خالص ![]() |
#7
|
|||
|
|||
![]()
http://imageshack.us/photo/my-images/707/0910503l.jpg/
السلام عليكم و رحمة الله و بركاتو انا كنت طالب اشترى منين المحول دة لانى مش لقية خالص فى باب اللوق شكرا ليك و على فكرة انت ممتاز فى الشرح و ربنا يكرمك و شكرا على المجهود الكبير اوى دة |
#8
|
|||
|
|||
![]()
سلام عليكم
كيف يمكنني رسم مستطيل يظهر فيه led 1 led2 و تظهر عند بداية ؟ كيف استطيع معرفة مكان الضغط بالظبط؟ شكرا |
#9
|
|||
|
|||
![]()
شكرا درس رااااااائع
|
#10
|
|||
|
|||
![]()
بسم الله الرحمن الرحيم
اخى asdasd123456 الله يكرمك يا بشمهندس بالنسبة لمشكلتك فانا شخصيا لم استخدم هذا المحول بل قم بالحام على اطراف التاتش واستخدمت سلك سماعه بتاعت الكمبيوتر لانة رفيع جدا ومناسب ولكن هناك طريقة اخرى ايضا وهى عمل PCB بسيط جدا يكون بمقاس اطراف الخرج بتاع التاتش والناحية الثانية يكون الشكل اكبر شوية زى الصورة دى ![]() من ناحية للتاتش ومن ناحية تعرف تلحم عليها عادى يعنى انت الى هتعمل المحول بنفسك بالتوفيق ان شاء الله اخى nc56 هذا سهل جدا ولكن ملا تعلمة ان هذه الشاشة ليست عادية بل هى graphic lcd اى يمكن عرض صور عليها وانت ممكن تعمل دة بكل سهولة وهو انك تصمم صورة على الكمبيوتر وتطبعها وتلزقها خلف التاتش بكل بساطة بالتوفيق ان شاء الله اخى محمد العربى بالتوفيق يا اخى ان شاء الله شكرا جزيلا لك |
![]() |
مواقع النشر (المفضلة) |
أدوات الموضوع | |
انواع عرض الموضوع | |
|
|