Itโs my second semester here at college, and this time weโve been assigned a project with the Arduino.
The project this semester is themed, and our theme isnโt the greatest but we can work with it! The theme this semester is smart baby or kid products. My team and I came up with the idea of a chore/task tracker, for if a parent wants the kid to be able to keep track of their chores or things they need to do, as well as teach them organizational skills.
We came up with the idea of a small touchscreen interface with a cool GUI, buttons on the bottom for each child, and up the side of the module for each day.
We decided on using the Adafruit 7โ TFT Touchscreen with the RA8875 driver board as the main components of our design.
To find the wiring between an Arduino UNO and the RA8875 took me a while, but I got it.
Device: | Arduino UNO | RA8875 |
---|---|---|
Pin: | 13 | SCK |
12 | MISO | |
11 | MOSI | |
10 | CS | |
9 (w/ resistor) | RST | |
3 | INT |
To get the initial setup working, we used an example from the Adafruit RA8875 library.
We modified the code a little bit before the end of the setup, with this:
tft.graphicsMode(); // tells the RA8875 we're starting to draw pictures instead of display words
// Make a rectangle
tft.fillRect(20, 200, 200, 200, RA8875_CYAN);
/*
* makes a rectangle/square starting:
* 20 pixes from the left side of the screen (xi)
* 200 pixels from the top of the screen (yi)
* 200 pixels to the right (xf)
* 200 pixels down (yf)
*/
delay(1000);
for (int x = 0; x < 100; x++) {
tft.fillRect(250, 200, 10+x*3, 200, RA8875_RED);
delay(10);
}
// which slowly draws a rectangle across the screen
In the Adafruit RA8875 library, you can find the header file here: https://github.com/adafruit/Adafruit_RA8875/blob/master/Adafruit_RA8875.h
And it lists every function available for use and the arguments needed for each when called. Iโll be using this to draft a GUI for the touchscreen soon.
Because our program is so diverse, we need the arduinoโs memory to mainly hold all the information for the GUI, whichโll likely take up the majority of the space and not leave much room for the data to be used and organized within the GUI, like the chores, child profiles, and more.
To fix this, we decided to go with an external storage systemโan SD card. The only problem with implementing that is that the touchscreen uses the SPI (serial peripheral interface), as does the microSD card reader. This poses a master/slave coding issue, but I think what we can do is wire it up as two SPI devices, and say, load all the data into the Arduinoโs RAM before initializing the touchscreen, and writing it all before shutting the touchscreen down. That way thereโs no access to the SD card while the touchscreen is on, (preventing the issue of turning the touchscreen off to initialize the SD card, get the data, and re-turn the touchscreen on again.)
Itโs a bit of a work in progress, but I believe weโre on the right track :)
Until next time!
{thallia}