Satura rādītājs:

Skaņas signāli burāšanai: 11 soļi
Skaņas signāli burāšanai: 11 soļi

Video: Skaņas signāli burāšanai: 11 soļi

Video: Skaņas signāli burāšanai: 11 soļi
Video: Мощный сабвуфер в корпус старого активного сабвуфера? Что будет? 2024, Jūlijs
Anonim
Image
Image
Signalizācijas aparatūra
Signalizācijas aparatūra

Indikatori ir virves gabali, ko izmanto burāšanā, lai norādītu, vai pāri burai ir nemierīga vai lamināra plūsma. Tomēr dažādu krāsu dzijas gabali, kas piestiprināti pie katras buras puses, ir tīri vizuāli rādītāji. Šie skaņas signālierīces ir palīgierīce, kuras mērķis ir vizuāli sniegt informāciju vizuāli gan redzīgiem, gan vājredzīgiem jūrniekiem, piemēram, Paulīnei.

Ierīce sastāv no ievades sistēmas, kas nolasa indikatora kustību, un izvades sistēmas, kas izdod virkni pīkstienu, nododot informāciju par gaisa plūsmu.

Šīs ierīces ražošanā ir nepieciešama piekļuve lodēšanas iekārtām un 3D printerim.

1. darbība: materiālu saraksts

BOM ar saitēm un cenām

Piezīme: jums būs nepieciešami 2 komplekti no visiem šiem.

Ievades sistēma

  • Arduino Nano
  • Adafruit perma-proto pusizmēra maizes dēļa PCB
  • nRF24L01 bezvadu uztvērēja modulis
  • Foto pārtraucējs
  • Sparkfun Photo Interruptter Breakout Board
  • Ar Arduino saderīgs 9V akumulators
  • 9V akumulators
  • Vairāki 22 gabarītu stieples garumi
  • Dzija
  • Neodīma magnēti
  • Epoksīda

Izejas sistēma

  • Arduino Nano
  • Adafruit perma-proto pusizmēra maizes dēļa PCB
  • nRF24L01 bezvadu uztvērēja modulis
  • Ar Arduino saderīgs 9V akumulators
  • 1K omi potenciometrs
  • 120 omu rezistors
  • 2N3904 tranzistors
  • 0,1 uF kondensators
  • Ar Arduino saderīgs skaļrunis

GitHub faili

  • Visi kodu un STL faili, kas nepieciešami šo indikatoru izveidošanai, ir atrodami šajā GitHub repo.
  • Jums būs nepieciešami divi korpusa komplekti un viens no skaļruņu korpusa.

2. darbība: rīki/mašīnas/programmatūras prasības

Lai ieprogrammētu Arduino, jums būs jālejupielādē Arduino IDE. Lejupielādes saiti var atrast šeit.

Lai ieprogrammētu moduli nRF24L01, jums būs jālejupielādē tā bibliotēka, izmantojot Arduino IDE. Rīki> Pārvaldīt bibliotēkas …> instalēt bibliotēku RF24

Lai saliktu elektroniskos komponentus, nepieciešama piekļuve pamata lodēšanas rīkiem. Atkausēšanas sūknis var būt arī noderīgs, bet nav nepieciešams.

Lai izveidotu indikatora rāmi un skaļruņu korpusu, jums būs nepieciešama piekļuve 3D printerim.

3. darbība: indikatoraparatūra

Signalizācijas aparatūra
Signalizācijas aparatūra
Signalizācijas aparatūra
Signalizācijas aparatūra

Salieciet ķēdi saskaņā ar iepriekš redzamajām diagrammām. Arduino Nano ir jāsaskaņo ar protoboarda augšpusi. Tas ļauj piekļūt USB portam pat pēc tam, kad ir pievienota visa elektronika.

Lai izvairītos no elektronikas īssavienojuma, noteikti nogrieziet protoborda pēdas rindās, kuras nRF24 aizņems, kā parādīts attēlā iepriekš.

Pretējā gadījumā, lai savienotu nRF24 ar protoboardu, jums būs nepieciešami īsie kabeļi.

Rezistora savienojums, GND un 5V vadi ar foto pārtraucēju nav attēloti. Pievienojiet foto pārtraucēju, kā norādīts tā sadalīšanas panelī. Iekļauts sadalīšanas dēļa attēls.

Labās un kreisās indikatora ķēdes ir pilnīgi vienādas.

4. darbība: indikatora programmatūra

Šeit ir pareizā indikatora kods. Pievienojiet pareizā signāllampiņa nano datoram, atveriet Arduino IDE, kopējiet un ielīmējiet šo kodu tajā un augšupielādējiet to uz tāfeles.

/** Programma, kas izmanto foto vārtus, lai pārbaudītu indikatoru

*/ #include #include #include #include RF24 radio (9, 10); // CE, CSN konstanta baita adrese [6] = "00010"; // --- programmas Consts --- // time const int string_check_time = 1; const int plūsmas_pārbaudes_laiks = 30; const int bāzes_ aizkavēšanās = 5; const int flow_check_delay = 0; const int GATE_PIN = 6; const int GATE_PIN_2 = 7; const int max_kad_testēšana = plūsmas_pārbaudes_laiks * 0,6; // iestatiet iepriekš minēto, pamatojoties uz jūsu eksperimentālajiem izmēģinājumiem 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 // --- programma vars --- int num_string_seen = 0; int num_loops = 0; void setup () {// while (! Serial); // florai // kavēšanās (500); numura_virkne_redzēts = 0; skaitļu cilpas = 0; pinMode (GATE_PIN, INPUT); pinMode (GATE_PIN_2, INPUT); Serial.begin (115200); // radio atkļūdošanai.begin (); radio.openWritingPipe (adrese); radio.setPALevel (RF24_PA_MIN); radio.stopListening (); } void loop () {// ievietojiet šeit savu galveno kodu, lai palaistu atkārtoti: if (num_loops % string_check_time == 0) {// pārbaudiet virknes stāvokli check_string (); } if (num_loops == flow_check_time) {// pārbaudīt flow //Serial.println(num_string_seen); int plūsmas_numurs = exam_flow (); // nosūtīt vērtības send_out (flow_num); // atiestatīt vars num_string_seen = 0; skaitļu cilpas = 0; kavēšanās (flow_check_delay); } num_loops ++; kavēšanās (bāzes_kavēšanās); } / * *Metode, kā pārbaudīt, vai virkne šķērso vārtus * / void check_string () {int string_state = digitalRead (GATE_PIN); //Serial.println(string_state); ja (virknes_valsts == 0) {num_string_seen ++; //Serial.println("Saw string! "); }

int bot_state = digitalRead (GATE_PIN_2);

ja (bot_valsts == 0) {num_string_seen--; //Serial.println(" virkne apakšā! "); } //Sērijas.print ("Skaitīšanas virkņu caurlaides: "); //Serial.println(num_string_seen); atgriešanās; }/ * * Metode, lai analizētu, kāda laika virknes daļa aptvēra vārtus */int exam_flow () {double percent_seen = double (numura_virziena_skats)/max_in_flow; Serial.print ("Pārklātais procents:"); printDouble (procenti_seen, 100); // mērogot vērtību līdz komunikācijas skalai int scaled_flow = int (procenti_seen * msg_max_val); if (scaled_flow> msg_max_val) {scaled_flow = msg_max_val; } ja (mērogota plūsma = 0) frac = (val - int (val)) * precizitāte; cits frac = (int (val)- val) * precizitāte; Serial.println (frac, DEC); }

Šeit ir kreisās indikatora kods. Veiciet tās pašas darbības, kas aprakstītas kreisajā indikatorā. Kā redzat, vienīgā atšķirība ir adrese, uz kuru indikators sūta savus rezultātus.

/** Programma, kas izmanto foto vārtus, lai pārbaudītu indikatoru

*/ #include #include #include #include RF24 radio (9, 10); // CE, CSN konstanta baita adrese [6] = "00001"; // --- programmas Consts --- // time const int string_check_time = 1; const int plūsmas_pārbaudes_laiks = 30; const int bāzes_ aizkavēšanās = 5; const int flow_check_delay = 0; const int GATE_PIN = 6; const int GATE_PIN_2 = 7; const int max_kad_testēšana = plūsmas_pārbaudes_laiks * 0,6; // iestatiet iepriekš minēto, pamatojoties uz jūsu eksperimentālajiem izmēģinājumiem 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 // --- programma vars --- int num_string_seen = 0; int num_loops = 0; void setup () {// while (! Serial); // florai // kavēšanās (500); numura_virkne_redzēts = 0; skaitļu cilpas = 0;

pinMode (GATE_PIN, INPUT);

pinMode (GATE_PIN_2, INPUT); Serial.begin (115200); // radio atkļūdošanai.begin (); radio.openWritingPipe (adrese); radio.setPALevel (RF24_PA_MIN); radio.stopListening (); } void loop () {// ievietojiet šeit savu galveno kodu, lai palaistu atkārtoti: if (num_loops % string_check_time == 0) {// pārbaudiet virknes stāvokli check_string (); } if (num_loops == flow_check_time) {// pārbaudīt flow //Serial.println(num_string_seen); int plūsmas_numurs = exam_flow (); // nosūtīt vērtības send_out (flow_num); // atiestatīt vars num_string_seen = 0; skaitļu cilpas = 0; kavēšanās (flow_check_delay); } num_loops ++; kavēšanās (bāzes_kavēšanās); } / * *Metode, kā pārbaudīt, vai virkne šķērso vārtus * / void check_string () {int string_state = digitalRead (GATE_PIN); //Serial.println(string_state); ja (virknes_valsts == 0) {num_string_seen ++; //Serial.println("Saw string! "); }

int bot_state = digitalRead (GATE_PIN_2);

ja (bot_valsts == 0) {num_string_seen--; //Serial.println(" virkne apakšā! "); } //Sērijas.print ("Skaitīšanas virkņu caurlaides: "); //Serial.println(num_string_seen); atgriešanās; }/ * * Metode, lai analizētu, kāda laika virknes daļa aptvēra vārtus */int exam_flow () {double percent_seen = double (numura_virziena_skats)/max_in_flow; Serial.print ("Pārklātais procents:"); printDouble (procenti_seen, 100); // mērogot vērtību līdz komunikācijas skalai int scaled_flow = int (procenti_seen * msg_max_val); if (scaled_flow> msg_max_val) {scaled_flow = msg_max_val; } ja (mērogota plūsma = 0) frac = (val - int (val)) * precizitāte; cits frac = (int (val)- val) * precizitāte; Serial.println (frac, DEC); }

5. solis: indikatora montāža

Indikatora asambleja
Indikatora asambleja

Atsevišķas detaļas

  • Indikatora rāmis
  • Dzija
  • Izveidota indikatora ķēde
  • Baterijas paka
  • Elektriskā lente
  • Epoksīds vai līme

STL 3D drukas indikatora komponentiem

  • STL indikatora rāmim: pa kreisi, pa labi
  • STL elektronikas kārbai: augšā, apakšā

Montāžas instrukcijas

  1. Ievietojiet stieņu magnētus 3D drukātā indikatora rāmja spraugās. Pārliecinieties, vai magnēti ir pareizi novietoti starp labo rāmi un kreiso rāmi, pēc tam izmantojiet epoksīdu (vai līmi), lai magnētus piestiprinātu pie rāmja. Ļaujiet epoksīdam (vai līmei) pilnībā sacietēt.
  2. Ievietojiet foto pārtraucējus rāmja aizmugurē augšējā un apakšējā slotā. Uzmanīgi epoksidējiet (vai pielīmējiet) foto pārtraucēju dēļus pie rāmja. Ļaujiet epoksīdam (vai līmei) pilnībā sacietēt
  3. Izgrieziet ~ 7 dzijas gabalā. Piesiet vienu dzijas galu pie pirmās vertikālās joslas iecirtuma. Izgrieziet nelielu elektriskās lentes gabalu un aptiniet elektrisko lenti virs dzijas daļas, kas atradīsies fotoattēlu pārtraucēju reģionā. Izvelciet dziju caur rāmi tā, lai tā izietu cauri foto pārtraucēja vārtu spraugai.
  4. Ievietojiet stieņu magnētus 3D drukātās elektronikas kastes apakšā esošajās spraugās. Pārliecinieties, vai magnēti ir pareizi novietoti starp labo un kreiso kārbu, pēc tam izmantojiet epoksīdu (vai līmi), lai piestiprinātu magnētus pie rāmja. Ļaujiet epoksīdam (vai līmei) pilnībā sacietēt.
  5. Ievietojiet konstruēto indikatora ķēdi elektronikas kārbā, pielīdzinot dažādus komponentus to spraugām. Aizveriet lodziņu ar 3D drukātās elektronikas kastes augšpusi. Epoksīda (vai līmes) akumulatoru pie kastes augšdaļas tā, lai slēdzis būtu atklāts.

6. darbība: skaļruņu aparatūra

Skaļruņu aparatūra
Skaļruņu aparatūra
Skaļruņu aparatūra
Skaļruņu aparatūra
Skaļruņu aparatūra
Skaļruņu aparatūra

Izejas sistēma sastāv no divām skaļruņu ķēdēm, viena katrai indikatorei, kas aprīkota ar bezvadu sakariem un skaļuma regulēšanas pogu. Vispirms sagatavojiet protobordus lietošanai ar nRF24L01 moduļiem, kā mēs to darījām indikatoru ķēdēm, nogriežot vadus, kas atdala abas tapas rindas, kur tiks novietota tāfele.

Pēc tam samontējiet ķēdi, kā parādīts iepriekš redzamajā diagrammā, vienlaikus atsaucoties uz pabeigto shēmu fotoattēliem.

Valdes montāžas instrukcijas

Lai dēļus sakrautu skaļruņu korpusā, galvenās sastāvdaļas jānovieto noteiktās tāfeles vietās. Turpmākajos norādījumos es atsaucos uz koordinātu sistēmu, ko izmanto rindu un kolonnu apzīmēšanai Adafruit protoboard:

  1. Arduino Nano jānovieto pret tāfeles augšējo malu centrā tā, lai Vin tapa būtu novietota G16. Tas ļaus viegli pārprogrammēt Arduino Nano pēc ķēdes montāžas.
  2. Plāksne nRF24L01 jānovieto tāfeles apakšējā labajā stūrī, aptverot astoņas pozīcijas no C1 līdz D5. Tas ļaus nRF24L01 nokarāties no protoboarda, lai nodrošinātu labāku bezvadu saziņu.
  3. Skaļruņu sistēmas akumulators darbina abus protobordus, tāpēc noteikti pievienojiet strāvas padevei divas Arduino Nano GND sliedes/tapas un Vin tapas.
  4. Apakšējai ķēdei potenciometrs jānovieto uz tāfeles augšpuses, kas vērsta uz āru tā, lai tā tapas būtu novietotas pozīcijās J2, J4 un J6

    1. J2 ↔ Arduino Nano izeja no 3. digitālās tapas (D3)
    2. J4 ↔ 2N3904 tranzistora bāzes tapa
    3. J6 ↔ nav savienots
  5. Augšējai ķēdei potenciometrs jānovieto tāfeles apakšā uz āru tā, lai tā tapas būtu novietotas pozīcijās J9, J11 un J13

    1. J13 ↔ Arduino Nano izeja no 3. digitālās tapas (D3)
    2. J11 ↔ 2N3904 tranzistora bāzes tapa
    3. J9 ↔ nav savienots

7. darbība: skaļruņu programmatūra

Šeit ir skaļruņa kods, kas sazinās ar kreiso indikatoru. Pievienojiet Arduino Nano, kas atrodas apakšējā skaļruņu panelī, ar datoru, atveriet Arduino IDE, nokopējiet un ielīmējiet tajā šo kodu un augšupielādējiet to uz tāfeles.

#iekļaut

#iekļaut #iekļaut RF24 radio (7, 8); // CE, CSN // kreisais indikators, augšējā skaļruņa dēļa konstanta baita adrese [6] = "00001"; const int piķis = 2000; const int pitch_duration = 200; const int runātājs = 3; const int delay_gain = 100; int statuss = 0; int cur_delay = 0; char lasīt [2]; void setup () {pinMode (skaļrunis, OUTPUT); Serial.begin (115200); Serial.println ("Bezvadu sakaru sākšana …"); radio.begin (); radio.openReadingPipe (0, adrese); radio.setPALevel (RF24_PA_MIN); radio.startListening (); } void loop () {if (radio.available ()) {radio.read (& read, sizeof (lasīt)); statuss = (int) (lasīt [0]-'0'); Serial.print ("Saņemts:"); Serial.println (statuss); cur_delay = delay_gain*statuss; } if (cur_delay) {tonis (skaļrunis, piķis, piķa ilgums); kavēšanās (cur_delay + pitch_duration); Serial.println ("Pīkst!"); }}

Šeit ir kods runātājam, kas sazinās ar pareizo indikatoru. Pievienojiet Arduino Nano, kas atrodas augšējā skaļruņu panelī, ar datoru, atveriet Arduino IDE, nokopējiet un ielīmējiet tajā šo kodu un augšupielādējiet to uz tāfeles.

#iekļaut

#iekļaut #iekļaut RF24 radio (7, 8); // CE, CSN // labais indikators, apakšējā skaļruņa dēļa konstanta baita adrese [6] = "00010"; const int piķis = 1500; const int pitch_duration = 200; const int runātājs = 3; const int delay_gain = 100; int statuss = 0; int cur_delay = 0; char lasīt [2]; void setup () {pinMode (skaļrunis, OUTPUT); Serial.begin (115200); Serial.println ("Bezvadu sakaru sākšana …"); radio.begin (); radio.openReadingPipe (0, adrese); radio.setPALevel (RF24_PA_MIN); radio.startListening (); } void loop () {if (radio.available ()) {radio.read (& read, sizeof (lasīt)); statuss = (int) (lasīt [0]-'0'); Serial.print ("Saņemts:"); Serial.println (statuss); cur_delay = delay_gain*statuss; } if (cur_delay) {tonis (skaļrunis, piķis, piķa ilgums); kavēšanās (cur_delay+pitch_duration); Serial.println ("Pīkst!"); }}

8. solis: skaļruņu montāža

Atsevišķas detaļas

  • 2 konstruētas skaļruņu shēmas
  • 2 skaļruņi
  • 1 akumulators

STL 3D drukāšanai

  • Kastes augšdaļa
  • Kastes apakšdaļa

Fiziskās montāžas instrukcijas

  1. Uzmanīgi ievietojiet skaļruņu ķēdes kastes apakšā, vienu dēli virs otra tā, lai skaļuma regulēšanas pogas būtu blakus un ieslīdētu caurumos. Sakaru mikroshēmām jābūt atklātām kastes aizmugurē.
  2. Novietojiet skaļruņus shēmas plates kreisajā un labajā pusē, pārliecinoties, ka skaļruņi atbilst pareizajām indikatora pusēm. Pielāgojiet skaļruņus kastes sānos esošajām spraugām.
  3. Izvadiet akumulatora vadus caur nelielu caurumu kastes aizmugurē. Epoksīda (vai līmējiet) akumulatoru pie kastes aizmugures tā, lai slēdzis būtu atklāts.
  4. Novietojiet 3D drukātu lodziņu virs kastes apakšas, lai tajā būtu viss.

9. solis: iestatīšana/montāža

Uzstādīšana/montāža
Uzstādīšana/montāža
  1. Ieslēdziet indikatorus, pagriežot akumulatoru slēdžus pozīcijā “ON”. Dariet to pašu attiecībā uz skaļruņu komplektu, lai ieslēgtu izvades sistēmu.
  2. Skaņas signāllampiņu uzstādīšana ir visvieglāk ar diviem cilvēkiem, bet to var izdarīt ar vienu. Lai uzstādītu uz nesprādzējušās strēles, indikatorus visvieglāk būtu uzlikt pirms buras pacelšanas.
  3. Lai pārliecinātos, ka indikatora rāmis ir pareizi orientēts, apskatiet iegriezumu vienā no vertikālajām joslām. Turot rāmi vertikāli, iecirtumam jābūt uz augšu. Arī rāmja malai ar šo stieni jābūt vērstai uz laivas priekšpusi.
  4. Novietojiet vienu no indikatoriem vēlamajā augstumā un novietojiet to uz buras. Tas jānovieto tā, lai dzija atrastos tajā pašā vietā, kur tā būtu, ja tā būtu daļa no tradicionālā indikatora.
  5. Kad jums ir viens stāsts vēlamajā pozīcijā. Novietojiet otru indikatoru buras otrā pusē, tieši pretēji pirmajam novietotajam, tā, lai magnēti sakristu. Kad magnēti ir izveidojuši savienojumu, tiem vajadzētu droši turēt rāmi pie buras. Sakārtojiet elektronikas korpusu magnētus katrā indikatorā abās buras pusēs tā, lai tie arī savienotos.
  6. Ja pamanāt, ka tad, kad aukla plūst taisni atpakaļ, tā nekrustojas augšējo vārtu priekšā, pagrieziet indikatora rāmi tā, lai rāmja aizmugurējā puse būtu uz leju. Pagrieziet rāmi, līdz aukla iet cauri augšējam foto pārtraucējam, kad dzija plūst taisni atpakaļ.

10. darbība: problēmu novēršana

Visiem koda gabaliem ir atkļūdošanas drukas paziņojumi, kas norāda, ka tie sūta, saņem un apstrādā datus. Atverot COM portu, izmantojot Arduino IDE ar vienu no Arduino Nano apakšsistēmām, kas pievienota datoram, varēsit apskatīt šos statusa ziņojumus.

Ja sistēma nedarbojas pareizi, pārslēdziet visu sastāvdaļu slēdžus.

11. darbība: iespējamās turpmākās darbības

  • Hidroizolācija
  • Komunikācija ar lielāku diapazonu. WiFi ir daudzsološa iespēja.
  • Mūsu pašreizējā iestatījumā uz indikatora pašlaik tiek izmantoti 2 fotoattēlu pārtraucēji. Varētu būt interesanti pievienot sistēmai vairāk fotoattēlu pārtraucēju.

Ieteicams: