כשהתחלתי לחשוב על פרויקט ארדואינו שיאזין לאותות בקוד מורס ויפענח אותם, ידעתי שהבעיה הקשה מבחינתי תהיה קליטת הצליל: אני לא מכיר את תחום המיקרופונים, והשרטוטים של מעגלי האודיו שמצאתי ברשת – גם אם היה בא לי להרכיב משהו שאינני מבין – הצריכו הזמנה של רכיבים והמתנה ממושכת…
עם זאת, במהלך החיפוש אחר חומרים לטור שלי ב-ynet, גיליתי התקן שעושה שימוש פרימיטיבי אך יעיל במיקרופון: נר אלקטרוני. בלי מגברים ובלי מעגלים אנלוגיים מסובכים, עם מיקרופון קטן ומיקרו-בקר בלבד (כך לפחות זה נראה), הנר מצליח להבחין בין שקט יחסי לבין נשיפה ישירה על המיקרופון, ולהדליק או לכבות את נורית ה-LED המובנית. בנוסף, בלי קשר למיקרופון, הנורית מהבהבת מדי פעם באקראי כדי לחקות את אפקט ההבהוב של להבת נר אמתי. מפה לשם, מצאתי את עצמי בתוך פרויקט קטן חדש: נר אלקטרוני משלי, שלא רק כבה ונדלק כשנושפים עליו חזק, אלא גם מהבהב חזק יותר בנשיפה חלשה, כפי שעושים נרות בעולם האמתי. הסרטון הבא הוא ללא סאונד, כדי לחסוך מכם את הרעש הנוראי של הנשיפות שנקלט במצלמה. במקום זה שמתי ליד ה"נר" דגל ניילון קטן שמציין את עוצמת הרוח.
הדרך הנוחה ביותר לקבוע את עוצמת ההארה של נורית ה-LED באמצעות הארדואינו היא להשתמש בפיני ה-PWM. זהו נושא מספיק חשוב ורחב כדי לקבל פוסט שלם – בינתיים רק נאמר שכאשר אנחנו שולחים את הפקודה analogWrite לפין דיגיטלי (כן, דווקא דיגיטלי) שתומך ב-PWM, עם מספר בין 0 ל-255, הפלט משם יתנודד במהירות בין 0 ל-5V לסירוגין, כאשר הקצאת הזמן לכל אחד מהמתחים תלויה במספר ששלחנו.
במילים אחרות, אם נכתוב
int LED_PWM_PIN = 3; // 3,5,6,9,10 or 11 in the Arduino Uno // ... pinMode(LED_PWM_PIN, OUTPUT); analogWrite(LED_PWM_PIN, 55);
אז במשך 55 חלקי 255 מהזמן הפין יוציא 5V, ובשאר הזמן – 200 חלקי 255 – הוא יוציא 0V. כל מחזור שכזה נמשך, בארדואינו, כשתי אלפיות השניה ואינו נתפס כמובן בעין. לצופה מבחוץ זה ייראה פשוט כאילו הנורית מאירה בחמישית העוצמה בערך.
כדי ליצור את אפקט ההבהוב, אם כן, מוציאים לנורית ה-LED אות PWM של 255 רוב הזמן, ומדי פעם – למשך כמה עשרות אלפיות השניה, לא יותר – אות אקראי נמוך יותר. ככל שהאותות האקראיים יופיעו לעתים קרובות יותר, כך ההבהוב הנראה לעין יהיה משמעותי ו"חזק" יותר. ההגדרות הספציפיות בהן השתמשתי לנר שלי אינן חשובות – שחקו עם ההגדרות בעצמכם כדי להשיג את האפקט שהכי מוצא חן בעיניכם.
ועכשיו למיקרופון. הדגם שבו השתמשתי הוא מהפשוטים והזולים ביותר, דומה לזה שבנר האלקטרוני שהיה לי בבית. למיקרופונים כאלה יש הרבה פרמטרים שלא טרחתי בינתיים להתעמק בהם: בדרך של ניסוי וטעייה (הרבה טעייה) פשוט חיברתי למתח מהארדואינו – 3.3V, כי הדגם הזה מיועד לעבוד במתחים נמוכים – וניסיתי לקרוא ערכים דרך פין אנלוגי. לאט לאט הצלחתי להגיע למשהו בעל משמעות: אחרי שהעברתי את המתח דרך נגד (10K), וצירפתי קבל (22uF) בין רגלי המיקרופון, הצלחתי להבחין בתנודות בקלט כאשר נשפתי על המיקרופון.
התנודות היו חלשות ואקראיות, אך צבירה של מספר מדידות רצופות, חישוב ממוצע של הערכים שהתקבלו וחישוב גודל התנודות סביב הממוצע הזה (מה שמכונה בסטטיסטיקה "סטיית תקן") הניבו מדד ראשוני סביר ויציב יחסית לגודל ה"רעש" שהמיקרופון קולט. זה בהחלט לא היה משהו שאפשר להשתמש בו לעיבוד צלילים או לזיהוי יעיל של אותות מורס – למעשה, אפילו שינוי אות ה-PWM גרם להפרעות מסוימות בקלט המיקרופון – רק מספיק טוב בשביל נר אלקטרוני.
אחרי שהגעתי לתוצאות משביעות רצון על מטריצה, הלחמתי את הרכיבים לחתיכה צרה של Stripboard:
את הספים להבהוב חזק ולכיבוי/הדלקה קבעתי גם כן בדרך של ניסוי וטעייה. התוצר הסופי הרבה פחות רגיש מהנר האלקטרוני הקנוי, ועם זאת הוא עושה את העבודה. הגיע הזמן ללמוד לעומק את נושא המיקרופונים, להבין מה בעצם קורה – ואיך להתקדם מכאן לזיהוי של צלילים ולפיענוח הנחשק של קוד מורס…
אגב, עוד בעניין מיקרופונים- הבנתי שאפשר ליצור אינטרקום פשוט אפילו בלי בקר, רק עם חיבורים לסוללה. למישהו יש מושג איך?
מה עם משבש (כן משבש, לא משדר) אותות אלחוטיים זה יכול להיות נחמד כדי לחרפן מיקרופונים אלחוטיים וטלוויזיות (כתוב על זה בביוגרפיה של ג'ובס)
נראה לי שמשבש זה די פשוט – רק למצוא רכיב שמשדר בתדר הנכון, ולהציף את הסביבה בכל הכוח ברעש לבן או בבייטים אקראיים.
יופי של כתבה.
בהחלט עושה חשק להצית את הדמיון עם כמה כאלה.
השתלטות על לווין סובייטי?
בתור רעיון יצירתי לרשת תקשורת? לא נראה לי, הרי גם זה יצריך ציוד רדיו ורשיון תפעול (ואולי גם מקלט אטומי, כשהם יבינו מה אתה עושה 🙂 )
מגניב לאללה. גם אני משתמש עכשיו במיקרופון לאיזה פרוייקט והשתמשתי במעגל הזה:
http://lowvoltage.wordpress.com/2011/05/21/lm358-mic-amp/
לא מאוד מסובך, קבל ו5 נגדים (חוץ מהמגבר)
בגדול מיקרופונים כמו שאתה מראה פה הם קבל משתנה (ככה אני הבנתי מוויקיפדיה לפחות).
אוריאל
איזה פרויקט מקסים ומצחיק 🙂
למי מאיתנו שבור הענייני אלקטרוניקה – האם תוכל להסביר מדוע בעזרת נגד וקבל הצלחת לזקק את האותות? אני מוצא את עצמי משתמש בצירוף הזה במעגלים שונים, פשוט כי כך הם אמורים להיבנות אבל אני לא באמת מבין מדוע. אשמח להסבר – אם זו לא דרישה מוגזמת.
תודה!
אפרופו, הסרטון הוא באיכות בינונית ואחרי דחיסה, אז האפקט נראה בו פחות מרשים מאשר במציאות. בשלב זה, כמו שאמרתי, אני יכול רק לנחש מה בעצם קורה שם, כי מעבר לידע המוגבל מאד שלי בקבלים, אני גם לא יודע מה בעצם קורה בתוך המיקרופון הזה. אני מניח שהקבל הוא לצורך העניין סוללה נטענת זעירה: הוא אוגר את הזרמים העלובים שעוברים דרך המיקרופון בזמן ה"רעש" וצובר אותם לרמות שהארדואינו יכול למדוד, במקום שהסיגנלים החדים וקטנים יחלפו במהירות בין מדידות ו/או מתחת לסף. את הנגד צריך כי המיקרופון עצמו עובד עם זרמים נמוכים (הוא לא פסיבי – יש לו פלוס ומינוס, שאולי משרתים… לקרוא עוד »
הסבר מצויין. תודה.
כרגיל תודה על הפוסט 🙂 וחוץ מזה יש לי שאלה לא קשורה לפוסט – שאין בבלוג איפה לרשום אז ארשום פה:
קניתי לייזר באיביי-http://www.ebay.com/itm/280883260732?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649#ht_3237wt_948
ולא קיבלתי איתו חוברת\דאטהשיט, האם המידע שרשום באיביי מספיק לי? 5V? או שאני צריך לדעת גם את הזרם? (שהוא ניראה לי 1 mA כי ההספק 5mW) האם צריך נגד? ואם אפשר הסבר כללי איך לגשת לרכיב "חדש", כי הזמנתי עוד דברים שצריכים להגיע בקרוב. תודה
הכי טוב להשיג datasheet נורמלי, ובדרך כלל אפשר לבקש מהמוכר לפחות את המספר הקטלוגי, או לחפש רכיב זהה ברשת (אם כי במחירים כאלה, סביר להניח שהרכיב מזויף או ריג'קט מהמפעל, ואז המפרט יהיה רק בגדר המלצה). גם אם לא מוצאים את הרכיב המדויק, רכיבים דומים נוטים להיות בעלי פרמטרים דומים.
אם הרכיב נשאר מסתורי, ואתה לא חייב ביצועים מקסימליים, אפשר פשוט לעשות ניסויים בנפרד, לפני שמשלבים אותו במעגל. להתחיל בקטן (במקרה זה – עם נגד שיגביל ל-1mA למשל), לראות מה קורה ולשנות בהדרגה מה שצריך.
יפה מאוד! אני חשבתי על רעיון מסויים- לאחר שאצבור מספיק (הרבה מאוד) ניסיון בשימוש בארדואינו ,בחשמל ובגלים, חשבתי על הרעיון ללחבר משדר ומקלט רדיו עוצמתיים לארדואינו, וגם מסך ומקלדת. שני מכשירים זהים כאלו יוכלו לתקשר זה עם זה ממרחק, ע"י שליחת הטקסט ביצוג בינארי, אותו יקודד הבקר הקולט. 2 שאלות: 1. זה יוכל לעבוד עם ארדואינו? כלומר זה לא מורכב מדי עבור מיקרו בקר פשוט כמו הATmega328? שאר קשיי הישום הם כבר עניין אחר. 2. זה חוקי? לא צריך אישור ממשרד התקשורת להשתמש בתדרים מסויימים? כמובן שהכל עוד רק רעיון, אין לי בינתיים אפילו חלקיק של הידע והציוד הדרושים, אבל… לקרוא עוד »
מעניין, גם לי יש חלומות על רשת תקשורת עצמאית לגמרי… 🙂 יש משוגעים-לדבר שעושים דברים כאלה, אפרופו, עם כלים קצת יותר חזקים כמו WLAN וחיבורים לאינטרנט (ראה למשל FunkFeuer). וכמובן, יש גם את רדיו החובבים הקלאסי (Ham Radio). 1. היכולת של ארדואינו להתמודד עם דבר כזה תלויה כמובן באיכות הסיגנל שאתה מסוגל לייצר עבורו, בכמות הנתונים שאתה מנסה להעביר ביחידת זמן – ובמשולב עם שני אלה, כמות המשתתפים ברשת. אם מדובר על מקלדת פשוטה, מסך "קונסולה" טקסטואלי כמו פעם, משתתפים בודדים ותקשורת של קילובייטים ספורים בשניה, אני חושב שלא תהיה בעיה. 2. כן, אם אתה משדר בעוצמה ובתדר שיכולים להפריע… לקרוא עוד »
תודה. בדיקה קצרה העלתה שצריך רישיון רדיו חובבים… וזה אומר כל מיני מבחנים במורס ובנהלי קשר, וגם ביסודות החשמל… נו, עוד חזון למועד 🙂
פשוט נצטרך להיות יצירתיים יותר 🙂
כלומר?
תחשוב בגדול. יוני דואר בהנחיית מחשב? תקשורת אקוסטית דרך מערכת הביוב? איתות באור על העננים כמו הזרקור של באטמן? גלי מוח טלפתיים? 🙂