Reakčná hra pre dvoch hráčov – Arduino Uno
Reakčná hra pre dvoch hráčov na arduino UNO.
V tomto projektu jsem oživil svou starou lampičku, z které kdysi vypadl vypínač. Nejedná se o složitý projekt, ale spojuje ovládání spotřebiče pomocí Arduina a tvorbu vlastní aplikace MIT App Inventorem.
Seznam komponent:
Nejprve jsem lampičku dvěma vodiči připájel k relé. Je připojena k NC a COM pinům na relé, díky čemuž je ji možné používat i bez připojení k desce. Následně jsem relé zapojil k Arduinu pomocí NPN tranzistoru 8050, 1N4001 diody a 1kΩ rezistoru, jak je vidět na schématu. Je důležité piny na relé důkladně izolovat. Nakonec jsem ještě připojil Bluetooth modul HC-05 (RX k pinu 11 a TX k pinu 10 na Arduinu).
Pro tvorbu aplikace jsem využil MIT App Inventor 2 (https://appinventor.mit.edu). V něm jsem si nejprve umístil všechny elementy na své místo, přejmenoval je a přidal styly.
V sekci Blocks jsem nejprve vytvořil proměnné a funkci pro připojení přes bluetooth. Po vybrání správného zařízení se aplikace připojí a lampička se vypne.
Po kliknutí na tlačítko se do proměnné zapíše systémový čas a přičte se k němu případná prodleva v milisekundách.
Následuje funkce, která se provádí pokaždé, když vyprší časovač. Nejdříve ověří, jestli se lampička má zapnout nebo vypnout (proměnná casovacZapnuty), zkontroluje čas a poté pošle Arduinu „a“ (zapnout lampičku), nebo „b“ (vypnout lampičku). Při kliknutí na tlačítko „Vynulovat“ se do polí pro zápis prodlevy zapíše „0“.
#include <SoftwareSerial.h> // Import knihovny
#define RX 11 // Pin spojený s RX u Bluetooth modulu
#define TX 10 // Pin spojený s TX
#define pinRele 8 // Pin spojený s relé
SoftwareSerial bluetooth(TX, RX); // Objekt sériové komunikace
void setup() {
bluetooth.begin(9600); // Začátek komunikace
pinMode(pinRele,OUTPUT);
}
void loop() {
byte BluetoothData; // Proměnná pro ukládání dat
if (bluetooth.available()>0){
BluetoothData=bluetooth.read(); // Uložení dat z komunikace
switch (BluetoothData){
case 'a':
digitalWrite(pinRele,LOW); // COM spojený s NC, lampička se zapne
break;
case 'b':
digitalWrite(pinRele,HIGH); // COM spojený s NO, lampička se vypne
break;
}
}
}
Reakčná hra pre dvoch hráčov na arduino UNO.
Po prvních pokusech s moduly CC1101 433.92Mhz jsem se po čase rozhodl si vyzkoušet napsat program na jednoduché ovládání led diody tak aby jeden modul pravidelně vysílal hodnoty které se na druhém modulu vyhodnotí a tento pak bude pravidelně blikat led diodou. Po tomto programu a jeho odzkoušení jsem se rozhodl si napsat další program na zjištění číselných hodnot tlačítek na dálkovém ovladači pro bezdrátové zásuvky 433Mhz, a tyto pak ovládat dalším napsaným programem na zapínání a vypínání zásuvky. Pro ovládání jsem použil Arduino Nano které jsem pro testování osadil do Arduino IO shieldu, pro komunikaci mezi Arduino a modulem CC1101 jsem použit 8 – kanálový obousměrný převodník logických úrovní (5V – 3.3V) a pro napájení celé sestavy jsem použil vyrobený napájecí zdroj s výstupním napětím 8V pro napájení Arduino Nano, 5V a 3.3V pro napájení převodníku a modulu CC1101. Uvedené přípravky rozšiřují zapojení uveřejněná v [1].