Reakčná hra pre dvoch hráčov – Arduino Uno
Reakčná hra pre dvoch hráčov na arduino UNO.
Náš čtenář Petr S. nám ke svému projektu zaslal schéma a Arduino kód. K úspěšnému přeložení je ještě nutné stáhnout tento soubor s uloženými melodiemi a poté cestu k němu změnit v kódu, viz komentář.
/*
Název: Tlacítko, bzucák a melodie
Autor: Petr Soudek
E-mail: spetr2050@gmail.com
*/
// nutné vyměnit za vlastní umístění
#include <D:\Arduino\examples\PETR_SOUDEK\sound\pitches\src\pitches.h>
#define TIME 200
int noteDuration = 1000 / 4; // delka noty
const int buttonPin = 2; // pin ke kterému je pripojeno tlacítko
int buttonState = 0; // soucasný stav tlacítka
int lastButtonState = 0; // predchozí stav tlacítka
void setup() {
// inicializujte pin tlacítka jako vstup:
pinMode(buttonPin, INPUT);
// inicializujte sériovou komunikaci:
Serial.begin(9600);
}
void loop() {
// prectete vstupní pin tlacítka:
buttonState = digitalRead(buttonPin);
// porovnejte buttonState (stav tlacítka) s predchozím stavem
if (buttonState != lastButtonState) {
// jestliže se stav zmenil, pust melodii
if (buttonState == HIGH) {
// jestliže je soucasný stav HIGH, tlacítko prešlo
//z off na on:
ovcaci();
Serial.println("on");
}
}
// uložte soucasný stav jako „poslední stav“,
//abyste ho mohli v príští smycce použít
lastButtonState = buttonState;
}
void ovcaci()
{
Serial.println("ovcaci");
for (int i=0; i <= 1; i++){
tone(10, NOTE_C4, noteDuration*2);
delay(noteDuration*2);
tone(10, NOTE_E4, noteDuration*2);
delay(noteDuration*2);
tone(10, NOTE_G4, noteDuration*4);
delay(noteDuration*4);
}
for (int i=0; i <= 1; i++){
tone(10, NOTE_E4, noteDuration);
delay(noteDuration);
tone(10, NOTE_E4, noteDuration);
delay(noteDuration);
tone(10, NOTE_D4, noteDuration);
delay(noteDuration);
tone(10, NOTE_E4, noteDuration);
delay(noteDuration);
tone(10, NOTE_F4, noteDuration*2);
delay(noteDuration*2);
tone(10, NOTE_D4, noteDuration*2);
delay(noteDuration*2);
}
tone(10, NOTE_E4, noteDuration*2);
delay(noteDuration*2);
tone(10, NOTE_D4, noteDuration*2);
delay(noteDuration*2);
tone(10, NOTE_C4, noteDuration*4);
delay(noteDuration*4);
}
// Autor: Petr Soudek
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].