{"id":333,"date":"2016-04-02T20:44:50","date_gmt":"2016-04-02T18:44:50","guid":{"rendered":"http:\/\/thedutchguys.com\/?p=333"},"modified":"2022-03-29T22:16:30","modified_gmt":"2022-03-29T20:16:30","slug":"sonar-2","status":"publish","type":"post","link":"https:\/\/thijsbekke.nl\/blog\/2016\/04\/02\/sonar-2\/","title":{"rendered":"Sonar #2"},"content":{"rendered":"<span class=\"rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Leestijd: <\/span> <span class=\"rt-time\">3<\/span> <span class=\"rt-label rt-postfix\">Minuten<\/span><\/span>\n<p>Op mijn werk moeten we onze pc locken wanneer we onze werkplek verlaten. Het is eigenlijk al een gewoonte geworden maar het moest makkelijker kunnen bedacht ik me. Een tijdje geleden heb ik een&nbsp;<a href=\"https:\/\/thijsbekke.nl\/blog\/2016\/01\/01\/sonar\/\">sonar module<\/a>&nbsp;uitgeprobeerd. Het plan; gebruik een&nbsp;<a href=\"https:\/\/www.arduino.cc\/en\/Main\/ArduinoBoardLeonardo\" target=\"_blank\" rel=\"noopener\">Arduino Leonardo<\/a>&nbsp;om &#8220;Windows toets + L&#8221; te sturen wanneer de sonar module detecteert dat er geen persoon meer is binnen het opgegeven bereik.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Het is een redelijk simpele oplossing, bij het testen was het alleen belangrijk dat de Leonardo niet continue de pc ging locken en dat je zodoende geen code meer kon uploaden. Ook wou ik weten wanneer de pc gelocked werd dus een led om je te waarschuwen is wenselijk.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><a href=\"https:\/\/thijsbekke.nl\/blog\/wp-content\/uploads\/2016\/04\/Eagle.png\"  rel=\"lightbox[333] attachment wp-att-335\"><img src=\"https:\/\/thijsbekke.nl\/blog\/wp-content\/uploads\/2016\/04\/Eagle.png\" alt=\"Eagle\"\/><\/a><\/figure><\/div>\n\n\n\n<p>De eagle library voor de HC-SR04 kan je&nbsp;<a href=\"https:\/\/github.com\/ErichStyger\/mcuoneclipse\/blob\/master\/Eagle\/Library\/Ultrasonic%20Sensor%20HC-SR04.lbr\" target=\"_blank\" rel=\"noopener\">hier downloaden<\/a><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">const int trigPin = 2;\nconst int echoPin = 4;\nconst int ledPin = 7;\nboolean ledBlinked = false;\n\nvoid setup() {\n  \n  Serial.begin(9600);\n  pinMode(trigPin, OUTPUT);\n  pinMode(echoPin, INPUT);\n  pinMode(ledPin, OUTPUT);\n  Keyboard.begin();\n  \n  delay(100);\n}\n\nvoid loop() {\n  long cm;\n  cm = getAvgDistance(5);\n\n  \n  Serial.print(cm);\n  Serial.print(\"cm\");\n  Serial.println();  \n  \n  if(cm &gt;= 100 &amp;&amp; !ledBlinked) {\n\n    for (int i=0; i &lt;= 5; i++){\n      digitalWrite(ledPin, HIGH);\n      delay(500);\n      digitalWrite(ledPin, LOW);\n      delay(500); \n\n      cm = getAvgDistance(5);\n      if(cm &lt;= 100) {\n        return;\n      }\n    }\n\n    ledBlinked = true;\n\n    Keyboard.press(131);\n    delay(100);\n    Keyboard.press('l');\n    delay(100);\n    Keyboard.releaseAll();\n\n    return;\n  }\n  \n  if(cm &lt; 50) {\n    \/\/fallback\n    ledBlinked = false;\n    \n  }\n\n  \n  delay(1000);\n}\n\nlong getAvgDistance(int loop) {\n  long sum = 0;\n  \n  for (int i=0; i &lt;= loop; i++){\n\n     sum += getDistance();\n  }\n\n  return (sum \/ loop);\n}\n\nlong getDistance() {\n\n  long duration;\n \n  \/\/ The sensor is triggered by a HIGH pulse of 10 or more microseconds.\n  \/\/ Give a short LOW pulse beforehand to ensure a clean HIGH pulse:\n  digitalWrite(trigPin, LOW);\n  delayMicroseconds(2);\n  digitalWrite(trigPin, HIGH);\n  delayMicroseconds(10);\n  digitalWrite(trigPin, LOW);\n \n  \/\/ Read the signal from the sensor: a HIGH pulse whose\n  \/\/ duration is the time (in microseconds) from the sending\n  \/\/ of the ping to the reception of its echo off of an object.\n  duration = pulseIn(echoPin, HIGH);\n  \/\/ Wait 50ms between pings (~ 20 pings\/sec). 29ms should be min delay between pings\n  delay(50);\n \n  \/\/ convert the time into a distance\n  return microsecondsToCentimeters(duration);\n}\n\n\n\nlong microsecondsToCentimeters(long microseconds)\n{\n  \/\/ The speed of sound is 340 m\/s or 29 microseconds per centimeter.\n  \/\/ The ping travels out and back, so to find the distance of the\n  \/\/ object we take half of the distance travelled.\n  return microseconds \/ 29 \/ 2;\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p><span class=\"rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Leestijd: <\/span> <span class=\"rt-time\">3<\/span> <span class=\"rt-label rt-postfix\">Minuten<\/span><\/span> Op mijn werk moeten we onze pc locken wanneer we onze werkplek verlaten. Het is eigenlijk al een gewoonte geworden maar het moest makkelijker kunnen bedacht ik me. Een tijdje geleden heb ik een&nbsp;sonar module&nbsp;uitgeprobeerd. Het plan; gebruik een&nbsp;Arduino Leonardo&nbsp;om &#8220;Windows toets + L&#8221; te sturen wanneer de sonar module detecteert dat er geen persoon [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[3,8],"_links":{"self":[{"href":"https:\/\/thijsbekke.nl\/blog\/wp-json\/wp\/v2\/posts\/333"}],"collection":[{"href":"https:\/\/thijsbekke.nl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thijsbekke.nl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thijsbekke.nl\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thijsbekke.nl\/blog\/wp-json\/wp\/v2\/comments?post=333"}],"version-history":[{"count":3,"href":"https:\/\/thijsbekke.nl\/blog\/wp-json\/wp\/v2\/posts\/333\/revisions"}],"predecessor-version":[{"id":605,"href":"https:\/\/thijsbekke.nl\/blog\/wp-json\/wp\/v2\/posts\/333\/revisions\/605"}],"wp:attachment":[{"href":"https:\/\/thijsbekke.nl\/blog\/wp-json\/wp\/v2\/media?parent=333"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thijsbekke.nl\/blog\/wp-json\/wp\/v2\/categories?post=333"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thijsbekke.nl\/blog\/wp-json\/wp\/v2\/tags?post=333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}