Cuprins:

WiBot: 10 pași (cu imagini)
WiBot: 10 pași (cu imagini)

Video: WiBot: 10 pași (cu imagini)

Video: WiBot: 10 pași (cu imagini)
Video: WiBit.Net - Introduction to Computer Programming - 10 - Binary Code - Part 1 2024, Septembrie
Anonim
WiBot
WiBot

Acest instructiv detaliază procesul de construire a unui robot Wi-Fi pe platforma ZYBO. Acest proiect utilizează un sistem de operare în timp real pentru detectarea obiectelor, măsurarea distanței și controlul receptiv. Acest ghid va acoperi interfața ZYBO cu perifericele, rularea firmware-ului personalizat și comunicarea prin intermediul aplicației Java. Următoarea este o listă cu toate componentele cheie necesare pentru acest proiect:

  • 1 Consiliul de dezvoltare ZYBO
  • 1 router wireless TL-WR802N
  • 1 Șasiu Shadow
  • 2 roți de 65 mm
  • 2 motoare de viteze de 140 rpm
  • 2 codificatoare de roți
  • 1 senzor cu ultrasunete HC-SR04
  • 1 Convertor de nivel logic BSS138
  • 1 Driver motor L293 H-Bridge
  • 1 Convertor 12V la 5V DC / DC
  • 1 baterie LiPo de 2200mAh
  • 1 cablu Ethernet
  • 1 cablu USB Micro-B
  • 1 conector XT60 mamă
  • 2 fire jumper de la bărbat la femeie
  • 30 fire jumper de la bărbat la bărbat
  • 2 rezistențe de 10kΩ
  • 1 Pană de pâine

În plus, următorul software trebuie instalat pe computerul țintă:

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

Pasul 1: Asamblați șasiul robotului

Asamblați șasiul robotului
Asamblați șasiul robotului
Asamblați șasiul robotului
Asamblați șasiul robotului
Asamblați șasiul robotului
Asamblați șasiul robotului

Asamblați șasiul umbrelor și atașați motoreductoarele și codificatoarele la cadrul inferior. Senzorul ZYBO, panoul de testare și ultrasunetele pot fi montate cu piesele furnizate, care pot fi imprimate 3D și fixate pe șasiu folosind suporturi și bandă dublă. Bateria trebuie montată lângă partea din spate a robotului și de preferință între partea superioară și ramele de jos. Montați routerul aproape de ZYBO și convertorul DC / DC aproape de panoul de control. Atașați roțile la motoarele de viteze chiar la capăt.

Pasul 2: Sârmă electronică

Sârmă electronică
Sârmă electronică
Sârmă electronică
Sârmă electronică
Sârmă electronică
Sârmă electronică

Conectați intrarea și ieșirea convertorului DC / DC la cele două șine de alimentare de pe panoul de control. Acestea vor servi drept surse de 12V și 5V pentru sistem. Conectați ZYBO la șina de 5V așa cum se arată în imagine. Utilizați un cablu de alimentare USB Micro-B pentru a conecta și routerul la șina de 5V. Cablul XT60 trebuie atașat la șina de 12V. Nu conectați bateria până când restul componentelor electronice nu sunt conectate corect. Senzorul cu ultrasunete trebuie să fie conectat la șina de 5V. Creați o șină de 3,3 V pe placa de bord folosind pinul 6 al portului Pmod JC de pe ZYBO. Intrarea de înaltă tensiune a convertorului logic trebuie să fie conectată la șina de 5V, în timp ce intrarea de joasă tensiune a convertorului logic trebuie să fie conectată la șina de 3,3V. Conectați codificatoarele motorului la șina de 3,3V. Conectați VCC1 al motorului la șina de 5V și conectați VCC2 la șina de 12V. Legați toți pinii EN la 5V și împingeți toți pinii GND.

Conectați pinii TRIG și ECHO ai senzorului cu ultrasunete la HV1 și respectiv HV2 al convertorului logic. LV1 trebuie conectat la JC4 și LV2 trebuie conectat la JC3. Consultați graficul pentru pinouts Pmod. Conectați motoarele la driverul motorului. Y1 ar trebui să fie conectat la terminalul pozitiv al motorului din dreapta și Y2 ar trebui să fie conectat la terminalul negativ al motorului din dreapta. În mod similar, Y3 ar trebui să fie conectat la terminalul pozitiv al motorului stâng și Y4 ar trebui să fie conectat la terminalul negativ al motorului stâng. A1, A2, A3 și A4 trebuie mapate la JB2, JB1, JB4 și respectiv JB3. Consultați schema pentru numerele de pin. Conectați JC2 la codificatorul din dreapta și JC1 la codificatorul din stânga. Asigurați-vă că sunt utilizate rezistențe de tragere pentru a lega aceste semnale de șina de 3,3 V. În cele din urmă, utilizați cablul Ethernet pentru a conecta ZYBO la router.

Pasul 3: Creați o diagramă bloc în Vivado

Creați o diagramă bloc în Vivado
Creați o diagramă bloc în Vivado

Creați un nou proiect RTL în Vivado. Asigurați-vă că nu specificați nicio sursă în acest moment. Căutați „xc7z010clg400-1” și atingeți finisare. Descărcați encoder_driver.sv și ultrasonic_driver.sv. Plasați-le în propriile foldere. Deschideți pachetul IP sub „Instrumente” și alegeți să împachetați un director specificat. Lipiți calea către folderul care conține driverul codificatorului și apăsați „Următorul”. Faceți clic pe „pachet IP” și repetați procesele pentru driverul senzorului cu ultrasunete. Apoi, navigați la managerul de depozite sub subsecțiunea IP din meniul de setări. Adăugați căile în folderele driverului și apăsați pe Aplicare pentru a le include în biblioteca IP.

Creați o nouă diagramă bloc și adăugați „Sistemul de procesare ZYNQ7”. Faceți dublu clic pe bloc și importați fișierul ZYBO_zynq_def.xml furnizat. Sub „Configurare MIO”, activați Temporizatorul 0 și GPIO MIO. apăsați „OK” pentru a salva configurația. Adăugați 3 blocuri „AXI GPIO” și 4 blocuri „AXI Timer”. Rulați automatizarea blocului urmată de automatizarea conexiunii pentru S_AXI. Faceți dublu clic pe blocurile GPIO pentru a le configura. Un bloc ar trebui să aibă un canal dual cu o intrare de 4 biți și o ieșire de 4 biți. Faceți aceste conexiuni externe și etichetați-le SW pentru intrare și LED pentru ieșire. Al doilea bloc ar trebui să fie, de asemenea, cu canal dual cu 2 intrări pe 32 de biți. Ultimul bloc GPIO va fi o singură intrare pe 32 de biți. Faceți ieșirea pwm0 din fiecare bloc de temporizator extern. Etichetați-le PWM0, PWM1, PWM2 și PWM3.

Adăugați driverul codificatorului în diagrama bloc și conectați CLK la FCLK_CLK0. Conectați OD0 și OD1 la canalele de intrare ale celui de-al doilea bloc GPIO. Faceți ENC extern și redenumiți ENC_0 în ENC. Adăugați blocul senzor cu ultrasunete și conectați CLK la FCLK_CLK0. Faceți TRIG și ECHO externe și redenumiți TRIG_0 în TRIG și ECHO_0 în ECHO. Conectați RF la al treilea bloc GPIO. Consultați schema bloc furnizată pentru referință.

Faceți clic dreapta pe fișierul de diagramă bloc din panoul Surse și creați un ambalaj HDL. Asigurați-vă că permiteți modificările utilizatorilor. Adăugați fișierul ZYBO_Master.xdc furnizat ca o constrângere. Apăsați „Generați Bitstream” și faceți o pauză de cafea.

Pasul 4: Configurarea mediului de dezvoltare software

Accesați „Fișier” pentru a exporta hardware în setul SDK Vivado. Asigurați-vă că includeți fluxul de biți. Importați proiectul RTOSDemo în „CORTEX_A9_Zynq_ZC702”. Acesta va fi localizat în directorul de instalare FreeRTOS. Creați un nou pachet de asistență pentru bord, selectați biblioteca lwip202. Schimbați BSP-ul de referință din proiectul RTOSDemo cu BSP-ul pe care tocmai l-ați creat *.

* La momentul redactării acestui instructabil, FreeRTOS pare să aibă o eroare la referința BSP corect. Pentru a remedia acest lucru, creați un nou BSP cu aceleași setări ca primul. Schimbați BSP-ul de referință cu cel nou și apoi schimbați-l înapoi la cel vechi după ce nu reușește să construiască. FreeRTOS ar trebui acum să compileze fără erori. Simțiți-vă liber să ștergeți BSP neutilizat.

Pasul 5: Modificați programul demonstrativ

Creați un folder nou numit „drivere” în directorul „src” al RTOSDemo. Copiați gpio.h-ul furnizat. gpio.c, pwm.h, pwm.c, odometer.h, odometer.c, rangefinder.c, rangefinder.h, motor.h și motor.c în directorul „drivere”.

Deschideți main.c și setați mainSELECTED_APPLICATION la 2. Înlocuiți main_lwIP.c sub „lwIP_Demo” cu versiunea actualizată. BasicSocketCommandServer.c sub „lwIP_Demo / apps / BasicSocketCommandServer” trebuie, de asemenea, să fie actualizat cu o nouă versiune. În cele din urmă, navigați la „FreeRTOSv10.1.1 / FreeRTOS-Plus / Demo / Common / FreeRTOS_Plus_CLI_Demos” și înlocuiți Sample-CLI-commands.c cu versiunea furnizată. Construiți proiectul și asigurați-vă că totul se compilează cu succes.

Pasul 6: Firmware Flash către QSPI

Firmware Flash către QSPI
Firmware Flash către QSPI
Firmware Flash către QSPI
Firmware Flash către QSPI
Firmware Flash către QSPI
Firmware Flash către QSPI

Creați un nou proiect de aplicație numit „FSBL” folosind șablonul „Zynq FSBL”. După compilarea proiectului FSBL, creați o imagine de boot a proiectului RTOSDemo. Asigurați-vă că „FSBL / Debug / FSBL.elf” este selectat ca bootloader sub „Partiții imagine de încărcare”. Adăugați manual calea la acest fișier dacă nu este listată.

Mutați jumper-ul JP5 pe ZYBO pe „JTAG”. Utilizați un cablu USB Micro-B pentru a vă conecta computerul la ZYBO. Conectați bateria și porniți ZYBO. Rulați Adept pentru a vă asigura că ZYBO este corect identificat de computer. Faceți clic pe „Program Flash” în Vivado SDK și furnizați căile către fișierul BOOT.bin din RTOSDemo și fișierul FSBL.elf din FSBL. Asigurați-vă că selectați „Verificați după bliț” înainte de a apăsa „Program”. Urmăriți consola pentru a vă asigura că operația intermitentă s-a încheiat cu succes. Apoi, opriți ZYBO și deconectați cablul USB. Mutați jumperul JP5 în „QSPI”.

Pasul 7: Configurați punctul de acces fără fir

Cu bateria încă conectată, conectați-vă la rețeaua Wi-Fi a routerului. SSID-ul și parola implicite ar trebui să fie în partea de jos a routerului. Apoi, navigați la https://tplinkwifi.net și conectați-vă folosind „admin” pentru numele de utilizator și parola. Rulați expertul de configurare rapidă pentru a configura routerul în modul punct de acces cu DHCP activat. Asigurați-vă că actualizați numele de utilizator și parola implicite și pentru dispozitiv. Routerul ar trebui să repornească automat în modul punct de acces după ce ați terminat.

Porniți ZYBO și conectați-vă la router folosind SSID-ul pe care l-ați atribuit. Routerul va apărea cel mai probabil fie pe adresa IP 192.168.0.100, fie pe 192.160.0.101. ZYBO va fi atribuit oricărei adrese pe care routerul nu o are. Pentru a determina rapid adresa IP a routerului, puteți rula „ipconfig” din promptul de comandă din Windows sau „ifconfig” de la terminal în Linux sau MacOS. Dacă sunteți încă conectat la router, veți vedea adresa IP a acestuia afișată lângă interfața wireless. Utilizați aceste informații pentru a determina adresa IP a ZYBO. Pentru a confirma adresa IP a ZYBO, o puteți face ping din linia de comandă sau vă puteți conecta la telnet.

Pasul 8: Rulați programul Java

Rulați programul Java
Rulați programul Java

Descărcați RobotClient.java și compilați fișierul folosind comanda „javac RobotClient.java” din linia de comandă. Rulați comanda „java RobotClient” unde „ip_address” este adresa IP a ZYBO. GUI-ul de control va apărea dacă se stabilește o conexiune reușită între computer și ZYBO. După focalizarea ferestrei, robotul ar trebui să fie controlabil folosind tastele săgeată de pe tastatură. Apăsați butonul de evacuare pentru a încheia sesiunea și deconectați-vă de la robot.

GUI va evidenția tastele care sunt apăsate și va afișa ieșirea motorului în dreapta sus. Contorul de distanță din stânga umple o bară la fiecare 2 metri până la maximum 10 metri.

Pasul 9: Calibrați telemetrul

Comutatoarele de la bordul ZYBO pot fi utilizate pentru a configura telemetrul de la bord. Distanța minimă de detecție d este dată în funcție de intrarea comutatorului i:

d = 50i + 250

Intrarea poate varia între 0 și 15 în pași întregi. Aceasta se traduce printr-o distanță de 0,25 metri până la 1 metru. La distanța minimă, primul LED va începe să clipească. Numărul de LED-uri active este proporțional cu proximitatea obiectului.

Pasul 10: Accesibilitate

Acest robot este foarte ușor accesibil. Datorită simplității controlului său, acesta poate fi controlat complet cu un singur deget. Pentru a îmbunătăți accesibilitatea, ar putea fi adăugat suport pentru dispozitive de intrare suplimentare. Acest lucru ar putea permite utilizărilor cu dizabilități să controleze robotul cu o parte diferită a corpului lor.

Recomandat: