Obsah:

Zvuková vyprávění pro plachtění: 11 kroků
Zvuková vyprávění pro plachtění: 11 kroků

Video: Zvuková vyprávění pro plachtění: 11 kroků

Video: Zvuková vyprávění pro plachtění: 11 kroků
Video: Cynthia Harrod-Eagles-Dynastie Morlandů 11/Napoleon přichází 2/2 2024, Červenec
Anonim
Image
Image
Telltale Hardware
Telltale Hardware

Telltales jsou kousky provázku používané při plavbě k označení, zda je plachta turbulentní nebo laminární. Různě barevné kousky příze připevněné ke každé straně plachty jsou však čistě vizuální indikátory. Tato zvuková vyprávění jsou pomocným zařízením, které si klade za cíl sdělit vizuální informace ve sluchové formě jak vidícím, tak zrakově postiženým námořníkům, jako je Pauline.

Zařízení se skládá ze vstupního systému, který čte pohyb kontrolky, a výstupního systému, který vydává sérii pípnutí, které přenášejí informace o proudění vzduchu.

Při výrobě tohoto zařízení je vyžadován přístup k pájecímu zařízení a 3D tiskárně.

Krok 1: Kusovník

Kusovník s odkazy a cenami

Poznámka: budete potřebovat 2 sady všech následujících.

Vstupní systém

  • Arduino Nano
  • Deska plošného spoje poloviční velikosti Adafruit perma-proto
  • Modul bezdrátového transceiveru nRF24L01
  • Přerušovač fotografií
  • Sparkfun Photo Interrupter Breakout Board
  • 9V baterie kompatibilní s Arduino
  • 9V baterie
  • Několik délek 22 měřicího drátu
  • Příze
  • Neodymové magnety
  • Epoxid

Výstupní systém

  • Arduino Nano
  • Poloviční deska plošného spoje Adafruit perma-proto
  • Modul bezdrátového transceiveru nRF24L01
  • 9V baterie kompatibilní s Arduino
  • Potenciometr 1K Ohm
  • Odpor 120 ohmů
  • Tranzistor 2N3904
  • 0,1 uF kondenzátor
  • Reproduktor kompatibilní s Arduino

Soubory GitHub

  • Všechny soubory kódu a STL potřebné k sestavení těchto sdělovačů najdete v tomto GitHub repo.
  • Budete potřebovat dvě sady skříně a jednu skříň reproduktorů.

Krok 2: Nástroje/Stroje/Softwarové požadavky

K programování Arduina si musíte stáhnout Arduino IDE. Odkaz ke stažení najdete zde.

K programování modulu nRF24L01 budete muset stáhnout jeho knihovnu přes Arduino IDE. Nástroje> Spravovat knihovny…> nainstalovat knihovnu RF24

K sestavení elektronických součástek je vyžadován přístup k základním pájecím nástrojům. Odpájecí čerpadlo může být také užitečné, ale není nutné.

Ke konstrukci rámu sdělovače a skříně reproduktoru budete potřebovat přístup k 3D tiskárně.

Krok 3: Telltale Hardware

Telltale Hardware
Telltale Hardware
Telltale Hardware
Telltale Hardware

Sestavte obvod podle výše uvedených schémat. Arduino Nano by mělo být zarovnáno s horní částí protoboardu. To vám umožní mít přístup k portu USB, i když je připojena veškerá elektronika.

Abyste zabránili zkratu elektroniky, ujistěte se, že jste odřízli stopy protoboardu v řadách, které nRF24 obsadí, jak je znázorněno na obrázku výše.

V opačném případě budete k připojení nRF24 k protoboardu potřebovat propojovací kabely.

Připojení rezistoru, GND a 5V vodiče k přerušovači fotografií nejsou zobrazeny. Zapojte přerušovač fotografií, jak je uvedeno na jeho oddělovací desce. Součástí je obrázek odpočinkové tabule.

Obvody pro pravé a levé hlásiče jsou úplně stejné.

Krok 4: Telltale Software

Zde je kód pro správný sdělovač. Připojte nano telltale nano k počítači, otevřete Arduino IDE, zkopírujte a vložte do něj tento kód a nahrajte jej na desku.

/** Program, který používá Photogate k prozkoumání sdělovače

*/ #include #include #include #include RF24 radio (9, 10); // CE, CSN const byte byte [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; // nastavení var výše na základě vlastních experimentálních pokusů 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); // pro flóru // zpoždění (500); num_string_seen = 0; num_loops = 0; pinMode (GATE_PIN, INPUT); pinMode (GATE_PIN_2, INPUT); Serial.begin (115200); // pro ladění radio.begin (); radio.openWritingPipe (adresa); radio.setPALevel (RF24_PA_MIN); radio.stopListening (); } void loop () {// sem vložte svůj hlavní kód, aby se spustil opakovaně: if (num_loops % string_check_time == 0) {// zkontrolujte stav řetězce check_string (); } if (num_loops == flow_check_time) {// prozkoumejte tok //Serial.println(num_string_seen); int flow_num = zkoumat_proudu (); // odeslání hodnot send_out (flow_num); // reset vars num_string_seen = 0; num_loops = 0; zpoždění (flow_check_delay); } num_loops ++; zpoždění (base_delay); } / * *Metoda kontroly, zda řetězec překračuje bránu * / void check_string () {int string_state = digitalRead (GATE_PIN); //Serial.println(string_state); if (string_state == 0) {num_string_seen ++; //Serial.println("Řetěz pily! "); }

int bot_state = digitalRead (GATE_PIN_2);

if (bot_state == 0) {num_string_seen--; //Serial.println(" řetězec dole! "); } //Serial.print("Counting string goes: "); //Serial.println(num_string_seen); vrátit se; }/ * * Metoda analýzy, která část řetězce času pokrývala bránu */int exam_flow () {double percent_seen = double (num_string_seen)/max_in_flow; Serial.print ("Pokryté procento:"); printDouble (percent_seen, 100); // škálování hodnoty na komunikační měřítko int scaled_flow = int (procento_pohledu * msg_max_val); if (scaled_flow> msg_max_val) {scaled_flow = msg_max_val; } if (scaled_flow = 0) frac = (val - int (val)) * přesnost; else frac = (int (val)- val) * přesnost; Serial.println (frac, DEC); }

Zde je kód pro levou kontrolku. Postupujte podle stejných kroků jako výše pro levou kontrolku. Jak vidíte, jediným rozdílem je adresa, na kterou kontrolka odesílá své výsledky.

/** Program, který používá Photogate k prozkoumání sdělovače

*/ #include #include #include #include RF24 radio (9, 10); // CE, CSN konstantní 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; // nastavení var výše na základě vlastních experimentálních pokusů 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); // pro flóru // zpoždění (500); num_string_seen = 0; num_loops = 0;

pinMode (GATE_PIN, INPUT);

pinMode (GATE_PIN_2, INPUT); Serial.begin (115200); // pro ladění radio.begin (); radio.openWritingPipe (adresa); radio.setPALevel (RF24_PA_MIN); radio.stopListening (); } void loop () {// sem vložte svůj hlavní kód, aby se spustil opakovaně: if (num_loops % string_check_time == 0) {// zkontrolujte stav řetězce check_string (); } if (num_loops == flow_check_time) {// prozkoumejte tok //Serial.println(num_string_seen); int flow_num = zkoumat_proudu (); // odeslání hodnot send_out (flow_num); // reset vars num_string_seen = 0; num_loops = 0; zpoždění (flow_check_delay); } num_loops ++; zpoždění (base_delay); } / * *Metoda pro kontrolu, zda řetězec překračuje bránu * / void check_string () {int string_state = digitalRead (GATE_PIN); //Serial.println(string_state); if (string_state == 0) {num_string_seen ++; //Serial.println("Řetěz pily! "); }

int bot_state = digitalRead (GATE_PIN_2);

if (bot_state == 0) {num_string_seen--; //Serial.println(" řetězec dole! "); } //Serial.print("Counting string goes: "); //Serial.println(num_string_seen); vrátit se; }/ * * Metoda analýzy, která část řetězce času pokrývala bránu */int exam_flow () {double percent_seen = double (num_string_seen)/max_in_flow; Serial.print ("Pokryté procento:"); printDouble (percent_seen, 100); // škálování hodnoty na komunikační měřítko int scaled_flow = int (procento_pohledu * msg_max_val); if (scaled_flow> msg_max_val) {scaled_flow = msg_max_val; } if (scaled_flow = 0) frac = (val - int (val)) * přesnost; else frac = (int (val)- val) * přesnost; Serial.println (frac, DEC); }

Krok 5: Sestava kontrolky

Sestava Telltale
Sestava Telltale

Jednotlivé díly

  • Světelný rám
  • Příze
  • Zkonstruovaný oznamovací obvod
  • Balíček baterií
  • Elektrická páska
  • Epoxid nebo lepidlo

STL pro sdělovací komponenty 3D tisku

  • STL pro kontrolní rámeček: vlevo, vpravo
  • STL pro elektroniku: nahoře, dole

Montážní návod

  1. Umístěte tyčové magnety do slotů 3D tištěného kontrolního rámečku. Ujistěte se, že jsou magnety správně zarovnány mezi pravým rámečkem a levým rámečkem, poté pomocí epoxidu (nebo lepidla) připevněte magnety k rámu. Nechte epoxid (nebo lepidlo) úplně zatuhnout.
  2. Umístěte přerušovače fotografií do horních a dolních slotů v zadní části rámečku. Opatrně epoxidujte (nebo přilepte) desky přerušení fotografie k rámu. Nechte epoxid (nebo lepidlo) úplně zatuhnout
  3. Odřízněte ~ 7 kusů příze. Jeden konec příze přivažte do zářezu první svislé tyče. Odřízněte malý kousek elektrické pásky a omotejte elektrickou pásku přes část příze, která bude v oblasti přerušovačů fotografií. Provlékněte přízi rámem tak, aby prošla mezerou brány přerušovače fotografií.
  4. Umístěte tyčové magnety do otvorů ve spodní části 3D krabice elektroniky. Ujistěte se, že jsou magnety správně zarovnány mezi pravým a levým boxem, a poté pomocí epoxidu (nebo lepidla) připevněte magnety k rámu. Nechte epoxid (nebo lepidlo) úplně zatuhnout.
  5. Umístěte zkonstruovaný oznamovací obvod do skříňky elektroniky a zarovnejte různé součásti do jejich slotů. Zavřete krabici vrchem 3D tištěné elektroniky. Epoxidujte (nebo přilepte) bateriový modul na horní stranu krabice, aby byl spínač odkrytý.

Krok 6: Hardware reproduktoru

Hardware reproduktorů
Hardware reproduktorů
Hardware reproduktorů
Hardware reproduktorů
Hardware reproduktorů
Hardware reproduktorů

Výstupní systém se skládá ze dvou reproduktorových obvodů, jednoho pro každý indikátor, vybaveného bezdrátovou komunikací a knoflíkem pro nastavení hlasitosti. Nejprve připravte protoboardy pro použití s moduly nRF24L01, jako jsme to udělali pro sdělovací obvody, odříznutím vodičů oddělujících dvě řady pinů, kde bude deska umístěna.

Poté sestavte obvod, jak je znázorněno na obrázku výše, a podívejte se na fotografie dokončených obvodů.

Pokyny k montáži desky

Aby bylo možné desky skládat do skříně reproduktorů, musí být hlavní součásti umístěny v určitých oblastech desky. V následujících pokynech budu odkazovat na souřadnicový systém používaný k označení řádků a sloupců na protoboardu Adafruit:

  1. Arduino Nano musí být umístěno proti hornímu okraji desky ve středu tak, aby byl pin Vin umístěn na G16. To umožní snadné přeprogramování Arduino Nano po sestavení obvodu.
  2. Deska nRF24L01 musí být umístěna v pravém dolním rohu desky přes osm pozic od C1 do D5. To ponechá nRF24L01 viset na protoboardu, což umožní lepší bezdrátovou komunikaci.
  3. Sada baterií pro reproduktorový systém napájí obě protoboardy, takže nezapomeňte připojit dvě GNU lišty/piny Arduino Nano a piny Vin k napájecímu zdroji.
  4. U „spodního“obvodu by měl být potenciometr umístěn na horní straně desky směrem ven, aby jeho kolíky byly umístěny v polohách J2, J4 a J6

    1. J2 ↔ Arduino Nano výstup z digitálního pinu 3 (D3)
    2. J4 ↔ základní pin tranzistoru 2N3904
    3. J6 ↔ nespojeno
  5. U „horního“obvodu by měl být potenciometr umístěn na spodní straně desky směrem ven, aby jeho kolíky byly umístěny v polohách J9, J11 a J13

    1. J13 ↔ Arduino Nano výstup z digitálního pinu 3 (D3)
    2. J11 ↔ základní pin tranzistoru 2N3904
    3. J9 ↔ nespojeno

Krok 7: Reproduktorový software

Zde je kód pro mluvčího, který komunikuje s levou kontrolkou. Připojte Arduino Nano na spodní desce reproduktorů k počítači, otevřete Arduino IDE, zkopírujte a vložte do něj tento kód a nahrajte jej na desku.

#zahrnout

#include #include RF24 radio (7, 8); // CE, CSN // sdělovač vlevo, adresa konstantního bajtu horní bajty [6] = "00001"; konstantní výška tónu = 2000; const int pitch_duration = 200; const int reproduktor = 3; const int delay_gain = 100; int stav = 0; int cur_delay = 0; char read [2]; void setup () {pinMode (reproduktor, VÝSTUP); Serial.begin (115200); Serial.println ("Spouštění bezdrátové komunikace …"); 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) (čtení [0]-'0'); Serial.print ("Přijato:"); Serial.println (stav); cur_delay = delay_gain*status; } if (cur_delay) {tón (reproduktor, výška tónu, délka hřiště); zpoždění (cur_delay + pitch_duration); Serial.println („Pípnutí!“); }}

Zde je kód pro reproduktor, který komunikuje se správným indikátorem. Připojte Arduino Nano na horní desce reproduktorů k počítači, otevřete Arduino IDE, zkopírujte a vložte do něj tento kód a nahrajte jej na desku.

#zahrnout

#include #include RF24 radio (7, 8); // CE, CSN // pravá kontrolka, spodní deska reproduktoru konstantní adresa bytu [6] = "00010"; konstantní výška tónu = 1500; const int pitch_duration = 200; const int reproduktor = 3; const int delay_gain = 100; int status = 0; int cur_delay = 0; char read [2]; void setup () {pinMode (reproduktor, VÝSTUP); Serial.begin (115200); Serial.println ("Spouštění bezdrátové komunikace …"); 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) (čtení [0]-'0'); Serial.print ("Přijato:"); Serial.println (stav); cur_delay = delay_gain*stav; } if (cur_delay) {tón (reproduktor, výška tónu, délka hřiště); zpoždění (cur_delay+pitch_duration); Serial.println („Pípnutí!“); }}

Krok 8: Sestava reproduktoru

Jednotlivé díly

  • 2 konstruované obvody reproduktorů
  • 2 reproduktory
  • 1 baterie

STL pro 3D tisk

  • Box top
  • Dno krabice

Pokyny pro fyzickou montáž

  1. Opatrně umístěte obvody reproduktorů do spodní části krabice, jedna deska na druhou, aby knoflíky hlasitosti byly vedle sebe a vklouzly do otvorů. Komunikační čipy by měly být odhaleny v zadní části krabice.
  2. Umístěte reproduktory nalevo a napravo od desky s obvody a ujistěte se, že reproduktory odpovídají správným kontrolkám. Zarovnejte reproduktory se sloty na bocích krabice.
  3. Protáhněte dráty sady baterií malým otvorem na zadní straně krabice. Epoxidový (nebo lepicí) blok baterií na zadní stranu krabice tak, aby byl spínač odkrytý.
  4. Umístěte 3D vytištěný box nahoře na spodní část boxu, aby obsahoval vše.

Krok 9: Nastavení/montáž

Nastavení/montáž
Nastavení/montáž
  1. Zapněte kontrolky přepnutím spínačů na bateriových soupravách do polohy „ZAPNUTO“. Totéž proveďte pro sestavu reproduktorů, abyste zapnuli výstupní systém.
  2. Montáž zvukových vyprávěčů se nejsnadněji provádí ve dvou lidech, ale lze ji provést s jedním. Při montáži na výklopný výložník by se sdělovače nejjednodušeji nasadily před zvednutím plachty.
  3. Abyste se ujistili, že je rámeček sdělovače správně orientován, podívejte se na zářez na jednom ze svislých pruhů. Při držení rámu ve svislé poloze by zářez měl směřovat nahoru. Strana rámu s touto lištou by také měla směřovat k přední části lodi.
  4. Umístěte jednu z vyprávěčů do požadované výšky a polohy na plachtu. Měla by být umístěna tak, aby příze byla na stejném místě, jako kdyby byla součástí tradiční vyprávění.
  5. Jakmile budete mít jeden příběh v požadované pozici. Umístěte další vyprávění na druhou stranu plachty, přesně naproti první, kterou jste umístili, aby se magnety seřadily. Jakmile se magnety spojí, měly by bezpečně držet rám k plachtě. Srovnejte magnety skříní elektroniky pro každou povídku na obou stranách plachty tak, aby se také spojily.
  6. Pokud si všimnete, že když struna teče rovně zpět, nepřekračuje se před horní branou, otočte rámeček vyprávění tak, aby zadní polovina rámu směřovala dolů. Když příze teče rovně dozadu, otáčejte rámečkem, dokud provázek neprochází vrchním přerušovačem fotografií.

Krok 10: Řešení potíží

Všechny části kódu mají ladicí tiskové příkazy, které indikují, že odesílají, přijímají a zpracovávají data. Otevření COM portu pomocí Arduino IDE s jedním ze subsystémů Arduino Nano zapojených do počítače vám umožní zobrazit tyto stavové zprávy.

Pokud systém nepracuje správně, přepněte přepínače na všech komponentách.

Krok 11: Možné další kroky

  • Hydroizolace
  • Komunikace na delší vzdálenost. WiFi je slibná možnost.
  • Naše aktuální nastavení aktuálně používá 2 přerušovače fotografií na sdělovač. Přidání dalších přerušovačů fotografií do systému by mohlo být zajímavé vyzkoušet.

Doporučuje: