فهرست مطالب:

WiBot: 10 مرحله (همراه با تصاویر)
WiBot: 10 مرحله (همراه با تصاویر)

تصویری: WiBot: 10 مرحله (همراه با تصاویر)

تصویری: WiBot: 10 مرحله (همراه با تصاویر)
تصویری: Digital rectal exam demonstration from BMJ Learning 2024, سپتامبر
Anonim
WiBot
WiBot

این دستورالعمل روند ساخت یک روبات Wi-Fi در بستر ZYBO را توضیح می دهد. این پروژه از یک سیستم عامل زمان واقعی برای تشخیص شی ، اندازه گیری فاصله و کنترل پاسخگو استفاده می کند. این راهنما ارتباط ZYBO با لوازم جانبی ، اجرای سیستم عامل سفارشی و ارتباط از طریق برنامه جاوا را پوشش می دهد. در زیر لیستی از تمام اجزای اصلی مورد نیاز برای این پروژه آمده است:

  • 1 هیئت توسعه ZYBO
  • 1 روتر بی سیم TL-WR802N
  • 1 شاسی سایه
  • 2 چرخ 65 میلی متری
  • 2 دور موتور 140 دور در دقیقه
  • 2 رمزگذار چرخ
  • 1 سنسور اولتراسونیک HC-SR04
  • 1 مبدل سطح منطقی BSS138
  • 1 درایور موتور L293 H-Bridge
  • 1 مبدل 12 ولت به 5 ولت DC/DC
  • 1 باتری LiPo 2200 میلی آمپر ساعتی
  • 1 کابل اترنت
  • 1 کابل USB Micro-B
  • 1 رابط زن XT60
  • 2 سیم جهنده مرد به زن
  • 30 سیم بلوز نر به نر
  • 2 مقاومت 10kΩ
  • 1 تخته نان

علاوه بر این ، نرم افزار زیر باید روی رایانه مورد نظر نصب شود:

  • مجموعه طراحی Xilinx Vivado 2018.2
  • Digilent Adept 2.19.2
  • FreeRTOS 10.1.1
  • کیت توسعه جاوا SE 8.191

مرحله 1: مونتاژ شاسی روبات

مونتاژ شاسی روبات
مونتاژ شاسی روبات
مونتاژ شاسی روبات
مونتاژ شاسی روبات
مونتاژ شاسی روبات
مونتاژ شاسی روبات

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

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

الکترونیک سیم
الکترونیک سیم
الکترونیک سیم
الکترونیک سیم
الکترونیک سیم
الکترونیک سیم

ورودی و خروجی مبدل DC/DC را به ترتیب به دو ریل قدرت روی صفحه نان متصل کنید. اینها به عنوان منابع 12 ولت و 5 ولت برای سیستم عمل خواهند کرد. مطابق تصویر ZYBO را به ریل 5 ولت وصل کنید. برای اتصال روتر به ریل 5 ولت نیز از کابل USB Micro-B استفاده کنید. کابل XT60 باید به ریل 12 ولت متصل شود. تا زمانی که بقیه قطعات الکترونیکی به درستی وصل نشده اند ، باتری را وصل نکنید. سنسور اولتراسونیک باید به ریل 5 ولت متصل شود. با استفاده از پین 6 پورت Pmod JC روی ZYBO ، یک ریل 3.3V روی تخته نان ایجاد کنید. ورودی ولتاژ بالا مبدل منطقی باید به ریل 5 ولت متصل شود در حالی که ورودی ولتاژ پایین مبدل منطقی باید به ریل 3.3 ولت متصل شود. کد کننده های موتور را به ریل 3.3V متصل کنید. VCC1 راننده موتور را به ریل 5 ولت وصل کنید و VCC2 را به ریل 12 ولت وصل کنید. همه پین های EN را به 5 ولت وصل کرده و همه پین های GND را زمین کنید.

پین های TRIG و ECHO سنسور اولتراسونیک را به ترتیب به HV1 و HV2 مبدل منطقی وصل کنید. LV1 باید به JC4 و LV2 باید به JC3 وصل شود. برای پین های Pmod به نمودار مراجعه کنید. موتورها را به درایور موتور وصل کنید. Y1 باید به ترمینال مثبت موتور راست و Y2 به ترمینال منفی موتور راست متصل شود. به طور مشابه ، Y3 باید به پایانه مثبت موتور چپ و Y4 باید به پایانه منفی موتور چپ متصل شود. A1 ، A2 ، A3 و A4 باید به ترتیب به JB2 ، JB1 ، JB4 و JB3 نگاشت شوند. برای شمارش پین ها به شماتیک مراجعه کنید. JC2 را به رمزگذار راست و JC1 را به رمزگذار چپ وصل کنید. اطمینان حاصل کنید که از مقاومتهای کششی برای اتصال این سیگنالها به ریل 3.3V استفاده می شود. در نهایت ، از کابل اترنت برای اتصال ZYBO به روتر استفاده کنید.

مرحله 3: ایجاد نمودار بلوک در Vivado

ایجاد بلوک دیاگرام در Vivado
ایجاد بلوک دیاگرام در Vivado

یک پروژه RTL جدید در Vivado ایجاد کنید. اطمینان حاصل کنید که در حال حاضر هیچ منبعی را مشخص نکنید. عبارت "xc7z010clg400-1" را جستجو کرده و پایان را بزنید. encoder_driver.sv و ultrasonic_driver.sv را بارگیری کنید. آنها را در پوشه های خود قرار دهید. IP Packager را در بخش "Tools" باز کنید و بسته بندی یک فهرست مشخص را انتخاب کنید. مسیر پوشه حاوی درایور رمزگذار را جایگذاری کرده و "بعدی" را فشار دهید. روی "بسته IP" کلیک کنید و مراحل مربوط به درایور سنسور اولتراسونیک را تکرار کنید. سپس در منوی تنظیمات به بخش مخزن در زیر بخش IP بروید. مسیرها را به پوشه های راننده اضافه کنید و روی Apply کلیک کنید تا آنها را در کتابخانه IP قرار دهید.

یک بلوک دیاگرام جدید ایجاد کنید و "سیستم پردازش ZYNQ7" را اضافه کنید. روی بلوک دوبار کلیک کرده و فایل ارائه شده ZYBO_zynq_def.xml را وارد کنید. در بخش "پیکربندی MIO" ، تایمر 0 و GPIO MIO را فعال کنید. برای ذخیره تنظیمات ، "OK" را فشار دهید. 3 بلوک "AXI GPIO" و 4 بلوک "AXI Timer" اضافه کنید. اتوماسیون بلوک و به دنبال آن اتوماسیون اتصال برای S_AXI را اجرا کنید. برای پیکربندی بلوک های GPIO دوبار کلیک کنید. یک بلوک باید دو کاناله با ورودی 4 بیتی و خروجی 4 بیتی باشد. این اتصالات را خارجی کرده و برچسب SW را برای ورودی و LED را برای خروجی برچسب گذاری کنید. بلوک دوم نیز باید دو کاناله با 2 ورودی 32 بیتی باشد. آخرین بلوک GPIO یک ورودی 32 بیتی خواهد بود. خروجی pwm0 از هر بلوک تایمر را خارجی کنید. آنها را PWM0 ، PWM1 ، PWM2 و PWM3 برچسب گذاری کنید.

درایور رمزگذار را به نمودار بلوک اضافه کنید و CLK را به FCLK_CLK0 وصل کنید. OD0 و OD1 را به کانال های ورودی بلوک GPIO دوم وصل کنید. ENC را خارجی کنید و ENC_0 را به ENC تغییر نام دهید. بلوک سنسور اولتراسونیک را اضافه کرده و CLK را به FCLK_CLK0 وصل کنید. TRIG و ECHO را خارجی کرده و نام TRIG_0 را به TRIG و ECHO_0 را به ECHO تغییر دهید. RF را به سومین بلوک GPIO وصل کنید. برای مراجعه به نمودار بلوک ارائه شده مراجعه کنید.

روی فایل بلوک دیاگرام خود در پنجره Sources راست کلیک کرده و یک بسته بندی HDL ایجاد کنید. مطمئن شوید که اجازه ویرایش کاربر را دارید. فایل ارائه شده ZYBO_Master.xdc را به عنوان محدودیت اضافه کنید. روی "Generate Bitstream" ضربه بزنید و یک استراحت قهوه بگیرید.

مرحله 4: راه اندازی محیط توسعه نرم افزار

برای صادر کردن سخت افزار به Vivado SDK ، به بخش "پرونده" بروید. اطمینان حاصل کنید که بیت استریم را شامل می شود. پروژه RTOSDemo را در "CORTEX_A9_Zynq_ZC702" وارد کنید. در فهرست راهنمای نصب FreeRTOS قرار می گیرد. یک بسته پشتیبانی جدید Board ایجاد کنید ، کتابخانه lwip202 را انتخاب کنید. BSP ارجاع داده شده در پروژه RTOSDemo را به BSP که به تازگی ایجاد کرده اید تغییر دهید*.

*در زمان نگارش این دستورالعمل ، به نظر می رسد FreeRTOS مشکلی در ارجاع به BSP صحیح دارد. برای رفع این مشکل ، یک BSP جدید با تنظیمات مشابه اول ایجاد کنید. BSP ارجاع داده شده را به جدید تغییر دهید و پس از عدم موفقیت در ساخت ، آن را به قدیمی تغییر دهید. FreeRTOS اکنون باید بدون خطا کامپایل شود. با خیال راحت BSP استفاده نشده را حذف کنید.

مرحله 5: برنامه نمایشی را تغییر دهید

در پوشه "src" RTOSDemo یک پوشه جدید به نام "drivers" ایجاد کنید. gpio.h ارائه شده را کپی کنید. gpio.c ، pwm.h ، pwm.c ، odometer.h ، odometer.c ، rangefinder.c ، rangefinder.h ، motor.h ، و motor.c را در فهرست "drivers" قرار دهید.

main.c را باز کرده و mainSELECTED_APPLICATION را روی 2. تنظیم کنید. BasicSocketCommandServer.c تحت "lwIP_Demo/apps/BasicSocketCommandServer" نیز باید با نسخه جدیدی به روز شود. در نهایت ، به "FreeRTOSv10.1.1/FreeRTOS-Plus/Demo/Common/FreeRTOS_Plus_CLI_Demos" بروید و نسخه ارائه شده را جایگزین Sample-CLI-commands.c کنید. پروژه را بسازید و مطمئن شوید همه چیز با موفقیت کامپایل می شود.

مرحله 6: نرم افزار فلش به QSPI

سیستم عامل فلش به QSPI
سیستم عامل فلش به QSPI
سیستم عامل فلش به QSPI
سیستم عامل فلش به QSPI
سیستم عامل فلش به QSPI
سیستم عامل فلش به QSPI

با استفاده از الگوی "Zynq FSBL" یک پروژه کاربردی جدید با نام "FSBL" ایجاد کنید. پس از گردآوری پروژه FSBL ، یک تصویر بوت از پروژه RTOSDemo ایجاد کنید. مطمئن شوید که "FSBL/Debug/FSBL.elf" به عنوان bootloader در بخش "Boot image partitions" انتخاب شده است. اگر این فایل فهرست نشده است ، آن را به صورت دستی اضافه کنید.

بلوز JP5 را روی ZYBO به "JTAG" منتقل کنید. برای اتصال رایانه خود به ZYBO از کابل USB Micro-B استفاده کنید. باتری را وصل کرده و ZYBO را روشن کنید. Adept را اجرا کنید تا مطمئن شوید ZYBO به درستی توسط کامپیوتر شناسایی شده است. روی "Program Flash" در Vivado SDK کلیک کنید و مسیرهای فایل BOOT.bin را در RTOSDemo و فایل FSBL.elf را در FSBL ارائه دهید. قبل از ضربه زدن به "Program" ، "Verify after flash" را انتخاب کنید. برای اطمینان از موفقیت آمیز بودن عملیات چشمک زدن ، کنسول را تماشا کنید. سپس ZYBO را خاموش کرده و کابل USB را جدا کنید. بلوز JP5 را به "QSPI" منتقل کنید.

مرحله 7: Wireless Access Point را پیکربندی کنید

در حالی که باتری هنوز متصل است ، به شبکه Wi-Fi روتر متصل شوید. SSID و رمز عبور پیش فرض باید در پایین روتر باشد. پس از آن ، به https://tplinkwifi.net بروید و با استفاده از "admin" برای نام کاربری و رمز ورود وارد شوید. برای پیکربندی روتر در حالت نقطه دسترسی با DHCP فعال ، جادوگر راه اندازی سریع را اجرا کنید. اطمینان حاصل کنید که نام کاربری و رمز عبور پیش فرض دستگاه را نیز به روز کنید. پس از اتمام کار ، روتر باید به طور خودکار به حالت نقطه دسترسی راه اندازی مجدد شود.

ZYBO را روشن کرده و با استفاده از SSID که تعیین کرده اید به روتر متصل شوید. به احتمال زیاد روتر در آدرس IP 192.168.0.100 یا 192.160.0.101 ظاهر می شود. ZYBO به هر آدرس روتر اختصاص داده می شود. برای تعیین سریع آدرس IP روتر ، می توانید "ipconfig" را از خط فرمان در ویندوز یا "ifconfig" را از ترمینال در لینوکس یا MacOS اجرا کنید. اگر هنوز به روتر متصل هستید ، آدرس IP آن را در کنار رابط بی سیم خود مشاهده خواهید کرد. از این اطلاعات برای تعیین آدرس IP ZYBO استفاده کنید. برای تأیید آدرس IP ZYBO ، می توانید آن را از خط فرمان پینگ کنید یا از طریق Telnet به آن متصل شوید.

مرحله 8: برنامه Java را اجرا کنید

برنامه جاوا را اجرا کنید
برنامه جاوا را اجرا کنید

RobotClient.java را بارگیری کرده و فایل را با استفاده از دستور "javac RobotClient.java" از خط فرمان کامپایل کنید. دستور "java RobotClient" را اجرا کنید که "ip_address" آدرس IP ZYBO است. در صورت ایجاد ارتباط موفقیت آمیز بین رایانه و ZYBO ، GUI کنترل ظاهر می شود. پس از تمرکز پنجره ، ربات باید با استفاده از کلیدهای جهت دار روی صفحه کلید قابل کنترل باشد. برای پایان جلسه و قطع ارتباط با ربات ، دکمه فرار را فشار دهید.

GUI کلیدهای فشرده شده را برجسته کرده و خروجی موتور را در بالا سمت راست نشان می دهد. فاصله سنج در سمت چپ هر 2 متر یک نوار را تا حداکثر 10 متر پر می کند.

مرحله 9: کالیبره فاصله سنج

سوئیچ های موجود در ZYBO را می توان برای پیکربندی فاصله یاب داخلی استفاده کرد. حداقل فاصله تشخیص d به عنوان تابعی از کلید ورودی i داده می شود:

d = 50i + 250

ورودی می تواند بین 0 تا 15 در مراحل صحیح متغیر باشد. این فاصله بین 0.25 متر تا 1 متر است. در حداقل فاصله ، اولین LED شروع به چشمک زدن می کند. تعداد LED های فعال متناسب با مجاورت شی است.

مرحله 10: دسترسی

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

توصیه شده: