Mundarija:
- 1 -qadam: Vivadoda Erni uchun loyiha o'rnatish
- 2 -qadam: Vivadoda Erni PWM yaratish
- 3 -qadam: Vivadoda Erni TDOA yaratish
- 4 -qadam: Erni o'rash va eksport qilish
- 5 -qadam: Erni qurish
- 6 -qadam: Erni birinchi BSP
- 7 -qadam: FreeRTOS -ning Erni
- 8 -qadam: Erni C kodini import qilish
- 9 -qadam: Erni disk raskadrovka
- 10 -qadam: Erni avtonom qilish
- 11 -qadam: Erni yoqimli qilish
Video: Erni qanday qilish kerak: 11 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
Bu Erni, sizning avtonom ovozingizdan so'ng, Zybo Board yordamida qanday qurish bo'yicha qo'llanma. U quyidagilarni o'z ichiga oladi: Vivadoda loyiha yaratish, FPGA-da PWM-ga o'xshash servo dvigatel drayverlarini yaratish, ikkita ovoz sensori bilan interfeys, IP-ning kelish vaqtidagi farqni yaratish, freeRTOS-dan foydalanish va zybo-ni batareya to'plamidan o'chirish. Bu Cal Poly SLOda real vaqtda operatsion tizimlar sinfining (CPE 439) yakuniy loyihamiz edi.
Uskunalar ro'yxati:
- 1 - ZYBO Zynq 7000 ishlab chiqish kengashi
- 2 - paralaksning uzluksiz aylanishi
- 2 - Ovoz sensori (SparkFun tovush detektori)
- 1 - 5v lityum -ionli USB batareyalar to'plami (taxta uchun)
- 4 - AA batareyalar (servo uchun)
- 1 - AA batareya to'plami (4 ta batareya uyasi)
- 1 - Micro USB kabeli
- 1 - non paneli
- ko'p - Erkak -erkak simlari
- 1 - Servo shassisi
Dasturiy ta'minot talablari:
- Xilinx Vivado Design Suite 2016.2
- Digilent Adept 2.16.1
1 -qadam: Vivadoda Erni uchun loyiha o'rnatish
- Sehrgar paydo bo'ladi
- Keyingiga bosing
-
Loyihaga keyingi nom bering
- Hech qachon bo'sh joy bo'lgan loyiha nomi yoki katalog yo'lini ishlatmang !!!!!
- Bu RTL loyihasi bo'ladi.
- Biz manbalarni aniqlamoqchi emasmiz
-
Keyingi tugmachasini bosish orqali biz qismlar sahifasiga o'tamiz. Biz ZYNQ XC7Z010-1CLG400C dan foydalanmoqdamiz.
- Vivadoda Zybo oldindan belgilangan taxtalardan biri sifatida ro'yxatga olinmagan. Tanlang: "qismlar", keyin xc7z010clg400-1 ni qidiring.
- Agar siz noto'g'ri qismini noto'g'ri tanlasangiz, siz chiplarni osongina o'zgartirishingiz mumkin: Asboblar -> Loyiha sozlamalari -> Umumiy va "Loyiha qurilmasi" o'ng tomonidagi nuqtalarni bosing.
-
Blok dizaynini yaratish -ni bosing.
Hozir uni design_1 deb nomlang
- Siz yashil chiziqni ko'rasiz, unda IP qo'shing, ustiga bosing.
-
Zynq qidiring.
- ZYNQ7 ishlov berish tizimini ikki marta bosing,
- Bu blok bizning dizayn dizaynimizda paydo bo'ladi.
- Siz yashil blokni ko'rasiz, unda Run Block Automation yoziladi, ustiga bosing.
- Quyida zybo_zynq_def.xml -ni yuklab oling.
-
Vivadoda "XPS sozlamalarini import qilish" ni bosing va "zybo_zynq_def.xml" -ni tanlang.
Bu Vivado blokining konfiguratsiyasini Zybo platasining barcha ichki qurilmalari va pinli topshiriqlari bilan oldindan to'ldiradi
-
ZYNQ blokini ikki marta bosing.
-
MIO konfiguratsiyasi
- Taymer 0 ni yoqish (Ilova protsessor birligi ostida - img 1)
- Watchdog-ni yoqish (1-ilovali protsessor birligi ostida)
- GPIO-> GPIO MIO -ni yoqish (dastur protsessor birligi ostida - img 2)
- GPIO-> ENET Reset-ni yoqish (I/U atrof-muhit birliklari ostida- img 2)
-
Soat konfiguratsiyasi
FCLK0 -ni o'chirish (PL mato soatlari ostida - img 3)
-
- OK ni bosing.
-
Endi "Avtomatlashtirish blokini ishga tushiring".
Signallar haqida ba'zi savollar bo'ladi, OK deb ayting
-
"HDL o'rash vositasini yaratish" ni bosing.
Biz foydalanuvchining tahrirlashiga ruxsat berish uchun hosil qilingan qog'ozni nusxalashni xohlaymiz
- OK ni bosing.
2 -qadam: Vivadoda Erni PWM yaratish
Bu qadam AXI kutubxonasi orqali yuboriladigan kirishlar bilan PWM IP hosil qiladi.
-
Orqa fonni o'ng tugmasini bosib, "IP qo'shish" tugmachasini bosib, AXI GPIO blokini yarating.
qidirish satriga "AXI_GPIO" kiriting va ushbu paketni tanlang
-
Yangi axi_gpio_0 blokini ikki marta bosish orqali IP-ni qayta sozlang
- GPIO ostida, GPIO kengligini 2 ga o'rnating. Bu bitlar har bir PWM moduli misolini haydash uchun PWM_ON signal bo'ladi.
- "Ikki kanalli kanalni yoqish" tugmasini bosing
- GPIO 2 ostida, GPIO kengligini 2 ga o'rnating. Bu bitlar har bir PWM moduli misolining yo'nalishini belgilash uchun PWM_FW signal bo'ladi.
-
GPIO deb nomlangan axi_gpio_0 chiqish portini o'ng tugmasini bosing va "Tashqi ko'rinish" ni tanlang.
- GPIO deb nomlangan yangi chiqishni bosing va asboblar panelidagi "xususiyatlar" yorlig'iga o'ting va nomini PWM_ON ga o'zgartiring.
- GPIO2 deb nomlangan yangi chiqishni bosing va asboblar panelidagi "xususiyatlar" yorlig'iga o'ting va nomini PWM_FW ga o'zgartiring.
-
Blok -diagramma ustidagi yashil bannerda Connection Automation -ni ishga tushirish -ni tanlang.
Agar siz portlarni qo'lda ulasangiz, AXI manzillari sozlanmagan bo'lishi mumkin, bu esa keyinchalik aloqa bilan bog'liq muammolarga olib keladi
-
Yangi Navigator panelida yangi maxsus IP -blok yaratish uchun loyiha menejeri -> Manba qo'shish -ni tanlang
- "Dizayn manbalarini qo'shish yoki yaratish" -ni tanlang va keyingisini bosing
- "Fayl yaratish" ni bosing, fayl turini "SystemVerilog" ga o'zgartiring va fayl nomi maydoniga "pwm" kiriting, so'ng OK ni bosing.
- Finish tugmasini bosing
-
"OK" tugmasini bosish orqali "Modulni aniqlash" oynasini e'tiborsiz qoldiring (keyinroq ularni qayta yozamiz)
agar ishonchingiz komilmi deb so'rasa, Ha tugmasini bosing
-
Manbalar ko'rinishida pwm.sv-ni ikki marta bosing ("Dizayn manbalari/design_1_wrapper" da joylashgan)
SystemVerilog kodini quyida biriktirilgan pwm.txt faylidan nusxa ko'chiring/joylashtiring
3 -qadam: Vivadoda Erni TDOA yaratish
Bu qadam TDOA IP -ni yaratadi, uning chiqishini AXI kutubxonasi orqali o'qish mumkin
-
Orqa fonni o'ng tugmasini bosib, "IP qo'shish" tugmachasini bosib, AXI GPIO blokini yarating.
qidirish satriga "AXI_GPIO" kiriting va ushbu paketni tanlang
-
Yangi axi_gpio_1 blokini ikki marta bosish orqali IP-ni qayta sozlang
- GPIO ostida "Hamma kirishlar" katagiga belgi qo'ying va GPIO kengligini 32 ga sozlang. Bu avtobus ikkita sensorlar orasidagi kelish vaqtidagi farq bo'ladi.
- axi_gpio_1 blokining ichida GPIO portining yonidagi + belgisini bosing va gpio_io_i [31: 0] ni oching.
-
Gpio_io_i [31: 0] deb belgilangan axi_gpio_1 chiqish portini o'ng tugmasini bosing va "Tashqi ko'rinish" ni tanlang.
Gpio_io_i [31: 0] deb belgilangan yangi kirishni bosing va asboblar panelidagi "xususiyatlar" yorlig'iga o'ting va nomini TDOA_val qilib o'zgartiring
-
Blok -diagramma ustidagi yashil bannerda Connection Automation -ni ishga tushirish -ni tanlang.
Agar siz portlarni qo'lda ulasangiz, AXI manzillari sozlanmagan bo'lishi mumkin, bu esa keyinchalik aloqa muammolariga olib keladi
-
Yangi Navigator panelida yangi maxsus IP -blok yaratish uchun loyiha menejeri -> Manba qo'shish -ni tanlang
- "Dizayn manbalarini qo'shish yoki yaratish" -ni tanlang va keyingisini bosing
- "Fayl yaratish" ni bosing, fayl turini "SystemVerilog" ga o'zgartiring va fayl nomi maydoniga "tdoa" ni kiriting, so'ng OK ni bosing.
- Finish tugmasini bosing
-
"OK" tugmachasini bosib, "Modulni aniqlash" oynasini e'tiborsiz qoldiring (biz ularni keyinroq yozamiz)
agar ishonchingiz komilmi deb so'rasa, Ha tugmasini bosing
-
Manbalar ko'rinishida tdoa.sv-ni ikki marta bosing ("Dizayn manbalari/design_1_wrapper" da joylashgan)
SystemVerilog kodini quyida biriktirilgan tdoa.txt faylidan nusxa ko'chiring/joylashtiring
4 -qadam: Erni o'rash va eksport qilish
- Blok diagramma biriktirilgan skrinshotga o'xshashligini tekshiring
-
Manbalar ko'rinishida design_1.bd-ni o'ng tugmasini bosing va "HDL o'rash moslamasini yaratish …" -ni tanlang.
- "Foydalanuvchilarni tahrirlash uchun ishlab chiqarilgan chiqishni nusxalash" -ni tanlang va "OK" tugmasini bosing.
- Kodni quyida biriktirilgan design_1_wrapper.txt -dan nusxa oling va uni design_1_wrapper.v kodining o'rniga joylashtiring.
- design_1_wrapper.v -ni saqlang
-
Manbalar ko'rinishida ZYBO_Master.xdc faylini Cheklovlar/constrs1 ostida ikki marta bosing.
- Kodni quyida biriktirilgan ZYBO_Master.txt -dan nusxa oling va uni ZYBO_Master.xdc kodining o'rniga joylashtiring.
-
Quyidagi kirish/chiqish pinlariga e'tibor bering:
- L15: Chap dvigatel uchun PWM signali (Zybo -dagi Pmod JA2)
- L14: o'ng dvigatel uchun PWM signali (Zybo -dagi Pmod JA8)
- V12: ovoz sensori 1dan eshik kirish (Zybo -dagi Pmod JE1)
- K16: ovoz sensori 2 dan eshik kirish (Zybo -dagi Pmod JE2)
-
Navigatorlar panelida Dastur va disk raskadrovka ostida "Bitstream yaratish" ni bosing
Agar siz buni darhol amalga oshirilgan deb hisoblasangiz, ehtimol unday emas. jiddiy, choy tayyorlang
-
Fayl-> Eksport-> Uskuna yaratish-ni bosing
"Bitstream qo'shishni" belgilang va OK tugmasini bosing
- Fayl-> SDK-ni ishga tushirish-ni bosing
5 -qadam: Erni qurish
- Servolarni servo shassisiga joylashtiring.
-
Servo ma'lumotlari jadvalidan so'ng quyidagilarni bajaring:
- servolarning erini Zybo JA Pmod -dagi topraklama pinlariga ulang (biriktirilgan pinout rasmiga qarang)
-
servo quvvat simini AA batareya to'plamiga ulang
Biz aniqladikki, servolar Zybo Vdd -ga ulanganida, taxta juda ko'p tokni tortadi, bu esa taxtaning uzluksiz tiklanishiga olib keladi
- kirish signal pimlarini Zyboning tegishli chiqish pinlariga ulang (chapda: JA2, o'ngda: JA8)
- tovush sensorlarini shassining old tomoniga, oldinga qarab, iloji boricha bir -biriga yaqin tuting
-
ovoz sensorlarini ulash uchun ovoz sensori ulanish qo'llanmasidan foydalaning
- erga va har bir tovush sensorining Vdd pinlarini erga va Zyboning JE Pmod -dagi Vdd pinlarini simga ulang (biriktirilgan pinout rasmiga qarang)
- chap ovoz sensori Gate pinini JE1 ga ulang
- to'g'ri ovoz sensori Gate pinini JE2 ga ulang
6 -qadam: Erni birinchi BSP
-
Biz yaratgan platformani to'ldirish uchun BSP yarating.
Siz buni Fayl -> Yangi -> Kengashni qo'llab -quvvatlash paketi orqali olishingiz mumkin
-
BSPni yaratishda sizga yordam beradigan sehrgar ochiladi.
- Biz bu BSPni biz yaratgan Platformamiz bilan bog'lamoqchimiz, shuning uchun
- Uskuna platformasi biz yaratgan platformaga mos kelishi kerak (1 -rasmga qarang)
- Bizning CPU _0 protsessor bo'ladi.
- Finish tugmasini bosing
- Ochilgan oynada bsp -ni kiritish uchun lwip141 -ni o'chirib qo'yganingizga ishonch hosil qiling (img 2 -ga qarang)
7 -qadam: FreeRTOS -ning Erni
-
Sourceforge -dan FreeRTOS -ning so'nggi versiyasini yuklab oling.
Agar yuklab olish bajariladigan bo'lsa, FreeRTOS fayllarini loyiha katalogingizga chiqarish uchun uni ishga tushiring
- SDK -ni ochiq saqlang va Fayl -> Import -ni bosing.
- Biz "Umumiy"-"Mavjud ish maydonidan" ni bosmoqchimiz, keyin FreeRTOS yuklangan joyga o'tishni xohlaymiz.
-
Bizning demo FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702 da joylashgan bo'ladi. Ushbu papkani tanlagandan so'ng, biz uchta loyihaning ochilishini ko'rishimiz kerak (bizning kodimiz (OS), bu BSP va HW platformasi).
Faqat RTOSDemo -ni joriy ish joyingizga import qiling
-
Barcha "ko'k" papkalar loyihalarida havola qilingan BSP o'zgaradi
- Sichqonchaning o'ng tugmachasini bosing va "Ishonchli BSP -ni o'zgartirish" -ni tanlang.
- Zybo uchun hozirgina yaratgan BSP ni tanlang
- Xilinx -ning SDK Blue papkalarida kodni tahrirlash haqiqiy kod loyihalari.
8 -qadam: Erni C kodini import qilish
- RTOSDemo/src katalogida main.c faylini shu erga biriktirilgan holda yozing.
- Main_sound.c faylini RTOSDemo/src katalogiga nusxalash.
9 -qadam: Erni disk raskadrovka
- Ishga tushirish -> Tuzatish konfiguratsiyalarini tanlang
- Chap panelda yangi tizim tuzatuvchisi ishga tushadi
-
Maqsadli sozlash yorlig'ida,
"Butun tizimni asl holatiga qaytarish" -ni tanlang, shunda u ham, ps7_init ham tanlanadi
-
Endi Ilovalar yorlig'ini tanlang.
- "Ilovani yuklab olish" -ni tanlang
- Cortexa9_0 yadrosini "dastur kirishda to'xtash" ga sozlang.
- Qo'llash va disk raskadrovka -ni bosing.
- Nosozliklarni tuzatish jarayonida xatolar yo'qligini tekshiring
- Robotni diqqat bilan kuzatib turing, dastur to'xtash nuqtalariga tegmasdan, ishga tushguncha, Resume tugmasini bosing
- Robot endi burilib, baland tovushlar tomon harakatlanishi kerak. Vajjaj!
10 -qadam: Erni avtonom qilish
- Loyihangiz ishga tayyor bo'lgach (siz disk raskadrovka vositasi orqali hech qanday muammosiz ishlashingiz mumkin), siz uni kartadagi flesh xotiraga yuklashga tayyormiz.
-
"Birinchi darajali yuklash yuklovchisi" (FSBL) loyihasi deb nomlangan loyihani yarating va ishga tushganda loyiha fayllarini (bit oqimi va OS) yuklash uchun sizning taxtangizga kerak bo'lgan barcha ko'rsatmalarni o'z ichiga oladi.
- Tanlang: Fayl-> Yangi-> Ilova loyihasi va quyidagi oyna paydo bo'lishi kerak.
- O'zingiz xohlagan narsani nomlang (ya'ni "FSBL")
- Ishlayotgan apparat platformasi ekanligiga ishonch hosil qiling
- Keyingisini bosing (Finish tugmachasini bosmang)
- Zynq FSBL shablonini tanlang
- Tugatish -ni bosing.
- Yaratish jarayoni tugagandan so'ng, agar siz Project Explorer oynasida quyidagi ikkita yangi papkani ko'rsangiz, hamma narsa ishlaganligini bilib olasiz.
-
Yuklash tasvirini yarating Endi siz yuklash tasvirini yaratishingiz kerak bo'ladi.
- Loyiha papkasini o'ng tugmasini bosing (bu holda meniki "RTOSDemo" deb nomlanadi)
- Ochiladigan menyuda "Yuklash rasmini yaratish" ni bosing
-
Agar hamma narsa to'g'ri bog'langan bo'lsa, loyiha qanday fayllarga muhtojligini biladi va quyida ko'rib turganingizdek quyidagi oyna paydo bo'ladi (asosiysi, sizda yuklash tasviri bo'limida 3 ta bo'lim, yuklovchi, bitli fayl va loyihalaringiz.elf fayli)).
Agar bunday bo'lmasa, sizning loyihangizni bog'lashda noto'g'ri narsa bo'lishi mumkin. Loyiha papkalari tegishli BSP bilan bog'langanligiga ishonch hosil qiling
- "Rasm yaratish" tugmasini bosing
-
Dasturiy ta'minotni bajarishning oxirgi bosqichi - bu avval yaratilgan tasvirni taxtaning xotirasiga o'chirish
- SDK-ning asosiy asboblar panelidan Xilinx Tools-> Program Flash Memory-ni tanlang
- To'g'ri apparat platformasi tanlanganligini va tasvir faylining yo'li oldingi bosqichda yaratilgan. BIN faylini to'g'ri ko'rsatayotganligini tekshiring.
- Flash turidan "qspi singl" ni tanlang
- Butunlikni ta'minlash uchun "Yorug'likdan keyin tekshirish" belgisini qo'ying, lekin bu kerak emas
- Kengashni sozlang Nihoyat, BootROM ishga tushirilganda qspi -dan yuklashni tanlash uchun taxtalarni dasturlash rejimiga o'tish moslamasi (JP5) to'g'ri o'rnatilganligiga ishonch hosil qilishingiz kerak.
- Endi qurilmani quvvat bilan aylantiring va "Logic Configuration Done LED" (LED 10) yashil rangda yonishini ta'minlang.
11 -qadam: Erni yoqimli qilish
- Mo'ynali kiyimlar
- Ko'p mo'yna
- Katta ko'zlar!
- … bosh kiyim
Tavsiya:
Jangovar robotni qanday qilish kerak (har qanday mahorat darajasi uchun): 8 qadam
Jangovar robotni qanday qilish kerak (har qanday mahorat darajasi uchun): jangovar robototexnika bilan shug'ullanishni boshlaganimda, "qadamma -qadam" yo'qligini topdim. jangovar robotni tuzish yo'llari, shuning uchun Internetda juda ko'p tadqiqotlar olib borganimdan so'ng, men uning bir qismini jangovar robotni yaratish bo'yicha qo'llanma yaratish uchun yig'ishga qaror qildim, shunda kimdir
13003 tranzistoridan foydalangan holda kuchlanish nazorat qilish sxemasini qanday qilish kerak: 6 qadam
13003 tranzistorli kuchlanish nazorat qilish sxemasini qanday qilish kerak: do'stim, bugun men o'zgaruvchan kuchlanishli elektr ta'minotini ta'minlaydigan kuchlanish nazorat qilish sxemasini yaratmoqchiman. Elektron loyihalarni ishlab chiqsak, kontaktlarning zanglashiga olib kelishi uchun bizga har xil kuchlanish kerak bo'ladi. Men buni qilmoqchiman
ARDUINO NANO/MINI QANDAY QILISH KERAK - Bootloader -ni qanday yoqish kerak: 5 qadam
ARDUINO NANO/MINI QANDAY QILISH KERAK | Bootloader -ni qanday yoqish kerak: Men sizga ko'rsatma beraman, Scratch -dan Arduino MINI -ni qanday yasashni ko'rsataman, bu ko'rsatmada yozilgan protsedura yordamida siz o'zingizning loyihangiz talablariga mos keladigan har qanday arduino taxtasini yasashingiz mumkin
Harorat, PH va erigan kislorod uchun ma'lumotlarni qayd qilish vositasini qanday qilish kerak: 11 qadam (rasmlar bilan)
Harorat, PH va erigan kislorod uchun ma'lumotlarni qayd qilish vositasini qanday qilish kerak: Maqsadlar: ≤ 500 dollarga ma'lumot yozuvchi yasang. U harorat, pH va DO ma'lumotlarini vaqt tamg'asi va I2C aloqasi yordamida saqlaydi. Nima uchun I2C (Inter-Integrated Circuit)? Bir nechta sensorlarni bir qatorga yig'ish mumkin, chunki ularning har birida
Tez yong'in rejimini qanday bepul qilish kerak (sizga faqat tornavida kerak): 10 qadam
Tez yong'in rejimini qanday bepul qilish kerak (sizga faqat tornavida kerak): Bugun men sizga xbox uskunasida tez o't o'chirish rejimini o'rgataman: xavfsizlik teshigiga ega bitta torx T8 tornavida YoKI kichik. tekis bosh. Bu safar men Titan Torx t8 -dan foydalanaman, xavfsizlik teshigiga ega, uni Autozone -da sotib olish mumkin.