Агуулгын хүснэгт:
- Алхам 1: Эрнид зориулж Вивадо хотод төсөл тохируулах
- Алхам 2: Vivado -д Эрнигийн ХБХ үүсгэх
- Алхам 3: Vivado -д Ernie -ийн TDOA үүсгэх
- Алхам 4: Эрни боож экспортлох
- Алхам 5: Эрни бүтээх
- Алхам 6: Эрнигийн анхны BSP
- Алхам 7: FreeRTOS -ийн Эрни
- Алхам 8: Эрнигийн С кодыг импортлох
- Алхам 9: Эрни дибаг хийх
- Алхам 10: Эрниг бие даасан болгох
- Алхам 11: Эрниг хөөрхөн болгох
Видео: Эрни хэрхэн хийх вэ: 11 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:01
Энэ бол Zybo самбар ашиглан роботыг дагадаг Ernie роботыг бүтээх заавар юм. Үүнд: Vivado-д төсөл зохиох, FPGA-д PWM-тэй төстэй servo мотор драйверуудыг бий болгох, хоёр дууны мэдрэгчтэй интерфэйс, ирэх IP-ийн цагийн зөрүүг бий болгох, freeRTOS-ийг ашиглах, zybo-ийг зайны хайрцгаар ажиллуулах зэрэг болно. Энэ бол Cal Poly SLO дахь бодит цагийн үйлдлийн системийн ангийн (CPE 439) бидний эцсийн төсөл байв.
Тоног төхөөрөмжийн жагсаалт:
- 1 - ZYBO Zynq 7000 хөгжлийн самбар
- 2 - Параллакс тасралтгүй эргүүлэх Servo
- 2 - Дууны мэдрэгч (SparkFun дууны илрүүлэгч)
- 1 - 5в лити -ион USB батерейны багц (самбар дээр)
- 4 - АА батерей (servo хувьд)
- 1 - АА батерейны багц (зайны 4 үүртэй)
- 1 - Микро USB кабель
- 1 - Талхны самбар
- олон - Эрэгтэй эрэгтэй утас
- 1 - Servo явах эд анги
Програм хангамжийн шаардлага:
- Xilinx Vivado Design Suite 2016.2
- Digilent Adept 2.16.1
Алхам 1: Эрнид зориулж Вивадо хотод төсөл тохируулах
- Шидтэн гарч ирнэ
- Дараах дээр дарна уу
-
Төслийн дараагийн нэр
- Хоосон зайтай төслийн нэр эсвэл лавлах замыг хэзээ ч бүү ашигла !!!!!
- Энэ нь RTL төсөл байх болно.
- Бид эх сурвалжийг тодруулахыг хүсэхгүй байна
-
Дараагийн товчлуур дээр дарж бид хэсгийн хуудас руу орно. Бид ZYNQ XC7Z010-1CLG400C ашиглаж байна.
- Vivado нь Zybo-г урьдчилан тодорхойлсон самбаруудын жагсаалтад оруулаагүй болно. "Эд анги" -г сонгоод xc7z010clg400-1-ийг хайж олоорой.
- Хэрэв та буруу хэсгийг буруу сонговол та чипсээ хялбархан сольж болно: Багаж хэрэгсэл -Төслийн тохиргоо -> Ерөнхий ба "Төхөөрөмжийн төхөөрөмж" -ийн баруун талд байгаа цэгүүдийг дарна уу.
-
Блок дизайн үүсгэх дээр дарна уу.
Үүнийг одоогоор design_1 гэж нэрлэнэ үү
- IP нэмэх, дарна уу гэсэн ногоон баар гарч ирнэ.
-
Zynq хайх.
- ZYNQ7 боловсруулах систем дээр хоёр товшино уу,
- Энэ блок нь манай блокны загварт харагдах болно.
- Та Run Block Automation гэж хэлдэг ногоон баарыг харах болно.
- Доорх zybo_zynq_def.xml татаж авна уу.
-
Vivado дээр "XPS тохиргоог импортлох" дээр дараад "zybo_zynq_def.xml" -ийг сонгоно уу.
Энэ нь Vivado блокийн тохиргоог Zybo самбарын бүх дагалдах нэмэлт төхөөрөмжүүд болон зүү даалгавруудыг урьдчилан бөглөнө
-
ZYNQ блок дээр давхар товшино уу.
-
MIO -ийн тохиргоо
- Таймер 0 -ийг идэвхжүүлэх (Хэрэглээний процессорын нэгжийн доор - img 1)
- Watchdog-ийг идэвхжүүлнэ үү (Хэрэглээний процессорын нэгжийн img 1 дор)
- GPIO-> GPIO MIO -ийг идэвхжүүлнэ үү (Програмын процессорын нэгжийн доор - img 2)
- GPIO-> ENET Reset-ийг идэвхжүүлэх (I/O-ийн дагалдах хэрэгслийн доор- img 2)
-
Цагны тохиргоо
FCLK0 -г идэвхгүй болгох (PL Даавуун цаг дор - img 3)
-
- Ok дарна уу.
-
Одоо "Блок автоматжуулалтыг ажиллуулна уу".
Дохионы талаар зарим асуулт гарч ирэх болно, за гэж хэлээрэй
-
"HDL боолт үүсгэх" дээр дарна уу.
Хэрэглэгчийн засварыг зөвшөөрөхийн тулд бид үүсгэсэн боодлыг хуулбарлахыг хүсч байна
- OK дарна уу.
Алхам 2: Vivado -д Эрнигийн ХБХ үүсгэх
Энэ алхам нь AXI номын сангаар илгээсэн оролт бүхий ХОУХШ -ийн IP үүсгэх болно.
-
Арын дэвсгэр дээр хулганы баруун товчийг дараад "IP нэмэх" дээр дарж AXI GPIO блок үүсгэнэ үү.
Хайлтын талбарт "AXI_GPIO" гэж бичээд энэ багцыг сонгоно уу
-
Шинэ axi_gpio_0 блокыг давхар товшиж IP-г дахин тохируулна уу
- GPIO дор GPIO -ийн өргөнийг 2 болгож тохируулна уу. Эдгээр битүүд нь PWM_ON модуль бүрийг жолоодох PWM_ON дохио болно.
- "Хоёр сувгийг идэвхжүүлэх" дээр дарна уу.
- GPIO 2 -ийн доор GPIO -ийн өргөнийг 2 болгож тохируулна уу. Эдгээр битүүд нь PWM_FW дохио байх бөгөөд PWM модулийн жишээ бүрийн чиглэлийг тохируулна.
-
GPIO гэсэн axi_gpio_0 гаралтын порт дээр хулганы баруун товчийг дараад "Гадаад болгох" гэснийг сонгоно уу.
- GPIO гэсэн шинэ гаралт дээр дарж, зүүн талын хэрэгслийн самбар дээрх "шинж чанарууд" таб руу очоод нэрийг PWM_ON болгон өөрчилнө үү.
- GPIO2 гэсэн шинэ гаралт дээр дарж, зүүн талын хэрэгслийн самбар дээрх "шинж чанарууд" таб руу очоод нэрийг PWM_FW болгон өөрчилнө үү.
-
Блок диаграмын дээрх ногоон хошуунд Connection Automation -ийг сонгоно уу.
Хэрэв та портуудыг гараар холбосон бол AXI хаягийг тохируулаагүй байж магадгүй бөгөөд энэ нь дараа нь харилцааны асуудалд хүргэж болзошгүй юм
-
Flow Navigator Pane дээр төслийн менежер -> Эх сурвалж нэмэх сонголтыг сонгоод шинэ өөрчлөн IP блок үүсгэнэ
- "Дизайн эх сурвалж нэмэх эсвэл үүсгэх" -г сонгоод дараа нь дарна уу
- "Файл үүсгэх" дээр дарж, файлын төрлийг "SystemVerilog" болгон өөрчилж, файлын нэрийн талбарт "pwm" гэж бичээд OK дарна уу.
- Finish дээр дарна уу
-
OK товчийг дарж Модулийг тодорхойлох цонхыг үл тоомсорлоорой (бид үүнийг дараа нь дарж бичих болно)
Хэрэв та итгэлтэй байгаа эсэхийг асуувал Тийм гэж дарна уу
-
Эх сурвалж таб дээр pwm.sv дээр хоёр товшино уу ("Дизайн эх сурвалж/design_1_wrapper" хэсэгт байрладаг)
Доор хавсаргасан pwm.txt файлаас SystemVerilog кодыг бүхэлд нь хуулж/буулгана уу
Алхам 3: Vivado -д Ernie -ийн TDOA үүсгэх
Энэ алхам нь TDOA IP үүсгэх бөгөөд гаралтыг AXI номын сангаар унших боломжтой болно
-
Арын дэвсгэр дээр хулганы баруун товчийг дараад "IP нэмэх" дээр дарж AXI GPIO блок үүсгэнэ үү.
Хайлтын талбарт "AXI_GPIO" гэж бичээд энэ багцыг сонгоно уу
-
Шинэ axi_gpio_1 блокыг давхар товшиж IP-г дахин тохируулна уу
- GPIO -ийн доор "All Inputs" хайрцгийг шалгаад GPIO -ийн өргөнийг 32 болгоно. Энэ автобус нь хоёр мэдрэгчийн ирэх цагийн зөрүү байх болно.
- axi_gpio_1 блок дотор GPIO портын хажууд байгаа + дээр дарж gpio_io_i [31: 0] -г харуулна.
-
Gpio_io_i [31: 0] гэсэн axi_gpio_1 гаралтын порт дээр хулганы баруун товчийг дараад "Гадаад болгох" -ыг сонгоно уу.
Gpio_io_i [31: 0] гэсэн шинэ оролтыг дарж, зүүн талын хэрэгслийн самбар дээрх "шинж чанарууд" таб руу очоод нэрийг TDOA_val болгон өөрчилнө үү
-
Блок диаграмын дээрх ногоон хошуунд Connection Automation -ийг сонгоно уу.
Хэрэв та портуудыг гараар холбосон бол AXI хаягийг тохируулаагүй байж магадгүй бөгөөд энэ нь дараа нь харилцааны асуудалд хүргэж болзошгүй юм
-
Flow Navigator Pane дээр төслийн менежер -> Эх сурвалж нэмэх сонголтыг сонгоод шинэ захиалгат IP блок үүсгэнэ
- "Дизайн эх сурвалж нэмэх эсвэл үүсгэх" -г сонгоод дараа нь дарна уу
- "Файл үүсгэх" дээр дарж, файлын төрлийг "SystemVerilog" болгон өөрчилж, файлын нэрийн талбарт "tdoa" гэж бичээд OK дарна уу.
- Finish дээр дарна уу
-
OK товчийг дарж Модулийг тодорхойлох цонхыг үл тоомсорлоорой (бид үүнийг дараа нь дарж бичих болно)
Хэрэв та итгэлтэй байгаа эсэхийг асуувал Тийм гэж дарна уу
-
Эх сурвалж таб дээр tdoa.sv дээр хоёр товшино уу ("Дизайн эх сурвалж/design_1_wrapper" хэсэгт байрладаг)
Доор хавсаргасан tdoa.txt файлаас SystemVerilog кодыг бүхэлд нь хуулж буулгана уу
Алхам 4: Эрни боож экспортлох
- Блок диаграм нь хавсаргасан дэлгэцийн зураг шиг харагдаж байгаа эсэхийг шалгаарай
-
Эх сурвалж таб дээрээс design_1.bd дээр хулганы баруун товчийг дараад "HDL боодол үүсгэх …" -г сонгоно уу.
- "Хэрэглэгчийн засварыг зөвшөөрөхийн тулд үүсгэсэн гаралтыг хуулах" гэснийг сонгоод "OK" дээр дарна уу.
- Доор хавсаргасан design_1_wrapper.txt дээрх кодыг хуулж, үүсгэсэн design_1_wrapper.v кодын оронд буулгана уу.
- design_1_wrapper.v хадгална уу
-
Эх сурвалж таб дээр Constraints/constrs1 дор ZYBO_Master.xdc файлыг давхар товшино уу.
- Доор хавсаргасан ZYBO_Master.txt -аас кодыг хуулж, одоо байгаа ZYBO_Master.xdc кодын оронд буулгана уу.
-
Дараах оролт/гаралтын зүүг анхаарна уу.
- L15: Зүүн хөдөлгүүрт зориулсан PWM дохио (Zybo дээрх Pmod JA2)
- L14: Зөв хөдөлгүүрт зориулсан PWM дохио (Zybo дээрх Pmod JA8)
- V12: 1 -р дууны мэдрэгчээс хаалганы оролт (Zybo дээрх Pmod JE1)
- K16: 2 -р дууны мэдрэгчээс орох хаалга (Zybo дээрх Pmod JE2)
-
Flow Navigator Pane дээр Program and Debug хэсэгт "Bitstream үүсгэх" дээр дарна уу
Хэрэв та үүнийг шууд хийсэн гэж бодож байвал тийм биш байх. нухацтай, цай хий
-
Файл-> Экспорт-> Тоног төхөөрөмж үүсгэх дээр дарна уу
"Bitstream оруулах" -ыг шалгаад OK дарна уу
- Файл-> SDK-г ажиллуулах дээр дарна уу
Алхам 5: Эрни бүтээх
- Сервүүдийг servo явах эд анги руу холбоно уу.
-
Сервүүдийн мэдээллийн хүснэгтийг дагаж дараах зүйлийг хийнэ үү.
- Servo -ийн газардуулгыг Zybo -ийн JA Pmod дээрх газардуулгатай холбоно уу (хавсаргасан хавчаарын зургийг үзнэ үү)
-
servo -ийн тэжээлийн зүүг AA батерейны багцад холбоно уу
Серво нь Zybo -ийн Vdd -тэй холбогдсон үед самбар хэт их гүйдэл авдаг бөгөөд энэ нь самбарыг байнга дахин тохируулдаг болохыг олж мэдсэн
- оролтын дохионы зүүг Zybo -ийн зохих гаралтын тээглүүртэй холбоно уу (зүүн: JA2, баруун: JA8)
- дууны мэдрэгчийг явах эд ангийн урд талд урагш харуулан холбож, аль болох ойр байлга
-
дууны мэдрэгчийг нэгтгэхийн тулд дууны мэдрэгчийн холбох гарын авлагыг ашиглана уу
- Дууны мэдрэгч бүрийн газар, Vdd тээглүүрийг газардуулж, Zybo -ийн JE Pmod дээрх Vdd тээглүүрийг холбоно уу (хавсаргасан pinout зургийг үзнэ үү)
- зүүн дууны мэдрэгчийн Gate pin -ийг JE1 руу холбоно уу
- зөв дууны мэдрэгчийн Gate зүүг JE2 руу холбоно уу
Алхам 6: Эрнигийн анхны BSP
-
Бидний саяхан үүсгэсэн платформыг дуусгахын тулд BSP үүсгэнэ үү.
Та үүнийг File -> New -> Board Support Package -ээр дамжуулан авах боломжтой
-
BSP -ийг үүсгэхэд туслах шидтэн гарч ирнэ.
- Бид энэхүү BSP -ийг дөнгөж бий болгосон Платформтойгоо уяхыг хүсч байна
- Тоног төхөөрөмжийн платформ нь бидний үүсгэсэн платформтой нийцэх ёстой (img 1 -ийг үзнэ үү)
- Манай CPU бол _0 CPU байх болно.
- Finish дээр дарна уу
- Гарч ирэх цонхонд өөрийн bsp -ийг оруулахын тулд lwip141 -ийг хасахаа мартуузай (img 2 -ийг үзнэ үү).
Алхам 7: FreeRTOS -ийн Эрни
-
Sourceforge -аас хамгийн сүүлийн үеийн FreeRTOS хувилбарыг татаж аваарай.
Хэрэв татан авалт нь гүйцэтгэх боломжтой бол FreeRTOS файлуудыг өөрийн төслийн лавлахад задлахын тулд үүнийг ажиллуулна уу
- SDK -ийг нээлттэй байлгаад Файл -> Импорт дээр дарна уу.
- Бид General-> Байгаа ажлын талбараас дарж, дараа нь FreeRTOS-ийг татаж авсан газар руугаа очихыг хүсч байна.
-
Манай демо FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702 дээр байрлана. Энэ фолдерыг сонгохдоо бид гурван төсөл гарч ирэх болно (бидний код (OS), энэ нь BSP ба HW платформ).
ЗӨВХӨН RTOSDemo -г өөрийн одоогийн ажлын талбарт импортлох
-
Бүх "цэнхэр" фолдерын төслүүд дээр иш татсан BSP -ийг өөрчилдөг
- Баруун товчлуур дээр дараад "Лавлах BSP -ийг өөрчлөх" -ийг сонгоно уу.
- Zybo -д зориулж саяхан үүсгэсэн BSP -ийг сонгоно уу
- Xilinx -ийн SDK Blue хавтаснуудад код засварлах нь бодит кодын төслүүд юм.
Алхам 8: Эрнигийн С кодыг импортлох
- RTOSDemo/src лавлахад байгаа main.c файлыг энд хавсаргасан main.c файл дээр дарж бичнэ үү.
- Main_sound.c файлыг RTOSDemo/src директор руу хуулах.
Алхам 9: Эрни дибаг хийх
- Run -> Debug Configurations -ийг сонгоно уу
- Зүүн талын самбар дээр системийн дибаг хийгчийн шинэ ажиллуулна уу
-
Target Setup таб дээр,
"Системийг бүхэлд нь дахин тохируулах" -ыг сонгоод ингэснээр тэр болон ps7_init хоёулаа сонгогдоно
-
Одоо Application табыг сонгоно уу.
- "Аппликешн татаж авах" -ыг сонгоно уу.
- Cortexa9_0 цөмийг "Хөтөлбөрт нэвтрэх үед зогсоох" болгож тохируулна уу.
- Apply and Debug дээр дарна уу.
- Дебаг хийх явцад алдаа гараагүй эсэхийг шалгаарай
- Роботыг сайтар ажиглаж байгаарай, програмыг ямар ч тасалдалгүй ажиллуулах хүртэл Resume товчийг дарна уу
- Робот одоо эргэж, чанга дуу чимээ рүү чиглэх ёстой. Заа!
Алхам 10: Эрниг бие даасан болгох
- Таны төсөл бэлэн болмогц (та дибаг хийгчээр дамжуулан ямар ч асуудалгүйгээр ажиллуулж болно) та үүнийг самбар дээрх флаш санах ойд ачаалахад бэлэн байна.
-
"Эхний шатны ачаалагч дуудагч" (FSBL) төсөл гэж нэрлэгддэг төслийг үүсгэн байгуулж, төслийн файлуудаа (битийн урсгал болон OS) эхлүүлэх үед ачаалахад шаардлагатай бүх зааврыг агуулсан болно.
- Сонгох: Файл-> Шинэ-> Програмын төсөл ба дараах цонх гарч ирнэ.
- Үүнийг хүссэнээрээ нэрлэ (жишээ нь "FSBL")
- Тоног төхөөрөмжийн платформ нь таны хамтран ажиллаж байгаа эсэхийг шалгаарай
- Дараахыг дарна уу (Дуусгах товчийг бүү дар)
- Zynq FSBL загварыг сонгоно уу
- Дуусгах дээр дарна уу.
- Үүсгэх процесс дууссаны дараа Project Explorer цонхноос дараах хоёр шинэ хавтсыг харвал бүх зүйл ажилласан эсэхийг мэдэх болно.
-
Ачаалах дүрс үүсгэх Одоо та ачаалах дүрсийг үүсгэх хэрэгтэй болно.
- Төслийнхөө хавтас дээр хулганы баруун товчийг дарна уу (энэ тохиолдолд миний нэрийг "RTOSDemo" гэж нэрлэдэг)
- Унждаг жагсаалтаас "Ачаалах дүрс үүсгэх" дээр дарна уу
-
Хэрэв бүх зүйл зөв холбогдсон бол төсөл танд ямар файл хэрэгтэй болохыг мэдэх бөгөөд доорх цонхыг харах болно.).
Хэрэв тийм биш бол таны төслийг холбоход алдаа гарсан байж магадгүй юм. Төслийн фолдерууд нь холбогдох BSP -тэй холбогдсон эсэхийг шалгаарай
- "Зураг үүсгэх" товчийг дарна уу
-
Програм хангамж дээр хийх хамгийн сүүлийн алхам бол өмнө нь үүсгэсэн дүрсийг самбарын санах ойд шилжүүлэх явдал юм
- SDK-ийн үндсэн хэрэгслийн мөрөөс Xilinx Tools-> Program Flash Memory-ийг сонгоно уу
- Тоног төхөөрөмжийн зөв платформыг сонгосон бөгөөд зургийн файлын замыг өмнөх алхам дээр үүсгэсэн. BIN файл руу зөв зааж өгсөн эсэхийг шалгаарай.
- Flash төрлөөс "qspi single" -ийг сонгоно уу
- Бүрэн бүтэн байдлыг баталгаажуулахын тулд "Flash хийсний дараа баталгаажуулах" гэснийг чагтална уу, гэхдээ энэ шаардлагагүй
- Удирдах зөвлөлөө тохируулах Эцэст нь та BootROM -ийг ажиллуулах үед qspi -аас ачаалахаар тохируулагдсан байх ёстой.
- Төхөөрөмжийг асааж, "Логик тохиргоог хийсэн LED" (LED 10) нь ногоон асах болно.
Алхам 11: Эрниг хөөрхөн болгох
- Үслэг
- Маш олон үслэг эдлэл
- Том нүд!
- … дээд малгай
Зөвлөмж болгож буй:
Бидний дунд дагах аюулгүй байдлын хайрцгийг хэрхэн хийх вэ - Цахилгааны утас хийх даалгавар: 7 алхам
Цахилгааны утас хийх даалгавар: Аюулгүй байдлын хайрцгийг хэрхэн яаж хийх вэ
Хэрхэн гагнуур хийх талхны самбар хийх вэ: 7 алхам
Хэрхэн гагнуур хийх вэ? Талхны самбар: Би электроникийг хобби гэж үздэг хүүхэд юм. Өөрийнхөө талхны самбар хийж, сэтгэгдлээ үлдээгээрэй. Олох: oluwadimimu342
Arduino UNO ашиглан дрон хэрхэн хийх вэ - Микроконтроллер ашиглан квадрокоптер хийх: 8 алхам (зурагтай)
Arduino UNO ашиглан дрон хэрхэн хийх вэ | Микроконтроллер ашиглан квадрокоптер хийх: Танилцуулга Миний Youtube сувагт зочлоорой Drone бол худалдан авахад маш үнэтэй хэрэгсэл юм. Энэ нийтлэлд би үүнийг хэрхэн хямд үнээр хийх талаар ярилцах болно. Та яаж ийм үнээр хямд үнээр өөрийн гараар хийх вэ … Энэтхэгт бүх материал (мотор, ESC
ARDUINO NANO/MINI -ийг ХЭРХЭН ХИЙХ ВЭ - Ачаалагчийг хэрхэн шатаах вэ: 5 алхам
ARDUINO NANO/MINI -ийг ХЭРХЭН ХИЙХ ВЭ | Bootloader -ийг хэрхэн яаж шатаах вэ: Энэхүү зааварт би Scratch -аас Arduino MINI -ийг хэрхэн яаж хийхийг зааж өгөх болно. Энэхүү зааварт бичигдсэн журмыг ашиглан өөрийн хүссэн төслийн шаардлагад нийцүүлэн ямар ч arduino самбар хийж болно. Илүү сайн ойлгохын тулд видеог үзээрэй
Салхины хүчээр ажилладаг LED -ийг видео бичлэг хийх төхөөрөмжөөр хэрхэн яаж хийх вэ: 13 алхам
Салхины хүчээр ажилладаг LED -ийг видео бичлэг хийх төхөөрөмжөөр хэрхэн яаж хийх вэ: Энэхүү заавар нь хуучин видео бичлэгийн төхөөрөмж, салхин дугуйнаас салхины хүчээр ажилладаг LED -ийг хэрхэн яаж хийхийг тайлбарлах болно. Хэрэв та VCR байхгүй бол хуучин CD-Rom хөтчийг ашиглаж болно. Хэрэв та үүнийг CD-Rom хөтөч дээрээс хийх талаар хичээл сонирхож байгаа бол үүнийг миний дээрээс олж болно