روبات دنبال کننده نور
در این پروژه با نحوه ساخت روبات دنبال کننده نور آشنا می شوید :
3 عدد مقاومت 1 کیلو اهم
1 عدد میکروکنترلر PIC16F84A
10 عدد دیود 1N4007
یک عدد خازن 0.1 میکرو فاراد
دو عدد خازن 0.01 میکرو فاراد
دو عدد موتور 3 تا 5 ولت DC
1 عدد کریستال 4 مگا هرتز
1 عدد مقاومت 4.7 کیلو اهم
2 عدد خازن 22 پیکو فاراد
1 عدد آیسی ULN2803
تا قبل از تابش نور به آن جریانی از آن عبوی نخواهدکرد.در واقع در این حالت مقاومت زیادی دارد.هر چه میزان شدت نور بیشتر باشد مقدارمقاومت آن کمتر می شود.،در واقع مقدار مقاومت با تابش نور رابطه عکس دارد.به منحنیهای روی فتوسل توجه کنید.میزان حساسیت فتوسل به طور مستقیم وابسته به تعداد اینمنحنی هاست.به شکل سمت چپ دقت کنید.عملکر مقاومت نوری در واقع شبیه یا در واقع مانند مقاومت متفییر یا همان پتانسیومتر است.در پتانسیومتر شما با پیچ کوشتی مقدار مقاومت را تنظیم می کردید.اما در اینجا شدت نور است که میزان مقاومت را تنظیممیکند.هرچه میزان شدت نور بیشتر باشد مقدار مقاومت حاصل از مقاومت نوری کمتر میشود.ودر صورت نبودن نور، مقاومت نور ی مدار باز عمل می کند در واقع مانند سیمی استکه شما آنرا از وسط بریده باشید.در این هنگام دیگر جریانی ار آن عبور نخواهد کرد.
این میکروکنترلر از ساده ترین انواع میکروکنترلر از لحاظ برنامه نویسی است .اما فوق العاده قدرتمند می باشد.زبان برنامه نویسی این میکروکنترلرغالبا زبان برنامه نویسی سی(C)برنامه نویسی بیسیک(BASIC)
برنامه نویسی پاسکال (PASCAL) می باشد.که شما می توانید با تهیه کمپایلر هر کدام از این زبان ها،با برنامه ای که به آن تسلطدارید.، اقدام به برنامه نویسی آن کنید.
برای کار با این میکروکنترلر احتیاج به پروگرامر خانواده گروه PIC دارید.،به همراه کمپایلر زبان برنامه نویسی که به آن علاقه دارید.
این روبات،روبات ساده ای است.شما حتی می توانید آنرا با گیتهای منطقی AND نیز پیاده سازی کنید.آیسی مربوط به گیت منطقی AND می تواند 74HC08 باشد.آیسی هاییکه مربوط به گیت AND باشد.زیادند.من تنها یک نمونه از آنرا برای شما عزیزان مثالزدم.که این آیسی از خانواده می باشد.
تا قبل از تابش نور به مقاومت نوری این المان به صورت مدار باز عمل می کند ومانع رسیدن ولتاژ 5 ولت به پایه های مربوط به تصمیم گیری میکرو کنترلرمی شود.به محض تابش نور به این المان،ولتاژ 5 ولت که در یک سر این المان قرار دارد به سر دیگرنیز هدایت می شود.البته میزان انتقال ولتاژ یا سطح پتانسیل بستگی به شدت نور داردهر چه قدر شدت نور بیشتر باشد.ما سهم بیشتری از ولتاژ 5 ولت در سر دیگر مقاومت نوریکه به میکرو منتهی می شود خواهیم داشت.برای تست این مدار از یک چراغ قوه استفادهکنید.و این را بگویم که هر چه قدر چراغ قوه شما دارای نور متمرکز تری باشد عملکردمدارتان مطلوب تر خواهد بود.می توانید برای تست مدارتان از یک سری LED که در بازارتحت عنوان LED سفید است استفاده کنید این نوع LED دارای قیمتی بیشتر از LED معمولیاست.و نوری که از سر آن متصاعد می شود آنقدر زیاد است.که شما نمی توانید از روبروبه آن نگاه کنید.وچشم شما را اذیت می کند.در رنگهای مختلفی موجود است.اما برای تستاین مدار از نوع سفید آن استفاده کنید.در واقع در این حالت این LED برای شما کارچراغ قوه را انجام می دهد.برای روشن شدن آن از یک باطری 1.5 تا 3 ولت استفاده کنید.وبسته به میزان روشنایی LED ای که خریداری می کنید.حتما در هنگام اتصال به باطری یک مقاومت را با آن سری کنید این مقاومت نیز از 100 اهم تا 1 کیلو اهم میتواند متغییر باشد.
در سه خط ابتدایی متغییر های m ، l و r باگذای می شوند.درواقع مقادیر پورتهایی که به مقاومت های نوری متصل هستند.در این پین های میکروبارگذاری می شوند.وبسته به مقادیر این متغغیرها مدار شما عمل می کند.نحوه تصمیمگیری میکرو نیز با استفاده از دستورات شرطی if به طور ساده در برنامه مشخص هستند.درخط انتهایی برنامه به طور مثال گفته شده اگر هر سه سنسور نور را دریافت کردند.هر دوموتور روشن شود. در واقع در این حالت روبات به سمت جلو می رود.عملکر به این صورتاست.،که زمانیکه این سنسورها نور را دریافت می کنند.در وقع مقاومت آنه کم می شود. و ولتاژ 5 ولت را که در یک سر آنها قرار دارد.به سر دیگر منتقل می کنند.سر دیگر پاههای ورودی میکرو است.میکرو هم بسته به اینکه چه سنسوری نور را دریافت کرده و باتوجه به برنامه پین های RB7 و RB6 را HIGH یا LOW می کند.در این حالت شما شاهد حرکتموتور به طرفین راست و چپ و یا جلو خواهی بود :
1:
2: m var byte
3: l var byte
4: r var byte
5: m=portb.2
6: l=portb.1
7: r=portb.3
8: if m=1 and l=0 and r=0 then
9: high portb.6
10: high portb.7
11: endif
12: if r=0 and l=1 and (m=0 or m=1) then
13: high portb.7
14: low portb.6
15: endif
16: if l=0 and r=1 and (m=0 or m=1) then
17: high portb.6
18: low portb.7
19: endif
20: if m=0 and l=0 and r=0 then
21: low portb.6
22: low portb.7
23: endif
24: if m=1 and l=1 and m=1 then
25: high portb.6
26: high portb.7
27: endif
28:
29:
به طور مثال اگر شما مقاومت 1 مگا اهم به بالا قرار دهید حتی با نورمحیط نیز روبات حرکت خواهد کرد.، و هر چه قدر مقدار مقاومت کم شود.،حساسیت روباتکمتر می شود.،و برای حرکت روبات می بایست منبع نوری را به فتو سل بیشتر نزدیک کرد.،از سه عدد سنسور یکی را در جلوی مدار یکی را سمت چپ و یکی دیگر را سمت راست بردخود قرار دهید.هر بار که منبع نوری مثل چراغ قوه را به سمت جلوی مدار خود می گیرید روبات به سمت جلو حرکت می کند در این حالت هر دو موتور کار می کنند.، اگر منبع نوریرا به سمت چپ یا راست منحرف کنید روبات به سمت چپ و راست ،در واقع در هر سمتی کهمنبع نوری باشد منحرف می شود.دیودهای موجود در مدار جهت حفاظت مدار از جریان برگشتیموتور مورد استفاده قرار می گیرد.همانطور که در نقشه ملاحظه می کنید.سر مثبت دیودهای محافظ در زمین و سر منفی آن در مثبت ولتاژ برای هر موتور قرار گرفته است.
علاوه بر این 4 دیود که برای هر موتور به کار رفته و جمعا 8 دیود می شود.،دو عدد دیو دیگرنیز وجود دارد.این دیودها نیز برای حفاظت آیسی ULN2803 از جریان برگشتی موتور بهکار می رود.که به صورت برعکس قرار می گیرد سر مثبت این دو دیود نیز در پایه های خروجی آیسی ULN2803 قرار گرفته اند.چرا که این سرها ولتاژ زمین یا صفر ایجاد میکنند.و سر دیگر موتور به صورت مستقیم به مثبت ولتاژ متصل می شود.که در اینجا نیز سرمنفی یا کاتد را مشاهده می کنید. البته آیسی ULN2803 داری دیود محافظ درونی نیز می باشد.
خازن های دو سر موتور را حتما قرار دهید.اگر خازن ها را قرارندهید موتورها قدرت لازم برای به حرکت انداختن گیربکس ها را ندارند.
* ارسال مقاله توسط عضو محترم سایت با نام کاربری : mohsen_nasseh
/خ
قطعات مورد نیاز :
3 عدد مقاومت 1 کیلو اهم
1 عدد میکروکنترلر PIC16F84A
10 عدد دیود 1N4007
یک عدد خازن 0.1 میکرو فاراد
دو عدد خازن 0.01 میکرو فاراد
دو عدد موتور 3 تا 5 ولت DC
1 عدد کریستال 4 مگا هرتز
1 عدد مقاومت 4.7 کیلو اهم
2 عدد خازن 22 پیکو فاراد
1 عدد آیسی ULN2803
مقاومت نوری
تا قبل از تابش نور به آن جریانی از آن عبوی نخواهدکرد.در واقع در این حالت مقاومت زیادی دارد.هر چه میزان شدت نور بیشتر باشد مقدارمقاومت آن کمتر می شود.،در واقع مقدار مقاومت با تابش نور رابطه عکس دارد.به منحنیهای روی فتوسل توجه کنید.میزان حساسیت فتوسل به طور مستقیم وابسته به تعداد اینمنحنی هاست.به شکل سمت چپ دقت کنید.عملکر مقاومت نوری در واقع شبیه یا در واقع مانند مقاومت متفییر یا همان پتانسیومتر است.در پتانسیومتر شما با پیچ کوشتی مقدار مقاومت را تنظیم می کردید.اما در اینجا شدت نور است که میزان مقاومت را تنظیممیکند.هرچه میزان شدت نور بیشتر باشد مقدار مقاومت حاصل از مقاومت نوری کمتر میشود.ودر صورت نبودن نور، مقاومت نور ی مدار باز عمل می کند در واقع مانند سیمی استکه شما آنرا از وسط بریده باشید.در این هنگام دیگر جریانی ار آن عبور نخواهد کرد.
کریستال
این میکروکنترلر از ساده ترین انواع میکروکنترلر از لحاظ برنامه نویسی است .اما فوق العاده قدرتمند می باشد.زبان برنامه نویسی این میکروکنترلرغالبا زبان برنامه نویسی سی(C)برنامه نویسی بیسیک(BASIC)
برنامه نویسی پاسکال (PASCAL) می باشد.که شما می توانید با تهیه کمپایلر هر کدام از این زبان ها،با برنامه ای که به آن تسلطدارید.، اقدام به برنامه نویسی آن کنید.
برای کار با این میکروکنترلر احتیاج به پروگرامر خانواده گروه PIC دارید.،به همراه کمپایلر زبان برنامه نویسی که به آن علاقه دارید.
نقشه مدار
این روبات،روبات ساده ای است.شما حتی می توانید آنرا با گیتهای منطقی AND نیز پیاده سازی کنید.آیسی مربوط به گیت منطقی AND می تواند 74HC08 باشد.آیسی هاییکه مربوط به گیت AND باشد.زیادند.من تنها یک نمونه از آنرا برای شما عزیزان مثالزدم.که این آیسی از خانواده می باشد.
تا قبل از تابش نور به مقاومت نوری این المان به صورت مدار باز عمل می کند ومانع رسیدن ولتاژ 5 ولت به پایه های مربوط به تصمیم گیری میکرو کنترلرمی شود.به محض تابش نور به این المان،ولتاژ 5 ولت که در یک سر این المان قرار دارد به سر دیگرنیز هدایت می شود.البته میزان انتقال ولتاژ یا سطح پتانسیل بستگی به شدت نور داردهر چه قدر شدت نور بیشتر باشد.ما سهم بیشتری از ولتاژ 5 ولت در سر دیگر مقاومت نوریکه به میکرو منتهی می شود خواهیم داشت.برای تست این مدار از یک چراغ قوه استفادهکنید.و این را بگویم که هر چه قدر چراغ قوه شما دارای نور متمرکز تری باشد عملکردمدارتان مطلوب تر خواهد بود.می توانید برای تست مدارتان از یک سری LED که در بازارتحت عنوان LED سفید است استفاده کنید این نوع LED دارای قیمتی بیشتر از LED معمولیاست.و نوری که از سر آن متصاعد می شود آنقدر زیاد است.که شما نمی توانید از روبروبه آن نگاه کنید.وچشم شما را اذیت می کند.در رنگهای مختلفی موجود است.اما برای تستاین مدار از نوع سفید آن استفاده کنید.در واقع در این حالت این LED برای شما کارچراغ قوه را انجام می دهد.برای روشن شدن آن از یک باطری 1.5 تا 3 ولت استفاده کنید.وبسته به میزان روشنایی LED ای که خریداری می کنید.حتما در هنگام اتصال به باطری یک مقاومت را با آن سری کنید این مقاومت نیز از 100 اهم تا 1 کیلو اهم میتواند متغییر باشد.
برنامه میکروکنترلر
در سه خط ابتدایی متغییر های m ، l و r باگذای می شوند.درواقع مقادیر پورتهایی که به مقاومت های نوری متصل هستند.در این پین های میکروبارگذاری می شوند.وبسته به مقادیر این متغغیرها مدار شما عمل می کند.نحوه تصمیمگیری میکرو نیز با استفاده از دستورات شرطی if به طور ساده در برنامه مشخص هستند.درخط انتهایی برنامه به طور مثال گفته شده اگر هر سه سنسور نور را دریافت کردند.هر دوموتور روشن شود. در واقع در این حالت روبات به سمت جلو می رود.عملکر به این صورتاست.،که زمانیکه این سنسورها نور را دریافت می کنند.در وقع مقاومت آنه کم می شود. و ولتاژ 5 ولت را که در یک سر آنها قرار دارد.به سر دیگر منتقل می کنند.سر دیگر پاههای ورودی میکرو است.میکرو هم بسته به اینکه چه سنسوری نور را دریافت کرده و باتوجه به برنامه پین های RB7 و RB6 را HIGH یا LOW می کند.در این حالت شما شاهد حرکتموتور به طرفین راست و چپ و یا جلو خواهی بود :
1:
2: m var byte
3: l var byte
4: r var byte
5: m=portb.2
6: l=portb.1
7: r=portb.3
8: if m=1 and l=0 and r=0 then
9: high portb.6
10: high portb.7
11: endif
12: if r=0 and l=1 and (m=0 or m=1) then
13: high portb.7
14: low portb.6
15: endif
16: if l=0 and r=1 and (m=0 or m=1) then
17: high portb.6
18: low portb.7
19: endif
20: if m=0 and l=0 and r=0 then
21: low portb.6
22: low portb.7
23: endif
24: if m=1 and l=1 and m=1 then
25: high portb.6
26: high portb.7
27: endif
28:
29:
توضیحات مدار
به طور مثال اگر شما مقاومت 1 مگا اهم به بالا قرار دهید حتی با نورمحیط نیز روبات حرکت خواهد کرد.، و هر چه قدر مقدار مقاومت کم شود.،حساسیت روباتکمتر می شود.،و برای حرکت روبات می بایست منبع نوری را به فتو سل بیشتر نزدیک کرد.،از سه عدد سنسور یکی را در جلوی مدار یکی را سمت چپ و یکی دیگر را سمت راست بردخود قرار دهید.هر بار که منبع نوری مثل چراغ قوه را به سمت جلوی مدار خود می گیرید روبات به سمت جلو حرکت می کند در این حالت هر دو موتور کار می کنند.، اگر منبع نوریرا به سمت چپ یا راست منحرف کنید روبات به سمت چپ و راست ،در واقع در هر سمتی کهمنبع نوری باشد منحرف می شود.دیودهای موجود در مدار جهت حفاظت مدار از جریان برگشتیموتور مورد استفاده قرار می گیرد.همانطور که در نقشه ملاحظه می کنید.سر مثبت دیودهای محافظ در زمین و سر منفی آن در مثبت ولتاژ برای هر موتور قرار گرفته است.
علاوه بر این 4 دیود که برای هر موتور به کار رفته و جمعا 8 دیود می شود.،دو عدد دیو دیگرنیز وجود دارد.این دیودها نیز برای حفاظت آیسی ULN2803 از جریان برگشتی موتور بهکار می رود.که به صورت برعکس قرار می گیرد سر مثبت این دو دیود نیز در پایه های خروجی آیسی ULN2803 قرار گرفته اند.چرا که این سرها ولتاژ زمین یا صفر ایجاد میکنند.و سر دیگر موتور به صورت مستقیم به مثبت ولتاژ متصل می شود.که در اینجا نیز سرمنفی یا کاتد را مشاهده می کنید. البته آیسی ULN2803 داری دیود محافظ درونی نیز می باشد.
نکته
خازن های دو سر موتور را حتما قرار دهید.اگر خازن ها را قرارندهید موتورها قدرت لازم برای به حرکت انداختن گیربکس ها را ندارند.
* ارسال مقاله توسط عضو محترم سایت با نام کاربری : mohsen_nasseh
/خ