.

.

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


استفاده از RF در طرحهایتان راه حل مناسبی است. ولی اگر تازه شروع کرده اید , ساختن موفقیت آمیز یک فرستنده-گیرنده کمی Solid RF سخت است.

وقتی که من شروع به کار کردم ,نمی دانستم فلز بورد[1] مانند خازنهای کوچکی عمل نموده و باعث اعوجاج سیگنال فراوانی شده ,که در نتیجه عملکرد و پویایی مدار تغییر میکند.


برای مشاهده کامل متن پروژه روی ادامه مطلب کلیک کنید .


پس از تحقیق زیاد جفت فرستنده-گیرنده TWS 434 و RWS 434 از Reynolds Electronics را پیدا کردم.البته من تولیدات مشابهی از MING Microsystems و Radioshack را نیز امتحان کردم, اما محصول Reynolds Electronics از لحاظ قابلیت , قیمت و راحتی کار با آن بهتر از بقیه بود.بنابراین به کمک آن و نیز دو میکروکنترلر PIC16F84 [2] کار کردن روی رابط سریال RF خود که واسط بین کنترل گر(جوی استیک[3]) و روبوت بود را شروع کردم.شما می توانید این قطعات را در www.rentron.com/rf_remote_control.htm بیابید.


RufBOT از سیستم TWS434RF استفاده می کند

overhead.jpg (45407 bytes)


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

شماتیک مدار

من متوجه شدم جفت مدار فرستنده-گیرنده و ارتباط سریال تعبیه شده در زبان برنامه نویسی PICBasic موجود در PIC های من,با یکدیگر به خوبی کار می کنند.من مطمئن نبودم , مدار با تبادل سریال غیرهمزمان و با نرخ[4] (باود) 9600 خوب کار کند چون در سرعتهای بالا انتظار یک سری مشکلات را داشتم, اما در عمل به اشکالات اندکی برخورد کردم.من به سادگی موقعیت پتانسیومتر موجود در جوی استیک را با استفاده از دستور POT که از دستورات PICBasic است, خواندم و نتیجه را در موقعیت B0 قرار دادم. و از آنجا با دستور SEROUT محتوای B0 حافظه را به پایه 6 فرستنده TWS 434 ارسال نمودم تا داده دریافتی از پین 3 , RWS 434 را خوانده و حاصل را در B0 قرار دهدم.

مقادیر موجود در B0 با موقعیت جوی استیک رابطه مستقیم دارد.ورودی بالاتر از 150 نشانگر "راست" است , پایین تر از 106 علامت چرخش به "چپ" بوده و میان این دو , نشان دهنده "مرکز" است.با استفاده از این اعداد می توان یک محدوده تعریف کرد.



overhead1.jpg (36761 bytes)


tx.jpg (29525 bytes)


PIC اطلاعات دسته بازی(جوی استیک) را خوانده و ارسال می نماید


tws434.gif (14114 bytes)


شماتیکمدار فرستنده


در این نقاط اشارات(جهت حرکت دسته بازی) به سادگی قابل مشاهده است.از طریق اعداد فرستاده شده می توانیم مسیر(راست ,چپ و غیره) و همچنین میزان انحراف به چپ و راست را تعریف کنیم. با این داده ها امکان تعریف "کنترل سرعت" وجود دارد.برای اعداد دورتر از 128 (مرکز) سرعت بیشتری اعمال شده است[5].در مورد این مدار , من از پایه های PORTA از PIC برای کنترل مسیر موتور استفاده کردم ولی کنترل سرعت نکردم.از آنجا که داده سریال ده بیتی است(یک بیت شروع ,هشت بیت داده و یک بیت پایانی) می توانیم در عرض یک ثانیه , 960 دستور را به PIC گیرنده بفرستیم که برای قطعات زیر 20 دلار بد نیست.با استفاده از آنتن هایی که برای تلفن های بیسیم 900 MHz ساخته شده است , توانستم در فضای آزاد به برد 350 فوت[6] برسم و هنگامی که تغذیه گیرنده را کمی از 12 ولت بیشتر کردم به بورد 500 فوت[7] نیز رسیدم(این کار توصیه نمی شود).


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

قطعه کد زیر نشان می دهد که قطعات موجود در سیستم شما چقدر ساده کار می کنند.

TX CODE:
symbol trisb = 134
symbol trisa = 133
symbol portb = 6
symbol porta = 5
poke trisa, 1
low 1
'se this line if enable pin on 245 is not grounded.
input 0
start:
B0 = 0
pot 0,25,B0
serout 1,n9600,(B0)
goto start
left:
serout 1,n2400,(255)
goto start
right:
serout 1,n2400,(1)
goto start
end
 
RX CODE:
symbol trisb = 134
symbol trisa = 133
symbol portb = 6
symbol porta = 5
poke trisa ,0
poke porta ,0
low 0
input 1
start:
B0 = 0
serin 1,n9600,B0
if B0 > 150 then right
if B0 < 106 then left
goto stop
right:
poke porta, 6
goto start
left:
poke porta, 9
goto start
stop:
poke porta, 0
goto start
نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد