Correct various inconsequential typos

This commit is contained in:
Bodmer
2021-11-05 23:55:27 +00:00
parent aa7bad45d3
commit 11b006e1d9
54 changed files with 127 additions and 113 deletions

View File

@@ -140,7 +140,7 @@ void computeCA() {
}
}
// Check the Moore neighborhood
// Check the Moore neighbourhood
int getNumberOfNeighbors(int x, int y) {
return grid[x - 1][y] + grid[x - 1][y - 1] + grid[x][y - 1] + grid[x + 1][y - 1] + grid[x + 1][y] + grid[x + 1][y + 1] + grid[x][y + 1] + grid[x - 1][y + 1];
}

View File

@@ -134,7 +134,7 @@ void computeCA() {
}
}
// Check the Moore neighborhood
// Check the Moore neighbourhood
int getNumberOfNeighbors(int x, int y) {
return grid[x - 1][y] + grid[x - 1][y - 1] + grid[x][y - 1] + grid[x + 1][y - 1] + grid[x + 1][y] + grid[x + 1][y + 1] + grid[x][y + 1] + grid[x - 1][y + 1];
}

View File

@@ -134,7 +134,7 @@ void computeCA() {
}
}
// Check the Moore neighborhood
// Check the Moore neighbourhood
int getNumberOfNeighbors(int x, int y) {
return grid[x - 1][y] + grid[x - 1][y - 1] + grid[x][y - 1] + grid[x + 1][y - 1] + grid[x + 1][y] + grid[x + 1][y + 1] + grid[x][y + 1] + grid[x - 1][y + 1];
}

View File

@@ -84,7 +84,7 @@ void setup() {
fact = 180 / 3.14159259; // conversion from degrees to radians.
Xoff = 240; // Position the center of the 3d conversion space into the center of the TFT screen.
Xoff = 240; // Position the centre of the 3d conversion space into the centre of the TFT screen.
Yoff = 160;
Zoff = 550; // Z offset in 3D space (smaller = closer and bigger rendering)
}
@@ -241,7 +241,7 @@ void ProcessLine(struct Line2d *ret, struct Line3d vec)
ret->p1.x = rx2;
ret->p1.y = ry2;
}
// The ifs here are checks for out of bounds. needs a bit more code here to "safe" lines that will be way out of whack, so they dont get drawn and cause screen garbage.
// The ifs here are checks for out of bounds. needs a bit more code here to "safe" lines that will be way out of whack, so they don't get drawn and cause screen garbage.
}

View File

@@ -33,12 +33,12 @@ String fps = "xx.xx fps";
// Structure to hold circle plotting parameters
typedef struct circle_t {
int16_t cx[CNUMBER] = { 0 }; // x coord of centre
int16_t cy[CNUMBER] = { 0 }; // y coord of centre
int16_t cx[CNUMBER] = { 0 }; // x coordinate of centre
int16_t cy[CNUMBER] = { 0 }; // y coordinate of centre
int16_t cr[CNUMBER] = { 0 }; // radius
uint16_t col[CNUMBER] = { 0 }; // colour
int16_t dx[CNUMBER] = { 0 }; // x movment & direction
int16_t dy[CNUMBER] = { 0 }; // y movment & direction
int16_t dx[CNUMBER] = { 0 }; // x movement & direction
int16_t dy[CNUMBER] = { 0 }; // y movement & direction
} circle_param;
// Create the structure and get a pointer to it

View File

@@ -4,9 +4,9 @@
If needed, first resize and crop to an appropriate width and height
to suit your display with an image editing program such as IrfanView.
You can also change the image "guality" to reduce the file size.
You can also change the image "quality" to reduce the file size.
Paste the array into a new tabe, top and tail the array from the
Paste the array into a new tab, top and tail the array from the
tool to look like the one below with:
const uint8_t name[] PROGMEM = {

View File

@@ -56,7 +56,7 @@ TFT_eSprite spr[2] = {TFT_eSprite(&tft), TFT_eSprite(&tft) };
// Toggle buffer selection
bool sprSel = 0;
// Pointers to start of Sprties in RAM
// Pointers to start of Sprites in RAM
uint16_t* sprPtr[2];
// Define the cube face colors
@@ -305,7 +305,7 @@ void drawCube()
p2y[i] = IHEIGHT / 2 + ay[i] * CUBE_SIZE / az[i];
}
// Fill the buffer with color 0 (Black)
// Fill the buffer with colour 0 (Black)
spr[sprSel].fillSprite(TFT_BLACK);
for (int i = 0; i < 12; i++) {

View File

@@ -39,7 +39,7 @@ TFT_eSPI tft = TFT_eSPI(); // Invoke custom library
#define RED 0xF800
#define WHITE 0xFFFF
#define YBOTTOM 123 // Ball Y coord at bottom
#define YBOTTOM 123 // Ball Y coordinate at bottom
#define YBOUNCE -3.5 // Upward velocity on ball bounce
// Ball coordinates are stored floating-point because screen refresh
@@ -49,7 +49,7 @@ float ballx = 20.0, bally = YBOTTOM, // Current ball position
ballframe = 3; // Ball animation frame #
int balloldx = ballx, balloldy = bally; // Prior ball position
// Working buffer for ball rendering...2 scanlines that alternate,
// Working buffer for ball rendering...2 scan lines that alternate,
// one is rendered while the other is transferred via DMA.
uint16_t renderbuf[2][SCREENWIDTH];
@@ -64,7 +64,7 @@ void setup() {
tft.begin();
tft.setRotation(3); // Landscape orientation, USB at bottom right
tft.setSwapBytes(false);
// Draw initial framebuffer contents:
// Draw initial frame buffer contents:
//tft.setBitmapColor(GRIDCOLOR, BGCOLOR);
tft.fillScreen(BGCOLOR);
@@ -144,7 +144,7 @@ void loop() {
(by >= 0) && (by < BALLHEIGHT)) { // inside the ball bitmap area?
// Yes, do ball compositing math...
p = ball[by][bx1 / 2]; // Get packed value (2 pixels)
c = (bx1 & 1) ? (p & 0xF) : (p >> 4); // Unpack high or low nybble
c = (bx1 & 1) ? (p & 0xF) : (p >> 4); // Unpack high or low nibble
if(c == 0) { // Outside ball - just draw grid
c = background[bgy][bgx1 / 8] & (0x80 >> (bgx1 & 7)) ? GRIDCOLOR : BGCOLOR;
} else if(c > 1) { // In ball area...
@@ -155,7 +155,7 @@ void loop() {
} else { // Outside ball bitmap, just draw background bitmap...
c = background[bgy][bgx1 / 8] & (0x80 >> (bgx1 & 7)) ? GRIDCOLOR : BGCOLOR;
}
*destPtr++ = c<<8 | c>>8; // Store pixel color
*destPtr++ = c<<8 | c>>8; // Store pixel colour
bx1++; // Increment bitmap position counters (X axis)
bgx1++;
}

View File

@@ -1,7 +1,14 @@
// An adaption of the "UncannyEyes" sketch (see eye_functions tab)
// for the TFT_eSPI library. As written the sketch is for driving
// one (240x320 minimum) TFT display, showing 2 eyes. See example
// Animated_Eyes_2 for a dual 128x128 TFT display configued sketch.
// Animated_Eyes_2 for a dual 128x128 TFT display configured sketch.
// The size of the displayed eye is determined by the screen size and
// resolution. The eye image is 128 pixels wide. In humans the palpebral
// fissure (open eye) width is about 30mm so a low resolution, large
// pixel size display works best to show a scale eye image. Note that
// display manufacturers usually quote the diagonal measurement, so a
// 128 x 128 1.7" display or 128 x 160 2" display is about right.
// Configuration settings for the eye, eye style, display count,
// chip selects and x offsets can be defined in the sketch "config.h" tab.
@@ -9,7 +16,7 @@
// Performance (frames per second = fps) can be improved by using
// DMA (for SPI displays only) on ESP32 and STM32 processors. Use
// as high a SPI clock rate as is supported by the display. 27MHz
// minimum, some diplays can be operated at higher clock rates in
// minimum, some displays can be operated at higher clock rates in
// the range 40-80MHz.
// Single defaultEye performance for different processors
@@ -22,7 +29,7 @@
// STM32F446 55MHz SPI 83 fps 155 fps
// STM32F767 55MHz SPI 136 fps 197 fps
// DMA can be used with STM32 and ESP32 processors when the interface
// DMA can be used with RP2040, STM32 and ESP32 processors when the interface
// is SPI, uncomment the next line:
//#define USE_DMA
@@ -95,7 +102,7 @@ void setup(void) {
// User call for additional features
user_setup();
// Initialiase the eye(s), this will set all chip selects low for the tft.init()
// Initialise the eye(s), this will set all chip selects low for the tft.init()
initEyes();
// Initialise TFT

View File

@@ -2,6 +2,13 @@
// for the TFT_eSPI library. As written the sketch is for driving
// two TFT displays.
// The size of the displayed eye is determined by the screen size and
// resolution. The eye image is 128 pixels wide. In humans the palpebral
// fissure (open eye) width is about 30mm so a low resolution, large
// pixel size display works best to show a scale eye image. Note that
// display manufacturers usually quote the diagonal measurement, so a
// 128 x 128 1.7" display or 128 x 160 2" display is about right.
// The number of displays and chip selects used are defined in the
// config.h tab. The display count can be set to 1. If using one
// TFT and the chip select for that display is already defined in
@@ -17,7 +24,7 @@
// Performance (frames per second = fps) can be improved by using
// DMA (for SPI displays only) on ESP32 and STM32 processors. Use
// as high a SPI clock rate as is supported by the display. 27MHz
// minimum, some diplays can be operated at higher clock rates in
// minimum, some displays can be operated at higher clock rates in
// the range 40-80MHz.
// Single defaultEye performance for different processors
@@ -30,7 +37,7 @@
// STM32F446 55MHz SPI 83 fps 155 fps
// STM32F767 55MHz SPI 136 fps 197 fps
// DMA can be used with STM32 and ESP32 processors when the interface
// DMA can be used with RP2040, STM32 and ESP32 processors when the interface
// is SPI, uncomment the next line:
//#define USE_DMA
@@ -103,7 +110,7 @@ void setup(void) {
// User call for additional features
user_setup();
// Initialiase the eye(s), this will set all chip selects low for the tft.init()
// Initialise the eye(s), this will set all chip selects low for the tft.init()
initEyes();
// Initialise TFT

View File

@@ -8,9 +8,9 @@
// To do, maybe, one day:
// 1. Get the eye to blink
// 2. Add another screen for another eye
// 3. Add varaible to set how wide open the eye is
// 3. Add variable to set how wide open the eye is
// 4. Add a reflected highlight to the cornea
// 5. Add top eyelid shaddow to eye surface
// 5. Add top eyelid shadow to eye surface
// 6. Add aliasing to blur mask edge
//
// With one lidded eye drawn the code runs at 28-33fps (at 27-40MHz SPI clock)
@@ -58,8 +58,8 @@
// The ESP8266 is rather constrained here as it only has one analogue port.
// An I2C ADC could be used for more analogue channels
//#define JOYSTICK_X_PIN A0 // Analog pin for eye horiz pos (else auto)
//#define JOYSTICK_Y_PIN A0 // Analog pin for eye vert position (")
//#define JOYSTICK_X_PIN A0 // Analogue pin for eye horiz pos (else auto)
//#define JOYSTICK_Y_PIN A0 // Analogue pin for eye vert position (")
//#define JOYSTICK_X_FLIP // If set, reverse stick X axis
//#define JOYSTICK_Y_FLIP // If set, reverse stick Y axis
#define TRACKING // If enabled, eyelid tracks pupil
@@ -107,7 +107,7 @@ void setup(void) {
uint8_t e = 0;
Serial.begin(250000);
randomSeed(analogRead(A0)); // Seed random() from floating analog input
randomSeed(analogRead(A0)); // Seed random() from floating analogue input
eye[e].tft.init();
eye[e].tft.fillScreen(TFT_BLACK);

View File

@@ -21,7 +21,7 @@
https://playground.arduino.cc/Code/UTF-8
To sumarise, UTF-8 characters are encoded as mor than 1 byte so care must
To summarise, UTF-8 characters are encoded as more than 1 byte so care must
be taken:
char c = 'µ'; // Wrong

View File

@@ -19,7 +19,7 @@
TFT_eSPI tft = TFT_eSPI(); // Invoke custom library
// This is the file name used to store the touch coordinate
// calibration data. Cahnge the name to start a new calibration.
// calibration data. Change the name to start a new calibration.
#define CALIBRATION_FILE "/TouchCalData3"
// Set REPEAT_CAL to true instead of false to run calibration
@@ -115,7 +115,7 @@ void touch_calibrate()
// check file system exists
if (!SPIFFS.begin()) {
Serial.println("Formating file system");
Serial.println("Formatting file system");
SPIFFS.format();
SPIFFS.begin();
}

View File

@@ -133,7 +133,7 @@ void touch_calibrate()
// check file system exists
if (!SPIFFS.begin()) {
Serial.println("Formating file system");
Serial.println("Formatting file system");
SPIFFS.format();
SPIFFS.begin();
}

View File

@@ -1,4 +1,4 @@
// Bodmers BMP image rendering function
// Bodmer's BMP image rendering function
void drawBmp(const char *filename, int16_t x, int16_t y) {

View File

@@ -87,7 +87,7 @@ void loop() {
// The new larger fonts do not need to use the .setCursor call, coords are embedded
tft.setTextColor(TFT_BLACK); // Do not plot the background colour
// Overlay the black text on top of the rainbow plot (the advantage of not drawing the backgorund colour!)
// Overlay the black text on top of the rainbow plot (the advantage of not drawing the background colour!)
tft.drawString("Font size 2", xpos, 14, 2); // Draw text centre at position xpos, 14 using font 2
tft.drawString("Font size 4", xpos, 30, 4); // Draw text centre at position xpos, 30 using font 4
tft.drawString("12.34", xpos, 54, 6); // Draw text centre at position xpos, 54 using font 6
@@ -150,7 +150,7 @@ void loop() {
// Fill screen with a rainbow pattern
void rainbow_fill()
{
// The colours and state are not initialised so the start colour changes each time the funtion is called
// The colours and state are not initialised so the start colour changes each time the function is called
int rotation = tft.getRotation();
tft.setRotation(random(4));
for (int i = tft.height() - 1; i >= 0; i--) {

View File

@@ -17,7 +17,7 @@
int32_t h = tft.getViewportHeight(); // Always returns height of viewport
bool f = tft.getViewportDatum(); // Datum of the viewport (false = TFT corner, true = viewport corner)
// To check if all or part of an area is in the viewport
checkViewport(x, y, w, h); // Retruns "true" if all or part of area is in viewport
checkViewport(x, y, w, h); // Returns "true" if all or part of area is in viewport
// To draw a rectangular frame outside viewport of width W (when W is negative)
tft.frameViewport(TFT_RED, -W); // Note setting the width to a large negative value will clear the screen

View File

@@ -1,5 +1,5 @@
/*
This tests the alpha blending function that is used with the antialiased
This tests the alpha blending function that is used with the anti-aliased
fonts:
Alpha = 0 = 100% background, alpha = 255 = 100% foreground colour

View File

@@ -144,7 +144,7 @@ void loop() {
// Mono spaced font
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
spr.loadFont(AA_FONT_MONO); // Mono spaced fonts have fixed intercharacter gaps to
spr.loadFont(AA_FONT_MONO); // Mono spaced fonts have fixed inter-character gaps to
// aid formatting
int bnum = 1;

View File

@@ -58,7 +58,7 @@ void setup(void) {
tft.setRotation(1);
spr.setColorDepth(16); // 16 bit colour needed to show antialiased fonts
spr.setColorDepth(16); // 16 bit colour needed to show anti-aliased fonts
}
void loop() {

View File

@@ -11,10 +11,10 @@
The library supports 16 bit unicode characters:
https://en.wikipedia.org/wiki/Unicode_font
The characters supported are in the in the Basic Multilingal Plane:
The characters supported are in the in the Basic Multilingual Plane:
https://en.wikipedia.org/wiki/Plane_(Unicode)#Basic_Multilingual_Plane
Make sure all the display driver and pin connenctions are correct by
Make sure all the display driver and pin connections are correct by
editing the User_Setup.h file in the TFT_eSPI library folder.
*/

View File

@@ -1,6 +1,6 @@
/*
This sketch uses Smooth fonts stored in FLASH program memory. It uses a method
for rendering anti-aliased fonts on a graded background. This is acheived by
for rendering anti-aliased fonts on a graded background. This is achieved by
telling the TFT_eSPI library the pixel color at each point on the screen. In
this sketch a background colour gradient is drawn, the color of each pixel can
therefore be determined by a function. The TFT does not need to support reading
@@ -74,7 +74,7 @@ void setup(void) {
void loop() {
// Select a font size comensurate with screen size
// Select a font size commensurate with screen size
if (tft.width()>= 320)
tft.loadFont(AA_FONT_LARGE);
else

View File

@@ -1,6 +1,6 @@
/*
This sketch uses Smooth fonts stored in FLASH program memory. It uses a method
for rendering anti-aliased fonts on an arbitrary background. This is acheived
for rendering anti-aliased fonts on an arbitrary background. This is achieved
by reading the pixel color at each point on the screen. The TFT must support
reading the graphics RAM of the screen memory. This sketch has been tested with
ILI9241 and ILI9481 serial and parallel screens.

View File

@@ -15,7 +15,7 @@
String okay = "5µA"; // Good
This is because UTF-8 characters outside the basic Latin set occupy more than
1 byte per character! A 16 bit unicode character occupies 3 bytes!
1 byte per character! A 16 bit Unicode character occupies 3 bytes!
*/

View File

@@ -3,7 +3,7 @@
This sketch uses method 3, the font characters are first plotted in a Sprite, then the
Sprite is pushed to the screen. This method is very flexible and the Sprite can be
created, deleted, resized as needed. To render anit-aliased fonts well the Sprite
created, deleted, resized as needed. To render anti-aliased fonts well the Sprite
needs to be 16 bit. The fonts will render in 1 bit per pixel sprites but there
will then be no anti-aliasing. Using 1 bit per pixel Sprites is however useful
to use the extended Unicode range in fonts on mono displays like ePaper.
@@ -112,7 +112,7 @@ void loop() {
tft.fillScreen(TFT_BLACK);
// Beware: Sprites are a differerent "class" to TFT, so different fonts can be loaded
// Beware: Sprites are a different "class" to TFT, so different fonts can be loaded
// in the tft and sprite instances, so load the font in the class instance you use!
// In this example this means the spr. instance.
@@ -163,7 +163,7 @@ void loop() {
// Mono spaced font
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
spr.loadFont(AA_FONT_MONO, LittleFS); // Mono spaced fonts have fixed intercharacter gaps to
spr.loadFont(AA_FONT_MONO, LittleFS); // Mono spaced fonts have fixed inter-character gaps to
// aid formatting
int bnum = 1;

View File

@@ -61,7 +61,7 @@ void setup(void) {
tft.setRotation(1);
spr.setColorDepth(16); // 16 bit colour needed to show antialiased fonts
spr.setColorDepth(16); // 16 bit colour needed to show anti-aliased fonts
if (!LittleFS.begin()) {
Serial.println("Flash FS initialisation failed!");

View File

@@ -1,7 +1,7 @@
/*
Sketch to demonstrate using the print class with smooth fonts
Sketch is writtent for a 240 x 320 display
Sketch is written for a 240 x 320 display
// Upload the fonts and icons to LittleFS (must set at least 1M for LittleFS) using the
// "Tools" "ESP8266 LittleFS Data Upload" menu option in the IDE.
@@ -12,13 +12,13 @@
sketch in the library Tools folder. The Processing sketch can convert
TrueType fonts in *.ttf or *.otf files.
The library supports 16 bit unicode characters:
The library supports 16 bit Unicode characters:
https://en.wikipedia.org/wiki/Unicode_font
The characters supported are in the in the Basic Multilingal Plane:
The characters supported are in the in the Basic Multilingual Plane:
https://en.wikipedia.org/wiki/Plane_(Unicode)#Basic_Multilingual_Plane
Make sure all the display driver and pin connenctions are correct by
Make sure all the display driver and pin connections are correct by
editing the User_Setup.h file in the TFT_eSPI library folder.
#########################################################################

View File

@@ -1,6 +1,6 @@
/*
This sketch is based on Font Demo 1. It introduces a method for rendering
anti-aliased fonts on a graded background. This is acheived by telling the
anti-aliased fonts on a graded background. This is achieved by telling the
TFT_eSPI library the pixel color at each point on the screen. In this sketch
a graded background is drawn, the color of each pixel can therefore be
determined. The TFT does not need to support reading of the graphics memory.
@@ -99,7 +99,7 @@ void setup(void) {
void loop() {
// Select a font size comensurate with screen size
// Select a font size commensurate with screen size
if (tft.width()>= 320)
tft.loadFont(AA_FONT_LARGE, LittleFS);
else

View File

@@ -1,6 +1,6 @@
/*
This sketch is based on Font Demo 1. It introduces a method for rendering
anti-aliased fonts on an arbitrary background. This is acheived by reading
anti-aliased fonts on an arbitrary background. This is achieved by reading
the pixel color at each point on the screen. The TFT must support reading
the graphics RAM of the screen memory. This sketch has been tested with
ILI9241 and ILI9481 serial and parallel screens. Other screens may or may
@@ -52,7 +52,7 @@ void setup(void) {
tft.begin();
tft.setCallback(pixelColor); // The callback is only used durung font rendering
tft.setCallback(pixelColor); // The callback is only used during font rendering
//tft.setCallback(nullptr); // Switch off callback (off by default)
tft.setRotation(1);
@@ -110,7 +110,7 @@ unsigned int colour = red << 11; // Colour order is RGB 5+6+5 bits each
void rainbow_fill()
{
// The colours and state are not initialised so the start colour changes each time the funtion is called
// The colours and state are not initialised so the start colour changes each time the function is called
for (int i = 319; i >= 0; i--) {
// Draw a vertical line 1 pixel wide in the selected colour

View File

@@ -8,14 +8,14 @@
The library expects strings to be in UTF-8 encoded format:
https://www.fileformat.info/info/unicode/utf8.htm
Creating varaibles needs to be done with care when using character arrays:
Creating variables needs to be done with care when using character arrays:
char c = 'µ'; // Wrong
char bad[4] = "5µA"; // Wrong
char good[] = "5µA"; // Good
String okay = "5µA"; // Good
This is because UTF-8 characters outside the basic Latin set occupy more than
1 byte per character! A 16 bit unicode character occupies 3 bytes!
1 byte per character! A 16 bit Unicode character occupies 3 bytes!
*/

View File

@@ -10,13 +10,13 @@
Load the font file onto the root directory of the SD Card. The font files
used by this sketch can be found in the Data folder, press Ctrl+K to see it.
The library supports 16 bit unicode characters:
The library supports 16 bit Unicode characters:
https://en.wikipedia.org/wiki/Unicode_font
The characters supported are in the in the Basic Multilingal Plane:
The characters supported are in the in the Basic Multilingual Plane:
https://en.wikipedia.org/wiki/Plane_(Unicode)#Basic_Multilingual_Plane
Make sure all the display driver and pin connenctions are correct by
Make sure all the display driver and pin connections are correct by
editing the User_Setup.h file in the TFT_eSPI library folder.
#########################################################################

View File

@@ -32,7 +32,7 @@
#define AA_FONT_SMALL "NotoSansBold15"
#define AA_FONT_LARGE "NotoSansBold36"
// Font files are stored in SPIFFS, so load the linbrary
// Font files are stored in SPIFFS, so load the library
#include <FS.h>
#include <SPI.h>

View File

@@ -3,7 +3,7 @@
This sketch uses method 3, the font characters are first plotted in a Sprite, then the
Sprite is pushed to the screen. This method is very flexible and the Sprite can be
created, deleted, resized as needed. To render anit-aliased fonts well the Sprite
created, deleted, resized as needed. To render anti-aliased fonts well the Sprite
needs to be 16 bit. The fonts will render in 1 bit per pixel sprites but there
will then be no anti-aliasing. Using 1 bit per pixel Sprites is however useful
to use the extended Unicode range in fonts on mono displays like ePaper.
@@ -33,7 +33,7 @@
#define AA_FONT_SMALL "NotoSansBold15"
#define AA_FONT_LARGE "NotoSansBold36"
#define AA_FONT_MONO "NotoSansMonoSCB20" // NotoSansMono-SemiCondensedBold 20pt
// Font files are stored in SPIFFS, so load the linbrary
// Font files are stored in SPIFFS, so load the library
#include <FS.h>
#include <SPI.h>
@@ -50,7 +50,7 @@ void setup(void) {
tft.setRotation(1);
spr.setColorDepth(16); // 16 bit colour needed to show antialiased fonts
spr.setColorDepth(16); // 16 bit colour needed to show anti aliased fonts
if (!SPIFFS.begin()) {
Serial.println("SPIFFS initialisation failed!");
@@ -112,7 +112,7 @@ void loop() {
tft.fillScreen(TFT_BLACK);
// Beware: Sprites are a differerent "class" to TFT, so different fonts can be loaded
// Beware: Sprites are a different "class" to TFT, so different fonts can be loaded
// in the tft and sprite instances, so load the font in the class instance you use!
// In this example this means the spr. instance.
@@ -163,7 +163,7 @@ void loop() {
// Mono spaced font
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
spr.loadFont(AA_FONT_MONO); // Mono spaced fonts have fixed intercharacter gaps to
spr.loadFont(AA_FONT_MONO); // Mono spaced fonts have fixed inter-character gaps to
// aid formatting
int bnum = 1;

View File

@@ -44,7 +44,7 @@
#define AA_FONT_SMALL "NotoSansBold15"
#define AA_FONT_LARGE "NotoSansBold36"
// Font files are stored in SPIFFS, so load the linbrary
// Font files are stored in SPIFFS, so load the library
#include <FS.h>
#include <SPI.h>
@@ -61,7 +61,7 @@ void setup(void) {
tft.setRotation(1);
spr.setColorDepth(16); // 16 bit colour needed to show antialiased fonts
spr.setColorDepth(16); // 16 bit colour needed to show anti-aliased fonts
if (!SPIFFS.begin()) {
Serial.println("SPIFFS initialisation failed!");

View File

@@ -1,7 +1,7 @@
/*
Sketch to demonstrate using the print class with smooth fonts
Sketch is writtent for a 240 x 320 display
Sketch is written for a 240 x 320 display
Load the font file into SPIFFS first by using the Arduino IDE
Sketch Data Upload menu option. Font files must be stored in the
@@ -15,13 +15,13 @@
Note: SPIFFS does not accept an underscore _ in filenames!
The library supports 16 bit unicode characters:
The library supports 16 bit Unicode characters:
https://en.wikipedia.org/wiki/Unicode_font
The characters supported are in the in the Basic Multilingal Plane:
The characters supported are in the in the Basic Multilingual Plane:
https://en.wikipedia.org/wiki/Plane_(Unicode)#Basic_Multilingual_Plane
Make sure all the display driver and pin connenctions are correct by
Make sure all the display driver and pin connections are correct by
editing the User_Setup.h file in the TFT_eSPI library folder.
#########################################################################

View File

@@ -1,13 +1,13 @@
/*
This sketch is based on Font Demo 1. It introduces a method for rendering
anti-aliased fonts on a graded background. This is acheived by telling the
anti-aliased fonts on a graded background. This is achieved by telling the
TFT_eSPI library the pixel color at each point on the screen. In this sketch
a graded background is drawn, the color of each pixel can therefore be
determined. The TFT does not need to support reading of the graphics memory.
The sketch could be adapted so only part of the screen is gas a color gradient.
The TFT_eSPI library must be given the name of the function in the sketch
that will return the pixel xolor at a position x,y on the TFT. In this
that will return the pixel color at a position x,y on the TFT. In this
sketch that function is called gradientColor, so this line is included:
tft.setCallback(gradientColor);
@@ -100,7 +100,7 @@ void setup(void) {
void loop() {
// Select a font size comensurate with screen size
// Select a font size commensurate with screen size
if (tft.width()>= 320)
tft.loadFont(AA_FONT_LARGE);
else

View File

@@ -1,6 +1,6 @@
/*
This sketch is based on Font Demo 1. It introduces a method for rendering
anti-aliased fonts on an arbitrary background. This is acheived by reading
anti-aliased fonts on an arbitrary background. This is achieved by reading
the pixel color at each point on the screen. The TFT must support reading
the graphics RAM of the screen memory. This sketch has been tested with
ILI9241 and ILI9481 serial and parallel screens. Other screens may or may
@@ -52,7 +52,7 @@ void setup(void) {
tft.begin();
tft.setCallback(pixelColor); // The callback is only used durung font rendering
tft.setCallback(pixelColor); // The callback is only used during font rendering
//tft.setCallback(nullptr); // Switch off callback (off by default)
tft.setRotation(1);
@@ -81,7 +81,7 @@ void loop() {
rainbow_fill(); // Fill the screen with rainbow colours
// Select a font size comensurate with screen size
// Select a font size commensurate with screen size
if (tft.width()>= 320)
tft.loadFont(AA_FONT_LARGE);
else
@@ -110,7 +110,7 @@ unsigned int colour = red << 11; // Colour order is RGB 5+6+5 bits each
void rainbow_fill()
{
// The colours and state are not initialised so the start colour changes each time the funtion is called
// The colours and state are not initialised so the start colour changes each time the function is called
for (int i = 319; i >= 0; i--) {
// Draw a vertical line 1 pixel wide in the selected colour

View File

@@ -8,14 +8,14 @@
The library expects strings to be in UTF-8 encoded format:
https://www.fileformat.info/info/unicode/utf8.htm
Creating varaibles needs to be done with care when using character arrays:
Creating variables needs to be done with care when using character arrays:
char c = 'µ'; // Wrong
char bad[4] = "5µA"; // Wrong
char good[] = "5µA"; // Good
String okay = "5µA"; // Good
This is because UTF-8 characters outside the basic Latin set occupy more than
1 byte per character! A 16 bit unicode character occupies 3 bytes!
1 byte per character! A 16 bit Unicode character occupies 3 bytes!
*/

View File

@@ -6,10 +6,10 @@
// The sketch operates by creating a copy of the screen block where
// the needle will be drawn, the needle is then drawn on the screen.
// When the needle moves, the original copy of the sreen area is
// When the needle moves, the original copy of the screen area is
// pushed to the screen to over-write the needle graphic. A copy
// of the screen where the new position will be drawn is then made
// before drawing the needle in the new postion. This technique
// before drawing the needle in the new position. This technique
// allows the needle to move over other screen graphics.
// The sketch calculates the size of the buffer memory required and
@@ -195,7 +195,7 @@ void plotNeedle(int16_t angle, uint16_t ms_delay)
buffer_loaded = true;
}
// Draw the needle in the new postion, black in needle image is transparent
// Draw the needle in the new position, black in needle image is transparent
needle.pushRotated(old_angle, TFT_BLACK);
// Wait before next update

View File

@@ -1,5 +1,5 @@
// This sketch draws a rotating Yin and Yang symbol. It illustrates
// the drawimg and rendering of simple animated graphics using
// the drawing and rendering of simple animated graphics using
// a 1 bit per pixel (1 bpp) Sprite.
// Note: TFT_BLACK sets the pixel value to 0

View File

@@ -87,7 +87,7 @@ void loop() {
// it is rotated and hence it clears the swept area to black
for (int16_t angle = 0; angle <= 360; angle += 5)
{
needle.pushRotated(angle); // Plot direct to TFT at specifed angle
needle.pushRotated(angle); // Plot direct to TFT at specified angle
yield(); // Avoid a watchdog time-out
}
}

View File

@@ -3,7 +3,7 @@
This example draws a jpeg image in a Sprite then plot a rotated copy of the Sprite
to the TFT.
The jpeg used in in the sketch Data folder (presss Ctrl+K to see folder)
The jpeg used in in the sketch Data folder (press Ctrl+K to see folder)
The jpeg must be uploaded to the ESP8266 or ESP32 SPIFFS by using the Tools menu
sketch data upload option of the Arduino IDE. If you do not have that option it can
@@ -19,7 +19,7 @@
Created by Bodmer 6/1/19 as an example to the TFT_eSPI library:
https://github.com/Bodmer/TFT_eSPI
Extension funtions in the TFT_eFEX library are used to list SPIFFS files and render
Extension functions in the TFT_eFEX library are used to list SPIFFS files and render
the jpeg to the TFT and to the Sprite:
https://github.com/Bodmer/TFT_eFEX

View File

@@ -1,7 +1,7 @@
/*
Display all the fast rendering fonts in a sprite
Make sure all the display driver and pin comnections are correct by
Make sure all the display driver and pin connections are correct by
editing the User_Setup.h file in the TFT_eSPI library folder.
#########################################################################

View File

@@ -107,7 +107,7 @@ void loop() {
// The new larger fonts do not use the .setCursor call, coords are embedded
img.setTextColor(TFT_BLACK, TFT_BLACK); // Do not plot the background colour
// Overlay the black text on top of the rainbow plot (the advantage of not drawing the backgorund colour!)
// Overlay the black text on top of the rainbow plot (the advantage of not drawing the background colour!)
img.drawCentreString("Font size 2", 80, 14, 2); // Draw text centre at position 80, 12 using font 2
//img.drawCentreString("Font size 2",81,12,2); // Draw text centre at position 80, 12 using font 2

View File

@@ -16,7 +16,7 @@
A 16 bit Sprite occupies (2 * width * height) bytes in RAM.
On a ESP8266 Sprite sizes up to 126 x 160 can be accomodated,
On a ESP8266 Sprite sizes up to 126 x 160 can be accommodated,
this size requires 40kBytes of RAM for a 16 bit colour depth.
When 8 bit colour depth sprites are created they occupy
@@ -46,7 +46,7 @@ void setup()
// Initialise the TFT registers
tft.init();
// Optionally set colour depth to 8 or 16 bits, default is 16 if not spedified
// Optionally set colour depth to 8 or 16 bits, default is 16 if not specified
// spr.setColorDepth(8);
// Create a sprite of defined size
@@ -123,7 +123,7 @@ void loop(void)
{
if (updateTime <= millis())
{
// Use time delay so sprtie does not move fast when not all on screen
// Use time delay so sprite does not move fast when not all on screen
updateTime = millis() + wait;
// Push the sprite to the TFT screen

View File

@@ -16,7 +16,7 @@
A 16 bit Sprite occupies (2 * width * height) bytes in RAM.
On a ESP8266 Sprite sizes up to 126 x 160 can be accomodated,
On a ESP8266 Sprite sizes up to 126 x 160 can be accommodated,
this size requires 40kBytes of RAM for a 16 bit color depth.
When 8 bit color depth sprites are created they occupy

View File

@@ -1,7 +1,7 @@
/*
Sketch to show scrolling of the graphics in sprites.
Scrolling in this way moves the pixels in a defined rectangle
within the Sprite. By defalt the whole sprite is scrolled.
within the Sprite. By default the whole sprite is scrolled.
The gap left by scrolling is filled with a defined colour.
Example for library:
@@ -74,7 +74,7 @@ void loop() {
// Draw number in stext1 sprite at 31,63 (bottom right datum set)
stext1.drawNumber(graphVal, 31, 63, 2); // plot value in font 2
// Push the sprites onto the TFT at specied coordinates
// Push the sprites onto the TFT at specified coordinates
graph1.pushSprite(0, 0);
stext1.pushSprite(0, 64);
stext2.pushSprite(40, 70);

View File

@@ -5,7 +5,7 @@
https://github.com/Bodmer/TFT_eSPI
The sketch has been tested on a 320x240 ILI9341 based TFT, it
coule be adapted for other screen sizes.
could be adapted for other screen sizes.
A Sprite is notionally an invisible graphics screen that is
kept in the processors RAM. Graphics can be drawn into the
@@ -16,7 +16,7 @@
The Sprite occupies (2 * width * height) bytes.
On a ESP8266 Sprite sizes up to 128 x 160 can be accomodated,
On a ESP8266 Sprite sizes up to 128 x 160 can be accommodated,
this size requires 128*160*2 bytes (40kBytes) of RAM, this must be
available or the processor will crash. You need to make the sprite
small enough to fit, with RAM spare for any "local variables" that

View File

@@ -11,7 +11,7 @@
tft.setBitmapColor(ON_COLOR, OFF_COLOR);
Scrolling moves the pixels in a defined rectangle within
the Sprite. By defalt the whole sprite is scrolled.
the Sprite. By default the whole sprite is scrolled.
The gap left by scrolling is filled with a defined colour.
Example for library:
@@ -82,7 +82,7 @@ void loop() {
// Draw number in stext1 sprite at 31,63 (bottom right datum set)
stext1.drawNumber(graphVal, 31, 63, 2); // plot value in font 2
// Push the sprites onto the TFT at specied coordinates
// Push the sprites onto the TFT at specified coordinates
tft.setBitmapColor(TFT_WHITE, TFT_BLUE); // Specify the colours of the ON and OFF pixels
graph1.pushSprite(0, 0);

View File

@@ -41,7 +41,7 @@ void setup() {
tft.init();
tft.fillScreen(TFT_BLACK);
// Populate the palette table, table must have 16 entires
// Populate the palette table, table must have 16 entries
palette[0] = TFT_BLACK;
palette[1] = TFT_ORANGE;
palette[2] = TFT_DARKGREEN;

View File

@@ -20,7 +20,7 @@
An 8 bit colour Sprite occupies (width * height) bytes.
On a ESP8266, 16 bit Sprite sizes up to 128 x 160 can be accomodated,
On a ESP8266, 16 bit Sprite sizes up to 128 x 160 can be accommodated,
this size requires 128*160*2 bytes (40kBytes) of RAM.
This sketch sets the colour depth to 8 bits so larger sprites can be
@@ -108,7 +108,7 @@ void build_banner(String msg, int xpos)
// Fill with rainbow stripes
while (h--) img.drawFastHLine(0, h, IWIDTH, rainbow(h * 4));
// Draw some graphics, the text will apear to scroll over these
// Draw some graphics, the text will appear to scroll over these
img.fillRect (IWIDTH / 2 - 20, IHEIGHT / 2 - 10, 40, 20, TFT_YELLOW);
img.fillCircle(IWIDTH / 2, IHEIGHT / 2, 10, TFT_ORANGE);

View File

@@ -14,7 +14,7 @@
A 16 bit Sprite occupies (2 * width * height) bytes in RAM.
On a ESP8266 Sprite sizes up to 126 x 160 can be accomodated,
On a ESP8266 Sprite sizes up to 126 x 160 can be accommodated,
this size requires 40kBytes of RAM for a 16 bit colour depth.
When 8 bit colour depth sprites are created they occupy
@@ -54,7 +54,7 @@ void loop() {
uint32_t dt = millis();
// Now go bananas and draw 500 nore
// Now go bananas and draw 500 more
for (int i = 0; i < 500; i++)
{
int x = random(240-70);

View File

@@ -1,7 +1,7 @@
// Diagnostic test for the displayed colour order
//
// Writen by Bodmer 17/2/19 for the TFT_eSPI library:
// Written by Bodmer 17/2/19 for the TFT_eSPI library:
// https://github.com/Bodmer/TFT_eSPI
/*
@@ -66,7 +66,7 @@ void setup(void) {
tft.setTextColor(TFT_WHITE, TFT_BLACK);
// We can now plot text on screen using the "print" class
tft.println("Intialised default\n");
tft.println("Initialised default\n");
tft.println("White text");
tft.setTextColor(TFT_RED, TFT_BLACK);

View File

@@ -118,7 +118,7 @@ void loop() {
frame.fillSprite(PAPER); // Fill frame with white
// Draw circle in frame buffer (x, y, r, color) in center of screen
// Draw circle in frame buffer (x, y, r, color) in centre of screen
frame.drawCircle(frame.width()/2, frame.height()/2, frame.width()/6, INK);
// Draw diagonal lines