قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

   

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 23-10-2013, 05:50 AM المشاركة 9   
افتراضي



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





سلام عليكم
نعم أخي ايضا يستخدم هذا حساس في قياس مسافات ولكن لمسافة قصيرة يعني 4 امتار انظر الى هذا الرابط
http://www.alibaba.com/product-gs/55...measuring.html
ولكن مايتكلم عنه اخ هو حساس ليزر وبتاكيد يكون مدى أوسع
انا رايت جهاز يشبه موبايل ولكنه أصلا جهاز يقيس مسافات عند ضغط على push button يرسل اشارة ليزر وهي يمكن رأيتها بلون أحمر بأتجاه الهدف وعندما تصل الى هدف ترتد الى جهاز ليظهر لك مسافة وبتاكيد هذا نوع يستخدم لقياس مسافات لمسافات طويلة

بحثت عن حساس الذي وضع صاحب الموضوع وهو RF1000 ولكن لم أجد عنه اي شيء
وطريقة برمجة ليس صعب طالما هو يتعامل مع uart ايضا
1- مثلا عند ضغط على سويج ما نخبره بارسال البيانات الى حساس
حساس بدوره يحلل بيانات المرسله له ويقوم بأرسال شعاع ليز ومن مواصفات ليزر أنه احادي موجة قابل لارتداد ويسير بخطوط مستقيمة
وعندما يصطدم بالجسم المراد قياس بعده عنك اي مسافة بينك وبين هدف يقوم ليزر بأعادة البيانات اليك
2- نفعل دالة الانتربت ونضع في داخلها الامر القراءه( )data_laser=uart1_write
حيث يتم قراءه البيانات حرف حرف او رقم رقم ويتم خزنها في مصفوفة ونستخدم في عملية القراءة switch , case
كما بينا ذلك في هذا الرابط
http://www.qariya.com/vb/showthread....881#post799881

3- بتاكيد هو ماقراته هو ايسكي كود فيمكن بعدها عرض البيانات على شاشة في نفس دالة الانتربت او في دالة أخرى

4- بقي شيئ الوحيد
كيف يتم الارسال : حسب شرح انه يرسل بيانات 2 بايت فيها اوامر الارسال يعني فيها الامر بدء وبعض البيانات اخرى ولكن لاحظت وجود البيانات غير معرفة عنها مثل
02H, 10H, 01H, F4H, E7H


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

اعلانات

عبدالله نعمان
:: مهندس متواجد ::
تاريخ التسجيل: May 2006
المشاركات: 173
نشاط [ عبدالله نعمان ]
قوة السمعة:
قديم 23-10-2013, 10:17 AM المشاركة 10   
Smile


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

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

عبدالله نعمان
:: مهندس متواجد ::
تاريخ التسجيل: May 2006
المشاركات: 173
نشاط [ عبدالله نعمان ]
قوة السمعة:
قديم 23-10-2013, 10:21 AM المشاركة 11   
افتراضي


في انتظار ردكم وابداعاتكم يا اهل القريه ..


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 23-10-2013, 03:40 PM المشاركة 12   
افتراضي


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

الموضوع :
عند الارسال لابد ان ترسل 5 بيانات وهي تمثل الاوامر التي على اساسها سوف يكتب الكود ماهي هذه البيانات

STX Parameter data(2Bytes) check
SBUF0 SBUF1 SBUF2 SBUF3 SBUF4


SBUF0 =02 ويعني اشارة البدء

SBUF1 وهي تمثل Parameter وهي مجموعة من الثوابت وهذه هي
00H no use(reserved)
01H laser range finder measure instruction
10H laser range finder measured distance and the distance is effective
11H laser range finder can’t measure distance
00 تعني غير مستخدم
01 تعني اعطاء امر بقياس
وهنا يرجع لك امرين اما
10 وهنا يخبرك انه تم القياس ونتيجه مخزونة في data
واما
11 هنا يخبرك تعذر القياس او خارج نطاق او انه لايمكنه القياس اي خارج المدى
============================================

SBUF2 SBUF3
وهما مخزونه فيهما البيانات ومن خلالها نحصل على مسافة

SBUF4 وتمثل check وحاليا لاأفهم عملها

لتوضيح الامر كما مذكور في مثال
For example:
To send the instruction of measurement to the laser range finder, you need to send a data frame as follows.
02H, 01H, 00H, 00H, 03H
If the laser range finder measured the distance is 500M, so the laser range finder send back a data frame as follows:
02H, 10H, 01H, F4H, E7H
If the laser range finder can’t measure the distance, than it will send back a data frame as follows:
02H, 11H, 00H, 00H, 13H
هنا تم ارسال هذه البيانات
02H, 01H, 00H, 00H, 03H
كما قلنا 02H يعني أبد ء 01H اعطاء أمر بقياس
00H, 00H تمثل البيانات وهي 0 ولاتهمنا الان
ماهي النتيجة المستقبلة افترض هو بالمثال ان مسافة متوقعة =500 متر
وهذه هي النتيجة
02H, 10H, 01H, F4H, E7H
10H يعني تم قياس بنجاح
01H, F4H وهذه تمثل البيانات وهي =500 متر
ملاحظة لو حولت 500 الى نظام سادس عشر لحصلت على 01f4
E7H وتمثل check حاليا لاعرف ماذا يقصد بها

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


الصورة الرمزية عريبى محمود
عريبى محمود
:: ( رحمه الله عليه ) ::
تاريخ التسجيل: Feb 2009
الدولة: لا تسأل الطغاه لماذا طغو بل اسأل العبيد لماذا انحنو
المشاركات: 3,126
نشاط [ عريبى محمود ]
قوة السمعة:
قديم 23-10-2013, 04:47 PM المشاركة 13   
x4


السلام عليكم ورحمة الله وبركاته
---------------------------------
اخى الكريم حسن هادى
يوجد ببرنامج الميكروسى برو اختيار للتحويل بين الانظمة الرقمية يتم كتابة اى نظام
وبالضغط يتم التحويل للانظمة الاخرى


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 23-10-2013, 05:40 PM المشاركة 14   
افتراضي


السلام عليكم ورحمة الله وبركاته
---------------------------------
اخى الكريم حسن هادى
يوجد ببرنامج الميكروسى برو اختيار للتحويل بين الانظمة الرقمية يتم كتابة اى نظام
وبالضغط يتم التحويل للانظمة الاخرى
سلام عليكم
عفوا أخي ما كنت أقصده هو كيف أحول من HEX الى DEC برمجيا اي كود لازم للتحويل لان حساس اعلاه يعطي بيانات ب HEX ولازم أحوله الى DEC لكي يتم عرضة على شاشة
رأيت بأنترنيت انه يستخدم أيبروم اي خزن فيها البيانات وهي أوتوماتيكيا تتحول الى HEX لكي تخزن في ايبروم ولما تقرأ منها البيانات تعطيك بــ dec
انا لم أجرب هذه الفكره ولكن هل هناك طريقة أخرى


عبدالله نعمان
:: مهندس متواجد ::
تاريخ التسجيل: May 2006
المشاركات: 173
نشاط [ عبدالله نعمان ]
قوة السمعة:
قديم 23-10-2013, 09:24 PM المشاركة 15   
افتراضي


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


حسين البغدادي
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2013
الدولة: Baghdad
المشاركات: 61
نشاط [ حسين البغدادي ]
قوة السمعة:
قديم 24-10-2013, 11:53 PM المشاركة 16   
افتراضي


بسم الله الرحمن الرحيم ,,,,,
طبعا الاخوان ماقصروا بالشرح ماشاء الله عليهم بس حبيت اشارك وياهم
في كود تحويل الرقم الهكسا الى عشري ....
بما ان المنفذ التسلسلي يقرا على شكل character ويقوم بقرائه حرف تلو الاخر
اذن نستطيع البرمجه واستخراج الرقم العشري كما موضح في الصوره





الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 05:02 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)