Latający laser (efekt dyskotekowy)

 6 Lipiec 2011 Arduino 
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

arduino

Kod dla Arduino

[ csharp ] Zaznacz cały
 
#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

Kategorie