1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-07-30 16:24:09 +03:00

added the TFT display library

This commit is contained in:
Fede85
2013-05-17 12:39:31 +02:00
parent bd240670ba
commit ee6a833b7b
28 changed files with 3410 additions and 0 deletions

View File

@ -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);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -0,0 +1,63 @@
/*
Esplora TFT Horizion
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/EsploraTFTHorizion
*/
#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);
}

View File

@ -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;
}

View File

@ -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);
}