תוכן עניינים:
וִידֵאוֹ: UChip - סדרתי מעל IR !: 4 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:14
תקשורת אלחוטית הפכה למאפיין מרכזי בפרויקטים שלנו בימינו ודיבור על אלחוטי, הדבר הראשון שעולה לי לראש הוא Wi-Fi או BT, אך הטיפול בפרוטוקולי התקשורת Wi-Fi או BT אינו משימה קלה וגוזלת הרבה. של משאבי MCU, ומשאיר מקום קטן לקידוד היישום שלי. לכן, אני בדרך כלל בוחר במודול Wi-Fi/BT חיצוני המחובר באופן סדרתי למיקרו-בקר על מנת לפצל את התפקידים ולהשיג חופש גבוה יותר.
עם זאת, לפעמים Wi-Fi ו- BT הם "overkill" עבור יישומים מסוימים הדורשים קצב סיביות נמוך ומרחק תקשורת קצר. יתר על כן, שימוש ב- Wi-Fi או BT מרמז על הצורך לחבר את הטלפון החכם או המכשיר שלך עם אימות נכון.
תארו לעצמכם שאתם פשוט צריכים להדליק/לכבות אור חיצוני, או לשנות את עוצמת המנורה, או לפתוח שער חשמלי. האם כדאי להשתמש ב- Wi-Fi או ב- BT?
בהתאם לסביבה וליישומים, תקשורת אלחוטית על פני אורך גל (אינפרא אדום) עשויה להועיל. סדרה על פני IR, המיושמת עם מעט רכיבים חיצוניים (3 רכיבים נפרדים!) ו- uChip (לוח תואם Arduino קטן מאוד) יכול להיות הפתרון שחיפשת!
שטר חומרים (למכשיר Tx-Rx אחד):
1 x uChip
1 x IR LED: בעל שיא הפליטה ב 950nm
1 x TSOP-38238 (שווה ערך)
1 x 1KOhm נגד
חוּמרָה
1 x קרש לוח/פרוטו
1 x צינור פלסטיק שחור: קוטר פנימי בגודל זהה לנורת ה- IR, הצינור נחוץ כדי למנוע דיבור חוצה עם מקלט TSOP.
1 x רדיד אלומיניום (3 ס"מ על 3 ס"מ)
1 x קלטת
טיפ: תוכל ליצור מכשיר מסוג TX או RX בלבד במקרה שאתה זקוק לתקשורת חד כיוונית על ידי הסרת החומרה המיותרת RX/TX מהמעגל או הפעלה/השבתה של הקוד הקשור בסקיצה.
שלב 1: חיווט
חברו את הרכיבים יחד בהתאם לסכימה.
כמה הערות על הסכימה הפשוטה. מכיוון שה- TSOP-38238 מאפשר אספקת חשמל מ- 2.5V ל- 5V וסופג 0.45mA לכל היותר (אתה מוצא את גליון הנתונים כאן), אני יפעיל את המקלט באמצעות שני פינים, שיספקו אספקת קרקע וחשמל בהתאמה. זה מאפשר הפעלה/כיבוי של המקלט לפי דרישה והתקנת חיווט חומרה פשוטה מאוד. יתר על כן, במקרה שאתה צריך תקשורת חד כיוונית אתה יכול לבחור אם לייצר מכשיר (Tx/Rx) בלבד על ידי השבתה/הפעלה של TSOP-38238.
כיצד פועל המעגל?
זה די פשוט. סיכת הפלט TSOP נמשכת נמוך כאשר החיישן מזהה רכבת של 6 פולסים ומעלה ב 38KHz, מצד שני היא נמשכת גבוה כאשר אין אות כזה. לכן, על מנת להעביר את הנתונים הטוריים באמצעות IR, מה שהמעגל עושה הוא להפעיל את אנודת ה- LED עם PWM של 38KHz המאופנן באות הטורי TX אשר מושך את קתודת ה- LED נמוך.
כתוצאה מכך, ברמה גבוהה של ה- TX0 הטורי, הנורית אינה מוטה או מוטה לאחור (ללא פולסים) וסיכת הפלט TSOP נמשכת גבוה. משדר רמה נמוכה בסדרה, ה- LED מופעל ויוצר פולסי IR בהתאם לאות ה- PWM המופעל; לכן פלט ה- TSOP נמשך נמוך.
מכיוון שהשידור ישיר (0-> 0 ו- 1-> 1) אין צורך בממירים או בהגיון אחר בצד המקלט.
אני מסדיר את עוצמת הפלט האופטית של LED על ידי בחירת מחזור הפעלה PWM בהתאם ליישום. ככל שמחזור הפעולה גבוה יותר, כך עוצמת הפלט האופטית גבוהה יותר ולכן, כך תעביר את המסר שלך הלאה.
זכור כי אנו עדיין צריכים לייצר פולסים! לפיכך, אסור לך לעבור את מחזור העבודה של 90%, אחרת ה- TSOP לא יזהה את האות כפולסים.
האם אתה צריך יותר כוח?
על מנת להגדיל את הזרם, האם אנו יכולים פשוט להפחית את ערך הנגד של 1 קאוהם?
אולי, רק אל תהיה תובעני מדי! הזרם המקסימלי שאתה מקבל מסיכה של ה- MCU מוגבל ל- 7mA בעת נסיעה בסיכת היציאה חזקה מהרגיל (PINCFG. DRVSTR = 1 ו- VDD> 3V) כאמור בגיליון הנתונים של SAMD21.
עם זאת, התצורה הסטנדרטית (שהיא זו שאומצה על ידי ספריות Arduino IDE כברירת מחדל) מגבילה את הזרם ל -2mA. לכן, השימוש ב- 1kOhm כבר נותן את הגבול הנוכחי עם הגדרות ברירת המחדל!
הגדלת הזרם היא לא רק שאלה של רכיבים חשמליים. בקצרה:
- שנה את הנגד (שערכו המינימלי מוגבל לכ -470 אוהם -> VDD/470 ~ 7mA);
- הגדר את PORT-> PINCFG-> DRVSTR בהתאם ל -1;
אני אספק את הקוד כולל תכונה זו בעדכון עתידי.
אבל זכור, שקיעה וניקוז זרם מסיכות MCU קרוב לגבולותיה אינה גישה כה טובה. ואכן, זה מוריד את חיי MCU והאמינות. לכן, אני מציע לשמור על חוזק הכונן הרגיל לשימוש לטווח ארוך.
שלב 2: תכנות
טען את המערכון "IRSerial.ino" לתוך uChip (או הלוח התואם Arduino שבו אתה משתמש).
במקרה שאתה צריך לשנות את הסיכה ליצירת ה- PWM, וודא שאתה משתמש בסיכה המחוברת לטיימר TCC, מכיוון שגירסה זו של הקוד פועלת רק עם טיימרים של TCC (בדוק את "variant.c" של הלוח שלך למידע זה.). אני אוסיף את הקוד לשימוש גם בטיימרים של TC בעדכונים עתידיים.
הקוד די פשוט. לאחר הגדרת ה- PIN_5 נמוך (מספק TSOP GND) ו- PIN_6 גבוה (הפעלת ה- TSOP), ה- MCU מפעיל את ה- PWM ב- PIN_1, קובע את תקופת הטיימר והלכידה השווה בהתאם לאפנון התדרים הדרוש (במקרה שלי הוא 38KHz) וחובה. מחזור (12.5% כברירת מחדל). זה נעשה תוך ניצול הפונקציה הסטנדרטית של analogWrite () בסיכות PWM ושינוי רק PER_REG (רשם התקופות) והרשמה CC (Capture Compare) (הקוד הכתוב הוא פשוט גזור והדבק מהספרייה wiring_analog). אתה יכול להגדיר את התדר הדרוש בהתאם לחיישן TSOP שמשתנה PER_REG (שהוא הגבול העליון לאיפוס מונה הטיימר), תוך הגדרת CC באופן יחסי לערך התקופה לאחוז מחזור העבודה הרצוי.
לאחר מכן, הקוד מגדיר את היציאה הטורית באמצעות קצב השידור הנכון שהוא 2400bps. למה קצב שידור כזה נמוך ?! התשובה נמצאת בגיליון הנתונים של TSOP שתוכל למצוא כאן. מכיוון שה- TSOP כולל מסנני דחיית רעש גבוהים למניעת מעבר לא רצוי, יש לשלוח רכבת של מספר פולסים על מנת למשוך את סיכת הפלט של TSOP (מספר הפולסים תלוי בגרסת TSOP, 6 הוא הערך הטיפוסי). באופן דומה, פלט ה- TSOP נמשך גבוה לאחר פרק זמן מינימלי השווה ל -10 פולסים או יותר. כתוצאה מכך, על מנת להגדיר את פלט ה- TSOP כאות TX0 המווסת, יש להגדיר את קצב השידור בהתחשב במשוואה הבאה:
שידור סידורי <PWM_frequency/10
שימוש ב- 38KHz זה גורם לשידור העומס הנמוך מ- 3800bps, כלומר קצב השידור המותר "הסטנדרטי" הוא 2400pbs, כפי שצפוי בעבר.
האם אתה רוצה להגדיל את קצב השידור? ישנן שתי אפשרויות.
האפשרות הקלה ביותר היא לשנות את TSOP לגרסה בתדירות גבוהה יותר (כמו TSOP38256), מה שיאפשר לך להכפיל את קצב השידור (4800bps)
לא מספיק?! לאחר מכן עליך ליצור קישור אופטי משלך באמצעות IR פשוט+פוטודיודה ומעגלי הגברה. עם זאת, פתרון זה דורש מומחיות רבה בקידוד ואלקטרוניקה כדי למנוע רעש להשפיע על הנתונים המועברים ולכן יישוםו אינו פשוט כלל! עם זאת, אם אתה מרגיש בטוח מספיק, אתה יותר ממוזמן לנסות ליצור מערכת TSOP משלך!:)
לבסוף, הגדרתי את יציאת SerialUSB (2400bps) שבה אני משתמש כדי לשלוח ולקבל נתונים על הצג הטורי.
פונקציית הלולאה () כוללת את הקוד הדרוש להעביר נתונים על שתי הסדרות והיא מועתקת ישירות מהשרטוט לדוגמה SerialPassthrough שמשנה רק את שמות הסדרות.
שלב 3: מיגון IR LED
אם אתה מפעיל את המעגלים לעיל לאחר טעינת קוד "IRSerial.ino", בדוק את הצג הטורי ב- Arduino IDE ונסה לשלוח מחרוזת. סביר להניח שתראה כי uChip מקבלת בדיוק את מה שהיא משדרת! יש דיבור חוצה במעגלים עקב תקשורת אופטית בין נורית ה- IR לבין ה- TSOP של אותו מכשיר!
כאן מגיע החלק הקשה בפרויקט הזה, מניעת שיחות צולבות! יש לשבור את הלולאה כדי ליצור תקשורת סידרית דו -כיוונית באמצעות IR.
כיצד נשבור את הלולאה?
האפשרות הראשונה, אתה מוריד את מחזור ההפעלה PWM, ובכך מוריד את תפוקת הכוח האופטי של ה- LED. עם זאת, גישה זו גם מקטינה את המרחק שעליו מקבלים ערוץ IR סדרתי אמין. האפשרות השנייה היא הגנה על נורית ה- IR, ובכך להפוך "קרן" IR כיוונית. מדובר בניסיון וטעייה; לבסוף, בעזרת חתיכת צינור אוויר פנאומטי שחור עטוף בנייר אלומיניום וקלטת (המספקת בידוד חשמלי) הצלחתי לשבור את השיחה הצולבת. הצבת נורית ה- IR המשדרת בתוך הצינור מונעת תקשורת בין TX ו- RX של אותו מכשיר.
תסתכל על התמונה כדי לראות את הפתרון שלי, אבל אל תהסס לנסות שיטות אחרות ו/או להציע את שלך! אין פתרון מוחלט לסוגיה זו (אלא אם כן אתה צריך ערוץ חד כיווני פשוט) וכנראה שאתה צריך לכוונן את פריסת המעגלים, מחזור הפעלה PWM ומגן IR בהתאם לצרכיך.
לאחר שתשבור את הדיבור החוצה, תוכל לוודא שהמכשיר שלך עדיין פועל על ידי יצירת לולאה במכשיר Tx-Rx תוך ניצול השתקפות אורך גל ה- IR על משטחים מחזירי IR.
שלב 4: תקשורת
זה הכל
מכשיר ה- IR שלך סדרתי מוכן לתקשר, השתמש בהם כדי לשלוח נתונים באמצעות IR, להדליק/לכבות כל דבר שאתה אוהב או לבדוק את הסטטוס של חיישן שאתה מסתיר בחשאי!
המרחק שעליו התקשורת מהימנה אינו דומה למכשיר WiFi או BT. עם זאת, הוא כיווני (תלוי בצמצם ה- LED ובמערכת המיגון IR המיושמת), שיכול להיות שימושי מאוד ביישומים מסוימים!
בקרוב אעלה סרטון בו תוכלו לראות כמה דוגמאות ליישומים שהכנתי. תהנה!
מוּמלָץ:
שליטה ב- Grbl CNC מעל Wifi: 5 שלבים
שליטה ב- Grbl CNC Over Wifi: במדריך זה אני אלווה אותך כיצד לאפשר שליטה ב- GRBL ב- WIFI. אתה יכול להשתמש בשיטה זו עם כל שולח כולל lasergrbl ושולח Gcode אוניברסלי (UGS). בקיצור, נשתמש בעבודות של arkypita ותוכנות אחרות כדי ליצור וי
צג איכות אוויר עם MQ135 וחיישן טמפרטורה ולחות חיצוניים מעל MQTT: 4 שלבים
צג איכות אוויר עם MQ135 וחיישן טמפרטורה ולחות חיצוניים מעל MQTT: זה למטרות בדיקה
תחנת מזג אוויר DIY באמצעות DHT11, BMP180, Nodemcu עם Arduino IDE מעל שרת Blynk: 4 שלבים
תחנת מזג אוויר DIY באמצעות DHT11, BMP180, Nodemcu עם Arduino IDE מעל שרת Blynk: Github: DIY_Weather_Station Hackster.io: תחנת מזג אוויר היית רואה את אפליקציית מזג האוויר נכון? כאילו, כשאתה פותח אותו אתה לומד להכיר את תנאי מזג האוויר כמו טמפרטורה, לחות וכו
מעל 8 מייל סיכות ניידות מגנטיות אוניברסליות לראשונה אי פעם !: 5 שלבים
מעל 8 מייל סיכות ניידות אוניברסליות מגנטיות לראשונה אי פעם !: היי! שמי ג'ורג'ינה יבואה ולאחרונה יצרתי את הסיכות המגנטיות הללו המבוססות על הדמויות מהקומיקס שלי באינטרנט מעל 8 מייל! אתה יכול למצוא את הקישור לדף הראשי של ה- webcomic מתחת למבוא הזה ולקישור טאפאס. הכנתי את הסיכות האלה כ
רובוט מתגלגל עם דבר ESP32 ונהג TB6612FNG, נשלט על ידי אנדרואיד מעל BLE: 11 שלבים
רובוט מתגלגל עם דבר ESP32 ונהג TB6612FNG, הנשלט על ידי אנדרואיד מעל BLE: שלום לכולם זהו ההוראה הראשונה שלי. רובוט מתגלגל (המכונה Raidho - מהרונה הקשורה לתנועה) המבוסס על ESP32 Thing, TB6612 FNG ו- BLE. חלק אחד שאולי נראה מוזר הוא שהתמונות אינן מתהליך ההכנה