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

מחולל מוזיקה מבוסס מזג אוויר (מחולל מידי מבוסס ESP8266): 4 שלבים (עם תמונות)
מחולל מוזיקה מבוסס מזג אוויר (מחולל מידי מבוסס ESP8266): 4 שלבים (עם תמונות)

וִידֵאוֹ: מחולל מוזיקה מבוסס מזג אוויר (מחולל מידי מבוסס ESP8266): 4 שלבים (עם תמונות)

וִידֵאוֹ: מחולל מוזיקה מבוסס מזג אוויר (מחולל מידי מבוסס ESP8266): 4 שלבים (עם תמונות)
וִידֵאוֹ: דניאל שמאכטנברגר: האם הטכנולוגיה תהרוס אותנו? 2024, נוֹבֶמבֶּר
Anonim
מחולל מוזיקה מבוסס מזג אוויר (מחולל מידי מבוסס ESP8266)
מחולל מוזיקה מבוסס מזג אוויר (מחולל מידי מבוסס ESP8266)
מחולל מוזיקה מבוסס מזג אוויר (מחולל מידי מבוסס ESP8266)
מחולל מוזיקה מבוסס מזג אוויר (מחולל מידי מבוסס ESP8266)

היי, היום אסביר כיצד להכין מחולל מוזיקה קטן מבוסס מזג אוויר.

הוא מבוסס על ESP8266, שהוא בערך כמו ארדואינו, והוא מגיב לטמפרטורה, גשם ועוצמת אור.

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

אספקה

ESP8266 (אני משתמש ב- Huzzah Feather ESP8266 מבית Adafruit)

חיישן טמפרטורה, לחות ולחץ ברומטרי BME280 (גרסת I2C)

חיישן גשם של Arduino

25K LDR (התנגדות תלויה באור)

כמה נגדים (שניים 47, אחד 100, אחד 220 ואחד 1k אוהם)

מחבר מידי נשי (דין 5 פינים) מתאים להתקנת PCB

חוטי מגשר

לוח לחם או סוג של לוח אב טיפוס

מחשב, אני אשתמש במערכת הפעלה Windows 8.1, אך היא אמורה לפעול על כל מערכת הפעלה למיטב ידיעתי.

אופציונלי: סוללת LiPo 1250 מיליאמפר / שעה עם מחבר JST מבית Adafruit (תואם רק לכמה ESP)

שלב 1: שלב 1: תוכנה

קודם כל אתה צריך את Arduino IDE.

אז אתה צריך את מנהל ההתקן SiLabs CP2104 ואת חבילת הלוח ESP8266.

זה מאפשר למחשב שלך לתכנת את ה- ESP באמצעות ה- UART המובנה ומאפשר ל- Arduino IDE לתכנת את ה- ESP.

תוכל למצוא את כל המידע אודות חבילת ה- IDE, הנהג והלוח בדף זה באתר Adafruit.

תצטרך גם את ספריית Midi Arduino כדי לשלוח נתוני Midi. אפשר להסתדר בלי, אבל זה פשוט הופך את הכל להרבה יותר קל.

כדי לתקשר עם BME280 השתמשתי בספריית BME280-I2C-ESP32 זו. (זה לגרסת I2C של BME280)

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

שלב 2: שלב 2: חומרה

שלב 2: חומרה
שלב 2: חומרה
שלב 2: חומרה
שלב 2: חומרה
שלב 2: חומרה
שלב 2: חומרה

בסדר אז סוף סוף נגיע לדברים הטובים, לחומרה.

כאמור, השתמשתי ב- ESP Adafruit זה, אך הוא אמור לעבוד מצוין עם NodeMCU. אני ממליץ על גרסת V2 מכיוון שאני מאמין שהיא מתאימה הרבה יותר ללוח לחם ותוכלו להשיג אותם בזול מאוד מאיביי או מ- AliExpress. אני אוהב את העובדה של- Adafruit ESP יש מעבד מהיר יותר, מגיע עם מחבר JST נקבה ל- LiPo ומעגל טעינה. זה גם קצת יותר קל להבין באיזה סיכה אתה משתמש. אני מאמין שב- NodeMCU הסיכה שכותרתה D1 היא למעשה GPIO5 למשל, כך שתמיד צריך תרשים Pinout שימושי. לא בעיה גדולה בכלל, אבל רק נוחה למתחילים הם סימנו את Adafruit בצורה כה ברורה.

ראשית בואו נחבר את BME280, כי יש כמה וריאציות לדגם הזה. כפי שאתה יכול לראות מהתמונות שלי יש חור אחד גדול, אבל יש גם כמה עם 2 חורים. אתה יכול לראות שיש לו 4 כניסות ויציאות, אחת עבור הספק, אחת עבור קרקע ו- SCL ו- SDA. המשמעות היא שהיא מתקשרת באמצעות I2C. אני מאמין שדגמים אחרים מתקשרים באמצעות SPI. ובחלקם אתה יכול לבחור SPI או I2C. SPI עשוי לדרוש ספרייה אחרת או לפחות קוד שונה וחיווט שונה. אני גם מאמין שה- S ב- SPI מייצג סידורי ואני לא יכול לומר אם זה יפריע לחלק המידי של הפרויקט הזה מכיוון שהוא פועל גם באמצעות חיבור סידורי.

חיבור ה- BME הזה די פשוט קדימה. ב- ESP8266 אתה יכול לראות את סיכה 4 ו -5 מתויגות SDA ו- SCL בהתאמה. פשוט חבר את הסיכות האלה ישירות לסיכה SDA ו- SCL ב- BME. כמובן גם לחבר את VIN למעקה החיובי של לוח הלחם ו- GND למעקה השלילי. אלה בתורם מחוברים לסיכה 3V3 ו- GND של ה- ESP.

בשלב הבא נחבר את ה- LDR. בדוגמה Fritzing אתה יכול לראות את 3.3 וולט עובר נגד, ואז הוא מפוצל ל- LDR ונגד אחר. לאחר מכן לאחר LDR הוא מתחלק שוב לנגד ול- ADC.

זה כדי להגן על ה- ESP מפני מתח גבוה מדי וכדי לוודא שהוא מקבל ערכים קריאים. ה- ADC יכול להתמודד עם 0-1 וולט אך ה- 3V3 מספק 3.3 וולט. סביר להניח שזה לא יפוצץ דבר אם תעלה על 1 וולט, אבל זה לא יעבוד טוב.

אז ראשית אנו משתמשים במפריד מתח באמצעות נגדים של 220 ו -100 אוהם כדי להוריד את המתח מ -3.3 ל -1.031 וולט. ואז LDR 25k ohm ונגד 1k ohm יוצרים עוד מתח מתח שמוריד את המתח מכל מקום בין 1.031 ל 0 וולט תלוי בכמות האור שה- LDR מקבל.

אז יש לנו את חיישן הגשם. בחלק אחד כתוב FC-37, בחלק השני כתוב HW-103. בדיוק קניתי את הראשון שמצאתי ב- Ebay שאמר שהוא יכול להתמודד עם 3.3 ו -5 וולט. (אני חושב שכולם יכולים).

זה די פשוט קדימה, נוכל להשתמש ביציאה אנלוגית, אבל אנחנו יכולים פשוט לסובב את הטרימפוט הזעיר כדי שהחיישן יהיה רגיש ככל שתרצה (וכבר השתמשנו בסיכה האנלוגית היחידה שלנו ב- ESP). כמו שאר החיישנים, עלינו לספק כוח מהמעקה החיובי ולחבר אותו למעקה הקרקע. לפעמים סדר הפינים משתנה. בשלי זה VCC, Ground, Digital, Analog, אבל בתמונת Fritzing זה שונה. אבל אם רק שימו לב זה אמור להיות קל לתקן.

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

כפי שניתן לראות מהסכימה, המתח החיובי והאות הסידורי עוברים שניהם נגד 47 אוהם.

אם אתה עושה את הפרויקט הזה עם Arduino Uno למשל הקפד להשתמש בנגדים של 220 אוהם! אלה ESP עובד על היגיון 3.3 V, אבל רוב Arduino להשתמש 5.0 V כך שאתה צריך להגביל את הזרם שעובר דרך כבל Midi יותר.

ולבסוף חבר את הסיכה האמצעית למעקה הקרקע. 2 הסיכות האחרות מ- 5 Pin Din אינן בשימוש.

שלב 3: שלב 3: קוד

ולבסוף יש לנו את הקוד!

בקובץ ה- Zip הזה שמתי 2 סקיצות. 'LightRainTemp' פשוט בודק את כל החיישנים ושולח בחזרה את ערכיהם. (הקפד לפתוח את חלון הטרמינל!)

וכמובן יש לנו את המערכון LRTGenerativeMidi (LRT מייצג אור, גשם, טמפרטורה).

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

אבל את אלה אצטרך לסיים קודם כל בעיצוב וקידוד. הודע לי אם אתה רוצה להישאר מעודכן לגבי פרויקטים אחרים. לא החלטתי אם אכין עוד מדריכים או אעשה סדרת וידיאו.

שלב 4: שלב 4: חבר אותו ובדוק אותו

ועכשיו הגיע הזמן לבדוק את זה!

כל שעליך לעשות הוא לחבר כבל Midi, הקפד להגדיר את ה- Synth/Keyboard שלך שיגיב לערוץ 1 או שנה את הערוץ בקוד Arduino ובדוק אם הוא עובד!

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

אני גם סקרן לראות אם זה עובד היטב עם כל הסינתיסייזרים. ב- Volca Bass שלי זה עובד בצורה מושלמת, אבל בנויטרון שלי ה- LFO נתקע ברגע שאני שולחת Midi Note. זה בסדר כשאני מפעיל אותו מחדש, אבל זה מוזר. אני לא בטוח אם יש משהו בספריית המידי או בקוד שלי, אולי אנסה לעשות זאת ללא ספרייה בקרוב ולראות אם זה משתפר.

תודה שקראתם וצפיתם ובהצלחה !!

מוּמלָץ: