فهرست مطالب:

اتومبیل خودران خود را بسازید - (این دستورالعمل در حال انجام است): 7 مرحله
اتومبیل خودران خود را بسازید - (این دستورالعمل در حال انجام است): 7 مرحله

تصویری: اتومبیل خودران خود را بسازید - (این دستورالعمل در حال انجام است): 7 مرحله

تصویری: اتومبیل خودران خود را بسازید - (این دستورالعمل در حال انجام است): 7 مرحله
تصویری: با یه دختر این کارو نکن😰 2024, نوامبر
Anonim
Image
Image

سلام،

اگر نگاهی به دیگر Instructable on Drive Robot With Remote USB Gamepad بیندازید ، این پروژه مشابه است ، اما در مقیاس کوچکتر. همچنین می توانید از یوتیوب از لیست پخش Robotics ، Home-Grown Voice-Recognition یا Self-Driving Car کمک بگیرید یا از آنها الهام بگیرید.

من با ربات بزرگ (والاس 4) شروع کردم ، اما از زمانی که یک گروه Meetup محلی را راه اندازی کردم ، به چیزی در مقیاس کوچکتر احتیاج داشتم ، و گروه به بینایی کامپیوتر علاقه زیادی داشتند.

بنابراین با این دوره Udemy روبرو شدم: اتومبیل خودران خود را بسازید که ایده این پروژه را به من داد.

اگر به دوره Udemy علاقه دارید ، می توانید به بررسی ادامه دهید. گهگاه با تخفیف عظیمی به فروش می رسد. توجه: قسمت 1 و قسمت 2 وجود دارد - شما باید در مورد چگونگی دریافت دو دوره به صورت بسته (با تخفیف) تحقیق کنید.

هدف از این دستورالعمل دوگانه است. اول ، برای برخی قسمت های دوره (مانند قطعات و سخت افزار) برخی اشاره گرها و جایگزین ها را ارائه دهید. و دوم ، گسترش دوره.

هدف اصلی دوره Udemy:

این است که بتواند یک ماشین روبات کوچک چرخ دار را به حرکت خود در جاده ای با دو باند کوچک وادار کند.

باید نوارهای خط را تشخیص دهد و وقتی به انتهای جاده رسید.

باید علامت توقف (و توقف) را تشخیص دهد.

همچنین ، یک سیگنال راهنمایی قرمز و سبز.

همچنین باید اطراف موانع (خودروی دیگر) را بشناسد و مانور دهد.

آنچه این دستورالعمل به دوره اضافه می کند:

اتومبیل کوچک را با یک گیم پد USB از راه دور رانندگی کنید ، تقریباً همانند این دستورالعمل دیگر.

جایگزین هایی را برای دوره ارائه دهید.

حتی ممکن است مجبور نباشید دوره را بخرید:

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

تدارکات

بخشهای ضروری (پیشنهاد شده):

شاسی ربات

چهار موتور

آردوینو

رزبری پای (3 ، 3B+، 4)

دوربین (وب کم USB یا ماژول Picamera)

قدرت باتری

کلیدهای روشن/خاموش

سیم های جهنده

استند (پلاستیک و شاید فلز نیز)

لطفاً قبل از اقدام به خرید قطعات ، کل دستورالعمل و همچنین فیلم ها را مرور کنید.

پس از انجام این پروژه ، متوجه می شوم که قطعات دقیق آنقدرها هم مهم نیستند.

مرحله 1: جزئیات بیشتر در مورد قطعات…

Image
Image
توضیحات بیشتر در مورد قطعات…
توضیحات بیشتر در مورد قطعات…
توضیحات بیشتر در مورد قطعات…
توضیحات بیشتر در مورد قطعات…

ویدئوی مربوطه به جزئیات مربوط به قسمت ها و برخی از مسائلی که من پیدا کردم می پردازد.

  • به دنبال شاسی / موتورهای مختلف باشید
  • موتورها باید قبلاً سیم هایی به آنها لحیم کرده باشند
  • ممکن است بخواهید مته و مته ، یا شاسی با سوراخ بیشتر داشته باشید
  • به خاطر داشته باشید که وزن یک مسئله است. همه چیز باید تا حد ممکن سبک باشد.
  • درایور موتور L298 H-Bridge عالی کار می کند. توجه: یک عدد با بلوک های ترمینال پیچ تهیه کنید (به عکس مراجعه کنید)
  • احتمالاً شما هم از جنس پلاستیک و هم از جنس فلز استفاده می کنید ، اندازه M3 احتمالاً بهترین انتخاب است.

استندهای پلاستیکی برای نصب تخته ها روی شاسی (درایور موتور ، آردوینو ، تمشک ، PCB قدرت ، سوئیچ روشن/خاموش و غیره) مناسب هستند.

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

مته + مته مته

در صورت تمایل می خواهم بر استفاده از مته و استفاده از استند به جای نوار چسب دو طرفه تأکید کنم. به احتمال زیاد در طول این پروژه چندین بار تخته ها و غیره را برداشته و دوباره قرار می دهید و استفاده از نوار بسیار کثیف می شود.

استفاده از مته باعث می شود موقعیت بسیار راحت باشد (مخصوصاً اگر شاسی پلاستیکی باشد) و حرفه ای تر به نظر می رسد.

مرحله 2: تغذیه خودرو در حین توسعه

تغذیه خودرو در حین توسعه
تغذیه خودرو در حین توسعه
تغذیه خودرو در حین توسعه
تغذیه خودرو در حین توسعه

به نظر من ، سریعترین و ساده ترین راه برای شروع این پروژه ، این است:

  • برای توسعه نرم افزار طراحی آردوینو ، کافیست آردوینو را از طریق USB به کامپیوتر خود وصل کنید
  • برای نرم افزار Raspberry Pi ، شما باید یک USB 5 ولت داشته باشید که بتواند حداقل 3 آمپر را تامین کند. و باید دارای کلید روشن/خاموش باشد. مگر اینکه یک هاب USB خوب و قدرتمند به رایانه خود وصل کرده باشید ، احتمالاً نمی توانید رزبری را مستقیماً از رایانه خود تغذیه کنید.
  • برای زمانی که آماده آزمایش موتورها یا چرخ ها هستید ، ساده ترین منبع تغذیه خوب است (به عکس مراجعه کنید). با این حال ، آنها ارزان نیستند.

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

همچنین ، با انجام کاری شبیه به پیشنهادات فوق ، دیگر نگران نباشید (دقیقاً) در مورد نحوه تغذیه خودرو. می توانید آن تصمیم را برای مراحل بعدی پروژه به تعویق بیندازید.

مرحله 3: تغذیه خودرو در هنگام استفاده واقعی

تغذیه خودرو در هنگام استفاده واقعی
تغذیه خودرو در هنگام استفاده واقعی
تغذیه خودرو در هنگام استفاده واقعی
تغذیه خودرو در هنگام استفاده واقعی

اگر تصمیم دارید دوره (یا کاری که من انجام داده ام) را برای تغذیه 5 ولت منطقی دنبال کنید ، باید توجه داشته باشید که همه پاوربانک های USB 5 ولت برای این پروژه مناسب نیستند.

نکته اصلی در اینجا این است که شما به 5 ولت نیاز دارید اما حداقل به 3 آمپر نیاز دارید! اینطور فکر کنید - شما یک پاوربانک می خواهید که یک کامپیوتر لپ تاپ را تغذیه کند (شاید).

اگر شما در ایالات متحده زندگی می کنید ، من فکر می کنم یکی از بهترین راه ها برای این کار خرید از Best Buy است. چرا؟ به دلیل سیاست بازگشت پول 14 روزه آنها برای بازده.

من در واقع مجبور بودم سه پاوربانک مختلف را امتحان کنم تا یکی از آنها را پیدا کنم که کار می کند. موارد دیگر باعث می شود رزبری پای از ولتاژ پایین شکایت کند.

من با کم هزینه ترین پاوربانک شروع کرده بودم و فقط مدل بعدی (که هزینه بیشتری داشت) را امتحان کردم ، تا زمانی که یکی از آنها را پیدا کردم.

نحوه تغذیه آردوینو

در دوره Udemy ، نویسنده قدرت آردوینو را مستقیماً از پاوربانک (از طریق pcb سفارشی که ساخت) انتخاب کرد و از پین های برق در اتصال GPIO آردوینو استفاده کرد.

با این حال ، من فقط آردوینو را مستقیماً از طریق رزبری پای از طریق کابل USB تغذیه کردم.

شما باید تصمیم بگیرید که کدام بهتر است.

نحوه تغذیه موتورها/درایور موتور

در دوره Udemy ، نویسنده تصمیم گرفت موتورها/راننده را مستقیماً از پاوربانک 5 ولت تغذیه کند. اگر از این روش استفاده کنید ، دو ملاحظه وجود دارد.

  1. هنگامی که موتورها برای اولین بار شروع به چرخش می کنند ، بیشترین جریان را می کشند. این می تواند (باعث) کاهش ولتاژ قدرت (کاهش) زیر 5 ولت و تنظیم مجدد تمشک شود.
  2. استفاده از 5 ولت برای تغذیه موتورها به این معنی است که شما تا آنجا که می توانید به موتورها نیرو نمی دهید و خودرو کندتر حرکت می کند (کندتر). من موتورها (با آن منبع تغذیه) را آزمایش کرده ام (عکس را ببینید) حداقل 9 ولت. آنها در 9V خوب کار می کنند.

مشاهدات در مورد 9V (یا بیشتر)

اگر به تمام عکس ها و فیلم های این Instructable نگاهی بیندازید ، متوجه شدید که من یک PCB سفارشی را برای ایجاد منبع تغذیه 9V خودم جمع آوری کرده ام. من در این راه چند چیز یاد گرفته ام.

در حال حاضر من از چندین (3) باتری 9 ولت به طور موازی برای تغذیه موتورها استفاده می کنم. من از باتری های قابل شارژ قلیایی و NiMH استفاده کرده ام.

تجربه یادگیری شماره 1: برای شارژ صحیح باتری های NiMH 9V زمان زیادی (ساعت های زیادی) طول می کشد.

راه حل احتمالی: روی یک شارژر NiMH چند باتری سرمایه گذاری کنید. این باید یک شارژر "هوشمند" باشد.

معایب: ارزان نیستند.

تجربه یادگیری شماره 2: باتری های 9 ولت در واقع از چندین سلول داخلی کوچک تشکیل شده اند. اگر یکی از این سلول ها بمیرد ، کل باتری بی فایده است. من این مشکل را نداشتم ، اما در مورد آن خواندم.

تجربه یادگیری شماره 3: همه باتری های 9 ولت ولتاژ یکسانی ندارند. این یکی مهم است. از آنجا که ولتاژ بیشتر است ، سرعت بیشتری امکان پذیر است. برخی از سلول های باتری (و شارژرها) فقط 8.4 ولت هستند. برخی حتی کمتر. برخی از آنها 9.6 ولت هستند.

تجربه یادگیری شماره 4: باتری های 9 ولت ، مخصوصاً باتری های NiMH ، وزن کمی دارند. یک چیز خوب. با این حال ، اکثر آنها فقط mA جریان خروجی را ارائه می دهند. به همین دلیل مجبور شدم آنها را موازی قرار دهم. شما به کل جریان تقریباً 2 آمپر نیاز دارید ، حتی برای مدت کوتاهی.

تجربه یادگیری شماره 5: بسته های باتری 9.6 ولت وجود دارد که برای مواردی مانند اتومبیل های رادیویی استفاده می شود. من هنوز از یکی استفاده نکرده ام ، اما معتقدم که آنها مانند من جریان بیشتری نسبت به باتری های موازی 9V دارند. همچنین می توانید واحد را شارژ کنید. بسته ها در اندازه های مختلف موجود می باشند. و یک ملاحظه وزن وجود دارد. و سپس ، آیا از پک برای تامین نیروی کامل خودرو یا فقط موتورها استفاده می کنید؟ اگر برای کل خودرو ، به یک تنظیم کننده 5 ولت گام به گام برای رزبری پای نیاز دارید.

L298 H-Bridge توانایی خروجی 5 ولت را برای این منظور دارد ، اما من نگران این هستم که چقدر جریان می تواند برای رزبری پای تولید کند و آیا فشار زیادی روی برد L298 وارد می کند.

اگر تصمیم دارید دو منبع تغذیه جداگانه داشته باشید ، ممکن است مشکل وزن (بسیار سنگین) داشته باشید.

مرحله 4: برنامه نویسی نرم افزار برای رانندگی گیم پد

من فکر می کنم بسیاری از این بخش را قبلاً در Robot Driven Via Remote USB Gamepad Instructable قرار دادم ، بنابراین آن را در اینجا تکرار نمی کنم.

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

مرحله 5: اضافه کردن دوربین

افزودن دوربین
افزودن دوربین
افزودن دوربین
افزودن دوربین
افزودن دوربین
افزودن دوربین

در دوره Udemy ، من معتقدم که نویسنده از رولپلاک های چوبی گرد و یک تفنگ چسب برای ایجاد راهی برای بالا بردن دوربین استفاده می کند.

شما می خواهید دوربین را به گونه ای بالا ببرید که از پایین به جاده دو خط نگاه کند ، بنابراین می تواند خطوط را به راحتی تشخیص دهد.

جایی که من در ایالات متحده زندگی می کنم ، رولپلاک های چوبی بسیار ارزان بودند. می توانید آنها را در Lowe's یا Home Depot خریداری کنید. من به جای رولپلاک گرد ، رولپلاک مربعی را انتخاب کردم.

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

همچنین ، من این برج را با این ایده ساختم که از یک وب کم USB شروع می کنم ، اما احتمالاً بعداً به استفاده از ماژول Picamera ادامه می دهم.

ممکن است بخواهید روی یک دوربین نوع ماهی سرمایه گذاری کنید.

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

سپس پایه را روی شاسی ماشین وصل کردم.

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

من کد "follow-me" Python و Node.js را از روبات بزرگ (Wallace Robot 4) به عنوان راهی برای آزمایش همه چیز آوردم. لطفاً عکسهای این بخش را برای لیست یوتیوب هایی که جزئیات بیشتری در مورد "دنبال کردن من" ارائه دهید ، مشاهده کنید.

همانطور که اشاره کردم ، نصب یک وب کم USB راحت تر بود. بعداً می توانم ماژول Picamera را سوار کنم.

مرحله 6: تشخیص چهره - تعیین موقعیت

Image
Image

این قسمت تمرکز دوره Udemy نیست ، اما یک تمرین سرگرم کننده بود.

اگر برخی از جستجوی وب را برای "تشخیص چهره python opencv" انجام دهید ، مثالهای خوبی در مورد نحوه انجام آن خواهید یافت ، و همه آنها تقریباً مراحل یکسانی را دنبال می کنند.

  1. فایل چهره "haar" را بارگیری کنید
  2. راه اندازی اولیه دوربین
  3. یک حلقه را در جایی که یک قاب گرفته اید شروع کنید
  4. تبدیل تصویر رنگی به مقیاس خاکستری
  5. آن را به opencv بدهید تا چهره (ها) پیدا کند
  6. یک حلقه داخلی را شروع کنید (برای هر صورت یافت شده) (در مورد من ، اگر بیش از 1 صورت باشد ، کد را برای سقط اضافه می کنم)

برای این منظور در اینجا ، هنگامی که یک صورت را تشخیص دادیم ، X ، Y ، W و H مربع خیالی را که چهره را ترسیم می کند ، می شناسیم.

اگر می خواهید ربات به جلو یا عقب حرکت کند ، فقط باید W. را در نظر بگیرید اگر W خیلی بزرگ است (خیلی نزدیک) ، ربات را به عقب برگردانید. اگر W خیلی کوچک است (خیلی دور) ، ربات را به جلو حرکت دهید.

حرکت چپ/راست کمی پیچیده تر است اما دیوانه کننده نیست. نگاهی به تصویر این بخش بیاندازید که در آن نحوه تعیین موقعیت چپ در مقابل راست توضیح داده شده است.

توجه داشته باشید:

اگر یکی از نمونه های وب OpenCV را اجرا می کنید ، همه آنها نمای واقعی آنچه را که opencv "در حال دیدن" است نشان می دهند ، با صورت در یک مربع مشخص شده است. اگر مشاهده کنید ، آن مربع ثابت نیست (ثابت) ، حتی اگر در حال حرکت نباشید.

این مقادیر متغیر باعث می شوند که ربات دائماً در حال حرکت باشد ، به جلو یا عقب ، چپ یا راست.

بنابراین ، شما باید نوعی دلتا برای جلو/عقب و چپ/راست داشته باشید.

بیایید چپ و راست را انتخاب کنیم:

پس از محاسبه چپ و راست ، سپس تفاوت (دلتا) را بدست آورید:

delta = abs (چپ - راست)

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

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

شما همین کار را برای جلو به عقب انجام می دهید.

مرحله 7: موقعیت چهره - روبات متحرک

وقتی می دانید که برای حرکت چپ یا راست ، جلو یا عقب به ربات نیاز دارید ، چگونه این کار را انجام می دهید؟

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

به طور خلاصه ، من کد را در لایه ها دارم.

اسکریپت تشخیص چهره پایتون درخواست های http به سرور Node.js می دهد

سرور Node.js به درخواستهای http برای جهت حرکت گوش می دهد ، آنها را به پروتکل سریال سفارشی تبدیل می کند

پروتکل سریال سفارشی بین سرور Node.js و آردوینو

طرح آردوینو که دستورات واقعی حرکت ربات را انجام می دهد

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

توصیه شده: