——
——
——
——
——
——
——
——
——
Transmitter
DL2002Mk07
1 x Arduino UNO – R3
1 x ProtoScrewShield
1 x Adafruit RGB LCD Shield 16×2 Character Display
1 x XBee S1
1 x SparkFun XBee Explorer Regulated
1 x Slide Pot (Small)
1 x Knob
1 x Acrylic Blue 5.75in x 3.75in x 1/8in
24 x Screw – 4-40
12 x Standoff – Metal 4-40 – 3/8″
7 x Wire Solid Core – 22 AWG
1 x SparkFun XBee Explorer USB
1 x DIGI XCTU Software
1 x SparkFun Cerberus USB Cable
Arduino UNO
TX0 – Digital 1
RX0 – Digital 0
LP1 – Analog A0
VIN – +5V
GND – GND
XBee S1: Transmitter
CH Channel: C
PAN Id: 3333
SH Serial Number: 13A200
SL Serial Number: 40717A1F
CE Coordinator: Coordinator
BD: 9600
DL2002Mk07p.ino
// ***** Don Luc Electronics © *****
// Software Version Information
// Project #12: Robotics - Unmanned Vehicles 1f - Mk10
// 02-07
// DL2002Mk01p.ino 12-10
// Arduino UNO - R3
// ProtoScrewShield
// Adafruit RGB LCD Shield 16×2 Character Display
// EEPROM with Unique ID
// Transmitter
// XBee S1
// Stepper
// Slide Pot (Small)
// Knob
// Include the library code:
// EEPROM library to read and write EEPROM with unique ID for unit
#include <EEPROM.h>
// Adafruit RGB LCD Shield
#include <Adafruit_RGBLCDShield.h>
// Adafruit RGB LCD Shield
Adafruit_RGBLCDShield RGBLCDShield = Adafruit_RGBLCDShield();
// These #defines make it easy to set the backlight color
#define OFF 0x0
#define RED 0x1
#define YELLOW 0x3
#define GREEN 0x2
#define TEAL 0x6
#define BLUE 0x4
#define VIOLET 0x5
#define WHITE 0x7
// Momentary Button
int yy = 0;
uint8_t momentaryButton = 0;
// Communication
unsigned long dTime = 50;
// Slide Pot (Small)
int iSP1 = A0; // Select the input pin for the slide pot
int iValue = 0; // Variable to store the value
// The current address in the EEPROM (i.e. which byte we're going to read to next)
// Version
String sver = "12-10.p";
// Unit ID Information
String uid = "";
void loop() {
// Clear
RGBLCDShield.clear();
// set the cursor to column 0, line 0
RGBLCDShield.setCursor(0,0);
RGBLCDShield.print("Robotics"); // Robotics
// Momentary Button
momentaryButton = RGBLCDShield.readButtons();
switch ( yy ) {
case 1:
// Forward
isSwitch1();
break;
case 2:
// Reverse
isSwitch2();
break;
case 3:
// Right
isSwitch3();
break;
case 4:
// Left
isSwitch4();
break;
case 5:
// Stop
isSwitch5();
break;
default:
// Stop
yy = 5;
RGBLCDShield.setBacklight(RED);
isSwitch5();
}
if ( momentaryButton ) {
if ( momentaryButton & BUTTON_UP ) {
yy = 1;
// Forward
RGBLCDShield.setBacklight(GREEN);
}
if ( momentaryButton & BUTTON_DOWN ) {
yy = 2;
// Reverse
RGBLCDShield.setBacklight(VIOLET);
}
if ( momentaryButton & BUTTON_LEFT ) {
yy = 3;
// Right
RGBLCDShield.setBacklight(TEAL);
}
if ( momentaryButton & BUTTON_RIGHT ) {
yy = 4;
// Left
RGBLCDShield.setBacklight(YELLOW);
}
if ( momentaryButton & BUTTON_SELECT ) {
yy = 5;
// Stop
RGBLCDShield.setBacklight(RED);
}
}
// Read the value
iValue = analogRead( iSP1 );
// Process Message
isProcessMessage();
delay( dTime );
}
getEEPROM.ino
// EEPROM
// isUID
void isUID()
{
// Is Unit ID
uid = "";
for (int x = 0; x < 5; x++)
{
uid = uid + char(EEPROM.read(x));
}
}
getProcessMessage.ino
// ProcessMessage
// isProcessMessage
void isProcessMessage() {
// Loop through serial buffer
while ( Serial.available() )
{
// Print = "<" + yy + "|" + sver + "|" + iValue + "*"
Serial.print( '<' );
Serial.print( yy );
Serial.print( '|' );
Serial.print( iValue );
Serial.println( '*' );
}
}
getSwitch.ino
// Switch
// Switch 1
void isSwitch1(){
yy = 1;
// Stepper
// Forward
RGBLCDShield.setCursor(0,1);
RGBLCDShield.print("Forward");
}
// Switch 2
void isSwitch2(){
yy = 2;
// Stepper
// Reverse
RGBLCDShield.setCursor(0,1);
RGBLCDShield.print("Reverse");
}
// Switch 3
void isSwitch3(){
yy = 3;
// Stepper
// Right
RGBLCDShield.setCursor(0,1);
RGBLCDShield.print("Right");
}
// Switch 4
void isSwitch4(){
yy = 4;
// Stepper
// Left
RGBLCDShield.setCursor(0,1);
RGBLCDShield.print("Left");
}
// Switch 5
void isSwitch5(){
yy = 5;
// Stepper
// Stop
RGBLCDShield.setCursor(0,1);
RGBLCDShield.print("Stop");
}
setup.ino
// Setup
void setup() {
// Open serial port at 9600 baud
Serial.begin( 9600 );
// Pause
delay(5);
// EEPROM Unit ID
isUID();
// Pause
delay(5);
// Adafruit RGB LCD Shield
// Set up the LCD's number of columns and rows:
RGBLCDShield.begin(16, 2);
RGBLCDShield.setBacklight(GREEN);
// Display
// Set the cursor to column 0, line 0
RGBLCDShield.setCursor(0,0);
RGBLCDShield.print("Don Luc Electron"); // Don luc Electron
// Set the cursor to column 0, line 1
RGBLCDShield.setCursor(0, 1);
RGBLCDShield.print("Robotics"); // Robotics
delay(5000);
// Clear
RGBLCDShield.clear();
// Display
// Set the cursor to column 0, line 0
RGBLCDShield.setCursor(0,0);
RGBLCDShield.print("Version: "); // Version
RGBLCDShield.print( sver );
// Set the cursor to column 0, line 1
RGBLCDShield.setCursor(0, 1);
RGBLCDShield.print("UID: "); // Unit ID Information
RGBLCDShield.print( uid );
delay(5000);
// Clear
RGBLCDShield.clear();
}
Follow Us
J. Luc Paquin – Curriculum Vitae
https://www.donluc.com/DLHackster/LucPaquinCVEngMk2020a.pdf
Web: https://www.donluc.com/
Web: http://www.jlpconsultants.com/
Web: https://www.donluc.com/DLHackster/
Web: https://www.hackster.io/neosteam-labs
Web: http://neosteamlabs.com/
YouTube: https://www.youtube.com/channel/UC5eRjrGn1CqkkGfZy0jxEdA
Facebook: https://www.facebook.com/neosteam.labs.9/
Instagram: https://www.instagram.com/neosteamlabs/
Pinterest: https://www.pinterest.com/NeoSteamLabs/
Twitter: https://twitter.com/labs_steam
Etsy: https://www.etsy.com/shop/NeoSteamLabs
Don Luc





















































