Reakčná hra pre dvoch hráčov – Arduino Uno
Reakčná hra pre dvoch hráčov na arduino UNO.
Cílem tohoto projektu je vytvoření jednoduchého ovládacího systému, který umožňuje naklápění dvou servomotorů pomocí analogového joysticku. Platforma řízená servomotory může simulovat pohyb například v ose X a Y — tedy naklánění doleva/doprava a dopředu/dozadu. Tento systém může sloužit jako základ pro různé aplikace:
- Manuální ovládání kamery nebo senzoru (např. na pohyblivé konstrukci nebo robotovi)
- Interaktivní ovládací panel pro školní projekty nebo herní ovladač
| Joystick: | |
| VCC | 5V na Arduinu |
| GND | GND na Arduinu |
| VRx (Osa X) | Analogový pin A0 |
| VRy (Osa Y) | Analogový pin A1 |
| Servomotory: | |
| Servo X (například osa doleva/doprava) | |
| Signální kabel | Digitální pin 9 |
| VCC | 5V na Arduinu |
| GND | GND na Arduinu |
| Servo Y (například osa dopředu/dozadu) | |
| Signální kabel | Digitální pin 10 |
| VCC | 5V na Arduinu |
| GND | GND na Arduinu |
#include <Arduino.h>
#include <Servo.h>
Servo servoX; // Servo motor for the X axis (e.g. left/right)
Servo servoY; // Servo motor for the Y axis (e.g. forward/backward)
int joyPinX = A0; // Analog pin for the joystick's X axis
int joyPinY = A1; // Analog pin for the joystick's Y axis
void setup() {
servoX.attach(9); // Attach servo X to pin 9
servoY.attach(10); // Attach servo Y to pin 10
}
void loop() {
// Read joystick values
int valX = analogRead(joyPinX);
int valY = analogRead(joyPinY);
// Convert joystick values to servo angle range (0–180°)
int angleX = map(valX, 0, 1023, 0, 180);
int angleY = map(valY, 0, 1023, 0, 180);
// Set the servo positions according to calculated angles
servoX.write(angleX);
servoY.write(angleY);
delay(15); // Short delay for smoother movement
}
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].