diff --git a/.gitignore b/.gitignore index 7bbc71c..762d9d6 100644 --- a/.gitignore +++ b/.gitignore @@ -99,3 +99,7 @@ ENV/ # mypy .mypy_cache/ +/craigslist_scraper/dbs/ + +# PyCharm +.idea/ diff --git a/craigslist_scraper/README.txt b/craigslist_scraper/README.txt deleted file mode 100644 index a8b2eea..0000000 --- a/craigslist_scraper/README.txt +++ /dev/null @@ -1 +0,0 @@ -Super simple and jank program to keep me up to date on craigslist entries across the country. Got tired of looking at 100 different craigslist sites individually. diff --git a/vacuum_synchronizer/vacuum_synchronizer.ino b/vacuum_synchronizer/vacuum_synchronizer.ino new file mode 100644 index 0000000..77e76f5 --- /dev/null +++ b/vacuum_synchronizer/vacuum_synchronizer.ino @@ -0,0 +1,151 @@ +//This example implements a simple sliding On/Off button. The example +// demonstrates drawing and touch operations. +// +//Thanks to Adafruit forums member Asteroid for the original sketch! +// +#include +#include +#include +#include + +// This is calibration data for the raw touch data to the screen coordinates +#define TS_MINX 150 +#define TS_MINY 130 +#define TS_MAXX 3800 +#define TS_MAXY 4000 + +#define TIRQ_PIN 2 +#define CS_PIN 8 +XPT2046_Touchscreen ts(CS_PIN, TIRQ_PIN); +#define TFT_CS 10 +#define TFT_DC 9 +ILI9341_t3 tft = ILI9341_t3(TFT_CS, TFT_DC); //240x320 + +boolean RecordOn = false; + +#define FRAME_X 210 +#define FRAME_Y 180 +#define FRAME_W 100 +#define FRAME_H 50 + +#define REDBUTTON_X FRAME_X +#define REDBUTTON_Y FRAME_Y +#define REDBUTTON_W (FRAME_W/2) +#define REDBUTTON_H FRAME_H + +#define GREENBUTTON_X (REDBUTTON_X + REDBUTTON_W) +#define GREENBUTTON_Y FRAME_Y +#define GREENBUTTON_W (FRAME_W/2) +#define GREENBUTTON_H FRAME_H + +void draw_bar_graph_frames() +{ + for (uint8_t i = 3 ; i < 7 ; i++) { + uint16_t center = (tft.width() / 7.0) * i; + tft.drawRect(center - 20, 10, 40, 220, ILI9341_WHITE); + + } +} + +void draw_bar_graph_data(uint8_t bar_index, uint8_t input) +{ + uint16_t center = (tft.width() / 7.0) * (bar_index + 2); + uint16_t bar_height = 216 * (input / 100.0); + tft.fillRect(center - 18, 12, 36, 216, ILI9341_BLACK); + tft.fillRect(center - 18, min(max(bar_height-2, 12), 216), 36, 4, ILI9341_RED); +} + +void drawFrame() +{ + tft.drawRect(FRAME_X, FRAME_Y, FRAME_W, FRAME_H, ILI9341_BLACK); +} + +void redBtn() +{ + tft.fillRect(REDBUTTON_X, REDBUTTON_Y, REDBUTTON_W, REDBUTTON_H, ILI9341_RED); + tft.fillRect(GREENBUTTON_X, GREENBUTTON_Y, GREENBUTTON_W, GREENBUTTON_H, ILI9341_BLUE); + drawFrame(); + tft.setCursor(GREENBUTTON_X + 6 , GREENBUTTON_Y + (GREENBUTTON_H / 2)); + tft.setTextColor(ILI9341_WHITE); + tft.setTextSize(2); + tft.println("ON"); + RecordOn = false; +} + +void greenBtn() +{ + tft.fillRect(GREENBUTTON_X, GREENBUTTON_Y, GREENBUTTON_W, GREENBUTTON_H, ILI9341_GREEN); + tft.fillRect(REDBUTTON_X, REDBUTTON_Y, REDBUTTON_W, REDBUTTON_H, ILI9341_BLUE); + drawFrame(); + tft.setCursor(REDBUTTON_X + 6 , REDBUTTON_Y + (REDBUTTON_H / 2)); + tft.setTextColor(ILI9341_WHITE); + tft.setTextSize(2); + tft.println("OFF"); + RecordOn = true; +} + +void setup(void) +{ + Serial.begin(9600); + tft.begin(); + ts.begin(); + + tft.fillScreen(ILI9341_BLACK); + // origin = left,top landscape (USB left upper) + ts.setRotation(2); + tft.setRotation(3); + + draw_bar_graph_frames(); +} + +uint16_t wait = 66; + +void loop() +{ +// for (uint8_t i = 0 ; i < 100 ; i ++) { + for (uint8_t bar = 1 ; bar < 5 ; bar++) { + draw_bar_graph_data(bar, min(max(random(-25, 25), 0), 100) + 50); + } + delay(wait); +// } +// for (uint8_t i = 100 ; i > 0 ; i--) { +// for (uint8_t bar = 1 ; bar < 5 ; bar++) { +// draw_bar_graph_data(bar, min(max(random(-25, 25), 0), 100) + i); +// } +// delay(wait); +// } + + // See if there's any touch data for us + // if (!ts.bufferEmpty()) + // { + // // Retrieve a point + // TS_Point p = ts.getPoint(); + // // Scale using the calibration #'s + // // and rotate coordinate system + // p.x = map(p.x, TS_MINY, TS_MAXY, 0, tft.height()); + // p.y = map(p.y, TS_MINX, TS_MAXX, 0, tft.width()); + // int y = tft.height() - p.x; + // int x = p.y; + // + // if (RecordOn) + // { + // if((x > REDBUTTON_X) && (x < (REDBUTTON_X + REDBUTTON_W))) { + // if ((y > REDBUTTON_Y) && (y <= (REDBUTTON_Y + REDBUTTON_H))) { + // Serial.println("Red btn hit"); + // redBtn(); + // } + // } + // } + // else //Record is off (RecordOn == false) + // { + // if((x > GREENBUTTON_X) && (x < (GREENBUTTON_X + GREENBUTTON_W))) { + // if ((y > GREENBUTTON_Y) && (y <= (GREENBUTTON_Y + GREENBUTTON_H))) { + // Serial.println("Green btn hit"); + // greenBtn(); + // } + // } + // } + // + // Serial.println(RecordOn); + // } +}