Hey! So I just recently got myself an arduino mega, an ethernet shield, and a 2.8" LCD TFT Capacitive touch breakout board from adafruit. This is were I'll be posting about my adventures and questions with and about these items.
I also want to know, are there any good, simple calc modding things that I could do with an arduino? I do have the 83+ SE for its spacious case.
So the first thing I did:
I created
CircleIt on the Arduino using my Adafruit LCD.
Video:
#include <Adafruit_GFX.h> // Core graphics library
#include <SPI.h> // this is needed for display
#include <Adafruit_ILI9341.h>
#include <Wire.h> // this is needed for FT6206
#include <Adafruit_FT6206.h>
// The FT6206 uses hardware I2C (SCL/SDA)
Adafruit_FT6206 ctp = Adafruit_FT6206();
// The display also uses hardware SPI, plus #9 & #10
#define TFT_CS 10
#define TFT_DC 9
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
int oldcolor, currentcolor;
int radius = 65;
int score;
int highscore;
void setup(void) {
while (!Serial); // used for leonardo debugging
Serial.begin(115200);
Serial.println(F("Cap Touch Paint!"));
tft.begin();
if (! ctp.begin(40)) { // pass in 'sensitivity' coefficient
Serial.println("Couldn't start FT6206 touchscreen controller");
while (1);
}
Serial.println("Capacitive touchscreen started");
tft.fillScreen(ILI9341_BLACK);
tft.setCursor(27,130);
tft.setTextSize(4);
tft.setTextColor(ILI9341_PINK);
tft.print("CircleIt");
tft.setCursor(27,165);
tft.setTextSize(2);
tft.setTextColor(ILI9341_GREEN);
tft.print("Highscore: ");
tft.print(highscore);
while (1) {
if (ctp.touched()){
tft.fillScreen(ILI9341_BLACK);
tft.fillCircle(120,166,50,ILI9341_PINK);
tft.drawCircle(120,166,51,ILI9341_BLUE);
tft.drawCircle(120,166,52,ILI9341_BLUE);
tft.drawCircle(120,166,53,ILI9341_BLUE);
tft.drawCircle(120,166,54,ILI9341_BLUE);
tft.drawCircle(120,166,55,ILI9341_BLUE);
tft.setTextSize(2);
tft.setTextColor(ILI9341_GREEN);
tft.setCursor(1,1);
tft.fillRect(1,1,100,15,ILI9341_BLACK);
tft.print("Score: ");
tft.print(score);
return;
}
}
}
void loop() {
// Retrieve a point
TS_Point p = ctp.getPoint();
// flip it around to match the screen.
p.x = map(p.x, 0, 240, 240, 0);
p.y = map(p.y, 0, 320, 320, 0);
Serial.print("(");
Serial.print(p.x);
Serial.print(", ");
Serial.print(p.y);
Serial.println(")");
tft.drawCircle(120,166,radius,ILI9341_YELLOW);
if (radius <= 50){
tft.drawCircle(120,166,radius,ILI9341_PINK);
}
if (radius > 50 && radius <= 55){
tft.drawCircle(120,166,radius,ILI9341_BLUE);
}
if (radius > 55){
tft.drawCircle(120,166,radius,ILI9341_BLACK);
}
if (ctp.touched() && radius <= 50 || ctp.touched() && radius > 55) {
if (score > highscore)
highscore = score;
tft.fillScreen(ILI9341_BLACK);
tft.setTextSize(2);
tft.setTextColor(ILI9341_WHITE);
tft.setCursor(1,1);
tft.println("GAME OVER");
tft.setTextColor(ILI9341_ORANGE);
tft.println("tap to play again.");
tft.setCursor(1,37);
tft.setTextColor(ILI9341_GREEN);
tft.print("Highscore: ");
tft.print(highscore);
tft.setTextColor(ILI9341_PURPLE);
tft.setCursor(1,53);
tft.print("Score: ");
tft.println(score);
score = 0;
while (1) {
if (ctp.touched()){
radius = 65;
tft.fillScreen(ILI9341_BLACK);
tft.fillCircle(120,166,50,ILI9341_PINK);
tft.drawCircle(120,166,51,ILI9341_BLUE);
tft.drawCircle(120,166,52,ILI9341_BLUE);
tft.drawCircle(120,166,53,ILI9341_BLUE);
tft.drawCircle(120,166,54,ILI9341_BLUE);
tft.drawCircle(120,166,55,ILI9341_BLUE);
tft.setTextSize(2);
tft.setTextColor(ILI9341_GREEN);
tft.setCursor(1,1);
tft.fillRect(1,1,100,15,ILI9341_BLACK);
tft.print("Score: ");
tft.print(score);
return;
}
}
}
if (ctp.touched() && radius <= 55 || ctp.touched() && radius > 50) {
score++;
tft.setTextSize(2);
tft.setTextColor(ILI9341_GREEN);
tft.setCursor(1,1);
tft.fillRect(1,1,100,15,ILI9341_BLACK);
tft.print("Score: ");
tft.print(score);
}
radius--;
radius--;
radius--;
if (radius <= 1){
radius = 65;
}
}
Its great fun, and I'm thinking about what to do next with these things.
Oh yeah, I got a hc-05 Bluetooth module from my robotics teacher and got that working with an arduino using the arduino IDE's built in serial port.
I decided to make it a little more fancy and create a ruby program to interface with it. But, I got a permissions error of some sort when trying to interface with the Bluetooth. But, when trying to interface with an arduino everything worked fine. I asked about it here:
http://stackoverflow.com/questions/35190016/bluetooth-serial-port-permission-error-errnoeacces-ruby-serialport-gem