Tartalomjegyzék:
- 1. lépés: Anyagjegyzék
- 2. lépés: Eszközök/Gépek/Szoftverkövetelmények
- 3. lépés: Visszajelző hardver
- 4. lépés: Telltale szoftver
- 5. lépés: Visszajelző szerelvény
- 6. lépés: Hangszóró hardver
- 7. lépés: Hangszóró szoftver
- 8. lépés: Hangszóró szerelése
- 9. lépés: Beállítás/szerelés
- 10. lépés: Hibaelhárítás
- 11. lépés: Lehetséges további lépések
Videó: Vitorlázás hallható jelzőfényei: 11 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
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
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
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ó
- 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.
- 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
- 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.
- 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.
- 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
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:
- 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.
- 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.
- 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.
-
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.
- J2 ↔ Arduino Nano kimenet a 3. digitális tűből (D3)
- J4 ↔ alaptű 2N3904 tranzisztorból
- J6 ↔ nincs kapcsolat
-
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.
- J13 ↔ Arduino Nano kimenet a 3. digitális tűből (D3)
- J11 ↔ 2N3904 tranzisztor alapcsapja
- 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
- Ó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.
- 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.
- 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.
- 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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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:
DC - DC feszültség Lépés lekapcsoló mód Buck feszültségátalakító (LM2576/LM2596): 4 lépés
DC-DC feszültség Lépés lekapcsoló üzemmód Buck feszültségátalakító (LM2576/LM2596): A rendkívül hatékony bakkonverter készítése nehéz feladat, és még a tapasztalt mérnököknek is többféle kivitelre van szükségük, hogy a megfelelőt hozzák létre. egy DC-DC áramátalakító, amely csökkenti a feszültséget (miközben növeli
Piszok olcsó szennyeződés-mérő-$ 9 Arduino alapú hallható magasságmérő: 4 lépés (képekkel)
Dirt Olcsó Dirt-O-Meter-$ 9 Arduino-alapú hallható magasságmérő: A Dytters (A.K.A. Hallható magasságmérők) annyi évig mentette meg az ejtőernyősök életét. Most az Audible Abby is pénzt takarít meg nekik. Az alap Dytters négy riasztóval rendelkezik, az egyik felfelé, és három a lefelé. Felrepüléskor az ejtőernyősöknek tudniuk kell, mikor
Akusztikus levitáció az Arduino Uno-val Lépésről lépésre (8 lépés): 8 lépés
Akusztikus lebegés az Arduino Uno-val Lépésről lépésre (8 lépés): ultrahangos hangátvivők L298N Dc női adapter tápegység egy egyenáramú tűvel Arduino UNOBreadboard és analóg portok a kód konvertálásához (C ++)
Élő 4G/5G HD videó streamelés DJI drónról alacsony késleltetéssel [3 lépés]: 3 lépés
Élő 4G/5G HD videó streaming a DJI Drone-tól alacsony késleltetéssel [3 lépés]: Az alábbi útmutató segít abban, hogy szinte bármilyen DJI drónról élő HD minőségű videó streameket kapjon. A FlytOS mobilalkalmazás és a FlytNow webes alkalmazás segítségével elindíthatja a videó streamingjét a drónról
Bolt - DIY vezeték nélküli töltő éjszakai óra (6 lépés): 6 lépés (képekkel)
Bolt - DIY vezeték nélküli töltés éjszakai óra (6 lépés): Az induktív töltés (más néven vezeték nélküli töltés vagy vezeték nélküli töltés) a vezeték nélküli áramátvitel egyik típusa. Elektromágneses indukciót használ a hordozható eszközök áramellátásához. A leggyakoribb alkalmazás a Qi vezeték nélküli töltő