תוכן עניינים:

להדליק אותי! בקרת רצועות LED חוצה פלטפורמות בזמן אמת: 5 שלבים (עם תמונות)
להדליק אותי! בקרת רצועות LED חוצה פלטפורמות בזמן אמת: 5 שלבים (עם תמונות)

וִידֵאוֹ: להדליק אותי! בקרת רצועות LED חוצה פלטפורמות בזמן אמת: 5 שלבים (עם תמונות)

וִידֵאוֹ: להדליק אותי! בקרת רצועות LED חוצה פלטפורמות בזמן אמת: 5 שלבים (עם תמונות)
וִידֵאוֹ: 20 товаров для автомобиля с Алиэкспресс, автотовары №25 2024, נוֹבֶמבֶּר
Anonim
להדליק אותי! בקרת רצועות LED חוצה פלטפורמות בזמן אמת
להדליק אותי! בקרת רצועות LED חוצה פלטפורמות בזמן אמת
להדליק אותי! בקרת רצועות LED חוצה פלטפורמות בזמן אמת
להדליק אותי! בקרת רצועות LED חוצה פלטפורמות בזמן אמת
להדליק אותי! בקרת רצועות LED חוצה פלטפורמות בזמן אמת
להדליק אותי! בקרת רצועות LED חוצה פלטפורמות בזמן אמת

להדליק אותי! היא מערכת שהמצאתי לשליטה על רצועת LED RGB בזמן אמת, תוך שמירה על עלות נמוכה וביצועים גבוהים.

השרת כתוב ב- Node.js ועל כן ניתן לפלטפורמות שונות.

בדוגמה שלי, אני משתמש ב- Raspberry Pi 3B לשימוש ארוך טווח, אך מחשב Windows שלי לשם הדגמה וניפוי באגים.

רצועת 4 הפינים נשלטת על ידי לוח מסוג Arduino Nano, המבצע פקודות נתונות סדרתי לשליחת אותות PWM לשלושה טרנזיסטורים המעבירים את +12VDC לסיכת הצבעים המתאימה של הרצועה.

LightMeUp! המערכת גם בודקת את הטמפרטורה שלה, ברגע שהיא עולה על 60 ° C (140 ° F) היא מפעילה שני מאווררי מחשב 12VDC המובנים בתוך המעטפת, על מנת להתקרר כדי לשפר את חיי המעגל.

תכונה נוספת של LightMeUp! הוא להאיר בקבוק ג'ין של בומביי-ספיר, אבל זה לא המוקד של מדריך זה.

קריאה מהנה:)

אספקה

  • Arduino Nano (או כל מיקרו-בקר אחר המבוסס על ATmega328 / גבוה יותר)
  • Raspberry Pi 3 דגם B עם Node.js מותקן (או כל מחשב אחר)
  • רצועת LED 4 פינים RGB 12V
  • ספק כוח 12V 3A
  • כבלי מגשר (זכר-זכר אם אתה משתמש בקרש, כמובן)
  • לוח לחם (אופציונלי)
  • 2 מאווררי מחשב DC 12V (אופציונלי)
  • 3x TIP120 טרנזיסטור דרלינגטון עם גוף קירור (4 אם אתה רוצה לכלול מאווררי קירור)
  • 2 נוריות מצב אדום וירוק (אופציונלי)
  • 6, 7K NTC מבוסס טמפרטורה + 6, 7K נגד (אופציונלי)
  • כבל נתונים מסוג USB-Mini ל- USB 2.0 (עבור ה- Raspberry Pi לתקשר עם ה- Arduino)
  • רכזת USB המופעלת חיצונית (אופציונלי, רק עבור Raspberry Pi)

שלב 1: הבנת המערכת

להבין את המערכת
להבין את המערכת

להדליק אותי! מבוסס על מעגלים אלקטרוניים פשוטים מאוד.

יש לנו מחשב כלשהו (במקרה זה פטל פטל) המתקשר באופן סדרתי עם לוח המיקרו -בקר שלנו. לוח זה מבצע פקודות טוריות ספציפיות כמו "RGB (255, 255, 255)" שיהפכו את רצועת ה- LED ללבן שלנו.

לאחר שקיבלנו את שלושת הערכים שלנו לאדום, ירוק וכחול הדרושים עבור רצועת ה- LED של 4 פינים, אנו מבצעים analogWrite (סיכה, ערך) על מנת לספק לטרנזיסטור TIP120 שלנו אות PWM.

אות PWM זה מאפשר לטרנזיסטור להחליף את סיכת הצבע המתאימה שאוספן מחובר לקרקע, במידה מסוימת או להפעלה / כיבוי מלא. כן, הרבה "עד":)

על ידי ערבוב שלוש יציאות הטרנזיסטורים לסיכות הצבע של רצועות ה- LED אנו יכולים ליצור בעצם כל צבע שנרצה!

כעת עם הבנה זו, אנו יכולים לתקוף את האתגר הגדול ביותר של הפרויקט הזה, שרת האינטרנט והחיבור הטורי שלו ל- Arduino שלנו.

שלב 2: כתיבת WebSocketServer

כתיבת WebSocketServer
כתיבת WebSocketServer

כעת, עלינו ליצור סוג ספציפי של שרת אינטרנט, המאפשר לנו להעביר נתונים הלוך ושוב מבלי לרענן פעם אחת על מנת להשיג שליטה בזמן אמת ברצועות LED.

שימו לב, תקשורת בזמן אמת כמובן היא בלתי אפשרית, תמיד יהיו מעורבות לפחות כמה מילי שניות של עיכוב, אך בעיני האדם היא משמעותית בזמן אמת.

ניתן להשיג זאת בקלות באמצעות ספריית socket.io אם אתה משתמש ב- Node.js כמו שעשיתי. עם זאת, אתה תמיד יכול להישאר בשפת התכנות האהובה עליך, כמובן.

אנו נעסוק בחיבור WebSocket המאפשר לנו להעביר נתוני קלט כמו לאיזה צבע אתה רוצה להגדיר את רצועת ה- LED, או נתוני סטטוס כמו "LED ON" דו כיוונית ללא רענון.

עוד תכונה חשובה מאוד שהשרת צריך להיות אך אינו צריך היא כניסה פשוטה. ביססתי את ההתחברות שלי משדה שם משתמש וסיסמה פשוט. נתוני מידע אלה מתפרסמים לאחר מכן במסלול /התחברות של השרת, המשווה לאחר מכן את שם המשתמש לרשימת משתמשים (קובץ.txt) והסיסמה המתאימה שלו בצורתו המוצפנת SHA256. אתה לא רוצה שהשכנים שלך יתעסקו עם רצועת הלד שלך בזמן שאתה נהנה מהמשקה האהוב עליך על המושב הנוח ביותר שלך, נכון?

עכשיו מגיע לב השרת, התקשורת הסדרתית.

השרת שלך חייב להיות מסוגל לתקשר באופן סדרתי - ב- Node.js ניתן להשיג זאת על ידי פתיחת יציאה באמצעות ספריית "סדרת היציאות". אך תחילה קבע את שם יציאת הארדואינו במחשב המארח את השרת. בהתאם למערכת ההפעלה שלך, ליציאות יהיו שמות שונים, כלומר ב- Windows יציאות אלו נקראות יציאות "COMx", ואילו ב- Linux הן נקראות "/dev/ttyUSBx", כאשר x הוא מספר יציאת ה- USB.

שלב 3: הקמת פרוטוקול של פקודות סדרתיות

קבע פרוטוקול של פקודות סדרתיות
קבע פרוטוקול של פקודות סדרתיות

בתמונה למעלה אתה רואה את קוד ה- IDE האמיתי של Arduino האחראי לבקרת ה- RGB. מטרת שלב זה היא לגרום לשרת שלך ולוח Arduino בכתב עצמי לדבר ביניהם בהצלחה.

לאחר שפתחת את היציאה הטורית שלך בהצלחה, עליך להיות מסוגל לשלוח פקודות ללוח שמטפל ברצונותיך. לדוגמה, אם נמשוך אצבע מעל בורר הצבעים בדף ה- HTML, יש לשלוח את קוד ה- RGB לשרת שאחר כך שולח אותו ל- Arduino שלך כך שהוא יעבד את הערכים שנקבעו.

השתמשתי ב- jscolor, יש להם יישום מצוין של אלמנט בחירת צבעים באיכות גבוהה, שמחזיק בבעלות אירוע בשם "onFineChange" המאפשר נתוני תהליך שלך מבוחר הצבעים ברגע שהערכים שלו משתנים.

מוּמלָץ: