all | audio | badgelife | breakout | clocks | displays | experiments | feather | handhelds | home automation | howto | LED art | misc | props | robots | sewing | software | tools | no_category

Skywalker Lightsaber

Not as clumsy or random as a blaster. An elegant weapon from a more civilized age.

Don't point this directly at your face when handling! Handle with caution and care.

Skywalker Lightsaber | Adafruit Trinket M0 - controlling the onboard dotstar LED via Arduino IDE

2018-01-04 11:08:16

Since I couldn't find how to control it, here's my code how I did it. They probably focus on their python stuff more than on the Arduino IDE, which makes sense and all in all the Trinket still works with the Arduino IDE, so hurray :) You need to install the Adafruit_DotStar library, best done with the library installer. I had to change the datapin and clockpin, easy to find on the pinout site (https://learn.adafruit.com/adafruit-trinket-m0-circuitpython-arduino/pinouts. The other change I had to make was the configuration definition to BGR, RGB backwards. Now that I was able to do that, I found this https://forums.adafruit.com/viewtopic.php?f=25&t=124501&sid=21195cd2275abc7ba8a32912d47cff6f :D

// Simple strand test for Adafruit Dot Star RGB LED strip.
// This is a basic diagnostic tool, NOT a graphics demo...helps confirm
// correct wiring and tests each pixel's ability to display red, green
// and blue and to forward data down the line.  By limiting the number
// and color of LEDs, it's reasonably safe to power a couple meters off
// the Arduino's 5V pin.  DON'T try that with other code!

#include <Adafruit_DotStar.h>
// Because conditional #includes don't work w/Arduino sketches...
#include <SPI.h>         // COMMENT OUT THIS LINE FOR GEMMA OR TRINKET
//#include <avr/power.h> // ENABLE THIS LINE FOR GEMMA OR TRINKET

#define NUMPIXELS 1 // Number of LEDs in strip

// Here's how to control the LEDs from any two pins:
#define DATAPIN   7
#define CLOCKPIN   8

Adafruit_DotStar strip = Adafruit_DotStar(
  NUMPIXELS, DATAPIN, CLOCKPIN, DOTSTAR_BGR);

// The last parameter is optional -- this is the color data order of the
// DotStar strip, which has changed over time in different production runs.
// Your code just uses R,G,B colors, the library then reassigns as needed.
// Default is DOTSTAR_BRG, so change this if you have an earlier strip.

// Hardware SPI is a little faster, but must be wired to specific pins
// (Arduino Uno = pin 11 for data, 13 for clock, other boards are different).
//Adafruit_DotStar strip = Adafruit_DotStar(NUMPIXELS, DOTSTAR_BRG);

void setup() {
  strip.begin(); // Initialize pins for output
  strip.show();  // Turn all LEDs off ASAP
}

void loop() {
  strip.setPixelColor(0, 0xFF0000); // red
  strip.show();
  delay(1000);

  strip.setPixelColor(0, 0x00FF00); // green
  strip.show();
  delay(1000);

  strip.setPixelColor(0, 0x0000FF); // blue
  strip.show();
  delay(1000);
}

Skywalker Lightsaber | Adafruit Trinket M0 - controlling the onboard dotstar LED via Arduino IDE

2018-01-04 11:08:16

Since I couldn't find how to control it, here's my code how I did it. They probably focus on their python stuff more than on the Arduino IDE, which makes sense and all in all the Trinket still works with the Arduino IDE, so hurray :) You need to install the Adafruit_DotStar library, best done with the library installer. I had to change the datapin and clockpin, easy to find on the pinout site (https://learn.adafruit.com/adafruit-trinket-m0-circuitpython-arduino/pinouts. The other change I had to make was the configuration definition to BGR, RGB backwards. Now that I was able to do that, I found this https://forums.adafruit.com/viewtopic.php?f=25&t=124501&sid=21195cd2275abc7ba8a32912d47cff6f :D

// Simple strand test for Adafruit Dot Star RGB LED strip.
// This is a basic diagnostic tool, NOT a graphics demo...helps confirm
// correct wiring and tests each pixel's ability to display red, green
// and blue and to forward data down the line.  By limiting the number
// and color of LEDs, it's reasonably safe to power a couple meters off
// the Arduino's 5V pin.  DON'T try that with other code!

#include <Adafruit_DotStar.h>
// Because conditional #includes don't work w/Arduino sketches...
#include <SPI.h>         // COMMENT OUT THIS LINE FOR GEMMA OR TRINKET
//#include <avr/power.h> // ENABLE THIS LINE FOR GEMMA OR TRINKET

#define NUMPIXELS 1 // Number of LEDs in strip

// Here's how to control the LEDs from any two pins:
#define DATAPIN   7
#define CLOCKPIN   8

Adafruit_DotStar strip = Adafruit_DotStar(
  NUMPIXELS, DATAPIN, CLOCKPIN, DOTSTAR_BGR);

// The last parameter is optional -- this is the color data order of the
// DotStar strip, which has changed over time in different production runs.
// Your code just uses R,G,B colors, the library then reassigns as needed.
// Default is DOTSTAR_BRG, so change this if you have an earlier strip.

// Hardware SPI is a little faster, but must be wired to specific pins
// (Arduino Uno = pin 11 for data, 13 for clock, other boards are different).
//Adafruit_DotStar strip = Adafruit_DotStar(NUMPIXELS, DOTSTAR_BRG);

void setup() {
  strip.begin(); // Initialize pins for output
  strip.show();  // Turn all LEDs off ASAP
}

void loop() {
  strip.setPixelColor(0, 0xFF0000); // red
  strip.show();
  delay(1000);

  strip.setPixelColor(0, 0x00FF00); // green
  strip.show();
  delay(1000);

  strip.setPixelColor(0, 0x0000FF); // blue
  strip.show();
  delay(1000);
}

Skywalker Lightsaber | more standards and modules

2018-01-03 14:23:20

I was inspired by @deshipu to get an adafruit trinket M0 and redo the lightsaber with it, since the atsamd21 being used has a DAC on board and enough pins left to control some neopixels, check a button and grep stuff over I2C from the accelerometer. Just playing around with arduino and analog write I can say that it sounds so much better already. 

There will be a connector involved for the neopixels and I want to make everything fit the acrylic pipe first, then redesign the 3D printed parts where needed. 

Skywalker Lightsaber | more standards and modules

2018-01-03 14:23:20

I was inspired by @deshipu to get an adafruit trinket M0 and redo the lightsaber with it, since the atsamd21 being used has a DAC on board and enough pins left to control some neopixels, check a button and grep stuff over I2C from the accelerometer. Just playing around with arduino and analog write I can say that it sounds so much better already. 

There will be a connector involved for the neopixels and I want to make everything fit the acrylic pipe first, then redesign the 3D printed parts where needed. 

Skywalker Lightsaber | APA106 vs. WS2812B

2016-01-29 00:06:25

So it turns out that they are almost the same protocol... Red and Green are switched. But that is fixable :)

Skywalker Lightsaber | APA106 vs. WS2812B

2016-01-29 00:06:25

So it turns out that they are almost the same protocol... Red and Green are switched. But that is fixable :)

Skywalker Lightsaber | runs again!

2016-01-28 23:41:27

I haven't checked the MPU6050 yet, but until I do I have to choose a color. Maybe I'll go with purple. Or rainbow.

https://cdn.hackaday.io/images/909321454020786239.jpg

Skywalker Lightsaber | runs again!

2016-01-28 23:41:27

I haven't checked the MPU6050 yet, but until I do I have to choose a color. Maybe I'll go with purple. Or rainbow.

https://cdn.hackaday.io/images/909321454020786239.jpg

Skywalker Lightsaber | 12V again ...

2016-01-17 19:24:10

Skywalker Lightsaber | 12V again ...

2016-01-17 19:24:10

Skywalker Lightsaber | killed by 12V

2016-01-16 19:25:58

So I wanted to present my lightsaber and quickly plugged in the power supply but forgot to set the voltage first. Muahahah. Damn.

Skywalker Lightsaber | killed by 12V

2016-01-16 19:25:58

So I wanted to present my lightsaber and quickly plugged in the power supply but forgot to set the voltage first. Muahahah. Damn.