{"id":2032,"date":"2019-12-10T13:24:37","date_gmt":"2019-12-10T21:24:37","guid":{"rendered":"http:\/\/www.donluc.com\/?p=2032"},"modified":"2019-12-10T13:24:37","modified_gmt":"2019-12-10T21:24:37","slug":"project-12-robotics-laser-diode-mk03","status":"publish","type":"post","link":"https:\/\/www.donluc.com\/?p=2032","title":{"rendered":"Project #12: Robotics &#8211; Laser Diode &#8211; Mk03"},"content":{"rendered":"<div style=\"width: 720px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-2032-1\" width=\"720\" height=\"406\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2019\/12\/dl1912mk02.mp4?_=1\" \/><a href=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2019\/12\/dl1912mk02.mp4\">https:\/\/www.donluc.com\/wp-content\/uploads\/2019\/12\/dl1912mk02.mp4<\/a><\/video><\/div>\n<p>&#8212;&#8212;<\/p>\n<p><a href=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2019\/12\/DL1912Mk02a.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2019\/12\/DL1912Mk02a.png\" alt=\"Laser Diode\" width=\"720\" height=\"928\" class=\"alignnone size-full wp-image-2034\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2019\/12\/DL1912Mk02a.png 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2019\/12\/DL1912Mk02a-233x300.png 233w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><\/p>\n<p>&#8212;&#8212;<\/p>\n<p><a href=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2019\/12\/DL1912Mk02b.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2019\/12\/DL1912Mk02b.png\" alt=\"Laser Diode\" width=\"720\" height=\"928\" class=\"alignnone size-full wp-image-2035\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2019\/12\/DL1912Mk02b.png 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2019\/12\/DL1912Mk02b-233x300.png 233w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><\/p>\n<p>&#8212;&#8212;<\/p>\n<p><a href=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2019\/12\/DL1912Mk02c.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2019\/12\/DL1912Mk02c.png\" alt=\"Laser Diode\" width=\"720\" height=\"480\" class=\"alignnone size-full wp-image-2036\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2019\/12\/DL1912Mk02c.png 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2019\/12\/DL1912Mk02c-300x200.png 300w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><\/p>\n<p>&#8212;&#8212;<\/p>\n<p><a href=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2019\/12\/DL1912Mk02d.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2019\/12\/DL1912Mk02d.png\" alt=\"Laser Diode\" width=\"720\" height=\"480\" class=\"alignnone size-full wp-image-2037\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2019\/12\/DL1912Mk02d.png 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2019\/12\/DL1912Mk02d-300x200.png 300w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><\/p>\n<p>&#8212;&#8212;<\/p>\n<p><a href=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2019\/12\/DL1912Mk02e.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2019\/12\/DL1912Mk02e.png\" alt=\"Laser Diode\" width=\"720\" height=\"480\" class=\"alignnone size-full wp-image-2038\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2019\/12\/DL1912Mk02e.png 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2019\/12\/DL1912Mk02e-300x200.png 300w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><\/p>\n<p>&#8212;&#8212;<\/p>\n<p><strong>Laser Diode<\/strong><\/p>\n<p>A laser diode is a semiconductor device similar to a light-emitting diode in which a diode pumped directly with electrical current can create lasing conditions at the diode&#8217;s junction. Laser diodes can directly convert electrical energy into light. Due to the drop of the electron from a higher energy level to a lower one, radiation, in the form of an emitted photon is generated. This is spontaneous emission. Stimulated emission can be produced when the process is continued and further generate light with the same phase, coherence and wavelength.<\/p>\n<p>The choice of the semiconductor material determines the wavelength of the emitted beam, which in today&#8217;s laser diodes range from infra-red to the UV spectrum. Laser diodes are the most common type of lasers produced, with a wide range of uses that include fiber optic communications, barcode readers, laser pointers, CD\/DVD\/Blu-ray disc reading\/recording, laser printing, laser scanning and light beam illumination. With the use of a phosphor like that found on white LEDs, Laser diodes can be used for general illumination. <\/p>\n<p><strong>DL1912Mk02<\/strong><\/p>\n<p>1 x Adafruit RGB LCD Shield 16\u00d72 Character Display<br \/>\n1 x Arduino UNO &#8211; R3<br \/>\n1 x ProtoScrewShield<br \/>\n2 x EasyDriver &#8211; Stepper Motor Driver<br \/>\n1 x Small Stepper Motor<br \/>\n1 x Pololu Mounting<br \/>\n1 x Symbol Stepper Motor<br \/>\n2 x RC Servo Motor<br \/>\n2 x Potentiometer 1M Ohm<br \/>\n2 x Knob<br \/>\n1 x LED Red<br \/>\n1 x Rocker Switches<br \/>\n1 x Laser Red<br \/>\n5 x Jumper Wires 3&#8243; M\/M<br \/>\n29 x Jumper Wires 6&#8243; M\/M<br \/>\n3 x Half-Size Breadboard<\/p>\n<p><strong>Arduino UNO<\/strong><\/p>\n<p>SP1 &#8211; Digital 3<br \/>\nDI1 &#8211; Digital 2<br \/>\nSP2 &#8211; Digital 5<br \/>\nDI2 &#8211; Digital 4<br \/>\nSV1 &#8211; Digital 6<br \/>\nPO1 &#8211; Analog A0<br \/>\nSV2 &#8211; Digital 7<br \/>\nPO2 &#8211; Analog A1<br \/>\nVIN &#8211; +5V<br \/>\nGND &#8211; GND<\/p>\n<p><strong>DL1912Mk02.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"default\" data-enlighter-title=\"DL1912Mk02.ino\">\r\n\/\/ ***** Don Luc Electronics \u00a9 *****\r\n\/\/ Software Version Information\r\n\/\/ Project #12: Robotics - Laser Diode - Mk03\r\n\/\/ 12-02\r\n\/\/ DL1912Mk02p.ino 12-03\r\n\/\/ Arduino UNO\r\n\/\/ Screw Shield\r\n\/\/ Adafruit RGB LCD Shield\r\n\/\/ 1 x Small Stepper Motor\r\n\/\/ 1 x Symbol Stepper Motor\r\n\/\/ 2 x EasyDriver\r\n\/\/ 2 x RC Servo Motor\r\n\/\/ 2 x Potentiometer\r\n\/\/ 1 x LED Red\r\n\/\/ 1 x Rocker Switches\r\n\/\/ 1 x Laser Red\r\n\r\n\/\/ include the library code:\r\n#include &lt;Adafruit_RGBLCDShield.h&gt;\r\n#include &lt;Servo.h&gt;\r\n\r\n\/\/ Adafruit RGB LCD Shield\r\nAdafruit_RGBLCDShield RGBLCDShield = Adafruit_RGBLCDShield();\r\n\r\n\/\/ These #defines make it easy to set the backlight color\r\n#define OFF 0x0\r\n#define RED 0x1\r\n#define YELLOW 0x3\r\n#define GREEN 0x2\r\n#define TEAL 0x6\r\n#define BLUE 0x4\r\n#define VIOLET 0x5\r\n#define WHITE 0x7\r\n\r\n\/\/ Momentary Button\r\nint yy = 0;\r\nuint8_t momentaryButton = 0;\r\n\r\n\/\/ 2 x EasyDriver\r\nint dirPinR = 2;                           \/\/ EasyDriver Right\r\nint stepPinR = 3;                          \/\/ stepPin Right\r\nint dirPinL = 4;                           \/\/ EasyDriver Left\r\nint stepPinL = 5;                          \/\/ stepPin Left\r\nint i = 0;\r\n\r\n\/\/ 2 x RC Servo Motor\r\n\/\/ 2 x Potentiometer\r\nServo isRCServo1;                          \/\/ Create servo object to control a RCServo1\r\nint servo1 = 6;                            \/\/ Servo 1\r\nint iPot1 = A0;                            \/\/ Analog Potentiometer 1\r\nint iVal1;                                 \/\/ Variable - Analog Potentiometer 1\r\nServo isRCServo2;                          \/\/ Create servo object to control a RCServo2\r\nint servo2 = 7;                            \/\/ Servo 2\r\nint iPot2 = A1;                            \/\/ Analog Potentiometer 2\r\nint iVal2;                                 \/\/ Variable - Analog Potentiometer 2\r\n\r\nvoid loop() {\r\n\r\n  \/\/ Clear\r\n  RGBLCDShield.clear();\r\n   \r\n  \/\/ Momentary Button\r\n  momentaryButton = RGBLCDShield.readButtons();\r\n\r\n  switch ( yy ) {\r\n    case 1:\r\n    \r\n      \/\/ Up\r\n      isSwitch1();\r\n      \r\n      break;\r\n    case 2:\r\n    \r\n      \/\/ Down\r\n      isSwitch2();\r\n      \r\n      break;\r\n    case 3:\r\n\r\n      \/\/ Right\r\n      isSwitch3();\r\n      \r\n      break;\r\n    case 4:\r\n\r\n      \/\/ Left\r\n      isSwitch4();\r\n      \r\n      break;\r\n    case 5:\r\n\r\n      \/\/ Stop\r\n      isSwitch5();\r\n      \r\n      break;\r\n    default:\r\n\r\n      \/\/ Stop\r\n      yy = 5;\r\n      RGBLCDShield.setBacklight(RED);\r\n      isSwitch5();\r\n\r\n   }\r\n   \r\n   if ( momentaryButton ) {\r\n    \r\n    if ( momentaryButton &amp; BUTTON_UP ) {\r\n      \r\n      yy = 1;\r\n      \/\/ Up\r\n      RGBLCDShield.setBacklight(GREEN);\r\n      \r\n    }\r\n    \r\n    if ( momentaryButton &amp; BUTTON_DOWN ) {\r\n      \r\n      yy = 2;\r\n      \/\/ Down\r\n      RGBLCDShield.setBacklight(VIOLET);\r\n      \r\n    }\r\n    \r\n    if ( momentaryButton &amp; BUTTON_LEFT ) {\r\n      \r\n      yy = 3;\r\n      \/\/ Right\r\n      RGBLCDShield.setBacklight(TEAL);\r\n      \r\n    }\r\n    \r\n    if ( momentaryButton &amp; BUTTON_RIGHT ) {\r\n\r\n      yy = 4;\r\n      \/\/ Left\r\n      RGBLCDShield.setBacklight(YELLOW);\r\n    }\r\n    \r\n    if ( momentaryButton &amp; BUTTON_SELECT ) {\r\n\r\n      yy = 5;\r\n      \/\/ Stop\r\n      RGBLCDShield.setBacklight(RED);\r\n   \r\n    }\r\n    \r\n  }\r\n  \r\n}\r\n<\/pre>\n<p><strong>getServo.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"default\" data-enlighter-title=\"getServo.ino\">\r\n\/\/ Servo\r\n\/\/ isServoSetup\r\nvoid isServoSetup() {\r\n\r\n  \/\/ 2 x RC Servo Motor\r\n  isRCServo1.attach( servo1 );\r\n  isRCServo2.attach( servo2 );\r\n  \r\n}\r\n\/\/ isServo1\r\nvoid isServo1() {\r\n\r\n  \/\/ EasyDriver\r\n  isStepperStop();\r\n   \r\n  \/\/ Potentiometer RC Servo Motor 1\r\n  iVal1 = analogRead( iPot1 );              \/\/ Reads the value of the iPot1 (Value between 0 and 1023)\r\n  iVal1 = map(iVal1, 0, 1023, 0, 180);      \/\/ Scale it to use it with the isRCServo1 (Value between 0 and 180)\r\n  isRCServo1.write( iVal1 );                \/\/ isRCServo1 sets the servo position according to the scaled value\r\n  delay(15);    \r\n\r\n  \/\/ Display\r\n  \/\/ Set the cursor to column 0, line 0  \r\n  RGBLCDShield.setCursor(0,0);\r\n  RGBLCDShield.print(&quot;RC Servo 1&quot;);         \/\/ RC Servo 1\r\n  \/\/ Set the cursor to column 0, line 1\r\n  RGBLCDShield.setCursor(0, 1);\r\n  RGBLCDShield.print( iVal1 );              \/\/ Reads the value iVal1\r\n  \r\n  delay(500);\r\n\r\n}\r\n\/\/ isServo2\r\nvoid isServo2() {\r\n\r\n  \/\/ EasyDriver\r\n  isStepperStop();\r\n   \r\n  \/\/ Potentiometer RC Servo Motor 1\r\n  iVal2 = analogRead( iPot2 );              \/\/ Reads the value of the iPot2 (Value between 0 and 1023)\r\n  iVal2 = map(iVal2, 0, 1023, 0, 180);      \/\/ Scale it to use it with the isRCServo2 (Value between 0 and 180)\r\n  isRCServo2.write( iVal2 );                \/\/ isRCServo2 sets the servo position according to the scaled value\r\n  delay(15);    \r\n\r\n  \/\/ Display\r\n  \/\/ Set the cursor to column 0, line 0  \r\n  RGBLCDShield.setCursor(0,0);\r\n  RGBLCDShield.print(&quot;RC Servo 2&quot;);         \/\/ RC Servo 2\r\n  \/\/ Set the cursor to column 0, line 1\r\n  RGBLCDShield.setCursor(0, 1);\r\n  RGBLCDShield.print( iVal2 );              \/\/ Reads the value iVal2\r\n  \r\n  delay(500);\r\n\r\n}\r\n<\/pre>\n<p><strong>getStepper.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"default\" data-enlighter-title=\"getStepper.ino\">\r\n\/\/ Stepper\r\n\/\/ isStepperSetup\r\nvoid isStepperSetup() {\r\n\r\n  \/\/ 2 x EasyDriver\r\n  pinMode(dirPinR, OUTPUT);\r\n  pinMode(stepPinR, OUTPUT);\r\n  pinMode(dirPinL, OUTPUT);\r\n  pinMode(stepPinL, OUTPUT);\r\n\r\n}\r\n\/\/ isStepper1\r\nvoid isStepper1(){\r\n\r\n   \/\/ set the cursor to column 0, line 0\r\n   RGBLCDShield.setCursor(0,0);\r\n   RGBLCDShield.print(&quot;EasyDriver&quot;);        \/\/ EasyDriver  \r\n   RGBLCDShield.setCursor(0,1);    \r\n   RGBLCDShield.print(&quot;Small Stepper&quot;);     \/\/ Small Stepper\r\n   delay(500);\r\n\r\n   \/\/ EasyDriver\r\n   digitalWrite(dirPinR, LOW);              \/\/ Set the direction.\r\n   delay(100);\r\n\r\n   for (i = 0; i&lt;300; i++)                 \/\/ Iterate for 1000 microsteps.\r\n   { \r\n\r\n     digitalWrite(stepPinR, LOW);           \/\/ This LOW to HIGH change is what creates the\r\n     digitalWrite(stepPinR, HIGH);          \/\/ &quot;Rising Edge&quot; so the easydriver knows to when to step.\r\n     delayMicroseconds(170);                \/\/ This delay time is close to top speed.\r\n\r\n   } \r\n   \r\n}\r\n\/\/ isStepper2\r\nvoid isStepper2(){\r\n\r\n   \/\/ set the cursor to column 0, line 0\r\n   RGBLCDShield.setCursor(0,0);\r\n   RGBLCDShield.print(&quot;EasyDriver&quot;);        \/\/ EasyDriver  \r\n   RGBLCDShield.setCursor(0,1);    \r\n   RGBLCDShield.print(&quot;Symbol Stepper&quot;);    \/\/ Symbol Stepper\r\n   delay(500);\r\n\r\n   \/\/ EasyDriver\r\n   digitalWrite(dirPinL, HIGH);              \/\/ Set the direction.\r\n   delay(100);\r\n\r\n   for (i = 0; i&lt;300; i++)                 \/\/ Iterate for 1000 microsteps.\r\n   { \r\n     \r\n     digitalWrite(stepPinL, LOW);           \/\/ This LOW to HIGH change is what creates the\r\n     digitalWrite(stepPinL, HIGH);          \/\/ &quot;Rising Edge&quot; so the easydriver knows to when to step.\r\n     delayMicroseconds(170);                \/\/ This delay time is close to top speed.\r\n     \r\n   } \r\n   \r\n}\r\n\/\/ isStepperStop\r\nvoid isStepperStop() {\r\n\r\n   \/\/ 2 x EasyDriver\r\n   digitalWrite(dirPinR, LOW);              \/\/ Set the direction.\r\n   delay(100);\r\n   digitalWrite(dirPinL, LOW);              \/\/ Set the direction.\r\n   delay(100);\r\n   digitalWrite(stepPinR, LOW);             \/\/ This LOW to HIGH change is what creates the\r\n   digitalWrite(stepPinL, LOW);             \/\/ This LOW to HIGH change is what creates the \r\n\r\n}\r\n<\/pre>\n<p><strong>getSwitch.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"default\" data-enlighter-title=\"getSwitch.ino\">\r\n\/\/ Switch\r\n\/\/ Switch 1\r\nvoid isSwitch1(){\r\n\r\n   \/\/ Small Stepper\r\n   yy = 1;\r\n\r\n   \/\/ EasyDriver\r\n   isStepper1();\r\n\r\n}\r\n\/\/ Switch 2\r\nvoid isSwitch2(){\r\n\r\n   \/\/ Symbol Stepper\r\n   yy = 2;\r\n\r\n   \/\/ EasyDriver\r\n   isStepper2();\r\n   \r\n}\r\n\/\/ Switch 3\r\nvoid isSwitch3(){\r\n\r\n   \/\/ RC Servo Motor 1\r\n   yy = 3;\r\n\r\n   \/\/ Potentiometer RC Servo Motor 1\r\n   isServo1();\r\n   \r\n}\r\n\/\/ Switch 4\r\nvoid isSwitch4(){\r\n\r\n   \/\/ RC Servo Motor 2\r\n   yy = 4;\r\n\r\n   \/\/ Potentiometer RC Servo Motor 2\r\n   isServo2();\r\n   \r\n}\r\n\/\/ Switch 5\r\nvoid isSwitch5(){\r\n\r\n   \/\/ Stop\r\n   yy = 5;\r\n\r\n   \/\/ set the cursor to column 0, line 0\r\n   RGBLCDShield.setCursor(0,0);\r\n   RGBLCDShield.print(&quot;Robotics&quot;);         \/\/ Robotics \r\n   RGBLCDShield.setCursor(0,1);    \r\n   RGBLCDShield.print(&quot;Stop&quot;);\r\n\r\n   delay( 500 );\r\n\r\n   \/\/ EasyDriver\r\n   isStepperStop();\r\n       \r\n}\r\n<\/pre>\n<p><strong>setup.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"default\" data-enlighter-title=\"setup.ino\">\r\n\/\/ Setup\r\nvoid setup() {\r\n\r\n  \/\/ Adafruit RGB LCD Shield\r\n  \/\/ Set up the LCD&#039;s number of columns and rows: \r\n  RGBLCDShield.begin(16, 2);\r\n  RGBLCDShield.setBacklight(GREEN);\r\n  \r\n  \/\/ Display\r\n  \/\/ Set the cursor to column 0, line 0  \r\n  RGBLCDShield.setCursor(0,0);  \r\n  RGBLCDShield.print(&quot;Don Luc Electron&quot;);         \/\/ Don luc Electron\r\n  \/\/ Set the cursor to column 0, line 1\r\n  RGBLCDShield.setCursor(0, 1);\r\n  RGBLCDShield.print(&quot;Robotics&quot;);                \/\/ EasyDriver\r\n\r\n  delay(5000);\r\n\r\n  \/\/ Clear\r\n  RGBLCDShield.clear();\r\n\r\n  \/\/ 2 x EasyDriver\r\n  isStepperSetup();\r\n  \r\n  \/\/ 2 x RC Servo Motor\r\n  isServoSetup();\r\n\r\n}\r\n<\/pre>\n<p><strong>Follow Us<\/strong><\/p>\n<p><strong>Web:<\/strong> https:\/\/www.donluc.com\/<br \/>\n<strong>Web:<\/strong> http:\/\/neosteamlabs.com\/<br \/>\n<strong>Web:<\/strong> http:\/\/www.jlpconsultants.com\/<br \/>\n<strong>YouTube:<\/strong> https:\/\/www.youtube.com\/channel\/UC5eRjrGn1CqkkGfZy0jxEdA<br \/>\n<strong>Facebook:<\/strong> https:\/\/www.facebook.com\/neosteam.labs.9\/<br \/>\n<strong>Instagram:<\/strong> https:\/\/www.instagram.com\/neosteamlabs\/<br \/>\n<strong>Pinterest:<\/strong> https:\/\/www.pinterest.com\/NeoSteamLabs\/<br \/>\n<strong>Twitter:<\/strong> https:\/\/twitter.com\/labs_steam<br \/>\n<strong>Etsy:<\/strong> https:\/\/www.etsy.com\/shop\/NeoSteamLabs<\/p>\n<p><strong>Don Luc<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8212;&#8212; &#8212;&#8212; &#8212;&#8212; &#8212;&#8212; &#8212;&#8212; &#8212;&#8212; Laser Diode A laser diode is a semiconductor device similar to a light-emitting diode in which a diode pumped directly with electrical current can create lasing conditions at the diode&#8217;s junction. Laser diodes can directly convert electrical energy into light. Due to the drop of the electron from a &#8230; <a title=\"Project #12: Robotics &#8211; Laser Diode &#8211; Mk03\" class=\"read-more\" href=\"https:\/\/www.donluc.com\/?p=2032\" aria-label=\"Read more about Project #12: Robotics &#8211; Laser Diode &#8211; Mk03\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[94,47,50,38,59,5,58,43],"tags":[86,6,14,87,19,85,98,24,9,27,95,97,96,34],"class_list":["post-2032","post","type-post","status-publish","format-standard","hentry","category-robotics-projerts","category-adafruit","category-arduino","category-digitalelectronics","category-fritzing","category-microcontrollers","category-arduino-programming","category-sparkfun","tag-adafruit","tag-arduino","tag-business","tag-display","tag-electronics","tag-fritzing","tag-laser","tag-microcontroller","tag-programming","tag-projects-2","tag-robotic","tag-servo","tag-stepper","tag-video-blog"],"_links":{"self":[{"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts\/2032","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2032"}],"version-history":[{"count":1,"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts\/2032\/revisions"}],"predecessor-version":[{"id":2039,"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts\/2032\/revisions\/2039"}],"wp:attachment":[{"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2032"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2032"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2032"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}