Inhoudsopgave:
- Stap 1: monteer robotchassis
- Stap 2: Draadelektronica
- Stap 3: Maak een blokdiagram in Vivado
- Stap 4: Software-ontwikkelomgeving instellen
- Stap 5: Wijzig het demoprogramma
- Stap 6: Flash Firmware naar QSPI
- Stap 7: Draadloos toegangspunt configureren
- Stap 8: Java-programma uitvoeren
- Stap 9: Kalibreer afstandsmeter
- Stap 10: Toegankelijkheid
Video: WiBot: 10 stappen (met afbeeldingen)
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Deze instructable beschrijft het proces voor het bouwen van een Wi-Fi-robot op het ZYBO-platform. Dit project maakt gebruik van een realtime besturingssysteem voor objectdetectie, afstandsmeting en responsieve besturing. Deze handleiding behandelt de interface van de ZYBO met randapparatuur, het uitvoeren van aangepaste firmware en communicatie via een Java-toepassing. Het volgende is een lijst van alle belangrijke componenten die nodig zijn voor dit project:
- 1 ZYBO-ontwikkelingsbord
- 1 TL-WR802N draadloze router
- 1 schaduwchassis
- 2 65 mm wielen
- 2 140 tpm motorreductoren
- 2 wiel encoders
- 1 HC-SR04 ultrasone sensor
- 1 BSS138 logische niveau-omzetter
- 1 L293 H-brug motorstuurprogramma
- 1 12V naar 5V DC/DC-omzetter
- 1 2200mAh LiPo-batterij
- 1 Ethernet-kabel
- 1 USB Micro-B-kabel
- 1 vrouwelijke XT60-connector
- 2 man-naar-vrouw verbindingsdraden
- 30 man-naar-mannelijke verbindingsdraden
- 2 10kΩ weerstanden
- 1 Breadboard
Daarnaast moet de volgende software op de doelcomputer zijn geïnstalleerd:
- Xilinx Vivado Design Suite 2018.2
- Digilente Adept 2.19.2
- FreeRTOS 10.1.1
- Java SE-ontwikkelkit 8.191
Stap 1: monteer robotchassis
Monteer het schaduwchassis en bevestig de motorreductoren en encoders aan het onderframe. De ZYBO, breadboard en ultrasone sensor kunnen worden gemonteerd met de meegeleverde onderdelen die 3D kunnen worden geprint en op het chassis kunnen worden bevestigd met afstandhouders en dubbelzijdige tape. De batterij moet dicht bij de achterkant van de robot worden gemonteerd en bij voorkeur tussen de bovenkant en onderste kozijnen. Monteer de router dicht bij de ZYBO en de DC/DC-converter dicht bij het breadboard. Bevestig de wielen helemaal aan de motorreductoren.
Stap 2: Draadelektronica
Sluit de in- en uitgang van de DC/DC-converter respectievelijk aan op de twee voedingsrails op het breadboard. Deze zullen dienen als de 12V- en 5V-voedingen voor het systeem. Sluit de ZYBO aan op de 5V-rail zoals weergegeven in de afbeelding. Gebruik een USB Micro-B-voedingskabel om de router ook op de 5V-rail aan te sluiten. De XT60-kabel moet aan de 12V-rail worden bevestigd. Sluit de batterij pas aan als de rest van de elektronica correct is aangesloten. De ultrasone sensor moet worden aangesloten op de 5V-rail. Maak een 3,3V-rail op het breadboard met behulp van pin 6 van Pmod-poort JC op de ZYBO. De hoogspanningsingang van de logische converter moet worden aangesloten op de 5V-rail, terwijl de laagspanningsingang van de logische converter moet worden aangesloten op de 3,3V-rail. Sluit de motor-encoders aan op de 3,3V-rail. Sluit VCC1 van de motordriver aan op de 5V-rail en sluit VCC2 aan op de 12V-rail. Bind alle EN-pinnen op 5V en aard alle GND-pinnen.
Verbind de TRIG- en ECHO-pinnen van de ultrasone sensor met respectievelijk HV1 en HV2 van de logische converter. LV1 moet worden aangesloten op JC4 en LV2 moet worden aangesloten op JC3. Raadpleeg de tabel voor Pmod-pinouts. Sluit de motoren aan op de motordriver. Y1 moet worden aangesloten op de positieve pool van de rechtermotor en Y2 moet worden aangesloten op de negatieve pool van de rechtermotor. Evenzo moet Y3 worden aangesloten op de positieve pool van de linkermotor en Y4 moet worden aangesloten op de negatieve pool van de linkermotor. A1, A2, A3 en A4 moeten respectievelijk worden toegewezen aan JB2, JB1, JB4 en JB3. Raadpleeg het schema voor pinnummers. Sluit JC2 aan op de rechter encoder en JC1 op de linker encoder. Zorg ervoor dat er pull-up-weerstanden worden gebruikt om deze signalen aan de 3,3V-rail te binden. Gebruik ten slotte de ethernetkabel om de ZYBO op de router aan te sluiten.
Stap 3: Maak een blokdiagram in Vivado
Maak een nieuw RTL-project aan in Vivado. Zorg ervoor dat u op dit moment geen bronnen opgeeft. Zoek naar "xc7z010clg400-1" en klik op voltooien. Download encoder_driver.sv en ultrasonic_driver.sv. Plaats ze in hun eigen mappen. Open de IP Packager onder "Tools" en kies ervoor om een gespecificeerde directory te verpakken. Plak het pad naar de map met het encoderstuurprogramma en klik op "Volgende". Klik op "package IP" en herhaal de processen voor de ultrasone sensordriver. Navigeer daarna naar de repository manager onder de IP-subsectie in het instellingenmenu. Voeg de paden toe aan de stuurprogrammamappen en klik op toepassen om ze in de IP-bibliotheek op te nemen.
Maak een nieuw blokschema en voeg het "ZYNQ7 Processing System" toe. Dubbelklik op het blok en importeer het meegeleverde bestand ZYBO_zynq_def.xml. Schakel onder "MIO-configuratie" Timer 0 en GPIO MIO in. druk op "OK" om de configuratie op te slaan. Voeg 3 "AXI GPIO" blokken en 4 "AXI Timer" blokken toe. Voer blokautomatisering uit gevolgd door verbindingsautomatisering voor S_AXI. Dubbelklik op de GPIO-blokken om ze te configureren. Eén blok moet tweekanaals zijn met een 4-bits invoer en een 4-bits uitvoer. Maak deze aansluitingen extern en label ze SW voor input en LED voor output. Het tweede blok moet ook dual channel zijn met 2 32-bits ingangen. Het laatste GPIO-blok is een enkele 32-bits invoer. Maak de pwm0-uitvoer van elk timerblok extern. Label ze PWM0, PWM1, PWM2 en PWM3.
Voeg het encoderstuurprogramma toe aan het blokschema en sluit CLK aan op FCLK_CLK0. Sluit OD0 en OD1 aan op de ingangskanalen van het tweede GPIO-blok. Maak ENC extern en hernoem ENC_0 naar ENC. Voeg het ultrasone sensorblok toe en sluit CLK aan op FCLK_CLK0. Maak TRIG en ECHO extern en hernoem TRIG_0 naar TRIG en ECHO_0 naar ECHO. Verbind RF met het derde GPIO-blok. Raadpleeg het meegeleverde blokschema ter referentie.
Klik met de rechtermuisknop op uw blokdiagrambestand in het deelvenster Bronnen en maak een HDL-wrapper. Zorg ervoor dat u gebruikersbewerkingen toestaat. Voeg het meegeleverde ZYBO_Master.xdc-bestand toe als een beperking. Druk op "Bitstream genereren" en neem een koffiepauze.
Stap 4: Software-ontwikkelomgeving instellen
Ga onder "Bestand" om hardware naar de Vivado SDK te exporteren. Zorg ervoor dat u de bitstream opneemt. Importeer het RTOSDemo-project in de "CORTEX_A9_Zynq_ZC702". Het bevindt zich in de FreeRTOS-installatiemap. Maak een nieuw Board Support Package aan, selecteer de lwip202-bibliotheek. Wijzig de BSP waarnaar wordt verwezen in het RTOSDemo-project in de BSP die u zojuist hebt gemaakt*.
* Op het moment van schrijven van deze Instructable lijkt FreeRTOS een bug te hebben met het verwijzen naar de juiste BSP. Om dit te verhelpen, maakt u een nieuwe BSP aan met dezelfde instellingen als de eerste. Wijzig de BSP waarnaar wordt verwezen in de nieuwe en verander deze vervolgens terug naar de oude nadat het niet is gelukt om te bouwen. FreeRTOS zou nu zonder fouten moeten compileren. Voel je vrij om de ongebruikte BSP te verwijderen.
Stap 5: Wijzig het demoprogramma
Maak een nieuwe map met de naam "drivers" in de map "src" van RTOSDemo. Kopieer de verstrekte gpio.h. gpio.c, pwm.h, pwm.c, odometer.h, odometer.c, rangefinder.c, rangefinder.h, motor.h en motor.c bestanden in de "drivers" directory.
Open main.c en stel mainSELECTED_APPLICATION in op 2. Vervang main_lwIP.c onder "lwIP_Demo" door de bijgewerkte versie. BasicSocketCommandServer.c onder "lwIP_Demo/apps/BasicSocketCommandServer" moet ook worden bijgewerkt met een nieuwe versie. Navigeer ten slotte naar "FreeRTOSv10.1.1/FreeRTOS-Plus/Demo/Common/FreeRTOS_Plus_CLI_Demos" en vervang Sample-CLI-commands.c door de meegeleverde versie. Bouw het project en zorg ervoor dat alles succesvol wordt gecompileerd.
Stap 6: Flash Firmware naar QSPI
Maak een nieuw toepassingsproject met de naam "FSBL" met behulp van de sjabloon "Zynq FSBL". Maak na het compileren van het FSBL-project een opstartimage van het RTOSDemo-project. Zorg ervoor dat "FSBL/Debug/FSBL.elf" is geselecteerd als de bootloader onder "Boot image partities". Voeg het pad handmatig toe aan dit bestand als het niet in de lijst staat.
Verplaats de JP5-jumper op de ZYBO naar "JTAG". Gebruik een USB Micro-B-kabel om uw computer op de ZYBO aan te sluiten. Sluit de batterij aan en zet de ZYBO aan. Voer Adept uit om ervoor te zorgen dat de ZYBO correct wordt geïdentificeerd door de computer. Klik op "Program Flash" in de Vivado SDK en geef de paden op naar het BOOT.bin-bestand in RTOSDemo en het FSBL.elf-bestand in FSBL. Zorg ervoor dat u "Verifiëren na flash" selecteert voordat u op "Programma" klikt. Bekijk de console om ervoor te zorgen dat de knipperende bewerking met succes is voltooid. Schakel daarna de ZYBO uit en koppel de USB-kabel los. Verplaats de JP5-jumper naar "QSPI".
Stap 7: Draadloos toegangspunt configureren
Maak verbinding met het wifi-netwerk van de router terwijl de batterij nog is aangesloten. De standaard SSID en het standaardwachtwoord moeten aan de onderkant van de router staan. Navigeer daarna naar https://tplinkwifi.net en log in met "admin" voor de gebruikersnaam en het wachtwoord. Voer de wizard voor snelle installatie uit om de router te configureren in de toegangspuntmodus met DHCP ingeschakeld. Zorg ervoor dat u ook de standaard gebruikersnaam en het standaardwachtwoord voor het apparaat bijwerkt. De router moet automatisch opnieuw opstarten in de toegangspuntmodus nadat u klaar bent.
Schakel de ZYBO in en maak verbinding met de router met behulp van de SSID die u hebt toegewezen. De router zal hoogstwaarschijnlijk op IP-adres 192.168.0.100 of 192.160.0.101 komen. De ZYBO wordt toegewezen aan het adres dat de router niet heeft. Om snel het IP-adres van de router te bepalen, kunt u "ipconfig" uitvoeren vanaf de opdrachtprompt in Windows of "ifconfig" vanaf de terminal in Linux of MacOS. Als u nog steeds verbonden bent met de router, ziet u het IP-adres naast uw draadloze interface. Gebruik deze informatie om het IP-adres van de ZYBO te bepalen. Om het IP-adres van de ZYBO te bevestigen, kunt u het pingen vanaf de opdrachtregel of er verbinding mee maken via telnet.
Stap 8: Java-programma uitvoeren
Download RobotClient.java en compileer het bestand met de opdracht "javac RobotClient.java" vanaf de opdrachtregel. Voer de opdracht "java RobotClient" uit, waarbij "ip_address" het IP-adres van de ZYBO is. De bedienings-GUI verschijnt als er een succesvolle verbinding tot stand is gebracht tussen de computer en de ZYBO. Nadat het venster is scherpgesteld, moet de robot bestuurbaar zijn met de pijltjestoetsen op het toetsenbord. Druk op de escape-knop om de sessie te beëindigen en de verbinding met de robot te verbreken.
De GUI zal de ingedrukte toetsen markeren en rechtsboven het motorvermogen weergeven. De afstandsmeter links vult elke 2 meter een balk tot een maximum van 10 meter.
Stap 9: Kalibreer afstandsmeter
De schakelaars aan boord van de ZYBO kunnen worden gebruikt om de ingebouwde afstandsmeter te configureren. De minimale detectieafstand d wordt gegeven als functie van de schakelaaringang i:
d = 50i + 250
De invoer kan variëren van 0 tot 15 in stappen van gehele getallen. Dit vertaalt zich in een afstandsbereik van 0,25 meter tot 1 meter. Op de minimale afstand begint de eerste LED te knipperen. Het aantal LED's dat actief is, is evenredig met de nabijheid van het object.
Stap 10: Toegankelijkheid
Deze robot is zeer goed bereikbaar. Door de eenvoud van zijn bediening kan hij volledig worden bediend met slechts één vinger. Om de toegankelijkheid te verbeteren, zou ondersteuning voor extra invoerapparaten kunnen worden toegevoegd. Hierdoor kunnen gehandicapte gebruikers de robot met een ander deel van hun lichaam besturen.
Aanbevolen:
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino - Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter - RC Helikopter - RC-vliegtuig met Arduino: 5 stappen (met afbeeldingen)
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino | Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter | RC Helikopter | Rc-vliegtuig met Arduino: een Rc-auto besturen | Quadcopter | Drone | RC vliegtuig | RC-boot, we hebben altijd een ontvanger en zender nodig, stel dat we voor RC QUADCOPTER een 6-kanaals zender en ontvanger nodig hebben en dat type TX en RX is te duur, dus we gaan er een maken op onze
Een computer demonteren met eenvoudige stappen en afbeeldingen: 13 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Een computer demonteren met eenvoudige stappen en afbeeldingen: dit is een instructie over het demonteren van een pc. De meeste basiscomponenten zijn modulair en gemakkelijk te verwijderen. Wel is het belangrijk dat je er goed over georganiseerd bent. Dit zal helpen voorkomen dat u onderdelen kwijtraakt, en ook bij het maken van de hermontage e
PCB-ontwerp met eenvoudige en gemakkelijke stappen: 30 stappen (met afbeeldingen)
PCB-ontwerp met eenvoudige en gemakkelijke stappen: HELLO VRIENDEN Het is een zeer nuttige en gemakkelijke tutorial voor diegenen die PCB-ontwerp willen leren, laten we beginnen
Een video met gesplitst scherm maken in vier stappen: 4 stappen (met afbeeldingen)
Een video met gesplitst scherm maken in vier stappen: we zien vaak dezelfde persoon twee keer in een scène in een tv-toneelstuk. En voor zover we weten heeft de acteur geen tweelingbroer. We hebben ook gezien dat er twee zangvideo's op één scherm worden gezet om hun zangkunsten te vergelijken. Dit is de kracht van spl
Uw afbeeldingen opslaan voor uw taak: 4 stappen (met afbeeldingen)
Uw afbeeldingen opslaan voor uw taak: 1. Open een nieuw Google-document en gebruik deze pagina om uw afbeeldingen te beveiligen.2. Gebruik ctrl (control) en de "c" sleutel om te kopiëren.3. Gebruik ctrl (control) en de "v" sleutel om te plakken