Jak nainstalovat integraci Drátek eInk do Home Assistantu
Průvodce instalací integrace Drátek eInk do Home Assistantu pomocí obchodu HACS.
Arduino Joystick PS2 je herní modul, který umožňuje snímat pohyb herní páčky ve dvou směrech. Samotný joystick je tvořen konstrukcí, která obsahuje dva potenciometry o velikosti 10 kiloohmů a taktéž tlačítko pro detekci stisku joysticku. V normálním stavu je tedy potenciometr nastaven přibližně do poloviny svého rozsahu a při pohybu páčky se mění jeho odpor od 0 ohmů až po 10 kiloohmů. V Arduinu pak už jen stačí měřit měnící se napětí díky změně odporu a přepočíst toto napětí na námi zvolené souřadnice.
Pro úspěšné propojení s Arduino deskou stačí zapojit pět propojovacích pinů. Propojíme pin KEY s D2, pin Y s A1, pin X s A0, pin VCC s napájecím napětím 5 V a GND se zemí Arduina. Pro piny KEY, X a Y je možné využít také ostatní piny, ale je nutné použít analogové piny pro X a Y a taktéž volbu provést v programu.
Ukázkový kód na svém začátku obsahuje nastavení propojovacích pinů modulu s joystickem a také vytvoření proměnných pro uložení středových hodnot joysticku. V podprogramu setup() je inicializováno tlačítko jako vstupní s pull-up odporem, nastavena komunikace po sériové lince a následně načteny nulové hodnoty pro obě osy. Nekonečná smyčka loop() obsahuje na svém začátku vytvoření proměnných pro uložení analogových hodnot z obou os a také uložení stavu tlačítka. Poté je provedeno načtení analogových hodnot obou os s odečtením nulové hodnoty následované načtením stavu tlačítka a poté je pomocí funkce map přepočtena naměřená hodnota na rozsah 0 až +100, resp. 0 až -100 pro opačný směr. Díky tomuto přepočtu poté máme v proměnných aktX a aktY uloženy vždy hodnoty v rozsahu -100 až +100. Poté následuje vytištění všech informací po sériové lince, kontrola stisku tlačítka s případným vytištěním informace a volitelná pauza pro přehledný tisk.
// Arduino Joystick PS2
// nastavení propojovacích pinů modulu
#define pinX A0
#define pinY A1
#define pinKey 2
// proměnné pro uložení hodnoty
// středu joysticku
int nulaX, nulaY;
void setup() {
// inicializace tlačítka joysticku
pinMode(pinKey, INPUT_PULLUP);
// komunikace přes sériovou linku rychlostí 9600 baud
Serial.begin(9600);
// načtení a uložení hodnot pro x a y osy
nulaX = analogRead(pinX);
nulaY = analogRead(pinY);
}
void loop() {
// vytvoření proměnných pro uložení
// hodnot pro osy x, y a stav tlačítka
int aktX, aktY, stavTlac;
// načtení analogových hodnot osy x a y
aktX = analogRead(pinX) - nulaX;
aktY = analogRead(pinY) - nulaY;
// načtení stavu tlačítka
stavTlac = digitalRead(pinKey);
if (aktX > 0) {
aktX = map(aktX, 0, 1023-nulaX, 0, 100);
}
else {
aktX = map(aktX, 0, -nulaX, 0, -100);
}
if (aktY > 0) {
aktY = map(aktY, 0, 1023-nulaY, 0, 100);
}
else {
aktY = map(aktY, 0, -nulaY, 0, -100);
}
// vytištění informací o souřadnicích
// po sériové lince
Serial.print("Souradnice X,Y = ");
Serial.print(aktX);
Serial.print(", ");
Serial.print(aktY);
// kontrola stavu tlačítka, v případě stisku
// vytiskneme informaci po sériové lince
if(stavTlac == LOW) {
Serial.print(" | Tlacitko stisknuto.");
}
Serial.println();
// volitelná pauza pro přehledný tisk
delay(1000);
}
Po nahrání programu do Arduino desky s připojeným joystickem PS2 dostaneme například tento výpis:
Souradnice X,Y = 0, -100 Souradnice X,Y = -100, -100 Souradnice X,Y = -93, 0 Souradnice X,Y = 0, 52 Souradnice X,Y = -31, 30 | Tlacitko stisknuto.
Arduino Joystick PS2 je zajímavý herní modul, který lze jednoduše zapojit a dále využívat pro různá herní zařízení či obecně jako ovládací prvek. Velkou výhodou tohoto joysticku je také přítomnost potvrzovacího tlačítka přímo v modulu či přítomnost ovládacího kloboučku přímo v balení, kdy tento klobouček má právě obdobnou velikost jako ten na ovladačích herní konzole Playstation 2 (PS2).
Seznam použitých komponent:
http://dratek.cz/arduino/974-arduino-uno-r3-atmega328p-1424115860.html
http://dratek.cz/arduino/884-arduino-joystick-ps2-1420494869.html
Průvodce instalací integrace Drátek eInk do Home Assistantu pomocí obchodu HACS.
Návod, jak jednoduše přidat a nastavit Drátek e-ink displej do Home Assistant