Posted on

New Wine Glass Charm Sets

Sunday Mornings are a great time to spend at the workbench and this morning has yielded a few new sets of wine glass charms.  

I had fun putting together Garden Party.  I have been hoarding these vintage beads for a long time, slowly collecting a set.  This set of 5 flowers plus one lovely bead with an engraved bird seemed like the perfect grouping for a charm set of 6.  If you like to keep the feeling of spring and summer with you all year long, this one of a kind set is for you. 

Garden Party: Wine Glass Charms

20.00$

Your garden party does not have to end, just because the weather is turning chilly.  This collection of vintage glass beads will evoke the spirit of the garden party all year long.  A one of a kind collection that includes 5 unique flowers and a bead with an engraved bird who joined the party. 

Add to cart

Another playful set came out of some small glass beads I found in my collection.  I have a friend who has been making handmade marbles and posting them lately, and these reminded me a bit of a tiny version of his artistic creations.  I always feel like I have lost my marbles when I walk around in circles trying to find my drink.. so it all just sort of rolled together.  If you know someone who is a grownup who never lost their playful spirit, these are a perfect birthday or Christmas present. 

Marbles: Wine Glass Charms

15.00$

You might lose your marbles, but you will not lose track of your glass if you add on this set of 4 unique small glass beads.  Evoking the feeling of marbles, this playful set will add to your good time and keep your glass identified. 

Add to cart

Most times, I make charm sets out of glass beads to keep the costs down.  I was lucky enough to get a supply of small fancy jasper and moss agate beads at a really reasonable price, and so I am making one unique set of charms of real stone beads.  If your friendships are rocky solid, you will want to celebrate by using these wine charms at your next get together.  You will never lose track of which glass is yours when they are marked with these small treasures. 

Rock Solid: Wine Glass Charms

20.00$

Do you have rock solid friendships?  This set of 6 stone beads is the perfect accessory for your wine glasses.  The collection of fancy jasper and moss agate beads will decorate your glasses and make sure that you are steady as a rock to identify your glass in the mix. 

Add to cart

If your friends are gems, the kind that shine even through bad times, you will want to use this collection of fancy glass beads to mark your wine glasses the next time you gather. Just like your friends, each has its own personality, but they are all beautiful. 

You are a Gem

15.00$

When you have friends who are true gems, and you gather to support each other, you will want to use this one of a kind wine glass charms to make sure you don’t lose track of which glass is whose.  

Add to cart


Have a theme or inspiration you want a set designed for? Email me and we can brainstorm designs together.

Posted on

Touch me, touch me, touch me Pt 2.

A couple of weeks ago I got stymied by misbehaving TouchCapacitance with the Adafruit Circuit Playground Express.

There are a small handful of videos out on youtube where people have been playing with this feature – all with slightly different code approaches- but none of them seemed to have the “wrong input” problem I was having.  I thought maybe my else was just still too long but found examples that pretty much matched what I did and were working in their video.

And then, at 3:30 into this video on using CircuitPython to do a touch capacitance piano,  the host hit on the issue of false inputs.  ta-dah!  Seems like just keeping the wires straight was going to be the answer.  I got out a clipboard and did the layout on a wider surface and sure enough, with no wires touching ( even though they are insulated wires) everything plays lovely.

I got out some paper to start sketching out a new layout and design with this in mind…  but then got interrupted by Dave’s brainstorm and need for collaboration on glowing glass necklaces…

I have an ultimate goal to be able to use this for a much larger art install project so I will come back to this smaller version in a week or two to test and learn more about the touch surfaces..

to be continued…….

Posted on

Touch me, touch me, touch me…

Having gotten over a fear of hardware with the early easy success of the Decision Slug, and having proven out the simplicity of even the block interface for software with my Arc Reactor POTS Sensor, I wanted to explore more of the input sensors.  Ever since playing at Meow Wolf in Santa Fe this summer, touch capacitance has been dancing in my brain.   I made some progress on it, but have to tell you that there is something glitchy in getting it going all the way with Adafruit’s Circuit Playground Express (CPE) and this is not yet whole.

The CPE has 7 pads that can act as touch capacitive inputs, there are 7 main colors in a rainbow ( ROYGBIV) and there are 7 notes in a scale.  Seems like it is time to make a rainbox piano.  I should be able to set it up so that there are strips of copper tape that make the inputs conductive, I should be able to build something fun.

It seemed like a super simple coding project- touch input here, change the color, play a sound.  Easy, right?  Sure, unless you try to get all software-y on it. I thought. Hey- have one variable, set the value of the variable according to where the input came from. Then have an evaluation of the variable and do different things depending on the value of the variable.  Perfectly logical software application approach.  The code looked something like this:


let touchMe = 0
input.pinA1.onEvent(ButtonEvent.Click, function () {
touchMe = 1
})
input.pinA2.onEvent(ButtonEvent.Click, function () {
touchMe = 2
})
input.pinA3.onEvent(ButtonEvent.Click, function () {
touchMe = 3
})
input.pinA4.onEvent(ButtonEvent.Click, function () {
touchMe = 4
})
input.pinA5.onEvent(ButtonEvent.Click, function () {
touchMe = 5
})
input.pinA6.onEvent(ButtonEvent.Click, function () {
touchMe = 6
})
input.pinA7.onEvent(ButtonEvent.Click, function () {
touchMe = 7
})
forever(function () {
if (touchMe == 1) {
light.setAll(0xff0000)
music.playTone(262, music.beat(BeatFraction.Half))
touchMe = 0
music.stopAllSounds()
light.clear()
} else if (touchMe == 2) {
light.setAll(0xff8000)
music.playTone(294, music.beat(BeatFraction.Half))
touchMe = 0
music.stopAllSounds()
light.clear()
} else if (touchMe == 3) {
light.setAll(0xffff00)
music.playTone(330, music.beat(BeatFraction.Half))
touchMe = 0
music.stopAllSounds()
light.clear()
} else if (touchMe == 4) {
light.setAll(0x00ff00)
music.playTone(349, music.beat(BeatFraction.Half))
touchMe = 0
music.stopAllSounds()
light.clear()
} else if (touchMe == 5) {
light.setAll(0x00ffff)
music.playTone(392, music.beat(BeatFraction.Half))
touchMe = 0
music.stopAllSounds()
light.clear()
} else if (touchMe == 6) {
light.setAll(0x0000ff)
music.playTone(440, music.beat(BeatFraction.Half))
touchMe = 0
music.stopAllSounds()
light.clear()
} else if (touchMe == 7) {
light.setAll(0x7f00ff)
music.playTone(494, music.beat(BeatFraction.Half))
touchMe = 0
music.stopAllSounds()
light.clear()
} else {
touchMe = 0
light.setAll(0xffffff)
}
})


Lesson One: the hardware and hardware interactions were way faster than the software evaluation of that long if/else statement.  So sometimes it would do the right thing, but sometimes it would miss and sometimes I would get the input from the last touch.  I had to think about code differently for hardware/human interactions. It was direct and so the code needed to be more direct.


forever(function () {
light.setBrightness(107)
music.setVolume(175)
if (input.pinA1.isPressed()) {
music.playTone(262, music.beat(BeatFraction.Half))
light.setPixelColor(6, 0xff0000)
} else if (input.pinA2.isPressed()) {
music.playTone(294, music.beat(BeatFraction.Half))
light.setPixelColor(8, 0xff8000)
} else if (input.pinA3.isPressed()) {
music.playTone(330, music.beat(BeatFraction.Half))
light.setPixelColor(9, 0xffff00)
} else if (input.pinA4.isPressed()) {
music.playTone(349, music.beat(BeatFraction.Half))
light.setPixelColor(1, 0x00ff00)
} else if (input.pinA5.isPressed()) {
music.playTone(392, music.beat(BeatFraction.Half))
light.setPixelColor(2, 0x00ffff)
} else if (input.pinA6.isPressed()) {
music.playTone(440, music.beat(BeatFraction.Half))
light.setPixelColor(3, 0x0000ff)
} else if (input.pinA7.isPressed()) {
music.playTone(523, music.beat(BeatFraction.Half))
light.setPixelColor(4, 0x7f00ff)
} else {
light.setAll(0x000000)
music.stopAllSounds()
}
})

This code does the same thing as the first block, but is much more responsive and gives us a tone and color change correctly every time.

Since I knew the code and hardware were working reliably, I started to build out the actual human interface for the piano.
Lesson 2: Notice the table in that video. Yep.. a metal table. LOL. D’oh. when working with touch inputs, working with leads on a metal table through paper gives interesting mixed up spaghetti results. 

I decided to move the base of the project onto a 6X6 square of polycarb and started marking out and running copper tape and wire where I want the touch spots to be for this handheld rainbow piano.

Debug Issue: Everything is lovely with the first touch sensor or two, but after that, the entire thing goes nuts. Sometimes when you touch pad #3 you get the code for 3 to play, but sometimes it plays 1 or 7 or…    It is like a crazy ghost in the machine.

I banged my head on this for about 20 minutes, and then I hit time for SHAK open house, so it is a pause and then regroup on this in the future.  Note: I got to the bottom of this mystery a few weeks later and wrote it up.

Posted on

A Marvel-ous POTS Alarm

ColorTempIndicatorIn playing with the MakeCode Interface last week to write some Javascript for the Decision Slug, I was excited to see that it also had an interface where code could be written with a block interface, instead of text.

I figured this was potentially helpful for two reasons:  1) it lowered the bar of entry for anyone who wanted to build with hardware, and 2) it was a great code learning exercise because you can build in blocks and then flip over to text.  For this week’s project, I wanted to work just in the Block interface and see if I could do some interesting things, and I wanted to play with the thermistor built into the Adafruit Circuit Playground Express (CPE) board I have been learning with.

For me, the Thermistor was interesting because one of the side impacts of my Ehlers Danlos is a solid case of NeuroCardio Syncope and POTS.

For me, this hits when the temperature rises. I get

iron-man-arc-reactor-shirthot and then I topple over- it is a grand adventure.  I thought.. what if we could have some visual feedback on the ambient temperature but still make it fun.   The neopixels on the CPE pretty instantly make you think of Tony Stark’s arc

20180815_165811.jpgreactor, so that seemed a place to start.


I found art of the arc reactor in the Cricut DesignCenter, cut some metallic red iron – on and prepped a shirt to receive the CPE.   You can see it here, with the CPE in place.  Because I am a human female, I chose to put it on the left side, over my heart rather than dead center  and buried in cleavage.   I measured out the CPE so that I knew the board would fit correctly in the middle of the iron on.  I attached a pin back to the board, so it was removeable ( I will try magents next time) and cut a small hole in the shirt under the board for the wire to the battery pack.  I used velcro to attach the battery pack to the inside of the shirt.

The code ended up being very simple – block image above is the actual code.  Here is the Javascript if you want a Cut/Paste, or you can download the utf file.


 

 

forever(function () {
if (input.temperature(TemperatureUnit.Fahrenheit) >= 80) {
light.showAnimation(light.theaterChaseAnimation, __internal.__timePicker(500))
light.setAll(0xff0000)
} else if (input.temperature(TemperatureUnit.Fahrenheit) <= 45) {
light.showAnimation(light.colorWipeAnimation, __internal.__timePicker(500))
light.setAll(0x0000ff)
} else {
light.setAll(0x00ff00)
}
})

The lights turn red if the temperature is 80 F, Blue if it is below 45F and green the rest of the time.  The picture above where the lights are green is after I had chilled it in a fridge to test the thermistor.   Here is the video of the final project:

As I was experimenting with outputs from the thermistor on the board, I also played with the graph() function, which allows us to map ranges of values to the neopixels built in. The block code for this is below, and you can download the utf file as well.

thermometerblocks.png

Posted on

Decision Slug

Decision Slug at SHAK Makerspace         
Some days, you are just too much of a slug to make a decision.

When that happens, the decision slug is the project for you.

This slug was laid out with a 4 option grid, but you could build yours with any number of choices.

This was the first project I did in my August Month of MakerMayhem-  my personal locked out time to explore and build with hardware.   I have a long history with software and programming- but it has always been applications or web pages.  I had historically sidestepped making the step into hardware controls, maybe because I was Certain I was going to just explode expensive hardware, it seemed safe to stick to words on a screen.  When I decided to block off large chunks of time in August to make at SHAK Makerspace , this seemed like the right challenge to include.

Luckily, the Adafruit Circuit Playground Express is a super easy and reasonably low-cost board to start with- this took most of the trepidation out of the mix.

For the first project, I wanted to play with the accelerometer, built-in sound, the included neoPixels, and also with conductive thread and some connected LEDs ( I put those in the slug eyespots).

Although the Circuit Playground express can be programmed in a multitude of languages ( including CircuitPython and Arduino), I did this first project in Javascript.  I wanted to focus on the hardware and hardware calls, not learning a new language.

I kept track of every iteration of the code, just to see how many experimental rounds and tweaks it took me to get the results I had decided on.  12 iterative saves and about an hour later I had functioning code that I liked how it behaved both in the Microsoft MakeCode simulator and on the board itself.

You can see the code here, feel free to copy/paste and mutate for your own use.

let LED = 0
input.onGesture(Gesture.Shake, function () {
music.playSound(music.sounds(Sounds.PowerUp))
// Pick a random number, there are 10 LEDS on the CPE
LED = Math.randomRange(0, 9)
light.showAnimation(light.sparkleAnimation, __internal.__timePicker(2000))
// Blink the LED Eyes that are sewn in at outputs A7
// and A0
pins.A7.digitalWrite(true)
pins.A0.digitalWrite(true)
pins.A7.digitalWrite(false)
pins.A0.digitalWrite(false)
pins.A7.digitalWrite(true)
pins.A0.digitalWrite(true)
music.playSound(music.sounds(Sounds.BaDing))
light.setPixelColor(LED, 0x00ff00)
// Turn the eyes back off
pins.A7.digitalWrite(false)
pins.A0.digitalWrite(false)
})

Most of the iterations were because I  layered in the effects one at a time so I could learn and debug ( not really much to debug here) and then playing with order and timing to give the results I wanted.   If you like exactly this action, you can download the compiled code.

I then spent most of the rest of the day… sewing. I used scraps and bits we had around the space and made a goofy looking slug.
I think this would be fun to bastardize an existing stuffed animal and embed it into the animal, as a next level redo.