Kurzfassung Ich segle sehr gerne und bin dadurch
Kurzfassung Ich segle sehr gerne und bin dadurch auf die Idee gekommen ein System wie easy sailing zu entwickeln. Das System easy sailing erleichtert das Segeln für Anfänger und Fortgeschrittene. Es arbeitet dabei mit verschiedenen elektronischen Sensoren wie einem Windmessgerät und einem Baumstellungsmessgerät zusammen. Ein Computer (später ggf. ein Smartphone) verarbeitet dann die verschiedenen Informationen und gibt Befehle, wie beispielsweise „Großschot fester anziehen“, „Fockschot lockern“ etc. aus. Die Befehle werden über eine LED Anzeige ausgegeben.
Funktionsweise Das System easy sailing arbeitet mit einem Windsensor, der die Windrichtung in Graden ausgibt und einem Winkelsensor, der den Winkel des Segels (Baum) misst. Diese Sensoren geben das Signal zu einem Computer (im vorliegenden Fall ein Rasberry pi ) , der die Daten später in ein Bluetooth Signal wandelt was dann einfach mit einem Smartphone oder einem anderen Gerät empfangen werden kann.
Funktionsweise Das System easy sailing arbeitet mit einem Windsensor, der die Windrichtung in Graden ausgibt und einem Winkelsensor, der den Winkel des Segels (Baum) misst. Diese Sensoren geben das Signal zu einem Computer (im vorliegenden Fall ein Rasberry pi ) , der die Daten später in ein Bluetooth Signal wandelt was dann einfach mit einem Smartphone oder einem anderen Gerät empfangen werden kann.
Grundlagen Es gibt einen Zusammenhang zwischen der Windrichtung, der Windstärke und der optimalen Baumstellung. In diesem ersten Schritt wird die Windstärke zunächst vernachlässigt. Der Zusammenhang ist in der Abbildung zu sehen. Sobald man härter an den Wind geht, muss man das Segel fester nehmen. Wenn man das nicht macht, verringert sich die Geschwindigkeit.
Die folgende Tabelle bildet die Grundlage für das System: Windrichtung optimale Baumstellung 40° 15° 60° 25° 100° 50° 140° 70° 180° 90°
Funktions Prototyp Als Prototyp nutze ich einen Optimisten. Die Optimist Jolle (auch kurz Opti genannt) ist ein weltweit verbreitetes Segelschiff, welches für Kinder bis etwa 15 Jahren das ideale Regatta- oder Freizeitboot ist. Weltweit kommt es oft zu Optimisten Regatten
Winkelmessung • Der Winkel der Windrichtung und der Winkel der Baumstellung werden jeweils bezüglich der Längsachse des Schiffes gemessen. Wobei der Windrichtung der Scheitelpunkt sich z. b. dort befindet, wo die Längsachse und die Linie des Windes sich kreuzen. Der Scheitelpunkt des Winkels der Baumstellung liegt dort , wo der Baum und die Längsachse sich kreuzen.
Der konstruktive Aufbau • Der Verklicker (eine Art Windrose oben am Mast) ist mit einem Potentiometer gekoppelt. Der gemessene Widerstand gibt Aufschluss über die Windrichtung.
Der Baum ist über eine Metallstange mit einem Potentiometer verbunden. Der gemessene Widerstand gibt Aufschluss über die Baumstellung.
• Ich habe an das System einen Poti angebracht mit dem man einstellen kann, ob man ein Anfänger oder ein Fortgeschrittener Segler ist. • Durch das verändern der Einstellung wird der Perfekte Bereich entweder vergrößert oder verkleinert.
Der AD Wandler Der Analog Digital Wandler wandelt die Ausgaben des Potis in Zahlen um.
Steuerungstechnischer Aufbau • Der Einplatinencomputer ist mit den beiden Potentiometern zur Windmessung und zur Messung der Baumstellung verbunden. Es gibt vier Ausgänge, eine rote LED mit der Beschriftung „Fester anziehen“ , eine blaue LED mit der Beschriftung „Schot lockern", eine grüne LED mit der Beschriftung „Perfekt!“ und eine gelbe LED mit der Beschriftung „Der Baum ist auf der falschen Seite“ , die entsprechend der Ausgabe des Programmes je nach Signal an und aus gehen.
VIELEN DANK FÜR IHRE AUFMERKSAMKEIT!
Grundlagen Es gibt einen Zusammenhang zwischen der Windrichtung, der Windstärke und der optimalen Baumstellung. In diesem ersten Schritt wird die Windstärke zunächst vernachlässigt. Der Zusammenhang ist in der Abbildung zu sehen. Sobald man härter an den Wind geht, muss man das Segel fester nehmen. Wenn man das nicht macht, verringert sich die Geschwindigkeit.
Die folgende Tabelle bildet die Grundlage für das System: Windrichtung optimale Baumstellung 40° 15° 60° 25° 100° 50° 140° 70° 180° 90°
Funktions Prototyp Als Prototyp nutze ich einen Optimisten. Die Optimist Jolle (auch kurz Opti genannt) ist ein weltweit verbreitetes Segelschiff, welches für Kinder bis etwa 15 Jahren das ideale Regatta- oder Freizeitboot ist. Weltweit kommt es oft zu Optimisten Regatten
Winkelmessung • Der Winkel der Windrichtung und der Winkel der Baumstellung werden jeweils bezüglich der Längsachse des Schiffes gemessen. Wobei der Windrichtung der Scheitelpunkt sich z. b. dort befindet, wo die Längsachse und die Linie des Windes sich kreuzen. Der Scheitelpunkt des Winkels der Baumstellung liegt dort , wo der Baum und die Längsachse sich kreuzen.
Der konstruktive Aufbau • Der Verklicker (eine Art Windrose oben am Mast) ist mit einem Potentiometer gekoppelt. Der gemessene Widerstand gibt Aufschluss über die Windrichtung.
Der Baum ist über eine Metallstange mit einem Potentiometer verbunden. Der gemessene Widerstand gibt Aufschluss über die Baumstellung.
• Ich habe an das System einen Poti angebracht mit dem man einstellen kann, ob man ein Anfänger oder ein Fortgeschrittener Segler ist. • Durch das verändern der Einstellung wird der Perfekte Bereich entweder vergrößert oder verkleinert.
Der AD Wandler Der Analog Digital Wandler wandelt die Ausgaben des Potis in Zahlen um.
Steuerungstechnischer Aufbau • Der Einplatinencomputer ist mit den beiden Potentiometern zur Windmessung und zur Messung der Baumstellung verbunden. Es gibt vier Ausgänge, eine rote LED mit der Beschriftung „Fester anziehen“ , eine blaue LED mit der Beschriftung „Schot lockern", eine grüne LED mit der Beschriftung „Perfekt!“ und eine gelbe LED mit der Beschriftung „Der Baum ist auf der falschen Seite“ , die entsprechend der Ausgabe des Programmes je nach Signal an und aus gehen.
VIELEN DANK FÜR IHRE AUFMERKSAMKEIT!
import RPi. GPIO as GPIO Import von Bibliotheken import time, os import math GPIO. setmode(GPIO. BCM) Initialisieren poti_channel = 0 CLK_Pin = 11 DIN_Pin = 10 # wiring. Pi = 12 DOUT_Pin = 9 # wiring. Pi = 13 CS_Pin = 8 # wiring. Pi = 10 GPIO. setup(CLK_Pin, GPIO. OUT) GPIO. setup(DIN_Pin, GPIO. OUT) GPIO. setup(DOUT_Pin, GPIO. IN) GPIO. setup(CS_Pin, GPIO. OUT) GPIO. setup(23, GPIO. OUT) GPIO. setup(24, GPIO. OUT) GPIO. setup(25, GPIO. OUT) GPIO. setup(21, GPIO. OUT) def get. Analog. Data(poti_channel, CLK_Pin, DIN_Pin, DOUT_Pin, CS_Pin): Definition der Funktion zur Ansteuerung des
AD Wandlers GPIO. output(CS_Pin, True) GPIO. output(CS_Pin, False) GPIO. output(CLK_Pin, False) pushcmd = poti_channel pushcmd |= 0 b 00011000 for i in range(5): GPIO. output(DIN_Pin, bool(pushcmd & 0 b 10000)) GPIO. output(CLK_Pin, True) GPIO. output(CLK_Pin, False) pushcmd <<= 1 poti_channel_value = 0 for i in range(11): GPIO. output(CLK_Pin, True) GPIO. output(CLK_Pin, False) poti_channel_value <<= 1 if(GPIO. input(DOUT_Pin)): poti_channel_value |= 0 x 01 time. sleep(0. 000001) return poti_channel_value os. system('clear') print ('Messung Drehpotentiometer') try: while True:
fehler=0 Initialisierung Fehler tmp_value 1 = get. Analog. Data(poti_channel, CLK_Pin, DIN_Pin, DOUT_Pin, CS_Pin) Auslesen und Umwandlung in Grad der Baumstellung. tmp_value 1 = 270/1023*tmp_value 1 -135 tmp_value 1 rad = 2*math. pi/360*tmp_value 1 tmp_value 1 = math. asin() # sin = math. sin ( FORMEL ) #arc sin = math. asin( FORMEL ) print ("Baumstellung=", tmp_value 1, "°") time. sleep(0. 1) tmp_value 2 = get. Analog. Data(poti_channel+1, CLK_Pin, DIN_Pin, DOUT_Pin, CS_Pin) Auslesen und Umwandlung in Grad der Windrichtung. print ("------") tmp_value 2 = 270/1023*tmp_value 2 -135 print ("Windrichtung=", tmp_value 2, "°") tmp_value 3 = get. Analog. Data(poti_channel+2, CLK_Pin, DIN_Pin, DOUT_Pin, CS_Pin) Auslesen und Umwandlung in Grad der Empfindlichkeit. tmp_value 3 = 20/1023*tmp_value 3+1 print ("Empfindlichkeit=", tmp_value 3)
if(tmp_value 1>0 and tmp_value 2<0): Setzen der Fehlervariablen fehler=1 if(tmp_value 1<0 and tmp_value 2>0): fehler=1 if(tmp_value 1 < 0): Bildung der Beträge. tmp_value 1 = -tmp_value 1 if(tmp_value 2 < 0): tmp_value 2 = -tmp_value 2 baumsoll=(tmp_value 2 -10)/2 Berechnung der optimalen Baumstellung. differenz=tmp_value 1 - baumsoll Berechnung der Abweichung von der optimalen Baumstellung. if(differenz < 0): Bildung der Beträge. differenz = -differenz if (fehler==1): Fehlerzustand. print ("der baum ist auf der falschen seite! ich hoffe du lernst aus dieser aktion!!!!") GPIO. output(23, GPIO. LOW) GPIO. output(24, GPIO. LOW) GPIO. output(25, GPIO. LOW) GPIO. output(21, GPIO. HIGH) elif(differenz < tmp_value 3): Optimalzustand. print ("perfekt!!!!!!!weiter so!!!")
GPIO. output(23, GPIO. HIGH) GPIO. output(24, GPIO. LOW) GPIO. output(25, GPIO. LOW) GPIO. output(21, GPIO. LOW) elif(tmp_value 1 < baumsoll): Baumwinkel zu klein print ("schot loslassen") GPIO. output(24, GPIO. HIGH) GPIO. output(23, GPIO. LOW) GPIO. output(25, GPIO. LOW) GPIO. output(21, GPIO. LOW) elif(tmp_value 1 > baumsoll): Baumwinkel zu groß. print ("schot anziehen") GPIO. output(25, GPIO. HIGH) GPIO. output(24, GPIO. LOW) GPIO. output(23, GPIO. LOW) GPIO. output(21, GPIO. LOW) time. sleep(0. 01) except Keyboard. Interrupt: print ("[mcp 3008] Messung abgebrochen. ") GPIO. cleanup()
- Slides: 43