Talaan ng mga Nilalaman:

Naririnig na Telltales para sa Sailing: 11 Hakbang
Naririnig na Telltales para sa Sailing: 11 Hakbang

Video: Naririnig na Telltales para sa Sailing: 11 Hakbang

Video: Naririnig na Telltales para sa Sailing: 11 Hakbang
Video: Саванна, Джорджия: веселый день на Ривер-стрит 😀 (влог 1) 2024, Hulyo
Anonim
Image
Image
Telltale Hardware
Telltale Hardware

Ang Telltales ay mga piraso ng string na ginamit sa paglalayag upang ipahiwatig kung mayroong magulo o daloy ng laminar sa buong layag. Gayunpaman, ang iba't ibang mga kulay na piraso ng sinulid na nakakabit sa bawat panig ng layag ay pulos mga tagapagpahiwatig ng visual. Ang mga naririnig na kuwentong ito ay isang pantulong na aparato na naglalayong iparating ang visual na impormasyon sa isang pormang pandinig para sa parehong mga marino na may nakikita at may kapansanan sa paningin, tulad ni Pauline.

Ang aparato ay binubuo ng isang input system, na binabasa ang galaw ng telltale, at isang output system, na naglalabas ng isang serye ng mga beep na nagpapahiwatig ng impormasyon ng airflow.

Ang pag-access sa mga kagamitan sa paghihinang at isang 3D printer ay kinakailangan sa katha ng aparatong ito.

Hakbang 1: Bill ng Mga Materyales

BOM na may mga link at presyo

Tandaan: kakailanganin mo ng 2 hanay ng lahat ng mga sumusunod.

Input System

  • Arduino Nano
  • Ang adafruit perma-proto na kalahating sukat na tinapay na PCB
  • nRF24L01 Wireless Transceiver Module
  • Photo Interrupter
  • Sparkfun Photo Interrupter Breakout Board
  • Katugmang Arduino na 9V na baterya pack
  • 9V na baterya
  • Maraming haba ng 22 Gauge wire
  • Sinulid
  • Neodymium Magnets
  • Epoxy

Output System

  • Arduino Nano
  • Ang adafruit perma-proto na kalahating sukat na tinapay na PCB
  • nRF24L01 Wireless Transceiver Module
  • Katugmang Arduino na 9V na baterya pack
  • 1K Ohm potentiometer
  • 120 Ohm risistor
  • 2N3904 transistor
  • 0.1 uF capacitor
  • Katugmang Speaker ng Arduino

Mga File ng GitHub

  • Ang lahat ng mga code at STL file na kinakailangan upang maitayo ang mga kuwentong ito ay matatagpuan sa repo ng GitHub na ito.
  • Kakailanganin mo ang dalawang hanay ng enclosure, at isa sa pabahay ng speaker.

Hakbang 2: Mga Kinakailangan sa Mga Tool / Machine / Software

Upang ma-program ang Arduino kakailanganin mong i-download ang Arduino IDE. Ang link sa pag-download ay matatagpuan dito.

Upang mai-program ang nRF24L01 module, kakailanganin mong i-download ang library nito sa pamamagitan ng Arduino IDE. Mga tool> Pamahalaan ang Mga Aklatan …> i-install ang library ng RF24

Upang tipunin ang mga elektronikong sangkap na pag-access sa pangunahing mga tool sa paghihinang ay kinakailangan. Ang isang namamalaging bomba ay maaari ring maging kapaki-pakinabang ngunit hindi kinakailangan.

Upang maitayo ang kwento ng tell-tale at case ng speaker kakailanganin mo ang pag-access sa isang 3D printer.

Hakbang 3: Telltale Hardware

Telltale Hardware
Telltale Hardware
Telltale Hardware
Telltale Hardware

Ipunin ang circuit ayon sa mga diagram sa itaas. Ang Arduino Nano ay dapat na nakahanay sa tuktok ng protoboard. Pinapayagan kang magkaroon ng access sa USB port kahit na naka-attach ang lahat ng electronics.

Upang maiwasang maikli ang electronics, tiyaking gupitin ang mga bakas ng protoboard sa mga hilera na sakupin ng nRF24 tulad ng ipinakita sa imahe sa itaas.

Kung hindi man kakailanganin mo ng mga jumper cable upang ikonekta ang nRF24 sa protoboard.

Ang koneksyon ng resistor, GND, at 5V wires sa photo interrupter ay hindi inilalarawan. I-wire ang interrupter ng larawan tulad ng ipinahiwatig sa breakout board nito. Ang isang imahe ng breakout board ay kasama.

Ang mga circuit para sa Kanan at Kaliwa na mga kuwentong-kuwenta ay eksaktong pareho.

Hakbang 4: Telltale Software

Narito ang code para sa Right telltale. Ikonekta ang nano ng Tama na tama sa iyong computer, buksan ang Arduino IDE, kopyahin at i-paste ang code na ito, at i-upload ito sa board.

/ ** Program na gumagamit ng photogate upang suriin ang kwento

* / # isama ang # isama # isama # isama ang RF24 radio (9, 10); // CE, CSN const byte address [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; // itakda ang var sa itaas batay sa iyong sariling mga pang-eksperimentong pagsubok na 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; int num_loops = 0; walang bisa ang pag-setup () {// habang (! Serial); // para sa flora // pagkaantala (500); num_string_seen = 0; num_loops = 0; pinMode (GATE_PIN, INPUT); pinMode (GATE_PIN_2, INPUT); Serial.begin (115200); // para sa pag-debug ng radio.begin (); radio.openWritingPipe (address); radio.setPALevel (RF24_PA_MIN); radio.stopListening (); } void loop () {// ilagay ang iyong pangunahing code dito, upang tumakbo nang paulit-ulit: kung (num_loops% string_check_time == 0) {// check string state check_string (); } kung (num_loops == flow_check_time) {// suriin ang daloy //Serial.println(num_string_seen); int flow_num = examin_flow (); // magpadala ng mga halagang send_out (flow_num); // reset vars num_string_seen = 0; num_loops = 0; antala (flow_check_delay); } num_loops ++; antala (base_delay); } / * * Paraan upang suriin kung ang mga string ay tumatawid sa gate * / void check_string () {int string_state = digitalRead (GATE_PIN); //Serial.println(string_state); kung (string_state == 0) {num_string_seen ++; //Serial.println("Saw string! "); }

int bot_state = digitalRead (GATE_PIN_2);

kung (bot_state == 0) {num_string_seen--; //Serial.println("string sa ilalim! "); } //Serial.print("Counting string pass: "); //Serial.println(num_string_seen); bumalik; } / * * Paraan upang pag-aralan kung anong maliit na bahagi ng time string ang sumaklaw sa gate * / int examin_flow () {doble porsyento_seen = doble (num_string_seen) / max_in_flow; Serial.print ("Saklaw ng porsyento:"); printDouble (porsyento_tingnan, 100); // scale the value to communication scale int scaled_flow = int (percent_seen * msg_max_val); kung (scaled_flow> msg_max_val) {scaled_flow = msg_max_val; } kung (scaled_flow = 0) frac = (val - int (val)) * katumpakan; iba pa frac = (int (val) - val) * katumpakan; Serial.println (frac, DEC); }

Narito ang code para sa Left telltale. Sundin ang parehong mga hakbang tulad ng nasa itaas para sa Left telltale. Tulad ng nakikita mo, ang pagkakaiba lamang ay ang address kung saan nagpapadala ang telltale ng mga resulta.

/ ** Program na gumagamit ng photogate upang suriin ang kwento

* / # isama ang # isama ang # isama # isama ang RF24 radio (9, 10); // CE, CSN const byte address [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; // itakda ang var sa itaas batay sa iyong sariling mga pang-eksperimentong pagsubok na 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; int num_loops = 0; walang bisa ang pag-setup () {// habang (! Serial); // para sa flora // pagkaantala (500); num_string_seen = 0; num_loops = 0;

pinMode (GATE_PIN, INPUT);

pinMode (GATE_PIN_2, INPUT); Serial.begin (115200); // para sa pag-debug ng radio.begin (); radio.openWritingPipe (address); radio.setPALevel (RF24_PA_MIN); radio.stopListening (); } void loop () {// ilagay ang iyong pangunahing code dito, upang tumakbo nang paulit-ulit: kung (num_loops% string_check_time == 0) {// check string state check_string (); } kung (num_loops == flow_check_time) {// suriin ang daloy //Serial.println(num_string_seen); int flow_num = suriin_flow (); // magpadala ng mga halagang send_out (flow_num); // reset vars num_string_seen = 0; num_loops = 0; antala (flow_check_delay); } num_loops ++; antala (base_delay); } / * * Paraan upang suriin kung ang mga string ay tumatawid sa gate * / void check_string () {int string_state = digitalRead (GATE_PIN); //Serial.println(string_state); kung (string_state == 0) {num_string_seen ++; //Serial.println("Saw string! "); }

int bot_state = digitalRead (GATE_PIN_2);

kung (bot_state == 0) {num_string_seen--; //Serial.println("string sa ilalim! "); } //Serial.print("Counting string pass: "); //Serial.println(num_string_seen); bumalik; } / * * Paraan upang pag-aralan kung anong maliit na bahagi ng time string ang sumaklaw sa gate * / int examin_flow () {doble porsyento_seen = doble (num_string_seen) / max_in_flow; Serial.print ("Saklaw ng porsyento:"); printDouble (porsyento_tingnan, 100); // scale the value to communication scale int scaled_flow = int (percent_seen * msg_max_val); kung (scaled_flow> msg_max_val) {scaled_flow = msg_max_val; } kung (scaled_flow = 0) frac = (val - int (val)) * katumpakan; iba pa frac = (int (val) - val) * katumpakan; Serial.println (frac, DEC); }

Hakbang 5: Telltale Assembly

Assembly ng Telltale
Assembly ng Telltale

Indibidwal na Bahagi

  • Telltale frame
  • Sinulid
  • Itinayo na telltale circuit
  • Pakete ng baterya
  • Electrical tape
  • Epoxy o pandikit

Ang mga STL para sa mga bahagi ng pag-print na 3D ay nagsasabi sa mga bahagi

  • STL para sa telltale frame: kaliwa, kanan
  • Mga STL para sa kahon ng electronics: itaas, ibaba

Mga Tagubilin sa Assembly

  1. Ilagay ang mga magnet ng bar sa mga puwang ng 3D na naka-print na frame na sinabi. Siguraduhin na ang mga magnet ay nakahanay nang maayos sa pagitan ng kanang frame at ng kaliwang frame, pagkatapos ay gumamit ng epoxy (o pandikit) upang ma-secure ang mga magnet sa frame. Payagan ang epoxy (o pandikit) na ganap na maitakda.
  2. Ilagay ang mga nakakagambala na larawan sa itaas at ilalim ng mga puwang sa likuran ng frame. Maingat na epoxy (o kola) ang mga photo interrupter board sa frame. Payagan ang epoxy (o pandikit) na ganap na maitakda
  3. Gupitin ang isang ~ 7 sa piraso ng sinulid. Itali ang isang dulo ng sinulid sa bingaw ng unang patayong bar. Gupitin ang isang maliit na piraso ng electrical tape at ibalot ang electrical tape sa seksyon ng sinulid na nasa rehiyon ng mga nakakagambala sa larawan. I-thread ang sinulid sa pamamagitan ng frame upang dumaan ito sa puwang ng gate ng interrupter ng larawan.
  4. Ilagay ang mga magnet ng bar sa mga puwang ng 3D naka-print na kahon ng electronics sa ibaba. Siguraduhin na ang mga magnet ay nakahanay nang maayos sa pagitan ng kanang kahon at ng kaliwang kahon, pagkatapos ay gumamit ng epoxy (o pandikit) upang ma-secure ang mga magnet sa frame. Payagan ang epoxy (o pandikit) na ganap na maitakda.
  5. Ilagay ang itinayo na circuit ng talento sa kahon ng electronics, na pinapantay ang iba't ibang mga bahagi sa kanilang mga puwang. Isara ang kahon sa tuktok ng naka-print na kahon ng electronics. Epoxy (o pandikit) ang pack ng baterya sa tuktok ng kahon upang malantad ang switch.

Hakbang 6: Speaker ng Hardware

Speaker ng Hardware
Speaker ng Hardware
Speaker ng Hardware
Speaker ng Hardware
Speaker ng Hardware
Speaker ng Hardware

Ang output system ay binubuo ng dalawang mga circuit ng speaker, isa para sa bawat telltale, nilagyan ng wireless na komunikasyon at isang volume knob na pagsasaayos. Una, ihanda ang mga protoboard para magamit sa mga modyul na nRF24L01 tulad ng ginawa namin para sa mga telltale circuit sa pamamagitan ng paggupit ng mga lead na pinaghihiwalay ang dalawang hanay ng mga pin kung saan ilalagay ang board.

Pagkatapos, tipunin ang circuit tulad ng ipinakita sa diagram sa itaas habang tumutukoy sa mga larawan ng mga nakumpleto na circuit.

Mga Tagubilin sa Board Assembly

Upang mai-stack ang mga board sa enclosure ng speaker, ang mga pangunahing bahagi ay dapat ilagay sa ilang mga lugar ng board. Sa mga sumusunod na tagubilin, magre-refer ako sa sistema ng coordinate na ginamit upang tukuyin ang mga hilera at haligi sa protokolard ng Adafruit:

  1. Ang Arduino Nano ay dapat ilagay sa itaas na gilid ng board sa gitna upang ang Vin pin ay nakaposisyon sa G16. Papayagan nito ang madaling muling pagprogram ng Arduino Nano pagkatapos na tipunin ang circuit.
  2. Ang board na nRF24L01 ay dapat ilagay sa ibabang kanang sulok ng board na sumasaklaw sa walong posisyon mula C1 hanggang D5. Iiwan nito ang nRF24L01 na nakasabit sa protoboard upang payagan ang mas mahusay na komunikasyon sa wireless.
  3. Ang pack ng baterya para sa system ng nagsasalita ay nagpapagana ng parehong mga protoboard, kaya siguraduhing ikonekta ang dalawang Rdu / pin ng RND Aranoino Nano at mga pin ng Vin sa power supply.
  4. Para sa 'ilalim' na circuit, ang potentiometer ay dapat ilagay sa tuktok ng board na nakaharap sa labas upang ang mga pin nito ay nakalagay sa mga posisyon na J2, J4, at J6

    1. J2 ↔ Arduino Nano output mula sa digital pin 3 (D3)
    2. J4 ↔ base pin ng 2N3904 transistor
    3. J6 ↔ hindi konektado
  5. Para sa 'tuktok' na circuit, ang potentiometer ay dapat ilagay sa ilalim ng board na nakaharap sa labas upang ang mga pin nito ay mailagay sa mga posisyon na J9, J11, at J13

    1. J13 ↔ Arduino Nano output mula sa digital pin 3 (D3)
    2. J11 ↔ base pin ng 2N3904 transistor
    3. J9 ↔ hindi konektado

Hakbang 7: Speaker Software

Narito ang code para sa nagsasalita ng pakikipag-usap sa Kaliwa na kwento. Ikonekta ang Arduino Nano sa ilalim ng speaker board sa iyong computer, buksan ang Arduino IDE, kopyahin at i-paste ang code na ito, at i-upload ito sa board.

# isama

# isama ang # isama ang radio na RF24 (7, 8); // CE, CSN // left telltale, nangungunang speaker board const byte address [6] = "00001"; Const int pitch = 2000; Const int pitch_duras = 200; Const int speaker = 3; Const int delay_gain = 100; int status = 0; int cur_delay = 0; basahin ang char [2]; void setup () {pinMode (speaker, OUTPUT); Serial.begin (115200); Serial.println ("Simula ng wireless na komunikasyon …"); radio.begin (); radio.openReadingPipe (0, address); radio.setPALevel (RF24_PA_MIN); radyo.startListening (); } void loop () {if (radio.available ()) {radio.read (& read, sizeof (read)); katayuan = (int) (basahin ang [0] - '0'); Serial.print ("Natanggap:"); Serial.println (katayuan); cur_delay = pagkaantala_gain * katayuan; } kung (cur_delay) {tone (speaker, pitch, pitch_duration); antala (cur_delay + pitch_duration); Serial.println ("Beep!"); }}

Narito ang code para sa nagsasalita ng pakikipag-usap sa tamang telltale. Ikonekta ang Arduino Nano sa tuktok na speaker board sa iyong computer, buksan ang Arduino IDE, kopyahin at i-paste ang code na ito, at i-upload ito sa board.

# isama

# isama ang # isama ang radio na RF24 (7, 8); // CE, CSN // right telltale, ilalim ng speaker board const byte address [6] = "00010"; Const int pitch = 1500; Const int pitch_duras = 200; Const int speaker = 3; Const int delay_gain = 100; int status = 0; int cur_delay = 0; basahin ang char [2]; void setup () {pinMode (speaker, OUTPUT); Serial.begin (115200); Serial.println ("Simula ng wireless na komunikasyon …"); radio.begin (); radio.openReadingPipe (0, address); radio.setPALevel (RF24_PA_MIN); radyo.startListening (); } void loop () {if (radio.available ()) {radio.read (& read, sizeof (read)); katayuan = (int) (basahin ang [0] - '0'); Serial.print ("Natanggap:"); Serial.println (katayuan); cur_delay = pagkaantala_gain * katayuan; } kung (cur_delay) {tone (speaker, pitch, pitch_duration); antala (cur_delay + pitch_duration); Serial.println ("Beep!"); }}

Hakbang 8: Assembly Assembly

Indibidwal na Bahagi

  • 2 itinayo speaker circuit
  • 2 speaker
  • 1 baterya pack

Mga STL para sa 3D na pagpi-print

  • Itaas ang kahon
  • Sa ilalim ng kahon

Mga Tagubilin sa Physical Assembly

  1. Maingat na ilagay ang mga circuit ng speaker sa ilalim ng kahon, isang board sa tuktok ng isa pa na ang mga volume knobs ay magkatabi at dumulas sa mga butas. Ang mga chips ng komunikasyon ay dapat na mailantad sa likuran ng kahon.
  2. Ilagay ang mga nagsasalita sa kaliwa at kanan ng circuit board, tinitiyak na ang mga nagsasalita ay tumutugma sa tamang mga gilid ng kwento. Ihanay ang mga speaker sa mga puwang sa mga gilid ng kahon.
  3. Pakain ang mga wire ng baterya pack sa pamamagitan ng maliit na butas sa likod ng kahon. Epoxy (o pandikit) ang baterya pack sa likod ng kahon tulad ng ang switch ay nakalantad.
  4. Ilagay ang naka-print na kahon sa itaas na kahon ng 3D upang maglaman ng lahat.

Hakbang 9: Pag-setup / Pag-mount

Pag-setup / Pag-mount
Pag-setup / Pag-mount
  1. I-on ang mga telltales sa pamamagitan ng pag-flip ng mga switch sa mga pack ng baterya sa posisyon na 'ON'. Gawin ang pareho para sa pagpupulong ng speaker upang ma-on ang output system.
  2. Ang pag-mount na mga naririnig na telltales ay madaling gawin sa dalawang tao, ngunit maaaring gawin sa isa. Para sa pag-mount sa isang hindi nababaluktot na jib, ang mga kuwadra ay mas madaling mailagay bago isakay ang layag.
  3. Upang matiyak na ang orient na frame ng kwento ay oriented nang tama, tingnan ang bingaw sa isa sa mga patayong bar. Kapag hinahawakan ang frame nang patayo, ang bingaw ay dapat na nasa itaas. Ang gilid ng frame na may bar na iyon ay dapat ding harapin patungo sa harap ng bangka.
  4. Ilagay ang isa sa mga kwento sa nais na taas at posisyon sa layag. Dapat itong mailagay na ang sinulid ay nasa parehong lugar na magiging kung ito ay bahagi ng isang tradisyonal na kwento.
  5. Kapag mayroon kang isang kwento sa nais na posisyon. Ilagay ang iba pang mga kwento sa kabilang panig ng layag, eksaktong katapat ng una mong inilagay, tulad ng linya ng mga magnet. Kapag ang mga magnet ay gumawa ng isang koneksyon dapat nilang hawakan ang frame nang ligtas sa layag. I-line up ang mga magnet ng mga enclosure ng electronics, para sa bawat kwento sa magkabilang panig ng layag, tulad din na kumonekta rin sila.
  6. Kung napansin mo na kapag dumaloy pabalik ang string ay hindi ito tumatawid sa harap ng tuktok na gate, paikutin ang frame ng kwentong sinabi na ang kalahati ng likod ng frame ay magtungo pababa. Paikutin ang frame hanggang sa ang string ay dumaan sa tuktok na makagambala ng larawan kapag ang sinulid ay dumadaloy pabalik.

Hakbang 10: Pag-troubleshoot

Ang lahat ng mga piraso ng code ay may mga pahayag sa pag-print ng debug upang ipahiwatig na nagpapadala, tumatanggap, at nagpoproseso ng data. Ang pagbukas sa COM port gamit ang Arduino IDE gamit ang isa sa mga Arduino Nano subsystem na naka-plug sa isang computer ay magbibigay-daan sa iyo upang tingnan ang mga mensahe sa status na ito.

Kung ang system ay hindi tumatakbo nang maayos, i-toggle ang mga switch sa lahat ng mga bahagi.

Hakbang 11: Posibleng Susunod na Mga Hakbang

  • Hindi tinatagusan ng tubig
  • Mas mahabang saklaw na komunikasyon. Ang WiFi ay magiging isang pagpipilian na nangangako.
  • Ang aming kasalukuyang pag-setup ay kasalukuyang gumagamit ng 2 mga photo interrupter bawat madaling sabihin. Ang pagdaragdag ng higit pang mga photo interrupter sa system ay maaaring maging kawili-wiling subukan.

Inirerekumendang: