Manual
do
Maker
.
com
É sempre um prazer escrever sobre os produtos da LilyGo, principalmente pela qualidade. Hoje apresento o TTGO T-WATCH com a placa acessória de robótica. E é incrível!
Antes de seguirmos, gostaria de deixar claro que, como pode ser visto na imagem de destaque, ele é um pouco alto, mas repare na foto mais adiante que a base para os motores excede algo em torno de 1 centímetro do tamanho que seria se fosse apenas relógio.
Na China encontramos produtos de todos os preços e qualidade; baixa, média e alta. O iPhone é feito na China, certo? Bem, coloque os produtos da LilyGo no mesmo patamar. Eles prezam demais pela qualidade do hardware e o acabamento!
O TTGO T-WATCH pode ser usado no pulso, bastando substituir a parte robótica pelo fundo baixo. Falando apenas da parte do relógio, temos um display ST7789 com touch screen, bastante sensível e com um lindo acabamento. Na placa do ESP32 tem uma bateria para manter a alimentação do RTC. Também tem um slot bastante pequeno utilizado para substituir ou integrar a placa que será utilizada.
No caso desse artigo, a placa acessória é um robô com 2 motores, cuja placa também contempla uma bateria recarregável. Abaixo, a foto do conjunto, que desmontei para ver seu interior.
Apesar de compacto, não é um trabalho difícil desmontar e remontar. Isso significa que comprar placas acessórias não causará problemas na hora de montar. E tem várias placas, como por exemplo, a de games. Veja como o TTGO T-WATCH é bem organizado:
Ele é simplesmente lindo. Do lado de fora temos um slot para cartão micro-sd, para ser utilizado com a placa acessória correspondente. Também temos um botão on/off e um botão de uso geral. Desse mesmo lado temos o conector USB: USB-C ! Uma placa com esp32 e com conector USB-C! Chega de procurar qual dos "três lados do cabo" é o que encaixa na porta USB da controladora!
Do lado oposto aos supracitados, temos uma entrada protegida com uma borracha, cuja entrada é uma expansão I2C. Dá ou não dá vontade de ter um? Esse TTGO T-WATCH é apaixonante!
Se tiver suporte ao ESP32 em sua IDE, inicie um projeto selecionando a placa TTGO T-WATCH. Clone ou baixe o arquivo zip (à importar na IDE do Arduino, no segundo caso) para o diretório de bibliotecas. No PlatformIO o diretório é algo como ~/.platformio/libs e no caso da IDE do Arduino deve ser algo como ~/Arduino/libraries.
Na IDE estarão dispostos códigos de exemplo, basta escolher. Mas, especificamente no meu caso, o display não funcionou com a biblioteca padrão - que seria um espetáculo, digo assim de passagem. Talvez isso ocorra exclusivamente no Linux, uma vez que a biblioteca parece muito bem feita e não tive tempo o suficiente para depurar o problema. Alternativamente instalei as bibliotecas para o display ST7789 (já mostrado em outros artigos) e usei um código de teste básico para tirar essa imagem de destaque. Também testei o código de exemplo para os motores e acionei pelo display touch. Tudo funcionando!
Vou disponibilizar um código inicial sem muito tratamento pra mostrar a simplicidade de uso (com minhas credenciais de laboratório):
#include <Arduino.h>
#include <WiFi.h>
#include <TFT_eSPI.h>
#include "bitmap.h"
#include "/home/djames/.platformio/lib/TFT_eSPI_ID1559/examples/320 x 240/Free_Font_Demo/Free_Fonts.h"
#include "time.h"
const char* ntpServer = "pool.ntp.org";
const long gmtOffset_sec = 0;
const int daylightOffset_sec = -3600*3;
const char* ssid = "SuhankoFamily";
const char* password = "fsjmr112";
TFT_eSPI tft = TFT_eSPI(); // Invoke library
void printLocalTime()
{
struct tm timeinfo;
if(!getLocalTime(&timeinfo)){
Serial.println("Failed to obtain time");
return;
}
char myTimeIs[64];
memset(myTimeIs,0,sizeof(myTimeIs));
timeinfo.tm_hour = timeinfo.tm_hour - 3;
strftime(myTimeIs, 64, " %H:%M:%S", &timeinfo);
int xpos = 00;
int ypos = 80;
tft.setTextColor(TFT_DARKCYAN);
tft.setCursor(xpos, ypos);
tft.pushImage(0,0,240,240,mercy);
tft.setFreeFont(FSS24); // Select Free Serif 12 point font
tft.println(); // Move cursor down a line
tft.print(myTimeIs);
}
void setup(void) {
Serial.begin(9600);
WiFi.begin(ssid, password);
while (WiFi.waitForConnectResult() != WL_CONNECTED){
Serial.print(".");
}
Serial.println();
Serial.println(WiFi.localIP());
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
tft.begin();
tft.setSwapBytes(true);
tft.fillScreen(TFT_BLACK);
tft.pushImage(0,0,240,240,mercy);
}
void loop() {
printLocalTime();
/*
tft.setFreeFont(FSS24); // Select Free Serif 12 point font
tft.println(); // Move cursor down a line
tft.print(" 02:33");
*/
vTaskDelay(pdMS_TO_TICKS(1000));
}
Ele pode ser encontrado no Aliexpress (por exemplo, através desse link). O site da LilyGo é esse.
Ainda farei alguns outros artigos a respeito, agora mão-na-massa. Daí mostro algumas brincadeiras com essa belezinha, é só acompanhar!
Inscreva-se no nosso canal Manual do Maker no YouTube.
Também estamos no Instagram.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.