Obsah:

Zvukové rozprávania o plachtení: 11 krokov
Zvukové rozprávania o plachtení: 11 krokov

Video: Zvukové rozprávania o plachtení: 11 krokov

Video: Zvukové rozprávania o plachtení: 11 krokov
Video: Why I Quit YouTube 2024, Júl
Anonim
Image
Image
Telltale Hardware
Telltale Hardware

Rozprávače sú kúsky šnúr, ktoré sa používajú pri plavbe na označenie, či plachta prechádza turbulentným alebo laminárnym prúdením. Rôzne farebné kúsky priadze pripevnené na každej strane plachty sú však čisto vizuálnymi indikátormi. Tieto zvukové kontrolky sú pomocným zariadením, ktoré si kladie za cieľ sprostredkovať vizuálne informácie zvukovou formou pre zrakovo aj zrakovo postihnutých námorníkov, ako je Pauline.

Zariadenie pozostáva zo vstupného systému, ktorý sníma pohyb kontrolky, a výstupného systému, ktorý vydáva sériu pípnutí prenášajúcich informácie o prúdení vzduchu.

Pri výrobe tohto zariadenia je potrebný prístup k spájkovaciemu zariadeniu a 3D tlačiarni.

Krok 1: Kusovník

Kusovník s odkazmi a cenami

Poznámka: budete potrebovať 2 sady všetkých nasledujúcich.

Vstupný systém

  • Arduino Nano
  • Polovičná doska plošných spojov Adafruit perma-proto
  • Modul bezdrôtového vysielača a prijímača nRF24L01
  • Prerušovač fotografií
  • Sparkfun Foto prerušovacia doska
  • 9V batéria kompatibilná s Arduino
  • 9V batéria
  • Niekoľko dĺžok drôtu 22 gauge
  • Priadza
  • Neodymové magnety
  • Epoxid

Výstupný systém

  • Arduino Nano
  • Polovičná doska plošných spojov Adafruit perma-proto
  • Modul bezdrôtového vysielača a prijímača nRF24L01
  • 9V batéria kompatibilná s Arduino
  • Potenciometer 1K Ohm
  • Odpor 120 ohmov
  • Tranzistor 2N3904
  • Kondenzátor 0,1 uF
  • Reproduktor kompatibilný s Arduino

Súbory GitHub

  • Všetky súbory kódu a STL potrebné na zostavenie týchto rozprávačiek nájdete v tomto repo GitHubu.
  • Budete potrebovať dve sady puzdra a jednu z puzdra reproduktora.

Krok 2: Nástroje/Stroje/Požiadavky na softvér

Na programovanie Arduina si musíte stiahnuť Arduino IDE. Odkaz na stiahnutie nájdete tu.

Na programovanie modulu nRF24L01 si budete musieť stiahnuť jeho knižnicu prostredníctvom Arduino IDE. Nástroje> Spravovať knižnice …> nainštalovať knižnicu RF24

Na zostavenie elektronických súčiastok je potrebný prístup k základným spájkovacím nástrojom. Odpájkovacia pumpa môže byť tiež užitočná, ale nie je potrebná.

Na stavbu rámu oznamovača a skrinky reproduktora budete potrebovať prístup k 3D tlačiarni.

Krok 3: Informačný hardvér

Telltale Hardware
Telltale Hardware
Telltale Hardware
Telltale Hardware

Zostavte obvod podľa vyššie uvedených schém. Arduino Nano by malo byť zarovnané s hornou časťou protoboardu. To vám umožní mať prístup k portu USB aj po pripojení všetkej elektroniky.

Aby ste predišli skratu elektroniky, urežte stopy protoboardu v radoch, ktoré nRF24 zaberie, ako je znázornené na obrázku vyššie.

V opačnom prípade budete potrebovať prepojovacie káble na pripojenie nRF24 k protoboardu.

Pripojenie rezistora, GND a 5V vodiče k prerušovaču fotografií nie sú zobrazené. Zapojte prerušovač fotografií tak, ako je to uvedené na jeho oddeľovacej doske. Súčasťou je obrázok oddeľovacej dosky.

Obvody pre pravé a ľavé oznamovače sú úplne rovnaké.

Krok 4: Informačný softvér

Tu je kód pre správnu kontrolku. Pripojte nano telltale nano k počítaču, otvorte Arduino IDE, skopírujte a prilepte doň tento kód a nahrajte ho na dosku.

/** Program, ktorý používa fotogate na skúmanie oznamovača

*/ #include #include #include #include RF24 rádio (9, 10); // CE, CSN konštantná adresa bytu [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; // nastavenie varu vyššie na základe vlastných experimentálnych pokusov 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; void setup () {// while (! Serial); // pre flóru // zdržanie (500); num_string_seen = 0; num_loops = 0; pinMode (GATE_PIN, INPUT); pinMode (GATE_PIN_2, INPUT); Serial.begin (115200); // na ladenie radio.begin (); radio.openWritingPipe (adresa); radio.setPALevel (RF24_PA_MIN); radio.stopListening (); } void loop () {// sem vložte svoj hlavný kód, aby sa spúšťal opakovane: if (num_loops % string_check_time == 0) {// skontrolujte stav reťazca check_string (); } if (num_loops == flow_check_time) {// skúmanie toku //Serial.println(num_string_seen); int flow_num = exam_flow (); // odoslanie hodnôt send_out (flow_num); // reset vars num_string_seen = 0; num_loops = 0; oneskorenie (flow_check_delay); } num_loops ++; oneskorenie (base_delay); } / * *Metóda kontroly, či reťazec prechádza bránou * / void check_string () {int string_state = digitalRead (GATE_PIN); //Serial.println(string_state); if (string_state == 0) {num_string_seen ++; //Serial.println(" reťazec píly! "); }

int bot_state = digitalRead (GATE_PIN_2);

if (bot_state == 0) {num_string_seen--; //Serial.println(" reťazec v spodnej časti! "); } //Serial.print("Čítací reťazec prechádza: "); //Serial.println(num_string_seen); návrat; }/ * * Metóda analýzy, ktorá časť reťazca času pokrývala bránu */int exam_flow () {double percent_seen = double (num_string_seen)/max_in_flow; Serial.print ("Pokryté percento:"); printDouble (percent_seen, 100); // škálovanie hodnoty na komunikačnú stupnicu int scaled_flow = int (percent_seen * msg_max_val); if (scaled_flow> msg_max_val) {scaled_flow = msg_max_val; } if (scaled_flow = 0) frac = (val - int (val)) * presnosť; else frac = (int (val)- val) * presnosť; Serial.println (frac, DEC); }

Tu je kód pre kontrolku ľavice. Pri ľavom indikátore postupujte rovnako ako vyššie. Ako vidíte, jediným rozdielom je adresa, na ktorú kontrolka odosiela svoje výsledky.

/** Program, ktorý používa fotogate na skúmanie oznamovača

*/ #include #include #include #include RF24 rádio (9, 10); // CE, CSN konštantná adresa bytu [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; // nastavenie varu vyššie na základe vlastných experimentálnych pokusov 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; void setup () {// while (! Serial); // pre flóru // zdržanie (500); num_string_seen = 0; num_loops = 0;

pinMode (GATE_PIN, INPUT);

pinMode (GATE_PIN_2, INPUT); Serial.begin (115200); // na ladenie radio.begin (); radio.openWritingPipe (adresa); radio.setPALevel (RF24_PA_MIN); radio.stopListening (); } void loop () {// sem vložte svoj hlavný kód, aby sa spúšťal opakovane: if (num_loops % string_check_time == 0) {// skontrolujte stav reťazca check_string (); } if (num_loops == flow_check_time) {// skúmanie toku //Serial.println(num_string_seen); int flow_num = exam_flow (); // odoslanie hodnôt send_out (flow_num); // reset vars num_string_seen = 0; num_loops = 0; oneskorenie (flow_check_delay); } num_loops ++; oneskorenie (base_delay); } / * *Metóda kontroly, či reťazec prechádza bránou * / void check_string () {int string_state = digitalRead (GATE_PIN); //Serial.println(string_state); if (string_state == 0) {num_string_seen ++; //Serial.println(" reťazec píly! "); }

int bot_state = digitalRead (GATE_PIN_2);

if (bot_state == 0) {num_string_seen--; //Serial.println(" reťazec v spodnej časti! "); } //Serial.print("Čítací reťazec prechádza: "); //Serial.println(num_string_seen); návrat; }/ * * Metóda analýzy, ktorá časť reťazca času pokrývala bránu */int exam_flow () {double percent_seen = double (num_string_seen)/max_in_flow; Serial.print ("Pokryté percento:"); printDouble (percent_seen, 100); // škálovanie hodnoty na komunikačnú stupnicu int scaled_flow = int (percent_seen * msg_max_val); if (scaled_flow> msg_max_val) {scaled_flow = msg_max_val; } if (scaled_flow = 0) frac = (val - int (val)) * presnosť; else frac = (int (val)- val) * presnosť; Serial.println (frac, DEC); }

Krok 5: Montáž kontrolky

Kontrolka montáže
Kontrolka montáže

Jednotlivé diely

  • Kontrolný rámček
  • Priadza
  • Konštruovaný kontrolný obvod
  • Balenie batérií
  • Elektrická páska
  • Epoxid alebo lepidlo

STL pre výpovedné komponenty 3D tlače

  • STL pre kontrolný rámček: vľavo, vpravo
  • STL pre elektroniku: hore, dole

Montážne pokyny

  1. Umiestnite tyčové magnety do otvorov v 3D tlačovom rámčeku. Uistite sa, že sa magnety správne zarovnávajú medzi pravým rámom a ľavým rámom, potom pomocou epoxidu (alebo lepidla) pripevnite magnety k rámu. Nechajte epoxid (alebo lepidlo) úplne stuhnúť.
  2. Foto prerušovače umiestnite do horného a dolného otvoru v zadnej časti rámu. Opatrne epoxidujte (alebo prilepte) dosky prerušovača fotografií k rámu. Nechajte epoxid (alebo lepidlo) úplne stuhnúť
  3. Odrežte ~ 7 kusu priadze. Jeden koniec priadze uviažte do zárezu prvej zvislej tyče. Odrežte malý kúsok elektrickej pásky a omotajte elektrickú pásku cez časť priadze, ktorá bude v oblasti prerušovačov fotografií. Prevlečte priadzu cez rám tak, aby prechádzala medzerou brány fotografického prerušovača.
  4. Umiestnite tyčové magnety do otvorov v spodnej časti 3D skrinky elektroniky. Uistite sa, že sa magnety správne zarovnávajú medzi pravým a ľavým boxom, potom pomocou epoxidu (alebo lepidla) pripevnite magnety k rámu. Nechajte epoxid (alebo lepidlo) úplne stuhnúť.
  5. Umiestnite skonštruovaný kontrolný obvod do skrinky elektroniky a zarovnajte rôzne súčasti s ich slotmi. Zatvorte škatuľu pomocou vrchnej časti elektronickej skrinky s 3D tlačou. Epoxidujte (alebo prilepte) batériu na vrch škatule, aby bol spínač odkrytý.

Krok 6: Hardvér reproduktora

Hardvér reproduktora
Hardvér reproduktora
Hardware reproduktorov
Hardware reproduktorov
Hardware reproduktorov
Hardware reproduktorov

Výstupný systém pozostáva z dvoch reproduktorových obvodov, jedného pre každý indikátor, vybavených bezdrôtovou komunikáciou a kolieskom na nastavenie hlasitosti. Najprv pripravte protoboardy na použitie s modulmi nRF24L01, ako sme to urobili pre kontrolné obvody, odrezaním vodičov oddeľujúcich dva rady pinov, kde bude doska umiestnená.

Potom zostavte obvod podľa vyššie uvedeného diagramu a pozrite sa na fotografie dokončených obvodov.

Pokyny k montáži dosky

Aby bolo možné dosky skladať do skrinky reproduktorov, musia byť hlavné komponenty umiestnené v určitých oblastiach dosky. V nasledujúcich pokynoch sa budem odvolávať na súradnicový systém používaný na označenie riadkov a stĺpcov na protoboarde Adafruit:

  1. Arduino Nano musí byť umiestnené oproti hornému okraju dosky v strede tak, aby bol pin Vin umiestnený na G16. To umožní ľahké preprogramovanie Arduino Nano po zostavení obvodu.
  2. Doska nRF24L01 musí byť umiestnená v pravom dolnom rohu dosky pokrývajúcej osem pozícií od C1 do D5. Zariadenie nRF24L01 zostane visieť na protoboarde, aby bola možná lepšia bezdrôtová komunikácia.
  3. Batéria do systému reproduktorov napája obidva protoboardy, preto k napájaciemu zdroju pripojte dve GND lišty/piny a Vin piny Arduino Nano.
  4. V prípade „spodného“obvodu by mal byť potenciometer umiestnený na vrchu dosky smerom von, aby boli jeho kolíky umiestnené v polohách J2, J4 a J6.

    1. J2 ↔ Arduino Nano výstup z digitálneho pinu 3 (D3)
    2. J4 ↔ základný pin tranzistora 2N3904
    3. J6 ↔ nespojené
  5. V prípade „horného“obvodu by mal byť potenciometer umiestnený na spodnej strane dosky smerom von, aby boli jeho kolíky umiestnené v polohách J9, J11 a J13.

    1. J13 ↔ Arduino Nano výstup z digitálneho pinu 3 (D3)
    2. J11 ↔ základný pin tranzistora 2N3904
    3. J9 ↔ nespojené

Krok 7: Softvér reproduktora

Tu je kód pre reproduktora, ktorý komunikuje s ľavým kontrolkom. Pripojte Arduino Nano na spodnej doske reproduktorov k počítaču, otvorte Arduino IDE, skopírujte a vložte doň tento kód a nahrajte ho na dosku.

#zahrnúť

#include #include RF24 rádio (7, 8); // CE, CSN // ľavá kontrolka, horná doska reproduktora obsahuje adresu bajtu [6] = "00001"; konštantná výška tónu = 2000; const int pitch_duration = 200; const int reproduktor = 3; const int delay_gain = 100; int status = 0; int cur_delay = 0; char čítať [2]; void setup () {pinMode (reproduktor, VÝSTUP); Serial.begin (115200); Serial.println („Spustenie bezdrôtovej komunikácie …“); radio.begin (); radio.openReadingPipe (0, adresa); radio.setPALevel (RF24_PA_MIN); radio.startListening (); } void loop () {if (radio.available ()) {radio.read (& read, sizeof (read)); status = (int) (čítaj [0]-'0'); Serial.print ("Prijaté:"); Serial.println (stav); cur_delay = delay_gain*stav; } if (cur_delay) {tone (reproduktor, výška tónu, dĺžka tónu); oneskorenie (cur_delay + pitch_duration); Serial.println („Pípnutie!“); }}

Tu je kód pre rečníka, ktorý komunikuje so správnym oznamovačom. Pripojte Arduino Nano na hornej doske reproduktorov k počítaču, otvorte Arduino IDE, skopírujte a vložte doň tento kód a nahrajte ho na dosku.

#zahrnúť

#include #include RF24 rádio (7, 8); // CE, CSN // pravá kontrolka, spodná doska reproduktora obsahuje adresu bajtu [6] = "00010"; konštantná výška tónu = 1500; const int ihrisko_durácia = 200; const int reproduktor = 3; const int delay_gain = 100; int status = 0; int cur_delay = 0; char čítať [2]; void setup () {pinMode (reproduktor, VÝSTUP); Serial.begin (115200); Serial.println („Spustenie bezdrôtovej komunikácie …“); radio.begin (); radio.openReadingPipe (0, adresa); radio.setPALevel (RF24_PA_MIN); radio.startListening (); } void loop () {if (radio.available ()) {radio.read (& read, sizeof (read)); status = (int) (čítaj [0]-'0'); Serial.print ("Prijaté:"); Serial.println (stav); cur_delay = delay_gain*status; } if (cur_delay) {tone (reproduktor, výška tónu, výška tónu); oneskorenie (cur_delay+pitch_duration); Serial.println („Pípnutie!“); }}

Krok 8: Zostava reproduktorov

Jednotlivé diely

  • 2 zostrojené reproduktorové obvody
  • 2 reproduktory
  • 1 batéria

STL pre 3D tlač

  • Box top
  • Dno boxu

Pokyny pre fyzickú montáž

  1. Opatrne umiestnite obvody reproduktorov do spodnej časti škatule, jedna doska na druhú tak, aby boli gombíky hlasitosti vedľa seba a vkĺzli do otvorov. Komunikačné čipy by mali byť odhalené v zadnej časti škatule.
  2. Reproduktory umiestnite na ľavú a pravú stranu dosky plošných spojov a uistite sa, že reproduktory zodpovedajú správnym kontrolným stranám. Zarovnajte reproduktory s otvormi na bokoch škatule.
  3. Veďte káble sady batérií cez malý otvor vzadu z krabice. Epoxidovú (alebo prilepte) batériu na zadnú stranu škatule tak, aby bol spínač odkrytý.
  4. Umiestnite 3D vytlačený box hore na spodok boxu, aby obsahoval všetko.

Krok 9: Nastavenie/montáž

Nastavenie/montáž
Nastavenie/montáž
  1. Zapnite oznamovače prepnutím prepínačov na batériách do polohy „ZAPNUTÉ“. To isté urobte so zostavou reproduktorov, aby ste zapli výstupný systém.
  2. Montáž zvukových rozprávačiek sa najľahšie vykonáva s dvoma ľuďmi, ale dá sa vykonať aj s jednou. Pri montáži na nevlnený výložník by sa kontrolky najľahšie nasadili pred zdvihnutím plachty.
  3. Aby ste sa uistili, že je rám rozprávky správne orientovaný, pozrite sa na zárez na jednej zo zvislých tyčí. Pri držaní rámu vo zvislej polohe by mal byť zárez smerom nahor. Strana rámu s touto tyčou by mala smerovať aj k prednej časti lode.
  4. Umiestnite jednu z rozprávok do požadovanej výšky a polohy na plachte. Mala by byť umiestnená tak, aby bola priadza na rovnakom mieste, ako keby bola súčasťou tradičnej rozprávky.
  5. Akonáhle budete mať jednu rozprávku v požadovanej polohe. Druhú rozprávku umiestnite na druhú stranu plachty, presne oproti tej prvej, ktorú ste umiestnili, aby sa magnety zarovnali. Akonáhle sa magnety spoja, mali by rám bezpečne držať k plachte. Zoraďte magnety skriniek elektroniky pre každú rozprávku na oboch stranách plachty tak, aby sa tiež spojili.
  6. Ak si všimnete, že keď struna tečie späť, nekriží pred hornou bránou, otočte rámik rozprávky tak, aby zadná polovica rámu smerovala nadol. Keď priadza tečie rovno dozadu, otáčajte rámčekom, kým šnúrka neprejde horným prerušovačom fotografií.

Krok 10: Riešenie problémov

Všetky časti kódu majú ladiace tlačové príkazy, ktoré naznačujú, že odosielajú, prijímajú a spracúvajú údaje. Otvorenie COM portu pomocou Arduino IDE s jedným zo subsystémov Arduino Nano zapojených do počítača vám umožní zobraziť tieto stavové správy.

Ak systém nepracuje správne, prepnite prepínače na všetkých komponentoch.

Krok 11: Možné ďalšie kroky

  • Vodeodolný
  • Komunikácia na dlhší dosah. Sľubnou možnosťou je WiFi.
  • Naše aktuálne nastavenie v súčasnosti používa 2 prerušovače fotografií na jednu kontrolku. Pridanie ďalších prerušovačov fotografií do systému by mohlo byť zaujímavé vyskúšať.

Odporúča: