תוכן עניינים:
- שלב 1: הפעל את מודול PWM
- שלב 2: הגדר את עיצוב הבלוק
- שלב 3: כייל את ה- IMU
- שלב 4: שלב את משדר האלחוט
- שלב 5: תכנת את ה- FPGA של Zybo
וִידֵאוֹ: Quadcopter באמצעות לוח Zybo Zynq-7000: 5 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:17
לפני שנתחיל, הנה כמה דברים שאתה רוצה לפרויקט: רשימת חלקים 1x Digilent Zybo Zynq-7000 לוח 1x Quadcopter Frame המסוגל להרכיב את Zybo (קובץ Adobe Illustrator לחיתוך מצורף) 4x Turnigy D3530/14 1100KV Brushless Motors 4x Turnigy ESC Basic -18A בקר מהירות 4x מדחפים (אלה צריכים להיות גדולים מספיק כדי להרים את הארבע) שלך 2x nRF24L01+ מקלט 1x IMU BNO055 דרישות תוכנה Xilinx Vivado 2016.2 הערה: המנועים למעלה אינם המנועים היחידים שניתן להשתמש בהם. הם רק אלה המשמשים בפרויקט זה. כנ ל לגבי שאר החלקים ודרישות התוכנה. יש לקוות שזוהי הבנה בלתי מדוברת בעת קריאת הוראה זו.
שלב 1: הפעל את מודול PWM
תכנות מערכת SystemVerilog פשוטה (או תוכנית HDL אחרת) לרישום מצערת HI ומצערת LO באמצעות מתגי קלט. חבר את ה- PWM עם מנוע ESC יחיד ומנוע מברשת ללא טרניגי. בדוק את הקבצים הבאים כדי לברר כיצד לכייל את ESC. הקוד הסופי מצורף בשלב 5 עבור מודול PWM. מפתח PWM מצורף שלב זה ESC גליון נתונים: Turnigy ESC גליון נתונים PDF (דברים שיש לשים לב אליהם הם המצבים השונים שניתן לבחור באמצעות מצערת HI ו- LO)
שלב 2: הגדר את עיצוב הבלוק
צור עיצוב בלוק לחץ פעמיים על הבלוק החדש שנוצר ייבא הגדרות XPS שהורדות כאן: https://github.com/ucb-bar/fpga-zynq/tree/master/z… שנה הגדרות PS-PL תצורה M AXI ממשק היקפי I/ O Pins Ethernet 0 USB 0 SD 0 SPI 1 UART 1 I2C 0 TTC0 SWDT GPI MIOMIO Timer Configuration Timer 0 תצוגת WatchdogClock FCLK_CLK0 והגדר את התדר ל- 100 MHz צור I2C ו- SPI חיבור חיצוני FCLK_CLK0 ל- M_AXI_GP0_ACLK הפעל את בלוק יצירת g
שלב 3: כייל את ה- IMU
מקלט BNO055 משתמש בתקשורת I2C. (קריאה מומלצת למתחילים: https://learn.sparkfun.com/tutorials/i2c) הנהג להפעלת ה- IMU נמצא כאן: https://github.com/BoschSensortec/BNO055_driver Quadcopter אינו מצריך שימוש במגנטומטר מה- BNO055. בגלל זה, מצב הפעולה הדרוש הוא מצב IMU. זה משתנה על ידי כתיבת מספר בינארי xxxx1000 לרשם OPR_MODE, כאשר 'x' הוא 'לא אכפת'. הגדר את הביטים האלה ל- 0.
שלב 4: שלב את משדר האלחוט
מקלט המשדר האלחוטי משתמש בתקשורת SPI. מצורף דף המפרט של nRF24L01+ הדרכה טובה על nrf24l01+ אך עם arduino:
שלב 5: תכנת את ה- FPGA של Zybo
סקירה כללית מודולים אלה הם המודולים האחרונים המשמשים לשליטה על ה- PWM של הארבעה. motor_ctl_wrapper.sv מטרה: העטיפה לוקחת זוויות אוילר ואחוז מצערת. הוא מוציא PWM מפוצל, שיאפשר להתייצבות הקווקדופטר. חסימה זו קיימת מכיוון שרביעיות נוטות להפרעות באוויר ודורשות ייצוב כלשהו. אנו משתמשים בזוויות אוילר, מכיוון שאיננו מתכננים התהפכות או זוויות כבדות שעלולות לגרום לנעילת גימבל. קלט: אוטובוס נתונים של 25 סיביות CTL_IN = {[24] GO, [23:16] אוילר X, [15: 8] Euler Y, [7: 0] אחוז מצערת}, שעון (clk), פלט CLR סינכרוני (sclr): מנוע 1 PWM, מנוע 2 PWM, מנוע 3 PWM, מנוע 4 PWM, אחוז מצערת PWM אחוז המצערת PWM הוא משמש לאתחול ה- ESC, שירצה טווח טהור של 30% - 70% של PWM, לא זה מערכי PWM של מנוע 1-4. מתקדם - בלוקי IP של Vivado Zynq: 8 הוספות (LUT) 3 חיסורים (LUT) 5 מכפילים (זיכרון בלוק (BRAM)) clock_div.sv (AKA pwm_fsm.sv) מטרה: שליטה בחומרה, כולל פלט MUX, PWM ו- sclr עבור motor_ctl_wrapper. כל מכונת מדינה סופית (FSM) משמשת לדבר אחד: שליטה בחומרה אחרת. כל סטייה גדולה מהיעד הזה יכולה לגרום ל- FSM לכאורה ללבוש צורה של מודול מסוג אחר (מונה, אדרדר וכו '). Pwm_fsm מכיל 3 מצבים: INIT, CLR ו- FLYINIT: אפשר למשתמש לתכנת את ה- ESC כ- הרצוי. שולח אות בחירה ל- mux_pwm שיוצא PWM ישר לכל המנועים. לולאה חזרה לעצמה עד GO == '1'. CLR: נקה נתונים ב- motor_ctl_wrapper ובמודול pwm out. FLY: לולאה לנצח לייצוב הארבע (אם לא יתאפסו). שולח את ה- PWM המתוגמל דרך mux_pwm. קלט: GO, RESET, clkOutput: RST עבור איפוס מודולים אחרים, FullFlight לאותת מצב FLY, תקופה להפעלת atmux_pwm.sv מטרה: קלט: פלט: PWM לכל 4 מנועיםpwm.sv מטרה: קלט: פלט:
מוּמלָץ:
לוח לוח לוח: 7 שלבים
לוח לוח: לפני זמן רב מאוד מצאתי כותב NC של Rotring ללא הבקר. שכחתי לגמרי מה אני רוצה לעשות עם זה, אבל בשבוע שעבר מצאתי אותו שוב ואני רוצה להכין ממנו מגש לוח. כתב היד האישי שלי על הלוח הוא לא
אור אופניים בהיר מאוד באמצעות מחשבי לוח מותאמים אישית של לוח אור: 8 שלבים (עם תמונות)
אור אופניים בהיר מאוד באמצעות מחשבי לוח מותאם אישית של לוח אור: אם אתה בעל אופניים, אתה יודע עד כמה בורות לא נעימים יכולים להיות על הצמיגים והגוף שלך. הספיק לי לפוצץ את הצמיגים אז החלטתי לעצב פנל לד משלי מתוך כוונה להשתמש בו כמנורת אופניים. כזה שמתמקד בלהיות E
WIDI - HDMI אלחוטי באמצעות Zybo (לוח פיתוח Zynq): 9 שלבים (עם תמונות)
WIDI - HDMI אלחוטי באמצעות Zybo (לוח הפיתוח של Zynq): האם אי פעם רצית שתוכל לחבר את הטלוויזיה למחשב או למחשב נייד כצג חיצוני, אך לא רצית שיהיו לך כל החבלים המציקים? אם כן, הדרכה זו היא בדיוק בשבילך! למרות שיש כמה מוצרים שמשיגים מטרה זו
כיצד לתכנת לוח AVR באמצעות לוח Arduino: 6 שלבים
כיצד לתכנת לוח AVR באמצעות לוח Arduino: האם יש לך לוח מיקרו -בקר AVR מונח? האם זה מסובך לתכנת את זה? ובכן, אתה נמצא במקום הנכון. כאן אראה לך כיצד לתכנת לוח מיקרו -בקר Atmega8a באמצעות לוח Arduino Uno כמתכנת. אז בלי רחוק
אוטומציה ביתית: לוח מתגים אוטומטי עם בקרת דימר באמצעות בלוטות 'באמצעות Tiva TM4C123G: 7 שלבים
אוטומציה ביתית: לוח מתגים אוטומטי עם בקרת דימר באמצעות Bluetooth באמצעות Tiva TM4C123G: כיום יש לנו שלט רחוק למכשירי הטלוויזיה שלנו ולמערכות אלקטרוניות אחרות, שהפכו את חיינו לקלים באמת. האם תהית אי פעם לגבי אוטומציה ביתית שתאפשר את השליטה במנורות צינור, מאווררים וחשמל אחר