Përmbajtje:

WiBot: 10 hapa (me fotografi)
WiBot: 10 hapa (me fotografi)
Anonim
WiBot
WiBot

Ky udhëzues detajon procesin e ndërtimit të një roboti Wi-Fi në platformën ZYBO. Ky projekt përdor një sistem operativ në kohë reale për zbulimin e objekteve, matjen e distancës dhe kontrollin e përgjegjshëm. Ky udhëzues do të mbulojë ndërlidhjen e ZYBO me pajisjet periferike, funksionimin e firmuerit të personalizuar dhe komunikimin përmes aplikacionit Java. Më poshtë është një listë e të gjithë përbërësve kryesorë të kërkuar për këtë projekt:

  • 1 Bord Zhvillimi ZYBO
  • 1 Router Wireless TL-WR802N
  • 1 Shasë hije
  • 2 rrota 65mm
  • 2 Gearmotors 140 rpm
  • 2 kodues të rrotave
  • 1 Sensor tejzanor HC-SR04
  • 1 BSS138 Konvertuesi i Nivelit Logjik
  • 1 L293 H-Bridge Shofer Motor
  • 1 Konvertues 12V në 5V DC/DC
  • 1 Bateri LiPo 2200mAh
  • 1 kabllo Ethernet
  • 1 kabllo USB Micro-B
  • 1 Lidhës Femër XT60
  • 2 Tela bluzë meshkuj me femra
  • 30 Tela bluzë meshkuj me meshkuj
  • 2 Rezistenca 10kΩ
  • 1 Dërrasë buke

Për më tepër, programi i mëposhtëm duhet të instalohet në kompjuterin e synuar:

  • Suite Design Xilinx Vivado 2018.2
  • Agjenti Digilent 2.19.2
  • FreeRTOS 10.1.1
  • Kompleti i Zhvillimit Java SE 8.191

Hapi 1: Mblidhni Shasinë e Robotëve

Mblidhni Shasinë Robot
Mblidhni Shasinë Robot
Mblidhni Shasinë Robot
Mblidhni Shasinë Robot
Mblidhni Shasinë Robot
Mblidhni Shasinë Robot

Mblidhni shasinë e hijes dhe bashkoni motorët e ingranazheve dhe koduesit në kornizën e poshtme. Sensori ZYBO, breadboard dhe tejzanor mund të montohen me pjesët e ofruara që mund të printohen 3D dhe të fiksohen në shasi duke përdorur ndalesa dhe shirit të dyanshëm. Bateria duhet të montohet pranë pjesës së pasme të robotit dhe mundësisht midis pjesës së sipërme dhe kornizat e poshtme. Montoni ruterin afër ZYBO dhe konvertuesin DC/DC afër bordit të bukës. Lidhni rrotat me motorët e ingranazheve në fund.

Hapi 2: Elektronikë me tela

Elektronikë me tela
Elektronikë me tela
Elektronikë me tela
Elektronikë me tela
Elektronikë me tela
Elektronikë me tela

Lidhni hyrjen dhe daljen e konvertuesit DC/DC në dy binarët e energjisë përkatësisht. Këto do të shërbejnë si furnizime 12V dhe 5V për sistemin. Lidheni ZYBO me shinën 5V siç tregohet në figurë. Përdorni një kabllo USB Micro-B për të lidhur ruterin me shinën 5V gjithashtu. Kablloja XT60 duhet të ngjitet në shinën 12V. Mos e lidhni baterinë derisa pjesa tjetër e pajisjeve elektronike të jetë lidhur mirë. Sensori tejzanor duhet të lidhet me hekurudhën 5V. Krijoni një hekurudhë 3.3V në tabelën e bukës duke përdorur pinin 6 të portit Pmod JC në ZYBO. Hyrja e tensionit të lartë të konvertuesit logjik duhet të lidhet me hekurudhën 5V ndërsa hyrja e tensionit të ulët të konvertuesit logjik duhet të lidhet me hekurudhën 3.3V. Lidhni koduesit e motorit në shinën 3.3V. Lidhni VCC1 të drejtuesit të motorit me hekurudhën 5V dhe lidhni VCC2 me shinën 12V. Lidhni të gjitha kunjat EN në 5V dhe blini të gjitha kunjat GND.

Lidhni kunjat TRIG dhe ECHO të sensorit tejzanor me HV1 dhe HV2 të konvertuesit logjik respektivisht. LV1 duhet të lidhet me JC4 dhe LV2 duhet të lidhet me JC3. Referojuni tabelës për pinouts Pmod. Lidhni motorët me drejtuesin e motorit. Y1 duhet të lidhet me terminalin pozitiv të motorit të djathtë dhe Y2 duhet të lidhet me terminalin negativ të motorit të djathtë. Në mënyrë të ngjashme, Y3 duhet të lidhet me terminalin pozitiv të motorit të majtë dhe Y4 duhet të lidhet me terminalin negativ të motorit të majtë. A1, A2, A3 dhe A4 duhet të jenë të hartuar përkatësisht në JB2, JB1, JB4 dhe JB3. Referojuni skemës për numrat e kunjave. Teli JC2 në koduesin e djathtë dhe JC1 në koduesin e majtë. Sigurohuni që përdoren rezistorët tërheqës për t'i lidhur këto sinjale në shinën 3.3V. Së fundmi, përdorni kabllon ethernet për të lidhur ZYBO me ruterin.

Hapi 3: Krijoni Diagramin e Bllokut në Vivado

Krijoni Diagramin e Bllokut në Vivado
Krijoni Diagramin e Bllokut në Vivado

Krijoni një projekt të ri RTL në Vivado. Sigurohuni që të mos specifikoni asnjë burim në këtë kohë. Kërkoni për "xc7z010clg400-1" dhe shtypni përfundimin. Shkarkoni encoder_driver.sv dhe ultrasonic_driver.sv. Vendosini ato në dosjet e tyre. Hapni IP Packager nën "Tools" dhe zgjidhni të paketoni një drejtori të specifikuar. Ngjitni shtegun në dosjen që përmban drejtuesin e koduesit dhe shtypni "Next". Klikoni "pakoja IP" dhe përsëritni proceset për drejtuesin e sensorit tejzanor. Më pas, lundroni te menaxheri i depove nën nënseksionin IP në menunë e cilësimeve. Shtoni shtigjet në dosjet e shoferit dhe shtypni aplikoni për t'i përfshirë ato në bibliotekën IP.

Krijoni një diagram të ri bllok dhe shtoni "Sistemi i përpunimit ZYNQ7". Klikoni dy herë bllokun dhe importoni skedarin e dhënë ZYBO_zynq_def.xml. Nën "Konfigurimi MIO", aktivizoni Timer 0 dhe GPIO MIO. shtypni "OK" për të ruajtur konfigurimin. Shtoni 3 blloqe "AXI GPIO" dhe 4 blloqe "AXI Timer". Drejtoni automatizimin e bllokut i ndjekur nga automatizimi i lidhjes për S_AXI. Klikoni dy herë blloqet GPIO për t'i konfiguruar ato. Një bllok duhet të jetë kanal i dyfishtë me një hyrje 4-bit dhe një dalje 4-bit. Bëni këto lidhje të jashtme dhe etiketoni ato SW për hyrje dhe LED për dalje. Blloku i dytë duhet të jetë gjithashtu kanal i dyfishtë me 2 hyrje 32-bit. Blloku i fundit GPIO do të jetë një hyrje e vetme 32-bit. Bëni daljen pwm0 nga secili bllok kohëmatës i jashtëm. Etiketojini ato PWM0, PWM1, PWM2 dhe PWM3.

Shtoni drejtuesin e koduesit në bllok diagram dhe lidhni CLK me FCLK_CLK0. Lidhni OD0 dhe OD1 me kanalet hyrëse të bllokut të dytë GPIO. Bëni ENC të jashtëm dhe riemëroni ENC_0 në ENC. Shtoni bllokun e sensorit tejzanor dhe lidhni CLK me FCLK_CLK0. Bëni TRIG dhe ECHO të jashtme dhe riemëroni TRIG_0 në TRIG dhe ECHO_0 në ECHO. Lidhni RF me bllokun e tretë GPIO. Referojuni bllok diagramit të dhënë për referencë.

Klikoni me të djathtën në skedarin tuaj të diagramit të bllokut në panelin Burimet dhe krijoni një mbështjellës HDL. Sigurohuni që të lejoni redaktimet e përdoruesit. Shtoni skedarin e dhënë ZYBO_Master.xdc si një kufizim. Klikoni "Generate Bitstream" dhe bëni një pushim kafeje.

Hapi 4: Konfiguroni Mjedisin e Zhvillimit të Softuerit

Shkoni te "File" për të eksportuar pajisje në SDK Vivado. Sigurohuni që të përfshini bitstream. Importoni projektin RTOSDemo brenda "CORTEX_A9_Zynq_ZC702". Do të vendoset brenda direktorisë së instalimit FreeRTOS. Krijoni një Paketë të re Mbështetëse të Bordit zgjidhni bibliotekën lwip202. Ndryshoni BSP -në e referuar në projektin RTOSDemo në BSP që sapo keni krijuar*.

*Në kohën e shkrimit të këtij Instructable, FreeRTOS duket se ka një defekt me referimin e BSP të saktë. Për të korrigjuar këtë, krijoni një BSP të re me të njëjtat cilësime si e para. Ndryshoni BSP -në e referuar në atë të re dhe pastaj ndryshojeni përsëri në të vjetrën pasi nuk arrin të ndërtohet. FreeRTOS tani duhet të përpilohet pa gabime. Mos ngurroni të fshini BSP -në e papërdorur.

Hapi 5: Ndryshoni Programin Demo

Krijoni një dosje të re të quajtur "drivers" nën drejtorinë "src" të RTOSDemo. Kopjoni gpio.h -në e dhënë. gpio.c, pwm.h, pwm.c, odometer.h, odometer.c, rangefinder.c, rangefinder.h, motor.h, dhe motor.c në dosjen "drejtuesit".

Hapni main.c dhe vendosni mainSELECTED_APPLICATION në 2. Zëvendësoni main_lwIP.c nën "lwIP_Demo" me versionin e përditësuar. BasicSocketCommandServer.c nën "lwIP_Demo/apps/BasicSocketCommandServer" gjithashtu duhet të përditësohet me një version të ri. Së fundmi, lundroni te "FreeRTOSv10.1.1/FreeRTOS-Plus/Demo/Common/FreeRTOS_Plus_CLI_Demos" dhe zëvendësoni Sample-CLI-commands.c me versionin e dhënë. Ndërtoni projektin dhe sigurohuni që gjithçka të përpilohet me sukses.

Hapi 6: Firmware Flash në QSPI

Firmware Flash në QSPI
Firmware Flash në QSPI
Firmware Flash në QSPI
Firmware Flash në QSPI
Firmware Flash në QSPI
Firmware Flash në QSPI

Krijoni një Projekt të ri Aplikimi të quajtur "FSBL" duke përdorur modelin "Zynq FSBL". Pas përpilimit të projektit FSBL, krijoni një imazh boot të projektit RTOSDemo. Sigurohuni që "FSBL/Debug/FSBL.elf" të jetë zgjedhur si bootloader nën "Ndarjet e imazhit të nisjes". Shtoni manualisht rrugën në këtë skedar nëse nuk është e shënuar.

Zhvendosni bluzën JP5 në ZYBO në "JTAG". Përdorni një kabllo USB Micro-B për të lidhur kompjuterin tuaj me ZYBO. Lidhni baterinë dhe ndizni ZYBO. Drejtoni Adept për t'u siguruar që ZYBO është identifikuar saktë nga kompjuteri. Klikoni "Program Flash" në Vivado SDK dhe siguroni rrugët për skedarin BOOT.bin në RTOSDemo dhe skedarin FSBL.elf në FSBL. Sigurohuni që të zgjidhni "Verifiko pas ndezjes" para se të godasësh "Program". Shikoni tastierën për të siguruar që operacioni i ndezjes të përfundojë me sukses. Më pas, fikeni ZYBO dhe shkëputni kabllon USB. Zhvendosni bluzën JP5 në "QSPI".

Hapi 7: Konfiguroni pikën e hyrjes pa tela

Me akoma baterinë e lidhur, lidheni me rrjetin Wi-Fi të ruterit. SSID -i i paracaktuar dhe fjalëkalimi duhet të jenë në fund të ruterit. Më pas, lundroni te https://tplinkwifi.net dhe identifikohuni duke përdorur "admin" për emrin e përdoruesit dhe fjalëkalimin. Drejtoni magjistarin e konfigurimit të shpejtë për të konfiguruar ruterin në modalitetin e pikës së hyrjes me DHCP të aktivizuar. Sigurohuni që të përditësoni emrin e përdoruesit dhe fjalëkalimin e paracaktuar për pajisjen gjithashtu. Ruteri duhet të rindizet automatikisht në modalitetin e pikës së hyrjes pasi të keni mbaruar.

Ndizni ZYBO dhe lidheni me ruterin duke përdorur SSID që keni caktuar. Me shumë mundësi, ruteri do të dalë në adresën IP 192.168.0.100 ose 192.160.0.101. ZYBO do të caktohet cilado adresë që ruteri nuk e ka. Për të përcaktuar shpejt adresën IP të ruterit, mund të ekzekutoni "ipconfig" nga linja e komandës në dritare ose "ifconfig" nga terminali në Linux ose MacOS. Nëse jeni ende të lidhur me ruterin, do të shihni që adresa e tij IP të shfaqet pranë ndërfaqes tuaj pa tel. Përdorni këtë informacion për të përcaktuar adresën IP të ZYBO. Për të konfirmuar adresën IP të ZYBO, mund ta pingoni nga rreshti i komandës ose të lidheni me të nëpërmjet telnet.

Hapi 8: Drejtoni programin Java

Drejtoni programin Java
Drejtoni programin Java

Shkarkoni RobotClient.java dhe përpiloni skedarin duke përdorur komandën "javac RobotClient.java" nga rreshti i komandës. Drejtoni komandën "java RobotClient" ku "ip_address" është adresa IP e ZYBO. GUI i kontrollit do të shfaqet nëse krijohet një lidhje e suksesshme midis kompjuterit dhe ZYBO. Pas fokusimit të dritares, roboti duhet të jetë i kontrollueshëm duke përdorur shigjetat në tastierë. Shtypni butonin e ikjes për të përfunduar seancën dhe shkëputeni nga roboti.

GUI do të nxjerrë në pah çelësat e shtypur dhe do të tregojë daljen e motorit në të djathtën e sipërme. Matësi i distancës në të majtë mbush një shirit çdo 2 metra deri në një maksimum prej 10 metrash.

Hapi 9: Kalibroni Rangefinder

Çelsat në bordin e ZYBO mund të përdoren për të konfiguruar distancuesin në bord. Distanca minimale e zbulimit d jepet në funksion të hyrjes së ndërruesit i:

d = 50i + 250

Hyrja mund të ndryshojë nga 0 në 15 në hapa të plotë. Kjo përkthehet në një distancë prej 0.25 metra në 1 metër. Në distancën minimale, LED i parë do të fillojë të pulsojë. Numri i LED -ve aktive është proporcional me afërsinë e objektit.

Hapi 10: Qasshmëria

Ky robot është shumë lehtë i arritshëm. Për shkak të thjeshtësisë së kontrollit të tij, mund të kontrollohet plotësisht me vetëm një gisht. Për të përmirësuar aksesueshmërinë, mund të shtohet mbështetje për pajisje shtesë hyrëse. Kjo mund të lejojë përdorime me aftësi të kufizuara për të kontrolluar robotin me një pjesë të ndryshme të trupit të tyre.

Recommended: