Съдържание:

WiBot: 10 стъпки (със снимки)
WiBot: 10 стъпки (със снимки)

Видео: WiBot: 10 стъпки (със снимки)

Видео: WiBot: 10 стъпки (със снимки)
Видео: ИГРАЕМ КРИЕНИЦА В ГОРАТА! 2024, Септември
Anonim
WiBot
WiBot

Тази инструкция описва процеса на изграждане на Wi-Fi робот на платформата ZYBO. Този проект използва операционна система в реално време за откриване на обекти, измерване на разстоянието и отзивчив контрол. Това ръководство ще обхваща свързването на ZYBO с периферни устройства, работа с персонализиран фърмуер и комуникация чрез Java приложение. Следва списък на всички ключови компоненти, необходими за този проект:

  • 1 Съвет за развитие на ZYBO
  • 1 безжичен рутер TL-WR802N
  • 1 Shadow Chassis
  • 2 65 мм колела
  • 2 скоростни мотора със 140 оборота в минута
  • 2 кодиращи колела
  • 1 HC-SR04 ултразвуков сензор
  • 1 BSS138 Логичен преобразувател на ниво
  • 1 L293 Шофьор на мотор с H-мост
  • 1 12V към 5V DC/DC преобразувател
  • 1 2200mAh LiPo батерия
  • 1 Ethernet кабел
  • 1 USB Micro-B кабел
  • 1 женски XT60 конектор
  • 2 джъмперни проводници от мъжки към женски
  • 30 джъмперни проводници от мъжки към мъжки
  • 2 10kΩ резистора
  • 1 Платформа

Освен това на целевия компютър трябва да бъде инсталиран следният софтуер:

  • Xilinx Vivado Design Suite 2018.2
  • Digilent Adept 2.19.2
  • FreeRTOS 10.1.1
  • Java SE Development Kit 8.191

Стъпка 1: Сглобете шасито на робота

Сглобете шасито на робота
Сглобете шасито на робота
Сглобете шасито на робота
Сглобете шасито на робота
Сглобете шасито на робота
Сглобете шасито на робота

Сглобете шасито на сенките и прикрепете редукторите и енкодерите към долната рамка. ZYBO, макет и ултразвуков сензор могат да бъдат монтирани с предоставените части, които могат да бъдат 3D отпечатани и фиксирани към шасито с помощта на стойки и двустранна лента. Батерията трябва да бъде монтирана близо до задната част на робота и за предпочитане между горната и долни рамки. Монтирайте рутера близо до ZYBO и DC/DC преобразувателя близо до макета. Прикрепете колелата към мотор -редуктори в самия край.

Стъпка 2: Кабелна електроника

Кабелна електроника
Кабелна електроника
Кабелна електроника
Кабелна електроника
Кабелна електроника
Кабелна електроника

Свържете входа и изхода на DC/DC преобразувателя съответно към двете релси на захранващата платка. Те ще служат като 12V и 5V захранвания за системата. Свържете ZYBO към 5V шината, както е показано на снимката. Използвайте USB Micro-B захранващ кабел, за да свържете рутера и към 5V шината. Кабелът XT60 трябва да бъде прикрепен към 12V шина. Не включвайте батерията, докато останалата електроника не е свързана правилно. Ултразвуковият сензор трябва да бъде свързан към 5V шината. Създайте 3.3V шина на макета, като използвате щифт 6 на Pmod порт JC на ZYBO. Входът за високо напрежение на логическия преобразувател трябва да бъде свързан към 5V шина, докато входът за ниско напрежение на логическия преобразувател трябва да бъде свързан към шината 3.3V. Свържете енкодерите на двигателя към шината 3.3V. Свържете VCC1 на драйвера на двигателя към 5V шината и свържете VCC2 към 12V шината. Завържете всички EN щифтове към 5V и заземете всички 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. Напоследък използвайте Ethernet кабела, за да свържете ZYBO към рутера.

Стъпка 3: Създайте блокова диаграма във Vivado

Създайте блокова диаграма във Vivado
Създайте блокова диаграма във Vivado

Създайте нов RTL проект във Vivado. Не забравяйте да не посочвате никакви източници в този момент. Потърсете „xc7z010clg400-1“и натиснете финала. Изтеглете encoder_driver.sv и ultrasonic_driver.sv. Поставете ги в техните собствени папки. Отворете IP Packager под „Инструменти“и изберете да пакетирате определена директория. Поставете пътя към папката, съдържаща драйвера на енкодера, и натиснете „Напред“. Щракнете върху „пакет IP“и повторете процесите за драйвера на ултразвуковия сензор. След това отидете до мениджъра на хранилището под подраздел IP в менюто с настройки. Добавете пътищата към папките на драйвера и натиснете приложи, за да ги включите в IP библиотеката.

Създайте нова блокова диаграма и добавете „Обработваща система ZYNQ7“. Щракнете двукратно върху блока и импортирайте предоставения файл ZYBO_zynq_def.xml. Под „MIO Configuration“активирайте Timer 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 блок. Вижте предоставената блокова диаграма за справка.

Щракнете с десния бутон върху файла с блокова диаграма в прозореца Източници и създайте HDL обвивка. Не забравяйте да разрешите потребителски редакции. Добавете предоставения файл ZYBO_Master.xdc като ограничение. Натиснете „Generate Bitstream“и направете почивка за кафе.

Стъпка 4: Настройка на среда за разработка на софтуер

Отидете под „Файл“, за да експортирате хардуера във Vivado SDK. Не забравяйте да включите битовия поток. Импортирайте проекта RTOSDemo вътре в „CORTEX_A9_Zynq_ZC702“. Той ще се намира в инсталационната директория на FreeRTOS. Създайте нов пакет за поддръжка на борда, изберете библиотеката lwip202. Променете референтната BSP в проекта RTOSDemo на BSP, която току -що създадохте*.

*По време на писането на тази инструкция FreeRTOS изглежда има грешка с препратката към правилния BSP. За да поправите това, създайте нова BSP със същите настройки като първата. Променете референтния BSP на нов и след това го променете обратно на стария, след като не успее да се изгради. FreeRTOS сега трябва да се компилира без грешки. Чувствайте се свободни да изтриете неизползвания BSP.

Стъпка 5: Променете демонстрационната програма

Създайте нова папка, наречена "драйвери" в директорията "src" на RTOSDemo. Копирайте предоставения 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. Заменете main_lwIP.c под „lwIP_Demo“с актуализираната версия. 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

Създайте нов проект за приложения, наречен "FSBL", като използвате шаблона "Zynq FSBL". След като компилирате проекта FSBL, създайте зареждащ образ на проекта RTOSDemo. Уверете се, че „FSBL/Debug/FSBL.elf“е избрано като буутлоудъра под „Boot image partitions“. Ръчно добавете пътя към този файл, ако той не е в списъка.

Преместете джъмпера JP5 на ZYBO в „JTAG“. Използвайте USB Micro-B кабел, за да свържете компютъра си към ZYBO. Свържете батерията и включете ZYBO. Стартирайте Adept, за да се уверите, че ZYBO е правилно идентифициран от компютъра. Щракнете върху „Program Flash“в Vivado SDK и предоставете пътищата към файла BOOT.bin в RTOSDemo и файла FSBL.elf във FSBL. Уверете се, че сте избрали „Verify after flash“преди да натиснете „Program“. Гледайте конзолата, за да се уверите, че мигането е завършило успешно. След това изключете ZYBO и изключете USB кабела. Преместете джъмпера JP5 на "QSPI".

Стъпка 7: Конфигурирайте безжична точка за достъп

Когато батерията все още е свързана, свържете се с Wi-Fi мрежата на рутера. SSID и паролата по подразбиране трябва да са в долната част на рутера. След това отидете на https://tplinkwifi.net и влезте с „admin“за потребителското име и паролата. Изпълнете съветника за бърза настройка, за да конфигурирате рутера в режим на точка за достъп с активиран DHCP. Не забравяйте да актуализирате потребителското име и паролата по подразбиране за устройството. Рутерът трябва автоматично да се рестартира в режим на точка за достъп, след като приключите.

Включете ZYBO и се свържете с рутера, като използвате SSID, който сте задали. Най -вероятно рутерът ще се появи на IP адрес 192.168.0.100 или 192.160.0.101. ZYBO ще бъде присвоен на адреса, който рутерът няма. За бързо определяне на IP адреса на рутера, можете да стартирате „ipconfig“от командния ред в windows или „ifconfig“от терминала в Linux или MacOS. Ако все още сте свързани с рутера, ще видите неговия IP адрес до вашия безжичен интерфейс. Използвайте тази информация, за да определите IP адреса на ZYBO. За да потвърдите IP адреса на ZYBO, можете да го пингвате от командния ред или да се свържете с него чрез telnet.

Стъпка 8: Стартирайте Java програма

Стартирайте Java програма
Стартирайте Java програма

Изтеглете RobotClient.java и компилирайте файла, като използвате командата "javac RobotClient.java" от командния ред. Изпълнете командата "java RobotClient", където "ip_address" е IP адресът на ZYBO. Контролният графичен интерфейс ще се появи, ако се установи успешна връзка между компютъра и ZYBO. След като фокусира прозореца, роботът трябва да се управлява с помощта на клавишите със стрелки на клавиатурата. Натиснете бутона за бягство, за да прекратите сесията и да прекъснете връзката с робота.

GUI ще маркира натиснатите клавиши и ще покаже изхода на двигателя горе вдясно. Измервателят на разстояние вляво запълва лента на всеки 2 метра до максимум 10 метра.

Стъпка 9: Калибрирайте далекомера

Превключвателите на борда на ZYBO могат да се използват за конфигуриране на бордомера. Минималното разстояние за откриване d е дадено като функция на входа на превключвателя i:

d = 50i + 250

Въвеждането може да варира между 0 до 15 на цели числа. Това означава диапазон от 0,25 метра до 1 метър. На минималното разстояние първият светодиод ще започне да мига. Броят на активните светодиоди е пропорционален на близостта на обекта.

Стъпка 10: Достъпност

Този робот е много лесно достъпен. Поради простотата на управлението му, той може да бъде напълно контролиран само с един пръст. За да се подобри достъпността, може да се добави поддръжка за допълнителни входни устройства. Това може да позволи на хората с увреждания да контролират робота с различна част от тялото си.

Препоръчано: