Innehållsförteckning:

WiBot: 10 steg (med bilder)
WiBot: 10 steg (med bilder)

Video: WiBot: 10 steg (med bilder)

Video: WiBot: 10 steg (med bilder)
Video: Aquapark Winterswijk - Wasserapsaß mitten im Badesee Meddo mit Wibit Sports 2024, November
Anonim
WiBot
WiBot

Denna instruerbara beskriver processen för att bygga en Wi-Fi-robot på ZYBO-plattformen. Detta projekt använder ett realtidsoperativsystem för objektdetektering, avståndsmätning och responsiv kontroll. Den här guiden kommer att omfatta gränssnitt mellan ZYBO med kringutrustning, köra anpassad firmware och kommunicera via Java -program. Följande är en lista över alla viktiga komponenter som krävs för detta projekt:

  • 1 ZYBO Development Board
  • 1 TL-WR802N trådlös router
  • 1 skuggchassi
  • 2 65 mm hjul
  • 2 140 varv / min växelmotorer
  • 2 hjulkodare
  • 1 ultraljudssensor HC-SR04
  • 1 BSS138 Logic Level Converter
  • 1 L293 H-Bridge motorförare
  • 1 12V till 5V DC/DC -omvandlare
  • 1 2200mAh LiPo -batteri
  • 1 Ethernet -kabel
  • 1 USB Micro-B-kabel
  • 1 hona XT60 -kontakt
  • 2 manliga till kvinnliga bygeltrådar
  • 30 tröjor från man till man
  • 2 10kΩ motstånd
  • 1 brödbräda

Dessutom måste följande programvara installeras på måldatorn:

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

Steg 1: Montera robotchassi

Montera robotchassi
Montera robotchassi
Montera robotchassi
Montera robotchassi
Montera robotchassi
Montera robotchassi

Montera skuggchassit och fäst växelmotorer och givare på bottenramen. ZYBO, brödbrädan och ultraljudssensorn kan monteras med de medföljande delarna som kan 3D-skrivas ut och fästas på chassit med avstånd och dubbelsidig tejp. Batteriet ska monteras nära robotens baksida och helst mellan toppen och bottenramar. Montera routern nära ZYBO och DC/DC -omvandlaren nära panelen. Fäst hjulen på växelmotorer i slutet.

Steg 2: Wire Electronics

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

Anslut ingång och utgång för DC/DC -omvandlaren till de två strömskenorna på brödbrädan respektive. Dessa kommer att fungera som 12V och 5V förbrukningsmaterial för systemet. Anslut ZYBO till 5V -skenan som visas på bilden. Använd en USB Micro-B-matningskabel för att ansluta routern till 5V-skenan också. XT60 -kabeln ska anslutas till 12V -skenan. Anslut inte batteriet förrän resten av elektroniken är korrekt ansluten. Ultraljudssensorn bör kopplas till 5V -skenan. Skapa en 3.3V -skena på brödbrädan med stift 6 på Pmod -port JC på ZYBO. Högspänningsingången för logikomvandlaren bör vara ansluten till 5V -skenan medan lågspänningsingången för logikomvandlaren bör anslutas till 3,3V -skenan. Anslut motorkodarna till 3,3V -skenan. Anslut motorförarens VCC1 till 5V -skenan och anslut VCC2 till 12V -skenan. Knyt alla EN -stift till 5V och mal alla GND -stift.

Anslut ultraljudssensorns TRIG- och ECHO -stift till logikomvandlarens HV1 respektive HV2. LV1 bör vara ansluten till JC4 och LV2 bör anslutas till JC3. Se diagrammet för Pmod pinouts. Anslut motorerna till motorföraren. Y1 ska vara ansluten till den positiva terminalen på den högra motorn och Y2 ska vara ansluten till den negativa terminalen på den högra motorn. På samma sätt bör Y3 anslutas till den vänstra motorns pluspol och Y4 till den vänstra motorns minuspol. A1, A2, A3 och A4 ska mappas till JB2, JB1, JB4 respektive JB3. Se schemat för pin -nummer. Anslut JC2 till höger givare och JC1 till vänster givare. Se till att dragmotstånd används för att knyta dessa signaler till 3,3V-skenan. Slutligen använder du ethernet -kabeln för att ansluta ZYBO till routern.

Steg 3: Skapa blockdiagram i Vivado

Skapa blockdiagram i Vivado
Skapa blockdiagram i Vivado

Skapa ett nytt RTL -projekt i Vivado. Se till att inte ange några källor just nu. Sök efter "xc7z010clg400-1" och träffa finish. Ladda ner encoder_driver.sv och ultrasonic_driver.sv. Placera dem i sina egna mappar. Öppna IP -paketet under "Verktyg" och välj att paketera en angiven katalog. Klistra in sökvägen till mappen som innehåller kodningsdrivrutinen och tryck på "Nästa". Klicka på "paket -IP" och upprepa processerna för ultraljudssensordrivrutinen. Navigera därefter till förvarshanteraren under underavsnittet IP i inställningsmenyn. Lägg till sökvägarna till förarmapparna och tryck på Apply för att inkludera dem i IP -biblioteket.

Skapa ett nytt blockschema och lägg till "ZYNQ7 Processing System". Dubbelklicka på blocket och importera filen ZYBO_zynq_def.xml. Under "MIO -konfiguration", aktivera timer 0 och GPIO MIO. tryck "OK" för att spara konfigurationen. Lägg till 3 "AXI GPIO" block och 4 "AXI Timer" block. Kör blockautomatisering följt av anslutningsautomatisering för S_AXI. Dubbelklicka på GPIO -blocken för att konfigurera dem. Ett block bör vara dubbelkanal med en 4-bitars ingång och en 4-bitars utgång. Gör dessa anslutningar externa och märk dem SW för ingång och LED för utgång. Det andra blocket bör också vara dubbelkanal med 2 32-bitars ingångar. Det sista GPIO-blocket kommer att vara en enda 32-bitars ingång. Gör pwm0 -utsignalen från varje timerblock extern. Märk dem PWM0, PWM1, PWM2 och PWM3.

Lägg till kodningsdrivrutinen i blockdiagrammet och anslut CLK till FCLK_CLK0. Anslut OD0 och OD1 till ingångskanalerna i det andra GPIO -blocket. Gör ENC extern och byt namn på ENC_0 till ENC. Lägg till ultraljudsgivarblocket och anslut CLK till FCLK_CLK0. Gör TRIG och ECHO externa och byt namn på TRIG_0 till TRIG och ECHO_0 till ECHO. Anslut RF till det tredje GPIO -blocket. Se det medföljande blockschemat för referens.

Högerklicka på din blockdiagramfil i källfönstret och skapa en HDL -omslag. Var noga med att tillåta användarredigeringar. Lägg till den medföljande ZYBO_Master.xdc -filen som en begränsning. Slå "Generera Bitstream" och ta en fikapaus.

Steg 4: Konfigurera mjukvaruutvecklingsmiljö

Gå till "File" för att exportera hårdvara till Vivado SDK. Se till att inkludera bitströmmen. Importera RTOSDemo -projektet inuti "CORTEX_A9_Zynq_ZC702". Det kommer att finnas i installationskatalogen för FreeRTOS. Skapa ett nytt Board Support Package, välj lwip202 -biblioteket. Ändra det refererade BSP i RTOSDemo -projektet till det BSP du just skapade*.

*Vid skrivandet av den här instruktionsboken verkar FreeRTOS ha ett fel med att referera till rätt BSP. För att åtgärda detta, skapa en ny BSP med samma inställningar som den första. Ändra den refererade BSP till den nya och ändra den sedan tillbaka till den gamla efter att den inte har byggts. FreeRTOS bör nu kompilera utan fel. Ta bort den oanvända BSP.

Steg 5: Ändra demonstrationsprogrammet

Skapa en ny mapp som heter "drivrutiner" under "src" -katalogen i RTOSDemo. Kopiera den medföljande gpio.h. gpio.c, pwm.h, pwm.c, odometer.h, odometer.c, avståndsmätare.c, avståndsmätare.h, motor.h och motor.c -filer i katalogen "drivrutiner".

Öppna main.c och ställ mainSELECTED_APPLICATION till 2. Ersätt main_lwIP.c under "lwIP_Demo" med den uppdaterade versionen. BasicSocketCommandServer.c under "lwIP_Demo/apps/BasicSocketCommandServer" måste också uppdateras med en ny version. Slutligen navigerar du till "FreeRTOSv10.1.1/FreeRTOS-Plus/Demo/Common/FreeRTOS_Plus_CLI_Demos" och ersätt Sample-CLI-command.c med den medföljande versionen. Bygg projektet och se till att allt sammanställs framgångsrikt.

Steg 6: Flash Firmware till QSPI

Flash Firmware till QSPI
Flash Firmware till QSPI
Flash Firmware till QSPI
Flash Firmware till QSPI
Flash Firmware till QSPI
Flash Firmware till QSPI

Skapa ett nytt applikationsprojekt med namnet "FSBL" med hjälp av "Zynq FSBL" -mallen. Efter att ha sammanställt FSBL -projektet skapar du en startbild av RTOSDemo -projektet. Se till att "FSBL/Debug/FSBL.elf" är valt som bootloader under "Boot image partitions". Lägg till sökvägen till den här filen manuellt om den inte är listad.

Flytta JP5 -bygeln på ZYBO till "JTAG". Använd en USB Micro-B-kabel för att ansluta din dator till ZYBO. Anslut batteriet och sätt på ZYBO. Kör Adept för att se till att ZYBO är korrekt identifierad av datorn. Klicka på "Program Flash" i Vivado SDK och ange sökvägarna till BOOT.bin -filen i RTOSDemo och FSBL.elf -filen i FSBL. Var noga med att välja "Verifiera efter blixt" innan du trycker på "Program". Titta på konsolen för att säkerställa att den blinkande åtgärden har slutförts. Stäng sedan av ZYBO och koppla ur USB -kabeln. Flytta JP5 -bygeln till "QSPI".

Steg 7: Konfigurera trådlös åtkomstpunkt

Med batteriet fortfarande anslutet ansluter du till routerns Wi-Fi-nätverk. Standard -SSID och lösenord bör finnas längst ner på routern. Därefter navigerar du till https://tplinkwifi.net och loggar in med "admin" för användarnamn och lösenord. Kör snabbinstallationsguiden för att konfigurera routern i åtkomstpunktsläge med DHCP aktiverat. Se till att uppdatera standardnamnet och lösenordet för enheten också. Routern ska automatiskt starta om till åtkomstpunktsläge när du är klar.

Slå på ZYBO och anslut till routern med det SSID du tilldelade. Routern kommer troligen att komma antingen på IP -adressen 192.168.0.100 eller 192.160.0.101. ZYBO tilldelas vilken adress som routern inte har. För att snabbt bestämma routerns IP -adress kan du köra "ipconfig" från kommandotolken i Windows eller "ifconfig" från terminalen i Linux eller MacOS. Om du fortfarande är ansluten till routern kommer IP -adressen att visas bredvid ditt trådlösa gränssnitt. Använd denna information för att bestämma IP -adressen för ZYBO. För att bekräfta ZYBO: s IP -adress kan du antingen pinga den från kommandoraden eller ansluta till den via telnet.

Steg 8: Kör Java -program

Kör Java -program
Kör Java -program

Ladda ner RobotClient.java och kompilera filen med kommandot "javac RobotClient.java" från kommandoraden. Kör kommandot "java RobotClient" där "ip_address" är IP -adressen till ZYBO. Kontrollgränssnittet dyker upp om en lyckad anslutning upprättas mellan datorn och ZYBO. Efter att ha fokuserat fönstret bör roboten vara kontrollerbar med piltangenterna på tangentbordet. Tryck på Escape -knappen för att avsluta sessionen och koppla från roboten.

GUI markerar knapparna som trycks ned och visar motoreffekten längst upp till höger. Avståndsmätaren till vänster fyller en stapel varannan meter upp till maximalt 10 meter.

Steg 9: Kalibrera avståndsmätare

Omkopplarna ombord på ZYBO kan användas för att konfigurera den inbyggda avståndsmätaren. Det minsta detekteringsavståndet d anges som en funktion av omkopplaringången i:

d = 50i + 250

Ingången kan variera mellan 0 och 15 i heltalssteg. Detta översätts till ett avståndsområde på 0,25 meter till 1 meter. På minsta avstånd börjar den första lysdioden blinka. Antalet lysdioder som är aktiva är proportionellt mot objektets närhet.

Steg 10: Tillgänglighet

Denna robot är mycket lättillgänglig. På grund av den enkla kontrollen kan den kontrolleras fullt ut med bara ett finger. För att förbättra tillgängligheten kan stöd för ytterligare inmatningsenheter läggas till. Detta kan tillåta funktionshindrade användningar att styra roboten med en annan del av kroppen.

Rekommenderad: