Etch a Sketch Digital
La cantidad de horas que habré pasado de pequeño intentando pintar una casita en el Etch A Sketch (o telesketch, como se conocía en España). Todo iba bien hasta que intentaba hacer las diagonales del techo.
Como se puede ver en la segunda imagen, esta versión digital del Etch A Sketch no soluciona el problema de las diagonales, pero nos permite seguir intentándolo!
Materiales Utilizados
Pantalla TFT de Seeedstudio https://www.seeedstudio.com/2-8-TFT-Touch-Shield-V...
Arduino Uno
Dos potenciómetros de 10K
Un interruptor
Una cajilla (en este caso, impresa en 3d, pero cualquier caja vale)
Una pila de 9V y su conector (sin foto)
Montaje
Conectar 3 cables a cada potenciómetro y pelar el extemo contrario para conectarlo directamente al Arduino.
El cable central de los potenciómetros va uno a A5 y el otro a A4
El de la derecha de cada potenciómetro va al pin 5V y el de la izquierda a cualquier pin GND (si los potenciómetros se mueven al revés en la pantalla, cambiar el cable de 5V a GND del potenciómetro.
La pila de 9V se conecta al pin Vin y a cualquier pin GND con el inetrruptor intercalado en el cable que va a Vin
Una vez que tengas todos los cables puestos, pincha la pantalla en el arduino pillando los cables. (Si, es un poco chapuza, pero te evita hacer un "shield"para conectar la pantalla y el Arduino).
Código
Lo primero que tienes que hacer es bajarte la librería para la pantalla: https://github.com/Seeed-Studio/TFT_Touch_Shield_V...
El programa del Etch a Sketch está basado en el ejemplo "paint"que viene en la librería de la pantalla.
Este es el código:
<p>// Paint application - Demonstate both TFT and Touch Screen<br>#include <stdint.h></p><p>#include <TFTv2.h> </p><p>#include <SPI.h></p><p>int potpinlr = 4; // analog pin used to connect the potentiometer int potpinud = 5; int valr; // variable to read the value from the analog pin int valud;</p><p>void setup() { Tft.TFTinit(); //init TFT library TFT_BL_ON; //turn on the background light Serial.begin(9600); } void loop() { valr = analogRead(potpinlr); // reads the value of the potentiometer (value between 0 and 1023) valr = map(valr, 0, 1023, 240, 0); // scale it to use it with the servo (value between 240 and 0) valud = analogRead(potpinud); // reads the value of the potentiometer (value between 0 and 1023) valud = map(valud, 0, 1023, 0, 320); // scale it to use it with the servo (value between 0 and 320) Tft.fillCircle(valr, valud, 3, RED); Serial.print ("right left"); Serial.println (valr); Serial.print ("up down"); Serial.println (valud); delay(10); }</p>
La Cajilla
Con mucho cuidado y pegamento caliente poner todo el conjunto en la cajilla y cerrarlo.
Se puede usar una caja de bombones, un Tupperware o cualquier otro envase pequeño que cortaremos para colocar el interruptor, la pantalla y los dos potenciómetros.
Si tienes una impresora 3D, puedes bajrte mi cajilla de aquí: https://www.tinkercad.com/things/lQKTJbkC4vn-etch-...