شما در سایت ثبت نام نکرده اید و یا وارد نشده اید ، لطفا از اینجا ثبت نام کنید تا به تمام امکانات سایت دسترسی داشته باشید .    
  سایت علمی دانشجویان ایران


برگشت   سایت علمی دانشجویان ایران > فنی و مهندسی > الکترونیک و رباتیک > رباتیک

تابلوی اعلانات

رباتیک پروژه های تخصصی روباتیک ، کاربردی ترین مقالات و پروژه های روباتیک برای تمام دانشجویان و محققان در اینترنت

پاسخ
 
امکانات حالات نمایش
قدیمی Aug-08-2007, 20:04   #21
علی آرین
كارشناس تالار الكترونيك
 
آواتار علی آرین
 
تاریخ عضویت: 2006-10-04
شهر سکونت: کارتن خواب آواره
رشته تحصیلی: بی سواد !
ارسالها: 672
تشکر: 261
1,461 تشکر در 831 ارسال
دریافت کتاب: 0
اهداء کتاب: 0
علی آرین is on a distinguished road
میزان فعالیت سابقه
1/20 19/20
فعالیت امروز ارسالها
ssssss672
پیش فرض پاسخ: آموزش گام به گام ساخت یک روبات مسیر یاب!

نمیشه ! ببین ، یکی باید به من بگه چه مطلبی بزارم ، من هم در خدمتتون هستم ، مطلب رو تهیه میکنم میزارم ، ولی من خودم سر خود نمیتونم حامد جان ! گفتم که ، اگر میخواهید از توان بچه ها استفاده کنید ، باید به بچه ها مسولیت بدید و ازشون کار بخواهید ، حالا من در چه باره ایی مطلب بزارم ؟!
__________________
[فقط کاربران سایت قادر به مشاهده ی لینک ها میباشند . ]
A Dream Came True

علی آرین آفلاين است   پاسخ با نقل قول
قدیمی Aug-11-2007, 15:32   #22
ELECBOY
کاربر حرفه ای
 
آواتار ELECBOY
 
تاریخ عضویت: 2007-06-12
شهر سکونت: مازندران . آمل
ارسالها: 1,204
تشکر: 699
577 تشکر در 265 ارسال
دریافت کتاب: 0
اهداء کتاب: 0
ELECBOY is on a distinguished road
میزان فعالیت سابقه
1/20 15/20
فعالیت امروز ارسالها
sssss1204
ارسال پیام توسط Yahoo به ELECBOY
پیش فرض مکانیک ربات تعقیب خط

مکانیک روبات تعقیب خط

بدنه روبات :

شما می توانید از موارد زیر برای

بدنه روبات خود استفاده کنید

1- خود فیبر مدار چاپی

2- آلمینیوم

3- تفلون

4- پلاستیک شفاف

5- چوب و . . .
[فقط کاربران سایت قادر به مشاهده ی لینک ها میباشند . ]
براي چرخ جلو مي توانيد از يك كستريا كف گرد استفاده كنيد
[فقط کاربران سایت قادر به مشاهده ی لینک ها میباشند . ]

[فقط کاربران سایت قادر به مشاهده ی لینک ها میباشند . ]



[فقط کاربران سایت قادر به مشاهده ی لینک ها میباشند . ]
__________________


برای خوشنودی آقا امام زمان
صلوات

!~@~!~@~!~@~!~@~!~@~!
!~@~!~@~!~@~!~@~!~@~!

در صورت مشاهده هرگونه پست توهین آمیز و خلاف قوانین سایت با کلیک روی این آیکن http://www.daneshju.ir/forum/images/buttons/report.gif موضوع را به مدیران ارشد اطلاع دهید .

[فقط کاربران سایت قادر به مشاهده ی لینک ها میباشند . ]
ELECBOY آفلاين است   پاسخ با نقل قول
قدیمی Aug-11-2007, 15:34   #23
ELECBOY
کاربر حرفه ای
 
آواتار ELECBOY
 
تاریخ عضویت: 2007-06-12
شهر سکونت: مازندران . آمل
ارسالها: 1,204
تشکر: 699
577 تشکر در 265 ارسال
دریافت کتاب: 0
اهداء کتاب: 0
ELECBOY is on a distinguished road
میزان فعالیت سابقه
1/20 15/20
فعالیت امروز ارسالها
sssss1204
ارسال پیام توسط Yahoo به ELECBOY
پیش فرض قطعات مورد نياز براي ساخت قسمت الكترونيكي روبات تعقيب خط

قطعات مورد نياز براي ساخت قسمت الكترونيكي روبات تعقيب خط

1- سنسورهای مادون قرمز

2- Op-amp LM 324

3- پتانسیومتر ده کیلواهم

4- در صورت تمایل LED

5- IC => AT89C2051 OR AT89C51

6- IC => 74LC245 OR 74HC245

7- TR = TIP 41

8- Reg = 7805

9- یک کیت برای نصب قطعات
__________________


برای خوشنودی آقا امام زمان
صلوات

!~@~!~@~!~@~!~@~!~@~!
!~@~!~@~!~@~!~@~!~@~!

در صورت مشاهده هرگونه پست توهین آمیز و خلاف قوانین سایت با کلیک روی این آیکن http://www.daneshju.ir/forum/images/buttons/report.gif موضوع را به مدیران ارشد اطلاع دهید .

[فقط کاربران سایت قادر به مشاهده ی لینک ها میباشند . ]
ELECBOY آفلاين است   پاسخ با نقل قول
قدیمی Aug-11-2007, 16:03   #24
ELECBOY
کاربر حرفه ای
 
آواتار ELECBOY
 
تاریخ عضویت: 2007-06-12
شهر سکونت: مازندران . آمل
ارسالها: 1,204
تشکر: 699
577 تشکر در 265 ارسال
دریافت کتاب: 0
اهداء کتاب: 0
ELECBOY is on a distinguished road
میزان فعالیت سابقه
1/20 15/20
فعالیت امروز ارسالها
sssss1204
ارسال پیام توسط Yahoo به ELECBOY
پیش فرض نقشه یک ربات تعقیب خط ساده

برای بزرگتر دیدن عکس روش کلیک کنید .

[فقط کاربران سایت قادر به مشاهده ی لینک ها میباشند . ]
__________________


برای خوشنودی آقا امام زمان
صلوات

!~@~!~@~!~@~!~@~!~@~!
!~@~!~@~!~@~!~@~!~@~!

در صورت مشاهده هرگونه پست توهین آمیز و خلاف قوانین سایت با کلیک روی این آیکن http://www.daneshju.ir/forum/images/buttons/report.gif موضوع را به مدیران ارشد اطلاع دهید .

[فقط کاربران سایت قادر به مشاهده ی لینک ها میباشند . ]
ELECBOY آفلاين است   پاسخ با نقل قول
قدیمی Aug-11-2007, 16:51   #25
ELECBOY
کاربر حرفه ای
 
آواتار ELECBOY
 
تاریخ عضویت: 2007-06-12
شهر سکونت: مازندران . آمل
ارسالها: 1,204
تشکر: 699
577 تشکر در 265 ارسال
دریافت کتاب: 0
اهداء کتاب: 0
ELECBOY is on a distinguished road
میزان فعالیت سابقه
1/20 15/20
فعالیت امروز ارسالها
sssss1204
ارسال پیام توسط Yahoo به ELECBOY
پیش فرض مسیر حرکت در ربات مسیر یاب

مسیر حرکت در ربات مسیر یاب

برای درست کردن مسیری که روبات بتواند در آن صحیح حرکت کند و مسیر را درست تشخیص دهد.،حداقل از دو عدد مقوای مشکی استفاده کنید .،وجاده خود را که ورق سفید رنگ براق است.،
را بر روی آن بچسبانید.
جاده شما نباید دارای پیچهای 90 درجه باشد.،واندازه ورق سفید که جاده شما می باشد حدودا 2.5 سانتی متر باشد.سنسورها را طوری کنار یکدیگر قرار دهید.،که فاصله اولین سنسور با آخرین سنسور حدود 4.5 سانتی متر باشد.سنسور وسطی در جاده سفید رنگی که بر روی مقوای مشکی درست کرده اید.،قرار می گیرد.ما دامی که این سنسور برروی این خط سفید باشد.دو موتور همزمان حرکت می کنند.زمانیکه این سنسور به همراه یکی از سنسورهای کناری یا یکی از سنسورهای کناری به طور مجزا بر روی خط سفید قرار می گیرد.،یکی از موتورها خاموش می شود.،وموتور دیگر روشن می شود.،تا اینکه روبات بتواند.،مسیر صحیح خود را پیدا کند.و دو موتور بتوانند به طور همزمان حرکت کنند.اگر شما این موارد را رعایت کنید.،مطمئن باشید که روبات شما صحیح عمل خواهد کرد. سعی کنید برای اولین تست جاده شما به صورت بیضی باشد.اندازه جاده شما می بایست متناسب با اندازه روبات شما باشد.
جاده شما می تواند مشکی نیز باشد.،فقط نحوه برنامه نویسی میکروکنترلر متفاوت خواهد بود.
__________________


برای خوشنودی آقا امام زمان
صلوات

!~@~!~@~!~@~!~@~!~@~!
!~@~!~@~!~@~!~@~!~@~!

در صورت مشاهده هرگونه پست توهین آمیز و خلاف قوانین سایت با کلیک روی این آیکن http://www.daneshju.ir/forum/images/buttons/report.gif موضوع را به مدیران ارشد اطلاع دهید .

[فقط کاربران سایت قادر به مشاهده ی لینک ها میباشند . ]
ELECBOY آفلاين است   پاسخ با نقل قول
قدیمی Aug-13-2007, 09:08   #26
Green heart
مدیر بازنشسته تالار رياضي
 
آواتار Green heart
 
تاریخ عضویت: 2007-08-01
شهر سکونت: Heaven
ارسالها: 1,202
تشکر: 4,063
3,418 تشکر در 1,311 ارسال
دریافت کتاب: 0
اهداء کتاب: 0
Green heart is on a distinguished road
میزان فعالیت سابقه
0/20 15/20
فعالیت امروز ارسالها
sssss1202
ارسال پیام توسط Yahoo به Green heart
پیش فرض پاسخ: آموزش گام به گام ساخت یک روبات مسیر یاب!

سلام من چند تا مطلب در مورد مسیر یاب داریم براتون می ذارم شاید به درد خورد:
ساخت پروگرمر STK200300:
مدار این پروگرمر در چند نوع مختلف توسط آی سی بافر 74HC244 موجود هستش. اما مدلی رو که من الان میخوام آموزش بدم ساده ترین نوع موجود و بدون آی سی بافر هستش. برای ساخت این پروگرمر فقط به وسایل زیر احتیاج دارید:
1. یک عدد سوکت ۲۵ پین، پورت Parallel یا موازی کامپوتر (از نوع نر)
2. یک عدد قاب سوکت ذکر شده در صورت تمایل
3. چند رشته سیم. البته پیشنهاد می کنم از سیم های فلت ۱۰ تایی استفاده کنید.
4. یک عدد پایه محافظ میکرو ۴۰ پایه
5. یک عدد میکروکنترلر AVR. پیشنهاد من از نوع ATmega32L/32 هستش.
6. سایر موارد لازم مثل هویه، سیم قلع، فیبرمدار و....
شکل مقابل پین های سوکت پورت موازی رو با به صورت شماره گذاری از پین ۱ تا ۲۵ و نحوه اتصال پینهای اون به پایه های میکرو نشون میده. توضیح استفاده هرکدوم از این پینها خارج از بحث ماست فقط بدونید که پینهای ۱۸تا۲۵ باید به زمین وصل بشن و پین ۲-۹ هم مربوط به ۸ بیت موازی هستند.
تصویر پایه های میکروی AVR به همراه اسمشون رو قبلا در پست 13 گذاشتم، ببینیدش که در درک شکل بالا خیلی کمکتون می کنه.. با این حال به علت اهمیت بازم میگم: پینهای شماره ۱۸الی۲۵ سوکت رو بهم و سپس به GND میکرو که پایه شماره ۱۱ اون هست وصل کنید و بعد پایه شماره ۱۱ میکرو رو هم به سر منفی منبع وصل کنید به همین ترتیب، پین شماره ۱۰ سوکت به MISO یا پایه ۷ میکرو، پین شماره ۹ سوکت به RESET یا پایه ۹ میکرو، پین شماره ۷ سوکت به MOSI یا پایه ۶ میکرو، پین شماره ۶ سوکت به SCK یا پایه ۸ میکرو وصل کنید و در آخر VCC یا پایه ۱۰ میکرو رو هم به سر مثبت منبع وصل کنید. بخش سخت افزاری پروگرمر شما به همین سادگی آماده شد.
برای استفاده از این پروگرمر باید به روش زیر نوع پروگرمر خودتون رو به کامپایلر BASCOM معرفی کنید:
BASCOM-AVR > Options > Programmer >> Programmer = STK200300 Programmer
بعد از انجام مراحل بالا و تکمیل پروگرمرتان برای اطمینان از صحت کار می توانید در محیط کامپایلر دگمه را فشار دهید. در صورت ظاهر نشدن پیام مقابل و نمایش صفحه ای جدید که در بالای آن مشخصات میکروی شما نوشته شده بدانید که پروگرمر شما به درستی کار می کند. در غیر این صورت تمام موارد از جملا ترتیب صحیح اتصال سیمها و وصل بودن ولتاژ مناسب و.. را چک کنید. این مرحله یکی از مراحلی است که امکان جواب ندادن در اون خیلی زیاده بنابراین در صورت جواب نگرفتن اصلا عصبانی نشید و بیاید تا با هم مشکل رو حل کنیم .
علت تعدد سیمهای استپر موتور رو فهمیدیم و دونستیم چطور باید این سیمها ۰ و ۱ بفرستیم تا باعث حرکت موتور بشیم. همچنین در قسمتهای اولیه آموزش ساخت ربات (میکروکنترلر) فهمیدیم که میکرو دارای تعدادی پورت هستش که هر کدوم از این پورتها از ۸ تا بیت تشکیل شده و میشه این بیتها رو تغییر داد (۰ و ۱ کرد). خوب حالا حتما فکر می کنید میشه چهارتا سیم موتور رو به چهارتا پین از یه پورت (دلخواه) میکرو وصل کنیم و با تغییر متناوب بیتها (۰۰۰۱ ، ۰۰۱۰ و...) می تونیم باعث چرخش موتورمون بشیم.
اما واقعیت اینه که کمتر مصرف کننده ای رو میشه به صورت مستقیم به پایه های میکرو وصل کرد. علتش هم اینه که شایه های میکرو نمی تونن بیشتر از ۲۰ میلی آمپر رو سینک کنند (عبور بدن).
برای مثال فرض کنید یک LED داریم با آمپراژ مصرفی 50mA ، اگر سر مثبت اون رو به ولتاژ وصل کنیم و سر منفی اون رو به یه پین از میکرو وصل کنیم و اون پین رو صفر کنیم (به معنی GND کردن اون) باعث سوختن حداقل همون پین میکرومون میشیم. این بخاطر جریان کشیدن بیش از توان میکرو هستش، برای همین باید بین پین و پایه منفی LED یا پایه LED و سر مثبت منبع یه مقاومت مناسب قرار بدم. همین اتفاق در مورد استپر موتور صادقه فقط با مقیاس بزرگتر که دیگه جای شبه ای باقی نمیزاره به سوسک شدن میکروتون .
برای جلوگیری از این پدیده از آیسی های رابط مخصوصی استفاده می کنند که اصتلاحا درایور نام دارند. باوجود تنوع زیاد درایور ها من از مدل ULN2803 که فکر می کنم یکی از رایجترین نوع برای ساخت ربات مسیریاب هستش استفاده می کنم. این درایور دارای ۱۸ پایه هستش. همونطور که در شماتیک درونی IC مشاهده می کنید پایه ۹ سر gnd و پایه ۱۰ سر vcc هستش و پایه های ۱ تا ۸ ورودی (در اینجا از میکرو) و پایه های ۱۱ تا ۱۸ خروجی (در اینجا به موتور) این آی سی هستند. در شکل نحوه رابط قرار دادن این آی سی بین ۴ پایه میکرو و ۴ سیم موتور رو مشاهده می کنید. راستی در این IC، پایه ۱۸ خروجی پایه ۱، پایه ۱۷ خروجی ۲، ۱۶ خروجی ۳ و... می باشد.
البته همونطور که در قسمت کنترل استپ موتور اشاره کردم بیت های ارائه شده در جدولهای پست قبل باید به صورت نقیض به موتور ارسال بشن. مثلا ۰۰۰۱ که از میکرو میاد باید به صورت ۱۱۱۱۰ به موتور ارسال بشه، چون می خواهیم سیمهای استپر رو به ترتیب ۱ های جدول GND کنیم و صفر به معنی GND هست نه ۱ (قبلا کفته بودم) !!! یکی از کارهای مهم این IC هم همین هستش و خروجی های میکروی مارو که طبق جدول های پست قبل هست نقیض (NOT) میکنه و به موتور میفرسته.در ضمن از اونجایی که این درایور ۸ تا ورودی و ۸ تا خروجی داره، ما میتونیم هر دوتا موتورمون رو (برا مسیریاب ۲ تا استپر موتور لازم داریم) فقط با یه درایور راه بندازیم. ۴ تا ورودی و ۴ تا خروجی برای ۱ موتور و یه جفت ۴ تایی باقی مونده هم برای موتور دوم. مثل شکل قبل.
شاید بدونید که ولتاژهای عملیاتی میکروکنترلر AVR نوع ATmega32 از ۴.۵ تا ۵.۵ ولت و نوع ATmega32L از ۲.۷ تا ۵.۵ هستش، اما ولتاژ کاری موتورهای پله ای موجود در بازار معمولا ۱۲ و همچنین ممکنه منبع تغذیه ای که در اختیار داریم یا در اختیار ما میگذارن (منظورم مسابقاته!) ممکنه اصلا تو این رنج نباشه! برای ایجاد رنج دلخواه خودمون از قطعه ای بنام رگولاتور استفاده می کنیم که فعلا یه توضیح کوچیک از اون داشته باشید:
IC های رگولاتور۱: به تازگی آی-سی هایی عرضه شده که جانشین یک مدار رگولاتور شده و دارای امتیازاتی می باشد، به عنوان نمونه در صورت اتصال کوتاه شدن خروجی یا بار بیش از اندازه آی-سی محافظت شده و همچنین اگر آی-سی بسیار داغ شود مدار حفاظتی داخل آی-سی آن را خاموش خواهد کرد و این قطع ولتاژ خروجی تا زمانی ادامه پیدا خواهد کرد که آی-سی دوباره خنک شود. حجم کم این آی-سی ها نیز از امتیازات آنها به شمار می رود. در واقع وقتی شما از این IC در مدار خود استفاده کنید به میزان زیادی در وقت و پول خود صرفه جویی کرده اید. یک نمونه از این IC ها سری 78xx می باشد که سه پایه داشته و بسیار شبیه به ترانزیستور می باشد. ولتاژهای خروجی آنها نیز ثابت می باشد. بجای XX هر شماره ای روی بدنه IC نوشته شده باشد ولتاژ خروجی آن خواهد بود. جریان خروجی این IC ها یک آمپر می باشد و لازم است در این جریان رادیاتور مناسبی به IC متصل شود. در شکل زیر یک مدار رگولاتور به همراه دو خازن برای از بین بردن نوسانات نشان داده شده است. (در حالت عادی می توان خازن ها را حذف کرد)
البته با توجه به آمپراژ خروجی رگولاتور توجه داشته باشید نباید استپ موتورمون رو به لگولاتور وصل کنیم بلکه باید ولتاژ استپر موتورمون رو به صورت مستقیم از ۱۲-ولت و تغذیه میکروکنترلر و مدار سنسورهامون رو (که قبلا نشون دادیم) از خروجی رگولاتور بگیریم.
راستی پاراگراف ۱ رو عینا از روی کتاب "۵۰ مدار علمی منبع تغذیه" تالیف ناصر بهنوا نوشتم. در این مقاله می خواستم با بستن مدار رگولاتور، از پست بعد که کار با میکرو رو شروع می کنم دیگه مشکل تغذیه میکرو رو نداشته باشید. که البته جلسه بعد دوباره در مورد پایه های میکرو بیشتر توضیح خواهم داد.
جلسه قبل مطالبی به عنوان پیش زمینه برای کنترل یا راه اندازی استپ موتور گفتم اما مطالبی که این جلسه میگم، کاملا عملی در مراحل مختلف از جمله نوشتن برنامه راه اندازی موتور پله ای، در میکرو کاربرد داره:
اگر چهار پله d, c ,b ,a رو که هر کدوم به صورت چهار بیت در جدول نشون داده ش
سیم۱ سیم۲ سیم ۳ سیم ۴ شماره پله
0 0 0 1 1
0 0 1 0 2
0 1 0 0 3
1 0 0 0 4
دن رو به صورت مداوم به یک استپ موتور القا کنیم (شبیه کیشدن GND به سرعت روی چهار سیم موتور) باعث حرکت منظم موتور در یک جهت خواهیم شد. این نوع القا بیتها،حرکت یک بیتی نام داره. یعنی در هر پله فقط ۱ بیت روشن یا ۱ هستش. در ضمن القا بیت ها طبق این جدول و جداول بعدی مرحله جدایی هست که باید با توسط میکرو انجام بگیره (بعدا توضیح میدم چطور).
نو دیگری از القا پله به موتور وجود داره که حرکت دوبیتی نام داره. هم
سیم۱ سیم۲ سیم ۳ سیم ۴ شماره پله
1 0 0 1 1
0 0 1 1 2
0 1 1 0 3
1 1 0 0 4
ونطور که در جدول می بینید در این نوع حرکت در یک پله همزمان دوبیت ۱ هستند (انگار همزمان دو سیم رو به زمین اتصال بدیم). اگر این مدل رو مثل بالایی به صورت مداوم تکرار کنیم باز هم باعث چرخش موتور خواهیم شد اما در این حالت گشتاور و جریان مصورفی موتور نزدیک ۲ برابر خواهد شد. افزایش گشتاور به معنی افزایش قدرت چرخانندگی (نه سرعت چرخش) هستش.
نوع دیگری از القا پله به استپ موتور وجود داره بنام
سیم۱ سیم۲ سیم ۳ سیم ۴ شماره پله
0 0 0 1 1
0 0 1 1 2
0 0 1 0 3
0 1 1 0 4
0 1 0 0 5
1 1 0 0 6
1 0 0 0 7
1 0 0 1 8
حرکت نیم پله. همونطور که از اسمش پیداست این مدل باعث چرخش موتور به اندازه نیم پله خواهد شد. مثلا اگر زاویه موتوری ۱.۸ درجه هست هر پله از این مدل باعث چرخش موتور به اندازه ۰.۹ درجه خواهد شد. از ویژگی های این روش افزایش حساسیت استپر موتور ما هستش.
لازم به ذکره که اگر بیت های این سه جدول رو از بالا به پایین القا کنیم موتور در جهت ساعتگرد و اگر از پایین به بالا اجرا کینم در جهت پادساعتگرد خواهد چرخید. نحوه اعمال این بیتها به موتور توسط میکروپروسسور رو در پستهای بعدی شرح خواهم داد.

در مورد استپ های ۵ سیمه و ۶ سیمه صحبت می کردم! در مدل ۵ تایی فقط یک سیم مشترک (COM) وجود داره ولی در مدل ۶ تایی ۲ سیم مشترک وجود داره که باید به ولتاز وصل بشن (سیم یا سیمهای مشترک معمولا قرمز هستند ولی بازم از فروشنده بپرسید) یعنی در هر دو در آخر فقط ۴ تا سیم باقی میمونه که کاربردشون رو خواهم گفت. ۱ تفاوت عمده دارن که اون رو به موقعش توضیح میدم.
نحوه تست سالم بودن موتور پله ای: برای اینکار در مرحله اول باید مطمئن بشیم هیچکدوم از سیمها به هم اتصال ندارن (بهم نچسبیدن :)) حالا با دست شفت رو بچرخونید، می بینید که راحت و روان می چرخه! حالا تمام سیم ها رو به هم اتصال بدید و سعی کنید دوباره شفت رو با دست بچرخونید، اگر یه مقاومت یا سفتی نسبت به حالت قبل احساس کردید بدونید حتما استپتون سالمه! (بدون نیاز به هیچ منبع تغذیه)
یافتن ترتیب صحیح سیمها: پیدا کردن این ترتیب خیلی مهمه و اگر رعایت نشه موتور ما درست نخواهد چرخید و مارو به اشتباه می اندازه. برای اینکار ابتدا سیم (یا سیمهای) مشترک رو به ولتاژ مورد نیاز موتور (روی بدنه موتور می نویسن ولی معمولا ۱۲ ولت) وصل می کنیم. بعد از میون ۴ تا سیم باقیمونده یکی رو انتخاب می کنیم و سر منفی یا زمین منبع رو به اون اتصال می دیم. اینکار باعث یه چرخش کوچیک میشه. یه کاغذ گرد یا یه تیکه چوب به شفت ببندین تا چرخش های ریز معلوم بشه. این چرخش کوچیک در واقع همون یک پله موتور به اندازه زاویه موتور هستش. حالا سر منفی (از این به بعد میگم GND، یا گراند کردن) رو به یکی از ۳ تا سیم دیگه اتصال بدید. اگر از این ۳ تا سیم، سیم صحیح رو انتخاب کرده باشید یه گردش کوچیک (به اندازه قبلی) در ادامه حرکت قبلی می بینید ولی اگر خطا باشه گردش معکوس یا بیش از حد (۲ یا ۳ پله) خواهید داشت. اگر سیم خطا بود دوباره زمین رو به سیم اول اتصال بدید و همون کار رو با ۲ سیم دیگه تکرار کیند تا زمانی که سیم صحیح پیدا بشه. وقتی سیم صحیح پیدا شد سیم اول رو کنار میگزارید و مراحل رو از اول برای سه سیم باقیمونده انجام میدید تا ترتیب ۴ تا سیم رو پشت سر هم پیدا کنید.
نحوه کنترل موتور پله ای: یادتونه که برای یافتن ترتیب سیمها چکار می کردیم؟ بله سیم (سیمهای) مشترک رو به سر مثبت منبع وصل می کردیم و با اتصال دادن هر سیم به GND باعث چرخش یک پله ای موتور می شدیم. حالا اگر این چهارتا سیم رو به ترتیب صحیح کنار هم قرار بدیم و سر منفی منبع رو به ترتیب هی روی اونها بکشیم، می بینیم که موتور -هرچند دست و پا شکسته- شروع به چرخش می کنه! (البته باید ترتیب سیمها کاملا صحیح باشه)
حالا فرض کنی چهار تا سیم رو به صورت چهار بیت -بیت فقط میتونه ۰ یا ۱ باشه- در نظر بگیریم و ۱ شدن هر کدوم به معنی اتصال اون به GND باشه (البته اینجا شما فقط برای درک بهتر این رو فرض کنید چون در واقعیت برعکسه یعنی ۰ به معنی گراند شدن هستش). مثلا ۰۰۰۱ یعنی سیم اول گراند شده و ۰۱۰۰ یعنی سیم سوم گراند شده.
این قسمت فقط پیش زمینه ای بود برای درک نحوه کنترل استپ. پس از دوستان حرفه ای که این مطالب به دردشون نخورد معذرت می خوام(بگو کدومش به درد میخوره !) جلسه بعد نحوه کنترل استپ به چند روش مختلف رو آموزش میدم که یکی از دوست داشتنی ترین مباحثه!
جلسه پیش مدار سنسورها رو نشون دادم اما توضیحات تکمیلی موندش که حالا میگم.
ببینید کلا هرچقدر تعداد و تنوع سنسورها در یه ربات بیشتر باشه بالطبع عملکرد اون خیلی بهتر و عاقلانه تر (هوشمندانه تر) بنظر خواهد رسید. البته کنترل و ایجاد ارتباط میان این سنسورها در مغز ربات (میکروکنترلر) بسیار مهم هستش و بدون یک برنامه بهینه هیچوقت این ادعا درست نخواهد بود! با این وجود همونطور که در مدل ها و مدارهای مختلف در سایت ها و وبلاگهای متعددی دیدید هرکدوم از هرچندتا سنسور که دوست داشتن استفاده کردن! از حالت مینیمم که دوسنسوره باشه گرفته تا چهارتایی و بیشتر... اما همونطور که گفتم هر چقدر تعداد این سنسورها بیشتر باشه برای بهینه تر کردن کارایی اونها در میکروکنترلر باید برنامه پیچیده تری رو نوشت. این پیچیدگی در کد یجورایی بصورت تصاعدی افزایش پیدا میکنه، ولی خوب تا سه یا چهار سنسور این تصاعد زیاد صعودی نیست و بعد از اون (۵ ۶ ۷ وو...) بیشتر خودشو نشون میده! که البته این به نحوه قرار گرفتن سنسورها هم خیلی ربط داره... با این حال من بخاطر اینکه این مقالات رو از ابتدایی ترین سطح شروع کردم سعی کردم از همون مدل ۲ سنسوره که حالت قرارگیری اون رو هم در شکل نشون دادم، استفاده کنم. بزرگترین مزیت این مدل (۲ سنسوره) این هست که کد میکروی بسیار ساده و کوتاهی داره و آموزش و فهم اون خیلی راحته و بزرگترین عیبش هم اینه که روبوت یه جورایی زیگزالی حرکت میکنه! (البته هرچقدر استانداردها به سمت ایده آل میل کنه این خطا هم کمتر میشه) که البته برای شروع عیب بزرگی نیست! در چیدمان سنسورهاتون اگر از مدل ما (۲ تایی) استفاده می کنید مثل شکل، حتما فاصله بین فرستنده و گیرنده، که معمولا ۲.۵ میلیمتر در نظر گرفته میشه (اما هرچقدر کمتر باشه حساسیت بیشتر میشه) و فاصله بین دو گیرنده (۲ نقطه سیاه) که بستگی به ضخامت خط سیاهتون داره (۱.۵ الی ۲ سانت بیشتر)، را در نظر بگیرید تا از ایجاد نقص های ذکر شده جلوگیری کنید. همچنین فاصله پک سنسورها (مجموعه فرستنده و گیرنده) از زمین نباید زیاد باشه و معمولا اون رو ۱.۵ تا ۳ سانت اختیار میکنن تا حساسیت کم نشه!
راستی یادتون باشه برای خرید میکروی AVR Atmega32 حتما مدل L اون رو بخرید چون با وجود یکسان بودن قیمت، مل ال اون پروگرمر ساده ای داره درواقع اصلا پروگرمر نیست فقط باید چندتا پایش رو مستیم به پورت موازی وصل کنید (که بعدا شکلشو نشون میدم). پس یادتون باشه مثل من اشتباه نکیند. در مورد کامپایلر Bascom هم که چند وقت پیش برا دانلود گذاشته بودم معذرت می خوام چون متوجه شدم اصلا بدرد نمی خوره!!!. یه نسخه عالی دارم که بوقتش آپلودش می کنم.
در آخر این پست پیشنهاد می کنم اگر علاقه به ساخت ربات دارید (که اگه اینجایید حتما دارید) فقط به خواندن مطالب، پرینت و جمع آوریشون بسنده نکنید چون اصلا کافی نیست و فکر نمی کنم حتی ۱۰٪ کار عملی بازده داشته باشه... تا پست بعدی موفق باشید






آموزش ساخت ربات (مدار سنسورها۱)


سلام. قرار شد دیگه از سخت افزار رو شروع کینم برا همین امروز قصد دارم مدار سنسورها رو نشون بدم و کمی در موردش توضیح بدم. البته این مدار بقدری ساده هست که دیگه احتیاجی به توضیح نداره برای همین برای تکمیل مطلب کمی درمورد نکات مهم در استفاده اون در ربات و چندتا نکته در مورد انواع سنسورها بسنده می کنم. من خودم مدار پیچیده تری داشتم که در اون میشد حساسیت سنسورها رو با پتانسیومتر تنظیم کرد اما به سفارش فاضل از مدار پیشنهادی اون که خیلی هم ساده و قابل فهم هست استفاده کردیم! شکل روبرو مدار سنسورها و درواقع تنها مدار موجود در ساخت ربات ماست!
سنسورها: سنسورهای استفاده شده در این مدل رباتها سنسورهای نوری هستن که از یک فرستنده و یک گیرنده نوری تشکیل شده اند. همونطوری که در فیزیک خوندیم سطح سیاه (کلا تیره) نور رو بیشتر جذب می کنه ولی سطح سفید (روشن) نور بیشتری منعکس می کنه! اساس کار این سنسورها هم بر همین مبناست! نور (نامرئی یا مرئی) توسط فرستنده تابونده میشه و اگر سطح زیر اون تیره باشه همه نور رو جذب میکنه و گیرنده چیزی دریافت نمی کنه و اگر روشن باشه به همون صورت گیرنده بازخورد خودشو به نحوی که توضیح خواهم داد در مدار نشون میده!
گیرنده ها دو مدل هستند ترانزیستوری و مقاومتی! گیرنده های ترانزیستوری درست مثل ترانزیستور عمل می کنن و در واقع پایه بیس (B) اونها میزان نور دریافتی هستش و هرچقدر نور بگیرن جریان عبور میدن (اگه نمیدونید ترانزیستور چیه یه نگاه به کار دخترا بندازید). ولی مقاومتی ها برعکس هستند، هرچقدر نور بگیرن مقاومتشون بیشتر میشه و جریان کمتری عبور میدن. چون در ایران به علت پاک بودن قلبها سطح سفید بیشتر از سطح سیاه پیدا میشه ! من از نوع مقاومتی استفاده کردم تا، زمانی که سنسورها روی خط سیاه نرفتن مقاومت زیاد بشه و خروجی صفر به میکرو ارسال بشه.
شما میتونید با قرار دادن یه LED بجای خروجی (مانند شکل) صحت مدار و سنسورهای خودتون رو چک کنید. در حالت عادی LED روشن هست اما وقتی یه کاغد سفید جلو سنسورها بگیرین LED خواموش خواهد شد انگار به میکرو ۰ یا ۱ فرستاده میشه. این خروجی بواسطه یه مقاومت ۲۲۰ به یه پین از (مثلا) پورت B میکرو وصل میشه و محاصبات و عملیات لازم اونجا رویش صورت می گیره. البته باید توجه کنید کنار هم قرار داشتن فرستنده و گیرنده و زاویشون اهمیت داره و گرنه باعث اختلال میشه که با کمی توجه حل شدنیه! راستی یادم باشه بهتون بگم عوامل متعددی ممکنه در کار این سنسورها اختلال ایجاد کنه مثلا لامپ های رشته ای(همین لامپ رو سقف!) یا نور زیاد خورشید! بخاطر اینکه این نورها دارای فرکانسهای مختلفی هستند که ممکنه با فرکانس سنسورهای شما یکی باشه و.... اگه یکمی پولتون زیاده پیشنهاد می کنم از نوع CNY70 بخرین(دونه ۱۰۰۰ تومن). چون گیرنده و فرستنده به صورت یه پک کوچیک هستند و حساسیت و دقت رو بینهایت افزایش میده و فکر نکنم از این بدبختیا داشته باشه اما اگه مثل من .... هیتید از مدل جفتی ۲۰۰ بخرین و کلی حال کنید......
خوب دیگه این پست خیلی طولانی شد. فعلا قطعات رو بخرین و مدار رو روی بردبورد ببندید و امتحان کنید تا بعد.... راستی لازمه در مورد این مدار بیشتر توضیح بدم؟ (مثلا دلیل وجود ترانزیستور و....) یا همه به آنالوگ تسلط کامل دارن برعکس من ! اگه لازمه خجالت نکشید و بگید، من توضیح میدم. در هر صورت نظر یادتون نره چون بدون نظر از پست بعد خبری نیست .



آموزش ساخت ربات (میکروکنترلر۴)

خوب مقدمات ایجاد یه برنامه در Bascom رو گفتم و امروز میخوام دیگه مبحث برنامه نویسی میکرو رو تموم کنم و بقیه توضیحات رو بزارم روی برنامه اصلی کنترل رباتمون (رو خود برنامه توضیح خواهم داد) و از جلسه بعد بریم تو کار سخت افزار ، و اما:
پیکربندی پورتها: همونطور که در شکل مقابل می بینید میکروی AVR (مدل ATMEGA32) داری ۴۰ پایه هستش که ۳۲ تا از پایه های اون می تونه برای چهارتا پورت موجود در اون استفاده میشه. این ۴ پورت مانند شکل به صورت PA, PB, PC, PD نامگزاری شده اند که البته هر کدام از این پورتها دارای ۸ پین (۸X۴=۳۲) هستند. که درواقع هر پورت رو باید به صورت یک بایت در نظر گرفت و هر پین رو به صورت یک بیت (حتما می دونید هر بایت، ۸ بیت هستش!) فرض کرد و هر کدوم از این ۳۲ پایه میکرو مربوط به پین خاصی از یک پورت است. در Bascom نماد پورتها به صورت portx که X یکی از حروف A..D هست بکار میره و نماد پین های هر پورت هم به صورت portx.y که در اینجا X مثل بالا هستش و y شماره پین از ۰ تا ۷ میباشه (۰تا۷ میشه ۸تا ). مثال:
PortB = 10 'set portb to 10
PortC.0 = 0 'Set pin 0 of portC to 0
PortC.4 = 1 'Set pin 4 of PortC to 1
نکته دیگه که باید دقت کنید اینه که پورت ها یک بایتی هستند یعنی نهایت عددی که میشه در اونا قرار داد ۲(۱۱۱۱۱۱۱۱) درمبنای باینری یا ۲۵۵ در مبنای دهدهی خودمون هست. وقتی عدد ۲(۱۱۱۱۱۱۱۱) یا ۲۵۶ رو مثلا در پورت سی قرار بدیم تمام پین های این پورت ۱ میشن و اگر باز عدد ۱۷ معادل ۲(۰۰۰۱۰۰۰۱) رو در اون قرار بدیم (PortC=17) انگاه پینهای ۰ و ۴ این پورت یک خواهند شد. فکر کنم فهمیده باشید قضیه از چه قراره :) فقط باید یکم تبدیل باینری به دهدهی و برعکس رو بلد باشید... اما اگر هنوز کار میکروکنترلر رو درک نکردید و اصلا نمیدونید حالا یک شدن هر پین به چه درد می خوره اصلا نگران نباشید چون به موقع توضیح خواهم داد.
این جلسه می خواستم نحوه پیکربندی پرتها در Bascom رو توضیح بدم (مثلا کدوم پورت ورودی باشه کدوم خروجی و...) اما پیش خودم فکر کردم اصلا ممکنه بعضیها ندونن پورت چیه! پین کیه! بایت چیه! بیت کیه! برا همین یه توضیح مختصر دادم و از این بیشتر دیگه در مجال و توان و فضا و... ما نمی گنجه. پس پیکربندی هم میمونه برای بعد از آماده شده کد اصلی کنترل ربات که همون موقع کاربردشو در کد به صورت مثال نشون خواهم داد. اینجوری هم قابل فهم تره هم شیرین تر. تا جلسه بعد و شروع آموزش سخت افزار ربات خداحافظ دوستان








آموزش ساخت ربات (میکروکنترلر۳(

شروع برنامه نویسی AVR با کامپایلر Bascom بود:
بدنه یک برنامه در محیط Bascom:
(منظور از بدنه حداقل کد یک برنامه هستش بدون هیچ فرمانی) بدنه یک برنامه در محیط Bascom شامل تعیین نوع میکرو مورد استفاده٬ کریستال٬ پایان و گزینه های اختیاری دیگری است که در زیر معرفی میشن.
معرفی میکرو:
برای شروع یک برنامه در محیط Bascom ابتدا بایستی میکروی مورد نظر تعریف گردد. چون توصیه من در استفاده از مدل ATMEGA16|32|128 بود٬ بنابراین فعلا به علت زیق در همه چی فقط به تعریف همین ۳ مدل بسنده می کنم:
$REGFILE = VAR 'فرم کلی تعریف٫ "وار" یه رشته معرف مدل خاص میکروی مورد نظر هستش
$REGFILE = "M16def.dat" 'MEGA 16 MCU این برا مدل
$REGFILE = "M32def.dat" 'MEGA 32 MCU این برا مدل
$REGFILE = "M128def.dat" 'MEGA 128 MCU این برا مدل
کریستال:
برای مشخص کردن فرکانس کریستال (میکرو ها باید به یه قطعه خارجی بنام کریستال وصل بشن) استفاده شده برحسب هرتز از دستور CRYSTAL = X$ استفاده می نماییم X فرکانس کریستال استفاده شده بر حسب هرتز است. خوشبختانه AVR دارای یک کریستال 1MHZ داخلی هستش که واقعا یک نعمته! اما حتی برای استفاده از اون هم باید این دستور رو بکار ببریم. مثال:
$CRYSTAL = 100000 '1MHz internal
$CRYSTAL = 140000 '14MHz external
یاداشت(اختیاری گاهی نیاز است یاداشتهایی برای اطلاعات بیشتر در برنامه اضافه کنید٬ در Bascom هم مثل بیسیک می تونید با علامت " ' " یا REM اینکارو انجام بدید. درست مثل یادداشت های اضافی که من در مثالهای قسمتهای قبل استفاده کردم! مثال:
Print "Hello World" 'این دستور بعدا معرفی میشه
REM این هم یه مدل دیگه از یادداشت اختیاریه
همچنین در پایان هر برنامه باید از کلمه END استفاده کنید که مثل یک حلقه بی پایان عمل می کنه (مثلا در سی باید همیشه یه حلقه درست کنی. یه کار تکراری) و دلیل استفادش چه در این کامپایر و برای این میکرو و چه در سایر کامپایلرها و برای میکروهای دیگه٬ اینه که سیستم برنامه میکرو با کامپیوتر فرق فوکوله و اگه از END یا حلقه بی پایان استفاده نکنیم برنامه همینطور میره پایین و سایر آدرس های حافظه میکرو رو به خیال ادامه برنامه میخونه که این باعث Error میشه دیگه! پس End یادتون نره!
خوب دیگه از گزینه های اجباری بدنه تغریبا چیزی نموند و برای اینجلسه هم کافیه! جلسه بعد آموزش نحوه تعریف شرط و حلقه و ... در Bascom رو داریم پس حتما مطلب رو دنبال کنید. راستی تا یادم نرفته بگم بعضی از مطالب بالا رو از رو کتاب AVR مهندس "علی کاهه" کپ زدم! همین که مرجع رو گفتم خیلی هم دلش
آموزش ساخت ربات (میکروکنترلر۲)
جلسه قبل کمی در مورد میکرو و میکروی مناسب کار خودمون صحبت کردیم. این جلسه می خوام به طور کلی تر راجع به قابلیت های میکروی AVR بخصوص مدل Atmega32 صحبت کنم. بزارین بعضی از قابلیت های مهم مربوط به کار خودمون رو بصورت لیست بنویسم:
• کارایی بالا و توان مصرف کم
• سرعت بسیار بالا نسبت به سایر میکروها
• 32K حافظه فلش داخلی قابل برنامه ریزی
• پایداری حافظه فلش: قابلیت 10000 بار نوشتن و پاک کردن
• 2K حافظه داخلی SRAM
• 2 تایمر-کانتر 8 بیتی و یک تایمر-کانتر 16 بیتی
• .....
برنامه نویسی Atmega32:
همونطور که گفته بودم برای برنامه نویسی این میکرو از Basic و کامپایلر معروف Bascom استفاده می کنم (لینک دانلود این کامپایر رو آخر پست گذاشتم). چون من می خوام خیلی گزرا به چند تکنیک وتابع این زبان اون که در برنامه نویسی رباتمون استفاده میشه اشاره کنم اصلا وقت نمیشه درباره یکی یکی ابزارهای محیط این کامپایلر توضیح بدم. اما در آینده با آموزش پروپه های دیگه حتما اونا رو هم پوشش خواهم داد.

همونطور می بینید فقط 7 تا منو از قرار File, Edit, Program, Options, Tools, Window, Help داره. منوی File, Edit, Window, Help تمام برنامه های ویندوز که با هم مو نمی زنه پس اینا هیچ :). منوی Options هم که از اسمش پیداست برای تنضیمات کامپایلر و معرفی نوع و مدل میکرو و.. هست که البته هنگام پروگرام کردن میکرومون سراغش میایم و توضیحات کافی رو میدم. می مونه منوی Program که درواقع گزینه هایی برای کامپایل کد, Syntax Check و شبیه سازی داره که به مجرد شروع برنامه نویسی باهمینا باید سروکله بزنیم.
حتما Bascom رو دانلود کنید و یکم وارسیش کنید چون پس فردا که برگشتم دیگه تفره نمی رم و دیگه آموزش کد نویسی رو خواهیم داشت که اون هم یکی دو جلسه بیشتر طول نمی کشه و بعد میریم سر مباحث الکترونیکی رباتمون. اما باور کنبد لذت برنامه نویسی و سروکله زدن با میکرو اونم AVR چیزی کم از ساخت ربوت نداره! تا پس فردا یا حق.












آموزش ساخت ربات (میکروکنترلر۱)

میکروکنترلر چیست: میکروکنترلر رو درواقع می توان یه کامپیوتر کوچولو در قالب یه چیپ برای کنترل وسایل الکترونیکی (در اینجا ربات) تلقی کرد. تفاوت میکروکنترلر با میکروپروسسور در اینه که میکروکنترلر دارای یک CPU ٫مقدار محدودی RAM ٬ ROM ٬ پورت های I/O و تایمر در درون خود می باشد در صورتی که میکروپروسسور فقط یه CPU هست و شما باید RAM, ROM ,... رو به صورت اجزای جانبی به اون متصل کنید (درست مثل CPU کامپیوتر). برای همین میکروکنترلرها تک منظوره ولی میکروپروسسورها همه منظوره هستند. با این تفاسیر میکروکنترلرها دارای کارایی های خاص خودشون مثلا در ماشین لباسشویی٬ ماکروویو٬ تلفن و البته ربات هاو... هستند یعنی جایی که استفاده از میکروپروسسور نه از نظر کارایی و نه از نظر اقتصادی عقلانیه! تازه فهمیدیم میکرو یعنی چی :)
انتخاب میکرو(مناسب ربات ما در انتخاب میکرو فاکتورهای زیادی دخیله: ۱-هزینه ۲-سرعت ۳-کارایی و قابلیت ها ۴-راحتی کار با آن و... در حال حاضر در بازار ایران میکروهای متنوعی ازجمله ۸۰۵۱ از اینتل٬ PIC از میکروچیپ تکنولوژی و AVR از شرکت ATMEL هواخواهان زیادی دارن. همچنین آمارها نشون داده که در ساخت ربات اکثرا از PIC استفاده شده (در آمریکا :)) ولی من می خوام این پروژه رو با AVR انجام بدم چون تقریبا کم هزینه (۳۵۰۰) هستش٬ هم کارایی های مناسبی داره٬ هم برنامه نویسی برا اون آسونه (هم C داره هم Basic تازه کلی هم نرم افزار Emulator, Simulator ,... داره) و تازه پروگرمر ائن بسیار ساده و کم خرجه. با این حال فکر نمی کنم نوع میکرو تفاوتی در نقشه مدار و.. بزاره بجز کد و کامپایلر میکرو که سعی می کنم مال PIC یا حتی ۸۰۵۱ رو هم در کنار AVR زمیمه کنم. پس کسایی که با AVR کار نکردن اصلا نگران نباشن.
راستی یادم رفت بگم برا این ربات از AVR مدل Atmega32 استفاده خواهم کرد (مفت ۳۵۰۰ :)) و برای آموزش برنامه نویسی اون با وجود کامپایلرهای متنوعی چون Bascom (بیسیک) و CodeVision (سی) من Bascom رو انتخاب می کنم تا تازه کارهای برنامه نویسی هم مشکلی نداشته باشن (بیسیک که دیگه کاری نداره!). فکر نمی کنم چیزی ناگفته مونده باشه! پس از جلسه بعد آموزش ساخت پروگرمر و یکم آموزش برنامه نویسی AVR ٬البته فقط در حد کار خودمون -ربات- رو خواهیم داشت. (بگو ایشالا )




طریقه استفاده از سنسور GP2S04-6
این سنسور یک گیرنده فرستنده مادون قرمز می باشد که برای ربات های خط یاب برای تشخیص رنگ سیاه و سفید گزینه ی مناسبی می باشد اندازه این سنسور بسیار کوچک و نسبتأ قیمت مناسبی دارد.

توجه : بهترین بازده برای این سنسور در فاصله mm 6-4 از زمین می باشد .

این سنسور 4 پایه دارد که 2 پایه از آن به زمین وصل شده و 2 پایه دیگر یکی با مقاومت 220 اهم برای فرستنده و دیگر با مقاومت 470 کیلو اهم برای گیرنده به vcc
وصل به شوند .

خروجی این سنسور از بین پایه گیرنده و مقاومت 470 کیلو اهم گرفته می شود.
شکل سنسور به صورت زیر است


وصل کردن سنسور در مدار :



زمانی که زیر سنسور رنگ سفید باشد مقدار خروجی حدود 0/7- 0/2 ولت می باشد و زمانی که رنگ سیاه باشد خروجی حدود 4/3 – 3/3 ولت می با شد .





چگونه یک ربات مسیریاب بسازیم!!! (قسمت اول!)
روباتی که در اینجا تصمیم به تو ضیح نحوه ساخت آنرا دارم بروی زمینه سفید بدنبال خط مشکی حرکت میکند. میکروکنترلر مورد استفاده در روبات ATmega8 می باشد. و کدهای برنامه روبات با استفاده از نرم افزار BASCOM ایجاد شده اند.
روبات شامل دو موتور در طرفین خود می باشد، که جهت حرکت به جلو هر دو موتور را روشن می کند، زمان دور زدن به چپ موتور سمت چپ خاموش و موتور سمت راست روشن می شود و برای دور زدن به سمت راست موتور سمت راست خاموش و موتور سمت چپ روشن می شود. البته موتورهای بکار رفته DC موتور بوده و جهت کاهش سرعت و در نتیجه کنترل دقیق تر روبات از موتورهایی با گیربکس سرخود استفاده شده، که قیمت آن در بازار جمهوری تهران 7000 تومان است در صورتی که به این نوع موتور دسترسی ندارید میتوانید از موتورهای اسباب بازی گیربکس دار استفاده کنید، در غیر این صورت بایستی خودتان گیربکس را بسازید دقت داشته باشید که دور نهایی چرخش چرخهای روبات 60 دور بر دقیقه باشد.
برای تشخیص مسیر از دو LED پر نور استفاده شده که سطح مسیر حرکت را روشن می کنند و انعکاس نور به فتو رزیستورهای قرار گرفته در زیر روبات برخورد می کند. اگر روبات روی خط باشد مقدار نور منعکس شده حداقل بوده و در نتیجه مقدار مقاومت آن افزایش میابد و ولتاژ دو سر آن افزایش می یابد و میکروکنترلر از روی این تغییر ولتاژ متوجه وجود خط می گردد.(در غیر این صورت نور منعکس شده زیاد بوده، مقدار مقاومت فتورزییستور کاهش میابد و ولتاژ دوسر آن کاهش میابد.)پس همانطور که ذکر شد میکرو کنترلر تغییرات ولتاژ فتورزیستور را احساس میکند. من برای این کار از مبدل های درونی آنالوگ به دیجیتال میکرو استفاده کردم. البته دو عدد فتورزیستور به همراه دو LED جهت تشخیص طرفین مسیر استفاده شده.
________________________________________
برنامه روبات به زبان BASIC نوشته شده در محیط BASCOM
$regfile = "m8def.dat"
$crystal = 8000000

Config Portd = Output 'Portd used for control motor
Config Adc = Single , Prescaler = Auto
Start Adc 'Start Analog to Digital Converter

Dim S1 As Word 'S1 Right Sensor
Dim S2 As Word 'S2 Left Sensor

Portd = 0
Wait 3

Do

S1 = Getadc(3) 'Read Sensor 1
S2 = Getadc(5) 'Read Sensor 2

'portd.0 right motor
If S2 > 400 Then Set Portd.0
If S2 < 300 Then Reset Portd.0

'portd.2 left motor
If S1 > 400 Then Set Portd.2
If S1 < 300 Then Reset Portd.2

Loop
End 'end program
________________________________________
.::لیست قطعات مدار روبات::.

--میکرو کنترلر ATmega8 یک عدد
--آی سی رگولاتور7805 یک عدد
--آی س ULN2803 یک عدد
--موتور 5 ولتی با گیربکس و دور بر دقیقه 60 دو عدد
--رله 5 ولتی دو عدد
--دیود 1N4001 دو عدد
--مقاومت 10کیلو اهمی دو عدد
--مقاومت 330 اهمی دو عدد
--فتورزیستور کوچک دو عدد
--دیود نورانی سفید پر نور دو عدد
--خازن 330 میکروفاراد دو عدد
--برد هزار سوراخ 11.5 در 6.5 سانتی متر
________________________________________
.::لیست قطعات مکانیک روبات::.
--چرخ ماشین اسباب بازی کوچک دو عدد
--فولی ضبط صوت جهت چرخ وسط یک عدد
--پیچ اسپیسر (Spacer) سه سانتی به همراه مهره چهار عدد
--ترمینال برق چهار خانه یک عدد
--تخته سه لا 12 در 12 سانتی متر
________________________________________
مراحل ساخت مکانیک روبات
________________________________________






یک روبات مسیر یاب آماده

روبوت دنبال کننده خط سیاه:
این روبوت مدار خیلی ساده ای داره ومن اون رو با تمام فایل هایی که برای پروگرمر لازم داره براتون میذارم حتی یک اماتور هم میتونه به سادگی اون رو بسازه برای موتورها و چرخ میتونید از موتور های ساده ماشینهای اسباب بازی استفاده کنید در این روبوت دو تا چرخ عقب توسط موتور کنترل میشه ولی چرخ جلو ازاده از چهار تا سنسور هم برای تشخیص نوار سیاه استفاده شده وقتی که سنسورها نوار سیاه رو میبینن خروجی مقایسه کننده low,lm324خواهد شد و در بقیه موارد خروجی highخواهد بود در اینجا برای درایور کردن موتورها از ای سی l293dاستفاده شده که برای کنترل سرعت و جهت موتور استفاده شده اگه نتونستید این ای سی رو توی بازار پیدا کنید پیغام بذارید تا یه مدار دیگه ای که میشه جایگزین کرد رو براتون بفرستم
توجه:نحوه قرارگیری سنسورها خیلی مهمه
برای پروگرم کردن ۸۹۵۱احتیاج به یک پروگرمر دارید ولی فایل هگز به صورت اماده در دسترس هست امیدوارم که این روبوت رو بسازید و از ساخت اون لذت ببرید اگه در رابطه با ساخت به مشکلی بر خوردید سوال کنید من هم سعی میکنم جواب بدم از این مدار حتی میتونید به عنوان یه پروژه دانشجویی هم استفاده کنید
فایلها رو با کلیک روی لینکهای زیر میتونید دریافت کنید
با توجه به اینکه خیلی از دوستان راجع به این روبوت سوال داشتند من این قسمت رو ویرایش کردم تا تعدادی از سوالات رو جواب بدم:
۱.در مورد مدار چاپی باید بگم زیاد احتیاج به pcbنیست چون می تونید از برد سوراخ دار استفاده کنید و نتیجه بگیرید اگر هم خواستید می تونید با پروتل طراحی کنید ولی من pcbاین مدار رو به صورت اماده ندارم
۲.در مورد مکانیک این روبوت همونطور که گفتم می تونید از اسباب بازی استفاده کنید
جهت اشنایی بیشتر با مکانیک اینگونه روبوت ها می تونید به سایت های زیر مراجعه کنید
چگونه یک روبوت مسیریاب بسازیم:(ایران روباتیک)
http://robotic.farsitools.com/upload...e14cad9164e8d8
http://www.hlachini.com/Projects/robotic/index.htm فارسی
http://www.leang.com/robotics/info/a...sen/index.html انگلیسی
۳.در مورد مدار جایگزین ای سی هم می تونید منتظر باشید تا روبوت خودم رو اپلود کنم و از درایور اون استفاده کنید و یا از سایتهایی که در این رابطه معرفی کردم استفاده کنید

robot c
robot-hex
robot-asm


آموزش ساخت ربات مسیریاب (برنامه نویسی )

برنامه ای بنویسیم که بوسیله اون بشه استپر موتورهامون رو راه اندازی کنیم (عین همین روش رو باید در برنامه اصلی ربات استفاده کنیم) :


$crystal = 1000000
$regfile = "m32def.dat"
Config Portb = Output
Config Portc = Output
Dim A As Byte
Dim B As Byte
B = &B10001000
A = &B10001000
Do
Rotate A , Left
Portb = A
Rotate B , Right
Portc = B
Waitms 15
Loop
End
خوب حالا خط به خط تحلیل می کنیم. البته خوب یادمه توضیحات کاملی رو در مورد کدهای استفاده شده در چهار خط اول در پست های "آموزش ساخت ربات (میکرو کنترلر 1 - 2 - 3 - 4) دادم. پس اگه یادتون رفته بهشون دوباره سر بزنید.
Dim A As Byte
Dim B As Byte

کلا در زبان های خانواده بیسیک که کامپایلر BASCOM هم از اون استفاده می کنه، از کلمات Dim و as به صورت Dim varname as type برای تعریف متغیر استفاده می شه، که varname نام متغیر و type نوع متغیر هستش. در اینجا دو متغیر به نامهای A و B با نوع Byte معرفی شدن (هر بایت از ۸ بیت تشکیل شده)

B = &B10001000
A = &B10001000
استفاده از " مقدار = نام متغیر " که برای همه قابل درکه (یعنی یک مقدار رو داخل متغیر بریزیم) اما در اینجا بجای مقدار از &B10001000 استفاده شده. برای قرار دادن مقادیر به صورت باینری در یک متغیر (در این زبان) باید مقدار باینری رو بعد از B& بنویسم. در اینجا، هم در A و هم در B مقدار باینری ۱۰۰۰۱۰۰۰ معادل دهدهی ۱۳۶ رو قرار دادیم. که دلیلش رو توضیح خواهم داد.




عنوان :موارد اولیه برای کارگاه الکترونيک رباتيک

تعداد موارد زیر متناسب با نفرات و بودجه در نظر گرفته شده می باشد

۱- منبع تغذيه ۴۶ ولت ۵ آمپر
۲-هويه
۳-قلع کش
۴-فيبر سوراخ دار
۵-برد برد
۶-LED رنگ های مختلف و اندازه های مختلف
۷-مقاومت از رنج .۵ اهم تا ۱ مگا اهم
۸-خازن عدسی ۱۰n , 100n , 33n
9-خازن پولي استر از 1uf تا ۲۲۰۰uf
10-کريستال ۱۲MZH و ۱۱.۰۵۹۲
۱۱-array 10k,1k,470
12-پروگرامر ( حتما 89s51 , 89c51 , 89c4051) را پراگرام کند
۱۳-مولتی متر
۱۴-micro 89s51
۱۵-گيت های منطقی and,or,nor,xnor,not,...
16-سیم به مقدار لازم
۱۷-انبر دست و سیم چین و پیچ گوشتی در اندازه های مختلف
۱۸-پایه ای سی ۸و۱۰و۱۴و۱۶و۱۸و۲۰و۴۰ پین
16- IC های زير
L298
L293
LM328
LM358
555
7805
7808
GP2S04
BD138
BD139
TIP41
TIP42
POT 1k , 10k , 5k , 100k
Multiturn 1k , 5k , 10K , 100k
کليد
پايه سوکت
و ...

برای شروع اين لوازم کافی می باشد
Green heart آفلاين است   پاسخ با نقل قول
قدیمی Aug-13-2007, 19:01   #27
علی آرین
كارشناس تالار الكترونيك
 
آواتار علی آرین
 
تاریخ عضویت: 2006-10-04
شهر سکونت: کارتن خواب آواره
رشته تحصیلی: بی سواد !
ارسالها: 672
تشکر: 261
1,461 تشکر در 831 ارسال
دریافت کتاب: 0
اهداء کتاب: 0
علی آرین is on a distinguished road
میزان فعالیت سابقه
1/20 19/20
فعالیت امروز ارسالها
ssssss672
پیش فرض پاسخ: آموزش گام به گام ساخت یک روبات مسیر یاب!

منبع رو هم قرار میدادید شیما جان ( جهت جلوگیری از اعتراض دوباره نویسندگان موضوع ) همه سایت ها و وبلاگ هایی که میکرو رو آموزش دادند یا مسیر یاب ساختند از این وبلاگ مطلبشونو کش رفتند ، و توی همگی یک ارجاع در هنگام ساخت پروگرمر به پست شماره 13 هست ! :lol:
http://eleboys.blogfa.com/
من آموزش میکرو رو توی تاپیکش شروع کردم ، البته منبعش خودمم و تعدادی از اساتید دانشگاهمون که کمک میکنند در امر آموزش !
__________________
[فقط کاربران سایت قادر به مشاهده ی لینک ها میباشند . ]
A Dream Came True

علی آرین آفلاين است   پاسخ با نقل قول
قدیمی Aug-13-2007, 20:22   #28
Sahel 87
مدیر بازنشسته تالار برق
 
آواتار Sahel 87
 
تاریخ عضویت: 2007-07-22
رشته تحصیلی: برق
ارسالها: 519
تشکر: 377
862 تشکر در 348 ارسال
دریافت کتاب: 0
اهداء کتاب: 0
Sahel 87 is on a distinguished road
میزان فعالیت سابقه
0/20 15/20
فعالیت امروز ارسالها
ssssss519
پیش فرض پاسخ: آموزش گام به گام ساخت یک روبات مسیر یاب!

سلام
تخصص و یا تجربه ی خاصی مورد نیازه واسه این كار؟!
یعنی كاری از دست منم برمیاد؟یا فقط كسائی كه از دانشگاه فارغ التحصیل شدن و تو گروه رباتیك بودن می تونن؟
Sahel 87 آفلاين است   پاسخ با نقل قول
قدیمی Aug-13-2007, 21:35   #29
علی آرین
كارشناس تالار الكترونيك
 
آواتار علی آرین
 
تاریخ عضویت: 2006-10-04
شهر سکونت: کارتن خواب آواره
رشته تحصیلی: بی سواد !
ارسالها: 672
تشکر: 261
1,461 تشکر در 831 ارسال
دریافت کتاب: 0
اهداء کتاب: 0
علی آرین is on a distinguished road
میزان فعالیت سابقه
1/20 19/20
فعالیت امروز ارسالها
ssssss672
پیش فرض پاسخ: آموزش گام به گام ساخت یک روبات مسیر یاب!

من وقتی ترم 2 بودم افتادم دنبال این کار ، ترم 2 هنوز هیچ چیزی ار برق من نمیدونستم ، البته پشتکار و علاقه مهمترین چیزه ! من کم کم آموزشها رو میزارم روی سایت ، و از پایه هم شروع میکنم تا برای دوستان دیگر رشته ها یا کسانی که هنوز وارد دانشگاه نشدند هم مفید باشه
__________________
[فقط کاربران سایت قادر به مشاهده ی لینک ها میباشند . ]
A Dream Came True

علی آرین آفلاين است   پاسخ با نقل قول
قدیمی Aug-14-2007, 10:55   #30
H A M E D
عضو سابق شورای نظارت
 
آواتار H A M E D
 
تاریخ عضویت: 2006-01-01
ارسالها: 4,753
تشکر: 527
3,674 تشکر در 1,949 ارسال
دریافت کتاب: 0
اهداء کتاب: 0
H A M E D is on a distinguished road
میزان فعالیت سابقه
0/20 20/20
فعالیت امروز ارسالها
sssss4753
پیش فرض پاسخ: آموزش گام به گام ساخت یک روبات مسیر یاب!

درست علی جان
منم هر جا دیدم سر آخر رسیدم به همین وبلاگ
__________________
http://ketaab.persiangig.com/other/1dd11.jpg

تا که بودیم نبودیم کسی
کشت ما را غم بی همنفسی
تا که رفتیم همه یار شدند
خفته ایم و همه بیدارشدند
قدر آینه بدانیم چون هست
نه در آن وقت که اقبال شکست


سلام دوران خوش سربازی
H A M E D آفلاين است   پاسخ با نقل قول
پاسخ

Bookmarks


کاربرانی که در حال مطالعه این موضوع هستند: 1 (0 عضو و 1 مهمان)
 
امکانات
حالات نمایش

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

BB code فعال
Smilies فعال
[IMG] فعال
HTML غیرفعال
Trackbacks are غیرفعال
Pingbacks are غیرفعال
Refbacks are غیرفعال

مراجعه سریع

موضوعات مشابه
موضوع نویسنده انجمن پاسخها آخرین ارسال
مقاله: لطفاً از خط قرمز لبه سکو عبور نکنید ArasH سایر موضوعات علوم انسانی 0 Jul-05-2009 11:23
نفرین زمین / جلال آل احمد Msa_Abi ادبیات 0 Jun-11-2009 12:52
فرستنده و گیرنده راداری رضا مخابرات 0 May-20-2009 07:58
ربات محصولی بیولوژیکی یا دستگاهی مکانیکی farahan8800 رباتیک 0 Apr-23-2009 11:44
تفسیري بر نقاشی کودکان MiNeRVa روانشناسي رشد 1 May-28-2008 14:29


ساعت: 22:01 بوقت تهران


Powered by: vBulletin Version 3.8.2
Copyright © 2000-2006 Jelsoft Enterprises Ltd.
کليه حق و حقوق متعلق است به سایت علمی دانشجویان ایرانAd Management by RedTyger
Powered by  MyPagerank.Net
Inactive Reminders By Icora Web Design