- חומרים נדרשים:
- תרשים מעגל:
- יצירת יישום Android באמצעות עיבוד:
- הבנת קוד העיבוד:
- תכנות את Arduino שלך:
- עיצוב מעגלים ו- PCB באמצעות EasyEDA:
- חישוב והזמנת דוגמאות באופן מקוון:
- עבודה של תצוגת לוח Bluetooth:
בין אם זה הכבישים המהירים הארוכים או דלת הכניסה לרופאים שלך, יש לנו לוחות שלטים שמוצבים בכל מקום כדי לספק לנו מידע. אך לוחות שלטים אלה הם לעיתים קרובות משעממים ולא ניתן להגדירם בהתאם לאינטרס שלנו מעת לעת. אז בפרויקט זה אנו הולכים לבנות לוח שלטים מבוקר Bluetooth באמצעות תצוגת מטריקס 8 * 8. מאפיין ייחודי של פרויקט זה הוא יישום האנדרואיד שלו המאפשר למשתמש לשלוט בכל 64 נוריות ה- LED בנפרד מהטלפון הנייד. זה מאפשר למשתמש ליצור עיצובים מותאמים אישית בקלות ולהציג אותם בתצוגת LED, נשמע מעניין, נכון? !! אז בואו נתחיל…
חומרים נדרשים:
- מיני Arduino Pro
- MAX7219
- מודול Bluetooth HC-05
- 8 * 8 תצוגת מטריקס LED
- נגד 20k
- ג'ק חבית DC
תרשים מעגל:
תרשים המעגל זה לוח LED מבוקר Bluetooth שנבנה באמצעות יישום EasyEDA. נשתמש באותן שרטוטים כדי לפתח ממנה PCB ולייצר אותה באמצעות EasyEDA.
המעגל די ישר קדימה. הפרויקט כולו מופעל על ידי מתאם 12 וולט, אשר ניתן ישירות לסיכת הגלם של לוח הארדואינו. מתח גולמי זה מווסת לאחר מכן ל- + 5V המסופק למודול ה- Bluetooth ול- IC MAX7219. סיכות ה- Tx וה- Rx של מודול ה- Bluetooth מחוברות ל- D11 ו- D10 של ה- Arduino כדי לאפשר חיבור טורי.
הפינים הדיגיטליים D5 עד D7 מחוברים ל- IC MAX7219 כדי לשלוח ולקבל נתונים באמצעות תקשורת SPI. סיכת ISET של MAX7219 נמשכת גבוה דרך נגד 20k.
עבור פרויקט זה יצרתי PCB, תוכלו לקבל את קובץ העיצוב של ה- PCB ולהשתמש בו או לבנות את המעגל על קרש לחם. עם זאת בשל מורכבותו מומלץ לקנות מודול תצוגה 8x8 או להשתמש ב- PCB
מטריצה 8x8 היא מודול תצוגה שימושי מאוד וניתן להשתמש בה בפרויקטים מגניבים רבים:
- שליטה על מטריקס LED 8x8 עם פטל פטל
- גלילת תצוגת טקסט על מטריקס LED 8x8 באמצעות Arduino
- מטריקס 8x8 LED באמצעות Arduino
- ממשק מטריקס 8x8 LED עם מיקרו בקר AVR
יצירת יישום Android באמצעות עיבוד:
לפני שנתחיל לתכנת את Arduino שלנו, עלינו לדעת איזה סוג נתונים נקבל מהטלפון הנייד כדי להשיב אליו. אז בואו נסתכל כיצד נוצרת אפליקציית Android וכיצד תוכלו להשתמש בה בסמארטפון שלכם לשליטה על מטריצת LED 8x8.
אפליקציית Android לפרויקט זה נוצרה באמצעות תוכנת העיבוד. זהו יישום פיתוח קוד פתוח וניתן להוריד אותו בקלות ולהשתמש בפיתוח פרויקטים מעניינים באמצעות ארדואינו או מיקרו-בקרים אחרים מכיוון שהוא יכול לפתח יישומי אנדרואיד ומערכת יישומים. כבר עשינו כמה פרויקטים באמצעות עיבוד ותוכל לבדוק אותם על ידי לחיצה על הקישורים למטה.
- DIY רדיו FM באמצעות עיבוד
- מציאות מדומה / שליטה במחוות באמצעות Arduino
- חדר צ'אט פרטי באמצעות Arduino.
- מערכת מכ"ם Arduino באמצעות עיבוד APP וחיישן קולי
- איתור פנים בזמן אמת ומעקב באמצעות Arduino
- מד מהירות DIY באמצעות Arduino ועיבוד
- משחק פינג פונג באמצעות תאוצה ארדואינו
- רובוט דו-כיווני באמצעות ארדואינו
- מצלמת הדמיה תרמית Arduino DIY
אם נחזור לנושא, אי אפשר להסביר לי את הקוד המלא של יישום האנדרואיד, כך שתצטרך ללמוד לעבד בעצמך ואז להסתכל בקוד כדי להבין איך זה עובד. לפיכך עבור אנשים שמוכנים לדלג על תהליך הלמידה עיבוד יכול להוריד את יישום האנדרואיד מהקישור הבא
- הורד יישום אנדרואיד
להלן הממשק של אפליקציית Android שלנו:
ניתן להתקין את קובץ ה- APK ישירות בכל יישום אנדרואיד ולהשיק אותו כמו כל יישום אחר. אך וודא כי מכשיר ה- Bluetooth שלך HC-05 נקרא בשם "HC-05", מכיוון שרק אז הוא יעבוד.
הבנת קוד העיבוד:
אנשים שמעוניינים לדעת מה קורה מאחורי המסך יכולים לקרוא עוד, אחרים יכולים לדלג לכותרת הבאה. בעיקרון אפליקציית אנדרואיד מתחברת למכשיר בלוטות 'בשם "HC-05" במהלך ההפעלה ומציגה סט של 64 נוריות בצורת מעגלים. ואז כאשר המשתמש לוחץ על המעגל המעגל הופך לאדום ומספר המעגל נשלח לארדואינו באמצעות Bluetooth, עם קבלת מספר המעגל הארדואינו מדליק את ה- LED. בואו נסתכל על השורות החשובות של תוכנית העיבוד כדי להבין טוב יותר. את הקוד השלם של אפליקציית Android ניתן להוריד מהקישור למטה.
- קוד עיבוד ליישום אנדרואיד
אנו משתמשים בכיתות ובאובייקטים כדי להציג 64 נוריות, כך שנוכל לטפל בכל אחד בקלות. כפי שניתן לראות בקוד שלהלן, אנו משתמשים בלולאה for כדי לחזור בין 1 ל -64 באמצעות מערך. זה היה שלכל נורית תהיה הערך שלה של מיקום X, מיקום Y וצבע ואנחנו יכולים לשנות אותם בקלות.
// dipslay כל נוריות עבור (int i = 1; i <= 64; i ++) led_array.display (); // כל נוריות המוצגות בכיתה Led { float X_Pos; צף Y_Pos; צבע צבע; // CONSTRUTOR Led (float tempx, float tempy, color tempc) { X_Pos = tempx; Y_Pos = tempy; צבע = tempc; } חלל תצוגה () { מילוי (צבע); אליפסה (X_Pos, Y_Pos, led_dia, led_dia); } }
נוריות ה- LED נטענות על המסך באותה סדר של זו של התצוגה. כל נורית LED מופרדת על ידי מרחק השווה לקוטר ה- LED, כך אנו יכולים להבחין בקלות באיזו נורית נבחר כעת המשתמש. כפי שמוצג בתוכנית שלהלן אנו יוצרים מערך שבו כל אלמנט מחזיק את המידע על מיקום ה- X, Y והצבע של ה- LED.
בטל load_leds () { led_array = חדש Led; int a = 1; עבור (int j = 0; j <= 7; j ++) { y צף = גובה / 6 + j * (led_dia * 1.5); עבור (int i = 0; i <= 7; i ++) { float x = (width / 6) + i * (led_dia * 1.5); // מילוי (255); // אליפסה (x, y, led_dia, led_dia); led_array = Led חדש (x, y, צבע (255,255,255)); a ++; } } }
השלב העיקרי בתוכנית הוא לבדוק אם המשתמש לחץ על נורית כלשהי ואם כן עלינו לשנות את צבע הלד ולשלוח את מספר ה- LED דרך Bluetooth. מכיוון שעכשיו אנו יכולים להתייחס למיקום ולצבע של כל נורית LED בקלות, אנו יכולים לעשות זאת על ידי השוואה של ערכי ה- X, Y של המקום בו המשתמש לחץ על ערך ה- X, Y של נוריות ה- LED. אם הערכים מתמזגים זה בזה, אנו משנים את מצב ה- LED וגם שולחים את המספר דרך Bluetooth כפי שמוצג להלן.
// בדוק אם העכבר מעל לד // אם כן שלח את מספר ה- led עבור (int i = 1; i <= 64; i ++) { if ((mouseX <(led_array.X_Pos + led_dia / 2)) && (mouseX> (led_array.X_Pos - led_dia / 2)) && (mouseY <(led_array.Y_Pos + led_dia / 2)) && (mouseY> (led_array.Y_Pos - led_dia / 2))) {led_array = Led חדש (led_array.X_Pos, led_array. Y_Pos, led_color); נתוני בתים = {בת (i)}; שידור bt. (נתונים); } }
מלבד זאת, התוכנית יכולה גם לאפס את ה- LED השלם על ידי כיבוי כולם וגם ניתן להפוך את הנורית לאדומה (ON) או לבנה (OFF), כך שיש לנו גם כפתור להחלפה. כפתור ההחלפה מוצג ומחכה להזנה. אם לוחצים עליו תתבצע הפעולה המתאימה. הקוד לעשות את אותו הדבר מוצג להלן כפונקציה הנקראת בתוך לולאת הציור.
כפתורי load_button () { rectMode (CENTRE); textAlign (CENTER, CENTRE); noStroke (); מילוי (# 1BF2D4); ישר (רוחב / 2 רוחב / 4, גובה / 1.3, רוחב / 4, גובה / 12); מילוי (0); טקסט ("איפוס", רוחב / 2 רוחב / 4, גובה / 1.3); // כפתור 1 אם (אדום == נכון) {fill (# 080F89); ישר (רוחב / 2 + רוחב / 4, גובה / 1.3, רוחב / 4, גובה / 12); מילוי (255,0,0); טקסט ("אדום", רוחב / 2 + רוחב / 4, גובה / 1.3);} // כפתור 2 אם (אדום == שקר) {מילוי (# 080F89); ישר (רוחב / 2 + רוחב / 4, גובה / 1.3, רוחב / 4, גובה / 12); מילוי (255); טקסט ("WHITE", רוחב / 2 + רוחב / 4, גובה / 1.3);} // כפתור 2 } ריק כפתורי קריאה () { if (mousePressed && click_flag == true) { color_val = get (mouseX, mouseY); click_flag = false; if (color_val == - 14945580) { data byte = {0}; שידור bt. (נתונים); println ("RESET"); load_leds (); // טען את כל הוביל במיקום ובצבע } אם (color_val == - 16248951) { data byte = {100}; שידור bt. (נתונים); אם (אדום == נכון) אדום = שקר; אחרת אם (אדום == שקר) אדום = נכון; println ("TOGGLE"); } color_val = 0; } }
תכנות את Arduino שלך:
תכנית Arduino המוחלטת לכך Bluetooth נשלטה פרויקט מועצה אלחוטי ניתן בתחתית המסך הזה; אתה יכול להשתמש בו ישירות ולהעלות אותו ללוח שלך. השורות החשובות בתוכנית מוסברות להלן.
מודול ה- Bluetooth מחובר לסיכה 10 ו -11, ולכן עלינו להשתמש בסידרת התוכנה כדי לאפשר תקשורת טורית על פינים אלה ואז נוכל להאזין לנתונים מהסיכות הללו. אנו מקבלים את הנתונים המתקבלים ממודול ה- Bluetooth ושומרים אותם במשתנה שנקרא נכנס . אם ערך הכניסה הוא "0" נכבה את כל נורית הנורית באמצעות הקוד שלמטה
אם (BT.available ()) { נכנס = BT.read (); Serial.println (נכנס); אם (נכנס == 0) m.clear (); // מנקה את התצוגה
באמצעות ערכי הכניסה עלינו לקבוע איזה נורית המשתמש לחץ על הטלפון הנייד ומזג האוויר כדי להדליק או לכבות את הנורית. אז אנחנו בודקים אם הערך שווה ל 100. אם הערך הוא 10, זה אומר שהמשתמש ביקש להחליף את צבע ה- LED. אז אנו מחליפים את המשתנה האדום כדי לדעת אם יש להדליק או לכבות את ה- LED.
אחרת אם (נכנס == 100) // בדוק אם עלינו להדליק או להדליק את הנורית { אם (אדום == נכון) אדום = שקר; אחרת אם (אדום == שקר) אדום = נכון; Serial.print ("אדום:"); Serial.println (אדום); }
לבסוף אם הערך הוא מ- 65 המשמעות היא שהמשתמש לחץ על נורית LED. בהתבסס על המספר שבין 1 ל -64 עלינו לקבוע על איזו נורית LED המשתמש לחץ. כדי להחליף נורית זו נצטרך את הערך של שורה ועמודה של נורית LED המחושבת ומאוחסנת במשתנה X ו- Y בהתאמה ומוצגת בקוד שלמטה. לבסוף בהתבסס על הערך של האדום המשתנה אנו מדליקים או מכבים את ה- LED לפי בקשת המשתמש
אחרת אם (נכנס <= 64) {// חשב מהי הפעלה ro OFF כיבוי הנורית = true; Y = נכנס / 8; X = נכנס - (Y * 8); אם (נכנס% 8 == 0) {X = 8; Y - = 1;} Serial.println (X - 1); Serial.println (Y); אם (אדום == נכון) m.setDot ((X - 1), (Y), נכון); // נורית נורית אחרת אם (אדום == שקר) m.setDot ((X - 1), (Y), שקר); // נורית כיבוי }
עיצוב מעגלים ו- PCB באמצעות EasyEDA:
לעיצוב תצוגת מטריקס מבוקרת זו בחרנו בכלי ה- EDA המקוון הנקרא EasyEDA. בעבר השתמשתי ב- EasyEDA פעמים רבות ומצאתי שזה מאוד נוח לשימוש מכיוון שיש בו אוסף טוב של עקבות והוא קוד פתוח. לאחר תכנון ה- PCB, אנו יכולים להזמין את דגימות ה- PCB על ידי שירותי ייצור PCB בעלות נמוכה. הם מציעים גם שירות מקורות רכיבים כאשר יש להם מלאי גדול של רכיבים אלקטרוניים ומשתמשים יכולים להזמין את הרכיבים הנדרשים שלהם יחד עם הזמנת ה- PCB.
בעת תכנון המעגלים וה- PCB שלך, אתה יכול גם להפוך את המעגלים והעיצובי שלך למעגלים ציבוריים לציבוריים, כך שמשתמשים אחרים יוכלו להעתיק או לערוך אותם ויוכלו להפיק תועלת מהעבודה שלך. הפכנו גם את כל פריסות המעגל וה- PCB לציבוריות למעגל זה, בדוק הקישור למטה:
easyeda.com/circuitdigest/8x8-led-matrix-display-control-with-bluetooth
באפשרותך להציג כל שכבה (עליונה, תחתונה, עלי טופס, שמן תחתון וכו ') של ה- PCB על ידי בחירת השכבה מחלון' שכבות '.
אתה יכול גם להציג את ה- PCB, איך זה ייראה לאחר ייצור באמצעות כפתור Photo View ב- EasyEDA:
חישוב והזמנת דוגמאות באופן מקוון:
לאחר השלמת העיצוב של PCB מטריקס מבוקר זה, תוכלו להזמין את ה- PCB דרך JLCPCB.com. כדי להזמין את ה- PCB מ- JLCPCB, אתה זקוק ל- Gerber File. כדי להוריד קבצי גרבר של ה- PCB שלך פשוט לחץ על כפתור פלט הייצור בדף העורך של EasyEDA ואז הורד מדף ההזמנה של PCB של EasyEDA.
עכשיו עבור אל JLCPCB.com ולחץ על ציטוט עכשיו או כפתור, ואז אתה יכול לבחור את מספר PCB שאתה רוצה להזמין, כמה שכבות נחושת אתה צריך, עובי PCB, משקל נחושת ואפילו את צבע PCB, כמו תמונת המצב מוצג להלן:
לאחר שבחרת את כל האפשרויות, לחץ על "שמור לעגלה" ואז תועבר לדף בו תוכל להעלות את קובץ הגרבר שלך שהורדנו מ- EasyEDA. העלה את קובץ הגרבר שלך ולחץ על "שמור לעגלה". ולבסוף לחץ על Checkout בצורה מאובטחת כדי להשלים את ההזמנה שלך, ואז תקבל את לוחות ה- PCB שלך כעבור כמה ימים. הם מייצרים את ה- PCB בקצב נמוך מאוד שהוא 2 $. זמן הבנייה שלהם הוא גם פחות, כלומר 48 שעות עם אספקת DHL של 3-5 ימים, בעיקרון תקבלו את ה- PCB שלכם תוך שבוע מרגע ההזמנה.
לאחר מספר ימים של הזמנת PCB קיבלתי את דגימות ה- PCB באריזה יפה כפי שמוצג בתמונות למטה.
ואחרי שקיבלתי את החלקים האלה הלחמתי את כל הרכיבים הנדרשים על גבי PCB.
ב- PCB שלי, טעיתי בוטה בבחירת טביעת הרגל הלא נכונה עבור מודול התצוגה 8 * 8, ולכן הייתי צריך להשתמש בלוח Perf כדי להרכיב את התצוגה כמוצג בתמונה. אך כעת טביעת הרגל מתעדכנת ב- PCB ותוכל להזמין את ה- PCB המתוקן ולהרכיב את מודול התצוגה בקלות.
עבודה של תצוגת לוח Bluetooth:
ברגע שאתה מוכן עם החומרה באמצעות השגת ה- PCB או יצירת החיבור על קרש הלוח, השתמש בתכנית Arduino שניתנה בסוף העמוד והעלה אותו ללוח Arduino שלך. קובץ APK יישום אנדרואיד גם מסופק מעל, להשתמש בו ולהתקין את היישום במכשיר אנדרואיד המועדף עליך.
הפעל את החומרה וחפש שם מכשיר HC-05 בטלפון שלך כדי להתאים אליו. מקש המעבר יהיה 1234 כברירת מחדל. לאחר מכן, פתח את היישום שהתקנו זה עתה. היישום אמור להציג " מחובר ל- HC-05 " בחלקו העליון של המסך, ואז תוכל לגעת בנורית הנורית על המסך ולשים לב שאותה נורית מופעלת גם בלוח.
ניתן גם לכבות את כל נוריות הלחץ על ידי לחיצה על כפתור האיפוס ולהחליט להדליק או לכבות נורית מסוימת על ידי לחיצה על כפתור המתג. כברירת מחדל, אילו נוריות LED שתלחץ יופעלו את העבודה המלאה של הפרויקט ניתן למצוא בסרטון למטה. אם יש לך בעיה לגרום לזה לעבוד השתמש בתיבת ההערות למטה או כתוב בפורומים שלנו לקבלת עזרה טכנית נוספת. מקווה שהבנת את ההדרכה ונהנית לבנות אותה.