Daftar Isi:
- Langkah 1: Menyiapkan Proyek di Vivado untuk Ernie
- Langkah 2: Membuat PWM Ernie di Vivado
- Langkah 3: Membuat TDOA Ernie di Vivado
- Langkah 4: Membungkus dan Mengekspor Ernie
- Langkah 5: Membangun Ernie
- Langkah 6: BSP Pertama Ernie
- Langkah 7: Ernie GratisRTOS
- Langkah 8: Mengimpor Kode C Ernie
- Langkah 9: Men-debug Ernie
- Langkah 10: Membuat Ernie Otonom
- Langkah 11: Membuat Ernie Lucu
Video: Cara Membuat Ernie: 11 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:54
Ini adalah tutorial tentang cara membuat Ernie, robot penerus suara otonom Anda, menggunakan Zybo Board. Ini akan mencakup cara: membuat proyek di Vivado, membuat driver motor servo seperti PWM di FPGA, antarmuka dengan dua sensor suara, membuat perbedaan waktu kedatangan IP, menggunakan freeRTOS, dan menjalankan zybo dari baterai. Ini adalah tugas akhir kami untuk kelas Sistem Operasi Waktu Nyata (CPE 439) di Cal Poly SLO.
Daftar perlengkapan:
- 1 - Papan Pengembangan ZYBO Zynq 7000
- 2 - Servo Rotasi Berkelanjutan Paralaks
- 2 - Sensor Suara (Detektor Suara SparkFun)
- Paket baterai USB Lithium Ion 1 - 5v (untuk papan)
- 4 - baterai AA (untuk servos)
- 1 - baterai AA (dengan 4 slot baterai)
- 1 - Kabel USB mikro
- 1 - Papan tempat memotong roti
- banyak - Kabel Pria ke Pria
- 1 - Sasis servo
Persyaratan perangkat lunak:
- Xilinx Vivado Design Suite 2016.2
- Rajin Mahir 2.16.1
Langkah 1: Menyiapkan Proyek di Vivado untuk Ernie
- Seorang penyihir akan muncul
- Klik Berikutnya
-
Selanjutnya beri nama proyek
- Jangan pernah menggunakan nama proyek atau jalur direktori yang memiliki spasi di dalamnya!!!!!
- Ini akan menjadi proyek RTL.
- Kami tidak ingin menentukan sumber
-
Mengklik Berikutnya, kita sampai ke halaman Bagian. Kami menggunakan ZYNQ XC7Z010-1CLG400C.
- Vivado tidak mencantumkan Zybo sebagai salah satu papan yang telah ditentukan sebelumnya. Pilih: "bagian" lalu cari xc7z010clg400-1.
- Jika Anda memilih bagian yang salah secara tidak sengaja, Anda dapat dengan mudah mengganti chip: Alat -> Pengaturan Proyek -> Umum dan klik titik di sebelah kanan "Perangkat Proyek"
-
Klik Buat Desain Blok.
Beri nama design_1 untuk saat ini
- Anda akan melihat bilah hijau yang mengatakan Tambahkan IP, klik itu.
-
Cari Zynq.
- Klik dua kali Sistem Pemrosesan ZYNQ7,
- Blok ini akan muncul dalam desain blok kami.
- Anda akan melihat bilah hijau yang bertuliskan Run Block Automation, klik itu.
- Unduh zybo_zynq_def.xml di bawah ini.
-
Di Vivado, klik "Impor Pengaturan XPS" dan pilih "zybo_zynq_def.xml"
Pra ini mengisi konfigurasi blok Vivado dengan semua periferal bawaan Zybo dan penetapan pin
-
Klik dua kali pada blok ZYNQ.
-
Konfigurasi MIO
- Aktifkan Timer 0 (di bawah Unit Prosesor Aplikasi - img 1)
- Aktifkan Watchdog (di bawah Unit Prosesor Aplikasi- img 1)
- Aktifkan GPIO->GPIO MIO (di bawah Unit Prosesor Aplikasi - img 2)
- Aktifkan GPIO->ENET Reset (di bawah I/O Peripherals- img 2)
-
Konfigurasi Jam
Nonaktifkan FCLK0 (di bawah PL Fabric Clocks - img 3)
-
- Klik Oke.
-
"Jalankan Otomatisasi Blok" sekarang.
Akan ada beberapa pertanyaan tentang sinyal, katakan OK
-
Klik "Hasilkan Pembungkus HDL".
Kami ingin menyalin pembungkus yang dihasilkan untuk memungkinkan pengeditan pengguna
- Klik Oke.
Langkah 2: Membuat PWM Ernie di Vivado
Langkah ini akan menghasilkan IP PWM dengan input yang dikirim melalui library AXI.
-
Buat blok AXI GPIO dengan cara klik kanan pada background, lalu klik "add IP"
ketik "AXI_GPIO" ke dalam bilah pencarian, dan pilih paket ini
-
Sesuaikan ulang IP dengan mengklik dua kali blok axi_gpio_0 baru
- di bawah GPIO, atur lebar GPIO ke 2. Bit ini akan menjadi sinyal PWM_ON untuk menggerakkan setiap instance modul PWM.
- klik "aktifkan saluran ganda"
- di bawah GPIO 2, atur lebar GPIO ke 2. Bit ini akan menjadi sinyal PWM_FW untuk mengatur arah setiap instance modul PWM.
-
Klik kanan pada port output axi_gpio_0 berlabel GPIO, dan pilih "Make External"
- Klik pada output baru berlabel GPIO, dan arahkan ke tab "properties" di bilah alat kiri, dan ubah namanya menjadi PWM_ON
- Klik pada output baru berlabel GPIO2, dan arahkan ke tab "properties" di bilah alat kiri, dan ubah namanya menjadi PWM_FW
-
Pilih Jalankan Otomatisasi Koneksi di spanduk hijau di atas diagram blok.
Jika Anda menghubungkan port secara manual, alamat AXI mungkin tidak dikonfigurasi, yang menyebabkan masalah komunikasi di kemudian hari
-
Di Flow Navigator Pane, pilih project manager -> Add Sources untuk membuat blok IP kustom baru
- pilih "tambah atau buat sumber desain", dan tekan berikutnya
- klik "buat file", ubah jenis file menjadi "SystemVerilog", dan ketik "pwm" ke dalam bidang nama file, lalu klik OK
- klik Selesai
-
abaikan jendela Define Module dengan menekan OK (kami akan menimpanya nanti)
jika ditanya apakah Anda yakin, klik Ya
-
Di tab sources, klik dua kali pwm.sv (terletak di "Sumber Desain/design_1_wrapper")
Salin/tempelkan seluruh kode SystemVerilog dari file pwm.txt terlampir di bawah ini
Langkah 3: Membuat TDOA Ernie di Vivado
Langkah ini akan menghasilkan IP TDOA yang outputnya dapat dibaca melalui library AXI
-
Buat blok AXI GPIO dengan cara klik kanan pada background, lalu klik "add IP"
ketik "AXI_GPIO" ke dalam bilah pencarian, dan pilih paket ini
-
Sesuaikan ulang IP dengan mengklik dua kali blok axi_gpio_1 baru
- di bawah GPIO, centang kotak "All Inputs", dan atur lebar GPIO ke 32. Bus ini akan menjadi perbedaan waktu kedatangan antara kedua sensor.
- di dalam blok axi_gpio_1, klik + di sebelah port GPIO untuk membuka gpio_io_i[31:0].
-
Klik kanan pada port output axi_gpio_1 berlabel gpio_io_i[31:0], dan pilih "Make External"
Klik pada input baru berlabel gpio_io_i[31:0], dan navigasikan ke tab "properties" di bilah alat kiri, dan ubah namanya menjadi TDOA_val
-
Pilih Jalankan Otomatisasi Koneksi di spanduk hijau di atas diagram blok.
Jika Anda menghubungkan port secara manual, alamat AXI mungkin tidak dikonfigurasi, yang menyebabkan masalah komunikasi di kemudian hari
-
Di Flow Navigator Pane, pilih project manager -> Add Sources untuk membuat blok IP kustom baru
- pilih "tambah atau buat sumber desain", dan tekan berikutnya
- klik "buat file", ubah jenis file menjadi "SystemVerilog", dan ketik "tdoa" di kolom nama file, lalu klik OK
- klik Selesai
-
abaikan jendela Define Module dengan menekan OK (kami akan menimpanya nanti)
jika ditanya apakah Anda yakin, klik Ya
-
Di tab sources, klik dua kali tdoa.sv (terletak di "Sumber Desain/design_1_wrapper")
Salin/tempelkan seluruh kode SystemVerilog dari file tdoa.txt terlampir di bawah
Langkah 4: Membungkus dan Mengekspor Ernie
- Verifikasi bahwa diagram blok terlihat seperti tangkapan layar terlampir
-
Di tab sources, klik kanan design_1.bd dan pilih "Create HDL Wrapper…"
- Pilih "Salin keluaran yang dihasilkan untuk memungkinkan pengeditan pengguna", lalu tekan "OK"
- Salin kode dari design_1_wrapper.txt terlampir di bawah ini, dan tempel di tempat kode design_1_wrapper.v yang dihasilkan
- simpan design_1_wrapper.v
-
Di tab sources, klik dua kali file ZYBO_Master.xdc di bawah Constraints/constrs1
- Salin kode dari ZYBO_Master.txt terlampir di bawah, dan tempel di tempat kode ZYBO_Master.xdc yang ada
-
Perhatikan pin input/output berikut:
- L15: Sinyal PWM untuk motor kiri (Pmod JA2 di Zybo)
- L14: Sinyal PWM untuk motor kanan (Pmod JA8 pada Zybo)
- V12: input gerbang dari sensor suara 1 (Pmod JE1 pada Zybo)
- K16: input gerbang dari sensor suara 2 (Pmod JE2 pada Zybo)
-
Di Panel Navigator Aliran, Klik "Hasilkan Bitstream" di bawah Program dan Debug
jika Anda pikir itu dilakukan segera, itu mungkin tidak. serius, buat teh
-
Klik File->Ekspor->Hasilkan Perangkat Keras
Centang "Sertakan Bitstream" dan tekan OK
- Klik File-> Luncurkan SDK
Langkah 5: Membangun Ernie
- Pasang servos ke sasis servo.
-
Mengikuti lembar data untuk servos, lakukan hal berikut:
- sambungkan ground servo ke pin ground pada JA Pmod Zybo (lihat gambar pinout terlampir)
- sambungkan pin daya servos ke paket baterai AA
Kami menemukan bahwa ketika servos terhubung ke Vdd Zybo, papan menarik terlalu banyak arus, menyebabkan papan terus-menerus mengatur ulang
- sambungkan pin sinyal input ke pin output Zybo yang sesuai (kiri: JA2, kanan: JA8)
- pasang sensor suara ke bagian depan sasis, menghadap ke depan, jaga agar tetap sedekat mungkin
- gunakan panduan hookup sensor suara untuk mengintegrasikan sensor suara
- sambungkan pin ground dan Vdd dari setiap sensor suara ke ground dan pin Vdd pada JE Pmod Zybo (lihat gambar pinout terlampir)
- sambungkan pin Gerbang sensor suara kiri ke JE1
- sambungkan pin Gerbang sensor suara kanan ke JE2
Langkah 6: BSP Pertama Ernie
-
Buat BSP untuk menyelesaikan platform yang baru saja kita buat.
Anda bisa mendapatkannya melalui File -> New -> Board Support Package
-
Wizard akan muncul untuk membantu Anda membuat BSP.
- Kami ingin mengikat BSP ini dengan Platform kami yang baru saja kami buat, jadi
- Platform Perangkat Keras harus sejajar dengan yang baru saja kita buat (lihat img 1)
- CPU kami akan menjadi _0 CPU.
- Klik Selesai
- Pastikan untuk mencentang lwip141 untuk penyertaan dengan bsp Anda di jendela yang muncul (lihat img 2)
Langkah 7: Ernie GratisRTOS
-
Unduh rilis FreeRTOS terbaru dari Sourceforge.
Jika unduhan dapat dieksekusi, jalankan untuk mengekstrak file FreeRTOS ke direktori proyek Anda
- Biarkan SDK itu tetap terbuka, dan klik File -> Impor.
- Kami ingin mengklik Umum->Dari Ruang Kerja yang Ada, dan kemudian kami ingin menavigasi ke tempat kami mengunduh FreeRTOS.
-
Demo kami akan berlokasi di FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702. Setelah memilih folder ini, kita akan melihat tiga proyek muncul (kode kita (OS), itu BSP, dan Platform HW).
HANYA Impor RTOSDemo ke ruang kerja Anda saat ini
-
Pada semua proyek folder "biru" ubah BSP yang direferensikan
- Klik kanan dan pilih "Ubah BSP yang Direferensikan."
- Pilih BSP yang baru saja Anda buat untuk Zybo Anda
- Pengeditan Kode di folder SDK Blue Xilinx adalah proyek kode yang sebenarnya.
Langkah 8: Mengimpor Kode C Ernie
- Di direktori RTOSDemo/src, timpa main.c yang ada dengan file main.c terlampir di sini.
- Salin file main_sound.c ke dalam direktori RTOSDemo/src.
Langkah 9: Men-debug Ernie
- Pilih Jalankan -> Konfigurasi Debug
- Di panel kiri buat jalankan System Debugger baru
-
Di tab Pengaturan Target,
pilih "Reset Seluruh Sistem" sehingga keduanya dan ps7_init dipilih
-
Sekarang pilih tab Aplikasi.
- Pilih “unduh aplikasi”
- Setel inti cortexa9_0 ke "berhenti di entri program"
- Klik Terapkan dan Debug.
- Verifikasi bahwa tidak ada kesalahan dalam proses debugging
- Mencermati robot, tekan tombol Lanjutkan hingga program berjalan tanpa mencapai titik henti apa pun
- Robot sekarang harus berbalik dan bergerak ke arah suara keras. Ya!
Langkah 10: Membuat Ernie Otonom
- Setelah proyek Anda siap dijalankan (Anda dapat menjalankannya tanpa masalah melalui debugger), Anda siap untuk memuatnya ke memori flash di papan Anda.
-
Buat apa yang disebut proyek "boot loader tahap pertama" (FSBL) dan berisi semua instruksi yang diperlukan papan Anda untuk memuat file proyek Anda (aliran bit dan OS) saat startup.
- Pilih: File->New->Application Project dan jendela berikut akan muncul.
- Beri nama apa yang Anda inginkan (yaitu "FSBL")
- Pastikan platform perangkat keras adalah platform yang Anda gunakan
- Tekan berikutnya (Jangan tekan Selesai)
- Pilih template Zynq FSBL
- Klik selesai.
- Setelah proses pembuatan selesai, Anda akan tahu apakah semuanya berfungsi jika Anda melihat dua folder baru berikut di jendela Project Explorer.
-
Buat Gambar Boot Sekarang Anda perlu membuat gambar Boot.
- Klik kanan pada folder proyek Anda (dalam hal ini milik saya disebut "RTOSDemo")
- Klik "Buat gambar Boot" dari tarik-turun
-
Jika semuanya terhubung dengan benar, proyek akan mengetahui file apa yang dibutuhkan dan jendela berikut akan terlihat seperti yang Anda lihat di bawah (kuncinya adalah Anda memiliki 3 partisi di bawah bagian Boot image, bootloader, file bit Anda, dan file.elf proyek Anda).
Jika tidak demikian, mungkin ada yang salah dengan penautan proyek Anda. Pastikan folder proyek ditautkan ke BSP masing-masing
- Klik tombol "Buat Gambar"
-
Langkah terakhir yang harus dilakukan dalam perangkat lunak adalah sekarang mem-flash gambar yang Anda buat sebelumnya ke memori papan
- Pilih dari bilah alat utama SDK pilih Xilinx Tools->Program Flash Memory
- Pastikan bahwa platform perangkat keras yang benar dipilih dan jalur file gambar dengan benar menunjuk ke file. BIN yang dibuat pada langkah sebelumnya.
- Pilih "qspi single" dari jenis Flash
- Centang "Verifikasi setelah flash" untuk memastikan integritas tetapi tidak diperlukan
- Konfigurasi Papan Anda Terakhir, Anda perlu memastikan bahwa jumper mode pemrograman papan (JP5) diatur dengan benar untuk memilih boot dari qspi (yang berisi apa yang baru saja Anda flash) ketika BootROM dijalankan.
- Sekarang cukup hidupkan perangkat dan pastikan "Logic Configuration Done LED" (LED 10) menyala hijau.
Langkah 11: Membuat Ernie Lucu
- Bulu
- Banyak Bulu
- Mata yang besar!
- … pucuk topi
Direkomendasikan:
Cara Membuat Boot Drive Linux (dan Cara Menggunakannya): 10 Langkah
Cara Membuat Boot Drive Linux (dan Cara Menggunakannya): Ini adalah pengantar sederhana tentang cara memulai Linux, khususnya Ubuntu
Cara Membuat Drone Menggunakan Arduino UNO - Membuat Quadcopter Menggunakan Mikrokontroler: 8 Langkah (dengan Gambar)
Cara Membuat Drone Menggunakan Arduino UNO | Membuat Quadcopter Menggunakan Mikrokontroler: PendahuluanKunjungi Saluran Youtube Saya Drone adalah gadget (produk) yang sangat mahal untuk dibeli. Pada postingan kali ini saya akan membahas, bagaimana cara membuatnya dengan harga murah?? Dan Bagaimana Anda bisa membuat sendiri seperti ini dengan harga murah … Nah di India semua bahan (motor, ESC
Cara Membuat Trafo SMPS - Rumah Membuat 12V 10A Switching Power Supply: 6 Langkah
Cara Membuat Trafo SMPS | Rumah Membuat 12V 10A Switching Power Supply: Dengan trafo dari PSU komputer lama. Saya mencoba membuat 12V 10A (SMPS) di rumah. Saya menggunakan SprintLayout untuk membuat PCB dan metode besi untuk membuat papan PCB. Di video ini kalian bisa melihat saya menggulung trafo SMPSUntuk mudah membuat PCB kalian bisa mendownload
Music Reactive Light--Cara Membuat Lampu Reaktif Musik Super Sederhana untuk Membuat Desktop Menakjubkan.: 5 Langkah (dengan Gambar)
Music Reactive Light||Cara Membuat Lampu Reaktif Musik Super Sederhana untuk Membuat Desktop Mengagumkan.: Hai apa kabar, Hari ini kita akan membuat proyek yang sangat menarik. Hari ini kita akan membuat lampu reaktif musik. LED akan berubah kecerahannya sesuai dengan bass yang sebenarnya adalah sinyal audio frekuensi rendah. Pembuatannya sangat mudah. Kami akan
Cara Membuat Kalender Kakek & Scrapbook (Bahkan Jika Anda Tidak Tahu Cara Membuat Scrapbook): 8 Langkah (dengan Gambar)
Cara Membuat Kalender Kakek & Scrapbook (bahkan Jika Anda Tidak Tahu Cara Membuat Scrapbook): Ini adalah hadiah liburan yang sangat ekonomis (dan sangat dihargai!) untuk kakek-nenek. Saya membuat 5 kalender tahun ini dengan harga masing-masing kurang dari $7. Bahan: 12 foto bagus anak Anda, anak-anak, keponakan, anjing, kucing, atau kerabat lainnya12 bagian berbeda