Innehållsförteckning:
- Steg 1: Montera robotchassi
- Steg 2: Wire Electronics
- Steg 3: Skapa blockdiagram i Vivado
- Steg 4: Konfigurera mjukvaruutvecklingsmiljö
- Steg 5: Ändra demonstrationsprogrammet
- Steg 6: Flash Firmware till QSPI
- Steg 7: Konfigurera trådlös åtkomstpunkt
- Steg 8: Kör Java -program
- Steg 9: Kalibrera avståndsmätare
- Steg 10: Tillgänglighet
Video: WiBot: 10 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
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 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
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 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
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
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:
Ta fantastiska bilder med en iPhone: 9 steg (med bilder)
Ta fantastiska bilder med en iPhone: De flesta av oss har en smartphone med oss överallt nuförtiden, så det är viktigt att veta hur du använder din smartphone -kamera för att ta fantastiska bilder! Jag har bara haft en smartphone i ett par år, och jag har älskat att ha en bra kamera för att dokumentera saker jag
Hur: Installera Raspberry PI 4 Headless (VNC) med Rpi-imager och bilder: 7 steg (med bilder)
Hur: Installera Raspberry PI 4 Headless (VNC) med Rpi-imager och bilder: Jag planerar att använda denna Rapsberry PI i ett gäng roliga projekt tillbaka i min blogg. Kolla gärna in det. Jag ville börja använda mitt Raspberry PI men jag hade inte ett tangentbord eller en mus på min nya plats. Det var ett tag sedan jag installerade en hallon
Hur man digitaliserar bilder och filmnegativ med en DSLR: 12 steg (med bilder)
Hur man digitaliserar diabilder och filmnegativ med en DSLR: En mångsidig och stabil inställning för digitalisering av diabilder och negativ med en DSLR eller en kamera med ett makroalternativ. Denna instruerbara är en uppdatering av Hur man digitaliserar 35 mm negativ (uppladdad juli 2011) med flera förbättringar för att utöka dess
Trådlös fjärrkontroll med 2,4 GHz NRF24L01 -modul med Arduino - Nrf24l01 4 -kanals / 6 -kanals sändarmottagare för Quadcopter - Rc helikopter - RC -plan med Arduino: 5 steg (med bilder)
Trådlös fjärrkontroll med 2,4 GHz NRF24L01 -modul med Arduino | Nrf24l01 4 -kanals / 6 -kanals sändarmottagare för Quadcopter | Rc helikopter | Rc -plan med Arduino: Att driva en Rc -bil | Quadcopter | Drone | RC -plan | RC -båt, vi behöver alltid en mottagare och sändare, antag att för RC QUADCOPTER behöver vi en 6 -kanals sändare och mottagare och den typen av TX och RX är för dyr, så vi kommer att göra en på vår
Hur man tar isär en dator med enkla steg och bilder: 13 steg (med bilder)
Hur man tar isär en dator med enkla steg och bilder: Detta är en instruktion om hur man demonterar en dator. De flesta av de grundläggande komponenterna är modulära och lätt att ta bort. Det är dock viktigt att du är organiserad kring det. Detta hjälper dig att inte förlora delar, och även för att göra ommonteringen