من واحد ماشه دوربین را به منظور همگامسازی رویدادها و اقدامات مختلف در طول آزمایشهای پرواز آزاد با موشهای شاهین در تونل باد که در پست قبلی توضیح داده شد، توسعه دادم. به طور خاص، هدف راه اندازی چندین دوربین پرسرعت و داشتن LED هایی بود که زمان دقیق محرک های الکتریکی را نشان می دهد که از طریق یک تراشه محرک مینیاتوری حمل شده توسط یک ماهی شاهین منتقل می شود. (تحریک الکتریکی پروانه نیز توسط واحد تحریک می شود.)
این ماشه بر اساس برد میکروکنترلر آردوینو ( http://www.arduino.cc/ ) است و یک توالی زمانبندی شده از رویدادها را پس از ایجاد یک ماشه به صورت دستی یا خودکار با ماژول لیزری اختیاری ارائه میکند. دومی برای نظارت بر حجمی در فضا (حجم ماشه) استفاده میشود که وقتی توسط یک شی (مثلاً یک پروانه) اشغال میشود، دنباله ماشه را ایجاد میکند. ماژول را می توان با یک یا دو دیود لیزر قرمز یا مادون قرمز استفاده کرد. هنگام استفاده از یک پرتو لیزر، جسمی که از هر نقطه ای در امتداد پرتو عبور می کند، یک رویداد ماشه ای ایجاد می کند. هنگام استفاده از دو پرتو، حجم در فضایی که دو پرتو در آن متقاطع هستند، حجم ماشه را مشخص می کند.
زمان بندی رویدادها
دوربینهای فانتوم با سرعت بالا (و همچنین بسیاری از مدلهای دوربین پرسرعت دیگر) به طور مداوم دادههای تصویر را در حافظه داخلی بافر خود ضبط میکنند تا زمانی که ورودی رویداد ماشهای بالا تنظیم شود. برای اطمینان از ثبت یک رویداد محرک توسط همه دوربین ها، یک "رویداد ماشه" (حروف قرمز، بالا سمت چپ) دنباله نشان داده شده در شکل بالا را آغاز می کند. مدار بلافاصله با فرستنده تراشه روی پروانه پرنده ارتباط برقرار می کند. از این زمان به بعد، 84 میلیثانیه طول میکشد تا تراشه درونبرد، قطار محرک الکتریکی از پیش برنامهریزیشده خود (سیگنال 1) را ارسال کند. بنابراین، یک خروجی ولتاژ دیگر (2) برای روشن کردن مجموعه ای از نشانگرهای LED، که حداقل یکی از آنها در همه دوربین ها قابل مشاهده است، همزمان با محرک روی برد زمان بندی می شود. این بدان معنی است که تحریک پروانه با شروع LED ها همزمان است.
پس از مدت زمان مشخصی از زمان پس از محرک، یک سیگنال ماشه دوربین (3) ورودی "رویداد ماشه" دوربین های پرسرعت را تغییر می دهد. این کار ضبط را متوقف می کند و چند ثانیه آخر فیلم را در بافر داخلی دوربین باقی می گذارد. تنظیمات روی دوربین تعیین میکند که چه تعداد فریم پس از راهاندازی ذخیره میشوند، که به نوبه خود حداکثر تعداد فریمهای پیش از راهاندازی (n pre ) را برای یک اندازه حافظه مشخص تعیین میکند. علاوه بر سیگنال های مورد بحث در شکل بالا، دستگاه همچنین هنگام وقوع یک رویداد ماشه، یک آلارم صوتی تولید می کند.
نرم افزار آردوینو
کار اصلی مدار توسط یک برد میکروکنترلر آردوینو (Diecimila) انجام می شود که من با زبان برنامه نویسی آردوینو (مشابه C) برنامه ریزی کردم. این میکروکنترلر چندین ورودی دیجیتال خود را کنترل میکند تا در هنگام فشار دادن دکمهها واکنش نشان دهد و سطوح نوری که روی دو سنسور مبتنی بر ترانزیستور فوتو میافتد را اندازهگیری کند. همچنین منطق ارسال سیگنال ها را در صورت برآورده شدن شرایط خاص (مثلا دکمه A فشار داده شده، سنسورهای A و B زیر آستانه و غیره) انجام می دهد.
این برنامه در سه حلقه اصلی سازماندهی شده است که با حالت های مختلف سیستم مطابقت دارد:
هنگامی که واحد ماشه روشن می شود، برنامه در حالت Idle شروع می شود که با یک LED سبز رنگ در پانل جلویی نشان داده می شود. با فشار دادن دکمه A در حالت آماده به کار ، برنامه وارد وضعیت Armed می شود که در آن لیزرها روشن می شوند و دریافت داده ها در دو کانال حسگر شروع می شود. در حالی که در این حلقه (که با LED قرمز در پانل جلو نشان داده می شود) میکروکنترلر منتظر می ماند تا هر دو سطح سنسور به طور همزمان سقوط کنند، که زمانی اتفاق می افتد که یک جسم حجمی را اشغال کند که هر دو پرتو از آن عبور می کنند. اگر این اتفاق بیفتد، یا دکمه B به عنوان یک ماشه دستی فشار داده شود، عملکرد ماشه فراخوانی می شود. این تابع منجر به توالی زمانبندی شده رویدادهایی میشود که در بالا مورد بحث قرار گرفت.
حالت Alignment در طول راه اندازی اولیه واحد برای کمک به ردیف کردن پرتوهای لیزر با اهداف حسگر مربوطه استفاده می شود. روال Alignment با فشار دادن دکمه B به مدت بیش از یک ثانیه در حالت آماده به کار آغاز می شود . در حالت Alignment ، هر دو LED نشانگر Idle و Armed روی پانل های جلویی روشن می شوند و هر دو لیزر روشن می شوند. علاوه بر این، ارتباط سریال USB آردوینو باز می شود و مقادیر حسگر را با نرخ Baud 9600 بیت بر ثانیه به رایانه میزبان ارسال می کند. این مقادیر را می توان به راحتی با مانیتور سریال در Arduino IDE نمایش داد. هدف، به حداکثر رساندن سطح نور (مقدار 1023) در هر سنسور با تنظیم موقعیت لیزر و سنسور است. مسدود کردن تقاطع پرتوهای لیزر با یک شی هدف ساختگی منجر به خوانش حسگر کمتر می شود. این قرائتهای پایینتر باید بهعنوان مقادیر آستانه جدید در کد ذکر شده و استفاده شوند. پس از کامپایل مجدد و بارگذاری مجدد برنامه تنظیم شده از طریق اتصال USB، واحد ماشه لیزری عملیاتی می شود.
برای جزئیات بیشتر: واحد ماشه دوربین مبتنی بر آردوینو