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

מכשירי שמע לשייט: 11 שלבים
מכשירי שמע לשייט: 11 שלבים

וִידֵאוֹ: מכשירי שמע לשייט: 11 שלבים

וִידֵאוֹ: מכשירי שמע לשייט: 11 שלבים
וִידֵאוֹ: 5 הגדרות שכדאי לכם לכבות מיד ב- Windows 11 ! 2024, נוֹבֶמבֶּר
Anonim
Image
Image
חומרת Tale
חומרת Tale

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

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

נדרשת גישה לציוד הלחמה ומדפסת תלת מימד בייצור מכשיר זה.

שלב 1: כתב חומרים

BOM עם קישורים ומחירים

הערה: תזדקק ל -2 סטים מכל האפשרויות הבאות.

מערכת קלט

  • ארדואינו ננו
  • PCB לוח קרש לחם בגודל חצי פרמה של Adafruit
  • מודול משדר אלחוטי nRF24L01
  • Interrupter צילום
  • לוח הפריצות של Sparkfun Photo Interrupter
  • מארז סוללות 9V תואם Arduino
  • סוללה 9V
  • מספר אורכים של 22 חוט מד
  • חוּט
  • מגנטים ניאודימיום
  • אפוקסי

מערכת פלט

  • ארדואינו ננו
  • PCB לוח קרש לחם בגודל חצי פרמה של Adafruit
  • מודול משדר אלחוטי nRF24L01
  • מארז סוללות 9V תואם Arduino
  • פוטנציומטר 1K אוהם
  • נגד 120 אוהם
  • טרנזיסטור 2N3904
  • קבל 0.1 uF
  • רמקול תואם Arduino

קבצי GitHub

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

שלב 2: כלים/מכונות/דרישות תוכנה

כדי לתכנת את Arduino יהיה עליך להוריד את Arduino IDE. את הקישור להורדה ניתן למצוא כאן.

כדי לתכנת את המודול nRF24L01, יהיה עליך להוריד את הספרייה שלו באמצעות Arduino IDE. כלים> נהל ספריות …> התקן את ספריית RF24

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

כדי לבנות את מסגרת המסגרת ואת מארז הרמקולים תזדקק לגישה למדפסת תלת מימד.

שלב 3: חומרת ספרות

חומרת Tale
חומרת Tale
חומרת Tale
חומרת Tale

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

על מנת להימנע מקצר האלקטרוניקה, הקפד לחתוך את עקבות הלוח על השורות ש- nRF24 יכבוש כפי שמוצג בתמונה למעלה.

אחרת תזדקק לכבלי מגשר כדי לחבר את ה- nRF24 ללוח הפרוד.

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

המעגלים עבור מספרות הימין והשמאל זהים לחלוטין.

שלב 4: תוכנת ספרות

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

/** תוכנית שמשתמשת בפוטוגייט לבדיקת סיפורים

*/ #include #include #include #include רדיו RF24 (9, 10); // CE, CSN const by כתובת [6] = "00010"; // --- תוכניות קבוע --- // זמן const int string_check_time = 1; const int flow_check_time = 30; const int base_delay = 5; const int flow_check_delay = 0; const int GATE_PIN = 6; const int GATE_PIN_2 = 7; const int max_when_testing = flow_check_time * 0.6; // הגדר את var לעיל בהתבסס על הניסויים הניסיוניים שלך const int max_in_flow = min (max_when_testing, int (flow_check_time/string_check_time)); const int msg_max_val = 9; // const int string_thresh = 20; #define STRING_THRESH 0.2 // --- תכנית vars --- int num_string_seen = 0; int num_loops = 0; הגדרת void () {// while (! Serial); // לצמחייה // עיכוב (500); num_string_seen = 0; num_loops = 0; pinMode (GATE_PIN, INPUT); pinMode (GATE_PIN_2, INPUT); Serial.begin (115200); // לניפוי באגים של radio.begin (); radio.openWritingPipe (כתובת); radio.setPALevel (RF24_PA_MIN); radio.stopListening (); } לולאת void () {// שים את הקוד הראשי שלך כאן, להפעלה שוב ושוב: if (num_loops % string_check_time == 0) {// לבדוק את מצב המחרוזת check_string (); } if (num_loops == flow_check_time) {// בדוק זרימה //Serial.println(num_string_seen); int flow_num = exam_flow (); // שלח ערכים send_out (flow_num); // אפס vars num_string_seen = 0; num_loops = 0; עיכוב (flow_check_delay); } num_loops ++; עיכוב (base_delay); } / * *שיטה לבדוק אם המחרוזת חוצה את השער * / void check_string () {int string_state = digitalRead (GATE_PIN); //Serial.println(string_state); אם (string_state == 0) {num_string_seen ++; //Serial.println("ראי מחרוזת! "); }

int bot_state = digitalRead (GATE_PIN_2);

אם (bot_state == 0) {num_string_seen--; //Serial.println("מחרוזת בתחתית! "); } //Serial.print("מחרוזת ספירה עוברת: "); //Serial.println(num_string_seen); לַחֲזוֹר; }/ * * שיטה לנתח איזה חלק ממחרוז הזמן כיסה את השער */int exam_flow () {double percent_seen = double (num_string_seen)/max_in_flow; Serial.print ("אחוז מכוסה:"); printDouble (אחוז_נראה, 100); // קנה את הערך לסולם התקשורת int scaled_flow = int (אחוז_נראה * msg_max_val); אם (scaled_flow> msg_max_val) {scaled_flow = msg_max_val; } אם (scaled_flow = 0) frac = (val - int (val)) * דיוק; אחרת frac = (int (val)- val) * דיוק; Serial.println (frac, DEC); }

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

/** תוכנית שמשתמשת בפוטוגייט לבדיקת סיפורים

*/ #include #include #include #include רדיו RF24 (9, 10); // CE, כתובת const byte CSN [6] = "00001"; // --- תוכניות קבוע --- // זמן const int string_check_time = 1; const int flow_check_time = 30; const int base_delay = 5; const int flow_check_delay = 0; const int GATE_PIN = 6; const int GATE_PIN_2 = 7; const int max_when_testing = flow_check_time * 0.6; // הגדר את var לעיל בהתבסס על הניסויים הניסיוניים שלך const int max_in_flow = min (max_when_testing, int (flow_check_time/string_check_time)); const int msg_max_val = 9; // const int string_thresh = 20; #define STRING_THRESH 0.2 // --- תכנית vars --- int num_string_seen = 0; int num_loops = 0; הגדרת void () {// while (! Serial); // לצמחייה // עיכוב (500); num_string_seen = 0; num_loops = 0;

pinMode (GATE_PIN, INPUT);

pinMode (GATE_PIN_2, INPUT); Serial.begin (115200); // לניפוי באגים של radio.begin (); radio.openWritingPipe (כתובת); radio.setPALevel (RF24_PA_MIN); radio.stopListening (); } לולאת void () {// שים את הקוד הראשי שלך כאן, להפעלה שוב ושוב: if (num_loops % string_check_time == 0) {// לבדוק את מצב המחרוזת check_string (); } if (num_loops == flow_check_time) {// בדוק זרימה //Serial.println(num_string_seen); int flow_num = exam_flow (); // שלח ערכים send_out (flow_num); // אפס vars num_string_seen = 0; num_loops = 0; עיכוב (flow_check_delay); } num_loops ++; עיכוב (base_delay); } / * *שיטה לבדוק אם המחרוזת חוצה את השער * / void check_string () {int string_state = digitalRead (GATE_PIN); //Serial.println(string_state); אם (string_state == 0) {num_string_seen ++; //Serial.println("ראי מחרוזת! "); }

int bot_state = digitalRead (GATE_PIN_2);

אם (bot_state == 0) {num_string_seen--; //Serial.println("מחרוזת בתחתית! "); } //Serial.print("מחרוזת ספירה עוברת: "); //Serial.println(num_string_seen); לַחֲזוֹר; }/ * * שיטה לנתח איזה חלק ממחרוז הזמן כיסה את השער */int exam_flow () {double percent_seen = double (num_string_seen)/max_in_flow; Serial.print ("אחוז מכוסה:"); printDouble (אחוז_נראה, 100); // קנה את הערך לסולם התקשורת int scaled_flow = int (אחוז_נראה * msg_max_val); אם (scaled_flow> msg_max_val) {scaled_flow = msg_max_val; } אם (scaled_flow = 0) frac = (val - int (val)) * דיוק; אחרת frac = (int (val)- val) * דיוק; Serial.println (frac, DEC); }

שלב 5: הרכבת ספרות

הרכבה מספר
הרכבה מספר

חלקים בודדים

  • מסגרת ספרות
  • חוּט
  • מעגל בנוי
  • מארז סוללות
  • קלטת חשמל
  • אפוקסי או דבק

STLs להדפסת תלת מימד רכיבים המספרים

  • STL למסגרת המספרת: שמאל, ימין
  • STLs עבור תיבת אלקטרוניקה: למעלה, למטה

הוראות הרכבה

  1. מקם מגנטים לברגים בחריצים של מסגרת המספר המודפסת בתלת -ממד. וודא שהמגנטים מסתדרים כראוי בין המסגרת הימנית למסגרת השמאלית, ולאחר מכן השתמש באפוקסי (או דבק) כדי להדק את המגנטים למסגרת. אפשר לאפוקסי (או לדבק) להתייצב לחלוטין.
  2. מקם את מפרידי הצילום בחריצים העליונים והתחתונים בחלק האחורי של המסגרת. הדבק באפוקסי (או הדבק) את לוחות מפסק הצילום למסגרת. אפשר לאפוקסי (או לדבק) להתייצב לחלוטין
  3. חותכים חתיכת ~ 7 בחתיכת חוט. קושרים קצה אחד של החוט בחריץ של הסרגל האנכי הראשון. חותכים חתיכה קטנה של סרט חשמל ועוטפים את סרט החשמל על קטע החוט שיהיה באזור של מפסיקי הצילום. השחילו את החוט דרך המסגרת כך שיעבור דרך הפער של שער מפסק הצילום.
  4. הנח מגנטים לברגים בחריצים בתחתית תיבת האלקטרוניקה המודפסת בתלת -ממד. וודא שהמגנטים מסתדרים בקו אחד בין התיבה הימנית והקופסה השמאלית, ולאחר מכן השתמש באפוקסי (או דבק) כדי להדק את המגנטים למסגרת. אפשר לאפוקסי (או לדבק) להתייצב לחלוטין.
  5. הנח את מעגל המספר הבנוי בתיבת האלקטרוניקה, ויישר את הרכיבים השונים לחריציהם. סגור את הקופסה עם החלק העליון של תיבת האלקטרוניקה המודפסת בתלת -ממד. אפוקסי (או הדבק) את הסוללה לראש הקופסה כך שהמתג ייחשף.

שלב 6: חומרת רמקולים

חומרת רמקולים
חומרת רמקולים
חומרת רמקולים
חומרת רמקולים
חומרת רמקולים
חומרת רמקולים

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

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

הוראות הרכבה של מועצת המנהלים

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

  1. יש להניח את הארדואינו ננו כנגד הקצה העליון של הלוח במרכז כך שסיכת הווין תהיה ממוקמת ב- G16. זה יאפשר תכנות קל של ה- Arduino Nano לאחר הרכבת המעגל.
  2. לוח nRF24L01 חייב להיות ממוקם בפינה הימנית התחתונה של הלוח המשתרע על שמונת העמדות מ- C1 עד D5. זה ישאיר את nRF24L01 תלוי מהלוח כדי לאפשר תקשורת אלחוטית טובה יותר.
  3. מארז הסוללות למערכת הרמקולים מניע את שני הלוחות, לכן הקפד לחבר את שני מסילות/סיכות ה- GND של Arduino Nano וסיכות Vin לספק הכוח.
  4. עבור המעגל 'התחתון', הפוטנציומטר צריך להיות ממוקם על החלק העליון של הלוח כלפי חוץ כך שהסיכות שלו ימוקמו במיקומים J2, J4 ו- J6

    1. פלט J2, Arduino Nano מפין דיגיטלי 3 (D3)
    2. סיכת בסיס J4 of של טרנזיסטור 2N3904
    3. J6, לא מחובר
  5. עבור המעגל 'העליון', הפוטנציומטר צריך להיות ממוקם בתחתית הלוח כלפי חוץ כך שהסיכות שלו ימוקמו במיקומים J9, J11 ו- J13

    1. פלט J13 ↔ Arduino Nano מפין דיגיטלי 3 (D3)
    2. סיכת בסיס J11 of של טרנזיסטור 2N3904
    3. J9 ↔ לא מחובר

שלב 7: תוכנת רמקולים

להלן הקוד לרמקול המתקשר עם המספר השמאלי. חבר את ה- Arduino Nano בלוח הרמקולים התחתון למחשב שלך, פתח את ה- Arduino IDE, העתק והדבק לתוכו קוד זה והעלה אותו ללוח.

#לִכלוֹל

#include #include רדיו RF24 (7, 8); // CE, CSN // שמאל שמאל, כתובת קבועה קבועה של לוח הרמקולים העליון [6] = "00001"; const int pitch = 2000; const int pitch_duration = 200; const int רמקול = 3; const int delay_gain = 100; int int = 0; int cur_delay = 0; צ'אר קריאה [2]; הגדרת void () {pinMode (רמקול, OUTPUT); Serial.begin (115200); Serial.println ("הפעלת תקשורת אלחוטית …"); radio.begin (); radio.openReadingPipe (0, כתובת); radio.setPALevel (RF24_PA_MIN); radio.startListening (); } loop loop () {if (radio.available ()) {radio.read (& read, sizeof (read)); status = (int) (קרא [0]-'0'); Serial.print ("התקבל:"); Serial.println (סטטוס); cur_delay = delay_gain*סטטוס; } if (cur_delay) {tone (רמקול, גובה, pitch_duration); עיכוב (cur_delay + pitch_duration); Serial.println ("ביפ!"); }}

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

#לִכלוֹל

#include #include רדיו RF24 (7, 8); // CE, CSN // מסמן ימני, כתובת קבועה קבועה של לוח הרמקולים התחתון [6] = "00010"; const int pitch = 1500; const int pitch_duration = 200; const int רמקול = 3; const int delay_gain = 100; int int = 0; int cur_delay = 0; צ'אר קריאה [2]; הגדרת void () {pinMode (רמקול, OUTPUT); Serial.begin (115200); Serial.println ("הפעלת תקשורת אלחוטית …"); radio.begin (); radio.openReadingPipe (0, כתובת); radio.setPALevel (RF24_PA_MIN); radio.startListening (); } loop loop () {if (radio.available ()) {radio.read (& read, sizeof (read)); status = (int) (קרא [0]-'0'); Serial.print ("התקבל:"); Serial.println (סטטוס); cur_delay = delay_gain*סטטוס; } if (cur_delay) {tone (רמקול, גובה, pitch_duration); עיכוב (cur_delay+pitch_duration); Serial.println ("ביפ!"); }}

שלב 8: הרכבת הרמקולים

חלקים בודדים

  • 2 מעגלי רמקולים בנויים
  • 2 רמקולים
  • 1 סוללה

STLs להדפסה תלת מימדית

  • קופסה עליונה
  • תחתית הקופסה

הוראות הרכבה פיזית

  1. מקם בזהירות את מעגלי הרמקולים בתחתית הקופסה, לוח אחד על גבי השני כך שידיות עוצמת הקול נמצאים זה ליד זה ומחליקים לתוך החורים. שבבי התקשורת צריכים להיות חשופים בחלק האחורי של הקופסה.
  2. הנח את הרמקולים בצד שמאל וימין של לוח המעגלים, וודא שהרמקולים תואמים את הצדדים הנכונים. יישר את הרמקולים לחריצים בצידי הקופסה.
  3. הזן את חוטי הסוללה דרך החור הקטן בגב התיבה. אפוקסי (או הדבק) את הסוללה לחלק האחורי של הקופסה כך שהמתג חשוף.
  4. הנח את הקופסה המודפסת בתלת -ממד מעל תחתית התיבה כדי להכיל הכל.

שלב 9: התקנה/הרכבה

התקנה/הרכבה
התקנה/הרכבה
  1. הפעל את מכשירי הטלפון על -ידי הפעלת המתגים על ערכות הסוללה למצב 'ON'. בצע את אותו הדבר לגבי מכלול הרמקולים על מנת להפעיל את מערכת הפלט.
  2. הרכבת טלפונים קוליים מתבצעת בקלות ביותר עם שני אנשים, אך ניתן לבצע זאת עם אחד. לצורך הרכבה על ג'יב שאינו מגלגל, הכי קל היה להלביש את הטלפונים לפני הנפת המפרש.
  3. כדי לוודא שמסגרת המספר מכוונת נכון, הביטו בחריץ באחד הסורגים האנכיים. כאשר מחזיקים את המסגרת זקופה, החריץ צריך להיות כלפי מעלה. צד המסגרת עם מוט זה צריך גם הוא לכיוון חזית הסירה.
  4. הניחו את אחד מסיפורי הגובה בגובה הרצוי ובמיקום על המפרש. יש למקם אותו כך שהחוט נמצא באותו מקום בו היה נמצא אילו היה חלק מסיפור מסורתי.
  5. ברגע שיש לך סיפור אחד במיקום הרצוי. מניחים את סיפור הסיפור השני בצד השני של המפרש, בדיוק מול הראשון שהצבתם, כך שהמגנטים יעמדו בקו אחד. ברגע שהמגנטים יוצרים חיבור הם צריכים להחזיק את המסגרת היטב למפרש. שים את המגנטים של מארזי האלקטרוניקה, לכל סיפור מספר משני צידי המפרש, כך שהם גם מתחברים.
  6. אם אתה מבחין שכאשר המחרוז זורם ישר לאחור הוא אינו חוצה מול השער העליון, סובב את מסגרת המספר כך שהחצי האחורי של המסגרת יפנה כלפי מטה. סובב את המסגרת עד שהחוט עובר דרך מפסק הצילום העליון כאשר החוט זורם ישר אחורה.

שלב 10: פתרון בעיות

בכל פיסות הקוד יש הצהרות הדפסה של ניפוי באגים כדי לציין שהן שולחות, קולטות ומעבדות נתונים. פתיחת יציאת COM באמצעות ה- Arduino IDE עם אחת מתתי מערכות Arduino Nano המחוברות למחשב תאפשר לך לצפות בהודעות הסטטוס האלה.

אם המערכת אינה פועלת כראוי, העבר את המתגים לכל הרכיבים.

שלב 11: הצעדים הבאים האפשריים

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

מוּמלָץ: