فهرست مطالب:

داستانهای شنیدنی برای قایقرانی: 11 قدم
داستانهای شنیدنی برای قایقرانی: 11 قدم

تصویری: داستانهای شنیدنی برای قایقرانی: 11 قدم

تصویری: داستانهای شنیدنی برای قایقرانی: 11 قدم
تصویری: داستان واقعی:پدرم پنهونی منو به عقد کسی درآورد که شب حجله با دیدن اونج..اش و لو رفتن اون راز... 2024, جولای
Anonim
Image
Image
سخت افزار Telltale
سخت افزار Telltale

Telltales قطعاتی از رشته هستند که در قایقرانی مورد استفاده قرار می گیرند تا مشخص کنند که آیا جریان ناآرامی یا آرام در طول بادبان وجود دارد یا خیر. با این حال ، تکه های رنگی مختلف نخ متصل به هر طرف بادبان ، نشانگرهای کاملاً بصری هستند. این قصه های شنیدنی یک وسیله کمکی است که هدف آن انتقال اطلاعات بصری به شکل شنوایی برای دریانوردان بینا و کم بینا مانند پولین است.

این دستگاه شامل یک سیستم ورودی است که حرکت نشان دهنده را می خواند و یک سیستم خروجی که یک سری بوق هایی را منتقل می کند که اطلاعات جریان هوا را منتقل می کند.

در ساخت این دستگاه دسترسی به تجهیزات لحیم کاری و چاپگر سه بعدی مورد نیاز است.

مرحله 1: صورتحساب مواد

BOM با پیوندها و قیمت ها

توجه: به 2 مجموعه از موارد زیر نیاز دارید.

سیستم ورودی

  • آردوینو نانو
  • PCB نان برد نصف Adafruit perma-proto
  • nRF24L01 ماژول فرستنده بی سیم
  • قطع کننده عکس
  • Sparkfun Photo Interrupter Breakout Board
  • بسته باتری سازگار با آردوینو 9 ولت
  • باتری 9 ولت
  • چندین طول سیم 22 گیج
  • نخ
  • آهنرباهای نئودیمیوم
  • اپوکسی

سیستم خروجی

  • آردوینو نانو
  • PCB نان برد نصف Adafruit perma-proto
  • nRF24L01 ماژول فرستنده بی سیم
  • بسته باتری سازگار با آردوینو 9 ولت
  • پتانسیومتر 1 کیلو اهم
  • مقاومت 120 اهم
  • ترانزیستور 2N3904
  • خازن 0.1 uF
  • اسپیکر سازگار با آردوینو

فایل های GitHub

  • تمام فایل های کد و STL مورد نیاز برای ساخت این قطعات را می توانید در این رپو GitHub پیدا کنید.
  • شما به دو مجموعه محفظه و یکی از محفظه بلندگو نیاز دارید.

مرحله 2: ابزارها/ماشین آلات/نرم افزار مورد نیاز

برای برنامه نویسی Arduino باید Arduino IDE را بارگیری کنید. لینک دانلود را می توانید در اینجا پیدا کنید.

برای برنامه ریزی ماژول nRF24L01 ، باید کتابخانه آن را از طریق Arduino IDE بارگیری کنید. ابزارها> مدیریت کتابخانه ها …> نصب کتابخانه RF24

برای مونتاژ قطعات الکترونیکی دسترسی به ابزارهای لحیم کاری اساسی مورد نیاز است. پمپ لحیم کاری نیز ممکن است مفید باشد اما ضروری نیست.

برای ساخت قاب گفتگو و قاب بلندگو ، به چاپگر سه بعدی نیاز دارید.

مرحله 3: سخت افزار Telltale

سخت افزار Telltale
سخت افزار Telltale
سخت افزار Telltale
سخت افزار Telltale

مدار را مطابق نمودارهای بالا مونتاژ کنید. آردوینو نانو باید با قسمت بالای صفحه اصلی تراز شود. این به شما امکان می دهد حتی پس از اتصال تمام وسایل الکترونیکی به پورت USB دسترسی داشته باشید.

به منظور جلوگیری از کوتاه شدن قطعات الکترونیکی ، مطمئن شوید که آثار صفحه اصلی را در ردیف هایی که nRF24 اشغال می کند ، همانطور که در تصویر بالا نشان داده شده است ، برش دهید.

در غیر این صورت برای اتصال nRF24 به صفحه اصلی به کابل های جهنده نیاز دارید.

اتصال مقاومت ، GND و سیمهای 5V به قطع کننده عکس نشان داده نشده است. قطع کننده عکس را همانطور که در صفحه شکست آن نشان داده شده است ، سیم بندی کنید. تصویری از تخته شکست گنجانده شده است.

مدارهای راهنمای راست و چپ دقیقاً یکسان هستند.

مرحله 4: نرم افزار Telltale

در اینجا کد راهنمای راست است. نانوی راست را به رایانه خود وصل کنید ، Arduino IDE را باز کنید ، این کد را کپی و در آن بچسبانید و روی برد بارگذاری کنید.

/** برنامه ای که از photogate برای بررسی قصه گویی استفاده می کند

*/ #شامل #شامل #شامل #شامل #رادیو RF24 (9 ، 10) ؛ // CE ، CSN آدرس بایت const [6] = "00010" ؛ // --- برنامه 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 بالا را بر اساس آزمایشات آزمایشی خود تنظیم کنید int 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؛ #تعریف STRING_THRESH 0.2 // --- برنامه vars --- int num_string_seen = 0؛ int num_loops = 0؛ void setup () {// while (! Serial)؛ // برای flora // تاخیر (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 loop () {// کد اصلی خود را در اینجا قرار دهید ، تا بارها اجرا شود: if (num_loops٪ string_check_time == 0) {// وضعیت رشته را بررسی کنید check_string ()؛ } if (num_loops == flow_check_time) {// جریان را بررسی کنید //Serial.println(num_string_seen)؛ int flow_num = جریان_بررسی ()؛ // ارسال مقادیر send_out (flow_num) ؛ // تنظیم مجدد vars num_string_seen = 0؛ num_loops = 0؛ تأخیر (flow_check_delay) ؛ } num_loops ++؛ تاخیر (تاخیر_پایه) ؛ } / * *روش بررسی اینکه رشته از دروازه عبور می کند / void check_string () {int string_state = digitalRead (GATE_PIN) ؛ //Serial.println(string_state) ؛ if (string_state == 0) {num_string_seen ++؛ //Serial.println(" رشته اره! ")؛ }

int bot_state = digitalRead (GATE_PIN_2) ؛

if (bot_state == 0) {num_string_seen-- ؛ //Serial.println("string in bottom! ")؛ } //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) ؛ if (scaled_flow> msg_max_val) {scaled_flow = msg_max_val؛ } if (scaled_flow = 0) frac = (val - int (val)) * دقت ؛ else frac = (int (val)- val) * دقت ؛ Serial.println (frac، DEC)؛ }

در اینجا کد برای Left telltale آمده است. همان مراحل بالا را برای نشان دادن چپ دنبال کنید. همانطور که مشاهده می کنید ، تنها تفاوت آدرسی است که نتایج آن به آن ارسال می شود.

/** برنامه ای که از photogate برای بررسی قصه گویی استفاده می کند

*/ #شامل #شامل #شامل #شامل #رادیو RF24 (9 ، 10) ؛ // CE، CSN آدرس بایت const [6] = "00001"؛ // --- برنامه 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 بالا را بر اساس آزمایشات آزمایشی خود تنظیم کنید int 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؛ #تعریف STRING_THRESH 0.2 // --- برنامه vars --- int num_string_seen = 0؛ int num_loops = 0؛ void setup () {// while (! Serial)؛ // برای flora // تاخیر (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 loop () {// کد اصلی خود را در اینجا قرار دهید ، تا بارها اجرا شود: if (num_loops٪ string_check_time == 0) {// وضعیت رشته را بررسی کنید check_string ()؛ } if (num_loops == flow_check_time) {// جریان را بررسی کنید //Serial.println(num_string_seen)؛ int flow_num = جریان_بررسی ()؛ // ارسال مقادیر send_out (flow_num) ؛ // تنظیم مجدد vars num_string_seen = 0؛ num_loops = 0؛ تأخیر (flow_check_delay) ؛ } num_loops ++؛ تأخیر (تاخیر_پایه) ؛ } / * *روش بررسی اینکه آیا رشته از دروازه عبور می کند / void check_string () {int string_state = digitalRead (GATE_PIN) ؛ //Serial.println(string_state) ؛ if (string_state == 0) {num_string_seen ++؛ //Serial.println(" رشته اره! ")؛ }

int bot_state = digitalRead (GATE_PIN_2) ؛

if (bot_state == 0) {num_string_seen-- ؛ //Serial.println("string in bottom! ")؛ } //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) ؛ if (scaled_flow> msg_max_val) {scaled_flow = msg_max_val؛ } if (scaled_flow = 0) frac = (val - int (val)) * دقت ؛ else frac = (int (val)- val) * دقت ؛ Serial.println (frac، DEC)؛ }

مرحله 5: مونتاژ Telltale

مجمع Telltale
مجمع Telltale

قطعات فردی

  • قاب تلگراف
  • نخ
  • ساخته شده مدار گویا
  • بسته باتری
  • نوار الکتریکی
  • اپوکسی یا چسب

STL ها برای چاپ سه بعدی قطعات گویا

  • STL برای قاب گویا: چپ ، راست
  • STL برای جعبه لوازم الکترونیکی: بالا ، پایین

دستورالعمل مونتاژ

  1. آهنرباهای میله ای را در شکاف های قاب گرافیکی چاپ سه بعدی قرار دهید. مطمئن شوید که آهن ربا بین قاب راست و قاب چپ به طور صاف قرار گرفته است ، سپس از اپوکسی (یا چسب) برای محکم شدن آهن ربا در قاب استفاده کنید. اجازه دهید اپوکسی (یا چسب) کاملاً سفت شود.
  2. قطع کننده های عکس را در شکاف بالا و پایین در پشت قاب قرار دهید. تخته های قطع کننده عکس را با دقت اپوکسی (یا چسب) به قاب بزنید. اجازه دهید اپوکسی (یا چسب) کاملاً سفت شود
  3. یک تکه نخ را 7 پوند برش دهید. یک سر نخ را در شکاف اولین نوار عمودی گره بزنید. یک تکه کوچک نوار برقی را بریده و نوار برقی را روی قسمتی از نخ که در ناحیه قطع کننده عکس قرار دارد بپیچید. نخ را از داخل قاب عبور دهید تا از شکاف دروازه قطع کننده عکس عبور کند.
  4. آهنرباهای میله ای را در شکاف های پایین جعبه لوازم الکترونیکی چاپ سه بعدی قرار دهید. اطمینان حاصل کنید که آهن ربا بین جعبه سمت راست و جعبه سمت چپ به درستی قرار گرفته است ، سپس از اپوکسی (یا چسب) برای محکم شدن آهن ربا در قاب استفاده کنید. اجازه دهید اپوکسی (یا چسب) کاملاً سفت شود.
  5. مدار ساخته شده را در جعبه لوازم الکترونیکی قرار دهید و اجزای مختلف را با شکاف آنها تراز کنید. جعبه را با بالای جعبه لوازم الکترونیکی چاپ سه بعدی ببندید. اپوکسی (یا چسب) بسته باتری را روی جعبه قرار دهید تا سوئیچ نمایان شود.

مرحله 6: سخت افزار بلندگو

سخت افزار بلندگو
سخت افزار بلندگو
سخت افزار بلندگو
سخت افزار بلندگو
سخت افزار بلندگو
سخت افزار بلندگو

سیستم خروجی شامل دو مدار بلندگو ، یکی برای هر قطعه ، مجهز به ارتباط بی سیم و دکمه تنظیم صدا است. ابتدا ، تخته های اولیه را برای استفاده با ماژول های nRF24L01 آماده کنید ، همانطور که برای مدارهای راهنما انجام دادیم ، با جدا کردن سرهای جدا کننده دو ردیف پین در جایی که تخته قرار می گیرد.

سپس ، مدار را همانطور که در نمودار بالا نشان داده شده مونتاژ کنید ، در حالی که به عکس مدارهای تکمیل شده مراجعه می کنید.

دستورالعمل های مجمع هیئت مدیره

به منظور چیدن تخته ها در محفظه بلندگو ، اجزای اصلی باید در قسمتهای خاصی از برد قرار گیرند. در دستورالعمل های زیر ، من به سیستم مختصاتی که برای نشان دادن سطرها و ستون ها در صفحه اصلی Adafruit استفاده می شود اشاره خواهم کرد:

  1. آردوینو نانو باید در لبه بالایی تخته در مرکز قرار گیرد تا پین Vin در G16 قرار گیرد. پس از مونتاژ مدار ، برنامه ریزی مجدد آسان Arduino Nano امکان پذیر خواهد بود.
  2. تخته nRF24L01 باید در گوشه سمت راست پایین صفحه قرار داشته باشد و هشت موقعیت را از C1 تا D5 باز کند. این امر باعث می شود nRF24L01 از روی صفحه اصلی آویزان نشود تا امکان ارتباط بی سیم بهتر فراهم شود.
  3. بسته باتری سیستم بلندگو هر دو صفحه اصلی را تغذیه می کند ، بنابراین مطمئن شوید که دو ریل/پین GND آردوینو نانو و پین Vin را به منبع تغذیه وصل کنید.
  4. برای مدار "پایین" ، پتانسیومتر باید در بالای تخته رو به بیرون قرار گیرد تا پین های آن در موقعیت های J2 ، J4 و J6 قرار گیرد.

    1. خروجی J2 ↔ Arduino Nano از پین دیجیتال 3 (D3)
    2. J4 pin پایه پایه ترانزیستور 2N3904
    3. J6 ↔ وصل نیست
  5. برای مدار "بالا" ، پتانسیومتر باید در پایین تخته رو به بیرون قرار گیرد تا پین های آن در موقعیت های J9 ، J11 و J13 قرار گیرد.

    1. خروجی J13 ↔ Arduino Nano از پین دیجیتال 3 (D3)
    2. J11 pin پایه پایه ترانزیستور 2N3904
    3. J9 ↔ وصل نیست

مرحله 7: نرم افزار بلندگو

در اینجا کد ارتباط بلندگو با قصه چپ آمده است. Arduino Nano را روی برد بلندگوی پایینی به رایانه خود وصل کنید ، Arduino IDE را باز کنید ، این کد را کپی و در آن بچسبانید و روی برد بارگذاری کنید.

#عبارتند از

#شامل #شامل رادیو RF24 (7 ، 8) ؛ // CE ، CSN // نشان دهنده سمت چپ ، بلندگوی صفحه بلندگوی کنتاکت آدرس [6] = "00001" ؛ const int pitch = 2000؛ const int pitch_duration = 200؛ const int speaker = 3؛ const int delay_gain = 100؛ وضعیت int = 0 ؛ int cur_delay = 0؛ char خواندن [2]؛ void setup () {pinMode (بلندگو ، OUTPUT) ؛ Serial.begin (115200) ؛ Serial.println ("شروع ارتباط بی سیم …") ؛ radio.begin ()؛ radio.openReadingPipe (0 ، آدرس) ؛ radio.setPALevel (RF24_PA_MIN) ؛ radio.startListening ()؛ } void loop () {if (radio.available ()) {radio.read (& read، sizeof (read))؛ وضعیت = (int) (خواندن [0]-'0')؛ Serial.print ("دریافت:") ؛ Serial.println (وضعیت) ؛ cur_delay = delay_gain*وضعیت ؛ } if (cur_delay) {tone (بلندگو ، گام ، زمان پیچ) ؛ تأخیر (cur_delay + pitch_duration) ؛ Serial.println ("بیپ!") ؛ }}

در اینجا کد برقراری ارتباط با بلندگوی مناسب است. Arduino Nano را در صفحه بلندگوی بالا به رایانه خود وصل کنید ، Arduino IDE را باز کنید ، این کد را کپی و در آن بچسبانید و روی برد بارگذاری کنید.

#عبارتند از

#شامل #شامل رادیو RF24 (7 ، 8) ؛ // CE ، CSN // راست گویا ، صفحه بلندگوی پایین صفحه کنایت آدرس بایت [6] = "00010"؛ const int pitch = 1500؛ const int pitch_duration = 200؛ const int speaker = 3؛ const int delay_gain = 100؛ وضعیت int = 0 ؛ int cur_delay = 0؛ char خواندن [2]؛ void setup () {pinMode (بلندگو ، OUTPUT) ؛ Serial.begin (115200) ؛ Serial.println ("شروع ارتباط بی سیم …") ؛ radio.begin ()؛ radio.openReadingPipe (0 ، آدرس) ؛ radio.setPALevel (RF24_PA_MIN) ؛ radio.startListening ()؛ } void loop () {if (radio.available ()) {radio.read (& read، sizeof (read))؛ وضعیت = (int) (خواندن [0]-'0')؛ Serial.print ("دریافت:") ؛ Serial.println (وضعیت) ؛ cur_delay = delay_gain*وضعیت ؛ } if (cur_delay) {tone (بلندگو ، گام ، زمان پیچ) ؛ تاخیر (cur_delay+pitch_duration) ؛ Serial.println ("بیپ!") ؛ }}

مرحله 8: مجمع سخنرانان

قطعات فردی

  • 2 مدار بلندگو ساخته شده
  • 2 بلندگو
  • 1 بسته باتری

STL برای چاپ سه بعدی

  • بالای جعبه
  • پایین جعبه

دستورالعمل های مونتاژ فیزیکی

  1. مدارهای بلندگو را با دقت در پایین جعبه قرار دهید ، یک تخته روی دیگری قرار دهید به طوری که دکمه های صدا در کنار یکدیگر قرار گرفته و به سوراخ ها لغزند. تراشه های ارتباطی باید در پشت جعبه نمایان شوند.
  2. بلندگوها را در سمت چپ و راست برد مدار قرار دهید و مطمئن شوید که بلندگوها با دو طرف گویا درست مطابقت دارند. بلندگوها را به شکاف های طرف جعبه تراز کنید.
  3. سیم های باتری را از طریق سوراخ کوچک پشت جعبه تغذیه کنید. اپوکسی (یا چسب) بسته باتری را در پشت جعبه قرار دهید تا سوئیچ در معرض دید قرار گیرد.
  4. جعبه چاپ شده سه بعدی را بالای جعبه قرار دهید تا همه چیز در آن وجود داشته باشد.

مرحله 9: راه اندازی/نصب

راه اندازی/نصب
راه اندازی/نصب
  1. با چرخاندن سوئیچ های بسته های باتری به حالت "ON" ، قطعات راهنما را روشن کنید. همین کار را برای مجموعه بلندگوها انجام دهید تا سیستم خروجی روشن شود.
  2. نصب قصه های شنیدنی به راحتی با دو نفر انجام می شود ، اما با یک نفر قابل انجام است. برای سوار شدن بر روی یک بازوی بدون پیچ خوردگی ، قطارهای چوبی را به آسانی قبل از بلند کردن بادبان می پوشند.
  3. برای اطمینان از جهت گیری صحیح قاب داستان ، به شکاف یکی از میله های عمودی نگاه کنید. هنگام نگه داشتن قاب به صورت عمودی ، شکاف باید به سمت بالا باشد. طرف قاب با آن نوار نیز باید رو به جلوی قایق باشد.
  4. یکی از افسانه ها را در ارتفاع و موقعیت دلخواه روی بادبان قرار دهید. باید آن را طوری قرار دهید که نخ در جایی باشد که اگر بخشی از یک داستان سنتی باشد.
  5. هنگامی که یک داستان در موقعیت مورد نظر دارید. قصه دیگر را در طرف دیگر بادبان ، دقیقاً روبروی اولین موردی که قرار داده اید ، قرار دهید ، به طوری که آهن ربا در یک خط قرار بگیرد. هنگامی که آهن ربا به هم متصل می شوند ، باید قاب را به طور ایمن به بادبان نگه دارند. آهنرباهای محفظه های لوازم الکترونیکی را برای هر قصه در هر دو طرف بادبان کنار هم قرار دهید ، به طوری که آنها نیز به هم متصل شوند.
  6. اگر متوجه شدید که وقتی سیم مستقیم به عقب می چرخد از جلوی دروازه بالا عبور نمی کند ، قاب داستان را طوری بچرخانید که نیمه پشت قاب به سمت پایین حرکت کند. هنگامی که نخ مستقیماً به عقب جریان می کند ، قاب را بچرخانید تا رشته از میان قطع کننده عکس بالا عبور کند.

مرحله 10: عیب یابی

همه قطعات کد دارای دستور چاپ اشکال زدایی هستند که نشان می دهد داده ها را ارسال ، دریافت و پردازش می کند. باز کردن پورت COM با استفاده از Arduino IDE با یکی از زیر سیستم های Arduino Nano متصل به رایانه به شما امکان می دهد این پیام های وضعیت را مشاهده کنید.

اگر سیستم به درستی کار نمی کند ، سوئیچ ها را روی همه اجزا تغییر دهید.

مرحله 11: مراحل بعدی احتمالی

  • ضد آب
  • ارتباطات با برد بیشتر WiFi یک گزینه امیدوار کننده است.
  • تنظیمات کنونی ما در حال حاضر از 2 قطع کننده عکس در هر گویا استفاده می کند. افزودن قطع کننده های عکس بیشتر به سیستم می تواند جالب باشد.

توصیه شده: