aboutsummaryrefslogtreecommitdiff
path: root/libraries/TFT/examples/Esplora
diff options
context:
space:
mode:
authorCristian Maglie <c.maglie@bug.st>2013-06-01 23:16:02 +0200
committerCristian Maglie <c.maglie@bug.st>2013-06-01 23:16:02 +0200
commit177ad96f866714a4962be57f69cd3d5a6334cde1 (patch)
tree1072239986340d6a239adac924eddf2e1d1ca566 /libraries/TFT/examples/Esplora
parent6cff36ac5e85c74bcb45cc53491ad69d64520b36 (diff)
parentd90fcca5839d13d57ed527d4009b78d22dafbde7 (diff)
Merge branch 'merge-1.0.5' into ide-1.5.x-discovery
Diffstat (limited to 'libraries/TFT/examples/Esplora')
-rw-r--r--libraries/TFT/examples/Esplora/EsploraTFTBitmapLogo/EsploraTFTBitmapLogo.ino101
-rw-r--r--libraries/TFT/examples/Esplora/EsploraTFTBitmapLogo/arduino.bmpbin0 -> 6966 bytes
-rw-r--r--libraries/TFT/examples/Esplora/EsploraTFTColorPicker/EsploraTFTColorPicker.ino54
-rw-r--r--libraries/TFT/examples/Esplora/EsploraTFTEtchASketch/EsploraTFTEtchASketch.ino83
-rw-r--r--libraries/TFT/examples/Esplora/EsploraTFTGraph/EsploraTFTGraph.ino56
-rw-r--r--libraries/TFT/examples/Esplora/EsploraTFTHorizon/EsploraTFTHorizon.ino63
-rw-r--r--libraries/TFT/examples/Esplora/EsploraTFTPong/EsploraTFTPong.ino126
-rw-r--r--libraries/TFT/examples/Esplora/EsploraTFTTemp/EsploraTFTTemp.ino64
8 files changed, 547 insertions, 0 deletions
diff --git a/libraries/TFT/examples/Esplora/EsploraTFTBitmapLogo/EsploraTFTBitmapLogo.ino b/libraries/TFT/examples/Esplora/EsploraTFTBitmapLogo/EsploraTFTBitmapLogo.ino
new file mode 100644
index 0000000..3d3f230
--- /dev/null
+++ b/libraries/TFT/examples/Esplora/EsploraTFTBitmapLogo/EsploraTFTBitmapLogo.ino
@@ -0,0 +1,101 @@
+/*
+
+ Esplora TFT Bitmap Logos
+
+ This example for the Arduino TFT screen is for use
+ with an Arduino Esplora.
+
+ This example reads an image file from a micro-SD card
+ and draws it on the screen, at random locations.
+
+ There is a .bmp file included with this sketch.
+ - open the sketch folder (Ctrl-K or Cmd-K)
+ - copy the "arduino.bmp" file to a micro-SD
+ - put the SD into the SD slot of the Arduino LCD module.
+
+ This example code is in the public domain.
+
+ Created 19 April 2013 by Enrico Gueli
+
+ http://arduino.cc/en/Tutorial/EsploraTFTBitmapLogo
+
+ */
+
+// include the necessary libraries
+#include <Esplora.h>
+#include <SPI.h>
+#include <SD.h>
+#include <TFT.h> // Arduino LCD library
+
+// the Esplora pin connected to the chip select line for SD card
+#define SD_CS 8
+
+// this variable represents the image to be drawn on screen
+PImage logo;
+
+void setup() {
+ // initialize the GLCD and show a message
+ // asking the user to open the serial line
+ EsploraTFT.begin();
+ EsploraTFT.background(255, 255, 255);
+
+ EsploraTFT.stroke(0, 0, 255);
+ EsploraTFT.println();
+ EsploraTFT.println("Arduino LCD Bitmap Example");
+ EsploraTFT.stroke(0, 0, 0);
+ EsploraTFT.println("Open serial monitor");
+ EsploraTFT.println("to run the sketch");
+
+ // initialize the serial port: it will be used to
+ // print some diagnostic info
+ Serial.begin(9600);
+ while (!Serial) {
+ // wait for serial monitor to be open
+ }
+
+ // try to access the SD card. If that fails (e.g.
+ // no card present), the Esplora's LED will turn red.
+ Serial.print("Initializing SD card...");
+ if (!SD.begin(SD_CS)) {
+ Serial.println("failed!");
+ Esplora.writeRed(255);
+ return;
+ }
+ Serial.println("OK!");
+
+ // clear the GLCD screen before starting
+ EsploraTFT.background(255, 255, 255);
+
+ // now that the SD card can be access, try to load the
+ // image file. The Esplora LED will turn green or red if
+ // the loading went OK or not.
+ Esplora.writeRGB(0, 0, 0);
+ logo = EsploraTFT.loadImage("arduino.bmp");
+ if (logo.isValid()) {
+ Esplora.writeGreen(255);
+ }
+ else
+ Esplora.writeRed(255);
+
+}
+
+void loop() {
+ // don't do anything if the image wasn't loaded correctly.
+ if (logo.isValid() == false) {
+ return;
+ }
+
+ Serial.println("drawing image");
+
+ // get a random location where to draw the image.
+ // To avoid the image to be draw outside the screen,
+ // take into account the image size.
+ int x = random(EsploraTFT.width() - logo.width());
+ int y = random(EsploraTFT.height() - logo.height());
+
+ // draw the image to the screen
+ EsploraTFT.image(logo, x, y);
+
+ // wait a little bit before drawing again
+ delay(1500);
+}
diff --git a/libraries/TFT/examples/Esplora/EsploraTFTBitmapLogo/arduino.bmp b/libraries/TFT/examples/Esplora/EsploraTFTBitmapLogo/arduino.bmp
new file mode 100644
index 0000000..09c670a
--- /dev/null
+++ b/libraries/TFT/examples/Esplora/EsploraTFTBitmapLogo/arduino.bmp
Binary files differ
diff --git a/libraries/TFT/examples/Esplora/EsploraTFTColorPicker/EsploraTFTColorPicker.ino b/libraries/TFT/examples/Esplora/EsploraTFTColorPicker/EsploraTFTColorPicker.ino
new file mode 100644
index 0000000..63a0ee2
--- /dev/null
+++ b/libraries/TFT/examples/Esplora/EsploraTFTColorPicker/EsploraTFTColorPicker.ino
@@ -0,0 +1,54 @@
+/*
+
+ Esplora TFT Color Picker
+
+ This example for the Esplora with an Arduino TFT reads
+ the input of the joystick and slider, using the values
+ to change the screen's color.
+
+ This example code is in the public domain.
+
+ Created 15 April 2013 by Scott Fitzgerald
+
+ http://arduino.cc/en/Tutorial/TFTColorPicker
+
+ */
+
+#include <Esplora.h>
+#include <TFT.h> // Arduino LCD library
+#include <SPI.h>
+
+void setup() {
+ Serial.begin(9600);
+
+ // initialize the LCD
+ EsploraTFT.begin();
+
+ // start out with a white screen
+ EsploraTFT.background(255, 255, 255);
+
+}
+
+void loop() {
+
+ // map the values from sensors
+ int xValue = map(Esplora.readJoystickX(), -512, 512, 0, 255); // read the joystick's X position
+ int yValue = map(Esplora.readJoystickY(), -512, 512, 0, 255); // read the joystick's Y position
+ int slider = map(Esplora.readSlider(), 0, 1023, 0, 255); // read the slider's position
+
+ // change the background color based on the mapped values
+ EsploraTFT.background(xValue, yValue, slider);
+
+ // print the mapped values to the Serial monitor
+ Serial.print("background(");
+ Serial.print(xValue);
+ Serial.print(" , ");
+ Serial.print(yValue);
+ Serial.print(" , ");
+ Serial.print(slider);
+ Serial.println(")");
+
+ delay(33);
+
+}
+
diff --git a/libraries/TFT/examples/Esplora/EsploraTFTEtchASketch/EsploraTFTEtchASketch.ino b/libraries/TFT/examples/Esplora/EsploraTFTEtchASketch/EsploraTFTEtchASketch.ino
new file mode 100644
index 0000000..a1430d3
--- /dev/null
+++ b/libraries/TFT/examples/Esplora/EsploraTFTEtchASketch/EsploraTFTEtchASketch.ino
@@ -0,0 +1,83 @@
+/*
+
+ Esplora TFT EtchASketch
+
+ This example for the Arduino TFT and Esplora draws
+ a white line on the screen, based on the position
+ of the joystick. To clear the screen, shake the
+ Esplora, using the values from the accelerometer.
+
+ This example code is in the public domain.
+
+ Created 15 April 2013 by Scott Fitzgerald
+
+ http://arduino.cc/en/Tutorial/EsploraTFTEtchASketch
+
+ */
+
+#include <Esplora.h>
+#include <TFT.h> // Arduino LCD library
+#include <SPI.h>
+
+// initial position of the cursor
+int xPos = EsploraTFT.width()/2;
+int yPos = EsploraTFT.height()/2;
+
+void setup() {
+ // initialize the display
+ EsploraTFT.begin();
+
+ // clear the background
+ EsploraTFT.background(0,0,0);
+}
+
+void loop()
+{
+
+ int xAxis = Esplora.readJoystickX(); // read the X axis
+ int yAxis = Esplora.readJoystickY(); // read the Y axis
+
+ // update the position of the line
+ // depending on the position of the joystick
+ if (xAxis<10 && xAxis>-10){
+ xPos=xPos;
+ }
+ else{
+ xPos = xPos + (map(xAxis, -512, 512, 2, -2));
+ }
+ if (yAxis<10 && yAxis>-10){
+ yAxis=yAxis;
+ }
+ else{
+ yPos = yPos + (map(yAxis, -512, 512, -2, 2));
+ }
+
+// don't let the point go past the screen edges
+ if(xPos > 159){
+ (xPos = 159);
+ }
+
+ if(xPos < 0){
+ (xPos = 0);
+ }
+ if(yPos > 127){
+ (yPos = 127);
+ }
+
+ if(yPos < 0){
+ (yPos = 0);
+ }
+
+ // draw the point
+ EsploraTFT.stroke(255,255,255);
+ EsploraTFT.point(xPos,yPos);
+
+ // check the accelerometer values and clear
+ // the screen if it is being shaken
+ if(abs(Esplora.readAccelerometer(X_AXIS))>200 || abs(Esplora.readAccelerometer(Y_AXIS))>200){
+ EsploraTFT.background(0,0,0);
+ }
+
+ delay(33);
+}
+
diff --git a/libraries/TFT/examples/Esplora/EsploraTFTGraph/EsploraTFTGraph.ino b/libraries/TFT/examples/Esplora/EsploraTFTGraph/EsploraTFTGraph.ino
new file mode 100644
index 0000000..7f2a427
--- /dev/null
+++ b/libraries/TFT/examples/Esplora/EsploraTFTGraph/EsploraTFTGraph.ino
@@ -0,0 +1,56 @@
+/*
+
+ Esplora TFT Graph
+
+ This example for the Esplora with an Arduino TFT reads
+ the value of the light sensor, and graphs the values on
+ the screen.
+
+ This example code is in the public domain.
+
+ Created 15 April 2013 by Scott Fitzgerald
+
+ http://arduino.cc/en/Tutorial/EsploraTFTGraph
+
+ */
+
+#include <Esplora.h>
+#include <TFT.h> // Arduino LCD library
+#include <SPI.h>
+
+// position of the line on screen
+int xPos = 0;
+
+void setup(){
+
+ // initialize the screen
+ EsploraTFT.begin();
+
+ // clear the screen with a nice color
+ EsploraTFT.background(250,16,200);
+}
+
+void loop(){
+
+ // read the sensor value
+ int sensor = Esplora.readLightSensor();
+ // map the sensor value to the height of the screen
+ int graphHeight = map(sensor,0,1023,0,EsploraTFT.height());
+
+ // draw the line in a pretty color
+ EsploraTFT.stroke(250,180,10);
+ EsploraTFT.line(xPos, EsploraTFT.height() - graphHeight, xPos, EsploraTFT.height());
+
+ // if the graph reaches the edge of the screen
+ // erase it and start over from the other side
+ if (xPos >= 160) {
+ xPos = 0;
+ EsploraTFT.background(250,16,200);
+ }
+ else {
+ // increment the horizontal position:
+ xPos++;
+ }
+
+ delay(16);
+}
diff --git a/libraries/TFT/examples/Esplora/EsploraTFTHorizon/EsploraTFTHorizon.ino b/libraries/TFT/examples/Esplora/EsploraTFTHorizon/EsploraTFTHorizon.ino
new file mode 100644
index 0000000..a7945c9
--- /dev/null
+++ b/libraries/TFT/examples/Esplora/EsploraTFTHorizon/EsploraTFTHorizon.ino
@@ -0,0 +1,63 @@
+/*
+
+ Esplora TFT Horizon
+
+ This example for the Arduino TFT and Esplora draws
+ a line on the screen that stays level with the ground
+ as you tile the Esplora side to side
+
+ This example code is in the public domain.
+
+ Created 15 April 2013 by Scott Fitzgerald
+
+ http://arduino.cc/en/Tutorial/EsploraTFTHorizon
+
+ */
+
+#include <Esplora.h>
+#include <TFT.h> // Arduino LCD library
+#include <SPI.h>
+
+// horizontal start and end positions
+int yStart = EsploraTFT.height()/2;
+int yEnd = EsploraTFT.height()/2;
+
+// previous start and end positions
+int oldEndY;
+int oldStartY;
+
+void setup() {
+ // initialize the display
+ EsploraTFT.begin();
+ // make the background black
+ EsploraTFT.background(0,0,0);
+}
+
+void loop()
+{
+ // read the x-axis of te accelerometer
+ int tilt = Esplora.readAccelerometer(X_AXIS);
+
+ // the values are 100 when tilted to the left
+ // and -100 when tilted to the right
+ // map these values to the start and end points
+ yStart = map(tilt,-100,100,EsploraTFT.height(),0);
+ yEnd = map(tilt,-100,100,0,EsploraTFT.height());
+
+ // if the previous values are different than the current values
+ // erase the previous line
+ if (oldStartY != yStart || oldEndY != yEnd) {
+ EsploraTFT.stroke(0,0,0);
+ EsploraTFT.line(0, oldStartY, EsploraTFT.width(), oldEndY);
+ }
+
+ // draw the line in magenta
+ EsploraTFT.stroke(255,0,255);
+ EsploraTFT.line(0,yStart,EsploraTFT.width(),yEnd);
+
+ // save the current start and end points
+ // to compare int he next loop
+ oldStartY= yStart;
+ oldEndY = yEnd;
+ delay(10);
+}
diff --git a/libraries/TFT/examples/Esplora/EsploraTFTPong/EsploraTFTPong.ino b/libraries/TFT/examples/Esplora/EsploraTFTPong/EsploraTFTPong.ino
new file mode 100644
index 0000000..e3422d4
--- /dev/null
+++ b/libraries/TFT/examples/Esplora/EsploraTFTPong/EsploraTFTPong.ino
@@ -0,0 +1,126 @@
+/*
+
+ Esplora TFT Pong
+
+ This example for the Esplora with an Arduino TFT screen reads
+ the value of the joystick to move a rectangular platform
+ on the x and y axes. The platform can intersect with a ball
+ causing it to bounce. The Esplora's slider adjusts the speed
+ of the ball.
+
+ This example code is in the public domain.
+
+ Created by Tom Igoe December 2012
+ Modified 15 April 2013 by Scott Fitzgerald
+
+ http://arduino.cc/en/Tutorial/EsploraTFTPong
+
+ */
+
+#include <Esplora.h>
+#include <TFT.h> // Arduino LCD library
+#include <SPI.h>
+
+// variables for the position of the ball and paddle
+int paddleX = 0;
+int paddleY = 0;
+int oldPaddleX, oldPaddleY;
+int ballDirectionX = 1;
+int ballDirectionY = 1;
+
+int ballX, ballY, oldBallX, oldBallY;
+
+void setup() {
+
+ Serial.begin(9600);
+
+ // initialize the display
+ EsploraTFT.begin();
+ // set the background the black
+ EsploraTFT.background(0,0,0);
+}
+
+void loop() {
+ // save the width and height of the screen
+ int myWidth = EsploraTFT.width();
+ int myHeight = EsploraTFT.height();
+
+ // map the paddle's location to the joystick's position
+ paddleX = map(Esplora.readJoystickX(), 512, -512, 0, myWidth) - 20/2;
+ paddleY = map(Esplora.readJoystickY(), -512, 512, 0, myHeight) - 5/2;
+ Serial.print(paddleX);
+ Serial.print(" ");
+ Serial.println(paddleY);
+
+ // set the fill color to black and erase the previous
+ // position of the paddle if different from present
+ EsploraTFT.fill(0,0,0);
+
+ if (oldPaddleX != paddleX || oldPaddleY != paddleY) {
+ EsploraTFT.rect(oldPaddleX, oldPaddleY, 20, 5);
+ }
+
+ // draw the paddle on screen, save the current position
+ // as the previous.
+ EsploraTFT.fill(255,255,255);
+ EsploraTFT.rect(paddleX, paddleY, 20, 5);
+ oldPaddleX = paddleX;
+ oldPaddleY = paddleY;
+
+ // read the slider to determinde the speed of the ball
+ int ballSpeed = map(Esplora.readSlider(), 0, 1023, 0, 80)+1;
+ if (millis() % ballSpeed < 2) {
+ moveBall();
+ }
+}
+
+
+// this function determines the ball's position on screen
+void moveBall() {
+ // if the ball goes offscreen, reverse the direction:
+ if (ballX > EsploraTFT.width() || ballX < 0) {
+ ballDirectionX = -ballDirectionX;
+ }
+
+ if (ballY > EsploraTFT.height() || ballY < 0) {
+ ballDirectionY = -ballDirectionY;
+ }
+
+ // check if the ball and the paddle occupy the same space on screen
+ if (inPaddle(ballX, ballY, paddleX, paddleY, 20, 5)) {
+ ballDirectionY = -ballDirectionY;
+ }
+
+ // update the ball's position
+ ballX += ballDirectionX;
+ ballY += ballDirectionY;
+
+ // erase the ball's previous position
+ EsploraTFT.fill(0,0,0);
+
+ if (oldBallX != ballX || oldBallY != ballY) {
+ EsploraTFT.rect(oldBallX, oldBallY, 5, 5);
+ }
+
+ // draw the ball's current position
+ EsploraTFT.fill(255,255,255);
+
+ EsploraTFT.rect(ballX, ballY, 5, 5);
+
+ oldBallX = ballX;
+ oldBallY = ballY;
+
+}
+
+// this function checks the position of the ball
+// to see if it intersects with the paddle
+boolean inPaddle(int x, int y, int rectX, int rectY, int rectWidth, int rectHeight) {
+ boolean result = false;
+
+ if ((x >= rectX && x <= (rectX + rectWidth)) &&
+ (y >= rectY && y <= (rectY + rectHeight))) {
+ result = true;
+ }
+
+ return result;
+}
diff --git a/libraries/TFT/examples/Esplora/EsploraTFTTemp/EsploraTFTTemp.ino b/libraries/TFT/examples/Esplora/EsploraTFTTemp/EsploraTFTTemp.ino
new file mode 100644
index 0000000..b475d2d
--- /dev/null
+++ b/libraries/TFT/examples/Esplora/EsploraTFTTemp/EsploraTFTTemp.ino
@@ -0,0 +1,64 @@
+/*
+
+ Esplora TFT Temperature Display
+
+ This example for the Arduino TFT screen is for use
+ with an Arduino Esplora.
+
+ This example reads the temperature of the Esplora's
+ on board thermisistor and displays it on an attached
+ LCD screen, updating every second.
+
+ This example code is in the public domain.
+
+ Created 15 April 2013 by Scott Fitzgerald
+
+ http://arduino.cc/en/Tutorial/EsploraTFTTemp
+
+ */
+
+// include the necessary libraries
+#include <Esplora.h>
+#include <TFT.h> // Arduino LCD library
+#include <SPI.h>
+
+char tempPrintout[3]; // array to hold the temperature data
+
+void setup() {
+
+ // Put this line at the beginning of every sketch that uses the GLCD
+ EsploraTFT.begin();
+
+ // clear the screen with a black background
+ EsploraTFT.background(0,0,0);
+
+ // set the text color to magenta
+ EsploraTFT.stroke(200,20,180);
+ // set the text to size 2
+ EsploraTFT.setTextSize(2);
+ // start the text at the top left of the screen
+ // this text is going to remain static
+ EsploraTFT.text("Degrees in C :\n ",0,0);
+
+ // set the text in the loop to size 5
+ EsploraTFT.setTextSize(5);
+}
+
+void loop() {
+
+ // read the temperature in Celcius and store it in a String
+ String temperature = String(Esplora.readTemperature(DEGREES_C));
+
+ // convert the string to a char array
+ temperature.toCharArray(tempPrintout, 3);
+
+ // set the text color to white
+ EsploraTFT.stroke(255,255,255);
+ // print the temperature one line below the static text
+ EsploraTFT.text(tempPrintout, 0, 30);
+
+ delay(1000);
+ // erase the text for the next loop
+ EsploraTFT.stroke(0,0,0);
+ EsploraTFT.text(tempPrintout, 0, 30);
+}