کاربردهای میکروکنترلر تنها به کنترل وسایل الکتریکی یا الکترونیکی ساده محدود نمی شود، بلکه امروزه در صنایع روباتیک و خودروسازی به طور گسترده ای مورد استفاده قرار می گیرد. از کنترل ساده آینه عقب گرفته تا عملکردهای پیچیده کنترل موتور توسط میکروکنترلر انجام می شود . میکروکنترلر حتی می تواند کنترل خودکار وسیله نقلیه را بدون راننده انسانی در داخل آن اعمال کند و به این گونه وسایل نقلیه وسایل نقلیه بدون سرنشین (UV) می گویند. UV ها معمولاً در زمینه های تحقیقاتی، نظامی، نجات و کشاورزی مورد استفاده قرار می گیرند. برای هر UV ردیابی زمان واقعی مسیر آنها ضروری است تا اطمینان حاصل شود که آنها در مسیر مناسب حرکت می کنند.
این پروژه نشان می دهد که چگونه می توان با کمک ماوس نوری ساده ترین دستگاه ردیابی مسیر را برای یک وسیله نقلیه زمینی ساخت. ماوس نوری دستگاهی است که یک دوربین بسیار کوچک در داخل خود دارد که می تواند حرکت زمین را در زیر خود حس کرده و از طریق پروتکل های ارتباطی سریالی ساده، تغییر مختصات XY را با یک دستگاه خارجی ارتباط برقرار کند.
این پروژه از یک ماوس نوری استفاده میکند که روی پروتکل PS2 کار میکند و با یک برد آردوینو برای خواندن دادهها از آن رابط دارد. سپس دادههای ماوس بهصورت بیسیم با استفاده از جفت فرستنده گیرنده anXbee به رایانهای دور منتقل میشود که در آن دادهها به صورت گرافیکی بهعنوان مسیری که حرکت ماوس در آن انجام میشود نمایش داده میشود.
Xbee نام تجاری یک دستگاه فرستنده گیرنده بی سیم است که بر روی پروتکل ZigBee کار می کند. ZigBee نام یک پروتکل بی سیم است که توسط استاندارد IEEE 802.15 نگهداری می شود . این پروتکلی است که برای شبکه شخصی بی سیم (PAN) با استفاده از فرستنده و گیرنده های بی سیم کم توان مشخص شده است. آنها می توانند برای سیستم های ارتباطی ساده نقطه به نقطه نیز استفاده شوند.
در این پروژه از دو ماژول فرستنده گیرنده سری Xbee S1 استفاده شده است و تصویر همان ماژول در شکل زیر نشان داده شده است. از آنجایی که گام پینهای ماژولها با برد برد سازگار نیستند، میتوان از تختههای طراحی مبتنی بر Xbee که با پینهای سازگار با برد برد عرضه میشود، استفاده کرد.
از آنجایی که ماژولهای Xbee با استفاده از پروتکل ارتباط سریال با دستگاههای واسط ارتباط برقرار میکنند، میتوان آنها را با استفاده از حداقل چهار پایه، منبع تغذیه، و پایههای Ground، UART Data Out و UART Data In به یک میکروکنترلر متصل کرد. پین شماره 2 UART Data Out به پایه RX1 برد مینی آردوینو پرو و پین شماره 3 UART Data In به پین TX0 متصل می شود.
در این پروژه از برد آردوینو پرو مینی استفاده شده است که از قبل با بوت لودر آردوینو برنامه ریزی شده است . تصویر برد آردوینو پرو مینی و آردوینو IDE در شکل زیر نشان داده شده است:
سخت افزار دیگری که می تواند تبدیل USB به TTL را انجام دهد، برای آپلود برنامه در برد آردوینو استفاده می شود. این برد می تواند در مواقعی نیز باشد که نیاز به برقراری ارتباط سریال بین رایانه شخصی و برد آردوینو باشد.
فرض بر این است که خواننده پروژه نحوه شروع کار با آردوینو را طی کرده و تمام مواردی که در آن بحث شده است را انجام داده است.
ماوس PS2 از یک ارتباط همزمان با رایانه شخصی استفاده می کند که بسیار شبیه به پروتکل Two Wire Interface است. کانکتور PS2 یک پین برای Data و یک پین دیگر برای Clock دارد و فقط با استفاده از این دو پایه ماوس با دستگاه میزبان ارتباط برقرار می کند. ماوس همیشه دارای رابط نر 6 پین mini-DIN برای رابط PS2 است و دستگاه میزبان همیشه پین ماده مربوطه را دارد. تصاویر و پینآوتهای کانکتورهای زن و مرد PS2 در تصویر زیر نشان داده شدهاند:
وقتی صحبت از اتصال کانکتور مادگی با برد مدار می شود، باید بتوان پین های پایین کانکتور PS2 را شناسایی کرد و تصویر زیر مفید خواهد بود.
کد نوشته شده برای این پروژه از فایل کتابخانه سفارشی PS2 به نام "PS2Mouse.h" استفاده می کند که تمام روال های لازم برای دسترسی به ماوس PS2 را دارد. دو تابع وجود دارد که کاربر می تواند مستقیماً در کد خود از آنها استفاده کند که عبارتند از "mouse.initialize()" و "mouse.report(data)". روش خواندن داده ها از ماوس PS2 با استفاده از توابع بالا و رمزگشایی آنها برای بدست آوردن مختصات XY در پروژه قبلی در مورد نحوه ارتباط ماوس PS2 با آردوینو توضیح داده شده است .
اجرای پروژه ای که می تواند داده ها را از ماوس PS2 دریافت کند و مختصات XY استخراج شده از داده های ماوس را از طریق Xbee منتقل کند با استفاده از بلوک دیاگرام زیر نشان داده شده است: