Latający laser (efekt dyskotekowy)
Artykuł przedstawia w jaki sposób można zrobić bardzo prosty efekt dyskotekowy.
Układ nie potrzebuje dostępu do komputera.
Przykładowe filmy przedstawiające zastosowanie układu.
Potrzebne będą:
- Arduino UNO
- 2x Serwo, np TG9e
- Laser
- Zasilanie zewnętrzne 4,5V
- kabelki podłączeniowe
Układ podłączeniowy
Kod dla Arduino
#include <Servo.h>
#include <math.h>
Servo servoX,servoY;
void gohi(int pin)
{
pinMode(pin, INPUT);
digitalWrite(pin, HIGH);
}
void golo(int pin)
{
pinMode(pin, OUTPUT);
digitalWrite(pin, LOW);
}
int angleX = 100;
int angleY = 100;
int angleX_memo = 100;
int angleY_memo = 100;
void setup()
{
Serial.begin(9600);
servoX.attach(9);
servoY.attach(10);
angleX = angleX;
angleY = angleY;
}
int xPos = 100;
int yPos = 20;
int distance = 50;
double angle = 0.5; //between 0 and 2 * PI, angle is in radians
// double angle = 0.5; //between 0 and 2 * PI, angle is in radians
/*
* get a reading from the mouse and report it back to the
* host via the serial line.
*/
void loop()
{
//effects
//angle = angle + 2;
//circle
angle = angle + 0.5;
angleX = xPos + ( distance * sin( angle ));
angleY = yPos + ( distance * cos( angle ));
servoX.write(angleX);
servoY.write(angleY);
//servoX.write(angleX/sensivity);
//servoY.write(angleY/sensivity);
/* send the data back up */
Serial.print("\tX=");
Serial.print(angleX);
Serial.print("\tY=");
Serial.print(angleY);
Serial.println();
if (angleX > 180) angleX=180;
if (angleX < 0) angleX=0;
if (angleY > 180) angleY=180;
if (angleY < 0) angleY=0;
delay(1); /* twiddle */
}
Przeczytaj także