Adafruit
Project #19: Time – Global Positioning System – Mk04
——
#DonLucElectronics #DonLuc #Time #DS3231PrecisionRTC #SHARPMemoryDisplay #GPSReceiver #Arduino #ESP32 #SparkFunThingPlusESP32WROOM #Project #Programming #Electronics #Microcontrollers #Consultant #VideoBlog
——
——
——
——
——
Global Positioning System (GPS)
The Global Positioning System (GPS) is a satellite-based radionavigation system owned by the United States government and operated by the United States Space Force. It is one of the global navigation satellite systems (GNSS) that provides geolocation and time information to a GPS receiver anywhere on or near the Earth where there is an unobstructed line of sight to four or more GPS satellites. Obstacles such as mountains and buildings block the relatively weak GPS signals.
A satellite navigation device, colloquially called a GPS receiver, or simply a GPS, is a device that is capable of receiving information from GNSS satellites and then calculate the device’s geographical position. Using suitable software, the device may display the position on a map, and it may offer routing directions. The Global Positioning System (GPS) is one of a handful of global navigation satellite systems (GNSS) made up of a network of a minimum of 24, but currently 30, satellites placed into orbit by the U.S. Department of Defense.
A satellite navigation device can retrieve (from one or more satellite systems) location and time information in all weather conditions, anywhere on or near the Earth. GPS reception requires an unobstructed line of sight to four or more GPS satellites, and is subject to poor satellite signal conditions. Today, most standalone GPS receivers are used in automobiles. The GPS capability of smartphones may use assisted GPS (A-GPS) technology, which can use the base station or cell towers to provide a faster Time to First Fix (TTFF), especially when GPS signals are poor or unavailable. However, the mobile network part of the A-GPS technology would not be available when the smartphone is outside the range of the mobile reception network, while the GPS aspect would otherwise continue to be available.
DL2108Mk05
1 x SparkFun Thing Plus – ESP32 WROOM
1 x Adafruit SHARP Memory Display
1 x DS3231 Precision RTC FeatherWing
1 x CR1220 3V Lithium Coin Cell Battery
1 x Terminal Block Breakout FeatherWing
1 x Lithium Ion Battery – 850mAh
1 x GPS Receiver – GP-20U7
1 x Mountable Slide Switch
1 x SparkFun Rotary Switch – 10 Position
1 x Black Knob
1 x Breadboard Solderable
11 x 1K Ohm
1 x Half-Size Breadboard
1 x SparkFun Cerberus USB Cable
SparkFun Thing Plus – ESP32 WROOM
SCK – Digital 13
MSI – Digital 12
SS0 – Digital 27
GRX – Digital 16
GTX – Digital 17
SDA – Digital 23
SDL – Digital 22
ROT – Analog A0
VIN – +3.3V
GND – GND
DL2108Mk05p.ino
/* ***** Don Luc Electronics © ***** Software Version Information Project #19: Time - Global Positioning System - Mk04 08-05 DL2108Mk05p.ino 1 x SparkFun Thing Plus - ESP32 WROOM 1 x Adafruit SHARP Memory Display 1 x DS3231 Precision RTC FeatherWing 1 x CR1220 3V Lithium Coin Cell Battery 1 x Terminal Block Breakout FeatherWing 1 x Lithium Ion Battery - 850mAh 1 x GPS Receiver - GP-20U7 1 x Mountable Slide Switch 1 x SparkFun Rotary Switch – 10 Position 1 x Black Knob 1 x Breadboard Solderable 11 x 1K Ohm 1 x Half-Size Breadboard 1 x SparkFun Cerberus USB Cable */ // Include the Library Code // Wire // #include <Wire.h> // SHARP Memory Display #include <Adafruit_SharpMem.h> #include <Adafruit_GFX.h> // Date and time DS3231 RTC #include <RTClib.h> // GPS Receiver #include <TinyGPS++.h> // ESP32 Hardware Serial #include <HardwareSerial.h> // SHARP Memory Display #define SHARP_SCK 13 #define SHARP_MOSI 12 #define SHARP_SS 27 // Set the size of the display here, e.g. 144x168! Adafruit_SharpMem display(SHARP_SCK, SHARP_MOSI, SHARP_SS, 144, 168); // The currently-available SHARP Memory Display (144x168 pixels) // requires > 4K of microcontroller RAM; it WILL NOT WORK on Arduino Uno // or other <4K "classic" devices. #define BLACK 0 #define WHITE 1 // Date and time functions using a DS3231 RTC RTC_DS3231 RTC; // Date String sDate; // Time String sTime; // ESP32 HardwareSerial HardwareSerial tGPS(2); // GPS Receiver #define gpsRXPIN 16 // This one is unused and doesnt have a conection #define gpsTXPIN 17 // The TinyGPS++ object TinyGPSPlus gps; // Latitude float TargetLat; // Longitude float TargetLon; // GPS Date, Time, Speed, Altitude // GPS Date String TargetDat; // GPS Time String TargetTim; // GPS Speeds M/S String TargetSMS; // GPS Speeds Km/h String TargetSKH; // GPS Altitude Meters String TargetALT; // GPS Status String GPSSt = ""; // Rotary Switch - 10 Position // Number 1 => 10 int iRotNum = A0; // iRotVal - Value int iRotVal = 0; // Number int z = 0; // Software Version Information // Version String sver = "19-04"; void loop() { // Dates and Time timeRTC(); // isGPS isGPS(); // Rotary Switch isRot(); delay( 1000 ); }
getDisplay.ino
// SHARP Memory Display // SHARP Memory Display - UID void isDisplayUID() { // Text Display // Clear Display display.clearDisplay(); display.setRotation(4); display.setTextSize(3); display.setTextColor(BLACK); // Don Luc Electronics display.setCursor(0,10); display.println( "Don Luc" ); display.setTextSize(2); display.setCursor(0,40); display.println( "Electronics" ); // Version display.setTextSize(3); display.setCursor(0,70); display.println( "Version" ); display.setTextSize(2); display.setCursor(0,100); display.println( sver ); // Refresh display.refresh(); delay( 100 ); } // Display Date void isDisplayDate() { // Text Display Date // Clear Display display.clearDisplay(); display.setRotation(4); display.setTextSize(2); display.setTextColor(BLACK); // Date display.setCursor(0,5); display.println( "Date" ); display.setCursor(0,30); display.println( sDate ); // Time display.setCursor(0,55); display.println( "Time" ); display.setCursor(0,75); display.println( sTime ); // Refresh display.refresh(); delay( 100 ); } // Display GPS void isDisplayGPS() { // Text Display Date // Clear Display display.clearDisplay(); display.setRotation(4); display.setTextSize(2); display.setTextColor(BLACK); // GPS Status display.setCursor(0,5); display.print( "GPS: " ); display.println( GPSSt ); // Target Latitude display.setCursor(0,25); display.println( "Latitude" ); display.setCursor(0,45); display.println( TargetLat ); // Target Longitude display.setCursor(0,65); display.println( "Longitude" ); display.setCursor(0,90); display.println( TargetLon ); // Refresh display.refresh(); delay( 100 ); } // GPS Date, Time, Speed, Altitude void isDisplayGPSDate() { // Text Display Date // Clear Display display.clearDisplay(); display.setRotation(4); display.setTextSize(2); display.setTextColor(BLACK); // GPS display.setCursor(0,5); display.println( "GPS" ); // Date display.setCursor(0,30); display.println( TargetDat ); // Time display.setCursor(0,55); display.println( TargetTim ); // Speed display.setCursor(0,75); display.print( "M/S: " ); display.println( TargetSMS ); display.setCursor(0,95); display.print( "Km/h: " ); display.println( TargetSKH ); display.setCursor(0,115); display.print( "Alt: " ); display.println( TargetALT ); // Refresh display.refresh(); delay( 100 ); } // Display Z void isDisplayZ() { // Text Display Z // Clear Display display.clearDisplay(); display.setRotation(4); display.setTextSize(3); display.setTextColor(BLACK); // Z display.setCursor(0,10); display.print( "Z: " ); display.println( z ); // Refresh display.refresh(); delay( 100 ); }
getGPS.ino
// GPS Receiver // Setup GPS void setupGPS() { // Setup GPS tGPS.begin( 9600 , SERIAL_8N1 , gpsRXPIN , gpsTXPIN ); } // isGPS void isGPS(){ // Receives NEMA data from GPS receiver // This sketch displays information every time a new sentence is correctly encoded while ( tGPS.available() > 0) if (gps.encode( tGPS.read() )) { // GPS Vector Pointer Target displayInfo(); // GPS Date, Time, Speed, Altitude displayDTS(); } if (millis() > 5000 && gps.charsProcessed() < 10) { while(true); } } // GPS Vector Pointer Target void displayInfo(){ // Location if (gps.location.isValid()) { // Latitude TargetLat = gps.location.lat(); // Longitude TargetLon = gps.location.lng(); // GPS Status 2 GPSSt = "Yes"; } else { // GPS Status 0 GPSSt = "No"; } } // GPS Date, Time, Speed, Altitude void displayDTS(){ // Date TargetDat = ""; if (gps.date.isValid()) { // Date // Year TargetDat += String(gps.date.year(), DEC); TargetDat += "/"; // Month TargetDat += String(gps.date.month(), DEC); TargetDat += "/"; // Day TargetDat += String(gps.date.day(), DEC); } // Time TargetTim = ""; if (gps.time.isValid()) { // Time // Hour TargetTim += String(gps.time.hour(), DEC); TargetTim += ":"; // Minute TargetTim += String(gps.time.minute(), DEC); TargetTim += ":"; // Secound TargetTim += String(gps.time.second(), DEC); } // Speed TargetSMS = ""; TargetSKH = ""; if (gps.speed.isValid()) { // Speed // M/S int x = gps.speed.mps(); TargetSMS = String( x, DEC); // Km/h int y = gps.speed.kmph(); TargetSKH = String( y, DEC); } // Altitude TargetALT = ""; if (gps.altitude.isValid()) { // Altitude // Meters int z = gps.altitude.meters(); TargetALT = String( z, DEC); } }
getRTCDS3231.ino
// DS3231 Precision RTC // Setup RTC void setupRTC() { // DS3231 Precision RTC RTC.begin(); if (! RTC.begin()) { while (1); } // Date Time DateTime now = RTC.now(); if (RTC.lostPower()) { // Following line sets the RTC to the date & time this sketch was compiled RTC.adjust(DateTime(F(__DATE__), F(__TIME__))); // This line sets the RTC with an explicit date & time, for example to set // August 2, 2021 at 13:53:0 you would call: // RTC.adjust(DateTime(2021, 8, 2, 14, 11, 0)); } } // timeRTC void timeRTC() { // DS3231 Precision RTC sDate = ""; sTime = ""; // Date Time DateTime now = RTC.now(); // sData sDate += String(now.year(), DEC); sDate += "/"; sDate += String(now.month(), DEC); sDate += "/"; sDate += String(now.day(), DEC); // sTime sTime += String(now.hour(), DEC); sTime += ":"; sTime += String(now.minute(), DEC); sTime += ":"; sTime += String(now.second(), DEC); }
getRot.ino
// Rotary Switch // isRot - iRotVal - Value void isRot() { // Rotary Switch z = analogRead( iRotNum ); // Rotary Switch - 10 Position // Number 1 => 10 if ( z >= 3500 ) { // Z iRotVal = 10; } else if ( z >= 3000 ) { // Z iRotVal = 9; } else if ( z >= 2600 ) { // Z iRotVal = 8; } else if ( z >= 2300 ) { // Z iRotVal = 7; } else if ( z >= 1900 ) { // Z iRotVal = 6; } else if ( z >= 1500 ) { // Z iRotVal = 5; } else if ( z >= 1200 ) { // Z iRotVal = 4; } else if ( z >= 800 ) { // Z iRotVal = 3; } else if ( z >= 400 ) { // Z iRotVal = 2; } else { // Z iRotVal = 1; } // Range Value switch ( iRotVal ) { case 1: // Display Date, Time isDisplayDate(); break; case 2: // Display GPS isDisplayGPS(); break; case 3: // GPS Date, Time, Speed, Altitude //isDisplayGPSDate(); break; case 4: // GPS Display Date, Time, Speed isDisplayGPSDate(); break; case 5: // Z isDisplayZ(); break; case 6: // Z isDisplayZ(); break; case 7: // Z isDisplayZ(); break; case 8: // Z isDisplayZ(); break; case 9: // Z isDisplayZ(); break; case 10: // Z isDisplayZ(); break; } }
setup.ino
// Setup void setup() { // GPS Receiver // Setup GPS setupGPS(); // Set up I2C bus // Wire.begin(); // SHARP Display Start & Clear the Display display.begin(); // Clear Display display.clearDisplay(); // Display UID isDisplayUID(); // Setup RTC setupRTC(); delay( 5000 ); }
——
People can contact us: https://www.donluc.com/?page_id=1927
Technology Experience
- Single-Board Microcontrollers (PIC, Arduino, Raspberry Pi,Espressif, etc…)
- IoT
- Robotics
- Research & Development (R & D)
- Desktop Applications (Windows, OSX, Linux, Multi-OS, Multi-Tier, etc…)
- Mobile Applications (Android, iOS, Blackberry, Windows Mobile, Windows CE, etc…)
- Web Applications (LAMP, Scripting, Java, ASP, ASP.NET, RoR, Wakanda, etc…)
- Social Media Programming & Integration (Facebook, Twitter, YouTube, Pinterest, etc…)
- Content Management Systems (WordPress, Drupal, Joomla, Moodle, etc…)
- Bulletin Boards (phpBB, SMF, Vanilla, jobberBase, etc…)
- eCommerce (WooCommerce, OSCommerce, ZenCart, PayPal Shopping Cart, etc…)
Instructor
- PIC Microcontrollers
- Arduino
- Raspberry Pi
- Espressif
- Robotics
- DOS, Windows, OSX, Linux, iOS, Android, Multi-OS
- Linux-Apache-PHP-MySQL
Follow Us
J. Luc Paquin – Curriculum Vitae – 2021 English & Español
https://www.jlpconsultants.com/CV/LucPaquinCVEngMk2021c.pdf
https://www.jlpconsultants.com/CV/LucPaquinCVEspMk2021c.pdf
Web: https://www.donluc.com/
Web: https://www.jlpconsultants.com/
Web: https://www.donluc.com/DLE/
Web: https://www.donluc.com/DLHackster/
Web: https://www.hackster.io/neosteam-labs
Web: https://zoom.us/
Patreon: https://www.patreon.com/DonLucElectronics
Facebook: https://www.facebook.com/neosteam.labs.9/
YouTube: https://www.youtube.com/channel/UC5eRjrGn1CqkkGfZy0jxEdA
Twitter: https://twitter.com/labs_steam
Pinterest: https://www.pinterest.com/NeoSteamLabs/
Instagram: https://www.instagram.com/neosteamlabs/
Don Luc
Project #19: Time – GPS Receiver – GP-20U7 – Mk03
——
#DonLucElectronics #DonLuc #Time #DS3231PrecisionRTC #SHARPMemoryDisplay #GPSReceiver #Arduino #ESP32 #SparkFunThingPlusESP32WROOM #Project #Programming #Electronics #Microcontrollers #Consultant #VideoBlog
——
——
——
——
——
——
GPS Receiver – GP-20U7
The GP-20U7 is a compact GPS receiver with a built-in high performances all-in-one GPS chipset. The GP-20U7 accurately provides position, velocity, and time readings as well possessing high sensitivity and tracking capabilities. Thanks to the low power consumption this receiver requires, the GP-20U7 is ideal for portable applications such as tablet PCs, smart phones, and other devices requiring positioning capability.
This 56-channel GPS module, that supports a standard NMEA-0183 and uBlox 7 protocol, has low power consumption of 40mA@3.3V (max), an antenna on board, and -162dBm tracking sensitivity. With 56 channels in search mode and 22 channels “all-in-view” tracking, the GP-20U7 is quite the work horse for its size.
This one is unused and doesnt have a conection TX pin.
NMEA V3.01 Protocol
- Its output signal level is TTL: 9600bps (default), 8 bit data, 1 stop bit and no parity
- It supports the following NMEA-0183
- Messages: GGA, GLL, GSA, GSV, RMC and VTG
NMEA-0183 Output Messages
- NMEA: Record Description
- GGA: Global positoning system fixed data
- GLL: Geogrphic position – latitude / longitude
- GSA: GNSS DOP and active satellites
- GSV: GNSS satellites in view
- RMC: Recommended minimum specific GNSS data
- VTG: Course over ground and ground speed
DL2108Mk03
1 x SparkFun Thing Plus – ESP32 WROOM
1 x Adafruit SHARP Memory Display
1 x DS3231 Precision RTC FeatherWing
1 x CR1220 3V Lithium Coin Cell Battery
1 x Terminal Block Breakout FeatherWing
1 x Lithium Ion Battery – 850mAh
1 x GPS Receiver – GP-20U7
1 x Half-Size Breadboard
1 x SparkFun Cerberus USB Cable
SparkFun Thing Plus – ESP32 WROOM
SCK – Digital 13
MSI – Digital 12
SS0 – Digital 27
GRX – Digital 16
GTX – Digital 17
SDA – Digital 23
SDL – Digital 22
VIN – +3.3V
GND – GND
DL2108Mk03p.ino
/* ***** Don Luc Electronics © ***** Software Version Information Project #19: Time -GPS Receiver - GP-20U7 - Mk03 08-03 DL2108Mk03p.ino 1 x SparkFun Thing Plus - ESP32 WROOM 1 x Adafruit SHARP Memory Display 1 x DS3231 Precision RTC FeatherWing 1 x CR1220 3V Lithium Coin Cell Battery 1 x Terminal Block Breakout FeatherWing 1 x Lithium Ion Battery - 850mAh 1 x GPS Receiver - GP-20U7 1 x Half-Size Breadboard 1 x SparkFun Cerberus USB Cable */ // Include the Library Code // Wire // #include <Wire.h> // SHARP Memory Display #include <Adafruit_SharpMem.h> #include <Adafruit_GFX.h> // Date and time DS3231 RTC #include <RTClib.h> // GPS Receiver #include <TinyGPS++.h> // ESP32 Hardware Serial #include <HardwareSerial.h> // SHARP Memory Display #define SHARP_SCK 13 #define SHARP_MOSI 12 #define SHARP_SS 27 // Set the size of the display here, e.g. 144x168! Adafruit_SharpMem display(SHARP_SCK, SHARP_MOSI, SHARP_SS, 144, 168); // The currently-available SHARP Memory Display (144x168 pixels) // requires > 4K of microcontroller RAM; it WILL NOT WORK on Arduino Uno // or other <4K "classic" devices. #define BLACK 0 #define WHITE 1 // Date and time functions using a DS3231 RTC RTC_DS3231 RTC; String sDate; String sTime; // ESP32 HardwareSerial HardwareSerial tGPS(2); // GPS Receiver #define gpsRXPIN 16 // This one is unused and doesnt have a conection #define gpsTXPIN 17 // The TinyGPS++ object TinyGPSPlus gps; float TargetLat; float TargetLon; int GPSStatus = 0; String GPSSt = ""; // Software Version Information // Version String sver = "19-03"; void loop() { // Dates and Time timeRTC(); // isGPS isGPS(); // Display Date, Time, GPS isDisplayDate(); delay( 1000 ); }
getDisplay.ino
// SHARP Memory Display // SHARP Memory Display - UID void isDisplayUID() { // Text Display // Clear Display display.clearDisplay(); display.setRotation(4); display.setTextSize(3); display.setTextColor(BLACK); // Don Luc Electronics display.setCursor(0,10); display.println( "Don Luc" ); display.setTextSize(2); display.setCursor(0,40); display.println( "Electronics" ); // Version display.setTextSize(3); display.setCursor(0,70); display.println( "Version" ); display.setTextSize(2); display.setCursor(0,100); display.println( sver ); // Refresh display.refresh(); delay( 100 ); } // Display Date void isDisplayDate() { // Text Display Date // Clear Display display.clearDisplay(); display.setRotation(4); display.setTextSize(2); display.setTextColor(BLACK); // Date display.setCursor(0,5); display.println( sDate ); // Time display.setCursor(0,30); display.println( sTime ); // GPS Status display.setCursor(0,55); display.print( "GPS: " ); display.println( GPSSt ); // Target Latitude display.setCursor(0,75); display.println( "Latitude" ); display.setCursor(0,100); display.println( TargetLat ); // Target Longitude display.setCursor(0,120); display.println( "Longitude" ); display.setCursor(0,145); display.println( TargetLon ); // Refresh display.refresh(); delay( 100 ); }
getGPS.ino
// GPS Receiver // Setup GPS void setupGPS() { // Setup GPS tGPS.begin( 9600 , SERIAL_8N1 , gpsRXPIN , gpsTXPIN ); } // isGPS void isGPS(){ // Receives NEMA data from GPS receiver // This sketch displays information every time a new sentence is correctly encoded while ( tGPS.available() > 0) if (gps.encode( tGPS.read() )) { // GPS Vector Pointer Target displayInfo(); } if (millis() > 5000 && gps.charsProcessed() < 10) { while(true); } } // GPS Vector Pointer Target void displayInfo(){ // Location if (gps.location.isValid()) { // Latitude TargetLat = gps.location.lat(); // Longitude TargetLon = gps.location.lng(); // GPS Status 2 GPSStatus = 2; GPSSt = "Yes"; } else { // GPS Status 0 GPSStatus = 0; GPSSt = "No"; } }
getRTCDS3231.ino
// DS3231 Precision RTC // Setup RTC void setupRTC() { // DS3231 Precision RTC RTC.begin(); if (! RTC.begin()) { while (1); } // Date Time DateTime now = RTC.now(); if (RTC.lostPower()) { // Following line sets the RTC to the date & time this sketch was compiled RTC.adjust(DateTime(F(__DATE__), F(__TIME__))); // This line sets the RTC with an explicit date & time, for example to set // August 2, 2021 at 13:53:0 you would call: // RTC.adjust(DateTime(2021, 8, 2, 14, 11, 0)); } } // timeRTC void timeRTC() { // DS3231 Precision RTC sDate = ""; sTime = ""; // Date Time DateTime now = RTC.now(); // sData sDate += String(now.year(), DEC); sDate += "/"; sDate += String(now.month(), DEC); sDate += "/"; sDate += String(now.day(), DEC); // sTime sTime += String(now.hour(), DEC); sTime += ":"; sTime += String(now.minute(), DEC); sTime += ":"; sTime += String(now.second(), DEC); }
setup.ino
// Setup void setup() { // GPS Receiver // Setup GPS setupGPS(); // Set up I2C bus // Wire.begin(); // SHARP Display Start & Clear the Display display.begin(); // Clear Display display.clearDisplay(); // Display UID isDisplayUID(); // Setup RTC setupRTC(); delay( 5000 ); }
——
People can contact us: https://www.donluc.com/?page_id=1927
Technology Experience
- Single-Board Microcontrollers (PIC, Arduino, Raspberry Pi,Espressif, etc…)
- IoT
- Robotics
- Research & Development (R & D)
- Desktop Applications (Windows, OSX, Linux, Multi-OS, Multi-Tier, etc…)
- Mobile Applications (Android, iOS, Blackberry, Windows Mobile, Windows CE, etc…)
- Web Applications (LAMP, Scripting, Java, ASP, ASP.NET, RoR, Wakanda, etc…)
- Social Media Programming & Integration (Facebook, Twitter, YouTube, Pinterest, etc…)
- Content Management Systems (WordPress, Drupal, Joomla, Moodle, etc…)
- Bulletin Boards (phpBB, SMF, Vanilla, jobberBase, etc…)
- eCommerce (WooCommerce, OSCommerce, ZenCart, PayPal Shopping Cart, etc…)
Instructor
- PIC Microcontrollers
- Arduino
- Raspberry Pi
- Espressif
- Robotics
- DOS, Windows, OSX, Linux, iOS, Android, Multi-OS
- Linux-Apache-PHP-MySQL
Follow Us
J. Luc Paquin – Curriculum Vitae – 2021 English & Español
https://www.jlpconsultants.com/CV/LucPaquinCVEngMk2021c.pdf
https://www.jlpconsultants.com/CV/LucPaquinCVEspMk2021c.pdf
Web: https://www.donluc.com/
Web: https://www.jlpconsultants.com/
Web: https://www.donluc.com/DLE/
Web: https://www.donluc.com/DLHackster/
Web: https://www.hackster.io/neosteam-labs
Web: https://zoom.us/
Patreon: https://www.patreon.com/DonLucElectronics
Facebook: https://www.facebook.com/neosteam.labs.9/
YouTube: https://www.youtube.com/channel/UC5eRjrGn1CqkkGfZy0jxEdA
Twitter: https://twitter.com/labs_steam
Pinterest: https://www.pinterest.com/NeoSteamLabs/
Instagram: https://www.instagram.com/neosteamlabs/
Don Luc
Project #19: Time – SHARP Memory Display – Mk02
——
#DonLucElectronics #DonLuc #Time #DS3231PrecisionRTC #SHARPMemoryDisplay #Arduino #ESP32 #SparkFunThingPlusESP32WROOM #Project #Programming #Electronics #Microcontrollers #Consultant #VideoBlog
——
——
——
——
——
Adafruit SHARP Memory Display Breakout – 1.3 Inches – 168 Pixels x 144 Pixels Monochrome
The 1.3 inches 168 pixels x 144 pixels SHARP Memory LCD display is a cross between an eInk display and an LCD. It has the ultra-low power usage of eInk and the fast-refresh rates of an LCD. This model has a gray background, and pixels show up as black-on-gray for a nice e-reader type display. It does not have a backlight, but it is daylight readable. For dark/night reading you may need to illuminate the LCD area with external LEDs.
The display is write only which means that it only needs 3 pins to send data. However, the downside of a write-only display is that the entire 168×144 bits must be buffered by the microcontroller driver. That means you cannot use this with an ATmega328 or ATmega32u4. You must use a high-RAM chip such as ATSAMD21, Teensy 3, ESP8266, ESP32, etc. On those chips, this display works great and looks wonderful.
DL2108Mk02
1 x SparkFun Thing Plus – ESP32 WROOM
1 x Adafruit SHARP Memory Display
1 x DS3231 Precision RTC FeatherWing
1 x CR1220 3V Lithium Coin Cell Battery
1 x Terminal Block Breakout FeatherWing
1 x Lithium Ion Battery – 850mAh
1 x Half-Size Breadboard
1 x SparkFun Cerberus USB Cable
SparkFun Thing Plus – ESP32 WROOM
SCK – Digital 13
MSI – Digital 12
SS0 – Digital 27
SDA – Digital 23
SDL – Digital 22
VIN – +3.3V
GND – GND
DL2108Mk02p.ino
/* ***** Don Luc Electronics © ***** Software Version Information Project #19: Time -SHARP Memory Display - Mk02 08-02 DL2108Mk02p.ino 1 x SparkFun Thing Plus - ESP32 WROOM 1 x Adafruit SHARP Memory Display 1 x DS3231 Precision RTC FeatherWing 1 x CR1220 3V Lithium Coin Cell Battery 1 x Terminal Block Breakout FeatherWing 1 x Qwiic Cable - 50mm 1 x Lithium Ion Battery - 850mAh 1 x Half-Size Breadboard 1 x SparkFun Cerberus USB Cable */ // Include the Library Code #include <Wire.h> // SHARP Memory Display #include <Adafruit_SharpMem.h> #include <Adafruit_GFX.h> // Date and time DS3231 RTC #include <RTClib.h> // SHARP Memory Display #define SHARP_SCK 13 #define SHARP_MOSI 12 #define SHARP_SS 27 // Set the size of the display here, e.g. 144x168! Adafruit_SharpMem display(SHARP_SCK, SHARP_MOSI, SHARP_SS, 144, 168); // The currently-available SHARP Memory Display (144x168 pixels) // requires > 4K of microcontroller RAM; it WILL NOT WORK on Arduino Uno // or other <4K "classic" devices. #define BLACK 0 #define WHITE 1 // Set this to 1000 to get _about_ 1 second timing const int CLOCK_SPEED = 1000; // Last Draw unsigned long lastDraw = 0; // Date and time functions using a DS3231 RTC RTC_DS3231 RTC; String sDate; String sTime; // Software Version Information // Version String sver = "19-02"; void loop() { // Check if we need to update date, time if (lastDraw + CLOCK_SPEED < millis()) { // Last Draw lastDraw = millis(); // Dates and Time timeRTC(); // is OLED //isOLED(); isDisplayDate(); } }
getDisplay.ino
// SHARP Memory Display // SHARP Memory Display - UID void isDisplayUID() { // Text Display // Clear Display display.clearDisplay(); display.setRotation(4); display.setTextSize(3); display.setTextColor(BLACK); // Don Luc Electronics display.setCursor(0,10); display.println( "Don Luc" ); display.setTextSize(2); display.setCursor(0,40); display.println( "Electronics" ); // Version display.setTextSize(3); display.setCursor(0,70); display.println( "Version" ); display.setTextSize(2); display.setCursor(0,100); display.println( sver ); // Refresh display.refresh(); delay( 100 ); } // Display Date void isDisplayDate() { // Text Display Date // Clear Display display.clearDisplay(); display.setRotation(4); display.setTextSize(2); display.setTextColor(BLACK); // Date display.setCursor(0,5); display.println( sDate ); // Time display.setCursor(0,30); display.println( sTime ); // Refresh display.refresh(); delay( 100 ); }
getRTCDS3231.ino
// DS3231 Precision RTC // Setup RTC void setupRTC() { // DS3231 Precision RTC RTC.begin(); if (! RTC.begin()) { while (1); } DateTime now = RTC.now(); if (RTC.lostPower()) { // Following line sets the RTC to the date & time this sketch was compiled RTC.adjust(DateTime(F(__DATE__), F(__TIME__))); // This line sets the RTC with an explicit date & time, for example to set // August 2, 2021 at 13:53:0 you would call: // RTC.adjust(DateTime(2021, 8, 2, 14, 11, 0)); } } // timeRTC void timeRTC() { // DS3231 Precision RTC sDate = ""; sTime = ""; // Date Time DateTime now = RTC.now(); // sData sDate += String(now.year(), DEC); sDate += "/"; sDate += String(now.month(), DEC); sDate += "/"; sDate += String(now.day(), DEC); // sTime sTime += String(now.hour(), DEC); sTime += ":"; sTime += String(now.minute(), DEC); sTime += ":"; sTime += String(now.second(), DEC); }
setup.ino
// Setup void setup() { // Give display time to power on delay(100); // Set up I2C bus Wire.begin(); // SHARP Display Start & Clear the Display display.begin(); // Clear Display display.clearDisplay(); // Display UID isDisplayUID(); // Setup RTC setupRTC(); delay( 5000 ); }
People can contact us: https://www.donluc.com/?page_id=1927
Technology Experience
- Single-Board Microcontrollers (PIC, Arduino, Raspberry Pi,Espressif, etc…)
- IoT
- Robotics
- Research & Development (R & D)
- Desktop Applications (Windows, OSX, Linux, Multi-OS, Multi-Tier, etc…)
- Mobile Applications (Android, iOS, Blackberry, Windows Mobile, Windows CE, etc…)
- Web Applications (LAMP, Scripting, Java, ASP, ASP.NET, RoR, Wakanda, etc…)
- Social Media Programming & Integration (Facebook, Twitter, YouTube, Pinterest, etc…)
- Content Management Systems (WordPress, Drupal, Joomla, Moodle, etc…)
- Bulletin Boards (phpBB, SMF, Vanilla, jobberBase, etc…)
- eCommerce (WooCommerce, OSCommerce, ZenCart, PayPal Shopping Cart, etc…)
Instructor
- PIC Microcontrollers
- Arduino
- Raspberry Pi
- Espressif
- Robotics
- DOS, Windows, OSX, Linux, iOS, Android, Multi-OS
- Linux-Apache-PHP-MySQL
Follow Us
J. Luc Paquin – Curriculum Vitae – 2021 English & Español
https://www.jlpconsultants.com/CV/LucPaquinCVEngMk2021c.pdf
https://www.jlpconsultants.com/CV/LucPaquinCVEspMk2021c.pdf
Web: https://www.donluc.com/
Web: https://www.jlpconsultants.com/
Web: https://www.donluc.com/DLE/
Web: https://www.donluc.com/DLHackster/
Web: https://www.hackster.io/neosteam-labs
Web: https://zoom.us/
Patreon: https://www.patreon.com/DonLucElectronics
Facebook: https://www.facebook.com/neosteam.labs.9/
YouTube: https://www.youtube.com/channel/UC5eRjrGn1CqkkGfZy0jxEdA
Twitter: https://twitter.com/labs_steam
Pinterest: https://www.pinterest.com/NeoSteamLabs/
Instagram: https://www.instagram.com/neosteamlabs/
Don Luc
Project #19: Time – DS3231 Precision RTC – Mk01
——
#DonLucElectronics #DonLuc #Time #DS3231PrecisionRTC #Arduino #ESP32 #SparkFunThingPlusESP32WROOM #Project #Programming #Electronics #Microcontrollers #Consultant #VideoBlog
——
——
——
——
——
DS3231 Precision RTC FeatherWing
A Feather board without ambition is a Feather board without FeatherWings. This is the DS3231 Precision RTC FeatherWing: it adds an extremely accurate I2C-integrated Real Time Clock (RTC) with a Temperature Compensated Crystal Oscillator (TCXO) to any Feather main board. This RTC is the most precise you can get in a small, low power package. Most RTCs use an external 32kHz timing crystal that is used to keep time with low current draw. And that’s all well and good, but those crystals have slight drift, particularly when the temperature changes. This RTC is in a beefy package because the crystal is inside the chip. And right next to the integrated crystal is a temperature sensor. That sensor compensates for the frequency changes by adding or removing clock ticks so that the timekeeping stays on schedule.
SparkFun Micro OLED Breakout (Qwiic)
The SparkFun Qwiic Micro OLED Breakout is a Qwiic-enabled version of our popular Micro OLED display. The small monochrome, blue-on-black OLED screen presents incredibly clear images for your viewing pleasure. The OLED display is crisp, and you can fit a deceivingly large amount of graphics on there. This breakout is perfect for adding graphics to your next project and displaying diagnostic information without resorting to a serial output, all with the ease of use of our own Qwiic Connect System.
DL2108Mk01
1 x SparkFun Thing Plus – ESP32 WROOM
1 x SparkFun Micro OLED Breakout (Qwiic)
1 x DS3231 Precision RTC FeatherWing
1 x CR1220 3V Lithium Coin Cell Battery
1 x Terminal Block Breakout FeatherWing
1 x Qwiic Cable – 50mm
1 x Lithium Ion Battery – 850mAh
1 x Half-Size Breadboard
1 x SparkFun Cerberus USB Cable
SparkFun Thing Plus – ESP32 WROOM
DIS – Qwiic
SDA – Digital 23
SDL – Digital 22
VIN – +3.3V
GND – GND
DL2108Mk01p.ino
/* ***** Don Luc Electronics © ***** Software Version Information Project #19: Time - DS3231 Precision RTC - Mk01 08-01 DL2108Mk01p.ino 1 x SparkFun Thing Plus - ESP32 WROOM 1 x SparkFun Micro OLED Breakout (Qwiic) 1 x DS3231 Precision RTC FeatherWing 1 x CR1220 3V Lithium Coin Cell Battery 1 x Terminal Block Breakout FeatherWing 1 x Qwiic Cable - 50mm 1 x Lithium Ion Battery - 850mAh 1 x SparkFun Cerberus USB Cable */ // Include the Library Code #include <Wire.h> // OLED #include <SFE_MicroOLED.h> // Date and time DS3231 RTC #include <RTClib.h> // OLED // DC Jumper #define DC_JUMPER 1 // Optional - Connect RST on display to pin 9 on Arduino #define PIN_RESET 9 MicroOLED oled(PIN_RESET, DC_JUMPER); // Set this to 1000 to get _about_ 1 second timing const int CLOCK_SPEED = 1000; // Last Draw unsigned long lastDraw = 0; // Date and time functions using a DS3231 RTC RTC_DS3231 RTC; String sDate; String sTime; // Software Version Information // Version String sver = "19-01"; void loop() { // Check if we need to update date, time if (lastDraw + CLOCK_SPEED < millis()) { // Last Draw lastDraw = millis(); // Dates and Time timeRTC(); // is OLED isOLED(); } }
getOLED.ino
// OLED // Setup OLED void setupOLED(){ // Initialize the OLED oled.begin(); // Clear the display's internal memory oled.clear(PAGE); // Clear the library's display buffer oled.clear(ALL); // Display what's in the buffer oled.display(); } // isOLED void isOLED(){ // Clear the buffer oled.clear(PAGE); // Set font to type 0 oled.setFontType(0); // Date // Set cursor to top-left oled.setCursor(0, 18); oled.print( sDate ); // Time // Set cursor to top-left oled.setCursor(0, 32); oled.print( sTime ); // Draw the memory buffer oled.display(); }
getRTCDS3231.ino
// DS3231 Precision RTC // Setup RTC void setupRTC() { // DS3231 Precision RTC RTC.begin(); if (! RTC.begin()) { while (1); } DateTime now = RTC.now(); if (RTC.lostPower()) { // Following line sets the RTC to the date & time this sketch was compiled RTC.adjust(DateTime(F(__DATE__), F(__TIME__))); // This line sets the RTC with an explicit date & time, for example to set // August 2, 2021 at 13:53:0 you would call: // RTC.adjust(DateTime(2021, 8, 2, 14, 11, 0)); } } // timeRTC void timeRTC() { // DS3231 Precision RTC sDate = ""; sTime = ""; // Date Time DateTime now = RTC.now(); // sData sDate += String(now.year(), DEC); sDate += "/"; sDate += String(now.month(), DEC); sDate += "/"; sDate += String(now.day(), DEC); // sTime sTime += String(now.hour(), DEC); sTime += ":"; sTime += String(now.minute(), DEC); sTime += ":"; sTime += String(now.second(), DEC); }
setup.ino
// Setup void setup() { // Give display time to power on delay(100); // Set up I2C bus Wire.begin(); // Initialize the OLED setupOLED(); // Setup RTC setupRTC(); }
——
People can contact us: https://www.donluc.com/?page_id=1927
Technology Experience
- Single-Board Microcontrollers (PIC, Arduino, Raspberry Pi,Espressif, etc…)
- IoT
- Robotics
- Research & Development (R & D)
- Desktop Applications (Windows, OSX, Linux, Multi-OS, Multi-Tier, etc…)
- Mobile Applications (Android, iOS, Blackberry, Windows Mobile, Windows CE, etc…)
- Web Applications (LAMP, Scripting, Java, ASP, ASP.NET, RoR, Wakanda, etc…)
- Social Media Programming & Integration (Facebook, Twitter, YouTube, Pinterest, etc…)
- Content Management Systems (WordPress, Drupal, Joomla, Moodle, etc…)
- Bulletin Boards (phpBB, SMF, Vanilla, jobberBase, etc…)
- eCommerce (WooCommerce, OSCommerce, ZenCart, PayPal Shopping Cart, etc…)
Instructor
- PIC Microcontrollers
- Arduino
- Raspberry Pi
- Espressif
- Robotics
- DOS, Windows, OSX, Linux, iOS, Android, Multi-OS
- Linux-Apache-PHP-MySQL
Follow Us
J. Luc Paquin – Curriculum Vitae – 2021 English & Español
https://www.jlpconsultants.com/CV/LucPaquinCVEngMk2021c.pdf
https://www.jlpconsultants.com/CV/LucPaquinCVEspMk2021c.pdf
Web: https://www.donluc.com/
Web: https://www.jlpconsultants.com/
Web: https://www.donluc.com/DLE/
Web: https://www.donluc.com/DLHackster/
Web: https://www.hackster.io/neosteam-labs
Web: https://zoom.us/
Patreon: https://www.patreon.com/DonLucElectronics
Facebook: https://www.facebook.com/neosteam.labs.9/
YouTube: https://www.youtube.com/channel/UC5eRjrGn1CqkkGfZy0jxEdA
Twitter: https://twitter.com/labs_steam
Pinterest: https://www.pinterest.com/NeoSteamLabs/
Instagram: https://www.instagram.com/neosteamlabs/
Don Luc
#17 – Meditation – Goggles NeoPixel Meditation – Goggles – Mk07
——
——
——
——
#donluc #meditation #gogglesmeditation #musicshield #neopixels #arduino #sparkfun #project #programming #electronics #microcontrollers #consultant #zoom #patreon #videoblog
Goggles
Goggles are forms of protective eyewear that usually enclose or protect the area surrounding the eye in order to prevent particulates, water or chemicals from striking the eyes. They are used in chemistry laboratories and in woodworking. They are often used in snow sports as well, and in swimming. Goggles are often worn when using power tools such as drills or chainsaws to prevent flying particles from damaging the eyes.
Welding goggles provide a degree of eye protection while some forms of welding and cutting are being done. They are intended to protect the eyes not only from the heat and optical radiation produced by the welding, such as the intense ultraviolet light produced by an electric arc, but also from sparks or debris.
Goggles NeoPixel Meditation
Meditation is a practice where an individual uses a technique or focusing the mind on a particular object, thought, activity, song, or video to train attention and awareness, and achieve a mentally clear and emotionally calm and stable state.
First Luc researched the scientific principles behind available biofeedback technologies, the ways to design and build the actual sensors Goggles NeoPixel Meditation. To find the solution yielding the best results light and music, constructed proof-of-concept prototypes.
DL2103Mk03
1 x Arduino Uno – R3
1 x ProtoScrewShield
1 x Music Shield V1.1
1 x NeoPixel Stick – 8 x 5050 RGB LED with Integrated Drivers
1 x microSD Card – 2GB
1 x Panel Mount 1K potentiometer
2 x Knob
1 x SparkFun Rotary Switch – 10 Position
1 x SparkFun Rotary Switch Breakout
1 x Breadboard Solderable
11 x 1K Ohm
1 x Hamburger Mini Speaker
17 x Wire Solid Core – 22 AWG
1 x Ethernet Cable Cat 5 – 2 Metres
1 x Goggles
1 x Half-Size Breadboard
1 x SparkFun Cerberus USB Cable
Arduino Uno – R3
RW0 – Analog A4
PO0 – Analog A5
NP1 – Digital 1
MB0 – RST
VIN – +5V
GND – GND
DL2103Mk03p.ino
// ***** Don Luc Electronics © ***** // Software Version Information // #17 - Meditation - Goggles NeoPixel Meditation - Goggles - Mk07 // 03-03 // DL2103Mk03p.ino 17-07 // DL2103Mk03 // 1 x Arduino Uno - R3 // 1 x ProtoScrewShield // 1 x Music Shield V1.1 // 1 x NeoPixel Stick - 8 x 5050 RGB LED with Integrated Drivers // 1 x microSD Card - 2GB // 1 x Panel Mount 1K potentiometer // 11 x Knob // 1 x SparkFun Rotary Switch - 10 Position // 1 x SparkFun Rotary Switch Breakout // 1 x Breadboard Solderable // 11 x 1K Ohm // 1 x Hamburger Mini Speaker // 17 x Wire Solid Core - 22 AWG // 1 x Ethernet Cable Cat 5 - 2 Metres // 1 x Goggles // 1 x Half-Size Breadboard // 1 x SparkFun Cerberus USB Cable // Include the Library Code // NeoPixel #include <Adafruit_NeoPixel.h> // Fat 16 #include <Fat16.h> #include <Fat16Util.h> // New SPI #include <NewSPI.h> // Arduino #include <arduino.h> // Music Player #include "pins_config.h" #include "vs10xx.h" #include "newSDLib.h" #include "MusicPlayer.h" // NeoPixels #define PIN 1 // How many NeoPixels are attached to the Arduino #define NUMPIXELS 8 Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); // Color // Red int red = 0; // Green int green = 0; // Blue int blue = 0; // Panel Mount 1K potentiometer // Brighten int BrightenValue = 0; // Color const int iSensorColor = A5; int y = 0; int ColorVal = 0; // Rotary Switch - 10 Position // Number 1 => 10 int iRotNum = A4; // iRotVal - Value int iRotVal = 0; // Number int z = 0; int x = 0; // Music Player MusicPlayer myplayer; // Software Version Information String sver = "17-07"; void loop() { // Rotary Switch isRot(); }
getNeopix.ino
// Neopix void isNeopix() { for(int i=0; i<NUMPIXELS; i++){ // Neopix // BrightenValue = 40 BrightenValue = 40; pixels.setBrightness( BrightenValue ); // The pixels.Color takes RGB values, from 0,0,0 up to 255,255,255 pixels.setPixelColor(i, pixels.Color(red,green,blue)); // This sends the updated pixel color to the hardware pixels.show(); } } // Range Color void isRangeColor() { // Range Color ColorVal = analogRead( iSensorColor ); y = (ColorVal / 127); switch ( y ) { case 0: // Blue red = 0; green = 102; blue = 204; isNeopix(); break; case 1: // Yellow red = 255; green = 255; blue = 0; isNeopix(); break; case 2: // Pink red = 255; green = 153; blue = 203; isNeopix(); break; case 3: // White red = 255; green = 255; blue = 255; isNeopix(); break; case 4: // Green red = 0; green = 255; blue = 0; isNeopix(); break; case 5: // Orange red = 255; green = 102; blue = 0; isNeopix(); break; case 6: // Violet red = 204; green = 102; blue = 204; isNeopix(); break; case 7: // Red red = 255; green = 0; blue = 0; isNeopix(); break; } }
getRot.ino
// Rotary Switch // isRot - iRotVal - Value void isRot() { // Rotary Switch z = analogRead( iRotNum ); x = map(z, 0, 4095, 0, 9); iRotVal = map(z, 0, 1023, 0, 10); // Range Value switch ( iRotVal ) { case 0: // Range Color isRangeColor(); break; case 1: // Music // Add To Playlist // 3:18 myplayer.addToPlaylist("DLEMk001.mp3"); // 2:47 myplayer.addToPlaylist("DLEMk002.mp3"); // 4.34 myplayer.addToPlaylist("DLEMk003.mp3"); // There are two songs in the playlist // 10:37 myplayer.playList(); while(1); break; case 2: // Music // Add To Playlist // 22:53 myplayer.addToPlaylist("DLEMk004.mp3"); // There are two songs in the playlist // 22:53 myplayer.playList(); while(1); break; case 3: // Music // Add To Playlist // 4:18 myplayer.addToPlaylist("DLEMk005.mp3"); // 4:20 myplayer.addToPlaylist("DLEMk006.mp3"); // There are two songs in the playlist // 8:38 myplayer.playList(); while(1); break; case 4: // Music // Add To Playlist // 9:14 myplayer.addToPlaylist("DLEMk007.mp3"); // 7:52 myplayer.addToPlaylist("DLEMk008.mp3"); // There are two songs in the playlist // 17:07 myplayer.playList(); while(1); break; case 5: // Music // Add To Playlist // 4:37 myplayer.addToPlaylist("DLEMk009.mp3"); // There are two songs in the playlist // 4:37 myplayer.playList(); while(1); break; case 6: // Music // Add To Playlist // 8:40 myplayer.addToPlaylist("DLEMk010.mp3"); // 8:40 myplayer.playList(); while(1); break; case 7: // Music // Add To Playlist // 1:31 myplayer.addToPlaylist("DLEMk011.mp3"); // 3:29 myplayer.addToPlaylist("DLEMk012.mp3"); // There are two songs in the playlist // 5:00 myplayer.playList(); while(1); break; case 8: // Music // Add To Playlist // 6:14 myplayer.addToPlaylist("DLEMk013.mp3"); // 5:17 myplayer.addToPlaylist("DLEMk014.mp3"); // There are two songs in the playlist // 11:31 myplayer.playList(); while(1); break; case 9: // Music // Add To Playlist // 6:30 myplayer.addToPlaylist("DLEMk015.mp3"); // 3:00 myplayer.addToPlaylist("DLEMk016.mp3"); // There are two songs in the playlist // 9:30 myplayer.playList(); while(1); break; } }
setup.ino
// Setup void setup() { // This initializes the NeoPixel library pixels.begin(); delay(50); // Range Color isRangeColor(); // Music Player // Will initialize the hardware and set default mode to be normal myplayer.begin(); }
Music 01 – 10m 37s
DLEMk001.mp3
DLEMk002.mp3
DLEMk003.mp3
Music 02 – 22m 53s
DLEMk004.mp3
Music 03 – 8m 38s
DLEMk005.mp3
DLEMk006.mp3
Music 04 – 17m 07s
DLEMk007.mp3
DLEMk008.mp3
Music 05 – 4m 37s
DLEMk009.mp3
Music 06 – 8m 40s
DLEMk010.mp3
Music 07 – 5m 00s
DLEMk011.mp3
DLEMk012.mp3
Music 08 – 11m 31s
DLEMk013.mp3
DLEMk014.mp3
Music 09 – 9m 30s
DLEMk015.mp3
DLEMk016.mp3
People can contact us: https://www.donluc.com/?page_id=1927
Technology Experience
- Single-Board Microcontrollers (PIC, Arduino, Raspberry Pi,Espressif, etc…)
- Robotics
- Research & Development (R & D)
- Desktop Applications (Windows, OSX, Linux, Multi-OS, Multi-Tier, etc…)
- Mobile Applications (Android, iOS, Blackberry, Windows Mobile, Windows CE, etc…)
- Web Applications (LAMP, Scripting, Java, ASP, ASP.NET, RoR, Wakanda, etc…)
- Social Media Programming & Integration (Facebook, Twitter, YouTube, Pinterest, etc…)
- Content Management Systems (WordPress, Drupal, Joomla, Moodle, etc…)
- Bulletin Boards (phpBB, SMF, Vanilla, jobberBase, etc…)
- eCommerce (WooCommerce, OSCommerce, ZenCart, PayPal Shopping Cart, etc…)
Instructor
- PIC Microcontrollers
- Arduino
- Raspberry Pi
- Espressif
- Robotics
- DOS, Windows, OSX, Linux, iOS, Android, Multi-OS
- Linux-Apache-PHP-MySQL
Follow Us
J. Luc Paquin – Curriculum Vitae
https://www.donluc.com/DLE/LucPaquinCVEngMk2021a.pdf
Web: https://www.donluc.com/
Web: http://www.jlpconsultants.com/
Web: https://www.donluc.com/DLE/
Web: https://www.donluc.com/DLHackster/
Web: https://www.hackster.io/neosteam-labs
Web: https://zoom.us/
Patreon: https://www.patreon.com/DonLucElectronics
Facebook: https://www.facebook.com/neosteam.labs.9/
YouTube: https://www.youtube.com/channel/UC5eRjrGn1CqkkGfZy0jxEdA
Twitter: https://twitter.com/labs_steam
Pinterest: https://www.pinterest.com/NeoSteamLabs/
Instagram: https://www.instagram.com/neosteamlabs/
Don Luc
#17 – Meditation – Glasses LED Meditation – NeoPixel Stick – Mk06
——
#donluc #meditation #glassesledmeditation #musicshield #neopixels #arduino #sparkfun #project #programming #electronics #microcontrollers #consultant #zoom #patreon #videoblog
——
——
——
——
NeoPixel Stick – 8 x 5050 RGB LED with Integrated Drivers
Make your own little LED strip arrangement with this stick of NeoPixel LEDs. We crammed 8 of the tiny 5050 (5mm x 5mm) smart RGB LEDs onto a PCB with mounting holes and a chainable design. Use only one microcontroller pin to control as many as you can chain together! Each LED is addressable as the driver chip is inside the LED. Each one has ~18mA constant current drive so the color will be very consistent even if the voltage varies, and no external choke resistors are required making the design slim. Power the whole thing with 5VDC (4-7V works).
The LEDs are ‘chainable’ by connecting the output of one stick into the input of another. There is a single data line with a very timing-specific protocol. Since the protocol is very sensitive to timing, it requires a real-time microconroller such as an AVR, Arduino, PIC, mbed, etc. It cannot be used with a Linux-based microcomputer or interpreted microcontroller such as the netduino or Basic Stamp. Our wonderfully-written Neopixel library for Arduino supports these pixels. As it requires hand-tuned assembly it is only for AVR cores but others may have ported this chip driver code so please google around. An 8MHz or faster processor is required.
DL2103Mk02
1 x Arduino Uno – R3
1 x ProtoScrewShield
1 x Music Shield V1.1
1 x NeoPixel Stick – 8 x 5050 RGB LED with Integrated Drivers
1 x microSD Card – 2GB
1 x Panel Mount 1K potentiometer
2 x Knob
1 x SparkFun Rotary Switch – 10 Position
1 x SparkFun Rotary Switch Breakout
1 x Breadboard Solderable
11 x 1K Ohm
1 x Hamburger Mini Speaker
17 x Wire Solid Core – 22 AWG
1 x Ethernet Cable Cat 5 – 2 Metres
1 x Half-Size Breadboard
1 x SparkFun Cerberus USB Cable
Arduino Uno – R3
RW0 – Analog A4
PO0 – Analog A5
NP1 – Digital 1
MB0 – RST
VIN – +5V
GND – GND
DL2103Mk02p.ino
// ***** Don Luc Electronics © ***** // Software Version Information // #17 - Meditation - Glasses LED Meditation - NeoPixel Stick - Mk06 // 03-02 // DL2103Mk02p.ino 17-06 // DL2103Mk02 // 1 x Arduino Uno - R3 // 1 x ProtoScrewShield // 1 x Music Shield V1.1 // 1 x NeoPixel Stick - 8 x 5050 RGB LED with Integrated Drivers // 1 x microSD Card - 2GB // 1 x Panel Mount 1K potentiometer // 11 x Knob // 1 x SparkFun Rotary Switch - 10 Position // 1 x SparkFun Rotary Switch Breakout // 1 x Breadboard Solderable // 11 x 1K Ohm // 1 x Hamburger Mini Speaker // 17 x Wire Solid Core - 22 AWG // 1 x Ethernet Cable Cat 5 - 2 Metres // 1 x Half-Size Breadboard // 1 x SparkFun Cerberus USB Cable // Include the Library Code // NeoPixel #include <Adafruit_NeoPixel.h> // Fat 16 #include <Fat16.h> #include <Fat16Util.h> // New SPI #include <NewSPI.h> // Arduino #include <arduino.h> // Music Player #include "pins_config.h" #include "vs10xx.h" #include "newSDLib.h" #include "MusicPlayer.h" // NeoPixels #define PIN 1 // How many NeoPixels are attached to the Arduino #define NUMPIXELS 8 Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); // Color // Red int red = 0; // Green int green = 0; // Blue int blue = 0; // Panel Mount 1K potentiometer // Brighten int BrightenValue = 0; // Color const int iSensorColor = A5; int y = 0; int ColorVal = 0; // Rotary Switch - 10 Position // Number 1 => 10 int iRotNum = A4; // iRotVal - Value int iRotVal = 0; // Number int z = 0; int x = 0; // Music Player MusicPlayer myplayer; // Software Version Information String sver = "17-06"; void loop() { // Rotary Switch isRot(); }
getNeopix.ino
// Neopix void isNeopix() { for(int i=0; i<NUMPIXELS; i++){ // Neopix // BrightenValue = 40 BrightenValue = 40; pixels.setBrightness( BrightenValue ); // The pixels.Color takes RGB values, from 0,0,0 up to 255,255,255 pixels.setPixelColor(i, pixels.Color(red,green,blue)); // This sends the updated pixel color to the hardware pixels.show(); } } // Range Color void isRangeColor() { // Range Color ColorVal = analogRead( iSensorColor ); y = (ColorVal / 127); switch ( y ) { case 0: // Blue red = 0; green = 102; blue = 204; isNeopix(); break; case 1: // Yellow red = 255; green = 255; blue = 0; isNeopix(); break; case 2: // Pink red = 255; green = 153; blue = 203; isNeopix(); break; case 3: // White red = 255; green = 255; blue = 255; isNeopix(); break; case 4: // Green red = 0; green = 255; blue = 0; isNeopix(); break; case 5: // Orange red = 255; green = 102; blue = 0; isNeopix(); break; case 6: // Violet red = 204; green = 102; blue = 204; isNeopix(); break; case 7: // Red red = 255; green = 0; blue = 0; isNeopix(); break; } }
getRot.ino
// Rotary Switch // isRot - iRotVal - Value void isRot() { // Rotary Switch z = analogRead( iRotNum ); x = map(z, 0, 4095, 0, 9); iRotVal = map(z, 0, 1023, 0, 10); // Range Value switch ( iRotVal ) { case 0: // Range Color isRangeColor(); break; case 1: // Music // Add To Playlist // 3:18 myplayer.addToPlaylist("DLEMk001.mp3"); // 2:47 myplayer.addToPlaylist("DLEMk002.mp3"); // 4.34 myplayer.addToPlaylist("DLEMk003.mp3"); // There are two songs in the playlist // 10:37 myplayer.playList(); while(1); break; case 2: // Music // Add To Playlist // 22:53 myplayer.addToPlaylist("DLEMk004.mp3"); // There are two songs in the playlist // 22:53 myplayer.playList(); while(1); break; case 3: // Music // Add To Playlist // 4:18 myplayer.addToPlaylist("DLEMk005.mp3"); // 4:20 myplayer.addToPlaylist("DLEMk006.mp3"); // There are two songs in the playlist // 8:38 myplayer.playList(); while(1); break; case 4: // Music // Add To Playlist // 9:14 myplayer.addToPlaylist("DLEMk007.mp3"); // 7:52 myplayer.addToPlaylist("DLEMk008.mp3"); // There are two songs in the playlist // 17:07 myplayer.playList(); while(1); break; case 5: // Music // Add To Playlist // 4:37 myplayer.addToPlaylist("DLEMk009.mp3"); // There are two songs in the playlist // 4:37 myplayer.playList(); while(1); break; case 6: // Music // Add To Playlist // 8:40 myplayer.addToPlaylist("DLEMk010.mp3"); // 8:40 myplayer.playList(); while(1); break; case 7: // Music // Add To Playlist // 1:31 myplayer.addToPlaylist("DLEMk011.mp3"); // 3:29 myplayer.addToPlaylist("DLEMk012.mp3"); // There are two songs in the playlist // 5:00 myplayer.playList(); while(1); break; case 8: // Music // Add To Playlist // 6:14 myplayer.addToPlaylist("DLEMk013.mp3"); // 5:17 myplayer.addToPlaylist("DLEMk014.mp3"); // There are two songs in the playlist // 11:31 myplayer.playList(); while(1); break; case 9: // Music // Add To Playlist // 6:30 myplayer.addToPlaylist("DLEMk015.mp3"); // 3:00 myplayer.addToPlaylist("DLEMk016.mp3"); // There are two songs in the playlist // 9:30 myplayer.playList(); while(1); break; } }
setup.ino
// Setup void setup() { // This initializes the NeoPixel library pixels.begin(); delay(50); // Range Color isRangeColor(); // Music Player // Will initialize the hardware and set default mode to be normal myplayer.begin(); }
Music 01 – 10m 37s
DLEMk001.mp3
DLEMk002.mp3
DLEMk003.mp3
Music 02 – 22m 53s
DLEMk004.mp3
Music 03 – 8m 38s
DLEMk005.mp3
DLEMk006.mp3
Music 04 – 17m 07s
DLEMk007.mp3
DLEMk008.mp3
Music 05 – 4m 37s
DLEMk009.mp3
Music 06 – 8m 40s
DLEMk010.mp3
Music 07 – 5m 00s
DLEMk011.mp3
DLEMk012.mp3
Music 08 – 11m 31s
DLEMk013.mp3
DLEMk014.mp3
Music 09 – 9m 30s
DLEMk015.mp3
DLEMk016.mp3
People can contact us: https://www.donluc.com/?page_id=1927
Technology Experience
- Single-Board Microcontrollers (PIC, Arduino, Raspberry Pi,Espressif, etc…)
- Robotics
- Research & Development (R & D)
- Desktop Applications (Windows, OSX, Linux, Multi-OS, Multi-Tier, etc…)
- Mobile Applications (Android, iOS, Blackberry, Windows Mobile, Windows CE, etc…)
- Web Applications (LAMP, Scripting, Java, ASP, ASP.NET, RoR, Wakanda, etc…)
- Social Media Programming & Integration (Facebook, Twitter, YouTube, Pinterest, etc…)
- Content Management Systems (WordPress, Drupal, Joomla, Moodle, etc…)
- Bulletin Boards (phpBB, SMF, Vanilla, jobberBase, etc…)
- eCommerce (WooCommerce, OSCommerce, ZenCart, PayPal Shopping Cart, etc…)
Instructor
- PIC Microcontrollers
- Arduino
- Raspberry Pi
- Espressif
- Robotics
- DOS, Windows, OSX, Linux, iOS, Android, Multi-OS
- Linux-Apache-PHP-MySQL
Follow Us
J. Luc Paquin – Curriculum Vitae
https://www.donluc.com/DLE/LucPaquinCVEngMk2021a.pdf
Web: https://www.donluc.com/
Web: http://www.jlpconsultants.com/
Web: https://www.donluc.com/DLE/
Web: https://www.donluc.com/DLHackster/
Web: https://www.hackster.io/neosteam-labs
Web: https://zoom.us/
Patreon: https://www.patreon.com/DonLucElectronics
Facebook: https://www.facebook.com/neosteam.labs.9/
YouTube: https://www.youtube.com/channel/UC5eRjrGn1CqkkGfZy0jxEdA
Twitter: https://twitter.com/labs_steam
Pinterest: https://www.pinterest.com/NeoSteamLabs/
Instagram: https://www.instagram.com/neosteamlabs/
Don Luc
#17 – Meditation – Glasses LED Meditation – Music Meditation – Mk05
——
#donluc #meditation #glassesledmeditation #musicshield #neopixels #arduino #sparkfun #project #programming #electronics #microcontrollers #consultant #zoom #patreon #videoblog
——
——
——
——
Meditation or Aesthetics or Ambient of Music
Aesthetics of music is a branch of philosophy that deals with the nature of art, beauty and taste in music, and with the creation or appreciation of beauty in music. In the pre-modern tradition, the aesthetics of music or musical aesthetics explored the mathematical and cosmological dimensions of rhythmic and harmonic organization.
As an early 20th-century French composer, Erik Satie used such Dadaist-inspired explorations to create an early form of ambient/background music that he labeled “furniture music”. This he described as being the sort of music that could be played during a dinner to create a background atmosphere for that activity, rather than serving as the focus of attention.
I think of it as melodious, softening the noises of the knives and forks at dinner, not dominating them, not imposing itself. It would fill up those heavy silences that sometime fall between friends dining together. It would spare them the trouble of paying attention to their own banal remarks. And at the same time it would neutralize the street noises which so indiscreetly enter into the play of conversation. To make such music would be to respond to a need.
Background music for meditation should be calm, relaxing, and to evoke a warm feeling that allows viewers to feel safe and comfortable. Moreover, meditating music should quiet the inner voice, allowing the viewer to stay in the present moment and focus on immersing in meditation.
DL2103Mk01
1 x Arduino Uno – R3
1 x ProtoScrewShield
1 x Music Shield V1.1
2 x Breadboard-friendly RGB Smart NeoPixel
1 x microSD Card – 2GB
1 x Panel Mount 1K potentiometer
2 x Knob
1 x SparkFun Rotary Switch – 10 Position
1 x SparkFun Rotary Switch Breakout
1 x Breadboard Solderable
11 x 1K Ohm
1 x Hamburger Mini Speaker
20 x Wire Solid Core – 22 AWG
1 x Half-Size Breadboard
1 x SparkFun Cerberus USB Cable
Arduino Uno – R3
RW0 – Analog A4
PO0 – Analog A5
NP1 – Digital 1
MB0 – RST
VIN – +5V
GND – GND
DL2103Mk01p.ino
// ***** Don Luc Electronics © ***** // Software Version Information // #17 - Meditation - Glasses LED Meditation - Music - Mk05 // 03-01 // DL2103Mk01p.ino 17-05 // DL2103Mk01 // 1 x Arduino Uno - R3 // 1 x ProtoScrewShield // 1 x Music Shield V1.1 // 2 x Breadboard-friendly RGB Smart NeoPixel // 1 x microSD Card - 2GB // 1 x Panel Mount 1K potentiometer // 11 x Knob // 1 x SparkFun Rotary Switch - 10 Position // 1 x SparkFun Rotary Switch Breakout // 1 x Breadboard Solderable // 11 x 1K Ohm // 1 x Hamburger Mini Speaker // 20 x Wire Solid Core - 22 AWG // 1 x Half-Size Breadboard // 1 x SparkFun Cerberus USB Cable // Include the Library Code // NeoPixel #include <Adafruit_NeoPixel.h> // Fat 16 #include <Fat16.h> #include <Fat16Util.h> // New SPI #include <NewSPI.h> // Arduino #include <arduino.h> // Music Player #include "pins_config.h" #include "vs10xx.h" #include "newSDLib.h" #include "MusicPlayer.h" // NeoPixels #define PIN 1 // How many NeoPixels are attached to the Arduino #define NUMPIXELS 2 Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); // Color // Red int red = 0; // Green int green = 0; // Blue int blue = 0; // Panel Mount 1K potentiometer // Brighten int BrightenValue = 0; // Color const int iSensorColor = A5; int y = 0; int ColorVal = 0; // Rotary Switch - 10 Position // Number 1 => 10 int iRotNum = A4; // iRotVal - Value int iRotVal = 0; // Number int z = 0; int x = 0; // Music Player MusicPlayer myplayer; // Software Version Information String sver = "17-05"; void loop() { // Rotary Switch isRot(); }
getNeopix.ino
// Neopix void isNeopix() { for(int i=0; i<NUMPIXELS; i++){ // Neopix // BrightenValue = 40 BrightenValue = 40; pixels.setBrightness( BrightenValue ); // The pixels.Color takes RGB values, from 0,0,0 up to 255,255,255 pixels.setPixelColor(i, pixels.Color(red,green,blue)); // This sends the updated pixel color to the hardware pixels.show(); } } // Range Color void isRangeColor() { // Range Color ColorVal = analogRead( iSensorColor ); y = (ColorVal / 127); switch ( y ) { case 0: // Blue red = 0; green = 102; blue = 204; isNeopix(); break; case 1: // Yellow red = 255; green = 255; blue = 0; isNeopix(); break; case 2: // Pink red = 255; green = 153; blue = 203; isNeopix(); break; case 3: // White red = 255; green = 255; blue = 255; isNeopix(); break; case 4: // Green red = 0; green = 255; blue = 0; isNeopix(); break; case 5: // Orange red = 255; green = 102; blue = 0; isNeopix(); break; case 6: // Violet red = 204; green = 102; blue = 204; isNeopix(); break; case 7: // Red red = 255; green = 0; blue = 0; isNeopix(); break; } }
getRot.ino
// Rotary Switch // isRot - iRotVal - Value void isRot() { // Rotary Switch z = analogRead( iRotNum ); x = map(z, 0, 4095, 0, 9); iRotVal = map(z, 0, 1023, 0, 10); // Range Value switch ( iRotVal ) { case 0: // Range Color isRangeColor(); break; case 1: // Music // Add To Playlist // 3:18 myplayer.addToPlaylist("DLEMk001.mp3"); // 2:47 myplayer.addToPlaylist("DLEMk002.mp3"); // 4.34 myplayer.addToPlaylist("DLEMk003.mp3"); // There are two songs in the playlist // 10:37 myplayer.playList(); while(1); break; case 2: // Music // Add To Playlist // 22:53 myplayer.addToPlaylist("DLEMk004.mp3"); // There are two songs in the playlist // 22:53 myplayer.playList(); while(1); break; case 3: // Music // Add To Playlist // 4:18 myplayer.addToPlaylist("DLEMk005.mp3"); // 4:20 myplayer.addToPlaylist("DLEMk006.mp3"); // There are two songs in the playlist // 8:38 myplayer.playList(); while(1); break; case 4: // Music // Add To Playlist // 9:14 myplayer.addToPlaylist("DLEMk007.mp3"); // 7:52 myplayer.addToPlaylist("DLEMk008.mp3"); // There are two songs in the playlist // 17:07 myplayer.playList(); while(1); break; case 5: // Music // Add To Playlist // 4:37 myplayer.addToPlaylist("DLEMk009.mp3"); // There are two songs in the playlist // 4:37 myplayer.playList(); while(1); break; case 6: // Music // Add To Playlist // 8:40 myplayer.addToPlaylist("DLEMk010.mp3"); // 8:40 myplayer.playList(); while(1); break; case 7: // Music // Add To Playlist // 1:31 myplayer.addToPlaylist("DLEMk011.mp3"); // 3:29 myplayer.addToPlaylist("DLEMk012.mp3"); // There are two songs in the playlist // 5:00 myplayer.playList(); while(1); break; case 8: // Music // Add To Playlist // 6:14 myplayer.addToPlaylist("DLEMk013.mp3"); // 5:17 myplayer.addToPlaylist("DLEMk014.mp3"); // There are two songs in the playlist // 11:31 myplayer.playList(); while(1); break; case 9: // Music // Add To Playlist // 6:30 myplayer.addToPlaylist("DLEMk015.mp3"); // 3:00 myplayer.addToPlaylist("DLEMk016.mp3"); // There are two songs in the playlist // 9:30 myplayer.playList(); while(1); break; } }
setup.ino
// Setup void setup() { // This initializes the NeoPixel library pixels.begin(); delay(50); // Range Color isRangeColor(); // Music Player // Will initialize the hardware and set default mode to be normal myplayer.begin(); }
Music 01 – 10m 37s
DLEMk001.mp3
DLEMk002.mp3
DLEMk003.mp3
Music 02 – 22m 53s
DLEMk004.mp3
Music 03 – 8m 38s
DLEMk005.mp3
DLEMk006.mp3
Music 04 – 17m 07s
DLEMk007.mp3
DLEMk008.mp3
Music 05 – 4m 37s
DLEMk009.mp3
Music 06 – 8m 40s
DLEMk010.mp3
Music 07 – 5m 00s
DLEMk011.mp3
DLEMk012.mp3
Music 08 – 11m 31s
DLEMk013.mp3
DLEMk014.mp3
Music 09 – 9m 30s
DLEMk015.mp3
DLEMk016.mp3
People can contact us: https://www.donluc.com/?page_id=1927
Technology Experience
- Single-Board Microcontrollers (PIC, Arduino, Raspberry Pi,Espressif, etc…)
- Robotics
- Research & Development (R & D)
- Desktop Applications (Windows, OSX, Linux, Multi-OS, Multi-Tier, etc…)
- Mobile Applications (Android, iOS, Blackberry, Windows Mobile, Windows CE, etc…)
- Web Applications (LAMP, Scripting, Java, ASP, ASP.NET, RoR, Wakanda, etc…)
- Social Media Programming & Integration (Facebook, Twitter, YouTube, Pinterest, etc…)
- Content Management Systems (WordPress, Drupal, Joomla, Moodle, etc…)
- Bulletin Boards (phpBB, SMF, Vanilla, jobberBase, etc…)
- eCommerce (WooCommerce, OSCommerce, ZenCart, PayPal Shopping Cart, etc…)
Instructor
- PIC Microcontrollers
- Arduino
- Raspberry Pi
- Espressif
- Robotics
- DOS, Windows, OSX, Linux, iOS, Android, Multi-OS
- Linux-Apache-PHP-MySQL
Follow Us
J. Luc Paquin – Curriculum Vitae
https://www.donluc.com/DLE/LucPaquinCVEngMk2021a.pdf
Web: https://www.donluc.com/
Web: http://www.jlpconsultants.com/
Web: https://www.donluc.com/DLE/
Web: https://www.donluc.com/DLHackster/
Web: https://www.hackster.io/neosteam-labs
Web: https://zoom.us/
Patreon: https://www.patreon.com/DonLucElectronics
Facebook: https://www.facebook.com/neosteam.labs.9/
YouTube: https://www.youtube.com/channel/UC5eRjrGn1CqkkGfZy0jxEdA
Twitter: https://twitter.com/labs_steam
Pinterest: https://www.pinterest.com/NeoSteamLabs/
Instagram: https://www.instagram.com/neosteamlabs/
Don Luc
#17 – Meditation – Glasses LED Meditation – Music Shield – Mk04
——
#donluc #meditation #glassesledmeditation #musicshield #neopixels #arduino #sparkfun #project #programming #electronics #microcontrollers #consultant #zoom #patreon #videoblog
——
——
——
——
Music Shield V1.1
The Music Shield is a professional audio codec.It can work with Arduino and Arduino Mega. It is based on VS1053b IC, and can play a variety of music formats stored on MicroSD cards with the provided Arduino Library.
Features
- Arduino and Arduino Mega compatible
- 2 control-push buttons and 1 knob switch
- Plays music from micro SD cards
- Decodes: MP3, WAV, MIDI, Ogg Vorbis
- Fat16 library
- I2S interface for external DAC
- Headphone/Line Out for playback
- Excellent sound quality with ±1dB frequency response
DL2102Mk07
1 x Arduino Uno – R3
1 x ProtoScrewShield
1 x Music Shield V1.1
2 x Breadboard-friendly RGB Smart NeoPixel
1 x microSD Card – 2GB
1 x Panel Mount 1K potentiometer
1 x Knob
1 x Momentary Button – Panel Mount (Black)
1 x 1K Ohm
1 x Hamburger Mini Speaker
15 x Wire Solid Core – 22 AWG
1 x Half-Size Breadboard
1 x SparkFun Cerberus USB Cable
Arduino Uno – R3
SW0 – Analog A4
PO0 – Analog A5
NP1 – Digital 1
MB0 – RST
VIN – +5V
GND – GND
DL2102Mk07p.ino
// ***** Don Luc Electronics © ***** // Software Version Information // #17 - Meditation - Glasses LED Meditation - Music Shield - Mk04 // 02-07 // DL2102Mk07p.ino 17-04 // DL2102Mk07 // 1 x Arduino Uno - R3 // 1 x ProtoScrewShield // 1 x Music Shield V1.1 // 2 x Breadboard-friendly RGB Smart NeoPixel // 1 x microSD Card - 2GB // 1 x Panel Mount 1K potentiometer // 1 x Knob // 1 x Momentary Button - Panel Mount (Black) // 1 x 1K Ohm // 1 x Hamburger Mini Speaker // 15 x Wire Solid Core - 22 AWG // 1 x Half-Size Breadboard // 1 x SparkFun Cerberus USB Cable // Include the Library Code // NeoPixel #include <Adafruit_NeoPixel.h> // Fat 16 #include <Fat16.h> #include <Fat16Util.h> // New SPI #include <NewSPI.h> // Arduino #include <arduino.h> // Music Player #include "pins_config.h" #include "vs10xx.h" #include "newSDLib.h" #include "MusicPlayer.h" // NeoPixels #define PIN 1 // How many NeoPixels are attached to the Arduino #define NUMPIXELS 2 Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); // Color // Red int red = 0; // Green int green = 0; // Blue int blue = 0; // Panel Mount 1K potentiometer // Brighten int BrightenValue = 0; // Color const int iSensorColor = A5; int y = 0; int ColorVal = 0; // Mountable Slide Switch int iSS1 = A4; // State int iSS1State = 0; // Music Player MusicPlayer myplayer; // Software Version Information String sver = "17-04"; void loop() { // Slide Switch // Read the state of the iSS1 value iSS1State = digitalRead(iSS1); // If it is the Slide Switch State is HIGH if (iSS1State == HIGH) { // Range Color isRangeColor(); } else { // Add To Playlist myplayer.addToPlaylist("F001.mp3"); myplayer.addToPlaylist("F002.mp3"); myplayer.addToPlaylist("F003.mp3"); myplayer.addToPlaylist("F004.mp3"); myplayer.addToPlaylist("F005.mp3"); // There are two songs in the playlist myplayer.playList(); while(1); } }
getNeopix.ino
// Neopix void isNeopix() { for(int i=0; i<NUMPIXELS; i++){ // Neopix // BrightenValue = 40 BrightenValue = 40; pixels.setBrightness( BrightenValue ); // The pixels.Color takes RGB values, from 0,0,0 up to 255,255,255 pixels.setPixelColor(i, pixels.Color(red,green,blue)); // This sends the updated pixel color to the hardware pixels.show(); } } // Range Color void isRangeColor() { // Range Color ColorVal = analogRead( iSensorColor ); y = (ColorVal / 127); switch ( y ) { case 0: // Blue red = 0; green = 102; blue = 204; isNeopix(); break; case 1: // Yellow red = 255; green = 255; blue = 0; isNeopix(); break; case 2: // Pink red = 255; green = 153; blue = 203; isNeopix(); break; case 3: // White red = 255; green = 255; blue = 255; isNeopix(); break; case 4: // Green red = 0; green = 255; blue = 0; isNeopix(); break; case 5: // Orange red = 255; green = 102; blue = 0; isNeopix(); break; case 6: // Violet red = 204; green = 102; blue = 204; isNeopix(); break; case 7: // Red red = 255; green = 0; blue = 0; isNeopix(); break; } }
setup.ino
// Setup void setup() { // This initializes the NeoPixel library pixels.begin(); delay(50); // Slide Switch pinMode(iSS1, INPUT); // Music Player // Will initialize the hardware and set default mode to be normal myplayer.begin(); }
Music
F001.mp3
F002.mp3
F003.mp3
F004.mp3
F005.mp3
People can contact us: https://www.donluc.com/?page_id=1927
Technology Experience
- Single-Board Microcontrollers (PIC, Arduino, Raspberry Pi,Espressif, etc…)
- Robotics
- Research & Development (R & D)
- Desktop Applications (Windows, OSX, Linux, Multi-OS, Multi-Tier, etc…)
- Mobile Applications (Android, iOS, Blackberry, Windows Mobile, Windows CE, etc…)
- Web Applications (LAMP, Scripting, Java, ASP, ASP.NET, RoR, Wakanda, etc…)
- Social Media Programming & Integration (Facebook, Twitter, YouTube, Pinterest, etc…)
- Content Management Systems (WordPress, Drupal, Joomla, Moodle, etc…)
- Bulletin Boards (phpBB, SMF, Vanilla, jobberBase, etc…)
- eCommerce (WooCommerce, OSCommerce, ZenCart, PayPal Shopping Cart, etc…)
Instructor
- PIC Microcontrollers
- Arduino
- Raspberry Pi
- Espressif
- Robotics
- DOS, Windows, OSX, Linux, iOS, Android, Multi-OS
- Linux-Apache-PHP-MySQL
Follow Us
J. Luc Paquin – Curriculum Vitae
https://www.donluc.com/DLE/LucPaquinCVEngMk2021a.pdf
Web: https://www.donluc.com/
Web: http://www.jlpconsultants.com/
Web: https://www.donluc.com/DLE/
Web: https://www.donluc.com/DLHackster/
Web: https://www.hackster.io/neosteam-labs
Web: https://zoom.us/
Patreon: https://www.patreon.com/DonLucElectronics
Facebook: https://www.facebook.com/neosteam.labs.9/
YouTube: https://www.youtube.com/channel/UC5eRjrGn1CqkkGfZy0jxEdA
Twitter: https://twitter.com/labs_steam
Pinterest: https://www.pinterest.com/NeoSteamLabs/
Instagram: https://www.instagram.com/neosteamlabs/
Don Luc
#17 – Meditation – Glasses LED Meditation – SparkFun Qwiic MP3 Trigger – Mk03
——
——
——
——
#donluc #meditation #glassesmeditation #glassesledmeditation #neopixels #audioplayer #microsd #arduino #sparkfun #project #programming #electronics #microcontrollers #consultant #patreon #videoblog
TMRpcm
PCM(Pulse Width Modulation)/WAV playback direct from SD card
Samples Per second(Hz): 16000
Main formats: WAV files, 8-bit, 8-32khz Sample Rate, mono.
Voice: Yes
Music: No / Yes
Qwiic MP3 Trigger
The Qwiic MP3 Trigger is designed to operate at 3.3V and must not be powered above 3.6V as this is the maximum operating voltage of microSD cards. Otherwise, the board can also be powered through the Qwiic connector.
MP3 and ATtiny84
At the heart of the Qwiic MP3 Trigger is the WT2003S MP3 decoder IC. This IC reads MP3s from the microSD card and will automatically mount the SD card as a jump drive if USB is detected. The ATtiny84A receives I2C commands and controls the MP3 decoder.
Audio Amplifier
The speaker is boosted by a Class-D mono amplifier capable of outputting up to 1.4W. Both outputs have volume controlled by the SET_VOLUME command and is selectable between 32 levels.
Audio Outputs
This is a friction fit type connector; simply push stranded core wire into the hole and the connector will grip the wire, speaker as Dayton audio reference 3″ full-range drive.
Voice: Yes
Music: Yes
DL2102Mk06
1 x SparkFun RedBoard Qwiic
2 x Breadboard-friendly RGB Smart NeoPixel
1 x SparkFun Qwiic MP3 Trigger
1 x microSD Card – 2GB
2 x Panel Mount 1K potentiometer
2 x Knob
1 x Qwiic Cable – 100mm
1 x Dayton Audio Reference 3″ Full-Range Drive
2 x Wire Stranded Core – 18 AWG
17 x Wire Solid Core – 22 AWG
1 x Half-Size Breadboard
1 x SparkFun Cerberus USB Cable
SparkFun RedBoard Qwiic
PO0 – Analog A0
PO1 – Analog A1
NP1 – Digital 6
I2C – 0x37
VIN – +5V
GND – GND
DL2102Mk06p.ino
// ***** Don Luc Electronics © ***** // Software Version Information // #17 - Meditation - Glasses LED Meditation - SparkFun Qwiic MP3 Trigger - Mk03 // 02-06 // DL2102Mk06p.ino 17-03 // 1 x Arduino Pro Mini 328 - 5V/16MHz // 2 x Breadboard-friendly RGB Smart NeoPixel // 1 x SparkFun Qwiic MP3 Trigger // 1 x microSD Card - 2GB // 2 x Panel Mount 1K potentiometer // 2 x Knob // 1 x Qwiic Cable - 100mm // 1 x Dayton Audio Reference 3" Full-Range Drive // 2 x Wire Stranded Core - 16 AWG // 17 x Wire Solid Core - 22 AWG // 1 x Half-Size Breadboard // 1 x SparkFun Cerberus USB Cable // Include the Library Code // NeoPixel #include <Adafruit_NeoPixel.h> // Wire communicate with I2C / TWI devices #include <Wire.h> // SparkFun MP3 Trigger #include "SparkFun_Qwiic_MP3_Trigger_Arduino_Library.h" // NeoPixels #define PIN 6 // How many NeoPixels are attached to the Arduino #define NUMPIXELS 2 Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); // Color // Red int red = 0; // Green int green = 0; // Blue int blue = 0; // Panel Mount 1K potentiometer // Brighten const int iSensorBrighten = A0; // Max - Min int BrightenValue = 0; // Minimum sensor value int BrightenMin = 0; // Maximum sensor value int BrightenMax = 1023; // Color const int iSensorColor = A1; int y = 0; int ColorVal = 0; // SparkFun MP3 Trigger MP3TRIGGER mp3; // Software Version Information String sver = "17-03"; void loop() { // Range Color isRangeColor(); if (mp3.isPlaying() == false) { // Play Track dleMk002.mp3 mp3.playTrack(1); } }
getMP3.ino
// MP3 // Setup MP3 void isSetupMP3(){ // Check to see if Qwiic MP3 is present on the bus if (mp3.begin() == false) { // Qwiic MP3 failed to respond. Please check wiring and possibly the I2C address. Freezing... while (1); } if (mp3.hasCard() == false) { // Qwiic MP3 is missing its SD card. Freezing... while (1); } // Volume can be 0 (off) to 31 (max) mp3.setVolume(28); // Play Track dleMk002.mp3 mp3.playTrack(1); }
getNeopix.ino
// Neopix void isNeopix() { for(int i=0; i<NUMPIXELS; i++){ // Neopix // Read the Brightneed BrightenValue = analogRead( iSensorBrighten ); // Apply the calibration to the BrightneedValue reading BrightenValue = map(BrightenValue, BrightenMin, BrightenMax, 0, 255); // In case the sensor value is outside the range seen during calibration BrightenValue = constrain(BrightenValue, 0, 255); // The pixels.Color takes RGB values, from 0,0,0 up to 255,255,255 pixels.setBrightness( BrightenValue ); pixels.setPixelColor(i, pixels.Color(red,green,blue)); // This sends the updated pixel color to the hardware pixels.show(); } } // Range Color void isRangeColor() { // Range Color ColorVal = analogRead( iSensorColor ); y = (ColorVal / 127); switch (y) { case 0: // Blue red = 0; green = 102; blue = 204; isNeopix(); break; case 1: // Yellow red = 255; green = 255; blue = 0; isNeopix(); break; case 2: // Pink red = 255; green = 153; blue = 203; isNeopix(); break; case 3: // White red = 255; green = 255; blue = 255; isNeopix(); break; case 4: // Green red = 0; green = 255; blue = 0; isNeopix(); break; case 5: // Orange red = 255; green = 102; blue = 0; isNeopix(); break; case 6: // Violet red = 204; green = 102; blue = 204; isNeopix(); break; case 7: // Red red = 255; green = 0; blue = 0; isNeopix(); break; } }
setup.ino
// Setup void setup() { // This initializes the NeoPixel library pixels.begin(); // Serial // Serial.begin(9600); // Wire communicate with I2C / TWI devices Wire.begin(); // SparkFun MP3 Trigger Setup isSetupMP3(); }
Music
dleMk002.mp3
People can contact us: https://www.donluc.com/?page_id=1927
Technology Experience
- Single-Board Microcontrollers (PIC, Arduino, Raspberry Pi,Espressif, etc…)
- Robotics
- Research & Development (R & D)
- Desktop Applications (Windows, OSX, Linux, Multi-OS, Multi-Tier, etc…)
- Mobile Applications (Android, iOS, Blackberry, Windows Mobile, Windows CE, etc…)
- Web Applications (LAMP, Scripting, Java, ASP, ASP.NET, RoR, Wakanda, etc…)
- Social Media Programming & Integration (Facebook, Twitter, YouTube, Pinterest, etc…)
- Content Management Systems (WordPress, Drupal, Joomla, Moodle, etc…)
- Bulletin Boards (phpBB, SMF, Vanilla, jobberBase, etc…)
- eCommerce (WooCommerce, OSCommerce, ZenCart, PayPal Shopping Cart, etc…)
Instructor
- PIC Microcontrollers
- Arduino
- Raspberry Pi
- Espressif
- Robotics
- DOS, Windows, OSX, Linux, iOS, Android, Multi-OS
- Linux-Apache-PHP-MySQL
Follow Us
J. Luc Paquin – Curriculum Vitae
https://www.donluc.com/DLE/LucPaquinCVEngMk2021a.pdf
Web: https://www.donluc.com/
Web: http://www.jlpconsultants.com/
Web: https://www.donluc.com/DLE/
Web: https://www.donluc.com/DLHackster/
Web: https://www.hackster.io/neosteam-labs
Patreon: https://www.patreon.com/DonLucElectronics
Facebook: https://www.facebook.com/neosteam.labs.9/
YouTube: https://www.youtube.com/channel/UC5eRjrGn1CqkkGfZy0jxEdA
Twitter: https://twitter.com/labs_steam
Pinterest: https://www.pinterest.com/NeoSteamLabs/
Instagram: https://www.instagram.com/neosteamlabs/
Don Luc
#17 – Meditation – Glasses LED Meditation – Audio Player – Mk02
——
#donluc #meditation #glassesmeditation #glassesledmeditation #glassesled #neopixels #audioplayer #microsd #arduino #sparkfun #project #programming #electronics #microcontrollers #consultant #patreon #videoblog
——
——
——
——
Meditation Music
Music Meditation has many wonderful benefits for helping people with control meditation may significantly reduce stress, anxiety, depression, COVID-19, HIV, TMJD, aphasia, ADHD, cancer, and pain; and enhance peace, perception, self-concept, and well-being. Music Meditation can also lift your mood, slow your breathing, and create other stress-inducing changes.
From mood enhancement and relaxation to full-blown oneness with the cosmos, music has the ability to powerfully shift our state of mind. Meditation is not that different. Meditation lowers the stress hormone cortisol, helps us sleep better, and rewires the brain with a host of positive emotional qualities. The goal of both music and meditation is to create a powerful and positive shift in our mental state.
Music is a reliable source of transformational experience for many, and we are attracted to music for the same reasons that meditators meditate. Music and meditation both allow a fuller and richer experience of our emotions. They stop our incessant and often negative mental chatter and offer us an opportunity to inhabit the present moment more fully and meaningfully. These are all important for good health and happiness in human beings.
Meditation and music are calming, transformative activities that can improve health in multiple ways. Research studies indicate that meditation can protect of a heart attack or stroke, improve sleep, relieve pain, sharpen mind and memory, lift mood, and ease anxiety.
DL2102Mk05
1 x Arduino Pro Mini 328 – 5V/16MHz
2 x Breadboard-friendly RGB Smart NeoPixel
1 x Panel Mount 1K potentiometer
1 x Knob
1 x MicroSD card breakout board+
1 x MicroSD Memory Card (8 GB SDHC)
1 x SparkFun Audio Jack Breakout
1 x Audio Jack 3.5mm
1 x Hamburger Mini Speaker
20 x Wire Solid Core – 22 AWG
2 x Half-Size Breadboard
1 x SparkFun FTDI Basic Breakout – 5V
1 x SparkFun Cerberus USB Cable
Arduino Pro Mini 328
PO0 – Analog A0
SS0 – Digital 10
MOS – Digital 11
MIS – Digital 12
SCK – Digital 13
SPE – Digital 9
NP1 – Digital 6
VIN – +5V
GND – GND
DL2102Mk05p.ino
// ***** Don Luc Electronics © ***** // Software Version Information // #17 - Meditation - Glasses LED Meditation - Audio Player - Mk02 // 02-05 // DL2102Mk05p.ino 17-05 // 1 x Arduino Pro Mini 328 - 5V/16MHz // 2 x Breadboard-friendly RGB Smart NeoPixel // 1 x Panel Mount 1K potentiometer // 1 x Knob // 1 x MicroSD card breakout board+ // 1 x MicroSD Memory Card (8 GB SDHC) // 1 x SparkFun Audio Jack Breakout // 1 x Audio Jack 3.5mm // 1 x Hamburger Mini Speaker // 20 x Wire Solid Core - 22 AWG // 2 x Half-Size Breadboard // 1 x SparkFun FTDI Basic Breakout - 5V // 1 x SparkFun Cerberus USB Cable // Include the Library Code // NeoPixel #include <Adafruit_NeoPixel.h> // SPI (Serial Peripheral Interface) #include <SPI.h> // SD Cards #include <SD.h> // PCM/WAV Audio Playback #include <TMRpcm.h> // NeoPixels #define PIN 6 // How many NeoPixels are attached to the Arduino #define NUMPIXELS 2 Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); // Color // Red int red = 0; // Green int green = 0; // Blue int blue = 0; // Panel Mount 1K potentiometer // Brightneed const int iSensorBrightneed = A0; // Max - Min int BrightneedValue = 0; // Minimum sensor value int BrightneedMin = 0; // Maximum sensor value int BrightneedMax = 1023; // PCM/WAV Audio Playback TMRpcm music; int iSpeaker = 9; int iPlaying = 0; // SD Cards int iSD = 10; // Software Version Information String sver = "17-02"; void loop() { // Range Color // White isRangeColor(); // Playing iPlaying = music.isPlaying(); if ( iPlaying == 0 ) { // Play music.play("dleMk001.wav"); } }
getNeopix.ino
// Neopix void isNeopix() { for(int i=0; i<NUMPIXELS; i++){ // Neopix // Read the Brightneed BrightneedValue = analogRead( iSensorBrightneed ); // Apply the calibration to the BrightneedValue reading BrightneedValue = map(BrightneedValue, BrightneedMin, BrightneedMax, 0, 255); // In case the sensor value is outside the range seen during calibration BrightneedValue = constrain(BrightneedValue, 0, 255); // The pixels.Color takes RGB values, from 0,0,0 up to 255,255,255 pixels.setBrightness( BrightneedValue ); pixels.setPixelColor(i, pixels.Color(red,green,blue)); // This sends the updated pixel color to the hardware pixels.show(); } } // Range Color void isRangeColor() { // Range Color // White red = 255; green = 255; blue = 255; isNeopix(); }
setup.ino
// Setup void setup() { // This initializes the NeoPixel library pixels.begin(); // PCM/WAV Audio Playback music.speakerPin = iSpeaker; // SD Cards SD.begin( iSD ); // PCM/WAV Audio Playback // Volume music.setVolume(5); music.quality(1); // Play music.play("dleMk001.wav"); }
Music
dleMk001.wav
People can contact us: https://www.donluc.com/?page_id=1927
Technology Experience
- Single-Board Microcontrollers (PIC, Arduino, Raspberry Pi,Espressif, etc…)
- Robotics
- Research & Development (R & D)
- Desktop Applications (Windows, OSX, Linux, Multi-OS, Multi-Tier, etc…)
- Mobile Applications (Android, iOS, Blackberry, Windows Mobile, Windows CE, etc…)
- Web Applications (LAMP, Scripting, Java, ASP, ASP.NET, RoR, Wakanda, etc…)
- Social Media Programming & Integration (Facebook, Twitter, YouTube, Pinterest, etc…)
- Content Management Systems (WordPress, Drupal, Joomla, Moodle, etc…)
- Bulletin Boards (phpBB, SMF, Vanilla, jobberBase, etc…)
- eCommerce (WooCommerce, OSCommerce, ZenCart, PayPal Shopping Cart, etc…)
Instructor
- PIC Microcontrollers
- Arduino
- Raspberry Pi
- Espressif
- Robotics
- DOS, Windows, OSX, Linux, iOS, Android, Multi-OS
- Linux-Apache-PHP-MySQL
Follow Us
J. Luc Paquin – Curriculum Vitae
https://www.donluc.com/DLE/LucPaquinCVEngMk2021a.pdf
Web: https://www.donluc.com/
Web: http://www.jlpconsultants.com/
Web: https://www.donluc.com/DLE/
Web: https://www.donluc.com/DLHackster/
Web: https://www.hackster.io/neosteam-labs
Patreon: https://www.patreon.com/DonLucElectronics
Facebook: https://www.facebook.com/neosteam.labs.9/
YouTube: https://www.youtube.com/channel/UC5eRjrGn1CqkkGfZy0jxEdA
Twitter: https://twitter.com/labs_steam
Pinterest: https://www.pinterest.com/NeoSteamLabs/
Instagram: https://www.instagram.com/neosteamlabs/
Don Luc