# برنامه نویسی میکروکنترلر (MicroController) ها و MicroProcessor ها > برنامه نویسی سیستم های Embeded > مباحث عمومی کار با سخت افزارها، سنسورها و لوازم جانبی >  هدایت ربات با کامپیوتر

## faramarz_fireboy

با سلام خدمت اساتید گرانقدر :قلب: 
بنده برای ساخت رباتی با پردازش تصویر شروع به تحقیقاتی کردم- البته در سطح مبتدی :لبخند گشاده!: 
برای دوربین میشه از دوربین های بیسیم استفاده کرد.
البته با میکروهای AVR دارم کار میکنم.
مشکل اینجاست که وقتی شیئ رو پیدا کردم چطور موتورها رو به اون سمت هدایت کنم؟ :متفکر:  :گریه: 
یه چیزایی در مورد ماژول ای RF پیدا کردم ولی راستش نتونستم راش بندازم. :افسرده:  :گیج:  :عصبانی: 
تصمیم گرفتم فعلا با USB ارتباط رو برقرار کنم-برای هدایت ربات.
ممنون میشم اگه کسی مقاله یا نمونه یی داره اینجا بزاره :قلب:  :قلب:

----------


## mhsaleh

اینکه چطور ربات شما به سمت جسم مورد نظر حرکت کند بستگی به ساختار آن دارد.
اما برای ارسال فرمان از کامپیوتر به ربات خود می توانید از انواع بسترها استفاده نمایید که اغلب بر اساس استاندارد RS232 کار خواهند کرد سپس فرامین را در میکرو خود تحلیل نمایید. شما برای استفاده از USB می توانید از تراشه های FTDI استفاده نمایید که به دو صورت می توانند با نرم افزار شما ارتباط داشته باشند.
ماژول های فرستنده و گیرنده RF مدل های مختلفی دارند و بعضی از آنها توسط یک واسط RS232 می توانند با واحدهای دیگر مرتبط شوند.

----------


## faramarz_fireboy

دوست عزیز ممنون از راهنماییت
من از rs232 نمیخوام استفاده کنم چون نه pc و نه لبتاپم این پورت رو ندارن
- اگر هم از تبدیل استفاده کنم حجم مدار زیاد میشه
usb بدون واست هم میتونه با avr ها ارتباط برقرار کند
اگه کسی یه برد نمونه از RF قرار بره ممنون میشم

----------


## Felony

> من از rs232 نمیخوام استفاده کنم چون نه pc و نه لبتاپم این پورت رو ندارن
>  - اگر هم از تبدیل استفاده کنم حجم مدار زیاد میشه


ماژول های آماده ای وجود دارند که با نصب یک درایور روی ویندوز به عنوان یک پورت rs232 مجازی شناخته میشن و کافیه ماژول رو به پورت USB متصل کنید و خروجی rs232 ازش بگیرید .

Datasheet یکی از این ماژول ها رو براتون ضمیمه کردم ، ببینید به کارتون میاد .

----------


## faramarz_fireboy

ممنونم دوست گرامی خیر دنیا و اخرت رو ببینی -کارم کلی راه میفته
اساتیدی که تابحال با rf12 کار کردن یه عنایتی به ما داشته باشن  :قلب:  :لبخند: 

با usb دستورات رو میگیرم حالا با ماژول RF12 یا xbee (یا هرماژولی با برد حداقل 10متر)باید بفرستم به ربات :چشمک:

----------


## amirsadeghi

دوست عزیز ما روی mobile robot ها کار میکنیم.
اگه میخوای کارت حرفه ای باشه، و هزینه کردن هم برات مشکلی نیست بگو راهنماییت کنم یه کار درست حسابی در بیار.
با مبدل و مبدل بازی چیزی از کار در نمیاد...

----------


## faramarz_fireboy

> دوست عزیز ما روی mobile robot ها کار میکنیم.
> اگه میخوای کارت حرفه ای باشه، و هزینه کردن هم برات مشکلی نیست بگو راهنماییت کنم یه کار درست حسابی در بیار.
> با مبدل و مبدل بازی چیزی از کار در نمیاد...


دوست گرامی ممنون که به این تاپیک توجه کردی :قلب:  :تشویق: 
هزینه رو میتونم یه کاریش بکنم :لبخند گشاده!: 
معلومه که میخوام حرفه ای باشه(کار و زندگیم رو ول کردم تمام وقتم رو گزاشتم واسه این ربات)
اولش میخواستم از ARM استفاده کنم ولی کمتر کسی راجع بش اطلاعات در اختیار بقه قرار میده(منم الکترونیکم خوب نیست) :خیلی عصبانی:  :گیج: 
اگه شما لطف کنید و راهنماییم کنید ممنونتون میشم :قلب:  :قلب:

----------


## amirsadeghi

اطلاعاتت تو زمینه شبکه های وایر لس در چه حده؟

----------


## faramarz_fireboy

یه چیزایی میدونم
ولی اگه لازم باشه میرم دنبالش و یاد میگیرم
مشکلی بابت یادگیری ندارم

----------


## amirsadeghi

خب پس یکم روی برنامه نویسی تحت شبکه اطلاعات کسب کن و یکم هم راجع به شبکه های وایرلس.
کسب کردی بگو! :دی

----------


## faramarz_fireboy

> خب پس یکم روی برنامه نویسی تحت شبکه اطلاعات کسب کن و یکم هم راجع به شبکه های وایرلس.
> کسب کردی بگو! :دی


استاد عزیز :قلب: 
با C میتونم پکت هایی رو به یه سیستم دیگه بفرستم :لبخند گشاده!: 
درمورد وایرلس هم در کدوم بخش؟(چگونگی ارتباط-پروتوکلها-استاندارد پکتها-....) :لبخند: 
سپاسگزارم که راهنماییم میکنید :قلب:

----------


## amirsadeghi

توی قسمت وایرلس فقط کافیه بتونی یه شبکه رو راه اندازی کنی. حالا بسته به امنیت و فاصله ای که نیاز داری
راجع به برنامه نویسی هم کافیه بتونی یه کاراکتر یا یه کلمه رو بفرستی و بگیری...
اینا رو اوکی کردی بگو مرحله بعدی رو بهت بگم...

----------


## m.soleimani

> مشکل اینجاست که وقتی شیئ رو پیدا کردم چطور موتورها رو به اون سمت هدایت کنم؟


نمی‌دونم هنوز هم باهاش مشکل داری یا نه ولی برای حرکت به سوی هر چیزی باید موتورهای سمت همون جسم بی‌حرکت بشن « یا اگر برات امکان داره چد دور به سمت عقب بچرخند » و متورهای جهت مخالف شروع به حرکت بکنن./

----------


## faramarz_fireboy

> نمی‌دونم هنوز هم باهاش مشکل داری یا نه ولی برای حرکت به سوی هر چیزی باید موتورهای سمت همون جسم بی‌حرکت بشن « یا اگر برات امکان داره چد دور به سمت عقب بچرخند » و موتورهای جهت مخالف شروع به حرکت بکنن./


دوست عزیز مشکل من تو ارسال چگونگی حرکت هست
مثلا چطور یه کاراکتری رو با usb به ربات بفرستم تا بسته به اون کاراکتر ربات تصمیم بگیره به کدوم جهت حرکت کنه

----------


## ژوپیتر

بستر USB بسیار پیچیده است، برای ارتباط با روبات شما باید Device Driver بنویسید که مشخصه این دفعه اوله که میخواهید با USB کار کنید.
من بهتون Ethernet رو پیشنهاد میکنم، بسیار کار باهاش راحته و برنامه نویسیش هم کمه، ماژولهاش هم تو جمهوری هست، در google کلمه Wiznet رو سرچ کنید، حتما پیدا میکنید.
با اتصال به میکرو، شما میتونید همزمان اطلاعات رو ارسال و دریافت کنید، با استفاده از وقفه هم میتونید با دقت و سرعت لازم روبات رو به حرکت در بیارید.
با Hyper terminal هم میتونید تست کنید تحت TCP/IP.

----------


## Amir Oveisi

در مورد کار ربات، نوع ربات، ساختار مکانیکی ربات و ... توضیحاتی رو بدید تا بشه بهتر راهنمایی کرد.
توصیه می کنم به جای میکروکنترل های AVR از ARM استفاده کنید که قابلیت های بالاتر و سرعت بهتری داشته باشید. فکر نکنم برای پردازش تصویر AVR قابل قبول باشه، مگر اینکه از دوربین هایی استفاده کنید که خودشون پردازش های اولیه مثل color space changing و color filtering رو انجام بده.
برای مسئله حرکت هم ابتدا مشخص کنید موتور هاتون چی هست تا بشه نظر داد.

موفق باشید

----------


## faramarz_fireboy

با تشکر از مدیر عزیز که به ما عنایت دارن
حق با شماست
ربات به این شکل کار میکنه:
مکانیکش هنوز تو طراحی اولیه هست.
یه دوربین Wireless که تصویر رو میفرسته به یه لبتاپی.
تو لبتاپ با opencv پردازش تصویر انجام میشه.
تصمیم میگیره چند درجه و به کدوم سمت حرکت کته.
با USB به یه مازول بیسیم دستور حرکت رو میدیم.
ماژول دستور رو به ربات میفرسته.
میکروی ربات با توجه به دستور حرکت میکنه.
فعلا تا اینجاش رو فکر کردم.

----------


## farzadsw

> با تشکر از مدیر عزیز که به ما عنایت دارن
> حق با شماست
> ربات به این شکل کار میکنه:
> مکانیکش هنوز تو طراحی اولیه هست.
> یه دوربین Wireless که تصویر رو میفرسته به یه لبتاپی.
> تو لبتاپ با opencv پردازش تصویر انجام میشه.
> تصمیم میگیره چند درجه و به کدوم سمت حرکت کته.
> با USB به یه مازول بیسیم دستور حرکت رو میدیم.
> ماژول دستور رو به ربات میفرسته.
> ...


 خب الان دقیقا تو کدوم قسمتهاش مشکل دارید ؟ اگه تو این قسمتها مشکلی ندارید ، تقریبا میتونید با خیال راحت ساخت رو ربات رو شروع کنید .
در ضمن با این صورت پروژه شما ، نیازی به استفاده از میکروهای عجیب غریبی (مثل ARM ) ندارید چون قراره فرمان رو دریافت کنید و به موتورها فرمان بدید . یدونه مگا8 برای این کار زیاد هم هست.
همچنین برای ارسال دیتا بین میکرو و کامپیوتر ، استفاده از tcp/ip منطقی نیست (از لحاظ عملکرد و قیمت) . برد و فاصله مورد نظر شما چقدره ؟

----------


## faramarz_fireboy

با سلام
بسیار سپاسگزارم که این تاپیک رو مورد لطف و توجه قرار میدین
منم نمیخوام با ARM کار کنم(دوستمون گفت اگه پردازش رو ربات انجام میده باید ARM استفاده کنم)
الان روی ارتباط USB و بیسیم مشکل دارم
از نظر مالی زیاد محدودیت ندارم(یه جورایی اسپانسر مالی دارم)
فاصله زیاد مهم نیست ولی میخوام رباتم حرفه ای بشه(البته من اول راهم چیز زیادی نمیدونم-اما منبعی باشه مطالعش میکنم)

----------


## ژوپیتر

http://www.lirtex.com/robotics/fast-...mputer-vision/

http://www.google.com/url?sa=t&sourc...D8kG1w&cad=rja

----------


## faramarz_fireboy

> http://www.lirtex.com/robotics/fast-...mputer-vision/
> 
> http://www.google.com/url?sa=t&sourc...D8kG1w&cad=rja


متشکرم دوست عزیز
ولی من قبلا این لینک ها رو دیدم
مشکلم اینه که چطور ارتباط بیسیم و USB رو راه بندازم

----------


## farzadsw

اول باید ببینی ارتباط *بیسیمت* با چی میخواد باشه ؟ 
WIFI : این یکی رو که همه لپتاپها دارن بنابر این نیازی به ارتباط usb نیست(نهایتش یه مودم wifi به usb وصل میشه) . ولی مشکل اصلی طرف رباته ، یا باید ماژولهای wifi ای که خروجی سریال دارن (مثل همونی که دوستمون قبلا معرفی کردن) استفاده کنید ، یا از یه میکروی ARM9 به بالا استفاده کنید تا همون مودمهای  usb  رو بهش وصل کنید. تا اینجای کار هزینه حداقل 200 هزار تومن میشه. یه مقدار نسبتا زیادی هم باید وقت صرف کنید تا بتونید اطلاعات رو به درستی رد و بدل کنید . برد شما در بهترین حالت 100 متر خواهد بود . در محیط مسابقات احتمال اختلال در ارتباط wifi وجود داره . وزن و اندازه ربات شما هم کمی بزرگ و سنگین میشه(+ مصرف باتری) . در ضمن در شرایط مطلوب نرخ ارسال فرمانی شما حدود 300 هرتز خواهد شد. بیشتر برای محیط خونه و اداره طراحی شده و تو محیطهای پر نویز یا کاربردهای حساس استفاده نمیشه.

ماژولهای RF آماده چینی مثل HM-TR : برای ارتباط usb کافیه یه کابل usb-serial تهیه کنید فرستنده رو بهش وصل کنید و  تمام . در طرف ربات هم کافیه پینهای RXD , TXD رو به میکرو کنترلر اتصال بدید (هر میکرویی) . هزینش حدود 50 هزار تومن میشه  . راه اندازی ارتباط خیلی ساده و سریع هست . برد حدود 300 متر خواهد بود . امکان اختلال در محیط مسابقات (با کدهای تعریف شده نرم افزاری) کم میشه . وزرن و اندازه و مصرف باتری کم میشه. نرخ ارسال اطلاعات حدود 2000 هرتز میتونه باشه.در صورتی که ربات شما نویز زیادی ایجاد کنه (موتورهای بزرگ و نزدیک به گیرنده) ممکنه لازم بشه اطلاعات رو به جای 1 بار چند دفعه بفرستید(نرخ ارسال اطلاعات کم میشه)

zigbee : برای ارتباط سریال کافیه از مبدل های usb-serial استفاده کنید . البته اگه به صورت کیت تهیه کنید ماژول ارتباط usb با کامپیوتر هم همراش هست. طرف میکرو هم مثل HM-TR به سادگی وصل میشه . هزینش میتونه 100 الی 900 هزار تومن بشه(بسته به برد) . راه اندازیش خیلی سریع هست. بردش بسته به ماژول شما از 100 متر تا 10 کیلومتر میتونه باشه. امکان اختلال تقریبا صفر . وزن و اندازه و مصرف خیلی کم . نرخ ارسال اطلاعات حدود 1000 هرتز. این پروتکل قابلیت شبکه شدن (با توپولوژی های مختلف از جمله مش) رو داره . همچنین الگوریتم خطا یابی و اطمینان از صحت عملکرد ارسال رو داره. *مخصوص همین کارها* و در محیطهای پرنویز طراحی شده.

----------


## faramarz_fireboy

با سلام
متشکر که پیگیر  این تاپیک هستید
من یه چیزایی راجع به Xbee خوندم
با این تو ضیحاتی که فرمودین
بهتره از zigbee استفاده کنم
حالا میمونه ارتباط با C++‎ و کدهای میکرو
من تاحالا با این ماژولها کار نکردم و کلا ازشون چیزی نمیدونم

----------


## farzadsw

xbee ، یه جور ماژول zigbee ، ساخت شرکت digi هست . ماژولهای خوبی هستن و تو تهران هم پیدا میشه.
شما باید ارتباط سریال میکرو و کامپیوتر رو یاد بگیرید ، بعدش براحتی میتونید از ماژولهای xbee استفاده کنید. چندتا تاپیک در این زمینه هست که نگاه کنید روش کار دستتون میاد . در ضمن بهتره که خود ماژولها هم دستتون باشه تا به صورت عملی روش کار رو یاد بگیرید.

----------

