{"id":355,"date":"2012-08-03T13:42:03","date_gmt":"2012-08-03T17:42:03","guid":{"rendered":"http:\/\/www.jelbert.nl\/?p=355"},"modified":"2012-08-07T15:46:51","modified_gmt":"2012-08-07T19:46:51","slug":"auto-pilot","status":"publish","type":"post","link":"https:\/\/www.jelbert.nl\/?p=355","title":{"rendered":"Auto Pilot"},"content":{"rendered":"<p>This article is about my auto pilot project for my sailing boat. First I wanted to buy a Rayteon SPX or ST6000 series AP but those things are expensive. Next The ST4000+ was on my list but still those go for prices above what I could afford. So I saw someone on the web who build his <a href=\"https:\/\/www.segeln-forum.de\/index.php?page=Thread&amp;threadID=28721&amp;highlight=\">own<\/a> AP. He never published any code though, and I want my own litle features.<\/p>\n<p>For you non techies just scroll down to the next article&#8230;<\/p>\n<p>So what are those features? I want to be able to use it next to my st3000 that still works. To control it by Ipad or maybe by my kobo reader, better viewable in sunlight. To control it by bluetooth with the peble watch. To be able to steer by a windvane ove NMEA (need to get one this winter). To tack with a maximum yaw, so to steer higher than normally would be done and prevent too much yaw (I am a pleasure boat sailor and want to keep ik fun and not fight). And ofcource just set a cource and go there and maybe waypoints. And if it works with the peble an overboard alarm is the bluetooth connection is suddenly lost so to steer to a stop.<\/p>\n<p>The hardware consists out of a motor driver, a compass module and a pc that can later on in the project be replaced by a mcu. The compass module consists of an CMP01 module and an arduino and a rs232 driver with a power supply. The compass module gives the compass readings in 3600 counts and yaw (+\/- 85 degrees) and tilt (+\/-) 85 degrees, and is yaw and tilt compensated. The driver module consists of a FET driver board (pololu 36V20CS) max 36Volt 20Amp with coasting capability. The coasting is a feature to be able to turn the motor by hand is the board is enabled but not driving, normally a board like that has the motot in that case in break. A 20 amp driver is overkill but the costs of the driver board are lower than a less heavy one and it leaves room for other driving hardware in the future. The driver board also has nice features as error checking and measuring the current through the motor.The driver board is controlled by an arduino and also has a rs232 driver and power supply.<\/p>\n<p>Both the modules are connected to a boat pc. The boat pc takes less than 10W and consists of a DN2800MT NM10 mini-ITX board with two\u00a0Kingston SODIMM DDR3-1066 2GB modules and an 128GB SSD. It runs windows 7 and the development enviroment on it is Labview and VB6. It is hooked up to an wifi router so I can control it wit my iPad over a VNC connection. At this moment I also have a gps module connected to it. The board has two build in rs232 ports so I have to get an extra one. If you want to use the rs232 ports for powered devices over pin 9 you also have to connect pin 5 to the real ground. The pin 5 is connected to the ground through a resistor.<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" style=\"display: block; margin-left: auto; margin-right: auto;\" title=\"IMG_0904.JPG\" src=\"https:\/\/i0.wp.com\/www.jelbert.nl\/wp-content\/uploads\/2012\/08\/IMG_0904.jpg?resize=450%2C337\" alt=\"IMG 0904\" width=\"450\" height=\"337\" border=\"0\" \/><\/p>\n<p>The whole computer including router uses 0.91A from my battery (14.58V) with a 20% cpu load. That is not bad I would say. That is measured with my BMV602S battery monitor.<\/p>\n<p>the compass code:<\/p>\n<pre>\/****************************************************************\r\n* Arduino CMPS10 example code *\r\n* CMPS10 running I2C mode *\r\n* by James Henderson, 2012 *\r\n* Modified by Jelbert Holtrop, 2012 *\r\n*****************************************************************\/\r\n#include &lt;Wire.h&gt;\r\n#include &lt;SoftwareSerial.h&gt;\r\n\r\n#define ADDRESS 0x60 \/\/ Defines address of CMPS10\r\n\r\nvoid setup(){\r\nWire.begin(); \/\/ Conects I2C\r\nSerial.begin(9600);\r\n\/\/ Serial.println(\"Compass unit 1\");\r\n\r\n}\r\n\r\nvoid loop()\r\n{\r\nsendData();\r\n}\r\n\r\nvoid sendData()\r\n{\r\nbyte highByte, lowByte, fine,\r\naccelXh,accelXl,accelYh,accelYl,accelZh,accelZl; \/\/ highByte and lowByte store high and low bytes of the bearing and fine stores decimal place of bearing\r\nchar pitch, roll, dummy; \/\/ Stores pitch and roll values of CMPS10, chars are used because they support signed value\r\nint bearing, accelX, accelY, accelZ, crc; \/\/ Stores full bearing\r\n\r\nWire.beginTransmission(ADDRESS); \/\/starts communication with CMPS10\r\nWire.write(2); \/\/Sends the register we wish to start reading from\r\nWire.endTransmission();\r\n\r\nWire.requestFrom(ADDRESS, 4); \/\/ Request 4 bytes from CMPS10\r\nwhile(Wire.available() &lt; 4); \/\/ Wait for bytes to become available\r\nhighByte = Wire.read();\r\nlowByte = Wire.read();\r\npitch = Wire.read();\r\nroll = Wire.read();\r\nbearing = ((highByte&lt;&lt;8)+lowByte)\/10; \/\/ Calculate full bearing\r\nfine = ((highByte&lt;&lt;8)+lowByte)%10; \/\/ Calculate decimal place of bearing\r\n\r\nSerial.print(bearing,DEC);\r\nSerial.print(\".\");\r\nSerial.print(fine,DEC);\r\nSerial.print(\",\");\r\nSerial.print(pitch,DEC);\r\nSerial.print(\",\");\r\nSerial.print(roll,DEC);\r\ncrc=abs(bearing)+abs(pitch)+abs(roll)+10; \/\/hele simple crc + lege string detectie\r\nSerial.print(\",\");\r\nSerial.print(crc,DEC);\r\nSerial.println(\" \");\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p>Hmm some of the formatting is gone bu you get the idea.<\/p>\n<p>Next the code of the driver. This code now includes for reading the motor current and voltage. Added options for continious pwm drive and set deadband.<\/p>\n<pre>\/\/program board Duemilanove w\/ Atmega 328 com 1\r\n\r\nint DIR=3;\r\nint PWML=5;\r\nint PWMH=6;\r\nint CS=A0;\r\nint FF1=8;\r\nint FF2=9;\r\nint command=0;\r\nint halfspeed=127;\r\nint fullspeed=255;\r\nint err1;\r\nint err2;\r\nint rotation=0;\r\nint deadBand=0;\r\n\r\nvoid setup()\r\n{\r\n\u00a0\/\/ drive\/coast PWML=PWMH DIR=DIRECTION\r\n\u00a0\/\/ drive\/brake-low PWMH=0 DIR=direction\r\n\u00a0\/\/ drive\/brake-high PWML=0 Dir=direction\r\n\u00a0\/\/ coast=lowpower PWMH=PWML=0 DIR=x\r\n\u00a0\u00a0 pinMode(DIR, OUTPUT);\u00a0 \/\/analogwrite(ledpin,value) pwm zet pinmode zelf\r\n\u00a0\/\/\u00a0 pinmode(PWML, OUTPUT);\r\n\u00a0\/\/\u00a0 pinmode(PWMH, OUTPUT);\r\n\r\n\u00a0\/\/\u00a0 pinmode(CS, INPUT); \/\/voor analoge pinnen is dat niet nodig\r\n\u00a0\u00a0 pinMode(FF1, INPUT);\r\n\u00a0\u00a0 pinMode(FF2, INPUT);\r\n\r\n\u00a0Serial.begin(9600); \r\n\u00a0Serial.print(\"Version 1 beta\");\r\n\/\/ establishContact();\u00a0 \/\/ send a byte to establish contact until receiver responds \r\n\r\n}\r\n\r\nvoid loop()\r\n{\r\n\u00a0 int MotorCurrent;\r\n\u00a0 int MotorVoltage;\r\n\u00a0 int MaxCurrent;\r\n\u00a0\u00a0\u00a0 if(Serial.available()&gt;0)\r\n\u00a0\u00a0\u00a0 {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/Commands\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ drive\/coast 50%=A 100%=B\u00a0 : PWML=PWMH DIR=DIRECTION\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ drive\/break 50%=C 100%=D\u00a0 : drive\/brake-high PWML=0 Dir=direction\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ Direction L,R \r\n\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ COAST Z\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : coast=lowpower PWMH=PWML=0 DIR=x\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 command=Serial.read();\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 Serial.print(command); \/\/echo\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 switch (command)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 case 'A':\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/max motor current = 8\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 MaxCurrent=8;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 analogWrite(PWML,halfspeed);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 analogWrite(PWMH,halfspeed);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 break;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 case 'B':\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/max motor current = 19\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 MaxCurrent=19;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 analogWrite(PWML,fullspeed);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 analogWrite(PWMH,fullspeed);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 break;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 case 'C':\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/max motor current = 10\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 MaxCurrent=10;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 analogWrite(PWML,halfspeed);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 analogWrite(PWMH,0);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 break;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 case 'D':\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/max motor current = 17\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 MaxCurrent=17;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 analogWrite(PWML,fullspeed);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 analogWrite(PWMH,0);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 break;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 case 'L':\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 digitalWrite(DIR,HIGH);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 break;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 case 'R':\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 digitalWrite(DIR,LOW);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 break;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 case 'P':\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/continious pwm\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 rotation=constrain(rotation,-255,255);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 rotation=Serial.parseInt();\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 if(abs(rotation)&lt;deadBand)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 analogWrite(PWML,0);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 analogWrite(PWMH,0);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 break;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 if(rotation&gt;0) \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 digitalWrite(DIR,HIGH); \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 else \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 digitalWrite(DIR,LOW);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 rotation=abs(rotation);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 analogWrite(PWML,rotation);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 analogWrite(PWMH,rotation);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 break;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 case 'W':\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/set deadband The ammount of pwm value that results in no rotation. \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/to make sure the motor is not continually working with low values of pwm\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 deadBand=Serial.parseInt();\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 break;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 case 'Z':\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 analogWrite(PWML,0);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 analogWrite(PWMH,0);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 digitalWrite(DIR,LOW);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 break;\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 }\u00a0 \u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 err1 = digitalRead(FF1);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 err2 = digitalRead(FF2);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 if (err1 == HIGH &amp;&amp; err2 == HIGH) Serial.println(\"ERROR: UnderVoltager\");\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 if (err1 == HIGH &amp;&amp; err2 == LOW)\u00a0 Serial.println(\"ERROR: OverTemprature\");\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 if (err1 == LOW &amp;&amp; err2 == HIGH)\u00a0 Serial.println(\"ERROR: ShortCircuit, need to reset\");\r\n\/\/ hier nog de code voor het uitlezen en weergeven van stroom en spanning I=I-470 \u00a0\r\n\/\/ Motor current sense zit op A0\r\n\/\/ Waar zit motor voltage sense ook al weer op A1?\r\n\u00a0 MotorCurrent=analogRead(CS)-471;\r\n\u00a0 MotorVoltage=analogRead(A1);\r\n\u00a0 \/\/Serial.print(\"Motor current=\");\r\n\u00a0 Serial.print(MotorCurrent,DEC);\r\n\u00a0 Serial.print(\",\");\r\n\u00a0 \/\/Serial.print(\"Motor voltage=\");\r\n\u00a0 Serial.println(MotorVoltage,DEC);\r\n\u00a0 \/*if (abs(MotorCurrent)&gt;=MaxCurrent)\r\n\u00a0 {\/\/ put motor in Z = off, coast\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 analogWrite(PWML,0);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 analogWrite(PWMH,0);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 digitalWrite(DIR,LOW);\r\n\r\n\u00a0 }*\/\r\n}\r\n\r\nvoid establishContact() {\r\n\u00a0 while (Serial.available() &lt;= 0) {\r\n\u00a0\u00a0\u00a0 Serial.println(\"Hello\");\u00a0\u00a0 \/\/ send an initial string\r\n\u00a0\u00a0\u00a0 delay(300);\r\n\u00a0 }\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p>So far for now but as the project has progress I will add to this post. Publisching labview code is very unpractical so for that I should find some solution.<\/p>\n<p><a href=\"http:\/\/creativecommons.org\/licenses\/by-nc-sa\/3.0\/deed.en_US\" rel=\"license\"><img data-recalc-dims=\"1\" decoding=\"async\" style=\"border-width: 0;\" src=\"https:\/\/i0.wp.com\/i.creativecommons.org\/l\/by-nc-sa\/3.0\/88x31.png?w=530\" alt=\"Creative Commons License\" \/><\/a><br \/>\nThis work is licensed under a <a href=\"http:\/\/creativecommons.org\/licenses\/by-nc-sa\/3.0\/deed.en_US\" rel=\"license\">Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This article is about my auto pilot project for my sailing boat. First I wanted to buy a Rayteon SPX or ST6000 series AP but those things are expensive. Next<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[7,9,8,33],"tags":[125,126,129,128,127],"class_list":["post-355","post","type-post","status-publish","format-standard","hentry","category-apparaatjes","category-arduino","category-techniek","category-vakantie","tag-autopilot","tag-spx","tag-st3000","tag-st4000","tag-st6000"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Auto Pilot - Levens Stroom<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.jelbert.nl\/?p=355\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Auto Pilot - Levens Stroom\" \/>\n<meta property=\"og:description\" content=\"This article is about my auto pilot project for my sailing boat. First I wanted to buy a Rayteon SPX or ST6000 series AP but those things are expensive. Next\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.jelbert.nl\/?p=355\" \/>\n<meta property=\"og:site_name\" content=\"Levens Stroom\" \/>\n<meta property=\"article:published_time\" content=\"2012-08-03T17:42:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2012-08-07T19:46:51+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.jelbert.nl\/wp-content\/uploads\/2012\/08\/IMG_0904.jpg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.jelbert.nl\\\/?p=355#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.jelbert.nl\\\/?p=355\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/www.jelbert.nl\\\/#\\\/schema\\\/person\\\/7a8cb50fdd8e9f3b970c269798e0a3ec\"},\"headline\":\"Auto Pilot\",\"datePublished\":\"2012-08-03T17:42:03+00:00\",\"dateModified\":\"2012-08-07T19:46:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.jelbert.nl\\\/?p=355\"},\"wordCount\":646,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.jelbert.nl\\\/?p=355#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/www.jelbert.nl\\\/wp-content\\\/uploads\\\/2012\\\/08\\\/IMG_0904.jpg\",\"keywords\":[\"Autopilot\",\"SPX\",\"ST3000\",\"ST4000\",\"ST6000\"],\"articleSection\":[\"apparaatjes\",\"Arduino\",\"Techniek\",\"vakantie\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.jelbert.nl\\\/?p=355#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.jelbert.nl\\\/?p=355\",\"url\":\"https:\\\/\\\/www.jelbert.nl\\\/?p=355\",\"name\":\"Auto Pilot - Levens Stroom\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.jelbert.nl\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.jelbert.nl\\\/?p=355#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.jelbert.nl\\\/?p=355#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/www.jelbert.nl\\\/wp-content\\\/uploads\\\/2012\\\/08\\\/IMG_0904.jpg\",\"datePublished\":\"2012-08-03T17:42:03+00:00\",\"dateModified\":\"2012-08-07T19:46:51+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.jelbert.nl\\\/#\\\/schema\\\/person\\\/7a8cb50fdd8e9f3b970c269798e0a3ec\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.jelbert.nl\\\/?p=355#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.jelbert.nl\\\/?p=355\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.jelbert.nl\\\/?p=355#primaryimage\",\"url\":\"http:\\\/\\\/www.jelbert.nl\\\/wp-content\\\/uploads\\\/2012\\\/08\\\/IMG_0904.jpg\",\"contentUrl\":\"http:\\\/\\\/www.jelbert.nl\\\/wp-content\\\/uploads\\\/2012\\\/08\\\/IMG_0904.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.jelbert.nl\\\/?p=355#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.jelbert.nl\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Auto Pilot\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.jelbert.nl\\\/#website\",\"url\":\"https:\\\/\\\/www.jelbert.nl\\\/\",\"name\":\"Levens Stroom\",\"description\":\"Tegen de stroom in varend ontmoet je het meest.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.jelbert.nl\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.jelbert.nl\\\/#\\\/schema\\\/person\\\/7a8cb50fdd8e9f3b970c269798e0a3ec\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/011be115ae18d65dc7a6e8bfd88d8dae3fd700a0869c40ee6e69030a3515767e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/011be115ae18d65dc7a6e8bfd88d8dae3fd700a0869c40ee6e69030a3515767e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/011be115ae18d65dc7a6e8bfd88d8dae3fd700a0869c40ee6e69030a3515767e?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"url\":\"https:\\\/\\\/www.jelbert.nl\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Auto Pilot - Levens Stroom","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.jelbert.nl\/?p=355","og_locale":"en_US","og_type":"article","og_title":"Auto Pilot - Levens Stroom","og_description":"This article is about my auto pilot project for my sailing boat. First I wanted to buy a Rayteon SPX or ST6000 series AP but those things are expensive. Next","og_url":"https:\/\/www.jelbert.nl\/?p=355","og_site_name":"Levens Stroom","article_published_time":"2012-08-03T17:42:03+00:00","article_modified_time":"2012-08-07T19:46:51+00:00","og_image":[{"url":"http:\/\/www.jelbert.nl\/wp-content\/uploads\/2012\/08\/IMG_0904.jpg","type":"","width":"","height":""}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.jelbert.nl\/?p=355#article","isPartOf":{"@id":"https:\/\/www.jelbert.nl\/?p=355"},"author":{"name":"admin","@id":"https:\/\/www.jelbert.nl\/#\/schema\/person\/7a8cb50fdd8e9f3b970c269798e0a3ec"},"headline":"Auto Pilot","datePublished":"2012-08-03T17:42:03+00:00","dateModified":"2012-08-07T19:46:51+00:00","mainEntityOfPage":{"@id":"https:\/\/www.jelbert.nl\/?p=355"},"wordCount":646,"commentCount":0,"image":{"@id":"https:\/\/www.jelbert.nl\/?p=355#primaryimage"},"thumbnailUrl":"http:\/\/www.jelbert.nl\/wp-content\/uploads\/2012\/08\/IMG_0904.jpg","keywords":["Autopilot","SPX","ST3000","ST4000","ST6000"],"articleSection":["apparaatjes","Arduino","Techniek","vakantie"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.jelbert.nl\/?p=355#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.jelbert.nl\/?p=355","url":"https:\/\/www.jelbert.nl\/?p=355","name":"Auto Pilot - Levens Stroom","isPartOf":{"@id":"https:\/\/www.jelbert.nl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.jelbert.nl\/?p=355#primaryimage"},"image":{"@id":"https:\/\/www.jelbert.nl\/?p=355#primaryimage"},"thumbnailUrl":"http:\/\/www.jelbert.nl\/wp-content\/uploads\/2012\/08\/IMG_0904.jpg","datePublished":"2012-08-03T17:42:03+00:00","dateModified":"2012-08-07T19:46:51+00:00","author":{"@id":"https:\/\/www.jelbert.nl\/#\/schema\/person\/7a8cb50fdd8e9f3b970c269798e0a3ec"},"breadcrumb":{"@id":"https:\/\/www.jelbert.nl\/?p=355#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.jelbert.nl\/?p=355"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.jelbert.nl\/?p=355#primaryimage","url":"http:\/\/www.jelbert.nl\/wp-content\/uploads\/2012\/08\/IMG_0904.jpg","contentUrl":"http:\/\/www.jelbert.nl\/wp-content\/uploads\/2012\/08\/IMG_0904.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/www.jelbert.nl\/?p=355#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.jelbert.nl\/"},{"@type":"ListItem","position":2,"name":"Auto Pilot"}]},{"@type":"WebSite","@id":"https:\/\/www.jelbert.nl\/#website","url":"https:\/\/www.jelbert.nl\/","name":"Levens Stroom","description":"Tegen de stroom in varend ontmoet je het meest.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.jelbert.nl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.jelbert.nl\/#\/schema\/person\/7a8cb50fdd8e9f3b970c269798e0a3ec","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/011be115ae18d65dc7a6e8bfd88d8dae3fd700a0869c40ee6e69030a3515767e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/011be115ae18d65dc7a6e8bfd88d8dae3fd700a0869c40ee6e69030a3515767e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/011be115ae18d65dc7a6e8bfd88d8dae3fd700a0869c40ee6e69030a3515767e?s=96&d=mm&r=g","caption":"admin"},"url":"https:\/\/www.jelbert.nl\/?author=1"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2b7sn-5J","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/www.jelbert.nl\/index.php?rest_route=\/wp\/v2\/posts\/355","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jelbert.nl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jelbert.nl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jelbert.nl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jelbert.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=355"}],"version-history":[{"count":10,"href":"https:\/\/www.jelbert.nl\/index.php?rest_route=\/wp\/v2\/posts\/355\/revisions"}],"predecessor-version":[{"id":362,"href":"https:\/\/www.jelbert.nl\/index.php?rest_route=\/wp\/v2\/posts\/355\/revisions\/362"}],"wp:attachment":[{"href":"https:\/\/www.jelbert.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=355"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jelbert.nl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=355"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jelbert.nl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=355"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}