آموزشاینترنت اشیاءبرنامه نویسیپایتونرزبری پایسخت افزارمیم تک 26نرم افزارنرم افزار کامپیوترنرم افزار موبایل

ربات هدایت شونده با ریموت کنترل را با هم بسازیم !

ربات هدایت شونده با ریموت کنترل را با هم بسازیم !

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

با من همراه باشید…

آموزش ساخت ربات هدایت شونده با ریموت کنترل:

برای کنترل ربات خود می توانید از مکانیزم های زیر استفاده کنید:

  • گوشی یا تبلت اندرویدی
  • کیت صدای Google AIY
  • یک ریموت کنترل از راه دور

چه چیزهایی قرار است بیاموزیم:

  • نحوه دریافت ورودی از یک دستگاه Android در Raspberry Pi
  • نحوه استفاده از پین GPIO از راه دور برای کنترل ربات هدایت شونده
  • نحوه پردازش داده ها از طریق یک کیت صدای Google AIY برای کنترل ربات هدایت شونده

مسایلی که در این مقاله مورد بحث قرار خواهیم داد:

آنچه شما برای ساخت ربات هدایت شونده با ریموت کنترل نیاز دارید:

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

تمام اطلاعات اولیه در این مقاله موجود است.

یک ریموت کنترل اندرویدی :

در وهله اول به یک تلفن یا تبلت اندرویدی نیاز داریم.

دستورالعمل ها:

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

حالا به کمی تنظیمات نیاز داریم.

روی رزبری پای خود یک ترمینال باز کنید و ماژول های dbus و bluedot مربوط به پایتون را نصب و پیکربندی کنید.

 اصول استفاده از برنامه Blue Dot با Raspberry Pi :

برای شروع استفاده از Blue Dot، شما باید دستگاه Android را با Raspberry Pi  خود pair کنید.

تنظیمات مورد نیاز روی دستگاه اندرویدی:

  • وارد setting شوید.
  • بلوتوث را انتخاب و آن را روشن کنید تا دستگاه شما قابل شناسایی شود.

تنظیمات مورد نیاز روی رزبری پای:

  • روی نماد بلوتوث در نوار وظیفه کلیک کنید.
  • بلوتوث را روشن کنید.
  • روی Make Discoverable کلیک کنید.

  • Add Device
  • دستگاه یاد در لیست نشان داده شود.روی آن کلیک کنید تا عملیات pair انجام شود.

  • پس از آن شما را به پذیرش یا ورود PIN (شماره شناسه شخصی) دعوت می کند. حال باید ، دستگاه هایتان pair شده باشند.

دریافت سیگنال با پایتون:

اکنون می‌توانید از ماژول bluedot پایتون برای دریافت پیام از برنامه Android استفاده کنید.

  • در Raspberry Pi شما می توانید Python3 IDLE یا یکی دیگر از IDE را برای نوشتن برنامه ساده زیر استفاده کنید.
  • کد را ذخیره و اجرا کنید.
  • در دستگاه Android خود، برنامه Blue Dot را باز کنید و Raspberry Pi را از بین فهرست دستگاه های موجود انتخاب کنید.
  • در Python Shell باید پیغامی مبنی بر اتصال دستگاه را مشاهده کنید.

  • حالا اگر Blue Dot را بر روی صفحه نمایش Android فشار دهید این پیام ظاهر می شود. You pressed the blue dot!

روش های بیشتر:

  • برای دریافت اطلاعات بیشتر در مورد چگونگی تعامل با Blue Dot، می توانید از روش های زیر استفاده کنید:

  • وقتی تابع را فراخوان می کنید، موقعیت حرکت انگشت روی Blue Dot  به تابع منتقل می شود.
  • بیاید یک مثال از عملکرد Function foo  ببینیم:

  • این به شما مختصات x و y انگشت روی Blue Dot (از -1 به 1) را می دهد.
  •  pos.top اگر فشار انگشت نزدیک نقطه بالای Blue Dot باشد مقدار True را برمی گرداند.
  • از pos.right, pos.bottom و pos.left هم می توانید استفاده کنید.

پیش نیازهای کنترل ربات هدایت شونده از راه دور:

  • پایتون 3 IDLE را باز کنید و یک فایل جدید ایجاد کنید.
  • ماژول های bluedot و gpiozero را وارد کنید و اشیاء ربات و BlueDot را ایجاد کنید.

  • یک تابع به نام Move  با پارامتر pos ایجاد کنید.

  • فانکشن باید pos.top  را چک کند و اگر درست بود مقدار True را برگرداند.
  • اگر درست بود از robot.forward() برای به جلو حرکت دادن ربات استفاده می کنیم.
  • همچنین باید pas.bottemو pas.right, pas.leftچک شوند و همین طوری ربات را حرکت دهید.
  • یک فانکشن stop هم برای متوقف کردن ربات هدایت شونده خود بسازید.
  • اگر همه چیز درست انجام شده باشد وقتی Blue Dot فشرده می شود یا انگشت حرکت می کند، باید عمل Move انجام شود و وقتی آن را رها می کنید باید متوقف شود

بخشی از کد را در شکل زیر مشاهده می کنید:

AIY Projects Voice Kit remote

در این قسمت از مقاله آموزش ساخت ربات هدایت شونده با ریموت کنترل ، شما به یک Google AIY Projects voice kit و رزبری پای احتیاج دارید.

دستورالعمل ها

از Raspbery pi 2  که از Google AIY Projects voice kit  پشتیبانی می کند استفاده می کنیم تا بتوانیم ربات خود را از راه دور کنترل کنیم.

برای کنترل ربات از یکی از ویژگی های ماژول gpiozero به نام Remote pin استفاده می کنیم.

با استفاده از ماژول gpiozero پایتون شما می توانید پین GPIO در Raspberry Pi را از طریق کامپیوتر دیگری کنترل کنید.

  • اولین گام فعال کردن این است که GPIO را روی رزبری پای فعال کنیم:

Menu > Preferences > Raspberry Pi Configuration. Then enable the Remote GPIO option

  • در Raspberry Pi از راه دور، شما همچنین نیاز به اجرای daemon pigpio دارید. یک ترمینال باز کنید و سینتکس زیر را وارد کنید:

  • اگر می خواهید این را در بوت اجرا کنید، می‌توانید از این دستور استفاده کنید:

  • شما هم اکنون می توانید پین GPIO را در این Raspberry Pi  از طریق هر کامپیوتری که gpiozero روی آن نصب شده است،  کنترل کنید.
  • در رایانه ای که می خواهید کنترل Remote Pi را از راه دور انجام دهد، ابتدا باید دستگاه مورد نظر خود را در gpiozero و همچنین PiGPIOFactory وارد کنید.

  • حالا شما باید آدرس آی پی Remote Raspberry Pi را مشخص کنید. 192.168.1.100 را در کد زیر با آدرس آی پی  Remote Raspberry Pi خود جایگزین کنید.

  • اکنون می توانید دستگاه های خود را ایجاد کرده و آنها را کنترل کنید – فقط شماره پین ​​را که می خواهید کنترل کنید منتقل کنید.

  • حالا ربات خود را وصل کنید و روز رزبری پای خود یک ترمینال باز کنید.

  • hostname -I را وارد کنید تا Ip رزبری پای را نمایش دهد.این IP را یه جا یاددداشت کنید که بعدا بهش احتیاج داریم.
  • از این جا به بعد دیگه با خود ربات کاری نداریم می ریم سراغ Google kit

ماژول ها را وارد کنید و پین های کنترل شده را از راه دور تنظیم کنید:

  • فایل action.py را باز کنید و در بالای صفحه کد را وارد کنید تا ماژول های لازم برای کنترل ربات را از راه دور وارد کنید.

  • حالا شما می توانید با استفاده از IP که در مرحله قبل برداشتیم پین های کنترل از راه دور را تنظیم کنیم.

  • سپس شما می توانید ربات هدایت شونده خود را با این پین ها تنظیم کنید.

ایجاد یک فرمان صوتی:

به قسمت پایین فایل action.py بروید و بخش زیر را با کامنت زیر پیدا کنید:

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

استفاده از دستور “ربات” ممکن است ایده خوبی نباشد، زیرا API گوگل تلاش می کند که این کلمه را شناسایی کند.

از سینتسک های مختلف استفاده کنید تا ببینید کدامیک بهترین کار می کند.

اقدام سفارشی خود را ایجاد کنید

  • قسمت زیر را پیدا کنید:
  • یک کلاس بسازید و تابع say را فراخوانی کنید.
  • حالا به یک Run method نیاز دارید.این جایی است که کار واقعی انجام می شود.
  • در Run methode  باید موارد زیر را انجام دهید:
  1. voice_comand را با حروف کوچک بنویسید.
  2. اگر کلمهforward در فرمان صوتی باشد، سپس روبات به جلو حرکت می کند.
  3. اگر کلمه backward در فرمان صوتی باشد، سپس ربات به عقب حرکت می کند.

در تصویر زیر بخش زیر class را می بینید.

یک کنترل کننده بازی خانگی

نیازمندی ها:
  • 1 × solderless breadboard
  • 4 × tactile buttons
  • 5 × male-to-female jumper leads
  • 4 × male-to-male jumper leads
دستورالعمل ها:
  • اول باید 4 تا دکمه تعبیه کنیم که فرمان ها را به کمک آن ها به رزبری پای ارسال کنیم.

دکمه یکی از ساده ترین اجزای ورودی است که می توانید به Raspberry Pi متصل شوید.

این یک جزء غیر قطبی است، بدین معنی که شما می توانید آن را در یک مدار قرار دهید و آن کار خواهد کرد.

انواع مختلفی از دکمه ها وجود دارد -برای مثال آن ها می توانند دارای دو یا چهار پایه باشند.

نمودار زیر نشان می دهد که چگونه یک دکمه دو پا یا چهار پا را به Raspberry Pi ببرید.

در هر دو مورد GPIO 17 پین ورودی است.

اگر از دکمه های چندگانه استفاده می کنید، اغلب بهتر است از ground (اتصال به زمین) مشترک استفاده کنید تا از اتصال های زیاد به پین ​​های GND جلوگیری شود.

شما می توانید قسمت منفی را  به یک پین زمین متصل کنید، که به تمام دکمه ها اجازه می دهد از یک پین زمین مشابه استفاده کند.

شکل زیر نشان می دهد که چگونه با استفاده از یک  GND مشترک ، کلید ها را به برد متصل کنید:

نسل جدید Raspberry Pi قدرت بیشتری نسبت به گذشته دارند. شگفتی های فوق العاده ای که امکانات بی پایانی را فراهم می کنند.از پروژه های استارتاپی سرگرم کننده تا پروژه های خیلی بزرگ و خفن.
  • در Raspberry Pi که به ربات هدایت شونده متصل است، شما باید Daemon Pigpio را شروع کنید.

برای انجام این کار، یک پنجره ترمینال را باز کنید و زیر را تایپ کنید:

  • اگر می خواهید daemon pigpio بطور اتوماتیک در boot  اجرا شود، کد زیر را اجرا کنید:

  • سپس می توانید آدرس IP ربات خود که بعدا برای اتصال به آن احتیاج پیدا می کنید ،با استفاده از این خط کد پیدا کنید:

اجرای توابع برای دکمه ها :

در نمودار زیر، یک دکمه توسط سیم به پین 17 وصل شده است.

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

  • ابتدا باید دکمه را با استفاده از پایتون 3 و ماژول gpiozero تنظیم کنید.

  • سپس باید یک تابع ایجاد کنید که هیچ آرگیومنتی ندارد. این کار فقط کلمه ‘hello’ را به shell اضافه می کند.

  • در نهایت، یک متغیر ایجاد می کند که تابع را فراخوانی کند.

  • حالا هر بار که دکمه فشرده می شود، باید Hello را در shell پایتون چاپ کند.
  • شما می توانید به اندازه ای که می خواهید عملکرد را پیچیده کنید.حتی می توانید بخشی از توابع ماژول ها را فراخوانی کنید.

حالا باید برنامه نویسی لازم برای اتصال رزبری پای به بردکنترلر را انجام دهید.

  • محیط IDLE پایتون 3 را باز کنید.
  • با وارد کردن ماژول هایی که نیاز دارید شروع کنید و پین های راه دور را برای ربات تنظیم کنید:

  • برای بقیه پروژه شما باید کد را به اسکریپت خود اضافه کنید تا ربات را در مسیر درست به حرکت در آورید. هنگامی که یک دکمه خاص فشار داده می شود ربات هدایت شونده شروع به حرکت کند و وقتی دکمه را رها کردیم متوقف شود.

  • با استفاده از when_pressedوwhen_released متدهای مورد نیاز برای به حرکت در آوردن و متوقف کردن ربات هدایت شونده فراخوانی می شوند.

ارسال پاسخ