Isi kandungan:
- Langkah 1: Menyiapkan Projek di Vivado untuk Ernie
- Langkah 2: Membuat PWM Ernie di Vivado
- Langkah 3: Membuat TDOA Ernie di Vivado
- Langkah 4: Membungkus dan Mengeksport Ernie
- Langkah 5: Membangun Ernie
- Langkah 6: BSP Pertama Ernie
- Langkah 7: Ernie FreeRTOS
- Langkah 8: Mengimport Kod C Ernie
- Langkah 9: Menyahdayakan Ernie
- Langkah 10: Menjadikan Ernie Berdikari
- Langkah 11: Menjadikan Ernie Comel
Video: Cara Membuat Ernie: 11 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:07
Ini adalah tutorial bagaimana membina Ernie, suara autonomi anda yang mengikuti robot, menggunakan Zybo Board. Ini akan merangkumi bagaimana: membuat projek di Vivado, membuat pemacu motor servo seperti PWM di FPGA, antara muka dengan dua sensor bunyi, membuat perbezaan masa kedatangan IP, menggunakan freeRTOS, dan menjalankan zybo dari pek bateri. Ini adalah projek terakhir kami untuk kelas Sistem Operasi Masa Nyata (CPE 439) di Cal Poly SLO.
Senarai peralatan:
- 1 - Lembaga Pembangunan ZYBO Zynq 7000
- 2 - Servo Putaran Berterusan Parallax
- 2 - Sensor Bunyi (Pengesan Bunyi SparkFun)
- Pek bateri Lithium Ion USB 1 - 5v (untuk papan)
- 4 - Bateri AA (untuk servos)
- 1 - pek bateri AA (tanpa slot bateri)
- 1 - Kabel USB mikro
- 1 - Papan Roti
- banyak - Kabel Lelaki hingga Lelaki
- 1 - casis servo
Keperluan perisian:
- Xilinx Vivado Design Suite 2016.2
- Digilent Adept 2.16.1
Langkah 1: Menyiapkan Projek di Vivado untuk Ernie
- Ahli sihir akan muncul
- Klik Seterusnya
-
Seterusnya namakan projek tersebut
- Jangan sekali-kali menggunakan nama projek atau laluan direktori yang mempunyai ruang di dalamnya !!!!!
- Ini akan menjadi projek RTL.
- Kami tidak mahu menentukan sumber
-
Mengklik Seterusnya, kita sampai ke halaman Bahagian. Kami menggunakan ZYNQ XC7Z010-1CLG400C.
- Vivado tidak menyenaraikan Zybo sebagai salah satu papan yang ditentukan sebelumnya. Pilih: "bahagian" kemudian cari xc7z010clg400-1.
- Sekiranya anda memilih bahagian yang salah secara tidak sengaja, anda boleh menukar cip dengan mudah: Alat -> Tetapan Projek -> Umum dan klik titik di sebelah kanan "Peranti Projek"
-
Klik Buat Reka Bentuk Blok.
Namakannya design_1 buat masa ini
- Anda akan melihat bar hijau yang bertuliskan Tambah IP, klik padanya.
-
Cari Zynq.
- Klik dua kali Sistem Pemprosesan ZYNQ7,
- Blok ini akan muncul dalam reka bentuk blok kami.
- Anda akan melihat bar hijau yang bertuliskan Run Block Automation, klik padanya.
- Muat turun zybo_zynq_def.xml di bawah.
-
Di Vivado, klik "Import XPS Settings" dan pilih "zybo_zynq_def.xml"
Ini akan mengemas kini konfigurasi blok Vivado dengan semua periferal dan pin yang dipasang di papan Zybo
-
Klik dua kali pada blok ZYNQ.
-
Konfigurasi MIO
- Dayakan Pemasa 0 (di bawah Unit Pemproses Aplikasi - img 1)
- Dayakan Pengawas (di bawah Unit Pemproses Aplikasi- img 1)
- Dayakan GPIO-> GPIO MIO (di bawah Unit Pemproses Aplikasi - img 2)
- Dayakan GPIO-> ENET Reset (di bawah I / O Peripherals- img 2)
-
Konfigurasi Jam
Lumpuhkan FCLK0 (di bawah Jam Fabric PL - img 3)
-
- Klik Ok.
-
"Jalankan Automasi Blok" sekarang.
Akan ada beberapa soalan mengenai isyarat, katakan OK
-
Klik "Hasilkan Pembungkus HDL".
Kami ingin menyalin pembungkus yang dihasilkan untuk membolehkan pengeditan pengguna
- Klik OK.
Langkah 2: Membuat PWM Ernie di Vivado
Langkah ini akan menghasilkan IP PWM dengan input dihantar melalui perpustakaan AXI.
-
Buat blok AXI GPIO dengan mengklik kanan latar belakang, dan mengklik "tambah IP"
taip "AXI_GPIO" ke dalam bar carian, dan pilih pakej ini
-
Sesuaikan semula IP dengan mengklik dua kali blok axi_gpio_0 baru
- di bawah GPIO, tetapkan lebar GPIO ke 2. Bit ini akan menjadi isyarat PWM_ON untuk mendorong setiap contoh modul PWM.
- klik "aktifkan saluran dua"
- di bawah GPIO 2, tetapkan lebar GPIO ke 2. Bit ini akan menjadi isyarat PWM_FW untuk menetapkan arah setiap contoh modul PWM.
-
Klik kanan pada port output axi_gpio_0 berlabel GPIO, dan pilih "Buat Luaran"
- Klik pada output baru berlabel GPIO, dan arahkan ke tab "sifat" di bar alat kiri, dan ubah namanya menjadi PWM_ON
- Klik pada output baru berlabel GPIO2, dan arahkan ke tab "sifat" di bar alat kiri, dan ubah nama menjadi PWM_FW
-
Pilih Jalankan Automasi Sambungan dalam sepanduk hijau di atas rajah blok.
Sekiranya anda menyambungkan port secara manual, alamat AXI mungkin tidak dikonfigurasikan, menyebabkan masalah komunikasi di kemudian hari
-
Di Flow Navigator Pane, pilih pengurus projek -> Tambah Sumber untuk membuat blok IP khusus baru
- pilih "tambah atau buat sumber reka bentuk", dan tekan seterusnya
- klik "buat fail", ubah jenis file menjadi "SystemVerilog", dan ketik "pwm" ke dalam bidang nama fail, kemudian klik OK
- klik Selesai
-
abaikan tetingkap Define Module dengan menekan OK (kami akan menimpanya kemudian)
jika ia bertanya adakah anda pasti, klik Ya
-
Pada tab sumber, klik dua kali pwm.sv (terletak di "Sumber Reka Bentuk / reka bentuk_1_wrapper")
Salin / tampal keseluruhan kod SystemVerilog dari fail pwm.txt yang dilampirkan di bawah
Langkah 3: Membuat TDOA Ernie di Vivado
Langkah ini akan menghasilkan IP TDOA yang outputnya dapat dibaca melalui perpustakaan AXI
-
Buat blok AXI GPIO dengan mengklik kanan latar belakang, dan mengklik "tambah IP"
taip "AXI_GPIO" ke dalam bar carian, dan pilih pakej ini
-
Sesuaikan semula IP dengan mengklik dua kali blok axi_gpio_1 baru
- di bawah GPIO, tandakan kotak "Semua Input", dan tetapkan lebar GPIO ke 32. Bas ini akan menjadi perbezaan waktu ketibaan antara kedua sensor.
- di dalam blok axi_gpio_1, klik + di sebelah port GPIO untuk mendedahkan gpio_io_i [31: 0].
-
Klik kanan pada port output axi_gpio_1 berlabel gpio_io_i [31: 0], dan pilih "Buat Luaran"
Klik pada input baru berlabel gpio_io_i [31: 0], dan arahkan ke tab "sifat" di bar alat kiri, dan ubah namanya menjadi TDOA_val
-
Pilih Jalankan Automasi Sambungan dalam sepanduk hijau di atas rajah blok.
Sekiranya anda menyambungkan port secara manual, alamat AXI mungkin tidak dikonfigurasikan, menyebabkan masalah komunikasi di kemudian hari
-
Di Panel Aliran Navigator, pilih pengurus projek -> Tambah Sumber untuk membuat blok IP khusus baru
- pilih "tambah atau buat sumber reka bentuk", dan tekan seterusnya
- klik "buat fail", ubah jenis fail menjadi "SystemVerilog", dan ketik "tdoa" ke dalam bidang nama fail, kemudian klik OK
- klik Selesai
-
abaikan tetingkap Define Module dengan menekan OK (kami akan menimpanya kemudian)
jika ia bertanya adakah anda pasti, klik Ya
-
Di tab sumber, klik dua kali tdoa.sv (terletak di "Sumber Reka Bentuk / reka bentuk_1_wrapper")
Salin / tampal keseluruhan kod SystemVerilog dari fail tdoa.txt yang dilampirkan di bawah
Langkah 4: Membungkus dan Mengeksport Ernie
- Sahkan bahawa rajah blok kelihatan seperti tangkapan skrin yang dilampirkan
-
Di tab sumber, klik kanan design_1.bd dan pilih "Buat HDL Wrapper …"
- Pilih "Salin output yang dihasilkan untuk membenarkan pengeditan pengguna", kemudian tekan "OK"
- Salin kod dari design_1_wrapper.txt yang dilampirkan di bawah, dan tampalkannya di tempat kod design_1_wrapper.v yang dihasilkan
- simpan design_1_wrapper.v
-
Pada tab sumber, klik dua kali fail ZYBO_Master.xdc di bawah Kekangan / konstruksi1
- Salin kod dari ZYBO_Master.txt yang dilampirkan di bawah, dan tampalkannya di tempat kod ZYBO_Master.xdc yang ada
-
Perhatikan pin input / output berikut:
- L15: Isyarat PWM untuk motor kiri (Pmod JA2 di Zybo)
- L14: Isyarat PWM untuk motor kanan (Pmod JA8 pada Zybo)
- V12: input pintu dari sensor suara 1 (Pmod JE1 pada Zybo)
- K16: input pintu dari sensor suara 2 (Pmod JE2 pada Zybo)
-
Di Panel Aliran Navigator, Klik "Hasilkan Bitstream" di bawah Program dan Debug
jika anda fikir ia dilakukan dengan segera, mungkin tidak. serius, buat teh
-
Klik Fail-> Eksport-> Hasilkan Perkakasan
Tandakan "Sertakan Bitstream" dan tekan OK
- Klik Fail-> Lancarkan SDK
Langkah 5: Membangun Ernie
- Pasang servos ke casis servo.
-
Ikuti lembar data untuk servo, lakukan perkara berikut:
- sambungkan tanah servos ke pin tanah pada Jy Pmod Zybo (lihat gambar pinout yang dilampirkan)
- sambungkan pin kuasa servos ke pek bateri AA
Kami mendapati bahawa ketika servo disambungkan ke Zybo's Vdd, papan menarik arus terlalu banyak, menyebabkan papan terus diset semula
- sambungkan pin isyarat input ke pin keluaran Zybo yang sesuai (kiri: JA2, kanan: JA8)
- pasang sensor suara ke bahagian depan casis, menghadap ke depan, menjaga mereka sedekat mungkin
-
gunakan panduan penyambungan sensor bunyi untuk mengintegrasikan sensor bunyi
- kawat pin tanah dan pin Vdd setiap sensor bunyi ke tanah dan pin Vdd pada JE Pmod Zybo (lihat gambar pinout yang dilampirkan)
- pasangkan pin Pintu sensor bunyi kiri ke JE1
- pasangkan pin Pintu sensor bunyi yang betul ke JE2
Langkah 6: BSP Pertama Ernie
-
Buat BSP untuk menyelesaikan platform yang baru kita buat.
Anda boleh mendapatkannya melalui Fail -> Baru -> Pakej Sokongan Papan
-
Ahli sihir akan muncul untuk membantu anda membuat BSP.
- Kami mahu mengaitkan BSP ini dengan Platform yang baru kami buat, jadi
- Platform Perkakasan harus sesuai dengan yang baru kita buat (lihat img 1)
- CPU kami akan menjadi CPU _0.
- Klik Selesai
- Pastikan untuk memeriksa lwip141 untuk disertakan dengan bsp anda di tetingkap yang muncul (lihat img 2)
Langkah 7: Ernie FreeRTOS
-
Muat turun keluaran FreeRTOS terbaru dari Sourceforge.
Sekiranya muat turun dapat dilaksanakan, jalankan untuk mengekstrak fail FreeRTOS ke dalam direktori projek anda
- Pastikan SDK terbuka, dan klik Fail -> Import.
- Kami mahu mengklik General-> From a Existing Workspace, dan kemudian kami ingin menavigasi ke tempat kami memuat turun FreeRTOS.
-
Demo kami akan berada di FreeRTOS / Demo / CORTEX_A9_Zynq_ZC702. Setelah memilih folder ini, kita akan melihat tiga projek muncul (kod (OS) kita, itu BSP, dan Platform HW).
HANYA Import RTOSDemo ke ruang kerja semasa anda
-
Pada semua projek folder "biru" ubah BSP yang dirujuk
- Klik kanan dan pilih "Ubah BSP yang Dirujuk."
- Pilih BSP yang baru anda buat untuk Zybo anda
- Penyuntingan Kod dalam folder SDK Blue Xilinx adalah projek kod sebenar.
Langkah 8: Mengimport Kod C Ernie
- Dalam direktori RTOSDemo / src, ganti main.c yang ada dengan fail main.c dilampirkan di sini.
- Salin file main_sound.c ke dalam direktori RTOSDemo / src.
Langkah 9: Menyahdayakan Ernie
- Pilih Jalankan -> Konfigurasi Debug
- Di panel kiri buat larian Sistem Debugger baru
-
Di tab Sasaran Sasaran,
pilih "Reset Seluruh Sistem" sehingga kedua dan ps7_init dipilih
-
Sekarang pilih tab Aplikasi.
- Pilih "muat turun aplikasi"
- Tetapkan inti cortexa9_0 ke "berhenti pada kemasukan program"
- Klik Guna dan Nyahpepijat.
- Sahkan bahawa tidak ada kesalahan dalam proses penyahpepijatan
- Terus memerhatikan robot, tekan butang Resume sehingga program berjalan tanpa memukul titik putus
- Robot sekarang harus berpusing dan bergerak ke arah suara yang kuat. Yay!
Langkah 10: Menjadikan Ernie Berdikari
- Setelah projek anda semua siap dijalankan (anda boleh menjalankan tanpa masalah melalui penyahpepijat) anda sudah siap memuatkannya ke memori kilat di papan anda.
-
Buat apa yang disebut sebagai projek "boot loader tahap pertama" (FSBL) dan mengandungi semua arahan yang diperlukan oleh papan anda untuk memuatkan fail projek anda (aliran bit dan OS) pada permulaan.
- Pilih: Fail-> Baru-> Projek Aplikasi dan tetingkap berikut akan muncul.
- Namakan apa yang anda mahukan (iaitu "FSBL")
- Pastikan platform perkakasan adalah platform yang anda gunakan
- Tekan seterusnya (Jangan tekan Selesai)
- Pilih templat Zynq FSBL
- Klik selesai.
- Setelah proses penciptaan selesai, anda akan mengetahui apakah semuanya berfungsi sekiranya anda melihat dua folder baru berikut di tetingkap Project Explorer.
-
Buat Gambar Boot Sekarang anda perlu membuat gambar Boot.
- Klik kanan pada folder projek anda (dalam hal ini saya dipanggil "RTOSDemo")
- Klik "Buat gambar Boot" dari menu drop-down
-
Sekiranya semuanya dihubungkan dengan betul, projek akan mengetahui fail apa yang diperlukannya dan tetingkap berikut akan kelihatan seperti yang anda lihat di bawah (kunci adalah anda mempunyai 3 partisi di bawah bahagian Boot image, bootloader, fail bit anda, dan file.elf projek anda.).
Sekiranya ini tidak berlaku, mungkin ada yang tidak kena dengan penyambungan projek anda. Pastikan folder projek dihubungkan ke BSP masing-masing
- Klik butang "Buat Imej"
-
Langkah terakhir untuk melakukan perisian adalah dengan memancarkan gambar yang anda buat sebelumnya ke memori papan
- Pilih dari bar alat utama SDK, pilih Xilinx Tools-> Memory Flash Program
- Pastikan platform perkakasan yang betul dipilih dan laluan fail gambar menunjuk dengan betul ke fail. BIN yang dibuat pada langkah sebelumnya.
- Pilih "single qspi" dari jenis Flash
- Tandakan "Verifikasi selepas kilat" untuk memastikan integriti tetapi tidak diperlukan
- Konfigurasikan Papan Anda Akhir sekali anda perlu memastikan bahawa jumper mod pengaturcaraan papan (JP5) diatur dengan betul untuk memilih untuk boot dari qspi (yang mengandungi apa yang baru sahaja anda flash) semasa BootROM dijalankan.
- Sekarang hanya hidupkan peranti dan pastikan "Logic Configuration Done LED" (LED 10) menyala hijau.
Langkah 11: Menjadikan Ernie Comel
- Bulu
- Banyak Bulu
- Mata besar!
- … topi teratas
Disyorkan:
Cara Membuat Pemacu Boot Linux (dan Cara Menggunakannya): 10 Langkah
Cara Membuat Pemacu Boot Linux (dan Cara Menggunakannya): Ini adalah pengenalan mudah mengenai cara memulakan Linux, khususnya Ubuntu
Cara Membuat Makro di Excel dan Menyalin Data dengan Cara yang Lebih Mudah: 4 Langkah
Cara Membuat Makro di Excel dan Menyalin Data dengan Lebih Mudah: Hai, arahan ini akan mengajar anda bagaimana membuat makro dengan cara yang mudah dan lebih baik untuk menyalin dan menampal data yang akan ditunjukkan sebagai contoh
CARA MEMBUAT ARDUINO NANO / MINI - Cara Membakar Bootloader: 5 Langkah
CARA MEMBUAT ARDUINO NANO / MINI | Cara Membakar Bootloader: Dalam Instructables ini saya akan Menunjukkan kepada anda Cara membuat Arduino MINI dari Scratch. Prosedur yang ditulis dalam instruksional ini boleh digunakan untuk membuat papan arduino untuk keperluan projek tersuai anda. Sila Tonton Video Untuk pemahaman yang lebih baik
Cara Membuat Kereta Kawalan Jauh di Rumah dengan Cara Mudah - KERETA RC Tanpa Wayar DIY: 7 Langkah
Cara Membuat Kereta Kawalan Jauh di Rumah dengan Cara Mudah - KERETA RC Tanpa Wayar DIY: Helo kawan-kawan dalam arahan ini saya akan menunjukkan kepada anda cara membuat kereta rc kawalan jauh dengan cara yang mudah sila teruskan membaca …… Ini benar-benar projek yang bagus jadi cuba buat satu
Muzik Reaktif Cahaya -- Cara Membuat Muzik Reaktif Cahaya Muzik Super Sederhana untuk Membuat Desktop Hebat .: 5 Langkah (dengan Gambar)
Muzik Reaktif Cahaya || Cara Membuat Muzik Reaktif Cahaya Muzik Super Sederhana untuk Membuat Desktop Yang Hebat: Hai apa lagi, Hari ini kita akan membina projek yang sangat menarik. Hari ini kita akan membina cahaya reaktif muzik. Led akan mengubah kecerahannya mengikut bass yang sebenarnya merupakan isyarat audio frekuensi rendah. Ia sangat mudah untuk dibina. Kami akan