رفتن به مطلب

چگونه يک ربات مسيرياب بسازيم


EN-EZEL

ارسال های توصیه شده

چگونه يک ربات مسيرياب بسازيم

 

مقدمه :

 

 

براي ساختن يک ربات بايد آشنايي مقدماتي با 3 رشته مکانيک ، برنامه نويسي و الکترونيک آشنايي داشته باشيم . البته نيازي نيست در تمامي اين رشته ها خود تسلط داشته باشيم چنانچه شما عضو يک تيم هستيد هريک از اعضاي تيم بايد در مهارت خود تسلط داشته باشند تا شما به نتيجه دلخواه و ايده آل خود برسيد . در اينجا روش ساخت يک ربات همچنين تجربياتي را که در اين زمينه کسب کرده ام در اختيار شما قرار خوا هم داد . همانطور که گفته شد بحث ما شامل سه بخش است .

 

1. مکانيک

2. الکترونيک

3. برنامه نويسي

 

 

مکانيک

 

در مکانيک يک ربات مسير ياب چند بخش وجود دارد مکانيک ربات مسير ياب جزء ساده ترين مکانيک ها محسوب مي شود اين مکانيک شامل بخش هاي زير است.

 

 

1. شاسي (يا بدنه ) که تمام اجزاء روي آن قرار خواهند گرفت.

2. موتور ها

3. چرخ ها

4. برد سنسور

 

1. شاسي يا بدنه :

 

اينستف بخش در ساده ترين حالت مي تواند يک طلق پلاستيکي يا چوب (تخنه سه لا) باشد که نسبتا سبک بوده و استحکام خوبي دارد . برد الکترونيکي شما روي آن پيچ مي شود و موتور ها وچرخ ها به آن وصل مي شود و برد سنسور در جاي خود قرار مي گيرد .

 

 

2. موتور ها :

 

موتور هاي ربات يکي از مهمترين اجزاء ربات محسوب مي شوند از سه نوع موتور مي توان براي ربات استفاده کرد . موتور هايي که بايد در اين ربات ها استفاده شوند از نوع DC Motor مي باشند و مستقيماً نمي توان آنها را به چرخ وصل کرد مگر اينکه توسط گيرباکس از سرعت آنها کم شود و به قدرت آنها اضافه شود.

 

1. موتور هاي اسباب بازي ها و گيرباکس آن ها در ساده ترين حالت شما مي توانيد گيرباکس اسباب بازي ها را باز کرده و از آن ها استفاده کنيد فقط اگر از اين روش استفاده مي کنيد دقت کنيد گيرباکس ها کاملاً روان باشند و موتور ها نيز جريان کشي بالايي نداشته باشد . اگر موتور ها جريان کشي بالايي دارند بهتر است از يک موتور ديگر استفاده کرد .

 

 

2. گويي وپولي : روش ديگري که مي توان استفاده کرد استفاده از گويي وپولي ها است که از تسمه براي وصل کردن وتبديل دور استفاده مي شود اين روش هم خالي از مشکل نيست اين روش توصيه نمي شود .

 

 

3. موتور هاي گيرباکس دار : در اين موتور ها موتور و گيرباکس داخل يک مجموعه قراردارند و در دورهاي مختلف با توان هاي مختلف عرضه شده اند بهترين گزينه استفاده از اين نوع موتور ها مي باشد . چرا که يک مجموعه مطمئن است . بي صدا و حجم کمي را اشغال مي کنند و معمولا جريان کشي مناسبي دارند و تنها مشکل آن ها قيمت بالاي آن ها است .

 

 

نکته 1 : دقت کنيد موتور هاي معمولي را مستقيماً به چرخ وصل نکنيد زيرا آن ها داراي سرعت بالا ( 2000 تا 3000 ) دور در دقيقه ولي قدرت لازم براي حرکت را ندارند .

 

 

نکته 2 : شما در يک ربات مسير ياب به 2 موتور نياز داريد يکي براي موتور سمت راست وديگري براي موتور سمت چپ مي باشد . بهتر است موتور ها و چرخ ها در عقب ربات نصب شوند و چرخ هرزگرد و برد سنسور در جلوي ربات نصب شوند.

 

 

3. چرخ ها : براي يک ربات موفق مسير ياب چند نکته حائز اهميت است :

1. اندازه قطر چرخ ها

2. اندازه عرض چرخ ها

3. ميزان اصطحکاک چرخ با زمين

 

 

1. قطر چرخ ها : بهتر است اندازه چرخ ما طوري تعيين شود که با موتور ها هماهنگي کاملي داشته باشد چون هرچه قطر چرخ ها بيشتر باشد با يک دور چرخش موتور ربات به مقدار بيشتري حرکت کند و هرچه چرخ ها کوچکتر باشد حرکت ربات کمتر است . پس اندازه چرخ ها با سرعت ربات نسبت مستقيم دارد.

 

 

2. عرض چرخ ها بهتر است بين 1 تا 2 سانتي متر باشد چون هرچقدر عرض چرخ ها بيشتر باشد هم وزن چرخ بيشتر مي شود و سطح اصطحکاک بيشتري با زمين پيدا مي کند .

 

 

3. براي اينکه لاستيک ها سر نخورند بهتر است چرخي را انتخاب کنيد که اصطحکاک بسيار بالايي بازمين داشته باشد .

 

 

نکته کنکوري : ساده ترين روش براي بالا بردن اصطحکاک چرخ با زمين استفاده از چسب برق از جهت چسبنده روي چرخ است که چرخ کاملاً برروي زمين بچسبد و اصطحکاک زيادي داشته باشد .

 

 

چرخ هرزگرد : اين نوع چرخ چرخي است که فقط وظيفه حفظ تعادل ربات را بر عهده دارد و بايد کمترين اصطحکاک را بر با زمين داشته باشد تا در زماني که ربات به سمت راست يا چپ گردش داشت گشتاور کاملي داشته باشد يکي از نمونه هاي چرخ هرزگرد ساچمه يا بلبرينگ است .

 

 

4. برد سنسور : اين برد در جلوي رباب نصب مي شود و بايد فاصله استاندارد از سطح زمين را داشته باشد تا بهترين بازده از لحاظ وضعيت خط زير ربات را به ما ارائه دهد .

نکات مهم درباره مکانيک و نوع بستن آن

 

 

1. حتماً مکانيک کاملا محکم بسته شود

2. چنانچه از چسب استفاده مي کنيد سعي کنيد از چسب به همراه بست استفاده کنيد

3. براي اتصال برد ها به بدنه اصلي حتماً از پيچ و مهره و يا Spacer و مهره استفاده کنيد

4. براي محکم شدن اتصالات و جلوگيري از بازشدن آنها از واشر فنري استفاده کنيد

5. در جاهايي که ممکن است مهره يا Spacer باعث اتصالات در مدار شما شوند از واشر فيبري استفاده کنيد

 

الکترونيک

 

 

نکته :

• سعي کنيد از فيبر هاي سوراخ دار براي برد اصلي استفاده نکيند به اين دليل که سيم هاي زيادي استفاده مي شود و چنانچه يک سيم قطع شود ربات شما

 

به درستي کار نمي کند .

• به اين نکته توجه داشته باشيد مدار الکترونيکي شما حتما در مقابل نويز مقاوم باشد چون مدار درايور موتور و DC موتور ها نويز شديدي در مدار ايجاد مي کنند

• چنانچه در طراحي و ساختار مدار و IC تجربه نداريد بهتر است از برد هاي آماده يا برد هاي آموزشي استفاده کنيد

 

الکترونيک مدار ربات مسير ياب از بخش هاي زير تشکيل شده است

1. مدار تغذيه

2. مدار درايور موتور

3. بخش خروجي ها

4. ميکروکنترلر

5. مقايسه گر هاي آنالوگ

6. مدار برد سنسور

  • Like 1
لینک به دیدگاه

مدار تغذيه :

 

 

اين بخش از مدار وظيفه تبديل ولتاژ ورودي مدار به برق 5 ولت را برعهده دارد برق مدار شما بايد 5 ولت باشد. به اين دليل که ميکرو کنترلر شما و اکثر المان هاي برد با برق 5 ولت کار مي کنند . براي اين تبديل ولتاژ بهتر است از رگولاتور 7805 استفاده و براي گرفتن نويز مدار يک خازن با ظرفيت بالا (با اين بخش موازي کنيم LED 2000 ) و يک خازن با ظرفيت بسيار پايين با مدار موازي کنيم ، بهتر است يک uf تا وضيعت روشن يا خاموش بودن مدار کاملا مشخص باشد در اين مدار فقط خازن با ظرفيت پايين با مدار موازي شده که بهتر است يک خازن با ظرفيت بالا بعد از رگولاتور با مدار موازي شود.

 

ECA-090528053010.jpg

 

1. مدار درايور موتور

 

 

يکي ديگر از مهمترين بخش هاي يک ربات بخش درايور موتور است . وظيفه اين بخش تأمين ولتاژ و جريان مورد نياز هاي موتور است و توسط ميکروکنترلر کنترل مي شود

ميکروکنترلر مستقيما نمي تواند برق موتور ها را تأمين کند براي راه اندازي موتور ها از 2 روش استفاده مي شود

 

 

• رله

 

 

رله ها قطعات الکترو مکانيکي هستند که با وصل کردن برق رله اتصال دو سيم رله متصل مي شود و برق به موتور هاي ما وصل مي گردد . استفاده از رله چند عيب دارد ، سرعت قطع و وصل شدن رله کم است و نمي توان از آن به صورت PWM استفاده کرد ، موتور ها را نمي توانيم به صورت 2 جهته کنترل کنيم يعني هم به صورت چپ به راست و هم راست به چپ . تنها حسن رله مدار ساده آن و قدرت بالا در جريان دادن و ولتاژ آن است

 

ECA-090528053116.jpg

 

• ترانزيستور ها يا IC هاي درايور موتور

 

با ترانزيستور ها يا IC هاي درايور موتور مي توان موتور ها را کنترل کرد بهترين گزينه براي کنترل اين موتور ها آي سي L293 و آي سي l298 مي باشد که مي توان موتور هاي را به صورت 2 جهته کنترل کرد . چرا بايد از موتور ها به صورت 2 جهته استفاده کينم ؟ چنانچه بخواهيم ربات ما مستقيما به جلو حرکت کند کافي است 2 موتور را روشن کنيم چنانچه بخواهيم ربات به سمت راست بچرخد مي توانيم موتور سمت راست را خاموش کنيم و موتور سمت چپ روشن باشد تا ربات به سمت راست گردش داشته باشد چنانچه بخواهيم ربات به سمت چپ بچرخد مي توانيم موتور چپ را خاموش کنيم و موتور سمت راست روشن باشد تا ربات به سمت چپ گردش داشته باشد پس چرا موتور ها بايد به صورت 2 جهته کنترل شود ؟ دليل آن کاملا واضح است چنانچه بخواهيم ربات را با سرعت بالايي کنترل کنيم بايد در پيچ هاي 90 درجه يا بيشتر از معکوس استفاده کنيم يعني مثلا مي خواهيم ربات به سمت راست بچرخد به جاي خاموش کردن موتور سمت راست آن را به صورت معکوس روشن مي کنيم يعني موتور سمت راست به سمت عقب مي چرخد و موتور سمت چپ به سمت جلو پس ما گردش با سرعت بالاتر و حول محور مرکز ربات را خواهيم داشت و همين مسئله در گردش به سمت چپ صدق مي کند

ECA-090528053121.jpg

 

2. بخش هاي ورودي و خروجي

 

اين بخش ها مي تواند شامل LED و LCD ها باشد که بتوانيم خروجي هاي يک ربات و وضعيت هاي آن را مشاهده کنيم تا بتوانيم راحت تر مشکلات ربات را بررسي و برطرف کنيم البته اين بخش يک بخش اختياري در ربات است ولي بودن آن بسيار مفيد است و کمک مي کند .

 

3. ميکروکنترلر :

 

ميکرو کنترلر در حقيقت مغز ربات ما مي باشد و طبق برنامه که ما به آن مي دهيم ربات را کنترل مي کند يعني شامل فرايند دريافت ورودي از سنسور ها ، پردازش توسط برنامه اي که ما براي آن مشخص کرده ايم و خروجي دادن به موتور ها مي شود ميکرو هايي که معمولا در ربات هاي مسيرياب استفاده مي شود از 2 خانواده هستند

 

1. ميکروکنتر هاي 8051

2. ميکرو کنترهاي خانواده AVR

 

 

البته ما ميکرو کنترلر AVR را به چند دليل پيشنهاد مي کنيم

 

 

1. مدار ساده تر نسبت به خانواده 8051

2. داشتن مبدل آنالوگ به ديحيتال

3. داشتن PWM سخت افزاري

4. داشتن مدار پروگرامر ساده

5. تکنولوژي بالاتر در طراحي ميکرو و مقاوت بيشتر در مقابل Noise

 

 

از IC هاي رايج در خانواده 8051 مي توان به 89s51 و 89c51 اشاره کرد و از IC هاي رايج در خانواده AVR به Mega16 Mega32 اشاره کرد

نکته مهم در استفاده از ميکرو ها اين است که بايد مدار آن طوري بسته شود که کمترين ميزان Noise را داشته باشد چون اين ها نسبت به نويز يا تغيرات ولتاژ بسيار حساس هستند و مي تواند باعث Reset شدن يا هنگ کردن ميکرو شوند

ECA-090528053110.jpg

لینک به دیدگاه

مدار مقايسه گر آنالوگ Opamp ها

 

 

اين مدار در صورتي مورد نياز است که از ميکرو هاي خانواده 8051 استفاده کنيم در اين مدار خروجي سنسور ها با يک ولتاژ متغير که توسط يک مقاومت متغير ساخته شده مقايسه مي شود و خروجي آنالوگ ولتاژ سنور ها به صفر يا يک تبديل شده که براي ميکرو قابل فهم است از Opamp هاي رايج مي توان به Lm324 اشاره کرد

در ميکرو هاي در ميکرو هاي به دليل داشتن مبدل آنالوگ به ديجيتال ما ولتاژ را در ميکرو به صورت يک عدد بين 0 تا 1023 دريافت مي کنم که 0 به عنوان 0 ولت و 1023 به عنوان ولتاژ مرجع ( 5 ولت ) است .

 

مدار سنسور

 

اين مدار به عنوان يکي از بخش هاي مهم در ربات شناخته مي شود و وظيفه اين بخش مشخص کردن وضعيت حالت زير سنسور است که آيا سفيد است يا مشکي ؟ براي مشخص کردن اين وضعيت از 2 نوع سنسور مي توان استفاده کرد .

 

Photocell .1

 

فوتوسل يک مقاومت متغير است که نسبت به تغيرات شدت نور حساس است مقدار مقاومت آن تغيير مي کند اگر بخواهيم از اين سنسور استفاده کنيم بايد از يک فرستنده که نور مرئي به زمين مي تابند استفاده کنيم و اندازه بازتاب نور را توسط فتوسل اندازه گيري کينم که اين کار دقت بالايي ندارد و نور مرئي مستقيما نبايد با گيرنده در ارتباط باشد و يکي ديگر از مشکلات اين روش اين است که خروجي سنسور هاي ربات در شرايط مختلف نوري تغيير مي کند و نور محيط بر آن تاثير مستقيم دارد .

 

2. سنسور هاي مادون قرمز

 

اين سنسور ها در مقايسه با سنسور هاي فتوسل موفق تر هستند و از کيفيت بالاتري برخوار هستند چون از نور مرئي استفاده نمي کنند و نور محيط تاثير بسيار کمي در آن دارد بهترين نوع اين سنسور ها ، سنسور هاي فرستنده و گيرنده در يک پک مي باشند که به راحتي وضعيت زمين را مشخص مي کنند از اين نوع سنسور ها هم مي توان به سنسور GP2S06 اشاره کرد که توضيحات اين سنسور در اينجا آمده است دقت داشته باشيد طرز چيدن سنسور ها به الگوريتم برنامه مربوط مي شود ولي سعي کنيد حداقل از 5 سنسور در مدار خود استفاده کنيد

 

ECA-090528053036.jpg

 

نقشه مدار برد سنسور که خروجي آن توسط يک مقايسه گر آنالوگ به 0 و 1 تبديل مي شود

 

ECA-090528053107.jpg

 

نمونه يک برد سنسور مادون قرمز با 5 سنسور

 

برنامه نويسي :

 

برنامه يک ربات مسيرياب مي تواند شامل چند بخش باشد که آنها را توضيح مي دهيم

 

 

1. خواندن وضعيت از سنسور ها

2. تصميم گيري ( پردازش اطلاعات )

3. فرمان دادن به موتور ها

 

يک مثال براي کنترل ربات با 3 سنسور در ساده ترين حالت

 

sr سنسور سمت راست ما و به Porta.0 وصل است

وصل است sl سنسور سمت چپ ما و به Porta.1

sc سنسور وسط ما و به Porta.2 وصل است

موتور هاي ما نيز به Portd.4 , Portd.5 , Portd.6 , Portd.7 وصل است

 

 

 

Void main()

 

{

 

While (1)

 

{

 

SR = PORTA.0;

 

SL = PORTA.1;

 

SC = PORTA.2;

 

 

if (SR==1) center();

 

if (SL==1) moveright();

 

if (SC==1) moveleft();

 

} }

 

function center()

 

{

 

PORTD.4=1;

 

PORTD.5=0;

 

PORTD.6=1;

 

PORTD.7=0;

 

Return 0;

 

}

 

function moveright()

 

{

 

PORTD.4=1;

 

PORTD.5=0;

 

PORTD.6=0;

 

PORTD.7=0;

 

Return 0;

 

}

 

function moveleft()

 

{

 

PORTD.4=0;

 

PORTD.5=0;

 

PORTD.6=1;

 

PORTD.7=0;

 

Return ;

  • Like 1
لینک به دیدگاه

يک مثال براي کنترل ربات با 5 سنسور در ساده ترين حالت

SR1 Porta.4 سنسور سمت راست ما و به وصل است

SR2 Porta.3 سنسور سمت راست ما و به وصل است

SL1 Porta.2 سنسور سمت چپ ما و به وصل است

SL2 Porta.1 سنسور سمت چپ ما و به وصل است

SC Porta.0 سنسور وسط ما و به وصل است

موتور هاي ما نيز به Portd.4 , Portd.5 , Portd.6 , Portd.7 وصل است

 

Void main()

 

{

 

While (1)

 

{

 

SR1 = PORTA.4;

 

SR2 = PORTA.3;

 

SL1 = PORTA.2;

 

SL2 = PORTA.1;

 

SC = PORTA.0;

 

if (SC==1) center();

 

if (SL1==1) moveleft();

 

if (SR1==1) moveright();

 

if (SL2==1) moveleftfast ();

 

if (SR2==1) moverightfast ();

 

}

 

}

 

function center()

 

{

 

PORTD.4=1;

 

PORTD.5=0;

 

PORTD.6=1;

 

PORTD.7=0;

 

Return 0;

 

}

 

function moveright()

 

{

 

PORTD.4=1;

 

PORTD.5=0;

 

PORTD.6=0;

 

PORTD.7=0;

 

Return 0;

 

}

 

function moveleft()

 

{

 

PORTD.4=0;

 

PORTD.5=0;

 

PORTD.6=1;

 

PORTD.7=0;

 

Return ;

 

}

 

function moverightfast()

 

{

 

PORTD.4=1;

 

PORTD.5=0;

 

PORTD.6=0;

 

PORTD.7=1;

 

Return 0;

 

}

 

function moveleftfast()

 

{

 

PORTD.4=0;

 

PORTD.5=1;

 

PORTD.6=1;

 

PORTD.7=0;

 

Return ;

 

}

 

 

 

البته به اين نکته توجه داشته باشيد که براي کنترل با سرعت زياد بايد بشتر ار 5 سنسور استفاده کنيد و حتما از تکنولوژي PWM کنترل سرعت با فرکانس استفاده کنيد

نويسنده علي معيري

Moayeri@gmail.com

لینک به دیدگاه
×
×
  • اضافه کردن...