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

## mohsen-unique

سلام
دوستان چطور میشه با یه میکروکنترولر یه هی سی بلوتوث رو راه انداخت؟

----------


## farzadsw

> سلام
> دوستان چطور میشه با یه میکروکنترولر یه هی سی بلوتوث رو راه انداخت؟


منظورتون ماژول بلوتوثه؟
راه اندازی یه بلوتوث از صفر (نوشتن برنامه استک و ... و در اصل نوشتن درایور ) خیلی پیچیدس ولی یه سری ماژول هایی هستن که طوری برنامه ریزی شدن که از طریق پورت سریال(rs232 یا uart) با میکرو ارتباط برقرار میکنن . بنابراین کار باهاشون سادس و برای ارتباط بلوتوث با میکرو از این روش استفاده میکنن. البته قیمت این ماژول ها یکم بیشتر از ماژول های خام (!) هست چون داخلشون یه میکرو کنترل و یه سری مدار جانبی دارن.

----------


## mohsen-unique

> منظورتون ماژول بلوتوثه؟
> راه اندازی یه بلوتوث از صفر (نوشتن برنامه استک و ... و در اصل نوشتن درایور ) خیلی پیچیدس ولی یه سری ماژول هایی هستن که طوری برنامه ریزی شدن که از طریق پورت سریال(rs232 یا uart) با میکرو ارتباط برقرار میکنن . بنابراین کار باهاشون سادس و برای ارتباط بلوتوث با میکرو از این روش استفاده میکنن. البته قیمت این ماژول ها یکم بیشتر از ماژول های خام (!) هست چون داخلشون یه میکرو کنترل و یه سری مدار جانبی دارن.


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

----------


## farzadsw

جاهايي كه IC , Module هاي مختلف رو ميفروشن معمولا دارن . توي اينترنت هم 1-2 تا آگهي پيدا ميشه . 
شركت هاي مختلفي از اين ما‍ول ها ميزنن ، مثلا ماژول بلوتوث 12 - AUBTM  رو احتمالا تو ايران ميشه گير آورد ولي لحيم كردن و استفاده از پايه هاش مشكله . 


به هر حال خودتون بايد ببينيد چي ميتونيد پيدا كنيد. فقط يادتون باشه UART داشته باشه. 
اگرم يه چيزي شبيه اين پيدا كني كه خيلي راحت تر ميشي:

----------


## bluetooth.it

سلام ميتونيد براي نوشتن برنامه درايور براي ماژول هاي بلوتوث اطلاعاتي به من بديد. مي خوام با vb برنامشو بنويسم .  توابع بلوتوث رو نياز دارم.تو اينترنت پيداشون نميكنم ميتونيد يه مرجع بهم معرفي كنيد.ممنون. :گریه:  :گریه:  :گریه:

----------


## farzadsw

درایور رو میخواید برای ویندوز بنویسید ؟ 
با vb نمیشه درایور نوشت ، باید با  اسمبلی و c بنویسید. 
نوشتن درایور  یکی از طاقت فرسا ترین کارا تو برنامه نویسیه  برای همینم فقط شرکت های سازنده (اونم چون مجبورن!) اقدام به ارایه درایور میکنن. 
اما اگه منظورتون این بوده که چطوری تو vb از بلوتوثی که قبلا نصب شده و کار میکنه استفاده کنم ، اون مربوط به تالار embedded نمیشه (هرچند درایور نویسی برای ویندوز هم همینطوره) . 
بهتره سوالتون رو تو تلار های " توسعه‌ی هسته‌ی سیستم عامل" برای نوشتن درایور 
و توی تالار vb برای استفاده از ماژولی که قبلا درایورش نصب شده ، مطرح کنید

----------


## Mehran.GH

این ماژول بلوتوث که دوستمون farzadsw معرفی کرده نیازی به درایور ندارد. 

لیست AT Command  ها را در فایل راهنمای آن می توان پیدا کرد و اتصال سخت افزاری هم RX-232   را به TX  کامپیوتر و TX-232  را به RX  و گراند ها هم به یکدیگر وصل می شوند. برای اتصال به میکرو ها هم TTL Level دارد که با همان ترتیب وصل می شود.

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

تو vb هم که کمپوننت MScomm  اگردرست یادم باشه برای اتصال سریال بود و می توانید AT Command هایی که لازم است از طریق پورت سریال بفرستید و ماژول هم بعد از دریافت هر دستور یک پاسخ بر می گرداند (معمولا این طوری است)

----------


## farzadsw

اون ماژول یه میکرو کنترلر داخلش داره که استک بلوتوث رو کارخونه روش گذاشته تا تو مد پورت سریال کارکنه . البته چند تا at command هم داره که برای تنظیم باوود ریت و اسم دستگاه ازشون استفاده میشه. بنابراین مثل این میمونه که یه پورت com به صورت بیسیم دارید و کار باهاش نیاز به درایور نداره و خیلی سادس . معمولا حداکثر باوود ریت این ماژول ها 115200 هست ، یعنی ازش استفادهی multimedia نمیشه کرد  .در اصل برای ارتباط میکرو با هم و یا میکرو و کامپیوتر طراحی شده و تو این زمینه ها سرعت مناسبی داره.
 اون قضیه درایور رو برای ماژولهایی گفتم که به طور مستقیم به کامپیوتر (با usb یا اسلات ) وصل میشن.

----------


## bluetooth.it

سلام من بيشتر توابع بلوتوث رو نياز دارم اما نميدونم مربوط به كدوم تالار ميشه ميتونيد كمكم كنيد واقعا پيدا كردنش سخته .من دانشجوي ترم 7 it ام موضوع پايان نامم اينه. ممنون ميشم اگه كمكم كنيد.

----------


## Mehran.GH

برای ارتباط با یک سخت افزار بلوتوث یا همون پیاده سازی Bluetooth stack شما نیاز داری که لایه های ارتباطی با سخت افزار را تهیه کنی مطابق شکل زیر



همانطور که دیده می شود  زمانی که شما درباره *توابع بلوتوث* سوال می کنی  در حقیقت بالایی ترین لایه هست  یا لایه Host Controller Interface (HCI) 
البته معماریهای دیگر هم است برای کاربردهای دیگر که در این سایت می توانی راجع بهش مطالعه کنی
http://www.bluetooth.com/Bluetooth/T...erface_HCI.htm 

 برگردیم به سوالات 
راجع به درایور  :
 نوشتن درایور برای یک ماژول بلوتوث (در ویندوز البته) کار شرکتهایی است که *درایور استاندارد* تحت ویندوز می نویسند و بعد از شرکت ویندوز مجوز می گیرند تا امکان استفاده از آن درایور در ویندوز مقدور باشد و بعد هم تولید کننده سخت افزار مثلا تولید کنند چاپگر از شرکت تولید کننده درایور لیسانس استفاده از درایور را می خرد.   بنابراین تهیه چنین درایوری در ویندوز به خصوص ویندوز ویستا و 7 که بدردت نخواهد خورد چون کار نمی کند و وقت گذاشتن روی آن هم بهره علمی و کاربردی خاصی ندارد.  اگر هم تهیه درایور بخشی از پایان نامه است که این بخش را در صورت امکان با وظیفه دیگری جایگزین کردن!

درباره بحث استفاده از توابع در یک نرم افزار تحت ویندوز  :

مشکلی که برای استفاده از توابع وجود دارد این است که شرکتهای مختلفی تولید کنند BT stacks  هستند و بدون مطالعه دقیق داکیومنت ها نمی توان گفت کدام درایور قابل دسترسی است (بعضی ها هم با درایورهای مختلف کار می کنند)  اما مهمترین تولید کننده ها:
1-   Widcomm 
Microsoft Windows stack   -2
و کمتر مهمترین ها هم:
EtherMind stack
BlueSoleil
........ 


مرجع کامل و لیست توابع Widcomm  و روش استفاده
http://www.inf.ethz.ch/personal/hvog...etooth_SDK.pdf

به خود سایت http://www.broadcom.com/  هم می توانی مراجعه کنی و آخرین SDK  را دانلود کنی

و لیست توابع Microsoft Windows stack  را در این آدرس می توانی پیدا کنی:
http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx

----------


## small_rz

تا حالا کسی اینحا با aubtm 20  کار کرده؟ با میکرو داده بفرسته با لپ تاپ دریافت کنه؟ موقع وصل کردن به میکرو txd  ماژول و به txd  میکرو وصل می کنیم و rxd  ماژول و به زمین؟ اتصال بقیه ی پایه های ماژول به چه صورته؟ ممنون میشم کسی راهنمایی کنه؟

----------


## Mehran.GH

> موقع وصل کردن به میکرو txd  ماژول و به txd  میکرو وصل می کنیم و rxd  ماژول و به زمین؟


این جمله را متوجه نشدم به چه نحو متصل کردی  اما :  

TXD(پین 26)  ماژول  را به RX  میکرو وصل می کنی و  RXD (پین 6) ماژول را به  TX  میکرو.  بعلاوه GND  و 3v3  بقیه پین ها برای کاربردهای دیگری است.

نکته مهم هم فقط این است که* این ماژول در رنج سیگنال  3v3  ولت کار می کند* CMOS  بنابراین اگر میکرویی که استفاده می کنی با سیگنال 5 ولت کار می کند نیاز داری یک level conversion  بین سیگنالها داشته باشی . بیشتر میکروها با همان سیگنال 3v3  کار می کنند و بعضی میکروها هم که در حالت استاندارد 5 ولت کار می کند می توان در مود 3v3  هم فعال کرد و در این حالت نیاز به level conversion نداری.(منظور این بود که به این نکته توجه داشته باشی)


level conversion  که خودت هم می توانی درست کنی http://www.flickr.com/photos/linux-works/6433044007/

----------


## amir689

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

----------

