چگونه با سنسور ها کار کنیم


اکثر روباتیک ها بطور کامل طرز کار سنسور ها را می دانند. می دانند که بیشتر سنسور ها مقادیر پیوسته از یک بازه مشخص را دریافت می کنند. بیشتر اوقات بر مبانی فیزیکی مخفی در پس کار آن، از جمله سرعت صوت برای سونار یا دخالت اشعه ی خورشید برای مادون قرمزها هم احاطه دارند. اما هنوز نمی دانند چگونه اطلاعات سنسورها را به فورم ریاضی قابل فهم برای کامپیوتر ها تبدیل کنند. روباتیک ها فقط باید رابطه های شرطی مربوط به سنسور ها، مانند "اگر کم بود آنگاه بچپ بپیچ" و " اگر زیاد بود به راست بپیچ" را بسازند. این برای استفاده عالی است ... اما تا زمانی که شما نخواهید با دقت کنترل کنید. مشکل دیگر با برنامه نویسی بر اساس رابطه های شرطی هم این است که اگر سنسورهای شما مقداری بین دو شرط یا مشترک بین دو شرط را اطلاع دهند، ربات به صورت تشنجی حرکت اضافه ای را انجام دهد ( حرکت نوسانی بیهوده). عجیبتر اینکه، کنترل دقیق در عمل بسیار ساده است.
سه قدمی که باید بردارید اینها هستند:
-دریافت اطلاعات از سنسورها
-ایجاد نمودار (گراف) بر اساس اطلاعات دریافتی
-تعمیم بصورت رابطه ی خطی

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

دریافت اطلاعات سنسورها
کار بسیار ساده ای است، سنسورهای خود را راه اندازی کنید و اطلاعات خروجی آن را در برنامه ایکسل Excel ذخیره کنید. اگر سنسور فاصله دارید ( سونار یا شارپ مادون قرمز)، فاصله ی جسم مقابل و عدد خروجی سنسور را ثبت کنید. اگر فتورسیستور دارید، شدت نور و خروجی را ثبت کنید. اگر سنسور نیروسنج دارید، به آن وزن اعمال کنید و وزن اعمال شده و خروجیسنسور را ثبت کنید. این کارها به طور باور نکردنی سده بودند، اما چند کار دیگر هم مانده که باید به آنها هم توجه کرد.
اول ناپیوسته بودن است. بعضی سنسورها (مانند سونار و شارپ در فاصله ی نزدیک درست کار نمی کنند. فیزیک گیج کننده است من می دانم.
دوم غیر خطی بودن است. برای مثال، خروجی سنسور های شما ممکن است 10و20و30 باشد در حالی که این مربوط به اندازه گیری فاصله های 12 و 50 و1000 سانتیمتر باشد. شما باید به اینگونه نمودار ها توجه کنید. اگرچه معمولا این نزدیک کمترین و بیشتر مقدار قابل اندازه گیری توسط سنسورها اطفاق می افتد.
بعد وجود نویز است. پنج بار اندازه گیری توسط یک سنسور ممکن است به شما پنج مقدار متفاوت اما نزدیک به هم بدهد. این اختلاف مقدار نویز موجود در سنسور های شماست. ممکن است در بعضی سنسور ها بسیار زیاد باشد. راه حل این است که چند بار اندازه گیری کنید و مقدار میانگین را ثبت کنید. توجه داشته باشید که باید آزمایشات را در محیطی شبیه به محیطی که رباط باید در آن کار کند انجام دهید. ممکن است بعضی سازنده های تازه کار فراموش کنند.
آخرین موردی که باید تعیین شود، تعداد نقاط اطلاعات است ( data points) که باید ثبت شوند. برای سنسورهای کاملا خطی شما فقط به دونقطه نیاز دارید و اینکه آن دو نقطه را به هم وصل نمایید. با اینکه این مورد عادی است اما معمولا امکان پذیر نیست، شما باید تعداد بیشتر را ثبت نمایید. شما همیشه باید برای سنسورهای غیرخطی تعداد بیشتری از اطلاعات را ثبت نمایید. اگر سنسور شما فقط در موارد مشخصی خیر خطی عمل می کند، در آن نقاط تعداد خروجی های بیشتریرا ثبت کنید. آشکار است که ثبت تعداد بیشتری از اطلاعات خروجی، دقت بکارگیری سنسور را با لا می برد. با این توصیف آیا شما به ثبت 10000 نقطه برای یک فتورسیستور نیاز دارید؟ این عادلانه است؟
تهیه نمودار برای اطلاعات خروجی سنسور
بسیار خوب حالا شما اطلاعات خروجی سنسور هایتان را در دو ستون نرم افزار اکسل دارید، می خواهید انها را به یک نمودار تبدیل کنید. این کار ساده ای است.
1- در نرم افزار اکسل ستون اولی که داده ها را در آن ثبت کرده اید را انتخاب کنید.
2- کلید ctrl را نگه دارید و سپس ستون دوم رانیزانتخاب نمایید. اینک شما باید دو ستون انتخاب شده داشته باشید.
3- در منوی بالا گزینه ی مربوط به نمودار Graph را انتخاب کنید.
4- یک پنجره باید باز شود. XY scatter را انتخاب کنید. سپس شکل نمودار خط و نقطه را در شکل های کناری انتخاب کنید.
5- اگر می خواهید داده ها را با هم مقایسه کنید گزینه ی Series و در غیر این صورت فقط Data range  را تنظیم نمایید. حال از انتخاب بودن گزینه ی Series in: column اطمینان حاصل کرده و Next را بزنید.
6- تنظیمات دیگر را به دلخواه تغییر دهید و کار را پایان دهید.
7- هنوز نتوانسته اید؟ فاین تمام شده را از مرجع در ادامه ی مطلب دانلود کنید.

در اینجا چند گراف که ممکن است شما شبیه به آن را تهیه کرده باشید را می بینید.



نمودار بالا مربوط به یک سنسور کاملا خطی است. یک خط مستقم  که می شود با معادله ی y=x*c+d فاصله را بر حسب داده ی ورودی تعیین کرد.



نمودار بالا ناپیوسته و غیرخطی است. شما در شروع و پایان این نمودار شاهد اطلاعات گیج کننده ای هستید. این بخاطر ان است که سنسور نمی تواند فاصله های خیل کم و خیلی زیاد را تشخیص دهد. اما این ساده تر از آنی است که به نظر می رسد. قسمت ها اول و آخر را در نظر نگیرید و حذف کنید سپس خواهید دید که نمودار چقدر ساده و شبیه معادله خیر خطی x=y^2 می شود. شما باید مطمئن شوید سنسور شما در معرض اندازه گیری فاصله های دورتر و نزدیک تر از حیطه ی در نظر گرفته شده قرار نمی گیرد، در غیر این صورت سنسور نمی تواند فاصله ی حقیقی را با این معادله ی ساده تشخیص دهد.



نمودار بالا با اینکه ساده به نظر می آید، می تواند کمی مشکل ساز بشود. شما دو خط خواهید داشت با دو معادله مختلف. نیمه ی اول معادله ی x=y^2 دارد و نیمه ی دوم یک معادله ی خطی خواهد داشت. شما باید شرطی بکار ببرید که در نتیجه ی آن مشخص شود کدام معادله باید مورد استفاده قرار گیرد. اما اگر دقت زیادی مد نظر شما نیست می توانید هر دو را در یک معادله ی خطی تقریب بزنید.

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

1- اگر نمودار شما ناپیوسته ازآب در آمده  روی خط آن کلیک راست نموده و گزینه ی "add trendline . . " اگر نمودار شما دنباله ی نمودار قبلی نیست نقطه ی عطف را پاک کنید و آن را به دو خط پیوسته تبید کنید و برای هر یک یک معادله تشکیل دهید.

2- حالا Trend/Regression را انتخاب نمایید. فقط بخاطر داشته باشید، اگرچه معادلات پیچیده تر دقت را بالا می برد اما مدت زمان محاسبه ی پاسخ نیز طولانی تر میشود. و میکروکنترلر معمولا محاسبات خط و نمایی را انجام می دهد.
3- حال New trendline و  'Foemat Trendline' را انتخاب کنید. یک پنجره ی جدید باز می شود.
4- به قسمت Option بروید و گزینه ی 'Display equation on chart' راانتخاب و فال کنید.
- کار شما تمام شد. معادله ای که ربات شما به آن نیاز دارد اینک تولید شده و کافی است مقدار سنسور خروجی سنسور را در ورودی آن قرار دهید تا فاصله، شدت نور و یا هر چیز دیگری را برای شما تعیین کند.