توجه :
 
 چنانچه مفاهیم یا عبارت ها و اصطلاحات به کار رفته در این صفحه را متوجه نمی شوید، می توانید مطالعه خود را از اولین جلسه آموزشی رباتیک شروع نمایید. بدین منظور روی لینک زیر کلیک فرمایید:
 
 
همچنین چنانچه بخشی از مطالب را قبلا خوانده اید، برای مشاهده فهرست موضوعات جلسات آموزشی رباتیک، لطفا روی لینک زیر کلیک فرمایید:
 
 
در این بخش از سایت رشد، مطالب آموزشی در زمینه رباتیک با زبان بسیار ساده و بر مبنای مطالبی که در سنین راهنمایی آموخته اید ارائه شده و در هر جلسه مطالب جدیدی آموزش داده شده اند.
 آخرین مطالب
 جلسه‌ي سي و ‌يكم
جلسه‌ي سي و ‌يكم
تنظيم نرم افزاري پروگرامر در CodeVision، ساختار‌هاي كنترلي، ساختار if_else و ....

جلسه‌ي سي‌ام

صفحه‌ي اصلي رباتيك

جلسه‌ي سي و دوم


به نام خدا

با سلام خدمت همه‌ي دوستاي خوبم. اميدوارم خوب و خوش و سلامت باشيد.

اين جلسه قراره در ابتدا نحوه‌ي تنظيم CodeVision را براي پروگرامري كه در جلسه‌ي پيش ساختيم مطرح كنيم و بعد از اون، كمي هم آموزش زبان C را دنبال كنيم.

در جلسات پيش با بخش پروگرامر(Programmer) در CodeVision آشنا شديم. براي استفاده از نرم افزار پروگرامر، ابتدا بايد آن را با توجه به سخت‌افزاري كه براي پروگرام كردن در اختيار داريم تنظيم كنيم. براي اين كار CodeVision را باز كنيد و از منوي بالا گزينه‌ي "Setting" را انتخاب كنيد. سپس گزينه‌ي "Programmer" را انتخاب كنيد. پنجره‌اي به شكل زير باز مي‌شود.



در اين پنجره بايد نوع سخت افزار پروگرامري را كه در اختيار داريد را انتخاب كنيد.

پروگرامري كه ما جلسه‌ي پيش آموزش داديم همين STK200+/300 است كه معمولاً به صورت پيش فرض انتخاب شده است.

قسمت Delay Multiplier هم نياز به تنظيم خاصي ندارد. با استفاده از اين قسمت مي‌توان كمي وقفه‌ در عمليات پروگرام شدن به وجود آورد كه اين كار ممكن است برخي مشكلات احتمالي را در هنگام پروگرام كردن برطرف كند.

در اين قسمت نياز به تنظيم بخش ديگري نيست و پروگرامر آماده‌ي استفاده است.

تا به اينجا ما مقدمات كار با ميكروكنترلر‌هاي خانواده‌ي AVR را ياد گرفتيم و الان مي‌تونيم در حد آماتور از ميكروكنترلر در مدار‌هايي كه طراحي مي‌كنيم، استفاده كنيم.

اما كار با ميكروكنترلر‌هاي AVR به همين جا ختم نمي‌شود، از اينجا به بعد ما سعي مي‌كنيم مبحث ميكروكنترلر را به صورت حرفه‌اي تر دنبال كنيم.

در ادامه‌ي اين جلسه برمي‌گرديم به بحث برنامه نويسي در زبان C تا كمي بيشتر با اين زبان آشنا شويم.

يك نكته را بايد قبل از شروع بحث متذكر شوم، در ميكروكنترلر، همه‌ي ورودي‌ها منطقي مي‌شوند. يعني اگر سطح ولتاژ پايه‌ي ورودي (كه مثلاً يك سنسور نوري به آن متصل شده است) بين 0 تا 2.5 ولت باشد، آي‌سي آن را 0 منطقي در نظر مي‌گيرد و اگر بين 2.5 تا 5 ولت باشد، آن را 1 منطقي در نظر مي‌گيرد.


ساختارهاي كنترلي

در حالت عادي، دستورات داخل برنامه‌ي ما، از اولين دستور تا آخرين دستور به ترتيب اجرا مي‌شوند. اما اگر بخواهيم بعضي از دستورات فقط تحت شرايط خاصي اجرا شوند يا مثلاً بخش‌هاي ديگري از برنامه چندين بار تكرار شوند، بايد بتوانيم روند اجراي دستورات برنامه را كنترل كنيم. براي اين منظور دستوراتي در زبان C وجود دارند كه به آن‌ها دستورات يا ساختار‌هاي كنترلي مي‌گوييم.
اولين ساختار كنترلي كه با آن آشنا مي‌شويم دستور if است.


if _ else:

به كمك اين دستور، ما مي‌توانيم براي اجراي هر بخش از برنامه شرط يا شروطي بگذاريم كه اگر اين شروط برقرار نباشند، ميكروكنترلربدون اجراي آن دستورات از روي آن‌ها رد شود و روند اجراي برنامه به بعد از اين دستورات منتقل شود. اين دستور در برنامه به شكل زير استفاده مي‌شود.

if (شرط يا شروط)

    {

        دستوراتي كه فقط اگر شروط بالا برقرار باشند اجرا مي‌شوند

    }

else

    {

        دستوراتي كه فقط اگر شروط بالا برقرار نباشند اجرا مي‌شوند

    }

 نكات مهم در مورد اين ساختار:

1- بعد از هر كدام از دستورات در داخل if و else بايد حتماً ";" گذاشته شود.

2- دقت كنيد كه بعد از خود if و else نيازي به ";" نيست.

3- اگر بخواهيم چند شرط براي if بگذاريم ، به نحوي كه فقط اگر همه‌ي شروط برقرار بودند دستورات اجرا شوند، بايد به شكل زير عمل كنيم:

if (شرط1 && شرط2 && شرط3)

4- اگر بخواهيم چند شرط براي if بگذاريم ، به نحوي اگر هركدام ازشروط برقرار بودند، دستورات مربوطه اجرا شوند بايد به شكل زير عمل كنيم:

if (شرط1 || شرط2 || شرط 3 )

5- اگر بخواهيم تساوي 2 عبارت، يا يك عبارت با يك مقدار را چك كنيم به شكل زير عمل مي كنيم:

if (a == b && f == 20)

اين عبارت 2 شرط دارد كه اگر متغير a برابر با متغير b باشد و اگر متغير f هم برابر با مقدار 20 باشد، دستورات مربوط به if اجرا مي‌شوند.

6- اگر بخواهيم مقدار خروجي مثلاً يك سنسور نوري را چك كنيم كه 1 منطقي است يا نه، به صورت زير عمل مي‌كنيم:

if ( PORTB.1== 1 )
يا
if (PORTB.1 !== 0 )

اين 2 عبارت دقيقاً يك كار را انجام مي‌دهند. همانطور كه مي‌بينيد، "==!" به معناي عدم  تساوي است.در حالت كلي "!"در اين زبان به معناي نقيض است.

منتظر سولات و نظرات دوستان عزيزم هستم

تا جلسه‌ي آينده خدا نگه دار

فراز اميرغياثوند، دوست شما


جلسه‌ي سي‌ام

صفحه‌ي اصلي رباتيك

جلسه‌ي سي و دوم


1387/11/26 لينک مستقيم

فرستنده :
ناشناس HyperLink HyperLink 1388/3/3
مـتـن : لطفا یک قیمت کلی از این لیست جلسه ی دهم اعلام کنید تا دربارش فکر کنیم اگه گرون باشه که نمیتونیم بخریم
پاسـخ : سلام. قطعاتي كه در جلسه‌ي دهم معرفي شده قطعات گران قيمتي نيستند. كل اون ليست به 4 هزار تومان نمي‌رسد.
موفق باشي دوست عزيز

فرستنده :
ز HyperLink HyperLink 1388/1/9
مـتـن : سلام.چندتاسوال داشتم.
1:چه خصوصیاتی باعث برتری یک ربات مسیریاب حرفه ای در مسابقات مربوطه می شود؟مثلا وزن ابعادو اندازه ویا کارایی های بخصوص که لطفا مفصل توضیح دهید؟
2:گیرنده های مادون قرمز در حالت عادی هم ولتاژ ناچیزی رااز خود عبور میدهند و کاملاقطع نیستند .برای رفع این مشکل باید چکار کرد؟ آیا می توان از دیود زنر و خاصیت ولتاژ شکست آن استفاده کرد؟لطفا مشخصات قطعه مورد نیاز را کامل بنویس ممنون میشم.
3:همان طور که در سوال یک گفتم مشخصات کامل یک ربات مسیر یاب حرفه ایی را بنویسید.
- تشکرمی کنم از مطالب بسیارخوبتون که واقعا من هیچ جا نظیرش رو ندیدم.
اما آقا فراز من یه گلایه هم دارم که شما چرا اینقدر بی برنامه پیش میرید؟مثلا من باید 80باربه اینترنت وصل شم تا بالاخره درس جدید رو ببینم.من به نمایندگی از تمامی دوستداران این بخش از شما خواهش می کنم در پایان هر جلسه تاریخ جلسه ی بعدی رو اعلام کنید ومطالبتون رو افزایش بدید.بازم تشکر می کنم.به امیدحل این مشکلات خدا نگهدار.
پاسـخ : سلام دوست عزيز
تشكر مي‌كنم از دقت شما در مطالب و همچنين از پيشنهادات شازنده‌ي شما. به روي چشم، فرمايش شما كانلاً صحيح هستش، انشالله تلاش مي‌كنم تا به كمك ساير همكاران مشكلات ذكر شده هر چه سريع‌تر مرتفع بشود.
در مرود سوال 1 شما: مهمترين مشخصه‌ي يك ربات مسير‌ياب حرفه‌اي سرعت اون هستش،‌ربات بايد قادر باشد در كمترين زمان ممكن زمين مسابقه را طي كند. همچنين يك ربات حرفه‌اي بايد قادر باشد تا موانع مسير‌هاي دشوار را نيز بپيمايد، مثلاً زمين مسابقه ممكن است در بعضي قسمت‌ها خط سياه رنگ قطع شده باشد، يا 2 راهي وجود داشته باشد، يا 1 پيچ 130 درجه وجود داشته باشد، يا بطور كلي زمين مسابقه سياه رنگ شود و خط مورد نظر، سفيد شود و ربات مجبور شود خط سفيد را در زمينه‌ي سياه دنبال كند. در يك مسابقه‌ي مسيرياب حرفه‌اي تمام موارد فوق معمولاً وجود دارد.
2. همانطور كه گفته شد، آي سي هاي 7408، 7432، 74245، L298 و بسياري از آي سي‌هاي ديگر، قابليت منطقي كردن ولتاژ ورودي را دارند، يعني اگر ولتاژ زير 2.5 ولت باشد، آن را 0 منطقي در نظر مي‌گيرند و اگر بالاي 2.5 باشد، آن را 1 منطقي در نظر مي‌گيرند.
باز هم ممنون از انتقادات و پي‌گيريهاي شما، موفق و پيروز باشيد

فرستنده :
homa HyperLink HyperLink 1387/12/7
مـتـن : سلام خسته نباشید
اگه ممکن است سایت یا کتاب یا cd آموزشی برای نرم افزار های protel &perteus &..... معرفی کنید یا خودتون تو سایت بذارید mer30
پاسـخ : سلام
ممنونم، ما در آينده انشاالله آموزش اين نرم‌افزار ها هم در اين بخش خواهيم داشت. استفاده از Help‌خود نرم افزار هم مي‌تونه بهتون كمك كنه.من متاسفانه منبع خاصي رو در اين زمينه نمي‌تونم معرفي كنم.
موفق باشيد

فرستنده :
omid HyperLink HyperLink 1387/12/7
مـتـن : سلام فراز جان عزيز
مي خواستم ببينم ما باLCDهم كار ميكنيم يانه؟؟؟
مخصوصا LCD 2*16كه رايج ومعروف تر ازبقيه LCDهاست
پاسـخ : سلام اميد جان
بله، در جلسات آينده با LCD هم كار خواهيم كرد. موفق باشي

فرستنده :
سعید HyperLink HyperLink 1387/12/7
مـتـن : سلام
به مسابقات حلی کاپ می رسیم؟
پاسـخ : سلام
بله، اگر يه كم تلاش كنيد مي‌تونيد به مسابقات برسيد انشاالله.

نظر شما پس از تاييد در سايت قرار داده خواهد شد
نام :
پست الکترونيکي :
صفحه شخصي :
نظر:
تایید انصراف
 

 

 فعاليت هاي علمي
 تماس با ما