Satura rādītājs:
- 1. darbība: materiālu saraksts
- 2. darbība: rīki/mašīnas/programmatūras prasības
- 3. darbība: indikatoraparatūra
- 4. darbība: indikatora programmatūra
- 5. solis: indikatora montāža
- 6. darbība: skaļruņu aparatūra
- 7. darbība: skaļruņu programmatūra
- 8. solis: skaļruņu montāža
- 9. solis: iestatīšana/montāža
- 10. darbība: problēmu novēršana
- 11. darbība: iespējamās turpmākās darbības
Video: Skaņas signāli burāšanai: 11 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:55
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
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
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
- 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.
- 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
- 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.
- 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.
- 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
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:
- 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.
- 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.
- 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.
-
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
- J2 ↔ Arduino Nano izeja no 3. digitālās tapas (D3)
- J4 ↔ 2N3904 tranzistora bāzes tapa
- J6 ↔ nav savienots
-
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
- J13 ↔ Arduino Nano izeja no 3. digitālās tapas (D3)
- J11 ↔ 2N3904 tranzistora bāzes tapa
- 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
- 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ē.
- 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.
- 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.
- Novietojiet 3D drukātu lodziņu virs kastes apakšas, lai tajā būtu viss.
9. solis: iestatīšana/montāža
- 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.
- 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.
- 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.
- 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.
- 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.
- 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:
Skaņas sensoru spuldze: 5 soļi
Skaņas sensoru spuldze: Dizains ir plānošana un doma kaut ko radīt. Projekts, kas nāk no jūsu iztēles un padara to reālu. Projektējot, jums jāpārliecinās, ka zināt, kas ir dizaina domāšana. Dizaina domāšana ir tā, kā jūs plānojat visu pirms laika. Priekš
Skaņas lokalizējoša manekena galva ar Kinect: 9 soļi (ar attēliem)
Skaņu lokalizējoša manekena galva ar Kinect: Iepazīstieties ar Margaretu, testēšanas manekenu vadītāja noguruma uzraudzības sistēmai. Viņa nesen atvaļinājās no saviem pienākumiem un atrada ceļu uz mūsu biroja telpām, un kopš tā laika ir pievērsusi uzmanību tiem, kuri uzskata, ka viņa ir “rāpojoša”. Taisnīguma labad esmu
Automašīnas skaņas signāls - pielāgoti skaņas efekti: 4 soļi (ar attēliem)
Automašīnas signāltaure - pielāgoti skaņas efekti: es savā automašīnā instalēju pielāgotus skaņas skaņas efektus, pamatojoties uz Marka Robera YouTube videoklipiem, un man patīk veidot lietas. Manuprāt, pamata automašīnas ragam ir vajadzīgas vairāk iespējas efektīvai saziņai starp autovadītājiem. Tur, kur esmu no standarta automašīnas raga, ir
Arduino push signāli durvju zvanam, ielaušanās signalizācijai, dūmu signalizācijai utt.: 8 soļi
Arduino push brīdinājumi par durvju zvanu, ielaušanās signalizāciju, dūmu signalizāciju utt.: IoT paziņojumi no jūsu durvju zvana, ielaušanās signalizācijas, dūmu signalizācijas utt., Izmantojot Arduino Uno un Ethernet vairogu. Pilna informācija manā vietnē šeitPar Arduino Push Alert Box izmanto Arduino Uno un Ethernet vairogu, pamatojoties uz Wiznet W5100 mikroshēmu, lai
DIY zvana signāli: 4 soļi
DIY zvana signāli: šī pamācība ir paredzēta, lai palīdzētu saviem tālruņiem izveidot zvana signālus. Esmu redzējis citus norādījumus, kas runā par zvana signālu izgatavošanu; tomēr šajā pamācībā tiks izmantota tikai viena lejupielādētā programmatūra - iTunes. Otra daļa