امروز برابر است با :1 آذر 1403

ساخت ربات

ساخت ربات در ادامه مطلب

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

استفاده از 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   بیابید.

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

شماتیک مدار

من متوجه شدم جفت مدار  فرستنده-گیرنده و ارتباط سریال تعبیه شده در زبان برنامه نویسی 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                  'use 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
end

 

 

 

 

 

 

 

 

 

 


rws434.gif (12850 bytes)

 

overhead.jpg (45407 bytes)

 

bot.jpg (34313 bytes)


            

اشتراک گذاری