فهرست مطالب:

HackerBox 0024: Vision Quest: 11 Step
HackerBox 0024: Vision Quest: 11 Step

تصویری: HackerBox 0024: Vision Quest: 11 Step

تصویری: HackerBox 0024: Vision Quest: 11 Step
تصویری: Unboxing and Assembly - HackerBox #0027: Cypherpunk 2024, جولای
Anonim
HackerBox 0024: Vision Quest
HackerBox 0024: Vision Quest

Vision Quest - در این ماه ، هکرهای HackerBox در حال آزمایش با Computer Vision و Servo Motion Tracking هستند. این دستورالعمل حاوی اطلاعاتی برای کار با HackerBox #0024 است ، که می توانید تا آخرین منبع آن را از اینجا دریافت کنید. همچنین ، اگر می خواهید هر ماه یک HackerBox مانند این را در صندوق پستی خود دریافت کنید ، لطفاً در HackerBoxes.com مشترک شوید و به انقلاب بپیوندید!

موضوعات و اهداف آموزشی برای HackerBox 0024:

  • آزمایش با دید کامپیوتری
  • راه اندازی OpenCV (دید کامپیوتر)
  • برنامه نویسی Arduino Nano از Arduino IDE
  • کنترل سرو موتورها با آردوینو نانو
  • مونتاژ مجموعه مکانیکی پان و شیب
  • کنترل Pan و Tilt Motion با میکروکنترلر
  • انجام پیگیری صورت با استفاده از OpenCV

HackerBoxes سرویس جعبه اشتراک ماهانه برای لوازم الکترونیکی DIY و فناوری رایانه است. ما سرگرم کننده ، سازنده و آزمایش کننده هستیم. ما رویای رویاها هستیم. سیاره را هک کنید!

مرحله 1: HackerBox 0024: محتویات جعبه

HackerBox 0024: محتویات جعبه
HackerBox 0024: محتویات جعبه
  • کارت مرجع قابل جمع آوری HackerBoxes #0024
  • سه براکت پنل و مونتاژ شیب
  • دو سرو MG996R با لوازم جانبی
  • دو جفت سرو سرو آلومینیومی
  • آردوینو نانو V3 - 5 ولت ، 16 مگاهرتز ، MicroUSB
  • مونتاژ دوربین دیجیتال با کابل USB
  • سه لنز با پایه کلیپ جهانی
  • بازرسی پزشکی قلم نور
  • پرش کننده مرد/زن دوپونت
  • کابل MicroUSB
  • برچسب OpenCV منحصر به فرد
  • Decal منحصر به فرد Dia de Muertos Decal

برخی موارد دیگر که مفید خواهد بود:

  • ضایعات تخته چوبی کوچک برای پایه دوربین
  • آهن لحیم کاری ، لحیم کاری و ابزارهای اصلی لحیم کاری
  • کامپیوتر برای اجرای ابزارهای نرم افزاری

مهمتر از همه ، شما نیاز به حس ماجراجویی ، روح DIY و کنجکاوی هکرها دارید. سخت افزار الکترونیکی DIY یک کار بی اهمیت نیست و ما آن را برای شما کم نمی آوریم. هدف پیشرفت است نه کمال. وقتی پافشاری می کنید و از این ماجراجویی لذت می برید ، می توانید رضایت زیادی را از یادگیری فناوری جدید و به نتیجه رسیدن برخی پروژه ها به دست آورید. ما پیشنهاد می کنیم هر قدم را به آرامی بردارید ، به جزئیات توجه کنید و هرگز در درخواست کمک تردید نکنید.

سUالات متداول: ما دوست داریم از همه اعضای HackerBox تقاضای بزرگی کنیم. لطفاً قبل از تماس با پشتیبانی ، چند دقیقه وقت بگذارید تا سوالات متداول را در وب سایت HackerBoxes مرور کنید. در حالی که ما به وضوح می خواهیم به همه اعضا تا آنجا که لازم است کمک کنیم ، اکثر ایمیل های پشتیبانی ما شامل سوالات ساده ای است که در پرسش و پاسخ به وضوح به آنها پرداخته شده است. ممنونم از اینکه درک می کنید!

مرحله 2: بینایی کامپیوتر

بینایی رایانه ای
بینایی رایانه ای

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

جالب است بدانید که بینایی رایانه را می توان معکوس گرافیک رایانه دانست.

مرحله 3: پردازش و OpenCV

پردازش و OpenCV
پردازش و OpenCV

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

OpenCV (Open Source Computer Vision Library) یک کتابخانه نرم افزار منبع باز کامپیوتر و یادگیری ماشین است. OpenCV برای ایجاد زیرساخت مشترک برای برنامه های بینایی رایانه ای و تسریع استفاده از درک ماشین در محصولات تجاری ساخته شد. کتابخانه OpenCV دارای بیش از 2500 الگوریتم بهینه شده است که شامل مجموعه ای جامع از الگوریتم های کلاسیک و پیشرفته بینایی رایانه و یادگیری ماشین است. از این الگوریتم ها می توان برای تشخیص و تشخیص چهره ها ، شناسایی اشیاء ، طبقه بندی اقدامات انسان در فیلم ها ، ردیابی حرکات دوربین ، ردیابی اجسام متحرک و غیره استفاده کرد.

OpenCV را درون Processing از منوی File> Examples با انتخاب "Add Examples" و سپس در برگه Libraries ، هم کتابخانه های Video و هم OpenCV را نصب کنید. مثال LiveCamTest را برای ردیابی اولیه صورت باز کنید. نمونه های دیگر OpenCV را برای پردازش در اینجا بررسی کنید.

منابع بیشتر:

شروع به کار با چشم انداز کامپیوتری یک پروژه کتابی است که یک نقطه ورود آسان برای آزمایش خلاقانه با دید کامپیوتر است. این کد و مفاهیم لازم برای ساخت پروژه های بینایی رایانه ای را معرفی می کند.

برنامه نویسی کامپیوتر چشم انداز با پایتون یک کتاب O'Reilly در PCV است ، یک ماژول منبع باز پایتون برای بینایی کامپیوتر.

آموزش OpenCV

بینایی رایانه ای: الگوریتم ها و برنامه های کاربردی

تسلط بر OpenCV

دوره استنفورد CS231n شبکه های عصبی متحرک برای تشخیص بصری (16 فیلم)

کریس اورمسون TED Talk چگونه یک ماشین بدون راننده جاده را می بیند

مرحله 4: پلت فرم میکروکنترلر آردوینو نانو

پلت فرم میکروکنترلر آردوینو نانو
پلت فرم میکروکنترلر آردوینو نانو

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

امکانات:

  • میکروکنترلر: Atmel ATmega328P
  • ولتاژ: 5 ولت
  • پین های ورودی/خروجی دیجیتال: 14 (6 PWM)
  • پین های ورودی آنالوگ: 8
  • جریان DC در هر پین ورودی/خروجی: 40 میلی آمپر
  • حافظه فلش: 32 کیلوبایت (2 کیلوبایت برای بوت لودر)
  • SRAM: 2 کیلوبایت
  • EEPROM: 1 کیلوبایت
  • سرعت ساعت: 16 مگاهرتز
  • ابعاد: 17 میلی متر در 43 میلی متر

این نوع خاص از آردوینو نانو ، طرح Robotdyn مشکی است. رابط کاربری توسط یک پورت MicroUSB روی صفحه است که با همان کابل های MicroUSB که با بسیاری از تلفن های همراه و رایانه های لوحی استفاده می شود سازگار است.

Arduino Nanos دارای تراشه داخلی USB/Serial Bridge است. در این نوع خاص ، تراشه پل CH340G است. توجه داشته باشید که انواع دیگر تراشه های USB/Serial Bridge در انواع مختلف بردهای آردوینو استفاده می شود. این تراشه ها به شما این امکان را می دهند تا با پورت USB کامپیوتر بتوانید با رابط سریال روی تراشه پردازنده آردوینو ارتباط برقرار کنید.

سیستم عامل رایانه به درایور دستگاه نیاز دارد تا با تراشه USB/Serial ارتباط برقرار کند. راننده به IDE اجازه می دهد تا با برد Arduino ارتباط برقرار کند. درایور دستگاه مورد نیاز بستگی به نسخه سیستم عامل و نوع تراشه USB/سریال دارد. برای تراشه های CH340 USB/Serial ، درایورهای موجود برای بسیاری از سیستم عامل ها (UNIX ، Mac OS X یا Windows) وجود دارد. سازنده CH340 این رانندگان را در اینجا تامین می کند.

هنگامی که برای اولین بار آردوینو نانو را به پورت USB رایانه خود وصل می کنید ، چراغ سبز روشن می شود و اندکی پس از آن LED آبی به آرامی چشمک می زند. این اتفاق می افتد زیرا Nano از قبل با برنامه BLINK بارگیری شده است ، که با نام تجاری جدید Arduino Nano اجرا می شود.

مرحله 5: محیط توسعه یکپارچه Arduino (IDE)

محیط توسعه یکپارچه Arduino (IDE)
محیط توسعه یکپارچه Arduino (IDE)

اگر هنوز Arduino IDE را نصب نکرده اید ، می توانید آن را از Arduino.cc بارگیری کنید

اگر می خواهید اطلاعات مقدماتی بیشتری برای کار در اکوسیستم آردوینو داشته باشید ، پیشنهاد می کنیم دستورالعمل های کارگاه راه اندازی HackerBoxes را بررسی کنید.

Nano را به کابل MicroUSB و سر دیگر کابل را به یک پورت USB در رایانه وصل کنید ، نرم افزار Arduino IDE را راه اندازی کنید ، پورت USB مناسب را در IDE زیر ابزار> درگاه (احتمالاً نامی با "wchusb" در آن انتخاب کنید)) همچنین "Arduino Nano" را در IDE زیر tools> board انتخاب کنید.

در نهایت ، یک قطعه کد نمونه را بارگذاری کنید:

فایل-> مثالها-> مبانی-> پلک زدن

این در واقع کدی است که از قبل روی Nano بارگیری شده است و باید در حال حاضر اجرا شود تا به آرامی LED آبی چشمک بزند. بر این اساس ، اگر این کد نمونه را بارگذاری کنیم ، چیزی تغییر نمی کند. در عوض ، اجازه دهید کد را کمی تغییر دهیم.

با نگاه دقیق ، می بینید که برنامه LED را روشن می کند ، 1000 میلی ثانیه (یک ثانیه) منتظر می ماند ، LED را خاموش می کند ، یک ثانیه دیگر منتظر می ماند و سپس دوباره همه چیز را برای همیشه انجام می دهد.

کد را با تغییر هر دو عبارت "تاخیر (1000)" به "تاخیر (100)" تغییر دهید. این اصلاح باعث می شود LED ده برابر سریعتر چشمک بزند ، درست است؟

اجازه دهید کد اصلاح شده را با کلیک روی دکمه UPLOAD (نماد پیکان) درست در بالای کد اصلاح شده خود در Nano بارگذاری کنید. در زیر کد اطلاعات مربوط به وضعیت را مشاهده کنید: "کامپایل" و سپس "بارگذاری". در نهایت ، IDE باید "بارگذاری کامل" را نشان دهد و LED شما باید سریعتر چشمک بزند.

اگر چنین است ، تبریک می گویم! شما به تازگی اولین قطعه کد جاسازی شده خود را هک کرده اید.

هنگامی که نسخه چشمک زن سریع شما بارگیری و اجرا می شود ، چرا نمی بینید که آیا می توانید دوباره کد را تغییر دهید تا LED دوبار سریع چشمک بزند و سپس چند ثانیه صبر کنید تا تکرار شود؟ آن را امتحان کنید! در مورد برخی الگوهای دیگر چطور؟ هنگامی که موفق به تجسم یک نتیجه دلخواه ، کدگذاری آن و مشاهده عملکرد مطابق برنامه شده اید ، گام بزرگی در جهت تبدیل شدن به یک هکر سخت افزاری شایسته برداشته اید.

مرحله 6: سروو موتورز

سروو موتورز
سروو موتورز

سرو موتورها عموماً توسط یک سری پالس های الکتریکی تکراری کنترل می شوند که عرض پالس ها موقعیت سروو را نشان می دهد. سیگنال کنترل مدولاسیون عرض پالس (PWM) اغلب توسط یک میکروکنترلر معمولی مانند آردوینو تولید می شود.

سرویس های کوچک سرگرمی مانند MG996R از طریق یک اتصال استاندارد سه سیمه متصل می شوند: دو سیم برای منبع تغذیه DC و یک سیم برای حمل پالس های کنترل. سروهای MG996R دارای ولتاژ کاری 4.8-7.2 VDC هستند.

مرحله 7: مونتاژ مکانیسم پان و شیب

مونتاژ مکانیسم پان و شیب
مونتاژ مکانیسم پان و شیب
  1. هر دو سرو MG996R را از کیف خود بیرون بیاورید و لوازم جانبی موجود را فعلاً کنار بگذارید.
  2. یک سرو سرو آلومینیومی و دایره ای شکل به هر سروو وصل کنید. توجه داشته باشید که کوپلرها در کیسه های جداگانه از سرو قرار دارند. کوپلر بسیار محکم است. با فشار دادن کوپلر به انتهای سروو شروع کنید و سپس یک پیچ را به سوراخ مرکزی بکشید. نخ را محکم کنید تا کوپلر به خروجی سروو کشیده شود.
  3. توجه داشته باشید که سه براکت برای مجموعه pan-tilt وجود دارد-دو براکت جعبه و یک براکت U.
  4. یکی از براکت های جعبه را روی دایره آلومینیومی برای یکی از سروها نصب کنید. ما این سروو را سرو سرو می نامیم. براکت جعبه را با دیوار وسط آن در برابر دایره آلومینیومی جهت دهید ، به گونه ای که دو دیواره دیگر براکت جعبه رو به روی سرو پان باشد. از سوراخ های مرکزی روی دیوار وسط براکت جعبه استفاده کنید. این ترتیب باید به سرو سرو اجازه دهد تا جعبه متصل شده را به محض فعال شدن بچرخاند.
  5. سرووی دیگر (سروت شیب دار) را در براکت جعبه ای که به دایره آلومینیومی سرو سرو متصل شده است ، قرار دهید. از حداقل دو مهره و پیچ برای چسباندن سروو استفاده کنید - یکی در هر طرف.
  6. براکت U را نگه دارید ، "بلبرینگ" برنجی را از داخل U از طریق یکی از سوراخهای بزرگ نصب محور قرار دهید.
  7. براکت U را با یاتاقان روی سروت شیب قرار دهید که داخل براکت جعبه است به گونه ای که سوراخ بزرگ دیگر نصب (که بدون یاتاقان است) با دایره آلومینیومی روی سروت شیب هم تراز شود.
  8. برای پیچاندن براکت U بر روی دایره آلومینیومی در یک طرف براکت U از پیچ استفاده کنید.
  9. در طرف دیگر براکت U ، یک پیچ را از طریق یاتاقان محکم کرده و به سوراخ کوچک در براکت جعبه داخل بکشید. این امر باعث می شود که براکت U بعداً هنگام فعال شدن سروو شیب در اطراف براکت بچرخد.

مرحله 8: نصب مجموعه Pan و Tilt

نصب مجموعه Pan و Tilt
نصب مجموعه Pan و Tilt
نصب مجموعه Pan و Tilt
نصب مجموعه Pan و Tilt

براکت باقی مانده را می توان به ضایعات تخته چوبی کوچک متصل کرد تا به عنوان پایه دوربین عمل کند ، همانطور که در تصویر نشان داده شده است. سرانجام ، سرو سرو در داخل براکت باقی مانده با استفاده از حداقل دو مهره و پیچ برای چسباندن سروو به براکت نصب می شود - یکی در هر طرف.

مرحله 9: مجموعه Pan and Tilt را سیم کشی و آزمایش کنید

سیم و تست مجموعه Pan and Tilt را انجام دهید
سیم و تست مجموعه Pan and Tilt را انجام دهید

برای سیم کشی سروها مطابق شماتیک ، سریعترین کار این است که فقط کانکتورهای زن اصلی را از سروها جدا کرده و سپس از چند انتهای بلوز زن DuPont برای دریافت سیگنال و خطوط اتصال به پین های نانو استفاده کنید.

Nano جریان کافی در منبع تغذیه 5 ولت برای تغذیه سرووها از طریق USB ندارد ، بنابراین منبع اضافی توصیه می شود. این می تواند هر چیزی در محدوده 4.8-7.2 ولت باشد. به عنوان مثال ، چهار باتری AA (سری) به خوبی کار می کنند. عرضه نیمکت یا زگیل دیواری نیز انتخاب خوبی است.

مثال ساده کد آردوینو که در اینجا به عنوان PanTiltTest.ino ضمیمه شده است ، می تواند برای آزمایش کنترل دو سروو از مانیتور سریال در IDE آردوینو استفاده شود. نرخ باود مانیتور را مطابق با 9600bps تنظیم شده در کد مثال تنظیم کنید. وارد کردن مقادیر زاویه بین 0 تا 180 درجه سرووها را بر این اساس قرار می دهد.

در نهایت ، ماژول دوربین USB (یا سنسور دیگر) را می توان برای استفاده در ردیابی برنامه ها بر روی U-Bracket Pan-Tilt Assembly نصب کرد.

مرحله 10: پیگیری صورت با OpenCV

Image
Image
سیاره را هک کنید
سیاره را هک کنید

یک سیستم ردیابی چهره بینایی ماشین را می توان با ترکیب زیرسیستم هایی که در بلوک نمودار نشان داده شده است پیاده سازی کرد. طرح SerialServoControl برای آردوینو را می توانید در آموزش Sparkfun زیر همراه با یک تظاهرات مرتبط با استفاده از OpenCV ، Processing ، Arduino ، دوربین USB و مجموعه Pan/Tilt برای ردیابی چهره انسان مشاهده کنید. نسخه نمایشی از دو سرویس برای تغییر موقعیت دوربین استفاده می کند تا چهره را در فریم ویدئویی متمرکز نگه دارد ، حتی وقتی کاربر در اتاق حرکت می کند. به عنوان مثال کد در C#، مخزن GitHub را برای فیلم CamBot بررسی کنید.

مرحله 11: سیاره را هک کنید

اگر از این Instrucable لذت برده اید و می خواهید یک جعبه از پروژه های الکترونیکی و فناوری رایانه ای مانند این مستقیماً هر ماه به صندوق پستی شما تحویل داده شود ، لطفاً با عضویت در اینجا به ما بپیوندید.

با ما در ارتباط باشید و موفقیت خود را در نظرات زیر یا در صفحه فیس بوک HackerBoxes به اشتراک بگذارید. در صورت داشتن هرگونه سوال یا نیاز به راهنمایی در هر مورد ، مطمئناً به ما اطلاع دهید. از اینکه بخشی از HackerBoxes هستید ، متشکرم. لطفا پیشنهادات و انتقادات خود را در آینده حفظ کنید. HackerBoxes جعبه های شما هستند. بیایید چیزی عالی بسازیم!

توصیه شده: