{"id":3262,"date":"2022-12-03T06:30:01","date_gmt":"2022-12-03T14:30:01","guid":{"rendered":"https:\/\/www.donluc.com\/?p=3262"},"modified":"2022-12-03T06:30:01","modified_gmt":"2022-12-03T14:30:01","slug":"project-25-movement-gyroscope-l3g4200d-mk03","status":"publish","type":"post","link":"https:\/\/www.donluc.com\/?p=3262","title":{"rendered":"Project #25 &#8211; Movement &#8211; Gyroscope L3G4200D &#8211; Mk03"},"content":{"rendered":"<div style=\"width: 720px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-3262-1\" width=\"720\" height=\"480\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2022\/12\/DL2210Mk07W.mp4?_=1\" \/><a href=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2022\/12\/DL2210Mk07W.mp4\">https:\/\/www.donluc.com\/wp-content\/uploads\/2022\/12\/DL2210Mk07W.mp4<\/a><\/video><\/div>\n<p>&#8212;&#8212;<\/p>\n<p>#DonLucElectronics #DonLuc #SparkFunRedBoard #Movement #Gyroscope #Arduino #Project #Fritzing #Programming #Electronics #Microcontrollers #Consultant<\/p>\n<p>&#8212;&#8212;<\/p>\n<p><a href=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2022\/12\/DL2210Mk07a.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2022\/12\/DL2210Mk07a.png\" alt=\"Gyroscope\" width=\"720\" height=\"524\" class=\"alignnone size-full wp-image-3264\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2022\/12\/DL2210Mk07a.png 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2022\/12\/DL2210Mk07a-300x218.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\/2022\/12\/DL2210Mk07b.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2022\/12\/DL2210Mk07b.png\" alt=\"Gyroscope\" width=\"720\" height=\"480\" class=\"alignnone size-full wp-image-3265\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2022\/12\/DL2210Mk07b.png 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2022\/12\/DL2210Mk07b-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\/2022\/12\/DL2210Mk07c.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2022\/12\/DL2210Mk07c.png\" alt=\"Gyroscope\" width=\"720\" height=\"480\" class=\"alignnone size-full wp-image-3266\" srcset=\"https:\/\/www.donluc.com\/wp-content\/uploads\/2022\/12\/DL2210Mk07c.png 720w, https:\/\/www.donluc.com\/wp-content\/uploads\/2022\/12\/DL2210Mk07c-300x200.png 300w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><\/p>\n<p>&#8212;&#8212;<\/p>\n<p><strong>Gyroscope<\/strong><\/p>\n<p>A gyroscope is a device used for measuring or maintaining orientation and angular velocity.It is a spinning wheel or disc in which the axis of rotation is free to assume any orientation by itself. When rotating, the orientation of this axis is unaffected by tilting or rotation of the mounting, according to the conservation of angular momentum.<\/p>\n<p>Gyroscopes based on other operating principles also exist, such as the microchip-packaged MEMS gyroscopes found in electronic devices, solid-state ring lasers, fibre optic gyroscopes, and the extremely sensitive quantum gyroscope. MEMS gyroscopes are popular in some consumer electronics, such as smartphones.<\/p>\n<p><strong>SparkFun Tri-Axis Gyro Breakout &#8211; L3G4200D<\/strong><\/p>\n<p>This is a breakout board for the L3G4200D low-power three-axis angular rate sensor. The L3G4200D is a MEMS motion sensor and has a full scale of \u00b1250 or \u00b1500 or \u00b12000 dps and is capable of measuring rates with a user selectable bandwidth. These work great in gaming and virtual reality input devices, GPS navigation systems and robotics.<\/p>\n<p><strong>DL2210Mk07<\/strong><\/p>\n<p>1 x SparkFun RedBoard Qwiic<br \/>\n1 x SparkFun Micro OLED (Qwiic)<br \/>\n1 x Qwiic Cable &#8211; 100mm<br \/>\n1 x SparkFun Tri-Axis Gyro Breakout &#8211; L3G4200D<br \/>\n1 x SparkFun Cerberus USB Cable<\/p>\n<p><strong>SparkFun RedBoard Qwiic<\/strong><\/p>\n<p>SDA &#8211; Analog A4<br \/>\nSCL &#8211; Analog A5<br \/>\nVIN &#8211; +3.3V<br \/>\nGND &#8211; GND<\/p>\n<p><strong>DL2210Mk07p.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"arduino\" data-enlighter-title=\"\">\r\n\/* ***** Don Luc Electronics \u00a9 *****\r\nSoftware Version Information\r\nProject #25 - Movement - Gyroscope L3G4200D - Mk03\r\n25-02\r\nDL2210Mk06p.ino\r\n1 x SparkFun RedBoard Qwiic\r\n1 x SparkFun Micro OLED (Qwiic)\r\n1 x Qwiic Cable - 100mm\r\n1 x SparkFun Tri-Axis Gyro Breakout - L3G4200D\r\n1 x SparkFun Cerberus USB Cable\r\n*\/\r\n\r\n\/\/ Include the Library Code\r\n\/\/ Two Wire Interface (TWI\/I2C)\r\n#include &lt;Wire.h&gt;\r\n\/\/ SparkFun Micro OLED\r\n#include &lt;SFE_MicroOLED.h&gt;\r\n\/\/ Gyroscope\r\n#include &lt;L3G4200D.h&gt;\r\n\r\n\/\/ Gyroscope\r\nL3G4200D gyroscope;\r\n\r\n\/\/ Timers\r\nunsigned long timer = 0;\r\nfloat timeStep = 0.01;\r\n\r\n\/\/ Pitch, Roll and Yaw values\r\nfloat pitch = 0;\r\nfloat roll = 0;\r\nfloat yaw = 0;\r\n\r\n\/\/ SparkFun Micro OLED\r\n#define PIN_RESET 9\r\n#define DC_JUMPER 1\r\n\/\/ I2C declaration\r\nMicroOLED oled(PIN_RESET, DC_JUMPER);\r\n\r\n\/\/ Software Version Information\r\nString sver = &quot;25-03&quot;;\r\n\r\nvoid loop() {\r\n\r\n  \/\/ Gyroscope\r\n  isGyroscope(),\r\n  \r\n  \/\/ Micro OLED\r\n  isMicroOLED();\r\n\r\n  \/\/ Wait to full timeStep period\r\n  delay((timeStep*1000) - (millis() - timer));\r\n  \r\n}\r\n<\/pre>\n<p><strong>getGyroscope.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"arduino\" data-enlighter-title=\"\">\r\n\/\/ L3G4200D Triple Axis Gyroscope\r\n\/\/ Setup Gyroscope\r\nvoid isSetupGyroscope() {\r\n\r\n  \/\/ Setup Gyroscope\r\n  \/\/ Set scale 2000 dps and 400HZ Output data rate (cut-off 50)\r\n  while(!gyroscope.begin(L3G4200D_SCALE_2000DPS, L3G4200D_DATARATE_400HZ_50))\r\n  {\r\n    \/\/ Could not find a valid L3G4200D sensor, check wiring!\r\n    delay(500);\r\n    \r\n  }\r\n\r\n  \/\/ Calibrate gyroscope. The calibration must be at rest.\r\n  \/\/ If you don&#039;t want calibrate, comment this line.\r\n  gyroscope.calibrate(100);\r\n  \r\n}\r\n\/\/ L3G4200D Gyroscope\r\nvoid isGyroscope(){\r\n\r\n  \/\/ Timer\r\n  timer = millis();\r\n\r\n  \/\/ Read normalized values\r\n  Vector norm = gyroscope.readNormalize();\r\n\r\n  \/\/ Calculate Pitch, Roll and Yaw\r\n  pitch = pitch + norm.YAxis * timeStep;\r\n  roll = roll + norm.XAxis * timeStep;\r\n  yaw = yaw + norm.ZAxis * timeStep;\r\n\r\n}\r\n<\/pre>\n<p><strong>getMicroOLED.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"arduino\" data-enlighter-title=\"\">\r\n\/\/ SparkFun Micro OLED\r\n\/\/ Setup Micro OLED\r\nvoid isSetupMicroOLED() {\r\n\r\n  \/\/ Initialize the OLED\r\n  oled.begin();\r\n  \/\/ Clear the display&#039;s internal memory\r\n  oled.clear(ALL);\r\n  \/\/ Display what&#039;s in the buffer (splashscreen)\r\n  oled.display();\r\n\r\n  \/\/ Delay 1000 ms\r\n  delay(1000);\r\n\r\n  \/\/ Clear the buffer.\r\n  oled.clear(PAGE);\r\n  \r\n}\r\n\/\/ Micro OLED\r\nvoid isMicroOLED() {\r\n\r\n  \/\/ Text Display Gyroscope\r\n  \/\/ Clear the display\r\n  oled.clear(PAGE);\r\n  \/\/ Set cursor to top-left\r\n  oled.setCursor(0, 0);\r\n  \/\/ Set font to type 0\r\n  oled.setFontType(0);\r\n  \/\/ Gyroscope\r\n  oled.print(&quot;Gyro&quot;);\r\n  oled.setCursor(0, 12);\r\n  \/\/ X\r\n  oled.print(&quot;Pit: &quot;);\r\n  oled.print(pitch);\r\n  oled.setCursor(0, 25);\r\n  \/\/ Y\r\n  oled.print(&quot;Rol: &quot;);\r\n  oled.print(roll);\r\n  oled.setCursor(0, 39);\r\n  \/\/ Z\r\n  oled.print(&quot;Yaw: &quot;);\r\n  oled.print(yaw);\r\n  oled.display();\r\n\r\n}\r\n<\/pre>\n<p><strong>setup.ino<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"arduino\" data-enlighter-title=\"\">\r\n\/\/ Setup\r\nvoid setup() {\r\n\r\n  \/\/ Give display time to power on\r\n  delay(100);\r\n  \r\n  \/\/ Set up I2C bus\r\n  Wire.begin();\r\n\r\n  \/\/ Setup Micro OLED\r\n  isSetupMicroOLED();\r\n\r\n  \/\/ L3G4200D Gyroscope\r\n  isSetupGyroscope();\r\n\r\n}\r\n<\/pre>\n<p>&#8212;&#8212;<\/p>\n<p><strong>People can contact us:<\/strong> https:\/\/www.donluc.com\/?page_id=1927<\/p>\n<p><strong>Technology Experience<\/strong><\/p>\n<ul>\n<li>Single-Board Microcontrollers (PIC, Arduino, Raspberry Pi,Espressif, etc&#8230;)<\/li>\n<li>IoT<\/li>\n<li>Wireless (Radio Frequency, Bluetooth, WiFi, Etc&#8230;)<\/li>\n<li>Robotics<\/li>\n<li>Camera and Video Capture Receiver Stationary, Wheel\/Tank and Underwater Vehicle<\/li>\n<li>Unmanned Vehicles Terrestrial and Marine<\/li>\n<li>Machine Learning<\/li>\n<li>RTOS<\/li>\n<li>Research &#038; Development (R &#038; D)<\/li>\n<\/ul>\n<p><strong>Instructor and E-Mentor<\/strong><\/p>\n<ul>\n<li>IoT<\/li>\n<li>PIC Microcontrollers<\/li>\n<li>Arduino<\/li>\n<li>Raspberry Pi<\/li>\n<li>Espressif<\/li>\n<li>Robotics<\/li>\n<\/ul>\n<p><strong>Follow Us<\/strong><\/p>\n<p><strong>Luc Paquin \u2013 Curriculum Vitae &#8211; 2022<\/strong><br \/>\nhttps:\/\/www.donluc.com\/luc\/<\/p>\n<p><strong>Web:<\/strong> https:\/\/www.donluc.com\/<br \/>\n<strong>Facebook:<\/strong> https:\/\/www.facebook.com\/neosteam.labs.9\/<br \/>\n<strong>YouTube:<\/strong> https:\/\/www.youtube.com\/channel\/UC5eRjrGn1CqkkGfZy0jxEdA<br \/>\n<strong>Twitter:<\/strong> https:\/\/twitter.com\/labs_steam<br \/>\n<strong>Pinterest:<\/strong> https:\/\/www.pinterest.com\/NeoSteamLabs\/<br \/>\n<strong>Instagram:<\/strong> https:\/\/www.instagram.com\/neosteamlabs\/<\/p>\n<p><strong>Don Luc<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8212;&#8212; #DonLucElectronics #DonLuc #SparkFunRedBoard #Movement #Gyroscope #Arduino #Project #Fritzing #Programming #Electronics #Microcontrollers #Consultant &#8212;&#8212; &#8212;&#8212; &#8212;&#8212; &#8212;&#8212; Gyroscope A gyroscope is a device used for measuring or maintaining orientation and angular velocity.It is a spinning wheel or disc in which the axis of rotation is free to assume any orientation by itself. When rotating, the &#8230; <a title=\"Project #25 &#8211; Movement &#8211; Gyroscope L3G4200D &#8211; Mk03\" class=\"read-more\" href=\"https:\/\/www.donluc.com\/?p=3262\" aria-label=\"Read more about Project #25 &#8211; Movement &#8211; Gyroscope L3G4200D &#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":[240,50,49,38,59,5,58,10,43],"tags":[6,102,4,87,19,85,252,24,249,9,27,109,33,34],"class_list":["post-3262","post","type-post","status-publish","format-standard","hentry","category-movement","category-arduino","category-consultant","category-digitalelectronics","category-fritzing","category-microcontrollers","category-arduino-programming","category-projects","category-sparkfun","tag-arduino","tag-components","tag-consultant","tag-display","tag-electronics","tag-fritzing","tag-gyroscope","tag-microcontroller","tag-movement","tag-programming","tag-projects-2","tag-sparkfun","tag-technology","tag-video-blog"],"_links":{"self":[{"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts\/3262","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=3262"}],"version-history":[{"count":2,"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts\/3262\/revisions"}],"predecessor-version":[{"id":3959,"href":"https:\/\/www.donluc.com\/index.php?rest_route=\/wp\/v2\/posts\/3262\/revisions\/3959"}],"wp:attachment":[{"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3262"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3262"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.donluc.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3262"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}