Përmbajtje:

Tregime të dëgjueshme për lundrim: 11 hapa
Tregime të dëgjueshme për lundrim: 11 hapa

Video: Tregime të dëgjueshme për lundrim: 11 hapa

Video: Tregime të dëgjueshme për lundrim: 11 hapa
Video: Elvana Gjata - Kuq e zi je ti (Official Music Video) ft. Flori 2024, Korrik
Anonim
Image
Image
Pajisje kompjuterike Telltale
Pajisje kompjuterike Telltale

Telltales janë pjesë të telave që përdoren në lundrim për të treguar nëse ka një rrjedhë të trazuar ose laminare nëpër vela. Sidoqoftë, pjesët e ndryshme të fijeve të ngjitura në secilën anë të lundrimit janë tregues thjesht vizualë. Këto tregues të dëgjueshëm janë një pajisje ndihmëse që synon të komunikojë informacionin vizual në një formë dëgjimore për marinarët me shikim dhe ata me shikim të dobët, siç është Pauline.

Pajisja përbëhet nga një sistem hyrës, i cili lexon lëvizjen e treguesit, dhe një sistem dalës, i cili lëshon një seri sinjalesh që përcjellin informacionin e rrjedhës së ajrit.

Në fabrikimin e kësaj pajisje kërkohet qasje në pajisjet e saldimit dhe një printer 3D.

Hapi 1: Fatura e Materialeve

BOM me lidhje dhe çmime

Shënim: do t'ju duhen 2 grupe nga të gjitha sa më poshtë.

Sistemi i hyrjes

  • Arduino Nano
  • Adafruit perma-proto PCB me madhësi gjysmë të madhe
  • Moduli i transmetuesit pa tel nRF24L01
  • Ndërprerës fotografish
  • Sparkfun Photo Interrupter Breakout Board
  • Paketë baterie e pajtueshme Arduino 9V
  • Bateri 9V
  • Disa gjatësi prej teli 22 Matës
  • Fije
  • Magnet neodymium
  • Epoksi

Sistemi i daljes

  • Arduino Nano
  • Adafruit perma-proto PCB me madhësi gjysmë të madhe
  • Moduli i transmetuesit pa tel nRF24L01
  • Paketë baterie e pajtueshme Arduino 9V
  • Potenciometër 1K Ohm
  • Rezistencë 120 Ohm
  • Transistor 2N3904
  • Kondensator 0.1 uF
  • Altoparlant i pajtueshëm me Arduino

Skedarët GitHub

  • Të gjithë skedarët e kodit dhe STL të nevojshëm për të ndërtuar këto tregues mund të gjenden në këtë repo të GitHub.
  • Ju do të keni nevojë për dy grupe të rrethimit, dhe një nga strehimi i altoparlantit.

Hapi 2: Mjetet/Makinat/Kërkesat e Softuerit

Për të programuar Arduino do t'ju duhet të shkarkoni Arduino IDE. Lidhja e shkarkimit mund të gjendet këtu.

Për të programuar modulin nRF24L01, do t'ju duhet të shkarkoni bibliotekën e tij përmes Arduino IDE. Mjetet> Menaxhoni Bibliotekat …> instaloni bibliotekën RF24

Për të mbledhur përbërësit elektronikë kërkohet qasje në mjetet bazë të saldimit. Një pompë e shkrirjes mund të jetë gjithashtu e dobishme, por nuk është e nevojshme.

Për të ndërtuar kornizën e tregimit dhe kutinë e altoparlantëve do t'ju duhet qasje në një printer 3D.

Hapi 3: Pajisje kompjuterike treguese

Pajisje kompjuterike Telltale
Pajisje kompjuterike Telltale
Pajisje kompjuterike Telltale
Pajisje kompjuterike Telltale

Mblidhni qarkun sipas diagrameve të mësipërme. Arduino Nano duhet të rreshtohet me pjesën e sipërme të protoboardit. Kjo ju lejon të keni qasje në portën USB edhe pasi të gjitha pajisjet elektronike janë bashkangjitur.

Për të shmangur shkurtimin e pajisjeve elektronike, sigurohuni që të shkurtoni gjurmët e protoboardit në rreshtat që do të zërë nRF24 siç tregohet në imazhin e mësipërm.

Përndryshe, do t'ju duhet kabllo kërcyes për të lidhur nRF24 me protoboard.

Lidhja e rezistencës, telat GND dhe 5V në ndërprerësin e fotografisë nuk përshkruhen. Lidhni ndërprerësin e fotografisë siç tregohet në tabelën e tij të daljes. Përfshihet një imazh i tabelës së shpërthimit.

Qarqet për treguesit e djathtë dhe të majtë janë saktësisht të njëjtë.

Hapi 4: Softueri tregues

Këtu është kodi për tregimin e duhur. Lidhni nano -n e treguesit të djathtë me kompjuterin tuaj, hapni Arduino IDE, kopjoni dhe ngjisni këtë kod në të dhe ngarkojeni në tabelë.

/** Program që përdor fotogate për të ekzaminuar tregimin tregues

*/ #include #include #include #include radio RF24 (9, 10); // CE, CSN adresa e bajtit [6] = "00010"; // --- programi consts --- // koha const int string_check_time = 1; const int flow_check_time = 30; const int bazë_vonesë = 5; const int flow_check_delay = 0; const int GATE_PIN = 6; const int GATE_PIN_2 = 7; const int max_when_testing = koha e kontrollit të rrjedhës * 0.6; // vendosni varin e mësipërm bazuar në provat tuaja eksperimentale 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; #përkufizoni STRING_THRESH 0.2 // --- program vars --- int num_string_seen = 0; int num_loops = 0; void setup () {// ndërsa (! Serial); // për florën // vonesë (500); num_string_seen = 0; num_loops = 0; pinMode (GATE_PIN, INPUT); pinMode (GATE_PIN_2, INPUT); Serial.filloj (115200); // për korrigjimin e radios.filloj (); radio.hapurShkrimiPub (adresa); radio.setPALevel (RF24_PA_MIN); radio.stopDëgjimi (); } void loop () {// vendosni kodin tuaj kryesor këtu, për ta ekzekutuar në mënyrë të përsëritur: if (num_loops % string_check_time == 0) {// kontrolloni gjendjen e vargut check_string (); } nëse (num_loops == flow_check_time) {// shqyrtoni rrjedhën //Serial.println(num_string_seen); int flow_num = shqyrto_rrjedhjen (); // dërgoni vlera send_out (flow_num); // rivendos vars num_string_seen = 0; num_loops = 0; vonesa (vonesa e kontrollit të rrjedhës); } num_loops ++; vonesë (vonesa_ bazë); } / * *Metoda për të kontrolluar nëse vargu kalon portën * / void check_string () {int string_state = digitalRead (GATE_PIN); //Serial.println(string_state); nëse (string_state == 0) {num_string_seen ++; //Serial.println("Shkruan vargun! "); }

int bot_state = digitalRead (GATE_PIN_2);

nëse (bot_state == 0) {num_string_seen--; //Serial.println("string on bottom! "); } //Serial.print("Shkalla e numërimit kalon: "); //Serial.println(num_string_seen); kthim; }/ * * Metoda për të analizuar se çfarë fraksioni të vargut kohor mbuloi portën */int exam_flow () {double percent_seen = double (num_string_seen)/max_in_flow; Serial.print ("Përqindja e mbuluar:"); printDouble (përqind_parë, 100); // shkallëzoni vlerën në shkallën e komunikimit int scaled_flow = int (sedî_seen * msg_max_val); if (scaled_flow> msg_max_val) {scaled_flow = msg_max_val; } if (scaled_flow = 0) frac = (val - int (val)) * saktësi; tjetër frac = (int (val)- val) * saktësi; Serial.println (frac, DEC); }

Këtu është kodi për tregimin e majtë. Ndiqni të njëjtat hapa si më sipër për tregimin e majtë. Siç mund ta shihni, ndryshimi i vetëm është adresa në të cilën treguesi dërgon rezultatet e tij.

/** Program që përdor fotogate për të ekzaminuar tregimin tregues

*/ #include #include #include #include radio RF24 (9, 10); // CE, CSN adresa e bajtit [6] = "00001"; // --- programi consts --- // koha const int string_check_time = 1; const int flow_check_time = 30; const int bazë_vonesë = 5; const int flow_check_delay = 0; const int GATE_PIN = 6; const int GATE_PIN_2 = 7; const int max_when_testing = koha e kontrollit të rrjedhës * 0.6; // vendosni varin e mësipërm bazuar në provat tuaja eksperimentale 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; #përkufizoni STRING_THRESH 0.2 // --- program vars --- int num_string_seen = 0; int num_loops = 0; void setup () {// ndërsa (! Serial); // për florën // vonesa (500); num_string_seen = 0; num_loops = 0;

pinMode (GATE_PIN, INPUT);

pinMode (GATE_PIN_2, INPUT); Serial.filloj (115200); // për korrigjimin e radios.filloj (); radio.hapurShkrimiPub (adresa); radio.setPALevel (RF24_PA_MIN); radio.stopDëgjimi (); } void loop () {// vendosni kodin tuaj kryesor këtu, për ta ekzekutuar në mënyrë të përsëritur: if (num_loops % string_check_time == 0) {// kontrolloni gjendjen e vargut check_string (); } nëse (num_loops == flow_check_time) {// shqyrtoni rrjedhën //Serial.println(num_string_seen); int flow_num = shqyrto_rrjedhen (); // dërgoni vlerat send_out (numri i rrjedhës); // rivendos vars num_string_seen = 0; num_loops = 0; vonesa (vonesa e kontrollit të rrjedhës); } num_loops ++; vonesë (vonesa_ bazë); } / * *Metoda për të kontrolluar nëse vargu kalon portën * / void check_string () {int string_state = digitalRead (GATE_PIN); //Serial.println(string_state); nëse (string_state == 0) {num_string_seen ++; //Serial.println("Shkruan vargun! "); }

int bot_state = digitalRead (GATE_PIN_2);

nëse (bot_state == 0) {num_string_seen--; //Serial.println("string on bottom! "); } //Serial.print("Shkalla e numërimit kalon: "); //Serial.println(num_string_seen); kthim; }/ * * Metoda për të analizuar se çfarë fraksioni të vargut kohor mbuloi portën */int exam_flow () {double percent_seen = double (num_string_seen)/max_in_flow; Serial.print ("Përqindja e mbuluar:"); printDouble (përqind_parë, 100); // shkallëzoni vlerën në shkallën e komunikimit int scaled_flow = int (sedî_seen * msg_max_val); if (scaled_flow> msg_max_val) {scaled_flow = msg_max_val; } if (scaled_flow = 0) frac = (val - int (val)) * saktësi; tjetër frac = (int (val)- val) * saktësi; Serial.println (frac, DEC); }

Hapi 5: Asambleja Treguese

Kuvendi Tregues
Kuvendi Tregues

Pjesë individuale

  • Kornizë treguese
  • Fije
  • Qark i ndërtuar tregues
  • Paketa e baterisë
  • Shirit elektrik
  • Epoksi ose ngjitës

STL për komponentët tregues të printimit 3D

  • STL për kornizën treguese: majtas, djathtas
  • STL për kutinë elektronike: lart, poshtë

Udhëzimet e Asamblesë

  1. Vendosni magnet me shirita në folenë e kornizës treguese 3D të printuar. Sigurohuni që magnetët të rreshtohen siç duhet midis kornizës së djathtë dhe kornizës së majtë, pastaj përdorni epoksi (ose ngjitës) për të siguruar magnetët në kornizë. Lejo që epoksi (ose zam) të fiksohet plotësisht.
  2. Vendosni ndërprerësit e fotografive në hapësirat e sipërme dhe të poshtme në pjesën e pasme të kornizës. Epoxy (ose ngjit) me kujdes bordet ndërprerës të fotografisë në kornizë. Lejo që epoksi (ose zam) të fiksohet plotësisht
  3. Pritini një ~ 7 në copë fije. Lidhni një fund të fillit në nivelin e shiritit të parë vertikal. Pritini një pjesë të vogël të shiritit elektrik dhe mbështilleni shiritin elektrik mbi pjesën e fillit që do të jetë në rajonin e ndërprerësve të fotografisë. Kaloni fijen përmes kornizës në mënyrë që të kalojë nëpër hendekun e portës së ndërprerësit të fotografisë.
  4. Vendosni magnet me shirita në hapësirat e kutisë elektronike të printuar në fund. Sigurohuni që magnetët të rreshtohen siç duhet midis kutisë së djathtë dhe kutisë së majtë, pastaj përdorni epoksi (ose ngjitës) për të siguruar magnetët në kornizë. Lejo që epoksi (ose zam) të fiksohet plotësisht.
  5. Vendoseni qarkun e ndërtuar tregues në kutinë elektronike, duke i lidhur elementët e ndryshëm me lojëra elektronike. Mbyllni kutinë me pjesën e sipërme të kutisë elektronike të printuar 3D. Epoxy (ose ngjit) paketën e baterisë në krye të kutisë në mënyrë që çelësi të ekspozohet.

Hapi 6: Hardware i altoparlantit

Pajisje kompjuterike e altoparlantit
Pajisje kompjuterike e altoparlantit
Pajisje kompjuterike për altoparlantët
Pajisje kompjuterike për altoparlantët
Pajisje kompjuterike e altoparlantit
Pajisje kompjuterike e altoparlantit

Sistemi i daljes përbëhet nga dy qarqe altoparlantësh, një për çdo tregues, të pajisur me komunikim pa tel dhe një çelës për rregullimin e volumit. Së pari, përgatitni protoboards për përdorim me modulet nRF24L01 siç bëmë për qarqet treguese duke prerë prizat që ndajnë dy rreshtat e kunjave ku do të vendoset tabela.

Pastaj, mblidhni qarkun siç tregohet në diagramin e mësipërm duke iu referuar fotove të qarqeve të përfunduara.

Udhëzimet e Asamblesë së Bordit

Për të grumbulluar dërrasat në rrethimin e altoparlantëve, përbërësit kryesorë duhet të vendosen në zona të caktuara të tabelës. Në udhëzimet e mëposhtme, unë do t'i referohem sistemit koordinativ të përdorur për të treguar rreshta dhe kolona në protoboardin Adafruit:

  1. Arduino Nano duhet të vendoset në skajin e sipërm të tabelës në qendër në mënyrë që kunja Vin të pozicionohet në G16. Kjo do të lejojë riprogramim të lehtë të Arduino Nano pasi të jetë montuar qarku.
  2. Bordi nRF24L01 duhet të vendoset në këndin e poshtëm të djathtë të tabelës që përfshin tetë pozicionet nga C1 në D5. Kjo do ta lërë nRF24L01 të varur nga protoboard për të lejuar një komunikim më të mirë pa tel.
  3. Paketa e baterisë për sistemin e altoparlantëve fuqizon të dy protoboards, prandaj sigurohuni që të lidhni dy binarët/kunjat GND të Arduino Nano dhe kunjat Vin në furnizimin me energji.
  4. Për qarkun "poshtë", potenciometri duhet të vendoset në pjesën e sipërme të dërrasës me pamje nga jashtë në mënyrë që kunjat e tij të vendosen në pozicionet J2, J4 dhe J6

    1. J2 ↔ Arduino Nano dalje nga kunja dixhitale 3 (D3)
    2. J4 pin kunja bazë e tranzistorit 2N3904
    3. J6 ↔ i palidhur
  5. Për qarkun "lart", potenciometri duhet të vendoset në pjesën e poshtme të tabelës me drejtim nga jashtë, në mënyrë që kunjat e tij të vendosen në pozicionet J9, J11 dhe J13

    1. J13 ↔ Arduino Nano dalje nga kunja dixhitale 3 (D3)
    2. J11 pin kunja bazë e transistorit 2N3904
    3. J9 ↔ i palidhur

Hapi 7: Softueri i altoparlantit

Këtu është kodi për folësin që komunikon me treguesin e majtë. Lidhni Arduino Nano në tabelën e altoparlantëve të poshtëm me kompjuterin tuaj, hapni Arduino IDE, kopjoni dhe ngjisni këtë kod në të dhe ngarkojeni në tabelë.

#përfshi

#përfshijë #përfshijë radion RF24 (7, 8); // CE, CSN // tregues i majtë, bordi i altoparlantëve të lartë const byte adresa [6] = "00001"; const int katran = 2000; const int pitch_duration = 200; const int altoparlant = 3; const int delay_gain = 100; int status = 0; int cur_delay = 0; char lexo [2]; void setup () {pinMode (altoparlant, OUTPUT); Serial.filloj (115200); Serial.println ("Fillimi i komunikimit pa tel …"); radio.filloj (); radio.hapurReadingPipe (0, adresa); radio.setPALevel (RF24_PA_MIN); radio.filloDëgjimi (); } void loop () {if (radio.disponueshme ()) {radio.read (& lexo, madhësia (lexo)); statusi = (int) (lexo [0]-'0'); Serial.print ("Marrë:"); Serial.println (statusi); cur_delay = status_vonesa_fitimi*; } if (cur_delay) {tone (altoparlanti, hapi, lartësia e hapit); vonesë (vonesa në kurriz + kohëzgjatja e katranit); Serial.println ("Beep!"); }}

Këtu është kodi për folësin që komunikon me treguesin e duhur. Lidhni Arduino Nano në tabelën e altoparlantëve të lartë me kompjuterin tuaj, hapni Arduino IDE, kopjoni dhe ngjisni këtë kod në të dhe ngarkojeni atë në tabelë.

#përfshi

#përfshijë #përfshijë radion RF24 (7, 8); // CE, CSN // tregues i djathtë, bordi i altoparlantëve të poshtëm ad byte ad [6] = "00010"; const int katran = 1500; const int pitch_duration = 200; const int altoparlant = 3; const int delay_gain = 100; int status = 0; int cur_delay = 0; char lexo [2]; void setup () {pinMode (altoparlant, OUTPUT); Serial.filloj (115200); Serial.println ("Fillimi i komunikimit pa tel …"); radio.filloj (); radio.hapurReadingPipe (0, adresa); radio.setPALevel (RF24_PA_MIN); radio.filloDëgjimi (); } void loop () {if (radio.disponueshme ()) {radio.read (& read, sizeof (read)); statusi = (int) (lexo [0]-'0'); Serial.print ("Marrë:"); Serial.println (statusi); cur_delay = status_vonesa_fitimi*; } if (cur_delay) {tone (altoparlanti, hapi, lartësia e hapit); vonesë (vonesa në kurriz+kohëzgjatja e katranit); Serial.println ("Beep!"); }}

Hapi 8: Asambleja e Kryetarëve

Pjesë individuale

  • 2 qarqe të ndërtuara të altoparlantëve
  • 2 folës
  • 1 pako baterie

STL për printim 3D

  • Kutia e sipërme
  • Fundi i kutisë

Udhëzimet e Asamblesë Fizike

  1. Vendosni me kujdes qarqet e altoparlantëve në pjesën e poshtme të kutisë, një tabelë mbi tjetrën në mënyrë që çelësat e volumit të jenë pranë njëri -tjetrit dhe të futen në vrima. Patate të skuqura komunikimi duhet të ekspozohen në pjesën e pasme të kutisë.
  2. Vendosni altoparlantët në të majtë dhe të djathtë të tabelës, duke u siguruar që altoparlantët korrespondojnë me anët e sakta të tregimit. Rreshtoni altoparlantët në hapësirat në anët e kutisë.
  3. Ushqeni telat e baterisë përmes vrimës së vogël në pjesën e pasme të kutisë. Epoksi (ose ngjit) baterinë në pjesën e prapme të kutisë në mënyrë që çelësi të ekspozohet.
  4. Vendosni kutinë e printuar 3D sipër sipër kutisë për të përmbajtur gjithçka.

Hapi 9: Konfigurimi/Montimi

Konfigurimi/Montimi
Konfigurimi/Montimi
  1. Ndizni treguesit duke i kthyer çelsat në paketat e baterisë në pozicionin "ON". Bëni të njëjtën gjë për montimin e altoparlantëve në mënyrë që të ndizni sistemin e daljes.
  2. Montimi i treguesve të dëgjueshëm bëhet më lehtë me dy persona, por mund të bëhet me një. Për montim në një dërrasë që nuk lëkundet, treguesit do të visheshin më lehtë para se të ngrinin velin.
  3. Për t'u siguruar që korniza e tregimit është e orientuar saktë, shikoni shkallën në njërën prej shufrave vertikale. Kur mbani kornizën drejt, niveli duhet të jetë drejt majës. Ana e kornizës me atë shirit gjithashtu duhet të drejtohet drejt pjesës së përparme të varkës.
  4. Vendosni një nga tregimet në lartësinë dhe pozicionin e dëshiruar në vela. Duhet të vendoset në mënyrë që fije të jetë në të njëjtin vend siç do të ishte nëse do të ishte pjesë e një tregimi tradicional.
  5. Pasi të keni një përrallë në pozicionin e dëshiruar. Vendoseni tregimin tjetër në anën tjetër të lundrimit, pikërisht përballë atij të parë që vendosët, në mënyrë që magnetët të rreshtohen. Pasi magnetët të kenë një lidhje ata duhet ta mbajnë kornizën në mënyrë të sigurt në vela. Rreshtoni magnetet e rrethimeve elektronike, për secilën përrallë në të dyja anët e lundrimit, në mënyrë që ato të lidhen gjithashtu.
  6. Nëse vëreni se kur vargu rrjedh drejt mbrapa nuk kalon para portës së sipërme, rrotulloni kornizën e tregimit në mënyrë që gjysma e pasme e kornizës të drejtohet poshtë. Rrotulloni kornizën derisa vargu të kalojë nëpër ndërprerësin e fotografisë së sipërme kur fija të rrjedhë drejt mbrapa.

Hapi 10: Zgjidhja e problemeve

Të gjitha pjesët e kodit kanë deklarata të printimit të korrigjimit për të treguar se po dërgojnë, marrin dhe përpunojnë të dhëna. Hapja e portës COM duke përdorur Arduino IDE me një nga nënsistemet Arduino Nano të kyçur në një kompjuter do t'ju lejojë të shihni këto mesazhe të statusit.

Nëse sistemi nuk funksionon siç duhet, ndërroni çelsat në të gjithë përbërësit.

Hapi 11: Hapat e ardhshëm të mundshëm

  • Hidroizolim
  • Komunikim me rreze më të gjatë. WiFi të jetë një opsion premtues.
  • Konfigurimi ynë aktual aktualisht përdor 2 ndërprerës të fotografive për tregues. Shtimi i më shumë ndërprerësve të fotografive në sistem mund të jetë interesant të provosh.

Recommended: