Sadržaj:

WiBot: 10 koraka (sa slikama)
WiBot: 10 koraka (sa slikama)

Video: WiBot: 10 koraka (sa slikama)

Video: WiBot: 10 koraka (sa slikama)
Video: 10 самых АТМОСФЕРНЫХ мест Дагестана. БОЛЬШОЙ ВЫПУСК #Дагестан #ПутешествиеПоДагестану 2024, Novembar
Anonim
WiBot
WiBot

Ovo uputstvo detaljno opisuje proces izgradnje Wi-Fi robota na ZYBO platformi. Ovaj projekt koristi operativni sistem u stvarnom vremenu za otkrivanje objekata, mjerenje udaljenosti i osjetljivu kontrolu. Ovaj vodič će obuhvatiti povezivanje ZYBO -a s perifernim uređajima, pokretanje prilagođenog firmvera i komunikaciju putem Java aplikacije. Slijedi popis svih ključnih komponenti potrebnih za ovaj projekt:

  • 1 Odbor za razvoj ZYBO -a
  • 1 TL-WR802N bežični ruter
  • 1 Shadow Chassis
  • 2 65mm felne
  • 2 zupčanika sa 140 o / min
  • 2 kodera kotača
  • 1 HC-SR04 Ultrazvučni senzor
  • 1 Pretvarač logičkih nivoa BSS138
  • 1 L293 Vozač motora sa H-mostom
  • 1 12V na 5V DC/DC pretvarač
  • 1 LiPo baterija od 2200mAh
  • 1 Ethernet kabel
  • 1 USB Micro-B kabel
  • 1 ženski XT60 konektor
  • 2 žice kratkospojnika muško-žensko
  • 30 muških spojnih žica
  • 2 otpornika od 10 kΩ
  • 1 Breadboard

Osim toga, sljedeći softver mora biti instaliran na ciljnom računaru:

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

Korak 1: Sastavite šasiju robota

Sastavite šasiju robota
Sastavite šasiju robota
Sastavite šasiju robota
Sastavite šasiju robota
Sastavite šasiju robota
Sastavite šasiju robota

Sastavite šasiju sjene i pričvrstite motore zupčanika i davače na donji okvir. ZYBO, matična ploča i ultrazvučni senzor mogu se montirati s isporučenim dijelovima koji se mogu 3D printati i pričvrstiti na šasiju pomoću rastojanja i dvostrane trake. Bateriju treba postaviti blizu stražnje strane robota i po mogućnosti između vrha i donji okviri. Ruter postavite blizu ZYBO -a, a DC/DC pretvarač blizu matične ploče. Pričvrstite kotače na motore zupčanika na samom kraju.

Korak 2: Žičana elektronika

Wire Electronics
Wire Electronics
Wire Electronics
Wire Electronics
Wire Electronics
Wire Electronics

Spojite ulaz i izlaz DC/DC pretvarača na dvije strujne šine na matičnoj ploči. Oni će služiti kao 12V i 5V napajanje za sistem. Priključite ZYBO na 5V šinu kao što je prikazano na slici. Pomoću USB Micro-B kabela za napajanje spojite usmjerivač i na 5V šinu. Kabel XT60 treba priključiti na 12V šinu. Nemojte priključivati bateriju sve dok ostatak elektronike nije pravilno spojen. Ultrazvučni senzor treba spojiti na 5V šinu. Napravite šinu od 3.3 V na matičnoj ploči pomoću pina 6 Pmod priključka JC na ZYBO -u. Visokonaponski ulaz logičkog pretvarača trebao bi biti ožičen na 5V šinu, dok bi niskonaponski ulaz logičkog pretvarača trebao biti spojen na šinu od 3,3 V. Povežite enkodere motora sa šinom 3.3V. Spojite VCC1 upravljačkog programa motora na 5V šinu i spojite VCC2 na 12V šinu. Vežite sve EN pinove na 5V i uzemljite sve GND pinove.

Spojite TRIG i ECHO pinove ultrazvučnog senzora na HV1 i HV2 logičkog pretvarača. LV1 treba spojiti na JC4, a LV2 na JC3. Pmod pinouts pogledajte na grafikonu. Priključite motore na upravljački program motora. Y1 treba spojiti na pozitivni priključak desnog motora, a Y2 na negativni priključak desnog motora. Slično, Y3 treba spojiti na pozitivni terminal lijevog motora, a Y4 na negativni terminal lijevog motora. A1, A2, A3 i A4 treba mapirati u JB2, JB1, JB4 i JB3. Za brojeve pinova pogledajte shemu. Spojite JC2 na desni davač, a JC1 na lijevi davač. Uvjerite se da se za povezivanje ovih signala na šinu od 3.3V koriste pull-up otpornici. U posljednje vrijeme koristite Ethernet kabel za povezivanje ZYBO -a s usmjerivačem.

Korak 3: Kreirajte blok dijagram u Vivadu

Napravite blok dijagram u Vivadu
Napravite blok dijagram u Vivadu

Kreirajte novi RTL projekt u Vivadu. Pazite da u ovom trenutku ne navedete nikakve izvore. Potražite "xc7z010clg400-1" i pogodite završetak. Preuzmite encoder_driver.sv i ultrasonic_driver.sv. Stavite ih u njihove vlastite mape. Otvorite IP Packager pod "Alati" i odaberite pakiranje određenog direktorija. Zalijepite putanju do mape koja sadrži upravljački program kodera i pritisnite "Dalje". Kliknite "paket IP" i ponovite procese za upravljački program ultrazvučnog senzora. Nakon toga idite do upravitelja spremišta u pododjeljku IP u izborniku postavki. Dodajte putanje u mape upravljačkih programa i pritisnite Primijeni da biste ih uključili u IP biblioteku.

Kreirajte novi blok dijagram i dodajte "ZYNQ7 procesni sistem". Dvaput kliknite na blok i uvezite isporučenu datoteku ZYBO_zynq_def.xml. U odjeljku "MIO konfiguracija" omogućite Tajmer 0 i GPIO MIO. pritisnite "OK" za spremanje konfiguracije. Dodajte 3 "AXI GPIO" bloka i 4 "AXI Timer" bloka. Pokrenite automatizaciju blokova nakon koje slijedi automatizacija veze za S_AXI. Dvaput kliknite na GPIO blokove da biste ih konfigurirali. Jedan blok bi trebao biti dvokanalni sa 4-bitnim ulazom i 4-bitnim izlazom. Učinite ove veze vanjskim i označite ih SW za ulaz i LED za izlaz. Drugi blok bi također trebao biti dvokanalni sa 2 32-bitna ulaza. Posljednji GPIO blok će biti jedan 32-bitni ulaz. Učinite izlaz pwm0 iz svakog vremenskog bloka vanjskim. Označite ih PWM0, PWM1, PWM2 i PWM3.

Dodajte upravljački program kodera u blok dijagram i spojite CLK na FCLK_CLK0. Spojite OD0 i OD1 na ulazne kanale drugog GPIO bloka. Učinite ENC vanjskim i preimenujte ENC_0 u ENC. Dodajte ultrazvučni senzorski blok i spojite CLK na FCLK_CLK0. Učinite TRIG i ECHO vanjskim i preimenujte TRIG_0 u TRIG i ECHO_0 u ECHO. Priključite RF na treći GPIO blok. Pogledajte priloženi blok dijagram za referencu.

Desnom tipkom miša kliknite datoteku blok dijagrama u oknu Izvori i stvorite HDL omot. Obavezno dopustite korisnička uređivanja. Dodajte priloženu datoteku ZYBO_Master.xdc kao ograničenje. Pritisnite "Generiši Bitstream" i napravite pauzu za kafu.

Korak 4: Postavljanje okruženja za razvoj softvera

Idite pod "Datoteka" za izvoz hardvera u Vivado SDK. Uključite tok bitova. Uvezite projekt RTOSDemo unutar "CORTEX_A9_Zynq_ZC702". Nalazit će se u instalacijskom direktoriju FreeRTOS. Kreirajte novi paket podrške za ploču, odaberite biblioteku lwip202. Promijenite referencirani BSP u RTOSDemo projektu u BSP koji ste upravo stvorili*.

*Čini se da je u vrijeme pisanja ovog uputstva FreeRTOS imao grešku u referenciranju ispravnog BSP -a. Da biste to riješili, stvorite novi BSP sa istim postavkama kao i prvi. Promijenite referencirani BSP na novi, a zatim ga vratite na stari nakon što se ne uspije izgraditi. FreeRTOS bi se sada trebao kompajlirati bez grešaka. Slobodno izbrišite nekorišteni BSP.

Korak 5: Izmijenite demo program

Kreirajte novu fasciklu pod nazivom "drivers" u direktoriju "src" RTOSDemo. Kopirajte dostavljeni gpio.h. gpio.c, pwm.h, pwm.c, odometer.h, odometer.c, rangefinder.c, rangefinder.h, motor.h i motor.c datoteke u direktorij "drivers".

Otvorite main.c i postavite mainSELECTED_APPLICATION na 2. Zamijenite main_lwIP.c pod "lwIP_Demo" ažuriranom verzijom. BasicSocketCommandServer.c pod "lwIP_Demo/apps/BasicSocketCommandServer" takođe se mora ažurirati novom verzijom. U posljednje vrijeme idite na "FreeRTOSv10.1.1/FreeRTOS-Plus/Demo/Common/FreeRTOS_Plus_CLI_Demos" i zamijenite Sample-CLI-commands.c ponuđenom verzijom. Izgradite projekt i pobrinite se da se sve uspješno sastavi.

Korak 6: Flash firmver na QSPI

Flash firmver na QSPI
Flash firmver na QSPI
Flash firmver na QSPI
Flash firmver na QSPI
Flash firmver na QSPI
Flash firmver na QSPI

Kreirajte novi aplikacijski projekt pod nazivom "FSBL" koristeći "Zynq FSBL" predložak. Nakon sastavljanja projekta FSBL, stvorite sliku pokretanja projekta RTOSDemo. Uvjerite se da je "FSBL/Debug/FSBL.elf" odabrano kao bootloader pod "Boot image partitions". Ručno dodajte putanju do ove datoteke ako nije navedena.

Premjestite kratkospojnik JP5 na ZYBO -u na "JTAG". Za povezivanje računara sa ZYBO-om upotrijebite USB Micro-B kabel. Priključite bateriju i uključite ZYBO. Pokrenite Adept da biste bili sigurni da je računar ispravno identifikovao ZYBO. Kliknite na "Program Flash" u Vivado SDK -u i navedite putanje do datoteke BOOT.bin u RTOSDemu i datoteke FSBL.elf u FSBL -u. Obavezno odaberite "Verify after flash" prije nego pritisnete "Program". Gledajte konzolu kako biste provjerili je li operacija treptanja uspješno završena. Nakon toga isključite ZYBO i odspojite USB kabel. Pomaknite kratkospojnik JP5 na "QSPI".

Korak 7: Konfigurirajte bežičnu pristupnu tačku

Dok je baterija još uvijek povezana, povežite se na Wi-Fi mrežu usmjerivača. Zadani SSID i lozinka trebali bi biti na dnu usmjerivača. Nakon toga idite na https://tplinkwifi.net i prijavite se koristeći "admin" za korisničko ime i lozinku. Pokrenite čarobnjaka za brzo postavljanje da biste konfigurirali usmjerivač u načinu pristupne točke s omogućenim DHCP -om. Ažurirajte i zadano korisničko ime i lozinku za uređaj. Ruter bi se trebao automatski ponovo pokrenuti u način pristupne tačke nakon što završite.

Uključite ZYBO i povežite se s usmjerivačem koristeći SSID koji ste dodijelili. Ruter će se najvjerojatnije pojaviti na bilo kojoj IP adresi 192.168.0.100 ili 192.160.0.101. ZYBO -u će biti dodijeljena adresa koju ruter nema. Da biste brzo odredili IP adresu usmjerivača, možete pokrenuti "ipconfig" iz naredbenog retka u Windowsima ili "ifconfig" s terminala u Linuxu ili MacOS -u. Ako ste i dalje povezani s usmjerivačem, vidjet ćete njegovu IP adresu pored bežičnog sučelja. Koristite ove informacije za određivanje IP adrese ZYBO -a. Da biste potvrdili IP adresu ZYBO -a, možete ga pingati iz komandne linije ili se povezati s njim putem telneta.

Korak 8: Pokrenite Java program

Pokrenite Java program
Pokrenite Java program

Preuzmite RobotClient.java i kompajlirajte datoteku pomoću naredbe "javac RobotClient.java" iz komandne linije. Pokrenite naredbu "java RobotClient" gdje je "ip_address" IP adresa ZYBO -a. Kontrolni GUI pojavit će se ako se uspostavi uspješna veza između računala i ZYBO -a. Nakon fokusiranja prozora, robotom bi trebalo upravljati pomoću tipki sa strelicama na tastaturi. Pritisnite tipku za bijeg da prekinete sesiju i odvojite se od robota.

GUI će označiti pritisnute tipke i prikazati izlaz motora u gornjem desnom kutu. Mjerač udaljenosti s lijeve strane ispunjava šipku svaka 2 metra do maksimalno 10 metara.

Korak 9: Kalibrirajte daljinomer

Prekidači na ZYBO -u mogu se koristiti za konfiguriranje brodskog daljinomera. Minimalna udaljenost detekcije d data je kao funkcija ulaza prekidača i:

d = 50i + 250

Unos može varirati između 0 do 15 u cijelim koracima. To znači raspon udaljenosti od 0,25 do 1 metar. Na minimalnoj udaljenosti prva LED dioda će početi treptati. Broj LED dioda koje su aktivne proporcionalan je blizini objekta.

Korak 10: Pristupačnost

Ovaj robot je vrlo lako dostupan. Zbog jednostavnosti upravljanja, njime se može u potpunosti upravljati samo jednim prstom. Kako bi se poboljšala pristupačnost, mogla bi se dodati podrška za dodatne ulazne uređaje. To bi moglo omogućiti osobama s invaliditetom da kontrolišu robota različitim dijelovima tijela.

Preporučuje se: