The Alpha Geek – Geeking Out

Adafruit

1 5 6 7 8 9 11

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

——

Global Positioning System

——

Global Positioning System

——

Global Positioning System

——

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

——

GPS Receiver

——

GPS Receiver

——

GPS Receiver

——

GPS Receiver

——

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

——

SHARP Memory Display

——

SHARP Memory Display

——

SHARP Memory Display

——

SHARP Memory Display

——

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

——

Time

——

Time

——

Time

——

Time

——

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

——

Goggles

——

Goggles

——

Goggles

——

#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

——

NeoPixel Stick

——

NeoPixel Stick

——

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

——

Music Meditation

——

Music Meditation

——

Music Meditation

——

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

——

Music Shield

——

Music Shield

——

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

——

SparkFun Qwiic MP3 Trigger

——

SparkFun Qwiic MP3 Trigger

——

SparkFun Qwiic MP3 Trigger

——

#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

——

Meditation Music

——

Meditation Music

——

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

1 5 6 7 8 9 11
Categories
Archives