===== TELECROUNCH =====
== badge télécran ==
création pendant les OAVL2021 d'un télécran numérique (Etch A Sketch)
=== BOM ===
* ESP3266 (ESP-F)
* écran Nokia 5150
* 2 Encodeurs Rotatifs (KY-40)
* ... avoir pour la suite
=== Schéma de câblage ===
{{ ::telecran.png?direct&600 |}}
essai avec Inkscape :
j'ai gouré dans la taille de la grille d'acroche et le schema n'est pas dans le bon sens pour une plaque veroboard.
{{ :telecrounch.png?direct |}}
=== code Arduino ===
simple sans boutons, utiliser le reset pour réinitialiser
#include "Button2.h"; /
#include "ESPRotary.h";
#include
#include
#include
Adafruit_PCD8544 display = Adafruit_PCD8544(D4, D3, D2, D1, D0);
#define ROTARY_PIN1 D7
#define ROTARY_PIN2 D8
//#define BUTTON_PIN D3
#define ROTARY_PIN4 D5
#define ROTARY_PIN5 D6
//#define BUTTON_PIN D7
#define CLICKS_PER_STEP 4 // this number depends on your rotary encoder
#define MIN_POS_H 0
#define MAX_POS_H 83
#define START_POS_H 40
#define INCREMENT 1 // this number is the counter increment on each step
#define MIN_POS_V 0
#define MAX_POS_V 47
#define START_POS_V 24
ESPRotary r;
ESPRotary v;
//Button2 b;
void setup() {
//Serial.begin(9600);
//delay(50);
display.begin();
display.setCursor(40,24);
display.setContrast(60);
display.clearDisplay();
//b.begin(BUTTON_PIN);
// b.setTapHandler(click);
r.begin(ROTARY_PIN1, ROTARY_PIN2, CLICKS_PER_STEP, MIN_POS_H, MAX_POS_H, START_POS_H, INCREMENT);
v.begin(ROTARY_PIN4, ROTARY_PIN5, CLICKS_PER_STEP, MIN_POS_V, MAX_POS_V, START_POS_V, INCREMENT);
// Serial.println("hello");
// Serial.println("You can only set values between " + String(MIN_POS_H) + " and " + String(MAX_POS_H) +".");
// Serial.println(r.getIncrement());
// Serial.println(r.getPosition());
}
void loop() {
r.loop();
v.loop();
//b.loop();
//Serial.print(r.getPosition());
//Serial.print(" - ");
//Serial.println(v.getPosition());
display.drawPixel(r.getPosition(),v.getPosition(),1);
display.display();
}
// single click
void click(Button2& b) {
//Serial.println("Click!");
}
libraires utilisées :
* [[https://learn.adafruit.com/adafruit-gfx-graphics-library|adafruit GFX ]]
* [[https://github.com/LennartHennigs/ESPRotary|Rotary Encoder]]
=== Boite ===
{{::telecrounchboite.png?nolink|}}
sur openscad :
//dimensions du PCB
L=83;
l=64;
h=19;
//épaisseur
ep=2;
rayon de courbure de la boite
r=4;
difference(){
hull(){
translate([0,0,0])cylinder(h+ep,r=4,$fn=50);
translate([L-r+ep,0,0])cylinder(h+ep,r=4,$fn=50);
translate([0,l-r+ep,0])cylinder(h+ep,r=4,$fn=50);
translate([L-r+ep,l-r+ep,0])cylinder(h+ep,r=4,$fn=50);
}
translate([(-r+ep)/2,(-r+ep)/2,ep]) cube([L,l,h*2]);
}
=== galerie ===
{{:img_20210720_111422.jpg?direct&400|}}{{:img_20210722_140330.jpg?direct&400|}}{{:img_20210722_141211.jpg?direct&600|}}