Turinys:

„WiBot“: 10 žingsnių (su nuotraukomis)
„WiBot“: 10 žingsnių (su nuotraukomis)

Video: „WiBot“: 10 žingsnių (su nuotraukomis)

Video: „WiBot“: 10 žingsnių (su nuotraukomis)
Video: Langų valymo robotas Hobot 388 su ultragarsiniu vandens purškikliu 2024, Rugsėjis
Anonim
„WiBot“
„WiBot“

Šioje instrukcijoje išsamiai aprašomas „Wi-Fi“roboto kūrimo procesas ZYBO platformoje. Šiame projekte naudojama realaus laiko operacinė sistema objektų aptikimui, atstumo matavimui ir reaguojančiam valdymui. Šis vadovas apims ZYBO sąsają su išoriniais įrenginiais, individualios programinės įrangos paleidimą ir bendravimą naudojant „Java“programą. Toliau pateikiamas visų pagrindinių šio projekto komponentų sąrašas:

  • 1 ZYBO plėtros valdyba
  • 1 belaidis maršrutizatorius TL-WR802N
  • 1 „Shadow“važiuoklė
  • 2 65 mm ratai
  • 2 140 aps / min pavarų varikliai
  • 2 ratų kodavimo įrenginiai
  • 1 ultragarso jutiklis HC-SR04
  • 1 BSS138 loginio lygio keitiklis
  • 1 L293 H tilto variklio tvarkyklė
  • 1 12V į 5V DC/DC keitiklis
  • 1 2200 mAh LiPo baterija
  • 1 Ethernet kabelis
  • 1 USB Micro-B kabelis
  • 1 Moteriška XT60 jungtis
  • 2 jungiamieji laidai nuo vyrų iki moterų
  • 30 jungiamųjų laidų nuo vyrų iki vyrų
  • 2 10 kΩ rezistoriai
  • 1 Duonos lenta

Be to, tiksliniame kompiuteryje turi būti įdiegta ši programinė įranga:

  • „Xilinx Vivado Design Suite“2018.2
  • „Digilent Adept“2.19.2
  • „FreeRTOS“10.1.1
  • „Java SE“kūrimo rinkinys 8.191

1 žingsnis: Surinkite roboto važiuoklę

Surinkite robotų važiuoklę
Surinkite robotų važiuoklę
Surinkite robotų važiuoklę
Surinkite robotų važiuoklę
Surinkite robotų važiuoklę
Surinkite robotų važiuoklę

Surinkite šešėlinę važiuoklę ir pritvirtinkite reduktorius bei kodavimo įrenginius prie apatinio rėmo. ZYBO, duonos lentą ir ultragarso jutiklį galima montuoti kartu su pateiktomis dalimis, kurias galima atspausdinti 3D formatu ir pritvirtinti prie važiuoklės, naudojant atramas ir dvipusę juostą. Baterija turi būti sumontuota šalia roboto galo, geriausia tarp viršaus ir apatiniai rėmai. Maršrutizatorių pritvirtinkite prie ZYBO, o DC/DC keitiklį - prie duonos lentos. Pritvirtinkite ratus prie reduktorių pačiame gale.

2 žingsnis: vielos elektronika

Laidų elektronika
Laidų elektronika
Laidų elektronika
Laidų elektronika
Laidų elektronika
Laidų elektronika

Prijunkite DC/DC keitiklio įvestį ir išvestį atitinkamai prie dviejų maitinimo bėgių, esančių duonos plokštėje. Jie bus naudojami kaip 12V ir 5V sistemos maitinimo šaltiniai. Prijunkite ZYBO prie 5V bėgelio, kaip parodyta paveikslėlyje. Taip pat naudokite USB Micro-B maitinimo kabelį, kad prijungtumėte maršrutizatorių prie 5 V bėgio. XT60 kabelis turi būti pritvirtintas prie 12 V bėgio. Nejunkite akumuliatoriaus, kol likusi elektronika nėra tinkamai prijungta. Ultragarso jutiklis turi būti prijungtas prie 5 V bėgio. Sukurkite 3.3V bėgelį ant duonos lentos, naudodami ZYBO „Pmod“prievado JC 6 kaištį. Aukštos įtampos loginio keitiklio įvestis turėtų būti prijungta prie 5 V bėgio, o žemos įtampos loginio keitiklio įvestis turėtų būti prijungta prie 3,3 V bėgio. Prijunkite variklio kodavimo įrenginius prie 3,3 V bėgio. Prijunkite variklio vairuotojo VCC1 prie 5 V bėgio ir prijunkite VCC2 prie 12 V bėgelio. Prijunkite visus EN kaiščius prie 5 V ir įžeminkite visus GND kaiščius.

Prijunkite ultragarso jutiklio TRIG ir ECHO kaiščius atitinkamai prie loginio keitiklio HV1 ir HV2. LV1 turėtų būti prijungtas prie JC4, o LV2 - su JC3. Žiūrėkite „Pmod pinouts“diagramą. Prijunkite variklius prie variklio tvarkyklės. Y1 turi būti prijungtas prie teigiamo dešiniojo variklio gnybto, o Y2 - prie neigiamo dešiniojo variklio gnybto. Panašiai Y3 turi būti prijungtas prie kairiojo variklio teigiamo gnybto, o Y4 - prie kairiojo variklio neigiamo gnybto. A1, A2, A3 ir A4 turėtų būti susieti atitinkamai su JB2, JB1, JB4 ir JB3. Žiūrėkite schemą, kurioje rasite PIN kodų skaičių. Prijunkite JC2 prie dešiniojo kodavimo įrenginio ir JC1 prie kairiojo kodavimo įrenginio. Įsitikinkite, kad šiems signalams prijungti prie 3,3 V bėgio naudojami traukiamieji rezistoriai. Neblogai, naudokite eterneto kabelį, kad prijungtumėte ZYBO prie maršrutizatoriaus.

3 žingsnis: sukurkite blokinę schemą „Vivado“

Sukurkite blokinę schemą „Vivado“
Sukurkite blokinę schemą „Vivado“

Sukurkite naują RTL projektą Vivado. Įsitikinkite, kad šiuo metu nenurodykite jokių šaltinių. Ieškokite „xc7z010clg400-1“ir paspauskite „Finish“. Atsisiųskite encoder_driver.sv ir ultrasonic_driver.sv. Įdėkite juos į savo aplankus. Atidarykite „IP Packager“skiltyje „Įrankiai“ir pasirinkite supakuoti nurodytą katalogą. Įklijuokite kelią į aplanką, kuriame yra kodavimo tvarkyklė, ir paspauskite „Kitas“. Spustelėkite „paketas IP“ir pakartokite ultragarso jutiklio tvarkyklės veiksmus. Po to eikite į saugyklų tvarkytuvę, esančią nustatymų meniu IP poskyryje. Pridėkite kelius prie tvarkyklės aplankų ir paspauskite Taikyti, kad įtrauktumėte juos į IP biblioteką.

Sukurkite naują blokinę schemą ir pridėkite „ZYNQ7 Processing System“. Dukart spustelėkite bloką ir importuokite pateiktą failą ZYBO_zynq_def.xml. Skiltyje „MIO konfigūracija“įgalinkite laikmatį 0 ir GPIO MIO. paspauskite „Gerai“, kad išsaugotumėte konfigūraciją. Pridėkite 3 „AXI GPIO“blokus ir 4 „AXI Timer“blokus. Vykdykite blokų automatizavimą, po to - S_AXI ryšio automatizavimą. Dukart spustelėkite GPIO blokus, kad juos sukonfigūruotumėte. Vienas blokas turėtų būti dviejų kanalų su 4 bitų įvestimi ir 4 bitų išvestimi. Padarykite šias jungtis išorines ir pažymėkite jas SW įvestimi ir LED - išvestimi. Antrasis blokas taip pat turėtų būti dviejų kanalų su 2 32 bitų įėjimais. Paskutinis GPIO blokas bus vienas 32 bitų įėjimas. Padarykite pwm0 išvestį iš kiekvieno laikmačio bloko išorinį. Pažymėkite juos PWM0, PWM1, PWM2 ir PWM3.

Pridėkite kodavimo įrenginio tvarkyklę prie blokų schemos ir prijunkite CLK prie FCLK_CLK0. Prijunkite OD0 ir OD1 prie antrojo GPIO bloko įvesties kanalų. Padarykite ENC išorinį ir pervardykite ENC_0 į ENC. Pridėkite ultragarso jutiklio bloką ir prijunkite CLK prie FCLK_CLK0. Padarykite TRIG ir ECHO išorinius ir pervadinkite TRIG_0 į TRIG, o ECHO_0 - į ECHO. Prijunkite RF prie trečiojo GPIO bloko. Žiūrėkite pateiktą blokinę schemą.

Dešiniuoju pelės mygtuku spustelėkite savo blokinės diagramos failą šaltinių srityje ir sukurkite HDL įvyniojimą. Būtinai leiskite redaguoti naudotoją. Pridėkite pateiktą failą ZYBO_Master.xdc kaip apribojimą. Paspauskite „Generate Bitstream“ir padarykite kavos pertraukėlę.

4 žingsnis: nustatykite programinės įrangos kūrimo aplinką

Eikite į „Failas“, jei norite eksportuoti aparatinę įrangą į „Vivado“SDK. Būtinai įtraukite bitų srautą. Importuokite RTOSDemo projektą į „CORTEX_A9_Zynq_ZC702“. Jis bus „FreeRTOS“diegimo kataloge. Sukurkite naują lentos palaikymo paketą, pasirinkite biblioteką lwip202. Pakeiskite RTOSDemo projekte nurodytą BSP į ką tik sukurtą BSP*.

*Rašant šią instrukciją, atrodo, kad „FreeRTOS“turi klaidą, nurodančią teisingą BSP. Norėdami tai išspręsti, sukurkite naują BSP su tais pačiais nustatymais kaip ir pirmasis. Pakeiskite nurodytą BSP į naują ir pakeiskite jį atgal į seną, kai nepavyksta sukurti. „FreeRTOS“dabar turėtų būti sudarytas be klaidų. Nesivaržykite ištrinti nepanaudoto BSP.

5 veiksmas: pakeiskite demonstracinę programą

„RTOSDemo“kataloge „src“sukurkite naują aplanką „tvarkyklės“. Nukopijuokite pateiktą gpio.h. gpio.c, pwm.h, pwm.c, odometer.h, odometer.c, rangefinder.c, rangefinder.h, motor.h ir motor.c failus į „tvarkyklių“katalogą.

Atidarykite main.c ir nustatykite mainSELECTED_APPLICATION į 2. Pakeiskite main_lwIP.c skiltyje „lwIP_Demo“atnaujinta versija. „BasicSocketCommandServer.c“skiltyje „lwIP_Demo/apps/BasicSocketCommandServer“taip pat turi būti atnaujinta nauja versija. Lastely, eikite į „FreeRTOSv10.1.1/FreeRTOS-Plus/Demo/Common/FreeRTOS_Plus_CLI_Demos“ir pakeiskite „Sample-CLI-commands.c“pateiktą versiją. Sukurkite projektą ir įsitikinkite, kad viskas sėkmingai sudaryta.

6 veiksmas: „Flash“programinės įrangos atnaujinimas į QSPI

„Flash“programinė įranga į QSPI
„Flash“programinė įranga į QSPI
„Flash“programinė įranga į QSPI
„Flash“programinė įranga į QSPI
„Flash“programinė įranga į QSPI
„Flash“programinė įranga į QSPI

Sukurkite naują programų projektą „FSBL“, naudodami „Zynq FSBL“šabloną. Sudarę FSBL projektą, sukurkite RTOSDemo projekto įkrovos vaizdą. Įsitikinkite, kad skiltyje „Įkrovos vaizdo skaidiniai“kaip įkrovos parinkiklis pasirinktas „FSBL/Debug/FSBL.elf“. Rankiniu būdu pridėkite šio failo kelią, jei jis nėra sąraše.

Perkelkite JP5 trumpiklį ant ZYBO į „JTAG“. Norėdami prijungti kompiuterį prie ZYBO, naudokite USB Micro-B kabelį. Prijunkite akumuliatorių ir įjunkite ZYBO. Paleiskite „Adept“, kad įsitikintumėte, jog kompiuteris teisingai nustato ZYBO. Spustelėkite „Program Flash“Vivado SDK ir pateikite kelius į failą BOOT.bin RTOSDemo ir FSBL.elf failą FSBL. Prieš paspausdami „Program“, būtinai pasirinkite „Verify after flash“. Stebėkite konsolę, kad įsitikintumėte, jog mirksėjimo operacija sėkmingai baigta. Po to išjunkite ZYBO ir atjunkite USB kabelį. Perkelkite JP5 trumpiklį į „QSPI“.

7 veiksmas: sukonfigūruokite belaidį prieigos tašką

Kai baterija vis dar prijungta, prisijunkite prie maršrutizatoriaus „Wi-Fi“tinklo. Numatytasis SSID ir slaptažodis turi būti maršrutizatoriaus apačioje. Po to eikite į https://tplinkwifi.net ir prisijunkite naudodami „admin“, kad gautumėte vartotojo vardą ir slaptažodį. Paleiskite greitos sąrankos vedlį, kad sukonfigūruotumėte maršrutizatorių prieigos taško režimu, kai įjungtas DHCP. Taip pat būtinai atnaujinkite numatytąjį įrenginio vartotojo vardą ir slaptažodį. Baigęs maršrutizatorius turėtų automatiškai persikrauti į prieigos taško režimą.

Įjunkite ZYBO ir prisijunkite prie maršrutizatoriaus naudodami jūsų priskirtą SSID. Maršrutizatorius greičiausiai pateiks 192.168.0.100 arba 192.160.0.101 IP adresą. ZYBO bus priskirtas nepriklausomai nuo maršrutizatoriaus adreso. Norėdami greitai nustatyti maršrutizatoriaus IP adresą, galite paleisti „ipconfig“iš komandų eilutės „Windows“arba „ifconfig“iš terminalo „Linux“ar „MacOS“. Jei vis dar esate prisijungę prie maršrutizatoriaus, jo belaidžio ryšio sąsajoje matysite jo IP adresą. Naudodami šią informaciją nustatykite ZYBO IP adresą. Norėdami patvirtinti ZYBO IP adresą, galite jį pinginti iš komandinės eilutės arba prisijungti prie jo per telnet.

8 veiksmas: paleiskite „Java“programą

Paleiskite „Java“programą
Paleiskite „Java“programą

Atsisiųskite „RobotClient.java“ir sukompiliuokite failą naudodami komandų eilutės komandą „javac RobotClient.java“. Vykdykite komandą „java RobotClient“, kur „ip_address“yra ZYBO IP adresas. Valdymo sąsaja pasirodys, jei tarp kompiuterio ir ZYBO bus užmegztas sėkmingas ryšys. Sufokusavus langą, robotas turėtų būti valdomas klaviatūros rodyklių klavišais. Norėdami baigti sesiją ir atsijungti nuo roboto, paspauskite pabėgimo mygtuką.

GUI paryškins paspaustus klavišus ir viršutiniame dešiniajame kampe parodys variklio galią. Kairėje esantis atstumo matuoklis užpildo juostą kas 2 metrus, bet ne daugiau kaip 10 metrų.

9 veiksmas: kalibruokite atstumo ieškiklį

ZYBO esančius jungiklius galima naudoti sukonfigūruoti borto nuotolio ieškiklį. Mažiausias aptikimo atstumas d nurodomas kaip jungiklio įvesties i funkcija:

d = 50i + 250

Įvestis sveikų skaičių žingsniais gali skirtis nuo 0 iki 15. Tai reiškia atstumą nuo 0,25 iki 1 metro. Esant minimaliam atstumui, pirmasis šviesos diodas pradės mirksėti. Aktyvių šviesos diodų skaičius yra proporcingas objekto artumui.

10 veiksmas: prieinamumas

Šis robotas yra labai lengvai pasiekiamas. Dėl valdymo paprastumo jį galima visiškai valdyti vienu pirštu. Siekiant pagerinti prieinamumą, galima pridėti papildomų įvesties įrenginių palaikymą. Tai gali leisti neįgaliesiems valdyti robotą kita kūno dalimi.

Rekomenduojamas: