Posts | Comments

Planet Arduino

Archive for the ‘laser’ Category

There’s just something about wielding a laser pointer on a dark, foggy night. Watching the beam cut through the mist is fun – makes you feel a little Jedi-esque. If you can’t get enough of lasers and mist, you might want to check out this DIY “laser sky” effect projector.

The laser sky effect will probably remind you of other sci-fi movies – think of the “egg scene” from Alien. The effect is achieved by sweeping a laser beam in a plane through swirling smoke or mist. The laser highlights a cross section of the otherwise hidden air currents and makes for some trippy displays. The working principle of [Chris Guichet]’s projector is simplicity itself – an octagonal mirror spun by an old brushless fan motor and a laser pointer. But after a quick proof of concept build, he added the extras that took this from prototype to product. The little laser pointer was replaced with a 200mW laser module, the hexagonal mirror mount and case were 3D printed, and the mirrors were painstakingly aligned so the laser sweeps out a plane. An Arduino was added to control the motor and provide safety interlocks to make sure the laser fires only when the mirror is up to speed. The effect of the deep ruby red laser cutting through smoke is mesmerizing.

If laser sky is a little too one-dimensional for you, expand into two dimensions with this vector laser projector, and if monochrome isn’t your thing try an RGB vector projector.


Filed under: Arduino Hacks, laser hacks

Well all know cellular automata from Conway’s Game of Life which simulates cellular evolution using rules based on the state of all eight adjacent cells. [Gavin] has been having fun playing with elementary cellular automata in his spare time. Unlike Conway’s Game, elementary automata uses just the left and right neighbors of a cell to determine the next cell ahead in the row. Despite this comparative simplicity, some really complex patterns emerge, including a Turing-complete one.

[Gavin] started off doing the calculations by hand for fun. He made some nice worksheets for this. As we can easily imagine, doing the calculations by hand got boring fast. It wasn’t long before his thoughts turned to automating his cellular automata. So, he put together an automatic cellular automator. (We admit, we are having a bit of fun with this.)

This could have been a quick software project but half the fun is seeing the simulations on a purpose-built ecosystem. The files to build the device are hosted on Thingiverse. Like other cellular automata projects, it uses LED matrices to display the data. An Arduino acts as the brain and some really cool retro switches from the world’s most ridiculously organized electronics collection finish the look of the project.

To use, enter the starting condition with the switches at the bottom. The code on the Arduino then computes and displays the pattern on the matrix. Pretty cool and way faster than doing it by hand.


Filed under: Arduino Hacks, misc hacks

Wafer level chips are cheap and very tiny, but as [Kevin Darrah] shows, vulnerable to bright light without the protective plastic casings standard on other chip packages.

We covered a similar phenomenon when the Raspberry Pi 2 came out. A user was taking photos of his Pi to document a project. Whenever his camera flash went off, it would reset the board.

[Kevin] got a new Arduino 101 board into his lab. The board has a processor from Intel, an accelerometer, and Bluetooth Low Energy out of the box while staying within the same relative price bracket as the Atmel versions. He was admiring the board, when he noticed that one of the components glittered under the light. Curious, he pulled open the schematic for the board, and found that it was the chip that switched power between the barrel jack and the USB. Not only that, it was a wafer level package.

So, he got out his camera and a laser. Sure enough, both would cause the power to drop off for as long as the package was exposed to the strong light. The Raspberry Pi foundation later wrote about this phenomenon in more detail. They say it won’t affect normal use, but if you’re going to expose your device to high energy light, simply put it inside a case or cover the chip with tape, Sugru, or a non-conductive paint to shield it.


Filed under: Arduino Hacks

Range finders are amazing tools for doing pretty much anything involving distance calculations. Want to blink some lights when people are nearby? There’s a rangefinder for that. Need to tell how far away the next peak of a mountain range is? There’s a rangefinder for that. But if you’re new to range finders and want one that’s hackable and configurable, look no further than the SF02/F rangefinder with the Arduino shield, and [Laser Developer]’s dive into what this pair can do.

Once the rangefinder and shield have been paired is when the magic really starts to happen. Using USB, the Arduino can instantly report a huge amount of raw data coming from the rangefinder. From there, [Laser Developer] shows us how to put the device into a “settings” mode which expands the capabilities of the rangefinder even more. The data can be dumped into a graph, for example, which can show trends between distance, laser strength, and many other data sets. [Laser Developer] goes one step further and demonstrates how to use this to calculate the speed of light, but from there pretty much anything else is possible as well.

And while you can just buy a rangefinder off the shelf, they are fairly limiting in their features and can cost exponentially more. This is a great start into using a tool like this, especially if you need specific data or have a unique application. But, if laser range finding isn’t for you or if this project is too expensive, maybe this $5 ultrasonic rangefinder will work better for your application.


Filed under: Arduino Hacks

DSC01696_670

There’s a mineral called pyrite with a interesting nickname, fool’s gold, because it has a superficial resemblance to gold and it’s by far the most frequently mineral mistaken for gold. Even if it’s pretty abundant, there’s a rare form of pyrite which is crystallised in radial shape (as unusual disc spherulites), taking the shape of a disc. The amazing fact is that the only deposit where pyrites of such morphology are found is in Illinois (USA) and the discs are dated around 300 million years ago!

Dmitry Morozov (aka ::vtol::), a media artist living in Moscow, had the chance to use a pyrite disc and created Ra,  a sound object / synthesizer running on Arduino Nano. Ra uses laser for scanning the irregularities of the surface of the disc and further transforms this data to produce sound:

This project originated as a result of an interesting set of circumstances – a pyrite disc was given to me as a gift by a mineral seller in Boulder city (USA). Upon hearing about my works, she asked to do something with such crystal, and refused to take payment for getting it. In the same period, I was reading articles on various ways of archiving and preservation of sounds from the first, historical sources of the recorded sound – wax discs and other fragile carriers. All technologies were based on the usage of lasers. Inspired by these projects, I set out to create a self-made laser sound reader which would be able to produce sound from various uneven surfaces, using minimal resources to achive it. Thus emerged the idea to construct an instrument using the pyrite disc and a self-made laser sound reader.

The production of the object was possible thanks to the commission of the Sound Museum in St.-Petersburg which now has Ra in its collection.

Check the bill of materials and other details on Dmitry’s website. Explore other projects by Dmitry featured on Arduino Blog.

DSC016533_670

DSC01696_670

There’s a mineral called pyrite with a interesting nickname, fool’s gold, because it has a superficial resemblance to gold and it’s by far the most frequently mineral mistaken for gold. Even if it’s pretty abundant, there’s a rare form of pyrite which is crystallised in radial shape (as unusual disc spherulites), taking the shape of a disc. The amazing fact is that the only deposit where pyrites of such morphology are found is in Illinois (USA) and the discs are dated around 300 million years ago!

Dmitry Morozov (aka ::vtol::), a media artist living in Moscow, had the chance to use a pyrite disc and created Ra,  a sound object / synthesizer running on Arduino Nano. Ra uses laser for scanning the irregularities of the surface of the disc and further transforms this data to produce sound:

This project originated as a result of an interesting set of circumstances – a pyrite disc was given to me as a gift by a mineral seller in Boulder city (USA). Upon hearing about my works, she asked to do something with such crystal, and refused to take payment for getting it. In the same period, I was reading articles on various ways of archiving and preservation of sounds from the first, historical sources of the recorded sound – wax discs and other fragile carriers. All technologies were based on the usage of lasers. Inspired by these projects, I set out to create a self-made laser sound reader which would be able to produce sound from various uneven surfaces, using minimal resources to achive it. Thus emerged the idea to construct an instrument using the pyrite disc and a self-made laser sound reader.

The production of the object was possible thanks to the commission of the Sound Museum in St.-Petersburg which now has Ra in its collection.

Check the bill of materials and other details on Dmitry’s website. Explore other projects by Dmitry featured on Arduino Blog.

DSC016533_670

lasereap

 

Toronto-based collaborative duo Hopkins Duffield created a gaming environment running on Arduino Mega in which the player battles a laser wielding A.I. security system gone awry. It’s like being in an action movie, walking in a pitch black room filled with the hollow sound of a machine breathing and a series of red laser fences slicing through the fog-filled air!

Laser Equipped Annihilation Protocol (The L.E.A.P. Engine) is a an installation that :

explores the personality of a snarky and mysterious game sentience who has infected a room with technological systems that challenge players and collect data. With a limited amount of time, the player must pass through a complicated series of changing and alternating laser patterns without tripping any of the lasers in order to deactivate the system and win the game. If the player trips a laser or if the timer runs out, it’s game over.

The gaming installation uses Max 6, Max For Live, an Arduino Mega 2560 R3 and custom electronic circuits. They also used a special modification of Lasse Vestergaard’s and Rasmus Lunding’s ArduinoInOutForDummies designed to allow communication between Arduino 2560 and Max 7. In Max, laser patterns are written using MIDI.

Take a look at the video to discover how they made it:

Laser Harp SynthesizerI find laser harps fascinating. The first time I saw one was when I stumbled across a video of a guy using using lasers to play the theme song to Tetris. I thought it was the coolest thing ever, but I couldn’t justify the cost of buying one. Instead, I decided […]

Read more on MAKE

The post Build a Two-Octave Laser Harp appeared first on Make: DIY Projects, How-Tos, Electronics, Crafts and Ideas for Makers.






Kingduino Uno R3 Compatible Microcontroller - Atmel ATmega328

Turnigy TGY-SM-3317SR 360? Analog Robot Servo 2.2kg / 86RPM / 19g

Took the electronics from two of these and connected them to the servo motors to control the mirrors
Turnigy TGY-SM-3317SR 360? Analog Robot Servo 2.2kg / 86RPM / 19g


Kingduino Compatible 5V 650nm PCB Laser Diode Module

Microphone Sound Input Module

Russian blue cat
I found this cat really helped with the programming 






Very simple sketch

I tinkered for a while to get the patterns I liked and the transitions 

#include

Servo myservo1; // create servo object to control a servo
Servo myservo2;

int patterns[] =
{
92,88,
70,85,
60,85,
80,85,
85,85,
70,85,
85,0,
85,110,
85,115,
70,88,
5,30,
135,45,
92,88,
180,0,
50,100,
85,85,
100,105,
70,0,
75,0,
105,115
};

int NumPatterns = 0;



int laserPin = 3; // LED connected to digital pin 9
int ledPin = 4; // LED connected to digital pin 9
int MicPin = 1; // potentiometer connected to analog pin 3
int LevelPin = 0;
int pos = 0; // variable to store the servo position

int val = 0; // variable to store the read value
int val2 = 0;
int tick = 500;
int TickMod = 500;
int Sweep = 0;
int LaserPWM = 0;
int LaserPWMvector = 1;

int Mirror1 = 0;
int Mirror2 = 0;

int Mic = 0;
int Level = 0;

int LevelIndex = 0;
int LevelBuf[200] = {0, };
int LevelMean = 0;

int LevelValueIndex = 0;
int LevelValueBuf[10] = {0, };

int ShutOffBits = 50;
int Active = 0;



void setup()
{
Serial.begin(9600);

pinMode(laserPin, OUTPUT); // sets the pin as output
pinMode(ledPin, OUTPUT); // sets the pin as output
myservo1.attach(8); // attaches the servo on pin 9 to the servo object
myservo2.attach(9); // attaches the servo on pin 9 to the servo object

pos = 30;
myservo1.write(pos);

pos = 95;
myservo2.write(pos);

digitalWrite(laserPin, HIGH);

randomSeed(analogRead(0));

NumPatterns = sizeof(patterns);

}

void loop()
{
tick++;

Mic = analogRead(MicPin);

LevelMean = CalcLevelMean();

Level = CalcLevelValue();

if(LevelMean > ShutOffBits)
Active = 1;
else
Active = 0;

if((tick % 10) == 0)
{
//LaserPWM += LaserPWMvector;
val = abs(Level - LevelMean);
if(val < 1) val = 1;
if(val > 5) val = 5;

if(LaserPWMvector > 0)
LaserPWM += val;
else
LaserPWM -= val;

if(LaserPWM < 0) { LaserPWM = 0; LaserPWMvector = 1; StepPattern("PWM == 0n");}
if(LaserPWM > 255){ LaserPWM = 255; LaserPWMvector = 0-1; }
}

val = LaserPWM;

if(Active > 0)
analogWrite(laserPin, val); // analogRead values go from 0 to 1023, analogWrite values from 0 to 255
else
digitalWrite(laserPin, LOW);

//val = map(abs(Level - 512), 0, 512, 0, 255);

//analogWrite(ledPin, val);


if((tick % 100) == 0)
SendData("");

//if(abs(Level - 512) > 100)
// StepPattern("LOUD");

delayMicroseconds(1000);

if((tick % 100) == 0)
SetMirrors("");


}


void StepPattern(char* txt)
{

Sweep += 2;
if(Sweep > (NumPatterns - 2)) Sweep = 0;

}

void SetMirrors(char* txt)
{

if(Active > 0)
{
val = random(0,100);

//Serial.print("nRANDOM: ");
//Serial.print(val);
//Serial.print("n");

if(val > 500)
{
val = abs(Level - LevelMean) + (Mic - 512);

val = map(val, 0, 512, 0, 20);

Serial.print("MUSIC:");
Serial.print(val);

pos=90+val;
myservo1.write(pos);

pos=90-val;
myservo2.write(pos);


}
else
{
//Serial.print("nSWEEPn");

val2 = abs(Level - LevelMean);


pos = Mirror1;

val = (patterns[Sweep] - Mirror1) /10;

if(val < 1) val = 1;

pos += val;

pos = patterns[Sweep] + val2;

myservo1.write(pos);

Mirror1 = pos;



pos = Mirror2;

val = (patterns[Sweep + 1] - Mirror2) /10;

if(val < 1) val = 1;

pos += val;

pos = patterns[Sweep + 1] - val2;

myservo2.write(pos);

Mirror2 = pos;

}

}
else
{
pos = 90;
myservo1.write(pos);
myservo2.write(pos);
}

//SendData(txt);
}

void SendData(char* txt)
{
if(strlen(txt) > 0)
{
Serial.print("n");
Serial.print(txt);
Serial.print("n");
}

Serial.print("Sweep:");
Serial.print( Sweep);

Serial.print("tLevel - LevelMean: ");
Serial.print(abs(Level - LevelMean));

Serial.print("tMirror1 & Mirror2: ");
Serial.print( Mirror1);
Serial.print(" ");
Serial.print( Mirror2);


Serial.print("tLaserPWMvector:");
Serial.print( LaserPWMvector);
Serial.print("tLaserPWM:");
Serial.print( LaserPWM);
Serial.print("tLevelMean:");
Serial.print( LevelMean);
Serial.print("tLevel:");
Serial.print(analogRead(LevelPin));
Serial.print("tmic:");
Serial.print(analogRead(MicPin));
Serial.print("n");

}

int CalcLevelMean()
{

LevelBuf[LevelIndex] = analogRead(LevelPin);

if((++LevelIndex) > 199)
LevelIndex = 0;

double ltot = 0.0;
for(int i = 0;i < 200;i++)
ltot += (double)LevelBuf[i];

return (int)(ltot / 200.0);
}

int CalcLevelValue()
{

LevelValueBuf[LevelValueIndex] = analogRead(LevelPin);

if((++LevelValueIndex) > 10)
LevelValueIndex = 0;

double ltot = 0.0;
for(int i = 0;i < 100;i++)
ltot += (double)LevelValueBuf[i];

return (int)(ltot / 100.0);
}


Lug
04

Arduino sound to Laser

arduino, laser, servo, sound, Turnigy Commenti disabilitati su Arduino sound to Laser 


Kingduino Uno R3 Compatible Microcontroller - Atmel ATmega328

Turnigy TGY-SM-3317SR 360? Analog Robot Servo 2.2kg / 86RPM / 19g

Took the electronics from two of these and connected them to the servo motors to control the mirrors
Turnigy TGY-SM-3317SR 360? Analog Robot Servo 2.2kg / 86RPM / 19g


Kingduino Compatible 5V 650nm PCB Laser Diode Module

Microphone Sound Input Module

Russian blue cat
I found this cat really helped with the programming 









  • Newsletter

    Sign up for the PlanetArduino Newsletter, which delivers the most popular articles via e-mail to your inbox every week. Just fill in the information below and submit.

  • Like Us on Facebook