نظرسنجي
نظر شما در مورد سايت چيست؟

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

تقويم
<    «  فروردين 1403  »    >
شیدسچپج
 123
45678910
11121314151617
18192021222324
25262728293031
مطلب تصادفی
پست تصادفي:
» آموزش سروو موتور ها در ربات (Servo Motors in Robots) ...
» الگوريتم ها و مقدماتي براي ربات مين ياب ...
» چگونه از AVR در محیط صنعتی بهره ببریم؟
» رباتي كه شكلات درست مي كند!
» ششمین دوره مسابقات بین المللی ربوکاپ ایران (IranOpen-2011) ...
» بروزرسانی قوانین لیگ مین یاب در تاریخ 28 دی ماه ...
» آخرين نسخه كدويژن (2.4.04a) محبوب با كرك كامل ...
» مجله بسيار عالي (Robotics Automation Magazine 2011)
» مدار نمايش اعداد از طريق سون سگمنت
» كليد حساس به نور
رتبه در الكسا



 

ارتباط سنسور SRF02 با کامپیوتر

 

 

 

سنسور SRF02 يكي از سنسور هاي ارزان قيمت (22 هزار تومان) و بسيار خوب براي فاصله سنجي با دقت سانتي متر است.
در اينجا برنامه اي كه توسط خودم تست و 100 درصد بدون مشكل بوده است، ارائه مي شود. اين برنامه تحت C#.net 2010 نوشته شده و به صورت Real time اطلاعات فاصله و شماره سنسور را نمایش می دهد . با استفاده از يك ماژول USB به سریال مي توانيد خیلی راحت به USB وصل کنید !!

 

از لحاظ توضیحات نرم افزاری این موارد قابل ذکر است:



نرم افزار کاملا به زبان ساده نوشته شده و در نرم افزار شما قادر هستید سنسور را در هر لحظه خوانده و مشاهده کنید، از طرفی قادر هستید تا آدرس سنسور را به آدرس دلخواه خودتون تغییر بدهید.

در ابتدای کار یک آرایه دو بعدی از نوع بایتی حاوی (آدرس سنسور و درخواست نوع اطلاعات که در اینجا درخواست به سانتی متر است، به صورت هگز) تعریف می شود.

سپس با دستور Write و متد Oveload دوم آن با یک بازه 1 میلی ثانیه ای درخواست ارسال شده است.(ایجاد وقفه با system.Threading.Thread.Sleep تعریف شده است.)

نهایتا چون سنسور 2 بار اطلاعات را در قالب بایت ارسال می کند، دستور Readbyte در برنامه 2 بار نوشته شده است.

برای پرهیز از هنگ کردن برنامه، من timeout خواندن اطلاعات را تعریف کردم(دستور های serialPort1.ReadTimeout = 1; و serialPort1.WriteTimeout = 20; )

این زمان را شما در ابتدای برنامه می توانید تغییر دهید.... (در صورتی که مشکلی پیش آمد زمان را که بر حسب میلی ثانیه هست تغییر دهید.)

همچنین دستور ReadByte را در دستور try قرار دادم تا مشکلی ایجاد نشود.

تمامی تنظیمات ارسال دیتا و تغییر عدد سنسور نیز به همین شکل اما در آرایه ای جدید تعریف شده است که در صورتی که PDF فارسی جناب ilgar را مطالعه بفرمایید، به راحتی متوجه می شوید.

به مثال زیر که بخشی از برنامه است دقت کنید:

 

byte[] Sensor1 = new byte[8];

Sensor1[0] = first_value;
Sensor1[1] = 0xA0;
Sensor1[2] = first_value;
Sensor1[3] = 0xAA;
Sensor1[4] = first_value;
Sensor1[5] = 0xA5;
Sensor1[6] = first_value;
Sensor1[7] = final_value;



if (serialPort1.IsOpen == true)
{
serialPort1.Write(Sensor1, 0, 1);
System.Threading.Thread.Sleep(1);
serialPort1.Write(Sensor1, 1, 1);
System.Threading.Thread.Sleep(1);
serialPort1.Write(Sensor1, 2, 1);
System.Threading.Thread.Sleep(1);
serialPort1.Write(Sensor1, 3, 1);
System.Threading.Thread.Sleep(1);
serialPort1.Write(Sensor1, 4, 1);
System.Threading.Thread.Sleep(1);
serialPort1.Write(Sensor1, 5, 1);
System.Threading.Thread.Sleep(1);
serialPort1.Write(Sensor1, 6, 1);
System.Threading.Thread.Sleep(1);
serialPort1.Write(Sensor1, 7, 1);
return;
}

 

 

در اینجا اگر به ابتدای سورس دقت کنید، در واقع من یک بایت را با اسم first value انتخاب کرده ام که با دستور Switch case در خطوط بالاتر سمپل، پر می شود.

این دستور switch case شماره ابتدایی سنسور را مشخص کرده است .

مقدار final value نیز از comboBox مقدار مورد نیاز را با استفاده از دستور Switch case به خود می گیرد و نهایتا در آرایه جایگزاری می شود.

هدف از این کار تغییر آدرس (شماره سنسور) از هر آدرسی به آدرس دیگر است.

دلیل موفقیت من، تسلط به ز بان c و basic بود که ترجیحا آنرا در C#.net نوشتم و شما می توانید به راحتی آنرا در VB.net نیز شبیه سازی کنید.


دقت فرمایید اجرای این برنامه فقط در C#.net نسخه سال 2010 انجام گیرد و در نسخه های قدیمی تر، با مشکل مواجه می شوید.... (در حقیقت visual Studio 2010 را باید نصب کرده باشید.)

ضمنا برای ارتباط سخت افزاری هم از ماژول آماده FT232 استفاده کنید و tx ماژول را به Rx سنسور و Rx ماژول را به TX سنسور بدهید. که به دلیل سادگی مدار آنرا دیگه قرار ندادم...

در صورتی هم که پورت کام سیستم را می خواهید استفاده کنید، از یه max232 به عنوان واسط استفاده کنید تا سطح ولتاژ پورت com را به سطح TTl بیاره.....
موفق باشید.
محمدرضا ناظم
برنامه فوق را در پیوست دریافت کنید :

 

 

دانلود این فایل فقط برای اعضای سایت می باشد. اگر شما هم می خواهید دانلود کنید، باید در سایت عضو شوید.

 

همچنين مي توانيد  PDF ديتاشيت فارسي شده SRF02 به همراه روش ارتباط با آي سي AVR به زبان بيسيك را از لينك زير دريافت كنيد:

دانلود اطلاعات فارسي+ سورس بسكام:

 

 

 

دانلود این فایل فقط برای اعضای سایت می باشد. اگر شما هم می خواهید دانلود کنید، باید در سایت عضو شوید.

   
 ( امتیازها: 10)
          بازديدها: 24559    نظرات:5
avatar

گروه کاربري: عضو سايت

مطالب: 0

نظرات: 3

انتخاب:

میهمان     

تاريخ: 15/11/1390 - 05:14

ممنونم
من خیلی دنبال این برنامه می گشتم
من برنامه نویسی سی شارپ را تا حدی بلدم ولی بقیه یه کار را نه!
چند تا سوال داشتم ازتون


این روش برای 16 تا سنسور کار می کند اگر تعداد بیشتر باشد مثلا 100 تا یا 1000 باید از چه کنترولری استفاده کرد و چطور ؟
اگر از سنسور با رنج بزرگتری استفاده کنیم مثلا زیر 3 متر کدام سنسور بهتره و همین برنامه کار می کنه؟
من از دوستان شندیده بودم که قیمتی حدود هزار تومان دارد هر سنسور آیا درست است ؟ میکرو چطور ؟
من پس از خرید میکرو و سنسور چطور می توانم میکرو را پروگرام کنم؟آیا کد هایی که در بخش دوم قرار دادی برای پرگرام کردن کافی است؟

ببخشید که سوالات من زیاد است :D
اگر فرصت پاسخ گویی را ندارید و کتاب یا مقاله ای مرتبط با سوال من دارید لینک را موهبت بفرمایید

پیشاپیش متشکرم

[پاسخ]
avatar

گروه کاربري: عضو سايت

مطالب: 0

نظرات: 1

انتخاب:

mohamamd_k     

تاريخ: 17/06/1391 - 23:12

salam
mersi az site be in khubi
man mikham ba bascom baraye sensore oil temp va press barname benevisam
lotfan rahnamayi konid%3F
ya inke 1tozih koli bedin ke chejuri baraye 1 sensor bayed barnamaro shuru kaard%3F%3F
mersi
[پاسخ]
avatar

گروه کاربري: عضو سايت

مطالب: 0

نظرات: 10

انتخاب:

hamed_sxz     

تاريخ: 15/07/1391 - 12:29

smile-10
[پاسخ]
avatar

گروه کاربري: ميهمان

مطالب: 0

نظرات: 0

انتخاب:

مهران چمنی     

تاريخ: 9/09/1391 - 22:40

کاش به زبون کدویژن نمینوشتی smile-06
چیزی بلد نیستم
میتونی به زبون بیسیک بنویسی؟
چطوری یک comboboxرو برای تعیین پورت ها به کار ببرم وا سه کانکت شدن به com
[پاسخ]
avatar

گروه کاربري: ميهمان

مطالب: 0

نظرات: 0

انتخاب:

سیدمحمد     

تاريخ: 21/03/1392 - 18:04

سلام
من تازه عضو شدم....
ازکی میتونم ازامکانات سایت استفاده کنم....
[پاسخ]
ارسال نظر

 نام شما:  ايميل:
تصوير کد:
پنج ضربدر سه

کد امنيتي:
موضوعات
باز کردن همه شاخه ها | بستن كل شاخه ها

آمار سايت
آمار مطالب:
  يک ساعت پيش: 0
  امروز: 0
  اين ماه: 0
  مجموع مطالب: 95
  کل نظرات: 462



آمار بازديد:
  بازديد امروز: 490
  بازديد ديروز: 132
  مجموع بازديدها: 4685617



آمار کاربران:
  يک ساعت پيش: 0
  امروز: 0
  اين ماه: 1
  مجموع کابران: 11030
  بن شدگان: 4

آخرين عضو مكاترونيك:


naser.s

رتبه گوگل
Display Pagerank