جدول المحتويات:

حكايات مسموعة للإبحار: 11 خطوة
حكايات مسموعة للإبحار: 11 خطوة

فيديو: حكايات مسموعة للإبحار: 11 خطوة

فيديو: حكايات مسموعة للإبحار: 11 خطوة
فيديو: الرحلة العجيبة.. من أروع القصص والروايات الخيالية #حكايات#شعبية#عربية لنوم هادئ. 2024, يوليو
Anonim
Image
Image
أجهزة Telltale
أجهزة Telltale

Telltales عبارة عن قطع من الخيوط المستخدمة في الإبحار للإشارة إلى ما إذا كان هناك تدفق مضطرب أو تدفقات صفائحية عبر الشراع. ومع ذلك ، فإن قطع الغزل الملونة المختلفة المرتبطة بكل جانب من جوانب الشراع هي مؤشرات بصرية بحتة. هذه الحكايات المسموعة عبارة عن جهاز مساعد يهدف إلى توصيل المعلومات المرئية في شكل سمعي لكل من البحارة المبصرين والمعاقين بصريًا ، مثل بولين.

يتكون الجهاز من نظام إدخال يقرأ حركة المنبه ونظام إخراج يصدر سلسلة من الإشارات الصوتية لنقل معلومات تدفق الهواء.

يلزم الوصول إلى معدات اللحام والطابعة ثلاثية الأبعاد في تصنيع هذا الجهاز.

الخطوة 1: فاتورة المواد

BOM مع الروابط والأسعار

ملاحظة: ستحتاج إلى مجموعتين من كل ما يلي.

نظام الإدخال

  • اردوينو نانو
  • Adafruit perma-proto نصف حجم اللوح ثنائي الفينيل متعدد الكلور
  • وحدة الإرسال والاستقبال اللاسلكية nRF24L01
  • قاطع الصور
  • Sparkfun Photo Interrupter Board
  • حزمة بطارية متوافقة مع Arduino 9V
  • بطارية 9 فولت
  • عدة أطوال من سلك قياس 22
  • غزل
  • مغناطيس النيوديميوم
  • الايبوكسي

نظام الإخراج

  • اردوينو نانو
  • Adafruit perma-proto نصف حجم اللوح ثنائي الفينيل متعدد الكلور
  • وحدة الإرسال والاستقبال اللاسلكية nRF24L01
  • حزمة بطارية متوافقة مع Arduino 9V
  • 1 كيلو أوم مقياس الجهد
  • 120 أوم المقاوم
  • 2N3904 الترانزستور
  • 0.1 مكثف فائق التوهج
  • مكبر صوت متوافق مع اردوينو

ملفات جيثب

  • يمكن العثور على جميع ملفات التعليمات البرمجية وملفات STL اللازمة لإنشاء هذه الحكايات في مستودع GitHub هذا.
  • ستحتاج إلى مجموعتين من العلبة ، وواحدة من مبيت السماعة.

الخطوة 2: الأدوات / الآلات / متطلبات البرامج

لبرمجة Arduino ، ستحتاج إلى تنزيل Arduino IDE. يمكن العثور على رابط التنزيل هنا.

لبرمجة الوحدة النمطية nRF24L01 ، ستحتاج إلى تنزيل مكتبتها من خلال Arduino IDE. أدوات> إدارة المكتبات…> تثبيت مكتبة RF24

لتجميع المكونات الإلكترونية ، يلزم الوصول إلى أدوات اللحام الأساسية. قد تكون مضخة إزالة اللحام مفيدة أيضًا ولكنها ليست ضرورية.

لإنشاء إطار وحالة مكبر الصوت ، ستحتاج إلى الوصول إلى طابعة ثلاثية الأبعاد.

الخطوة 3: Telltale Hardware

أجهزة Telltale
أجهزة Telltale
أجهزة Telltale
أجهزة Telltale

قم بتجميع الدائرة وفقًا للمخططات أعلاه. يجب محاذاة Arduino Nano مع الجزء العلوي من اللوحة الأولية. يتيح لك ذلك الوصول إلى منفذ USB حتى بعد توصيل جميع الأجهزة الإلكترونية.

لتجنب اختصار الإلكترونيات ، تأكد من قطع آثار اللوحة الأولية على الصفوف التي سيشغلها nRF24 كما هو موضح في الصورة أعلاه.

وإلا فستحتاج إلى كبلات توصيل لتوصيل nRF24 باللوحة الأولية.

لم يتم تصوير اتصال المقاوم ، GND ، وأسلاك 5V لمقطع الصورة. قم بربط قاطع الصور كما هو موضح على لوحة الفصل. يتم تضمين صورة لوحة الاختراق.

دوائر الحكايات اليمنى واليسرى متطابقة تمامًا.

الخطوة 4: برنامج Telltale

هذا هو رمز منبهة الحق. قم بتوصيل nano الخاص بـ Right telltale بجهاز الكمبيوتر الخاص بك ، وافتح Arduino IDE ، وانسخ هذا الرمز والصقه فيه ، وقم بتحميله على اللوحة.

/ ** برنامج يستخدم برنامج فوتوجيت لفحص الحكاية

* / #include # include # include # include RF24 radio (9 ، 10) ؛ // CE، CSN عنوان بايت ثابت [6] = "00010" ؛ // --- program consts --- // time 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 // --- متغيرات البرنامج --- int num_string_seen = 0 ؛ عدد الحلقات العددية = 0 ؛ إعداد باطل () {// while (! Serial) ؛ // للنباتات // تأخير (500) ؛ num_string_seen = 0 ؛ عدد_ حلقات = 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 loop () {// ضع الكود الرئيسي هنا ، للتشغيل بشكل متكرر: if (num_loops٪ string_check_time == 0) {// check string state check_string ()؛ } if (num_loops == flow_check_time) {// فحص التدفق //Serial.println(num_string_seen) ؛ int flow_num = study_flow () ؛ // إرسال القيم send_out (flow_num) ؛ // إعادة تعيين vars num_string_seen = 0 ؛ عدد_ حلقات = 0 ؛ تأخير (flow_check_delay) ؛ } عدد_ حلقات ++ ؛ تأخير (تأخير أساسي) ؛ } / * * طريقة للتحقق مما إذا كانت السلسلة تتخطى البوابة * / void check_string () {int string_state = digitalRead (GATE_PIN) ؛ //Serial.println(string_state) ؛ إذا (string_state == 0) {num_string_seen ++ ؛ //Serial.println("Saw string! ") ؛ }

int bot_state = digitalRead (GATE_PIN_2) ،

إذا (bot_state == 0) {num_string_seen-- ؛ //Serial.println("string on bottom! ") ؛ } //Serial.print(" تمرير سلسلة العد: ")؛ //Serial.println(num_string_seen) ؛ إرجاع؛ } / * * طريقة لتحليل أي جزء من السلسلة الزمنية غطت البوابة * / int study_flow () {double percent_seen = double (num_string_seen) / max_in_flow؛ Serial.print ("النسبة المئوية المغطاة:") ؛ printDouble (percent_seen، 100)؛ // مقياس القيمة إلى مقياس الاتصال int scaled_flow = int (percent_seen * 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 radio (9 ، 10) ؛ // CE، CSN عنوان بايت ثابت [6] = "00001" ؛ // --- program consts --- // time 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 // --- program vars --- int num_string_seen = 0 ؛ عدد الحلقات العددية = 0 ؛ إعداد باطل () {// while (! Serial) ؛ // للنباتات // تأخير (500) ؛ num_string_seen = 0 ؛ عدد_ حلقات = 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 loop () {// ضع الكود الرئيسي هنا ، للتشغيل بشكل متكرر: if (num_loops٪ string_check_time == 0) {// check string state check_string ()؛ } إذا (num_loops == flow_check_time) {// فحص التدفق //Serial.println(num_string_seen) ؛ int flow_num = study_flow () ؛ // إرسال القيم send_out (flow_num) ؛ // إعادة تعيين vars num_string_seen = 0 ؛ عدد_ حلقات = 0 ؛ تأخير (flow_check_delay) ؛ } عدد_ حلقات ++ ؛ تأخير (تأخير أساسي) ؛ } / * * طريقة للتحقق مما إذا كانت السلسلة تتخطى البوابة * / void check_string () {int string_state = digitalRead (GATE_PIN) ؛ //Serial.println(string_state) ؛ إذا (string_state == 0) {num_string_seen ++ ؛ //Serial.println("Saw string! ") ؛ }

int bot_state = digitalRead (GATE_PIN_2) ،

إذا (bot_state == 0) {num_string_seen-- ؛ //Serial.println("string on bottom! ") ؛ } //Serial.print(" تمرير سلسلة العد: ")؛ //Serial.println(num_string_seen) ؛ إرجاع؛ } / * * طريقة لتحليل أي جزء من السلسلة الزمنية غطت البوابة * / int exam_flow () {double percent_seen = double (num_string_seen) / max_in_flow؛ Serial.print ("النسبة المئوية المغطاة:") ؛ printDouble (percent_seen، 100)؛ // مقياس القيمة إلى مقياس الاتصال int scaled_flow = int (percent_seen * 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: تجميع Telltale

جمعية Telltale
جمعية Telltale

الأجزاء الفردية

  • إطار Telltale
  • غزل
  • دارة منبهة شيدت
  • علبة بطاريات
  • شريط كهربائي
  • الايبوكسي أو الغراء

STLs للطباعة ثلاثية الأبعاد للمكونات المنبثقة

  • STL للإطار المنبّه: يسار ، يمين
  • STLs لصندوق الإلكترونيات: أعلى ، أسفل

تعليمات التجميع

  1. ضع مغناطيس البار في فتحات إطار المنبه المطبوع ثلاثي الأبعاد. تأكد من محاذاة المغناطيس بشكل صحيح بين الإطار الأيمن والإطار الأيسر ، ثم استخدم الإيبوكسي (أو الغراء) لتأمين المغناطيس بالإطار. اسمح للإيبوكسي (أو الغراء) بالتثبيت تمامًا.
  2. ضع المقاطعات للصور في الفتحات العلوية والسفلية في الجزء الخلفي من الإطار. بعناية الايبوكسي (أو الغراء) لوحات تقاطع الصور في الإطار. اسمح للإيبوكسي (أو الغراء) بالتثبيت تمامًا
  3. قطع ~ 7 في قطعة من الغزل. اربط أحد طرفي الخيط عند شق أول شريط رأسي. قم بقص قطعة صغيرة من الشريط الكهربائي ولف الشريط الكهربائي فوق جزء الغزل الذي سيكون في منطقة مقاطعة الصور. قم بربط الخيط عبر الإطار بحيث يمر عبر فجوة بوابة قاطع الصورة.
  4. ضع مغناطيس البار في فتحات أسفل صندوق الإلكترونيات المطبوعة ثلاثية الأبعاد. تأكد من محاذاة المغناطيس بشكل صحيح بين الصندوق الأيمن والمربع الأيسر ، ثم استخدم الإيبوكسي (أو الغراء) لتأمين المغناطيس بالإطار. اسمح للإيبوكسي (أو الغراء) بالتثبيت تمامًا.
  5. ضع الدائرة المنبثقة المنشأة في صندوق الإلكترونيات ، مع محاذاة المكونات المختلفة إلى فتحاتها. أغلق المربع الذي يحتوي على أعلى صندوق إلكترونيات مطبوع ثلاثي الأبعاد. الإيبوكسي (أو الصمغ) حزمة البطارية إلى أعلى الصندوق بحيث يكون المفتاح مكشوفًا.

الخطوة 6: جهاز مكبر الصوت

أجهزة مكبر الصوت
أجهزة مكبر الصوت
أجهزة مكبر الصوت
أجهزة مكبر الصوت
أجهزة مكبر الصوت
أجهزة مكبر الصوت

يتكون نظام الإخراج من دائرتين للسماعات ، واحدة لكل منبهة ، ومجهزة باتصال لاسلكي ومقبض لضبط مستوى الصوت. أولاً ، قم بإعداد الألواح الأولية للاستخدام مع وحدات nRF24L01 كما فعلنا مع الدوائر المنبهة عن طريق قطع الخيوط التي تفصل بين صفين من المسامير حيث سيتم وضع اللوحة.

بعد ذلك ، قم بتجميع الدائرة كما هو موضح في الرسم البياني أعلاه مع الإشارة إلى صور الدوائر المكتملة.

تعليمات جمعية مجلس الإدارة

من أجل تكديس الألواح في حاوية السماعة ، يجب وضع المكونات الرئيسية في مناطق معينة من اللوحة. في التعليمات التالية ، سأشير إلى نظام الإحداثيات المستخدم للإشارة إلى الصفوف والأعمدة على لوح Adafruit:

  1. يجب وضع Arduino Nano مقابل الحافة العلوية للوحة في المنتصف بحيث يتم وضع دبوس Vin في 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 ↔ قاعدة دبوس الترانزستور 2N3904
    3. J6 ↔ غير متصل
  5. بالنسبة للدائرة "العلوية" ، يجب وضع مقياس الجهد في الجزء السفلي من اللوحة المواجه للخارج بحيث يتم وضع دبابيسه في المواضع J9 و J11 و J13

    1. إخراج J13 ↔ Arduino Nano من الدبوس الرقمي 3 (D3)
    2. J11 ↔ قاعدة دبوس الترانزستور 2N3904
    3. J9 ↔ غير متصل

الخطوة 7: برنامج مكبر الصوت

هذا هو الكود الخاص بالمتحدث الذي يتواصل مع المنبّه الأيسر. قم بتوصيل Arduino Nano الموجود في لوحة السماعات السفلية بجهاز الكمبيوتر الخاص بك ، وافتح Arduino IDE ، وانسخ هذا الرمز والصقه فيه ، وقم بتحميله على اللوحة.

#يشمل

# تضمين # تضمين راديو RF24 (7 ، 8) ؛ // CE ، CSN // منبهة اليسار ، عنوان بايت للوحة السماعة العلوية [6] = "00001" ؛ درجة كثافة العمليات = 2000 ؛ كونست كثافة الملعب = 200 ؛ مكبر الصوت الثابت = 3 ؛ const int delay_gain = 100 ؛ حالة int = 0 ؛ int cur_delay = 0 ؛ قراءة char [2] ؛ إعداد باطل () {pinMode (مكبر الصوت ، الإخراج) ؛ Serial.begin (115200) ؛ Serial.println ("بدء الاتصال اللاسلكي …") ؛ radio.begin () ، radio.openReadingPipe (0، عنوان) ؛ radio.setPALevel (RF24_PA_MIN) ، radio.startListening () ، } حلقة باطلة () {if (radio.available ()) {radio.read (& read، sizeof (read))؛ الحالة = (int) (اقرأ [0] - '0') ؛ Serial.print ("مُستلم:") ؛ Serial.println (الحالة) ؛ cur_delay = delay_gain * الحالة ؛ } إذا (cur_delay) {tone (المتحدث ، درجة الصوت ، درجة الصوت) ؛ التأخير (cur_delay + Pitch_duration) ؛ Serial.println ("Beep!") ؛ }}

هذا هو الكود الخاص بالمتحدث الذي يتواصل مع المنبر الصحيح. قم بتوصيل Arduino Nano الموجود على لوحة السماعات العلوية بجهاز الكمبيوتر الخاص بك ، وافتح Arduino IDE ، وانسخ هذا الرمز والصقه فيه ، وقم بتحميله على اللوحة.

#يشمل

# تضمين # تضمين راديو RF24 (7 ، 8) ؛ // CE ، CSN // منبهة لليمين ، عنوان بايت للوحة السماعة السفلية [6] = "00010" ؛ درجة كثافة العمليات = 1500 ؛ كونست كثافة الملعب = 200 ؛ المتحدث المستمر = 3 ؛ const int delay_gain = 100 ؛ حالة int = 0 ؛ int cur_delay = 0 ؛ قراءة char [2] ؛ إعداد باطل () {pinMode (مكبر الصوت ، الإخراج) ؛ Serial.begin (115200) ؛ Serial.println ("بدء الاتصال اللاسلكي …") ؛ radio.begin () ، radio.openReadingPipe (0، عنوان) ؛ radio.setPALevel (RF24_PA_MIN) ، radio.startListening () ، } حلقة باطلة () {if (radio.available ()) {radio.read (& read، sizeof (read))؛ الحالة = (int) (اقرأ [0] - '0') ؛ Serial.print ("مُستلم:") ؛ Serial.println (الحالة) ؛ cur_delay = delay_gain * الحالة ؛ } إذا (cur_delay) {tone (المتحدث ، درجة الصوت ، درجة الصوت) ؛ التأخير (cur_delay + Pitch_duration) ؛ Serial.println ("Beep!") ؛ }}

الخطوة 8: تجميع مكبر الصوت

الأجزاء الفردية

  • 2 دوائر مكبرات الصوت المنشأة
  • عدد 2 مكبرات صوت
  • 1 بطارية

STLs للطباعة ثلاثية الأبعاد

  • أعلى المربع
  • صندوق القاع

تعليمات التجميع المادي

  1. ضع دوائر السماعة بعناية في الجزء السفلي من الصندوق ، بحيث تكون إحدى اللوحات فوق الأخرى بحيث تكون مقابض الصوت بجوار بعضها البعض وتنزلق في الفتحات. يجب كشف رقائق الاتصال في الجزء الخلفي من الصندوق.
  2. ضع مكبرات الصوت على يسار ويمين لوحة الدائرة ، وتأكد من أن مكبرات الصوت تتوافق مع الجوانب المنبهة الصحيحة. قم بمحاذاة مكبرات الصوت مع الفتحات الموجودة على جانبي الصندوق.
  3. قم بتغذية أسلاك حزمة البطارية من خلال الفتحة الصغيرة الموجودة في الجزء الخلفي من الصندوق. الإيبوكسي (أو الغراء) حزمة البطارية في الجزء الخلفي من الصندوق بحيث يكون المفتاح مكشوفًا.
  4. ضع المربع المطبوع ثلاثي الأبعاد أعلى الصندوق السفلي لاحتواء كل شيء.

الخطوة 9: الإعداد / التركيب

الإعداد / التركيب
الإعداد / التركيب
  1. قم بتشغيل telltales عن طريق قلب المفاتيح الموجودة في حزم البطاريات إلى وضع "ON". افعل نفس الشيء مع مجموعة السماعات من أجل تشغيل نظام الإخراج.
  2. يتم تثبيت الحكايات الصوتية بسهولة مع شخصين ، ولكن يمكن إجراؤها مع شخص واحد. للتركيب على ذراع غير لولبي ، من السهل جدًا وضع الحكايات قبل رفع الشراع.
  3. للتأكد من أن إطار الحكاية موجه بشكل صحيح ، انظر إلى الشق الموجود على أحد الأشرطة الرأسية. عند الإمساك بالإطار في وضع مستقيم ، يجب أن يكون الشق باتجاه الأعلى. يجب أيضًا أن يكون جانب الإطار الذي يحتوي على هذا الشريط مواجهًا لمقدمة القارب.
  4. ضع إحدى الحكايات بالارتفاع والوضع المطلوبين على الشراع. يجب وضعها بحيث يكون الخيط في نفس المكان الذي سيكون عليه إذا كان جزءًا من حكاية تقليدية.
  5. بمجرد حصولك على قصة واحدة في الموضع المطلوب. ضع الحكاية الأخرى على الجانب الآخر من الشراع ، تمامًا مقابل الأول الذي وضعته ، بحيث يصطف المغناطيس ، وبمجرد أن يقوم المغناطيس بالاتصال ، يجب أن يثبت الإطار بإحكام على الشراع. اصطف مغناطيس حاويات الإلكترونيات ، لكل حكاية على جانبي الشراع ، بحيث يتم توصيلها أيضًا.
  6. إذا لاحظت أنه عندما يتدفق الخيط بشكل مستقيم للخلف فإنه لا يتقاطع أمام البوابة العلوية ، قم بتدوير إطار الحكاية بحيث يتجه النصف الخلفي من الإطار لأسفل. قم بتدوير الإطار حتى يمر الخيط عبر قاطع الصورة العلوي عندما يتدفق الغزل بشكل مستقيم للخلف.

الخطوة 10: استكشاف الأخطاء وإصلاحها

تحتوي جميع أجزاء التعليمات البرمجية على عبارات طباعة لتصحيح الأخطاء للإشارة إلى أنهم يرسلون البيانات ويستقبلونها ويعالجونها. يتيح لك فتح منفذ COM باستخدام Arduino IDE مع أحد أنظمة Arduino Nano الفرعية المتصلة بجهاز كمبيوتر عرض رسائل الحالة هذه.

إذا كان النظام لا يعمل بشكل صحيح ، فقم بتبديل المفاتيح على جميع المكونات.

الخطوة 11: الخطوات التالية المحتملة

  • تسرب المياه
  • اتصالات بعيدة المدى. تكون شبكة WiFi خيارًا واعدًا.
  • يستخدم إعدادنا الحالي حاليًا اثنين من المقاطعات للصور لكل قصة. قد يكون من المثير للاهتمام تجربة إضافة المزيد من المقاطعات للصور إلى النظام.

موصى به: