Sisukord:

Purjetamise helisignaalid: 11 sammu
Purjetamise helisignaalid: 11 sammu

Video: Purjetamise helisignaalid: 11 sammu

Video: Purjetamise helisignaalid: 11 sammu
Video: Untouched for 25 YEARS ~ Abandoned Home of the American Flower Lady! 2024, November
Anonim
Image
Image
Märguande riistvara
Märguande riistvara

Märgulambid on purjetamisel kasutatavad nööritükid, mis näitavad, kas purje kohal on turbulentne või laminaarne vool. Purje mõlemale küljele kinnitatud eri värvi lõngajupid on aga puhtalt visuaalsed näitajad. Need helisignaalid on abivahend, mille eesmärk on edastada visuaalset teavet kuuldaval kujul nii nägemis- kui ka nägemispuudega meremeestele, nagu Pauline.

Seade koosneb sisendsüsteemist, mis loeb märgulambi liikumist, ja väljundsüsteemist, mis väljastab rida piiksusid, edastades õhuvoolu teavet.

Selle seadme valmistamisel on vaja juurdepääsu jootmisseadmetele ja 3D -printerile.

Samm: materjalide arve

BOM koos linkide ja hindadega

Märkus: teil on vaja 2 komplekti kõiki järgmisi.

Sisestussüsteem

  • Arduino Nano
  • Adafruit perma-proto poole suurusega leivaplaadi PCB
  • nRF24L01 traadita transiiveri moodul
  • Foto katkestaja
  • Sparkfuni fotokatkestuslauaplaat
  • Arduinoga ühilduv 9V aku
  • 9V aku
  • Mitu pikkust 22 -mõõtmelist traati
  • Lõng
  • Neodüümmagnetid
  • Epoksiid

Väljundsüsteem

  • Arduino Nano
  • Adafruit perma-proto poole suurusega leivaplaadi PCB
  • nRF24L01 traadita transiiveri moodul
  • Arduinoga ühilduv 9V aku
  • 1K oomi potentsiomeeter
  • 120 oomi takisti
  • 2N3904 transistor
  • 0,1 uF kondensaator
  • Arduinoga ühilduv kõlar

GitHubi failid

  • Kõik nende märgulampide loomiseks vajalikud koodi- ja STL -failid leiate sellest GitHubi repost.
  • Teil on vaja kahte korpuse komplekti ja ühte kõlari korpust.

2. samm: tööriistad/masinad/tarkvara nõuded

Arduino programmeerimiseks peate alla laadima Arduino IDE. Allalaadimislingi leiate siit.

NRF24L01 mooduli programmeerimiseks peate selle kogu alla laadima Arduino IDE kaudu. Tööriistad> Raamatukogude haldamine…> installige raamatukogu RF24

Elektrooniliste komponentide kokkupanekuks on vaja juurdepääsu põhilistele jootetööriistadele. Laadimispump võib samuti olla kasulik, kuid pole vajalik.

Märgutuli ja kõlariümbrise ehitamiseks vajate juurdepääsu 3D-printerile.

3. samm: märgutuli riistvara

Märguande riistvara
Märguande riistvara
Märguande riistvara
Märguande riistvara

Pange vooluring kokku vastavalt ülaltoodud skeemidele. Arduino Nano tuleks joondada protoboardi ülaosaga. See võimaldab teil juurdepääsu USB -pordile isegi pärast kogu elektroonika ühendamist.

Elektroonika lühise vältimiseks lõigake kindlasti protoboardi jäljed ridadelt, mille nRF24 hõivab, nagu ülaltoodud pildil näidatud.

Vastasel juhul vajate nRF24 ühendamiseks protoboardiga hüppajakaableid.

Takistiühendust, GND -d ja 5V juhtmeid fotokatkestusseadme külge pole kujutatud. Ühendage fotokatkestus juhtmega, nagu on näidatud selle katkestusplaadil. Kaasas on ka purunemisplaadi pilt.

Parema ja vasaku märgutuli ahelad on täpselt samad.

4. samm: märgutarkvara

Siin on õige märgulampi kood. Ühendage parempoolse märgulambi nano arvutiga, avage Arduino IDE, kopeerige ja kleepige see kood sinna ning laadige see tahvlile.

/** Programm, mis kasutab märgutule uurimiseks fotoväravat

*/ #include #include #include #include RF24 raadio (9, 10); // CE, CSN -i bait -aadress [6] = "00010"; // --- programmi eelised --- // ajakonstrukt int string_check_time = 1; const int voo_kontrolli_aeg = 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 = voo_kontrolli_aeg * 0.6; // määrake ülaltoodud var, lähtudes teie enda eksperimentaalsetest katsetest 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 // --- programm vars --- int num_string_seen = 0; int num_loops = 0; void setup () {// while (! Serial); // floora jaoks // delay (500); arv_string_seen = 0; arv_silmused = 0; pinMode (GATE_PIN, INPUT); pinMode (GATE_PIN_2, INPUT); Seriaalne algus (115200); // raadio silumiseks.begin (); radio.openWritingPipe (aadress); radio.setPALevel (RF24_PA_MIN); radio.stopListening (); } void loop () {// pange siia oma põhikood, et seda korduvalt käitada: if (num_loops % string_check_time == 0) {// kontrollige stringi olekut check_string (); } if (num_loops == flow_check_time) {// uurima voogu //Serial.println(num_string_seen); int flow_num = exam_flow (); // väärtuste saatmine send_out (flow_num); // lähtesta vars num_string_seen = 0; arv_silmused = 0; viivitus (flow_check_delay); } num_loops ++; viivitus (baasviide); } / * *Meetod, kuidas kontrollida, kas string ületab värava * / void check_string () {int string_state = digitalRead (GATE_PIN); //Sarja.println(string_state); if (string_state == 0) {num_string_seen ++; //Serial.println("Sae string! "); }

int bot_state = digitalRead (GATE_PIN_2);

if (bot_state == 0) {num_string_seen--; //Serial.println(" string all! "); } //Seriaalne trükk ("Arvutuste lugemine: "); //Seriaalne.println (arv_string_seen); tagasipöördumine; }/ * * Meetod, kuidas analüüsida, milline ajajada murdosa kattis värava */int exam_flow () {double percent_seen = double (numbrite_nägemine)/max_in_flow; Serial.print ("Kaetud protsent:"); printDouble (protsenti_nähtud, 100); // skaleerige väärtus suhtlusskaalaks int scaled_flow = int (protsenti_nägemist * msg_max_val); if (skaleeritud_voog> msg_max_val) {skaleeritud_voog = msg_max_val; } if (skaleeritud_voog = 0) frac = (val - int (val)) * täpsus; else frac = (int (val)- val) * täpsus; Serial.println (frac, DEC); }

Siin on vasakpoolse märgulambi kood. Järgige vasakpoolse märgutuli puhul samu samme nagu eespool. Nagu näete, on ainus erinevus aadress, kuhu märgulamp oma tulemused saadab.

/** Programm, mis kasutab märgutule uurimiseks fotoväravat

*/ #include #include #include #include RF24 raadio (9, 10); // CE, CSN -i bait -aadress [6] = "00001"; // --- programmi eelised --- // ajakonstrukt int string_check_time = 1; const int voo_kontrolli_aeg = 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 = voo_kontrolli_aeg * 0.6; // määrake ülaltoodud var, lähtudes teie enda eksperimentaalsetest katsetest 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 // --- programm vars --- int num_string_seen = 0; int num_loops = 0; void setup () {// while (! Serial); // floora jaoks // delay (500); arv_string_seen = 0; arv_silmused = 0;

pinMode (GATE_PIN, INPUT);

pinMode (GATE_PIN_2, INPUT); Seriaalne algus (115200); // raadio silumiseks.begin (); radio.openWritingPipe (aadress); radio.setPALevel (RF24_PA_MIN); radio.stopListening (); } void loop () {// pange siia oma põhikood, et seda korduvalt käitada: if (num_loops % string_check_time == 0) {// kontrollige stringi olekut check_string (); } if (num_loops == flow_check_time) {// uurima voogu //Serial.println(num_string_seen); int flow_num = exam_flow (); // väärtuste saatmine send_out (flow_num); // lähtesta vars num_string_seen = 0; arv_silmused = 0; viivitus (flow_check_delay); } num_loops ++; viivitus (baasviide); } / * *Meetod, kuidas kontrollida, kas string ületab värava * / void check_string () {int string_state = digitalRead (GATE_PIN); //Sarja.println(string_state); if (string_state == 0) {num_string_seen ++; //Serial.println("Sae string! "); }

int bot_state = digitalRead (GATE_PIN_2);

if (bot_state == 0) {num_string_seen--; //Serial.println(" string all! "); } //Seriaalne trükk ("Arvutuste lugemine: "); //Seriaalne.println (arv_string_seen); tagasipöördumine; }/ * * Meetod, kuidas analüüsida, milline ajajada murdosa kattis värava */int exam_flow () {double percent_seen = double (numbrite_nähtav)/max_in_flow; Serial.print ("Kaetud protsent:"); printDouble (protsenti_nähtud, 100); // skaleerige väärtus suhtlusskaalaks int scaled_flow = int (protsenti_nägemist * msg_max_val); if (skaleeritud_voog> msg_max_val) {skaleeritud_voog = msg_max_val; } if (skaleeritud_voog = 0) frac = (val - int (val)) * täpsus; else frac = (int (val)- val) * täpsus; Serial.println (frac, DEC); }

5. samm: märgulamp

Märguandekogu
Märguandekogu

Üksikud osad

  • Märguanderaam
  • Lõng
  • Ehitatud märgulamp
  • Aku
  • Elektriline lint
  • Epoksü või liim

3D -printimise märgulampide STL -id

  • STL märgutuli jaoks: vasak, parem
  • Elektroonikakasti STL -id: üleval, all

Montaaži juhised

  1. Asetage ribamagnetid 3D -prinditud märgutuli raami piludesse. Veenduge, et magnetid oleksid parema raami ja vasaku raami vahel õigesti joondatud, seejärel kasutage magnetite kinnitamiseks raami külge epoksiidi (või liimi). Laske epoksiidil (või liimil) täielikult tahkuda.
  2. Asetage fotokatkestid kaadri tagakülje ülemisse ja alumisse pilusse. Epoksiidige (või liimige) fotokatkestusplaadid ettevaatlikult raami külge. Laske epoksiidil (või liimil) täielikult tahkuda
  3. Lõika ~ 7 tükki lõnga. Siduge lõnga üks ots esimese vertikaalse varda sälgu külge. Lõika väike tükk elektrilinti ja mähi elektrilint üle lõngaosa, mis jääb fotokatkestite piirkonda. Keerake lõng läbi raami nii, et see läbiks fotokatkestusvärava pilu.
  4. Asetage ribamagnetid 3D -prinditud elektroonikakasti põhja pesadesse. Veenduge, et magnetid oleksid parema ja vasaku kasti vahel õigesti joondatud, seejärel kasutage magnetite raami külge kinnitamiseks epoksü (või liimi). Laske epoksiidil (või liimil) täielikult tahkuda.
  5. Asetage konstrueeritud märgulamp elektroonikakasti, joondades erinevad komponendid nende pesadega. Sulgege kast 3D -prinditud elektroonikakasti ülaosaga. Epoksiid (või liimige) aku pakendile nii, et lüliti oleks avatud.

6. samm: kõlarite riistvara

Kõlarite riistvara
Kõlarite riistvara
Kõlarite riistvara
Kõlarite riistvara
Kõlarite riistvara
Kõlarite riistvara

Väljundisüsteem koosneb kahest kõlariahelast, üks iga märgutuli kohta, mis on varustatud traadita side ja helitugevuse reguleerimise nupuga. Esiteks valmistage protoplaadid ette kasutamiseks nRF24L01 moodulitega, nagu tegime märgulampide jaoks, lõigates juhtmed, mis eraldavad kaks tihvti rida, kuhu plaat paigutatakse.

Seejärel pange ahel kokku, nagu on näidatud ülaltoodud skeemil, viidates samal ajal fotodele lõpetatud ahelatest.

Juhatuse kokkupaneku juhised

Plaatide virnastamiseks kõlarite korpuses tuleb põhikomponendid paigutada plaadi teatud piirkondadesse. Järgmistes juhistes pean silmas koordinaatsüsteemi, mida kasutatakse ridade ja veergude tähistamiseks Adafruit protoboardil:

  1. Arduino Nano tuleb asetada tahvli ülemise serva keskele nii, et Viini tihvt asuks G16 juures. See võimaldab pärast vooluringi kokkupanekut Arduino Nano hõlpsalt ümber programmeerida.
  2. Tahvel nRF24L01 tuleb asetada tahvli paremasse alumisse nurka, hõlmates kaheksat positsiooni C1 kuni D5. See jätab nRF24L01 rippuma protoboardile, et võimaldada paremat traadita ühendust.
  3. Kõlarisüsteemi akuplokk toidab mõlemat protoplaati, seega ühendage kindlasti kaks Arduino Nano GND rööpa/tihvti ja Vin -tihvti toiteallikaga.
  4. Alumise vooluahela puhul tuleks potentsiomeeter asetada tahvli ülaosale väljapoole, nii et selle tihvtid asetatakse positsioonidesse J2, J4 ja J6

    1. J2 ↔ Arduino Nano väljund digitaalsest pin 3 (D3)
    2. J4 ↔ 2N3904 transistori baasnõel
    3. J6 ↔ ühendamata
  5. Ülemise ahela jaoks tuleb potentsiomeeter asetada tahvli põhja väljapoole, nii et selle tihvtid asetatakse positsioonidesse J9, J11 ja J13

    1. J13 ↔ Arduino Nano väljund digitaalsest pin 3 (D3)
    2. J11 ↔ 2N3904 transistori baasnõel
    3. J9 ↔ ühendamata

Samm: kõlarite tarkvara

Siin on vasakpoolse märgutulega suhtleva kõneleja kood. Ühendage alumisel kõlariplaadil olev Arduino Nano arvutiga, avage Arduino IDE, kopeerige ja kleepige see kood sinna ning laadige see tahvlile üles.

#kaasake

#kaasa arvatud #kaasama RF24 raadio (7, 8); // CE, CSN // vasakpoolne märgutuli, ülemise kõlariplaadi konstantbaidi aadress [6] = "00001"; const int samm = 2000; const int pitch_duration = 200; const int kõneleja = 3; const int delay_gain = 100; int olek = 0; int cur_delay = 0; char lugeda [2]; void setup () {pinMode (kõlar, VÄLJUND); Seriaalne algus (115200); Serial.println ("Traadita side alustamine …"); radio.begin (); radio.openReadingPipe (0, aadress); radio.setPALevel (RF24_PA_MIN); radio.startListening (); } void loop () {if (radio.available ()) {radio.read (& read, sizeof (read)); olek = (int) (loe [0]-'0'); Serial.print ("Vastuvõetud:"); Serial.println (olek); cur_delay = delay_gain*staatus; } if (cur_delay) {toon (kõneleja, helikõrgus, helikõrgus); viivitus (cur_delay + pitch_duration); Serial.println ("Piiks!"); }}

Siin on kood kõneleja jaoks, kes suhtleb õige märgulampiga. Ühendage ülemise kõlariplaadi Arduino Nano arvutiga, avage Arduino IDE, kopeerige ja kleepige see kood sinna ning laadige see tahvlile üles.

#kaasake

#kaasa arvatud #kaasama RF24 raadio (7, 8); // CE, CSN // parempoolne märgutuli, alumise kõlariplaadi konstantse baidi aadress [6] = "00010"; const int samm = 1500; const int pitch_duration = 200; const int kõneleja = 3; const int delay_gain = 100; int olek = 0; int cur_delay = 0; char lugeda [2]; void setup () {pinMode (kõlar, VÄLJUND); Seriaalne algus (115200); Serial.println ("Traadita side alustamine …"); radio.begin (); radio.openReadingPipe (0, aadress); radio.setPALevel (RF24_PA_MIN); radio.startListening (); } void loop () {if (radio.available ()) {radio.read (& read, sizeof (read)); olek = (int) (loe [0]-'0'); Serial.print ("Vastuvõetud:"); Serial.println (olek); cur_delay = delay_gain*staatus; } if (cur_delay) {toon (kõneleja, helikõrgus, helikõrgus); viivitus (cur_delay+pitch_duration); Serial.println ("Piiks!"); }}

8. samm: kõlarite kokkupanek

Üksikud osad

  • 2 konstrueeritud kõlariahelat
  • 2 kõlarit
  • 1 aku

STL -id 3D -printimiseks

  • Karbi peal
  • Kasti põhi

Füüsilise kokkupaneku juhised

  1. Asetage kõlariahelad ettevaatlikult karbi põhja, üks plaat teisele nii, et helitugevuse nupud on üksteise kõrval ja libisevad aukudesse. Kommunikatsioonikiibid tuleks kasti tagaküljel paljastada.
  2. Asetage kõlarid trükkplaadi vasakule ja paremale, veendudes, et kõlarid vastavad õigetele märgulampidele. Joondage kõlarid karbi külgedel olevate pesadega.
  3. Viige aku juhtmed läbi karbi taga oleva väikese augu. Epoksiid (või liimige) aku pakendi tagaküljele nii, et lüliti oleks avatud.
  4. Asetage 3D -prinditud kasti ülaosa kasti põhja kohale, et seal oleks kõik.

9. samm: seadistamine/paigaldamine

Seadistamine/paigaldamine
Seadistamine/paigaldamine
  1. Lülitage märgulambid sisse, keerates akude lülitid asendisse ON. Väljundisüsteemi sisselülitamiseks tehke sama ka kõlarisõlme puhul.
  2. Helisignaalide paigaldamist on kõige lihtsam teha kahe inimesega, kuid seda saab teha ühega. Mittepurunevale noolele paigaldamiseks oleks märgulambid enne purje heiskamist kõige kergemini selga pandud.
  3. Veendumaks, et märgutuliraam on õigesti orienteeritud, vaadake ühe vertikaalse riba sälku. Raami püsti hoides peaks sälk olema ülalt. Raami külg selle ribaga peaks olema ka paadi esiosa poole.
  4. Asetage üks märgutulest purjele soovitud kõrgusele ja asendisse. See tuleks paigutada nii, et lõng oleks samas kohas, kus see oleks osa traditsioonilisest märgulambist.
  5. Kui teil on soovitud asendis üks jutuvest. Asetage teine märgutuli purje teisele küljele, täpselt esimese asetatud vastas, nii et magnetid asetseksid joonel. Kui magnetid on ühenduse loonud, peaksid nad raami kindlalt purje külge hoidma. Joondage elektroonikakorpuste magnetid iga märguande jaoks purje mõlemal küljel nii, et need ka omavahel ühenduksid.
  6. Kui märkate, et kui nöör otse tagasi voolab, ei lähe see ülemise värava ette, keerake märgutuliraami nii, et raami tagumine pool oleks allapoole suunatud. Pöörake raami, kuni nöör läbib ülemist fotokatkestit, kui lõng otse tagasi voolab.

10. samm: tõrkeotsing

Kõigil kooditükkidel on silumisprindi avaldused, mis näitavad, et nad saadavad, saavad ja töötlevad andmeid. Kui avate COM -pordi Arduino IDE abil, ühendades arvutiga ühe Arduino Nano alamsüsteemi, saate neid olekuteateid vaadata.

Kui süsteem ei tööta korralikult, lülitage kõigi komponentide lülitid sisse.

11. samm: võimalikud järgmised sammud

  • Veekindlus
  • Pikema leviala side. WiFi on paljutõotav valik.
  • Meie praegune seadistus kasutab praegu 2 fotokatkestit märgutuli kohta. Süsteemi lisamine rohkem fotokatkestusi võib olla huvitav proovida.

Soovitan: