I’m not really sure what I have done here. Cute? Horror? Bazar? I really don’t know. My wife walked by as I was making this image and her response was “Ewww!! What the hell is that?!?!” To which I responded “Isn’t it cute?”, she walked away. The oversized respirator adds to the horror aspect of the image, the large eyes that have a very fuzzy or milky quality to them, the pupil formed only partially all at to the uneasy feeling I get when I look at it. Big eyes are cute right? Like many of Mark Ryden’s paintings….wait, are those cute , or just creepy??
This image may haunt me and when I send it to my brother, the photo of is his son, he most certainly will never forgive me. But on some level isn’t that the point? To create work that challenges the viewer in some way, to make the viewer walk away and think about it and at some point in the future return to the mental image.
Is it worse to view the image as an on looker or be the image’s creator? After all you know what went into making it, but it does ask questions about how and why your creative process led you to the outcome. I will probably put this image deep within my archives so I don’t accidently come upon it.
A quality control check of the parts reveled issues with the two aluminum parts. More details on that later in this post.
3D printed plumb base, printed solid for durability and weight.
3D printed plumb top, printed solid for durability and weight.
3D printed combination pcb mount and battery holder.
Extension arm, CNC milled 6061-al, at first glance part looked to bein spec.
Pillow Arm arm, CNC milled 6061-al, at first glance part looked to bein spec.
During the tapping process it seemed the the hole was not perpendicular to the arm face.
After tapping and assembly the mis-machining was confirmed.
Red lines show misalignment.
Red lines show misalignment.
Red lines show misalignment.
The misalignment between the arms causes the tension of the bearings to be very off creating binding for half of the rotation and looseness on the other half of the rotation.
I will be contacting the machining service for replacement. In the event that the parts can’t be replaced this design allows for the use of the only the extension arm however, the desired compound rotation will be lost.
Keyswitches are at the heart of one of the most used human input devices, the keyboard. They are produced in a number of different form factors and styles. When the keycap is depressed the keyswitch presses into a pcb located below it, which in turn completes a circuit sending an electrical impulse to the device resulting in the predetermined action. These keyswitches preform the same type of action that a momentary, non-latching, switch preforms. The basic action is a temporary state change.
Data sheets
Link to folder containing all the datasheets for the given keyswitches
Basic information of from the datasheet
Switching Voltage 12V AC/DC max – 2V AC/DC min
Switching Current 10mA AC/DC max – 10µA min
Insulation Resistance 100MΩ/DC 500V
Withstand Voltage 100V AC 1 minute
Dielectric Strength 500V 50Hz
Actuation Force 45cN-95cN
Example Uses
The keyswitch is first and foremost design to use in keyboards. Most have a fast response time and because of the pcb and firmware used often times multiple keypresses from different keys at the same time still register. although these keyswitches are predominantly found in keyboards the possibilities for use in other areas is quite broad. There are some mice on the market that use these type of switches for under the two main left and right buttons. Furthermore there are many different types of keyswitches in terms of feel, clicky, quiet, tactile, and are also available with different actuation force.
Strengths and Weaknesses
The major weakness of all keyswitches on the market today is the need for a specific pbc ,layout and the need for a specific housing. The size of most keyswitches has been somewhat standardized over the past few years however, the pcb layout and interface have not.
Example Circuit Schematic
Example diagram of Cherry MX Red switch
linear actuation no sound.
Example diagram, Cherry MX Blue
Tactile and Audible
Example Microcontroller Code
One way to use a keyswitch is as a momentary switch, thusly an code that would take advantage of a momentary switch for a state change will work. {INSERT CODE HERE). The other way is to use it with this code(INSERT CODE HERE) and a keyboard library or firmware like QMK.
awakened from a dream,…no a nightmare,…or a thought I’m not really sure, in a place familiar and alien at the same time…my room, lived in, but not by me…the door before me is open…i move through it…the space seems to shift around me as i proceed inward…till the space is completely unrecognizable as anything familiar…the longer i move…the stranger and less finite the spaces become…morphing…changing…unstructured…in the end i am standing…alone…on a street..i don’t know…in a body i don’t yet recognize…
At right shows the initial sketch concept of having a dSLR capture the movement of a pendulum. There have been a few changes to the system from the illustration at right.
Updated parts can be found below. The plumb of the pendulum is equipped with an RGB LED. The dSLR will capture the path of the plumb with a long exposure. The pivot point of the pendulum is on a multi-arm extension attacked to a stepper. The extension has three positions on each arm, allowing for some degree of adjustment to the physical system. Direction and speed of the stepper will be controlled through a toggle and a radial potentiometer.
My bloodline flows from Sicily, both sides of my family are Sicilian, all of them. Stregheria is the term used for witchcraft in Italy. My mother has always said that she is a witch, and I have always believed her. Many times a child I would find piles of salt outside of doors and windows, I was told that was the remains of evil trying to enter the house. To this day I’m not sure if that was my mom’s ploy to keep us kids from reeking havoc in the house or if it was evil actually being stopped form entering the house. Either way I still have a propensity to believe that it was evil being stopped. Over the years my sense that witch’s blood flows through my veins has become more and more vivid.
Fava beans are said to carry a great deal of luck and were used much like tea leaves, bones, or dust for reading the future path of an inquiring person. Fava beans have a very distinct look light reddish-brown in color with a very dark brown small line at one end.
Heads are all over the place in Sicily. The most prominent is on the Sicilian flag. The head of Medusa sits in the center of the flag, an amulet guarding from bad luck symbolizing a mistrust of fate. The whole symbol referred to as a Trinacria, was often used to ward off evil from homes usually placed behind doors so the evil would turn to stone before entering.
The other head found with ease in Sicily is the Moorish Head, usually made of ceramic and extravagantly decorated. The lore behind these heads varies but generally follows a tail similar to this excerpt from Times of Sicily:
The original folk tale behind the ceramic heads comes from Palermo and tells of a Saracen merchant who falls in love with a beautiful local girl. Together they start a passionate love affair, until the girl discovers her lover has a wife and children waiting for him in his homeland. In a fit of jealously and rage she murders him in his sleep, cutting off his head, so that her lover would stay with her forever. The girl uses the head as a vase to grow a beautiful basil plant. Others seeing her flourishing plant, forge themselves the colourful clay head pots in an attempt to recreate the bountiful fertility.
So when it came time to create an artwork while using a a divination practice I took the ideas from Sicilian heritage and my obsession with action figures and combined them to create a new divination practice that ultimately became the artwork itself. A series of 13 photos were taken of 14 heads. Each toss of the heads yields a different random pattern form the heads. I then layered these photos and applied a variety of transformations to achieve a series of gifs. Here are the original 13 photos without any editing.
Original image from https://www.instagram.com/keys.witches/
Key board switches, or keyswitches as the industry call them, have become somewhat of trend as of late. Most of us have used a keyboard, some of us have thought about what makes a keyboard appealing, and probably fewer have really thought about how a keyboard works and why it feels the way it does. Keyboard customization and small batch manufacturing have given light to a great number of choices within the keyswitch market. This trend or fad, dare I say, has gotten to the point that humans are making artwork based on keyswitches.
In this sensor report I will attempt to make a physical device that shows the physical interface between both the user and the electronics of a keyswitch. As well as addressing the common misconceptions, uses, basic technology, and the steadily growing number of manufacturers.
There are many different types of keyswitches so many so that there is very robust resource located at https://deskthority.net/, here you find lots information about keyboards in general and even information on modding however, what is missing is very specific information regarding how to use the keyswitch outside of normal use cases. The keyswitch itself is such an interesting component with a varied array of feel, form factor, and electrical requirements its very easy to see that there are many more uses than just a keyboard. In doing this sensor report my hope is that others will see what “outside-of-the-board” thinking looks like in regard to keyswitches.
This post is the first in a multi-part series about the keyswitch. The series will document research, testing, and fabrication for a device that will live on the ITP floor at NYU. Ideas and comments are welcome and I will try to incorporate as many suggestions as possible.
For now I will leave you with a images showing some types of keyswitches.
Basic illustration of how a keyboard/keyswitch works.
Kailh Speed Pro Light Green
Kailh Low profile Notebook Switch, for laptop, keyboard scissor switch, clicky type
Sometimes I find myself staring out into space to relive stress and re-center however, lately staring into space hasn’t been enough. So I decided to make my final project an interactive distraction. I wanted to focus on user interaction, making it easy for the user to adjust the output and understand how the changes they were making effected the end result. The ability to re-start the graphic was also important.
Since the UI was an import aspect of this project I wanted to focus on making it easily understandable. My first iteration was not the most user friendly.
In the above version all of the sliders for the starting position of four shapes were grouped together, followed by two sliders that control global variables, followed by sliders for color and stroke for each of the shapes. The order didn’t really make any sense. The other aspect of this interface that I disliked, and pointed out by John Henry, was that the user had to have all the shapes actively on screen. Adding a check-box to allow the user to select what shapes were seen made it so the user had more control over the graphic that was produced.
In the final UI global variables and the ability to re-size and reset the graphic are located at the top of the UI, each shape and all sliders associated with it are grouped together. A check-box turns the shapes on and off. The value is displayed to the right of each slider for those that control the shape’s position. I didn’t feel like it was necessary to display the vale for the color and stroke since those elements don’t change the way the shapes behave, and the values aren’t important for the user to really understand how the changes to the sliders effect the position and size of the shapes.
The images above show some of the combinations produced with the adjustment of various sliders. The first image is “in-set” with the UI showing under it. The other two images show the graphic as “full-screen”.
I would like to continue the development of this sketch there are a few different ides I would like to implement.
I want to be able to mirror the graphic produced into the four quadrants or even make it so the use can determine how many mirrors of the graphic are produced.
The ability to save the graphic as an .svg and then plot it out would be a nice added feature. That would enable the user to create permanent works of generated art and not just use this as a tool for relaxation.
I would like ta add a slider for each shape that would change the spacing between each new object in the series, to open up the patterning a bit.
As an Industrial Designer I live in a world of creation dictated by usefulness, sleekness, and functionality. However, I have always been fascinated by objects that at first seem useful but in the end show how incredibly useless they truly are. My journey into objects that are useless in not any easy one, my formal training and continued professional practice make it difficult for me to produce an object for the sake of that object. I challenged myself to take an object that most people can relate to and also understand the usefulness on first glance. Upon further inspection of the object, in this case a lamp, the user realizes the uselessness of the object.
I took visual inspiration from the concrete usage in Russian Architecture and contrasted it with copper, a material that exists in a dichotomic state being both cold and visually warm. So the bones of this object have come together to form something of interest slightly not square and imperfect in so many ways. The viewer is forced to reconcile the uneasy feeling of something that is seemingly unbalanced. The Lamp shade, angled back towards the base of the object puts a focus on the users hands as they interact with two metal protrusions from the base. These metal posts are points of interaction, no adjustability to the positioning of the light is offered, no ability to change the height the light, it is simply there.
As I mentioned in my previous entry, my original intention was to use gesture control to change position of the lens as well as the brightness of the light. Below is the code that attempts to limit a stepper motor to have only 90 degrees of rotation. For some reason the stepCount variable would not update while using the APDS9960 gesture sensor. I gained two very important pieces of information from this lengthy process.
Just because an interaction makes sense in your head does not mean it will be the most effective. After spending some time with a few different users I abandoned the use of the gesture sensor, It was mostly just frustrating. It was very unpredictable, it worked 100% of the time 10% of the time, in other words it didn’t really work at all. From miss-reading the gesture to not picking up the gesture at all, it just didn’t make sense to use it in this case. I think the sensor works OK sometimes however, to use it on a lamp makes it quirks really err…shine. Having the sensor placed anywhere that made sense for the operation of the lamp made its performance suffer even more.
Don’t use a stepper motor when you really need a servo. Steppers are great for very precise movements, something I did not need in this situation. Steppers are also great for a device that needs continuous rotation, again I did not need continuous rotation I only needed 90 degrees. The use of the servo and a radial potentiometer really gives the user a connected feel to the movement of the lens.
Below is the code for using the gesture sensor to control the stepper.
#include "Stepper.h"
#include "Adafruit_APDS9960.h"
Adafruit_APDS9960 apds;
int stepCount = 0;
const int stepsPerRevolution = 1026; // change this to fit the number of steps per revolution
// for your motor
// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 9, 10, 11, 12);
void setup() {
// set the speed at 60 rpm:
myStepper.setSpeed(10);
// initialize the serial port:
Serial.begin(9600);
if (!apds.begin()) {
Serial.println("failed to initialize device! Please check your wiring.");
}
else Serial.println("Device initialized!");
//gesture mode will be entered once proximity mode senses something close
apds.enableProximity(true);
apds.enableGesture(true);
}
void loop() {
// step one revolution in one direction:
// uint8_t gesture = apds.readGesture();
if (stepCount < 510) {
uint8_t gesture = apds.readGesture();
if (gesture == APDS9960_DOWN) myStepper.step(51);
stepCount = stepCount + 51;
delay(100);
if (gesture == APDS9960_UP) myStepper.step(-51);
stepCount = stepCount - 51;
delay(100);
// if (gesture == APDS9960_LEFT) myStepper.step(513);
// if (gesture == APDS9960_RIGHT) myStepper.step(-513);
Serial.print("stepCount:");
Serial.println(stepCount);
}
}
Conceptually the idea is to have a lamp that really only functions as an interaction with the lamp. Basically a useless lamp. Brightness is controlled via a rotary potentiometer placed on the left-hand side of the base and the lens position is controlled by a rotary potentiometer placed on the right-hand side of the base. There is a bit of discovery involved as the pots are not labeled on purpose. At this point you might be asking yourself “Why would I want/need to control the position of the lens?” Well ,my friend, I’ll tell you. This particular lamp has not one but two lenses, each lens is a composite of a lenticular array and a linear polarizing filter. The idea was to change the relative position of the lenses to change the light quality. What I basically ended up doing, not on propose I might add, was creating a variable detraction grating. This was not my intended outcome however, my goal was to change the quality of the light by rotating two lenses in relation to each other. In that sense I was fully successful in that goal.
so now lets look at the code I used for the final implementation, two variables allow the position of the lens and the brightness to be adjusted independently of each other.
#include <Servo.h>
Servo servoMotor;
int servoPin = 3;
const int lampPin = 9;
void setup() {
Serial.begin(9600);
pinMode(lampPin, OUTPUT);
servoMotor.attach(servoPin);
}
void loop() {
// Lamp Operation
int sensorValue = analogRead(A0);
int outputValue = map(sensorValue, 0, 1023, 50, 255);
analogWrite(lampPin, outputValue); //Adjust Lamp Brightness
Serial.println(outputValue);
//Servo Operation
int analogValue = analogRead(A1);
int servoAngle = map(analogValue, 0, 1023, 0, 95);
if (millis()% 20 <2) {
servoMotor.write(servoAngle);//Change Postion of Servo
}
Serial.println(servoAngle);
}
Fabrication of the lamp was not without challenge either. Aesthetically I wanted it to have an almost unfished industrial quality to it. Make the user feel a little uneasy while using it and also question why it was made. Unsealed concrete and raw copper tube were the materials I chose. They compliment each other well, over time and with continued usage both materials will gain a patina. The copper will patina fairly uniformly but the concrete on there other and will really only change in the places the user touches it. This will provide future users with more clarity of where the interaction points are but also speak to the object having some kind of history.
The physical object was basically one big problem solving endeavor. Casting concrete is fairly easy, but with a limited time frame and realizing this piece is a one-off it didn’t really make sense to make silicone molds of parts created just for this.
I used “flex-cones” as the mold for the lamp head. The voids would give some interesting detail to the form. But, and this is a big but, voids mean holes which means I couldn’t pour a liquid into it. So I used packing tape to create a shell over the cone. This covered the voids as well as gave some added rigidity to the mold. I also need a way to keep the inner cone and outer cone separated so the concrete could be poured into it. I unfortunately forgot to take pictures of this step. I used a hollow threaded rod at top of the cones to keep them separate. This also gave me a whole at the top of the lamp head in which I was able to pass the wiring though.
The base of the lamp was created in a similar fashion. A 2.5QT bucket was used for the base with three pipes used to create holes for the upright and the two potentiometers.
Again this was a two part mold to create a cavity in order to house the microcontroller and the potentiometers. This resulted in a very this slab where the upright would penetrate the base. Concrete can be very brittle when side load is placed on it. The slab was only about 0.25″ thick which would not support weight of the Lampe head. A second pour into part of the void created a slab that was thick enough to support the load placed on it from the lamp head.
I had to make extensions for the horn that I used. Brass tubing made quick work of this. The extension allowed me to place the servo behind the LED so as to no interrupt the light with the servo.
Final assembly was not a cake walk either. My hands are big, the inside of the lamp head is small, need I say more. Patients, tweezers, and some super sludgy metal (music) got me to a point where it all came together.
And Finally the lamp in all it’s uneasy glory.
There are so many changes I would make to this project, for one I would like to make this base 1’x1’x4′ so it basically sits on a pedestal. I would also want to make the able the head moor extrema to really show how useless it is. I wasn’t able to get this to run from wall power only. When the board was being powered from the wall, both the LED and the servo acted very erratically. The LED would go to full brightness at 50% through the potentiometer’s rotation and then fade back down in the other 50% of rotation. And the servo would not start to activate until about 30% through the rotation of the potentiometer and then would not actually turn, it would bounce back and forth between the starting position and about 10 degrees. I’m not sure why this behavior was being exhibited it could be because of a grounding issue or possibly power, but I don’t think it is power. I tested using 12V, 15V, and 16V all with about 3.5 amps. I tried to use a two 1000μF capacitors which didn’t really help at all. I keep the capacitor I used for the servo since it helped to clean up the output and removed some of the bounciness of the movement.
For the moist part I am fairly happy with the way this turned out. I set out to make a useless lamp that had two interactions brightness and light quality, both were achieved. As always I welcome feedback in the comments.