Inhaltsverzeichnis:

Hörbare Kontrollleuchten zum Segeln - Gunook
Hörbare Kontrollleuchten zum Segeln - Gunook

Video: Hörbare Kontrollleuchten zum Segeln - Gunook

Video: Hörbare Kontrollleuchten zum Segeln - Gunook
Video: Droste Wassersport OHG - Mercury F8 / F9.9 MH - Einweisungsvideo 2024, Juli
Anonim
Image
Image
Verräterische Hardware
Verräterische Hardware

Telltales sind Schnurstücke, die beim Segeln verwendet werden, um anzuzeigen, ob eine turbulente oder laminare Strömung über das Segel herrscht. Die unterschiedlich farbigen Garnstücke, die an jeder Seite des Segels angebracht sind, sind jedoch rein optische Indikatoren. Diese hörbaren Kontrollleuchten sind ein Hilfsmittel, das darauf abzielt, die visuellen Informationen in akustischer Form sowohl für sehende als auch für sehbehinderte Seeleute wie Pauline zu übermitteln.

Das Gerät besteht aus einem Eingabesystem, das die Bewegung der Kontrollleuchte liest, und einem Ausgabesystem, das eine Reihe von Signaltönen ausgibt, die Informationen zum Luftstrom übermitteln.

Für die Herstellung dieses Geräts ist der Zugang zu Lötgeräten und einem 3D-Drucker erforderlich.

Schritt 1: Stückliste

Stückliste mit Links und Preisen

Hinweis: Sie benötigen 2 Sätze mit allen folgenden Elementen.

Eingabesystem

  • Arduino Nano
  • Adafruit Perma-Proto-Steckbrettplatine in halber Größe
  • nRF24L01 Drahtloses Transceiver-Modul
  • Fotounterbrecher
  • Sparkfun Photo Interrupter Breakout Board
  • Arduino-kompatibler 9-V-Akku
  • 9V Batterie
  • Mehrere Längen von 22 Gauge Draht
  • Garn
  • Neodym-Magneten
  • Epoxid

Ausgabesystem

  • Arduino Nano
  • Adafruit Perma-Proto halbes Steckbrett PCB
  • nRF24L01 Drahtloses Transceiver-Modul
  • Arduino-kompatibler 9-V-Akku
  • 1K Ohm Potentiometer
  • 120 Ohm Widerstand
  • 2N3904 Transistor
  • 0,1 uF Kondensator
  • Arduino-kompatibler Lautsprecher

GitHub-Dateien

  • Alle Code- und STL-Dateien, die zum Erstellen dieser Kontrollleuchten erforderlich sind, finden Sie in diesem GitHub-Repository.
  • Sie benötigen zwei Sätze des Gehäuses und eines des Lautsprechergehäuses.

Schritt 2: Tools/Maschinen/Softwareanforderungen

Um das Arduino zu programmieren, müssen Sie die Arduino IDE herunterladen. Den Downloadlink finden Sie hier.

Um das nRF24L01-Modul zu programmieren, müssen Sie seine Bibliothek über die Arduino IDE herunterladen. Extras > Bibliotheken verwalten… > Bibliothek RF24 installieren

Zur Montage der elektronischen Komponenten ist der Zugang zu einfachen Lötwerkzeugen erforderlich. Auch eine Entlötpumpe kann sinnvoll sein, ist aber nicht notwendig.

Um den Kontrollrahmen und das Lautsprechergehäuse zu konstruieren, benötigen Sie Zugang zu einem 3D-Drucker.

Schritt 3: Verräterische Hardware

Verräterische Hardware
Verräterische Hardware
Verräterische Hardware
Verräterische Hardware

Bauen Sie die Schaltung gemäß den obigen Diagrammen zusammen. Der Arduino Nano sollte mit der Oberseite des Protoboards ausgerichtet sein. Dadurch haben Sie auch nach dem Anschließen der gesamten Elektronik Zugriff auf den USB-Anschluss.

Um einen Kurzschluss der Elektronik zu vermeiden, achten Sie darauf, die Spuren des Protoboards in den Reihen zu schneiden, die der nRF24 belegen wird, wie in der Abbildung oben gezeigt.

Andernfalls benötigen Sie Überbrückungskabel, um den nRF24 mit dem Protoboard zu verbinden.

Der Widerstandsanschluss, GND und die 5V-Drähte zur Lichtschranke sind nicht dargestellt. Verdrahten Sie die Lichtschranke wie auf der Breakout-Platine angegeben. Ein Bild des Breakout-Boards ist enthalten.

Die Schaltungen für die rechte und linke Kontrollleuchte sind genau gleich.

Schritt 4: Verräterische Software

Hier ist der Code für die richtige Kontrolllampe. Verbinden Sie den Nano der rechten Kontrollleuchte mit Ihrem Computer, öffnen Sie die Arduino IDE, kopieren Sie diesen Code und fügen Sie ihn ein und laden Sie ihn auf das Board hoch.

/** Programm, das Photogate verwendet, um Kontrollleuchten zu untersuchen

*/ #include #include #include #include RF24-Funkgerät (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 = flow_check_time * 0,6; //setze die Variable oben basierend auf deinen eigenen experimentellen Versuchen 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 //---Programmvariablen--- int num_string_seen = 0; int num_loops = 0; Void setup () { // while (! Serial); // für Flora // Verzögerung (500); num_string_seen = 0; Anzahl_Schleifen = 0; pinMode (GATE_PIN, INPUT); pinMode (GATE_PIN_2, INPUT); Serial.begin(115200); // zum Debuggen von radio.begin (); radio.openWritingPipe(Adresse); radio.setPALevel(RF24_PA_MIN); radio.stopListening(); } void loop() { // füge deinen Hauptcode hier ein, um ihn wiederholt auszuführen: if(num_loops % string_check_time == 0){ //Überprüfe den Stringstatus check_string(); } if (num_loops == flow_check_time) {// Fluss untersuchen // Serial.println (num_string_seen); int flow_num = exam_flow(); // Werte senden send_out(flow_num); // Vars zurücksetzen num_string_seen = 0; Anzahl_Schleifen = 0; Verzögerung (flow_check_delay); } Anzahl_Schleifen++; Verzögerung (Basis_Verzögerung); } /* *Methode, um zu überprüfen, ob die Zeichenfolge das Gate überschreitet */ void check_string () { int string_state = digitalRead (GATE_PIN); //Seriell.println(string_state); if (string_state == 0) { num_string_seen++; //Serial.println("String gesägt!"); }

int bot_state = digitalRead (GATE_PIN_2);

if (bot_state == 0) { num_string_seen--; //Serial.println("String unten!"); } //Serial.print("Zählstring-Durchgänge: "); //Seriell.println(num_string_seen); Rückkehr; } /* * Methode, um zu analysieren, welcher Zeitbruchteil das Gate bedeckt hat */ int exam_flow(){ double percent_seen = double(num_string_seen)/max_in_flow; Serial.print ("Prozent abgedeckt: "); printDouble(percent_seen, 100); // den Wert auf die Kommunikationsskala skalieren 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)) * Präzision; else frac = (int(val)-val) * Präzision; Serial.println(frac, DEC); }

Hier ist der Code für die linke Kontrollleuchte. Befolgen Sie die gleichen Schritte wie oben für die linke Kontrollleuchte. Wie Sie sehen, ist der einzige Unterschied die Adresse, an die der Kontroller seine Ergebnisse sendet.

/** Programm, das Photogate verwendet, um Kontrollleuchten zu untersuchen

*/ #include #include #include #include RF24-Funkgerät (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 = flow_check_time * 0,6; //setze die Variable oben basierend auf deinen eigenen experimentellen Versuchen 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 //---Programmvariablen--- int num_string_seen = 0; int num_loops = 0; Void setup () { // while (! Serial); // für Flora // Verzögerung (500); num_string_seen = 0; Anzahl_Schleifen = 0;

pinMode (GATE_PIN, INPUT);

pinMode (GATE_PIN_2, INPUT); Serial.begin(115200); // zum Debuggen von radio.begin (); radio.openWritingPipe(Adresse); radio.setPALevel(RF24_PA_MIN); radio.stopListening(); }void loop() { // füge deinen Hauptcode hier ein, um ihn wiederholt auszuführen: if(num_loops % string_check_time == 0){ //Überprüfe den Stringstatus check_string(); } if (num_loops == flow_check_time) {// Fluss untersuchen // Serial.println (num_string_seen); int flow_num = exam_flow(); // Werte senden send_out(flow_num); // Vars zurücksetzen num_string_seen = 0; Anzahl_Schleifen = 0; Verzögerung (flow_check_delay); } Anzahl_Schleifen++; Verzögerung (Basis_Verzögerung); } /* *Methode, um zu überprüfen, ob die Zeichenfolge das Gate überschreitet */ void check_string () { int string_state = digitalRead (GATE_PIN); //Seriell.println(string_state); if (string_state == 0) { num_string_seen++; //Serial.println("String gesägt!"); }

int bot_state = digitalRead (GATE_PIN_2);

if (bot_state == 0) { num_string_seen--; //Serial.println("String unten!"); } //Serial.print("Zählstring-Durchgänge: "); //Seriell.println(num_string_seen); Rückkehr; } /* * Methode, um zu analysieren, welcher Zeitbruchteil das Gate abgedeckt hat */ int exam_flow(){ double percent_seen = double(num_string_seen)/max_in_flow; Serial.print ("Prozent abgedeckt: "); printDouble(percent_seen, 100); // den Wert auf die Kommunikationsskala skalieren 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)) * Präzision; else frac = (int(val)-val) * Präzision; Serial.println(frac, DEC); }

Schritt 5: Verräterische Montage

Verräterische Versammlung
Verräterische Versammlung

Einzelteile

  • Verräterischer Rahmen
  • Garn
  • Konstruierte Kontrollschaltung
  • Batteriepack
  • Isolierband
  • Epoxid oder Kleber

STLs für den 3D-Druck von verräterischen Komponenten

  • STL für Kontrollrahmen: links, rechts
  • STLs für Elektronikbox: oben, unten

Montageanleitungen

  1. Platzieren Sie Stabmagnete in den Schlitzen des 3D-gedruckten Kontrollrahmens. Stellen Sie sicher, dass die Magnete zwischen dem rechten und dem linken Rahmen richtig ausgerichtet sind, und verwenden Sie dann Epoxid (oder Kleber), um die Magnete am Rahmen zu befestigen. Lassen Sie Epoxid (oder Kleber) vollständig aushärten.
  2. Platzieren Sie die Lichtschranken in den oberen und unteren Schlitzen an der Rückseite des Rahmens. Sorgfältig Epoxy (oder kleben) Sie die Fotounterbrecherplatinen an den Rahmen. Lassen Sie Epoxid (oder Kleber) vollständig aushärten
  3. Schneiden Sie ein ~7 Stück Garn ab. Binden Sie ein Ende des Garns an der Kerbe des ersten vertikalen Balkens. Schneiden Sie ein kleines Stück Isolierband ab und wickeln Sie das Isolierband über den Fadenabschnitt, der sich im Bereich der Lichtschranken befindet. Fädeln Sie das Garn so durch den Rahmen, dass es durch die Lücke der Lichtschranke läuft.
  4. Platzieren Sie Stabmagnete in den Schlitzen des Bodens der 3D-gedruckten Elektronikbox. Stellen Sie sicher, dass die Magnete zwischen der rechten und der linken Box richtig ausgerichtet sind, und verwenden Sie dann Epoxid (oder Kleber), um die Magnete am Rahmen zu befestigen. Lassen Sie Epoxid (oder Kleber) vollständig aushärten.
  5. Platzieren Sie den konstruierten Kontrollschaltkreis in der Elektronikbox und richten Sie die verschiedenen Komponenten auf ihre Steckplätze aus. Schließen Sie die Box mit dem 3D-gedruckten Elektronikbox-Oberteil. Epoxy (oder kleben) Sie den Akku auf die Oberseite der Box, damit der Schalter freiliegt.

Schritt 6: Lautsprecher-Hardware

Lautsprecher-Hardware
Lautsprecher-Hardware
Lautsprecher-Hardware
Lautsprecher-Hardware
Lautsprecher-Hardware
Lautsprecher-Hardware

Das Ausgabesystem besteht aus zwei Lautsprecherkreisen, einer für jede Kontrolllampe, ausgestattet mit drahtloser Kommunikation und einem Lautstärkeregler. Bereiten Sie zuerst die Protoboards für die Verwendung mit den nRF24L01-Modulen vor, wie wir es für die Kontrollschaltkreise getan haben, indem Sie die Leitungen trennen, die die beiden Pinreihen trennen, in denen die Platine platziert wird.

Bauen Sie dann die Schaltung wie im obigen Diagramm gezeigt zusammen und beziehen Sie sich dabei auf die Fotos der fertiggestellten Schaltungen.

Montageanleitung für Platinen

Um die Platinen im Lautsprechergehäuse zu stapeln, müssen die Hauptkomponenten in bestimmten Bereichen der Platine platziert werden. In den folgenden Anweisungen beziehe ich mich auf das Koordinatensystem, das zur Bezeichnung von Zeilen und Spalten auf dem Adafruit-Protoboard verwendet wird:

  1. Der Arduino Nano muss mittig an die Oberkante der Platine gelegt werden, damit der Vin-Pin auf G16 steht. Dies ermöglicht eine einfache Neuprogrammierung des Arduino Nano, nachdem die Schaltung zusammengebaut wurde.
  2. Die Platine nRF24L01 muss in der unteren rechten Ecke der Platine platziert werden, die die acht Positionen von C1 bis D5 überspannt. Dadurch hängt der nRF24L01 vom Protoboard ab, um eine bessere drahtlose Kommunikation zu ermöglichen.
  3. Der Akku für das Lautsprechersystem versorgt beide Protoboards mit Strom. Verbinden Sie also unbedingt die beiden GND-Schienen / -Pins und Vin-Pins des Arduino Nano mit der Stromversorgung.
  4. Für die „untere“Schaltung sollte das Potentiometer auf der Oberseite der Platine nach außen gerichtet platziert werden, so dass seine Stifte an den Positionen J2, J4 und J6 platziert sind

    1. J2 ↔ Arduino Nano-Ausgang von digitalem Pin 3 (D3)
    2. J4 ↔ Basisstift des 2N3904 Transistors
    3. J6 ↔ nicht verbunden
  5. Für die „obere“Schaltung sollte das Potentiometer an der Unterseite der Platine nach außen gerichtet platziert werden, sodass seine Stifte an den Positionen J9, J11 und J13 platziert sind

    1. J13 ↔ Arduino Nano-Ausgang von digitalem Pin 3 (D3)
    2. J11 ↔ Basisstift des 2N3904 Transistors
    3. J9 ↔ nicht verbunden

Schritt 7: Lautsprecher-Software

Hier ist der Code für den Lautsprecher, der mit der linken Kontrollleuchte kommuniziert. Verbinden Sie den Arduino Nano auf der unteren Lautsprecherplatine mit Ihrem Computer, öffnen Sie die Arduino IDE, kopieren Sie diesen Code und fügen Sie ihn ein und laden Sie ihn auf die Platine hoch.

#enthalten

#einschließen #einschließen RF24-Funk (7, 8); // CE, CSN // linke Kontrollleuchte, obere Lautsprecherplatine const byte address[6] = "00001"; const int Pitch = 2000; const int pitch_duration = 200; const int Lautsprecher = 3; const int delay_gain = 100; int-Status = 0; int cur_delay = 0; Zeichen lesen [2]; Void setup () { PinMode (Lautsprecher, AUSGANG); Serial.begin(115200); Serial.println("Starten der drahtlosen Kommunikation…"); radio.begin(); radio.openReadingPipe(0, Adresse); radio.setPALevel(RF24_PA_MIN); radio.startListening(); aufrechtzuerhalten. Void loop () { if (radio.available ()) { radio.read (&read, sizeof(read)); status = (int)(read[0]-'0'); Serial.print ("Empfangen:"); Serial.println (Status); cur_delay = delay_gain*status; } if (cur_delay) { Tone (Lautsprecher, Tonhöhe, Tonhöhendauer); delay(cur_delay + Pitch_duration); Serial.println ("Beep!"); } }

Hier ist der Code für den Lautsprecher, der mit der richtigen Kontrolllampe kommuniziert. Verbinden Sie den Arduino Nano auf der oberen Lautsprecherplatine mit Ihrem Computer, öffnen Sie die Arduino IDE, kopieren Sie diesen Code und fügen Sie ihn ein und laden Sie ihn auf die Platine hoch.

#enthalten

#einschließen #einschließen RF24-Funk (7, 8); // CE, CSN // Rechte Kontrolllampe, untere Lautsprecherplatine const byte address[6] = "00010"; const int Pitch = 1500; const int pitch_duration = 200; const int Lautsprecher = 3; const int delay_gain = 100; int-Status = 0; int cur_delay = 0; Zeichen lesen [2]; Void setup () { PinMode (Lautsprecher, AUSGANG); Serial.begin(115200); Serial.println("Starten der drahtlosen Kommunikation…"); radio.begin(); radio.openReadingPipe(0, Adresse); radio.setPALevel(RF24_PA_MIN); radio.startListening(); aufrechtzuerhalten. Void loop () { if (radio.available ()) { radio.read (&read, sizeof(read)); status = (int)(read[0]-'0'); Serial.print ("Empfangen: "); Serial.println (Status); cur_delay = delay_gain*status; } if (cur_delay) { Tone (Lautsprecher, Tonhöhe, Tonhöhendauer); delay(cur_delay+pitch_duration); Serial.println ("Beep!"); } }

Schritt 8: Lautsprecherbaugruppe

Einzelteile

  • 2 aufgebaute Lautsprecherschaltungen
  • 2 Lautsprecher
  • 1 Akkupack

STLs für den 3D-Druck

  • Kastenoberseite
  • Kastenboden

Physische Montageanleitung

  1. Legen Sie die Lautsprecherschaltungen vorsichtig in den Boden der Box, eine Platine über die andere, so dass die Lautstärkeregler nebeneinander liegen und in die Löcher gleiten. Die Kommunikationschips sollten auf der Rückseite der Box freigelegt werden.
  2. Platzieren Sie die Lautsprecher links und rechts auf der Platine und stellen Sie sicher, dass die Lautsprecher den richtigen Kontrollleuchtenseiten entsprechen. Richten Sie die Lautsprecher an den Schlitzen an den Seiten der Box aus.
  3. Führen Sie die Akkukabel durch das kleine Loch auf der Rückseite der Box. Epoxy (oder kleben) Sie den Akku auf die Rückseite der Box, so dass der Schalter freiliegt.
  4. Platzieren Sie die 3D-gedruckte Schachteloberseite über der Schachtelunterseite, um alles aufzunehmen.

Schritt 9: Einrichtung/Montage

Aufstellung/Montage
Aufstellung/Montage
  1. Schalten Sie die Kontrollleuchten ein, indem Sie die Schalter an den Akkus in die Position „ON“bringen. Machen Sie dasselbe für die Lautsprecherbaugruppe, um das Ausgabesystem einzuschalten.
  2. Das Anbringen von hörbaren Kontrollleuchten ist am einfachsten mit zwei Personen möglich, kann aber auch mit einer Person durchgeführt werden. Für die Montage an einer nicht rollenden Fock werden die Kontrollleuchten am einfachsten vor dem Hissen des Segels angebracht.
  3. Um sicherzustellen, dass der Kontrollrahmen richtig ausgerichtet ist, sehen Sie sich die Kerbe an einem der vertikalen Balken an. Wenn Sie den Rahmen aufrecht halten, sollte die Kerbe nach oben zeigen. Die Seite des Rahmens mit dieser Stange sollte ebenfalls zur Vorderseite des Bootes zeigen.
  4. Platzieren Sie eine der Kontrollleuchten in der gewünschten Höhe und Position auf dem Segel. Es sollte so platziert werden, dass sich das Garn an der gleichen Stelle befindet, an der es sich bei einer traditionellen Kontrolluhr befinden würde.
  5. Sobald Sie eine Kontrollleuchte in der gewünschten Position haben. Platzieren Sie die andere Kontrollleuchte auf der anderen Seite des Segels, genau gegenüber der ersten, die Sie platziert haben, so dass die Magnete ausgerichtet sind. Sobald die Magnete eine Verbindung hergestellt haben, sollten sie den Rahmen sicher am Segel halten. Richten Sie die Magnete der Elektronikgehäuse für jede Kontrollleuchte auf beiden Seiten des Segels so aus, dass sie sich auch verbinden.
  6. Wenn Sie bemerken, dass die Schnur, wenn sie gerade zurück fließt, sich nicht vor dem oberen Tor kreuzt, drehen Sie den Kontrollrahmen so, dass die hintere Hälfte des Rahmens nach unten zeigt. Drehen Sie den Rahmen, bis die Schnur durch die obere Lichtschranke läuft, wenn das Garn gerade zurückfließt.

Schritt 10: Fehlerbehebung

Alle Codeteile verfügen über Debug-Print-Anweisungen, um anzuzeigen, dass sie Daten senden, empfangen und verarbeiten. Wenn Sie den COM-Port mit der Arduino IDE mit einem der Arduino Nano-Subsysteme öffnen, das an einen Computer angeschlossen ist, können Sie diese Statusmeldungen anzeigen.

Wenn das System nicht richtig funktioniert, schalten Sie die Schalter an allen Komponenten um.

Schritt 11: Mögliche nächste Schritte

  • Abdichtung
  • Kommunikation mit größerer Reichweite. WLAN ist eine vielversprechende Option.
  • Unser aktuelles Setup verwendet derzeit 2 Lichtschranken pro Kontrollleuchte. Es könnte interessant sein, dem System weitere Fotounterbrecher hinzuzufügen.

Empfohlen: