Tartalomjegyzék:

Vitorlázás hallható jelzőfényei: 11 lépés
Vitorlázás hallható jelzőfényei: 11 lépés

Videó: Vitorlázás hallható jelzőfényei: 11 lépés

Videó: Vitorlázás hallható jelzőfényei: 11 lépés
Videó: Lazítottunk kicsit 2024, Július
Anonim
Image
Image
Telltale Hardver
Telltale Hardver

A visszajelzők a vitorlázás során használt zsinórdarabok, amelyek jelzik, hogy turbulens vagy lamináris áramlás folyik -e a vitorlán. A vitorla mindkét oldalához rögzített különböző színű fonaldarabok azonban pusztán vizuális mutatók. Ezek a hallható visszajelzők egy segédeszköz, amelynek célja a vizuális információk hallási formában történő közlése mind a látó, mind a látássérült tengerészek, például Pauline számára.

A készülék egy bemeneti rendszerből áll, amely olvassa a visszajelző mozgását, és egy kimeneti rendszerből, amely egy sor hangjelzést ad ki, amelyek légáramlási információkat közvetítenek.

A készülék gyártása során forrasztóberendezéshez és 3D nyomtatóhoz kell hozzáférni.

1. lépés: Anyagjegyzék

BOM linkekkel és árakkal

Megjegyzés: 2 készletre lesz szüksége az alábbiak közül.

Bemeneti rendszer

  • Arduino Nano
  • Adafruit perma-proto fél méretű kenyérlap deszkás PCB
  • nRF24L01 vezeték nélküli adó -vevő modul
  • Fotó megszakító
  • Sparkfun Photo Interruptter Breakout Board
  • Arduino -kompatibilis 9V -os akkumulátor
  • 9V -os akkumulátor
  • Több hosszúságú 22 -es drót
  • Fonal
  • Neodímium mágnesek
  • Epoxi

Kimeneti rendszer

  • Arduino Nano
  • Adafruit perma-proto félméretű kenyeretábla PCB
  • nRF24L01 vezeték nélküli adó -vevő modul
  • Arduino -kompatibilis 9V -os akkumulátor
  • 1K ohmos potenciométer
  • 120 ohmos ellenállás
  • 2N3904 tranzisztor
  • 0,1 uF kondenzátor
  • Arduino kompatibilis hangszóró

GitHub fájlok

  • Az összes jelzőfény létrehozásához szükséges kód és STL fájl megtalálható ebben a GitHub repóban.
  • Szüksége lesz két szekrénysorra és egy hangszóróházra.

2. lépés: Eszközök/Gépek/Szoftverkövetelmények

Az Arduino programozásához le kell töltenie az Arduino IDE -t. A letöltési link itt található.

Az nRF24L01 modul programozásához le kell töltenie a könyvtárát az Arduino IDE -n keresztül. Eszközök> Könyvtárak kezelése …> az RF24 könyvtár telepítése

Az elektronikus alkatrészek összeszereléséhez alapvető forrasztóeszközökhöz kell hozzáférni. A forrasztószivattyú szintén hasznos lehet, de nem szükséges.

A visszajelző keret és a hangszórótok megépítéséhez szüksége lesz egy 3D nyomtatóra.

3. lépés: Visszajelző hardver

Telltale Hardver
Telltale Hardver
Telltale Hardver
Telltale Hardver

Szerelje össze az áramkört a fenti ábrák szerint. Az Arduino Nano -t igazítani kell a prototábla tetejéhez. Ez lehetővé teszi, hogy hozzáférjen az USB -porthoz az összes elektronika csatlakoztatása után is.

Az elektronika rövidzárlatának elkerülése érdekében ügyeljen arra, hogy vágja le a protoboard nyomát azokon a sorokon, amelyeket az nRF24 foglal el, a fenti képen látható módon.

Ellenkező esetben jumper kábelekre lesz szüksége az nRF24 és a protoboard csatlakoztatásához.

Az ellenállás csatlakozás, a GND és az 5 V -os vezetékek a fotómegszakítóhoz nincsenek ábrázolva. Csatlakoztassa a fotómegszakítót a megszakító tábláján feltüntetett módon. A kitörőtábla képe mellékelve.

A jobb és a bal visszajelző áramköre pontosan ugyanaz.

4. lépés: Telltale szoftver

Itt található a helyes visszajelző kódja. Csatlakoztassa a jobb oldali jelzőfény nanóját a számítógépéhez, nyissa meg az Arduino IDE -t, másolja és illessze be ezt a kódot, és töltse fel a táblára.

/** Program, amely fotókaput használ a visszajelzők vizsgálatához

*/ #include #include #include #include RF24 rádió (9, 10); // CE, CSN const byte address [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 = folyamat_ellenőrzési ideje * 0.6; // állítsa be a fenti változót a saját kísérleti kísérletei alapján 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 (! Sorozat); // flóra számára // delay (500); szám_string_seen = 0; szám_hurkok = 0; pinMode (GATE_PIN, INPUT); pinMode (GATE_PIN_2, INPUT); Sorozat.kezdet (115200); // rádió hibakereséséhez.begin (); radio.openWritingPipe (cím); radio.setPALevel (RF24_PA_MIN); radio.stopListening (); } void loop () {// tegye ide a fő kódot az ismételt futtatáshoz: if (num_loops % string_check_time == 0) {// check string state check_string (); } if (szám_hurkok == folyam_ellenőrzési_idő) {// folyam megvizsgálása // Sorozat.println (szám_string_seen); int flow_num = exam_flow (); // értékek küldése send_out (flow_num); // reset vars num_string_seen = 0; szám_hurkok = 0; delay (flow_check_delay); } szám_hurkok ++; késleltetés (base_delay); } / * *Módszer annak ellenőrzésére, hogy a karakterlánc áthalad -e a kapun * / void check_string () {int string_state = digitalRead (GATE_PIN); //Serial.println(string_state); if (string_state == 0) {num_string_seen ++; //Serial.println("Saw string! "); }

int bot_state = digitalRead (GATE_PIN_2);

if (bot_state == 0) {num_string_seen--; // Sorozat.println ("karakterlánc az alján!"); } //Serial.print("Számláló karakterláncok: "); //Serial.println(num_string_seen); Visszatérés; }/ * * Módszer annak elemzésére, hogy az idősor hány része fedte a kaput */int exam_flow () {double percent_seen = double (num_string_seen)/max_in_flow; Serial.print ("Fedett százalék:"); printDouble (percent_seen, 100); // méretezze az értéket kommunikációs skálára int scaled_flow = int (percent_seen * msg_max_val); if (méretezett_áram> msg_max_val) {skálázott_folyamat = msg_max_val; } if (méretezett_folyamat = 0) frac = (val - int (val)) * pontosság; else frac = (int (val)- val) * pontosság; Soros.println (frac, DEC); }

Itt található a bal oldali jelzőfény kódja. Kövesse ugyanazokat a lépéseket, mint a bal oldali jelzőfénynél. Amint látja, az egyetlen különbség az a cím, amelyre a visszajelző elküldi eredményeit.

/** Program, amely fotókaput használ a visszajelzők vizsgálatához

*/ #include #include #include #include RF24 rádió (9, 10); // CE, CSN const byte address [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 = folyamat_ellenőrzési ideje * 0.6; // állítsa be a fenti változót a saját kísérleti kísérletei alapján 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 (! Sorozat); // flóra számára // delay (500); szám_string_seen = 0; szám_hurkok = 0;

pinMode (GATE_PIN, INPUT);

pinMode (GATE_PIN_2, INPUT); Sorozat.kezdet (115200); // rádió hibakereséséhez.begin (); radio.openWritingPipe (cím); radio.setPALevel (RF24_PA_MIN); radio.stopListening (); } void loop () {// tegye ide a fő kódot az ismételt futtatáshoz: if (num_loops % string_check_time == 0) {// check string state check_string (); } if (szám_hurkok == folyam_ellenőrzési_idő) {// folyam megvizsgálása // soros.nyomtatás (szám_string_seen); int flow_num = exam_flow (); // értékek küldése send_out (flow_num); // reset vars num_string_seen = 0; szám_hurkok = 0; delay (flow_check_delay); } szám_hurkok ++; késleltetés (bázis késleltetés); } / * *Módszer annak ellenőrzésére, hogy a karakterlánc áthalad -e a kapun * / void check_string () {int string_state = digitalRead (GATE_PIN); //Serial.println(string_state); if (string_state == 0) {num_string_seen ++; //Serial.println("Saw string! "); }

int bot_state = digitalRead (GATE_PIN_2);

if (bot_state == 0) {num_string_seen--; // Sorozat.println ("karakterlánc az alján!"); } //Serial.print("Számláló karakterláncok: "); //Serial.println(num_string_seen); Visszatérés; }/ * * Módszer annak elemzésére, hogy az idősor hány része fedte a kaput */int exam_flow () {double percent_seen = double (num_string_seen)/max_in_flow; Serial.print ("Fedett százalék:"); printDouble (percent_seen, 100); // méretezze az értéket kommunikációs skálára int scaled_flow = int (percent_seen * msg_max_val); if (méretezett_áram> msg_max_val) {skálázott_folyamat = msg_max_val; } if (méretezett_folyamat = 0) frac = (val - int (val)) * pontosság; else frac = (int (val)- val) * pontosság; Soros.println (frac, DEC); }

5. lépés: Visszajelző szerelvény

Visszajelző szerelvény
Visszajelző szerelvény

Egyedi alkatrészek

  • Visszajelző keret
  • Fonal
  • Kiépített visszajelző áramkör
  • Akkumulátor
  • Elektromos szalag
  • Epoxi vagy ragasztó

STL -k a 3D nyomtatás visszajelző elemeihez

  • STL a visszajelző kerethez: bal, jobb
  • STL -k az elektronikai dobozhoz: felül, alul

összeszerelési útmutató

  1. Helyezzen rúdmágneseket a 3D nyomtatott visszajelző keret nyílásaiba. Győződjön meg arról, hogy a mágnesek megfelelően illeszkednek a jobb és a bal keret közé, majd epoxi (vagy ragasztó) segítségével rögzítse a mágneseket a kerethez. Hagyja, hogy az epoxi (vagy ragasztó) teljesen megszilárduljon.
  2. Helyezze a fotómegszakítókat a keret hátulján lévő felső és alsó nyílásokba. Óvatosan epoxírozza (vagy ragasztja) a fényképmegszakító táblákat a kerethez. Hagyja, hogy az epoxi (vagy ragasztó) teljesen megszilárduljon
  3. Vágjon ~ 7 darab fonalat. A fonal egyik végét kösse össze az első függőleges rúd bevágásával. Vágjon le egy kis darab elektromos szalagot, és tekerje az elektromos szalagot a fonal azon részére, amely a fotómegszakítók környékén lesz. Fűzze át a fonalat a kereten úgy, hogy áthaladjon a fotómegszakító kapu résén.
  4. Helyezzen rúdmágneseket a 3D nyomtatott elektronika doboz aljának nyílásaiba. Győződjön meg arról, hogy a mágnesek megfelelően illeszkednek a jobb és a bal oldali doboz közé, majd epoxi (vagy ragasztó) segítségével rögzítse a mágneseket a kerethez. Hagyja, hogy az epoxi (vagy ragasztó) teljesen megszilárduljon.
  5. Helyezze az épített visszajelző áramkört az elektronikai dobozba, igazítva a különböző alkatrészeket a résükhöz. Zárja le a dobozt a 3D nyomtatott elektronika doboz tetejével. Epoxi (vagy ragasztó) az akkumulátort a doboz tetejéhez úgy, hogy a kapcsoló ki legyen téve.

6. lépés: Hangszóró hardver

Hangszóró hardver
Hangszóró hardver
Hangszóró hardver
Hangszóró hardver
Hangszóró hardver
Hangszóró hardver

A kimeneti rendszer két hangszóró áramkörből áll, mindegyik jelzőfényhez egy -egy, vezeték nélküli kommunikációval és hangerő -szabályozó gombbal. Először készítse elő a protoboardokat az nRF24L01 modulokkal való használatra, mint a visszajelző áramköröknél, úgy, hogy elvágja a vezetéket, amely elválasztja a két sor tűt, ahol a táblát elhelyezni fogják.

Ezután szerelje össze az áramkört a fenti ábra szerint, miközben a befejezett áramkörök fotóira hivatkozik.

A tábla összeszerelési utasításai

Annak érdekében, hogy a táblákat a hangszóróházba rakhassa, a fő alkatrészeket a tábla bizonyos területein kell elhelyezni. A következő utasításokban a sorok és oszlopok jelölésére használt koordinátarendszerre fogok utalni az Adafruit protoboardon:

  1. Az Arduino Nano -t a tábla felső széléhez kell helyezni középen úgy, hogy a Vin csap G16 -on legyen. Ez lehetővé teszi az Arduino Nano könnyű átprogramozását az áramkör összeszerelése után.
  2. Az nRF24L01 kártyát a kártya jobb alsó sarkában kell elhelyezni, a C1 -től a D5 -ig tartó nyolc pozícióban. Ezáltal az nRF24L01 lógni fog a protoboardon, hogy jobb vezeték nélküli kommunikációt biztosítson.
  3. A hangszóró -rendszer akkumulátora mindkét protoblasztot táplálja, ezért feltétlenül csatlakoztassa a két Arduino Nano GND sínt/csapját és Vin -csapját a tápegységhez.
  4. Az „alsó” áramkör esetében a potenciométert a tábla tetejére kifelé kell elhelyezni úgy, hogy a csapjait a J2, J4 és J6 pozícióba helyezze.

    1. J2 ↔ Arduino Nano kimenet a 3. digitális tűből (D3)
    2. J4 ↔ alaptű 2N3904 tranzisztorból
    3. J6 ↔ nincs kapcsolat
  5. A „felső” áramkör esetében a potenciométert a tábla aljára kell kifelé helyezni úgy, hogy csapjai a J9, J11 és J13 pozíciókban legyenek.

    1. J13 ↔ Arduino Nano kimenet a 3. digitális tűből (D3)
    2. J11 ↔ 2N3904 tranzisztor alapcsapja
    3. J9 ↔ nincs kapcsolat

7. lépés: Hangszóró szoftver

Itt található a bal oldali visszajelzővel kommunikáló hangszóró kódja. Csatlakoztassa az alsó hangszórótáblán lévő Arduino Nano -t a számítógépéhez, nyissa meg az Arduino IDE -t, másolja és illessze be ezt a kódot, és töltse fel a táblára.

#befoglalni

#magában foglalja #magában foglalja az RF24 rádiót (7, 8); // CE, CSN // bal oldali visszajelző, felső hangszórótábla konstans bájtcím [6] = "00001"; const int pitch = 2000; const int pitch_duration = 200; const int hangszóró = 3; const int delay_gain = 100; int állapot = 0; int cur_delay = 0; char read [2]; void setup () {pinMode (hangszóró, OUTPUT); Sorozat.kezdet (115200); Serial.println ("Vezeték nélküli kommunikáció indítása …"); radio.begin (); radio.openReadingPipe (0, cím); radio.setPALevel (RF24_PA_MIN); radio.startListening (); } void loop () {if (radio.available ()) {radio.read (& read, sizeof (read)); állapot = (int) (olvassa [0]-'0'); Serial.print ("Fogadott:"); Serial.println (állapot); cur_delay = delay_gain*állapot; } if (cur_delay) {tone (hangszóró, hangmagasság, hangmagasság); késleltetés (cur_delay + pitch_duration); Serial.println ("Beep!"); }}

Itt található a hangszóró kódja, amely a megfelelő visszajelzővel kommunikál. Csatlakoztassa a felső hangszórótáblán lévő Arduino Nano -t a számítógépéhez, nyissa meg az Arduino IDE -t, másolja és illessze be ezt a kódot, és töltse fel a táblára.

#befoglalni

#magában foglalja #magában foglalja az RF24 rádiót (7, 8); // CE, CSN // jobb jelzőlámpa, alsó hangszórótábla konstans bájt címe [6] = "00010"; const int pitch = 1500; const int pitch_duration = 200; const int hangszóró = 3; const int delay_gain = 100; int állapot = 0; int cur_delay = 0; char read [2]; void setup () {pinMode (hangszóró, OUTPUT); Sorozat.kezdet (115200); Serial.println ("Vezeték nélküli kommunikáció indítása …"); radio.begin (); radio.openReadingPipe (0, cím); radio.setPALevel (RF24_PA_MIN); radio.startListening (); } void loop () {if (radio.available ()) {radio.read (& read, sizeof (read)); állapot = (int) (olvassa [0]-'0'); Serial.print ("Fogadott:"); Serial.println (állapot); cur_delay = delay_gain*állapot; } if (cur_delay) {tone (hangszóró, hangmagasság, hangmagasság); késleltetés (cur_delay+pitch_duration); Serial.println ("Beep!"); }}

8. lépés: Hangszóró szerelése

Egyedi alkatrészek

  • 2 felépített hangszóró áramkör
  • 2 hangszóró
  • 1 db akkumulátor

STL -k a 3D nyomtatáshoz

  • Doboz teteje
  • Doboz alja

Fizikai összeszerelési utasítások

  1. Óvatosan helyezze a hangszóró áramköröket a doboz aljába, egyik táblát a másikra úgy, hogy a hangerő -szabályozó gombok egymás mellett legyenek, és csúszjanak a lyukakba. A kommunikációs chipeket a doboz hátulján kell feltárni.
  2. Helyezze a hangszórókat az áramköri lap bal és jobb oldalára, ügyelve arra, hogy a hangszórók megfeleljenek a visszajelző oldalaknak. Igazítsa a hangszórókat a doboz oldalán található nyílásokhoz.
  3. Vezesse át az akkumulátor vezetékét a doboz hátulján található kis lyukon. Epoxi (vagy ragasztó) az akkumulátort a doboz hátuljához úgy, hogy a kapcsoló ki legyen téve.
  4. Helyezze a 3D nyomtatott doboz tetejét a doboz aljára, hogy minden benne legyen.

9. lépés: Beállítás/szerelés

Beállítás/szerelés
Beállítás/szerelés
  1. Kapcsolja be az ellenőrzőlámpákat úgy, hogy az akkumulátorok kapcsolóit „ON” állásba fordítja. Tegye ugyanezt a hangszórószerelvénynél a kimeneti rendszer bekapcsolásához.
  2. A hangjelző lámpák felszerelése legkönnyebben két emberrel, de egy emberrel megoldható. A nem gyűrődő jibre szereléshez az ellenőrző lámpákat legegyszerűbben a vitorla felemelése előtt lehet felhelyezni.
  3. Annak érdekében, hogy a visszajelző keret helyesen álljon, nézze meg az egyik függőleges sáv bevágását. Amikor a keretet függőlegesen tartja, a bevágásnak a teteje felé kell lennie. A keretnek azzal a rúddal ellátott oldalának is a csónak eleje felé kell néznie.
  4. Helyezze az egyik visszajelzőt a kívánt magasságba és a vitorla helyzetébe. Úgy kell elhelyezni, hogy a fonal ugyanott legyen, mint egy hagyományos visszajelző része.
  5. Ha van egy mesemondó a kívánt pozícióban. Helyezze a másik visszajelzőt a vitorla másik oldalára, pontosan az elsővel szemben, úgy, hogy a mágnesek egy vonalba kerüljenek. Miután a mágnesek csatlakoztak, biztonságosan kell tartaniuk a keretet a vitorlához. Állítsa sorba az elektronikai burkolatok mágneseit, mindegyik jelzőfényhez a vitorla mindkét oldalán úgy, hogy azok is összekapcsolódjanak.
  6. Ha észreveszi, hogy amikor a zsinór egyenesen visszafolyik, nem keresztezi a felső kaput, forgassa el a visszajelző keretet úgy, hogy a keret hátsó fele lefelé nézzen. Forgassa el a keretet, amíg a zsinór át nem megy a felső fotómegszakítón, amikor a fonal egyenesen visszafolyik.

10. lépés: Hibaelhárítás

Minden kódrészlet hibakeresési nyomtatási utasítással rendelkezik, jelezve, hogy adatokat küld, fogad és feldolgoz. Ha megnyitja a COM portot az Arduino IDE használatával, és az egyik Arduino Nano alrendszert csatlakoztatja a számítógéphez, akkor megtekintheti ezeket az állapotüzeneteket.

Ha a rendszer nem működik megfelelően, kapcsolja be az összes alkatrész kapcsolóját.

11. lépés: Lehetséges további lépések

  • Vízszigetelés
  • Hosszabb távú kommunikáció. A WiFi ígéretes lehetőség.
  • Jelenlegi beállításunk jelzőfényenként 2 fotómegszakítót használ. Érdekes lehet kipróbálni további fotómegszakítók hozzáadását a rendszerhez.

Ajánlott: