Indholdsfortegnelse:

WiBot: 10 trin (med billeder)
WiBot: 10 trin (med billeder)
Anonim
WiBot
WiBot

Denne instruktive beskriver processen med at bygge en Wi-Fi-robot på ZYBO-platformen. Dette projekt anvender et real-time operativsystem til objektdetektering, afstandsmåling og responsiv kontrol. Denne vejledning dækker grænseflade mellem ZYBO og eksterne enheder, kører brugerdefineret firmware og kommunikation via Java -applikation. Følgende er en liste over alle de nødvendige komponenter til dette projekt:

  • 1 ZYBO Development Board
  • 1 TL-WR802N trådløs router
  • 1 skygge chassis
  • 2 65 mm hjul
  • 2 140 omdr./min. Gearmotorer
  • 2 hjulkodere
  • 1 HC-SR04 ultralydssensor
  • 1 BSS138 Logic Level Converter
  • 1 L293 H-bro motor driver
  • 1 12V til 5V DC/DC -omformer
  • 1 2200mAh LiPo batteri
  • 1 Ethernet -kabel
  • 1 USB Micro-B kabel
  • 1 hunstik XT60
  • 2 trøjer fra mand til kvinde
  • 30 Jomfruwire fra mand til mand
  • 2 10kΩ modstande
  • 1 brødbræt

Derudover skal følgende software installeres på målcomputeren:

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

Trin 1: Saml robotchassis

Saml robotchassis
Saml robotchassis
Saml robotchassis
Saml robotchassis
Saml robotchassis
Saml robotchassis

Saml skygge -chassiset, og fastgør gearmotorer og encodere til bundrammen. ZYBO, brødbrættet og ultralydssensoren kan monteres med de medfølgende dele, der kan 3D-printes og fastgøres til chassiset ved hjælp af standoffs og dobbeltsidet tape. Batteriet skal monteres nær robotens bagside og helst mellem toppen og bundrammer. Monter routeren tæt på ZYBO og DC/DC -konverteren tæt på brødbrættet. Fastgør hjulene til gearmotorer i slutningen.

Trin 2: Wire Electronics

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

Tilslut input og output fra DC/DC -konverteren til henholdsvis de to strømskinner på brødbrættet. Disse fungerer som 12V og 5V forsyninger til systemet. Tilslut ZYBO til 5V -skinnen som vist på billedet. Brug et USB Micro-B-forsyningskabel til også at tilslutte routeren til 5V-skinnen. XT60 -kablet skal fastgøres til 12V -skinnen. Tilslut ikke batteriet, før resten af elektronikken er korrekt forbundet. Ultralydssensoren skal forbindes til 5V -skinnen. Opret en 3.3V -skinne på brødbrættet ved hjælp af pin 6 i Pmod -port JC på ZYBO. Logikomformerens højspændingsindgang skal forbindes til 5V -skinnen, mens logikomformerens lavspændingsindgang skal forbindes til 3,3V -skinnen. Led motorkoderne til 3,3V -skinnen. Tilslut motordriverens VCC1 til 5V -skinnen, og tilslut VCC2 til 12V -skinnen. Bind alle EN -ben til 5V, og jord alle GND -ben.

Forbind TRIG- og ECHO -benene på ultralydssensoren til henholdsvis HV1 og HV2 på logikomformeren. LV1 skal være tilsluttet JC4 og LV2 skal være forbundet til JC3. Se diagrammet for Pmod pinouts. Tilslut motorerne til motordriveren. Y1 skal tilsluttes den positive terminal på den højre motor, og Y2 skal være forbundet med den negative terminal på den højre motor. På samme måde skal Y3 forbindes til den positive motor på den venstre motor, og Y4 skal forbindes med den negative terminal på den venstre motor. A1, A2, A3 og A4 skal kortlægges til henholdsvis JB2, JB1, JB4 og JB3. Se skematisk for pin -numre. Led JC2 til højre encoder og JC1 til venstre encoder. Sørg for, at pull-up-modstande bruges til at binde disse signaler til 3.3V-skinnen. Til sidst skal du bruge ethernet -kablet til at slutte ZYBO til routeren.

Trin 3: Opret blokdiagram i Vivado

Opret blokdiagram i Vivado
Opret blokdiagram i Vivado

Opret et nyt RTL -projekt i Vivado. Sørg for ikke at angive nogen kilder på nuværende tidspunkt. Søg efter "xc7z010clg400-1" og tryk på finish. Download encoder_driver.sv og ultrasonic_driver.sv. Placer dem i deres egne mapper. Åbn IP Packager under "Værktøjer", og vælg at pakke et bestemt bibliotek. Indsæt stien til den mappe, der indeholder encoder -driveren, og tryk på "Næste". Klik på "pakke IP", og gentag processerne for ultralydssensordriveren. Bagefter navigerer du til depotstyringen under IP -underafsnittet i indstillingsmenuen. Føj stierne til drivermapperne, og tryk på Apply for at inkludere dem i IP -biblioteket.

Opret et nyt blokdiagram, og tilføj "ZYNQ7 Processing System". Dobbeltklik på blokken, og importer den medfølgende ZYBO_zynq_def.xml-fil. Under "MIO -konfiguration" skal du aktivere Timer 0 og GPIO MIO. tryk "OK" for at gemme konfigurationen. Tilføj 3 "AXI GPIO" blokke og 4 "AXI Timer" blokke. Kør blokautomatisering efterfulgt af forbindelsesautomatisering for S_AXI. Dobbeltklik på GPIO -blokke for at konfigurere dem. En blok skal være dobbeltkanal med en 4-bit input og en 4-bit output. Gør disse forbindelser eksterne og mærk dem SW for input og LED for output. Den anden blok skal også være dual channel med 2 32-bit input. Den sidste GPIO-blok vil være en enkelt 32-bit input. Gør pwm0 -output fra hver timerblok ekstern. Mærk dem PWM0, PWM1, PWM2 og PWM3.

Tilføj encoder -driveren til blokdiagrammet, og tilslut CLK til FCLK_CLK0. Tilslut OD0 og OD1 til inputkanalerne i den anden GPIO -blok. Gør ENC ekstern og omdøb ENC_0 til ENC. Tilføj ultralydsensorblokken, og tilslut CLK til FCLK_CLK0. Gør TRIG og ECHO ekstern, og omdøb TRIG_0 til TRIG og ECHO_0 til ECHO. Tilslut RF til den tredje GPIO -blok. Se det medfølgende blokdiagram for reference.

Højreklik på din blokdiagramfil i kilderuden, og opret en HDL -indpakning. Sørg for at tillade brugerredigeringer. Tilføj den medfølgende ZYBO_Master.xdc -fil som en begrænsning. Tryk på "Generer Bitstream", og tag en kaffepause.

Trin 4: Opsætning af softwareudviklingsmiljø

Gå under "File" for at eksportere hardware til Vivado SDK. Sørg for at inkludere bitstrømmen. Importer RTOSDemo -projektet inde i "CORTEX_A9_Zynq_ZC702". Det vil være placeret i FreeRTOS installationsmappe. Opret en ny Board Support Package, vælg lwip202 -biblioteket. Skift det refererede BSP i RTOSDemo -projektet til det BSP, du lige har oprettet*.

*På tidspunktet for skrivningen af denne instruktør synes FreeRTOS at have en fejl med at henvise til den korrekte BSP. For at afhjælpe dette skal du oprette en ny BSP med de samme indstillinger som den første. Skift den refererede BSP til den nye, og skift den derefter tilbage til den gamle, efter at den ikke er bygget. FreeRTOS skal nu kompilere uden fejl. Slet gerne den ubrugte BSP.

Trin 5: Rediger demonstrationsprogrammet

Opret en ny mappe kaldet "drivere" under "src" -mappen i RTOSDemo. Kopier den medfølgende gpio.h. gpio.c, pwm.h, pwm.c, kilometertæller.h, kilometertæller.c, afstandsmåler.c, afstandsmåler.h, motor.h og motor.c filer i biblioteket "drivere".

Åbn main.c og sæt mainSELECTED_APPLICATION til 2. Erstat main_lwIP.c under "lwIP_Demo" med den opdaterede version. BasicSocketCommandServer.c under "lwIP_Demo/apps/BasicSocketCommandServer" skal også opdateres med en ny version. Naviger til sidst til "FreeRTOSv10.1.1/FreeRTOS-Plus/Demo/Common/FreeRTOS_Plus_CLI_Demos" og erstat Sample-CLI-command.c med den medfølgende version. Byg projektet, og sørg for, at alt kompileres med succes.

Trin 6: Flash Firmware til QSPI

Flash Firmware til QSPI
Flash Firmware til QSPI
Flash Firmware til QSPI
Flash Firmware til QSPI
Flash Firmware til QSPI
Flash Firmware til QSPI

Opret et nyt applikationsprojekt kaldet "FSBL" ved hjælp af "Zynq FSBL" -skabelonen. Efter kompilering af FSBL -projektet skal du oprette et boot -billede af RTOSDemo -projektet. Sørg for, at "FSBL/Debug/FSBL.elf" er valgt som bootloader under "Boot image partitions". Føj stien til denne fil manuelt, hvis den ikke er angivet.

Flyt JP5 -jumperen på ZYBO til "JTAG". Brug et USB Micro-B-kabel til at slutte din computer til ZYBO. Tilslut batteriet og tænd for ZYBO. Kør Adept for at sikre, at ZYBO er korrekt identificeret af computeren. Klik på "Program Flash" i Vivado SDK, og angiv stierne til BOOT.bin -filen i RTOSDemo og FSBL.elf -filen i FSBL. Sørg for at vælge "Bekræft efter flash", før du trykker på "Program". Hold øje med konsollen for at sikre, at den blinkende handling er gennemført. Bagefter skal du slukke for ZYBO'en og afbryde USB -kablet. Flyt JP5 -jumperen til "QSPI".

Trin 7: Konfigurer trådløst adgangspunkt

Med batteriet stadig tilsluttet, skal du oprette forbindelse til routerens Wi-Fi-netværk. Standard -SSID og adgangskode skal være i bunden af routeren. Bagefter skal du navigere til https://tplinkwifi.net og logge ind med "admin" for brugernavn og adgangskode. Kør guiden til hurtig opsætning for at konfigurere routeren i adgangspunkttilstand med DHCP aktiveret. Sørg også for at opdatere standardbrugernavnet og adgangskoden til enheden. Routeren skal automatisk genstarte til adgangspunkttilstand, når du er færdig.

Tænd for ZYBO, og opret forbindelse til routeren ved hjælp af det SSID, du har tildelt. Routeren vil højst sandsynligt komme op på enten IP -adresse 192.168.0.100 eller 192.160.0.101. ZYBO tildeles den adresse, routeren ikke har. For hurtigt at bestemme routerens IP -adresse kan du køre "ipconfig" fra kommandoprompten i Windows eller "ifconfig" fra terminalen i Linux eller MacOS. Hvis du stadig er tilsluttet routeren, vil du se dens IP -adresse blive vist ved siden af din trådløse grænseflade. Brug disse oplysninger til at bestemme IP -adressen på ZYBO. For at bekræfte ZYBOs IP -adresse kan du enten pinge den fra kommandolinjen eller oprette forbindelse til den via telnet.

Trin 8: Kør Java -program

Kør Java -program
Kør Java -program

Download RobotClient.java og kompilér filen ved hjælp af kommandoen "javac RobotClient.java" fra kommandolinjen. Kør kommandoen "java RobotClient", hvor "ip_address" er IP -adressen på ZYBO. Kontrol -GUI'en dukker op, hvis der etableres en vellykket forbindelse mellem computeren og ZYBO. Efter fokusering af vinduet skal robotten kunne styres ved hjælp af piletasterne på tastaturet. Tryk på Escape -knappen for at afslutte sessionen og afbryde forbindelsen til robotten.

GUI'en fremhæver de taster, der trykkes på, og viser motorudgangen øverst til højre. Afstandsmåleren til venstre fylder en bar hver 2. meter op til maksimalt 10 meter.

Trin 9: Kalibrer afstandsmåler

Kontakterne ombord på ZYBO kan bruges til at konfigurere den indbyggede afstandsmåler. Minimumsdetekteringsafstanden d er angivet som en funktion af switchindgangen i:

d = 50i + 250

Input kan variere mellem 0 og 15 i heltals trin. Dette oversætter til et afstandsområde på 0,25 meter til 1 meter. På minimumsafstanden begynder den første LED at blinke. Antallet af aktive lysdioder er proportional med objektets nærhed.

Trin 10: Tilgængelighed

Denne robot er meget let tilgængelig. På grund af enkelheden i dens kontrol kan den styres fuldt ud med kun en finger. For at forbedre tilgængeligheden kan support til yderligere inputenheder tilføjes. Dette kan give handicappede anvendelser mulighed for at styre robotten med en anden del af deres krop.

Anbefalede: