Talaan ng mga Nilalaman:

WiBot: 10 Hakbang (na may Mga Larawan)
WiBot: 10 Hakbang (na may Mga Larawan)

Video: WiBot: 10 Hakbang (na may Mga Larawan)

Video: WiBot: 10 Hakbang (na may Mga Larawan)
Video: ТЕПЕРЬ НЕ ПРОПАДУ 10-ть самоделок ВЫРУЧАТ ГДЕ УГОДНО! 2024, Setyembre
Anonim
WiBot
WiBot

Itinuturo ng detalyadong ito ang proseso para sa pagbuo ng isang Wi-Fi robot sa ZYBO platform. Gumagamit ang proyektong ito ng isang real-time na operating system para sa pagtuklas ng bagay, pagsukat ng distansya, at kontrol na tumutugon. Saklaw ng gabay na ito ang pag-interfacing ng ZYBO sa mga peripheral, pagpapatakbo ng pasadyang firmware, at pakikipag-usap sa pamamagitan ng Java application. Ang sumusunod ay isang listahan ng lahat ng mga pangunahing sangkap na kinakailangan para sa proyektong ito:

  • 1 Lupon ng Pagpapaunlad ng ZYBO
  • 1 TL-WR802N Wireless Router
  • 1 Shadow Chassis
  • 2 65mm Gulong
  • 2 140rpm Gearmotors
  • 2 Mga Encoder ng Gulong
  • 1 HC-SR04 Ultrasonic Sensor
  • 1 BSS138 Logic Level Converter
  • 1 L293 H-Bridge Motor Driver
  • 1 12V hanggang 5V DC / DC Converter
  • 1 2200mAh LiPo Baterya
  • 1 Ethernet Cable
  • 1 USB Micro-B Cable
  • 1 Konektor na Babae XT60
  • 2 Mga Lalaki-hanggang-Babae na Mga Jumper Wires
  • 30 Mga Male-to-Male Jumper Wires
  • 2 10kΩ Mga Resistor
  • 1 Breadboard

Bilang karagdagan, ang sumusunod na software ay dapat na mai-install sa target na computer:

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

Hakbang 1: Magtipon ng Robot Chassis

Magtipon ng Chassis ng Robot
Magtipon ng Chassis ng Robot
Magtipon ng Chassis ng Robot
Magtipon ng Chassis ng Robot
Magtipon ng Chassis ng Robot
Magtipon ng Chassis ng Robot

Ipunin ang mga chassis ng anino at ikabit ang mga gearmotor at encoder sa ilalim na frame. Ang ZYBO, breadboard, at ultrasonic sensor ay maaaring mai-mount sa mga ibinigay na bahagi na maaaring naka-print at naayos na 3D sa chassis gamit ang mga standoff at double-sided tape. Ang baterya ay dapat na mai-mount malapit sa likuran ng robot at mas mabuti sa pagitan ng tuktok at ilalim na mga frame. I-mount ang router malapit sa ZYBO at ang converter ng DC / DC na malapit sa breadboard. Ikabit ang mga gulong sa mga gearmotor sa pinakadulo.

Hakbang 2: Wire Electronics

Electronics ng Wire
Electronics ng Wire
Electronics ng Wire
Electronics ng Wire
Electronics ng Wire
Electronics ng Wire

Ikonekta ang input at output ng DC / DC converter sa dalawang mga riles ng kuryente sa breadboard ayon sa pagkakabanggit. Ang mga ito ay magsisilbing 12V at 5V supplies para sa system. Ikonekta ang ZYBO sa 5V rail tulad ng ipinakita sa larawan. Gumamit ng isang USB Micro-B supply cable upang ikonekta ang router sa 5V rail din. Ang XT60 cable ay dapat na nakakabit sa 12V rail. Huwag isaksak ang baterya hanggang sa ang iba pang mga electronics ay mai-wire nang wasto. Ang sensor ng ultrasonic ay dapat na naka-wire sa 5V rail. Lumikha ng isang 3.3V rail sa breadboard gamit ang pin 6 ng Pmod port JC sa ZYBO. Ang input ng mataas na boltahe ng converter ng lohika ay dapat na naka-wire sa 5V rail habang ang mababang input ng boltahe ng converter ng lohika ay dapat na ma-wire sa 3.3V rail. I-wire ang mga encoder ng motor sa riles ng 3.3V. Ikonekta ang VCC1 ng driver ng motor sa 5V rail at ikonekta ang VCC2 sa 12V rail. Itali ang lahat ng mga EN pin sa 5V at i-ground ang lahat ng mga pin ng GND.

Ikonekta ang mga TRIG at ECHO na pin ng ultrasonic sensor sa HV1 at HV2 ng converter ng lohika ayon sa pagkakabanggit. Ang LV1 ay dapat na naka-wire sa JC4 at ang LV2 ay dapat na naka-wire sa JC3. Sumangguni sa tsart para sa mga Pmod pinout. Ikonekta ang mga motor sa driver ng motor. Ang Y1 ay dapat na konektado sa positibong terminal ng tamang motor at ang Y2 ay dapat na konektado sa negatibong terminal ng tamang motor. Katulad nito, ang Y3 ay dapat na konektado sa positibong terminal ng kaliwang motor at ang Y4 ay dapat na konektado sa negatibong terminal ng kaliwang motor. Ang A1, A2, A3, at A4 ay dapat na mapa sa JB2, JB1, JB4, at JB3 ayon sa pagkakabanggit. Sumangguni sa eskematiko para sa mga numero ng pin. Wire JC2 sa kanang encoder at JC1 sa kaliwang encoder. Tiyaking ginagamit ang mga pull-up resistor upang itali ang mga signal na ito sa 3.3V rail. Panghuli, gamitin ang ethernet cable upang ikonekta ang ZYBO sa router.

Hakbang 3: Lumikha ng Block Diagram sa Vivado

Lumikha ng Block Diagram sa Vivado
Lumikha ng Block Diagram sa Vivado

Lumikha ng isang bagong proyekto sa RTL sa Vivado. Tiyaking hindi tumutukoy sa anumang mga mapagkukunan sa ngayon. Maghanap para sa "xc7z010clg400-1" at pindutin ang hit. Mag-download ng encoder_driver.sv at ultrasonic_driver.sv. Ilagay ang mga ito sa kanilang sariling mga folder. Buksan ang IP Packager sa ilalim ng "Mga Tool" at piliing i-package ang isang tinukoy na direktoryo. I-paste ang landas sa folder na naglalaman ng driver ng encoder at pindutin ang "Susunod". I-click ang "package IP" at ulitin ang mga proseso para sa driver ng ultrasonic sensor. Pagkatapos, mag-navigate sa manager ng repository sa ilalim ng subseksyon ng IP sa menu ng mga setting. Idagdag ang mga landas sa mga folder ng driver at pindutin ang mag-apply upang isama ang mga ito sa IP library.

Lumikha ng isang bagong diagram ng block at idagdag ang "ZYNQ7 Processing System". I-double click ang block at i-import ang ibinigay na ZYBO_zynq_def.xml file. Sa ilalim ng "MIO Configuration", paganahin ang Timer 0 at GPIO MIO. pindutin ang "OK" upang mai-save ang pagsasaayos. Magdagdag ng 3 "AXI GPIO" na mga bloke at 4 na "AXI Timer" na mga bloke. Patakbuhin ang pag-automate ng block na sinusundan ng automation ng koneksyon para sa S_AXI. I-double click ang mga bloke ng GPIO upang mai-configure ang mga ito. Ang isang bloke ay dapat na dalawahan na channel na may 4-bit na input at isang 4-bit na output. Gawing panlabas ang mga koneksyon na ito at lagyan ng label ang mga ito para sa input at LED para sa output. Ang pangalawang bloke ay dapat ding dalawahang channel na may 2 32-bit input. Ang huling bloke ng GPIO ay magiging isang solong 32-bit na input. Gawin ang pwm0 output mula sa bawat timer block panlabas. Lagyan ng label ang mga ito PWM0, PWM1, PWM2, at PWM3.

Idagdag ang driver ng encoder sa diagram ng block at ikonekta ang CLK sa FCLK_CLK0. Ikonekta ang OD0 at OD1 sa mga input channel ng pangalawang bloke ng GPIO. Gawing panlabas ang ENC at palitan ang pangalan ng ENC_0 sa ENC. Idagdag ang bloke ng ultrasonic sensor at ikonekta ang CLK sa FCLK_CLK0. Gawing panlabas ang TRIG at ECHO at palitan ang pangalan ng TRIG_0 sa TRIG at ECHO_0 sa ECHO. Ikonekta ang RF sa pangatlong bloke ng GPIO. Sumangguni sa ibinigay na block diagram para sa sanggunian.

Mag-right click sa iyong block diagram file sa pane ng Mga mapagkukunan at lumikha ng isang HDL na pambalot. Tiyaking payagan ang mga pag-edit ng gumagamit. Idagdag ang ibinigay na ZYBO_Master.xdc file bilang isang pagpigil. Pindutin ang "Bumuo ng Bitstream" at magpahinga.

Hakbang 4: Pag-setup ng Kapaligiran sa Pag-unlad ng Software

Pumunta sa ilalim ng "File" upang i-export ang hardware sa Vivado SDK. Tiyaking isama ang bitstream. I-import ang proyekto ng RTOSDemo sa loob ng "CORTEX_A9_Zynq_ZC702". Makikita ito sa loob ng direktoryo ng pag-install ng FreeRTOS. Lumikha ng isang bagong Package ng Suporta ng Board piliin ang lwip202 library. Palitan ang na-refer na BSP sa proyekto ng RTOSDemo sa BSP na iyong nilikha lamang *.

* Sa oras ng pagsulat ng Instructable na ito, ang FreeRTOS ay tila may isang bug sa pagsangguni sa tamang BSP. Upang malunasan ito, lumikha ng isang bagong BSP na may parehong mga setting tulad ng una. Baguhin ang na-refer na BSP sa bago at pagkatapos ay baguhin ito pabalik sa luma pagkatapos na nabigo itong bumuo. Ang FreeRTOS ay dapat na mag-ipon nang walang mga error. Huwag mag-atubiling tanggalin ang hindi nagamit na BSP.

Hakbang 5: Baguhin ang Demo Program

Lumikha ng isang bagong folder na tinatawag na "mga driver" sa ilalim ng direktoryo ng "src" ng RTOSDemo. Kopyahin ang ibinigay na gpio.h. gpio.c, pwm.h, pwm.c, odometer.h, odometer.c, rangefinder.c, rangefinder.h, motor.h, at motor.c file sa direktoryo ng "mga driver".

Buksan ang main.c at itakda ang mainSELected_APPLICATION sa 2. Palitan ang main_lwIP.c sa ilalim ng "lwIP_Demo" ng na-update na bersyon. Ang BasicSocketCommandServer.c sa ilalim ng "lwIP_Demo / apps / BasicSocketCommandServer" ay dapat ding mai-update sa isang bagong bersyon. Panghuli, mag-navigate sa "FreeRTOSv10.1.1 / FreeRTOS-Plus / Demo / Common / FreeRTOS_Plus_CLI_Demos" at palitan ang Sample-CLI-commands.c ng ibinigay na bersyon. Buuin ang proyekto at tiyaking matagumpay na naipon ang lahat.

Hakbang 6: Flash Firmware sa QSPI

Flash Firmware sa QSPI
Flash Firmware sa QSPI
Flash Firmware sa QSPI
Flash Firmware sa QSPI
Flash Firmware sa QSPI
Flash Firmware sa QSPI

Lumikha ng isang bagong Project Project na tinatawag na "FSBL" gamit ang template na "Zynq FSBL". Matapos maipon ang proyekto ng FSBL, lumikha ng isang imahe ng boot ng proyekto ng RTOSDemo. Siguraduhin na ang "FSBL / Debug / FSBL.elf" ay napili bilang bootloader sa ilalim ng "Boot image partitions". Manu-manong idagdag ang landas sa file na ito kung hindi ito nakalista.

Ilipat ang jumper ng JP5 sa ZYBO sa "JTAG". Gumamit ng isang USB Micro-B cable upang ikonekta ang iyong computer sa ZYBO. Ikonekta ang baterya at i-on ang ZYBO. Patakbuhin ang Adept upang matiyak na ang ZYBO ay wastong kinilala ng computer. I-click ang "Program Flash" sa Vivado SDK at ibigay ang mga landas sa BOOT.bin file sa RTOSDemo at ang FSBL.elf file sa FSBL. Tiyaking piliin ang "I-verify pagkatapos ng flash" bago pindutin ang "Program". Panoorin ang console upang matiyak na matagumpay na nakumpleto ang flashing na operasyon. Pagkatapos, patayin ang ZYBO at idiskonekta ang USB cable. Ilipat ang jumper ng JP5 sa "QSPI".

Hakbang 7: I-configure ang Wireless Access Point

Sa koneksyon pa rin ng baterya, kumonekta sa Wi-Fi network ng router. Ang default na SSID at password ay dapat na nasa ilalim ng router. Pagkatapos, mag-navigate sa https://tplinkwifi.net at pag-login gamit ang "admin" para sa username at password. Patakbuhin ang mabilis na pag-setup ng wizard upang mai-configure ang router sa access point mode na pinagana ang DHCP. Tiyaking i-update ang default username at password para sa aparato pati na rin. Ang router ay dapat na awtomatikong mag-reboot sa access point mode pagkatapos mong matapos.

Lakas sa ZYBO at kumonekta sa router gamit ang itinalaga mong SSID. Ang router ay malamang na makabuo sa alinman sa IP address 192.168.0.100 o 192.160.0.101. Ang ZYBO ay itatalaga sa alinmang address na wala sa router. Upang mabilis na matukoy ang IP address ng router, maaari mong patakbuhin ang "ipconfig" mula sa command prompt sa windows o "ifconfig" mula sa terminal sa Linux o MacOS. Kung nakakonekta ka pa rin sa router, makikita mo ang IP address na ipinakita sa tabi ng iyong wireless interface. Gamitin ang impormasyong ito upang matukoy ang IP address ng ZYBO. Upang kumpirmahin ang IP address ng ZYBO, maaari mong mai-ping ito mula sa linya ng utos o kumonekta dito sa pamamagitan ng telnet.

Hakbang 8: Patakbuhin ang Program sa Java

Patakbuhin ang Programang Java
Patakbuhin ang Programang Java

I-download ang RobotClient.java at ipagsama ang file gamit ang command na "javac RobotClient.java" mula sa linya ng utos. Patakbuhin ang utos na "java RobotClient" kung saan ang "ip_address" ay ang IP address ng ZYBO. Ang control GUI ay mag-popup kung ang isang matagumpay na koneksyon ay itinatag sa pagitan ng computer at ng ZYBO. Matapos itutuon ang window, ang robot ay dapat na makontrol gamit ang mga arrow key sa keyboard. Pindutin ang pindutan ng pagtakas upang wakasan ang sesyon at idiskonekta mula sa robot.

Itatampok ng GUI ang mga key na pinindot at ipapakita ang output ng motor sa kanang bahagi sa itaas. Ang distansya meter sa kaliwa ay pumupuno sa isang bar bawat 2 metro hanggang sa maximum na 10 metro.

Hakbang 9: I-calibrate ang Rangefinder

Ang mga switch sa onboard na ZYBO ay maaaring magamit upang mai-configure ang onboard rangefinder. Ang pinakamaliit na distansya ng pagtuklas d ay ibinibigay bilang isang pagpapaandar ng switch ng switch i:

d = 50i + 250

Ang pag-input ay maaaring mag-iba sa pagitan ng 0 hanggang 15 sa mga integer na hakbang. Isinalin ito sa isang saklaw ng distansya na 0.25 metro hanggang 1 metro. Sa minimum na distansya, ang unang LED ay magsisimulang magpikit. Ang bilang ng mga LED na aktibo ay proporsyonal sa kalapitan ng bagay.

Hakbang 10: Pag-access

Ang robot na ito ay napakadali ma-access. Dahil sa pagiging simple ng kontrol nito, maaari itong ganap na makontrol sa pamamagitan lamang ng isang daliri. Upang mapabuti ang kakayahang mai-access, maaaring idagdag ang suporta para sa karagdagang mga input device. Pinapayagan nitong gamitin ang mga hindi pinagana upang makontrol ang robot na may ibang bahagi ng kanilang katawan.

Inirerekumendang: