{"id":2055,"date":"2020-01-22T07:57:07","date_gmt":"2020-01-22T15:57:07","guid":{"rendered":"http:\/\/www.donluc.com\/?p=2055"},"modified":"2020-01-22T08:06:06","modified_gmt":"2020-01-22T16:06:06","slug":"project-12-robotics-unmanned-vehicles-1a-mk05","status":"publish","type":"post","link":"https:\/\/www.donluc.com\/?p=2055","title":{"rendered":"Project #12: Robotics &#8211; Unmanned Vehicles 1a &#8211; Mk05"},"content":{"rendered":"<div style=\"width: 720px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-2055-1\" width=\"720\" height=\"406\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2020\/01\/dl2001mk01.mp4?_=1\" \/><a href=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2020\/01\/dl2001mk01.mp4\">https:\/\/www.donluc.com\/wp-content\/uploads\/2020\/01\/dl2001mk01.mp4<\/a><\/video><\/div>\n<p>&#8212;&#8212;<\/p>\n<p><a href=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2020\/01\/DL2001Mk01a.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2020\/01\/DL2001Mk01a.png\" alt=\"EEPROM\" width=\"720\" height=\"533\" class=\"alignnone size-full wp-image-2057\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2020\/01\/DL2001Mk01a.png 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2020\/01\/DL2001Mk01a-300x222.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\/2020\/01\/DL2001Mk01b.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2020\/01\/DL2001Mk01b.png\" alt=\"EEPROM\" width=\"720\" height=\"480\" class=\"alignnone size-full wp-image-2058\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2020\/01\/DL2001Mk01b.png 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2020\/01\/DL2001Mk01b-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\/2020\/01\/DL2001Mk01c.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2020\/01\/DL2001Mk01c.png\" alt=\"EEPROM\" width=\"720\" height=\"480\" class=\"alignnone size-full wp-image-2059\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2020\/01\/DL2001Mk01c.png 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2020\/01\/DL2001Mk01c-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\/2020\/01\/DL2001Mk01d.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2020\/01\/DL2001Mk01d.png\" alt=\"EEPROM\" width=\"720\" height=\"480\" class=\"alignnone size-full wp-image-2060\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2020\/01\/DL2001Mk01d.png 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2020\/01\/DL2001Mk01d-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\/2020\/01\/DL2001Mk01e.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2020\/01\/DL2001Mk01e.png\" alt=\"EEPROM\" width=\"720\" height=\"480\" class=\"alignnone size-full wp-image-2061\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2020\/01\/DL2001Mk01e.png 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2020\/01\/DL2001Mk01e-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\/2020\/01\/DL2001Mk01f.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2020\/01\/DL2001Mk01f.png\" alt=\"EEPROM\" width=\"720\" height=\"480\" class=\"alignnone size-full wp-image-2062\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2020\/01\/DL2001Mk01f.png 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2020\/01\/DL2001Mk01f-300x200.png 300w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><\/p>\n<p>&#8212;&#8212;<\/p>\n<p><strong>EEPROM<\/strong><\/p>\n<p>EEPROM stands for electrically erasable programmable read-only memory and is a type of non-volatile memory used in computers, integrated in microcontrollers for smart cards and remote keyless systems, and other electronic devices to store relatively small amounts of data but allowing individual bytes to be erased and reprogrammed.<\/p>\n<p><strong>Transmitter<\/strong><\/p>\n<p>In electronics and telecommunications a transmitter or radio transmitter is an electronic device which produces radio waves with an antenna. The transmitter itself generates a radio frequency alternating current, which is applied to the antenna. When excited by this alternating current, the antenna radiates radio waves. <\/p>\n<p><strong>Receiver<\/strong><\/p>\n<p>A modern communications receiver, used in two-way radio communication stations to talk with remote locations by shortwave radio.<br \/>\nIn radio communications, a radio receiver, also known as a receiver, wireless or simply radio is an electronic device that receives radio waves and converts the information carried by them to a usable form. It is used with an antenna. The antenna intercepts radio waves (electromagnetic waves) and converts them to tiny alternating currents which are applied to the receiver, and the receiver extracts the desired information.<\/p>\n<p><strong>DL2001Mk01<\/strong><\/p>\n<p>1 x Arduino Fio<br \/>\n1 x Arduino UNO<br \/>\n1 x SparkFun FTDI Basic Breakout &#8211; 3.3V<br \/>\n1 x SparkFun Cerberus USB Cable<\/p>\n<p><strong>Arduino UNO<\/strong><\/p>\n<p>VIN &#8211; +5V<br \/>\nGND &#8211; GND<\/p>\n<p><strong>Arduino Fio<\/strong><\/p>\n<p>VIN &#8211; +3.3V<br \/>\nGND &#8211; GND<\/p>\n<p><strong>Transmitter => DT001<\/strong><\/p>\n<p><strong>DL2001Mk01p.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"default\" data-enlighter-title=\"DL2001Mk01p.ino\">\r\n\/\/ ***** Don Luc Electronics \u00a9 *****\r\n\/\/ Software Version Information\r\n\/\/ Project #12: Robotics - Unmanned Vehicles 1a - Mk05\r\n\/\/ 01-01\r\n\/\/ DL2001Mk01p.ino 12-05\r\n\/\/ Arduino UNO\r\n\/\/ Screw Shield\r\n\/\/ Adafruit RGB LCD Shield\r\n\/\/ EEPROM with Unique ID\r\n\/\/ Transmitter\r\n\r\n\/\/ Include the library code:\r\n#include &lt;Adafruit_RGBLCDShield.h&gt;\r\n\/\/ EEPROM library to read and write EEPROM with unique ID for unit\r\n#include &lt;EEPROM.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 GREEN 0x2\r\n\r\n\/\/ Momentary Button\r\nint yy = 0;\r\nuint8_t momentaryButton = 0;\r\n\r\n\/\/ Software Version Information\r\nString sver = &quot;12-05&quot;;\r\n\/\/ Unit ID Information\r\nString uid = &quot;DT001&quot;;\r\n\r\nvoid loop() {\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  \r\n  momentaryButton = RGBLCDShield.readButtons();\r\n\r\n  if ( momentaryButton ) {\r\n    \r\n    if ( momentaryButton &amp; BUTTON_UP ) {\r\n      isEEPROMw();\r\n      yy = 1;\r\n    }\r\n    \r\n    if ( momentaryButton &amp; BUTTON_DOWN ) {\r\n      isUID();\r\n      yy = 2;\r\n    }\r\n    \r\n    if ( momentaryButton &amp; BUTTON_LEFT ) {\r\n      UIDr();\r\n      yy =3;\r\n    }\r\n    \r\n    if ( momentaryButton &amp; BUTTON_RIGHT ) {\r\n      isEEPROMc();\r\n      yy = 4;\r\n    }\r\n\r\n  }\r\n\r\n  delay(1000);\r\n  \r\n  \/\/ Clear\r\n  RGBLCDShield.clear();\r\n   \r\n}\r\n<\/pre>\n<p><strong>getEEPROM.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"default\" data-enlighter-title=\"getEEPROM.ino\">\r\n\/\/ getEEPROM\r\n\/\/ Write and Read EEPROM with Unique ID for Unit\r\n\/\/ Write EEPROM with Unique ID for Unit\r\nvoid isEEPROMw() {\r\n  \r\n  \/\/ set the cursor to column 0, line 1\r\n  RGBLCDShield.setCursor(0, 1);\r\n  RGBLCDShield.print( &quot;Write&quot; ); \r\n  \r\n  \/\/ EEPROM\r\n  int incb = 0;\r\n  int v = 0;\r\n  String msg = &quot;&quot;;\r\n  String emp = &quot;&quot;;\r\n  \r\n  \/\/ Set Unit ID\r\n  \/\/ The message starts with sid then is followed by 5 characters \r\n  \/\/ First clear a string buffer\r\n  emp = &quot;&quot;;\r\n  \/\/ Loop through the 5 ID characters and write their ASCII (byte) value to the EEPROM\r\n  for (int x = 0; x &lt; 5; x++)\r\n    {\r\n       \/\/Get ASCII value of character\r\n       v = int(uid.charAt(x)); \/\/ + 5));\r\n       \/\/Add the actual character to the buffer so we can send it back to the PC\r\n       emp = emp + uid.charAt(x + 5);\r\n       \/\/Write the value to the EEPROM\r\n       EEPROM.write(x, v);\r\n    }\r\n\r\n   delay( 5000 );\r\n   \r\n}\r\n\/\/ Read EEPROM with Unique ID for Unit\r\nvoid isUID()\r\n{\r\n  \/\/ Unit ID\r\n  String ruid = &quot;&quot;;\r\n  for (int x = 0; x &lt; 5; x++)\r\n  {\r\n    ruid = ruid + char(EEPROM.read(x));\r\n  }\r\n\r\n  \/\/ set the cursor to column 0, line 1\r\n  RGBLCDShield.setCursor(0, 1);\r\n  RGBLCDShield.print( ruid ); \r\n\r\n  delay( 5000 );\r\n  \r\n}\r\n\/\/ Read uid\r\nvoid UIDr()\r\n{\r\n\r\n   \/\/ set the cursor to column 0, line 1\r\n   RGBLCDShield.setCursor(0, 1);\r\n   RGBLCDShield.print( uid );\r\n\r\n   delay( 5000 );\r\n        \r\n}\r\n\/\/ Clear EEPROM\r\nvoid isEEPROMc()\r\n{\r\n\r\n   \/\/ Clear EEPROM\r\n   for (int i = 0 ; i &lt; EEPROM.length() ; i++) {\r\n      EEPROM.write(i, 0);\r\n   }\r\n    \r\n   \/\/ set the cursor to column 0, line 1\r\n   RGBLCDShield.setCursor(0, 1);\r\n   RGBLCDShield.print( &quot;Clear EEPROM&quot; );\r\n\r\n   delay( 5000 );\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;Unique ID&quot;);                \/\/ Unique ID\r\n\r\n  delay(5000);\r\n\r\n  \/\/ Clear\r\n  RGBLCDShield.clear();\r\n\r\n}\r\n<\/pre>\n<p><strong>Receiver => DR001<\/strong><\/p>\n<p><strong>DL2001Mk01Rp.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"default\" data-enlighter-title=\"DL2001Mk01Rp.ino\">\r\n\/\/ ***** Don Luc Electronics \u00a9 *****\r\n\/\/ Software Version Information\r\n\/\/ Project #12: Robotics - Unmanned Vehicles 1a - Mk05\r\n\/\/ 01-01\r\n\/\/ DL2001Mk01Rp.ino 12-05\r\n\/\/ Arduino Fio\r\n\/\/ SparkFun FTDI Basic Breakout - 3.3V\r\n\/\/ EEPROM with Unique ID\r\n\/\/ Receiver\r\n\r\n\/\/ Include the library code:\r\n\/\/ EEPROM library to read and write EEPROM with unique ID for unit\r\n#include &lt;EEPROM.h&gt;\r\n\r\n\/\/ Software Version Information\r\nString sver = &quot;12-05&quot;;\r\n\/\/ Unit ID information\r\nString uid = &quot;DR001&quot;;\r\n\r\nvoid loop() {\r\n \r\n  \/\/ Write EEPROM with Unique ID for Unit\r\n  int incb = 0;\r\n  int v = 0;\r\n  String emp = &quot;&quot;;\r\n  String ruid = &quot;&quot;;\r\n    \r\n  \/\/ Set Unit ID\r\n  \/\/ The message starts with uid then is followed by 5 characters \r\n  \/\/ First clear a string buffer\r\n  emp = &quot;&quot;;\r\n  \/\/ Loop through the 5 ID characters and write their ASCII (byte) value to the EEPROM\r\n  for (int y = 0; y &lt; 5; y++)\r\n  {\r\n        \r\n     \/\/ Get ASCII value of character\r\n     v = int(uid.charAt(y)); \/\/ + 5));\r\n     \/\/ Add the actual character to the buffer\r\n     emp = emp + uid.charAt(y + 5);\r\n     \/\/ Write the value to the EEPROM\r\n     EEPROM.write(y, v);\r\n         \r\n  } \r\n    \r\n  \/\/ Write EEPROM with Unique ID for Unit\r\n  Serial.println( &quot;Write ID Information&quot;);\r\n\r\n  \/\/ Read ID Information\r\n  \/\/ Unit ID\r\n  for (int y = 0; y &lt; 5; y++)\r\n  {\r\n    \r\n    ruid = ruid + char(EEPROM.read(y));\r\n    \r\n  }\r\n  \r\n  \/\/ Read ID Information\r\n  Serial.print( &quot;Read ID Information: &quot;);\r\n  Serial.println( ruid );\r\n  Serial.println( &quot;Ok!&quot; );\r\n  ruid = &quot;&quot;;\r\n\r\n  delay( 5000 );\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  \/\/ Open the serial port at 9600 bps:\r\n  Serial.begin(9600);\r\n\r\n  \/\/ Serial\r\n  Serial.print( &quot;Software Version Information: &quot;);\r\n  Serial.println( sver );\r\n  Serial.print( &quot;Unit ID Information: &quot;);\r\n  Serial.println( uid );\r\n  \r\n  delay(5000);\r\n\r\n}\r\n<\/pre>\n<p><strong>Follow Us<\/strong><\/p>\n<p><strong>J. Luc Paquin \u2013 Curriculum Vitae<\/strong><br \/>\nhttps:\/\/www.donluc.com\/DLHackster\/LucPaquinCVEngMk2020a.pdf<\/p>\n<p><strong>Web:<\/strong> https:\/\/www.donluc.com\/<br \/>\n<strong>Web:<\/strong> http:\/\/www.jlpconsultants.com\/<br \/>\n<strong>Web:<\/strong> https:\/\/www.donluc.com\/DLHackster\/<br \/>\n<strong>Web:<\/strong> https:\/\/www.hackster.io\/neosteam-labs<br \/>\n<strong>Web:<\/strong> http:\/\/neosteamlabs.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; &#8212;&#8212; EEPROM EEPROM stands for electrically erasable programmable read-only memory and is a type of non-volatile memory used in computers, integrated in microcontrollers for smart cards and remote keyless systems, and other electronic devices to store relatively small amounts of data but allowing individual bytes to be erased and &#8230; <a title=\"Project #12: Robotics &#8211; Unmanned Vehicles 1a &#8211; Mk05\" class=\"read-more\" href=\"https:\/\/www.donluc.com\/?p=2055\" aria-label=\"Read more about Project #12: Robotics &#8211; Unmanned Vehicles 1a &#8211; Mk05\">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,10,43],"tags":[86,6,87,19,85,24,9,27,95,99],"class_list":["post-2055","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-projects","category-sparkfun","tag-adafruit","tag-arduino","tag-display","tag-electronics","tag-fritzing","tag-microcontroller","tag-programming","tag-projects-2","tag-robotic","tag-unmanned-vehicles"],"_links":{"self":[{"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts\/2055","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=2055"}],"version-history":[{"count":2,"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts\/2055\/revisions"}],"predecessor-version":[{"id":2064,"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts\/2055\/revisions\/2064"}],"wp:attachment":[{"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2055"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2055"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2055"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}