513
edits
No edit summary |
No edit summary |
||
Line 27: | Line 27: | ||
The switches have to be made of a flexible material so that they automatically return to their „off-state“ when the person changes his/her location. <br> | The switches have to be made of a flexible material so that they automatically return to their „off-state“ when the person changes his/her location. <br> | ||
I will try to implement a kind of resistor ladder in order to reduce the amount of input pins needed | I will try to implement a kind of resistor ladder in order to reduce the amount of input pins needed.<br> This amount can easily become very high depending on the amount of sensors.<br> | ||
The outputs will be controlled by an Arduino Micro controller board.<br> | The outputs will be controlled by an Arduino Micro controller board.<br> | ||
It will trigger certain sounds or other outputs such as motor movement or LED lights. <br> <br> | It will trigger certain sounds or other outputs such as motor movement or LED lights. <br> <br> | ||
Line 49: | Line 49: | ||
During the first class we investigated different materials and their conductivity / resistivity.<br> | During the first class we investigated different materials and their conductivity / resistivity.<br> | ||
I was mostly interested in materials that produce variable resistance when they are pushed and | I was mostly interested in materials that produce variable resistance when they are pushed and | ||
squeezed like „resistive plastic foam“. | squeezed<br> like „resistive plastic foam“. | ||
Another nice discovery was combining a metallic sponge and a piece of aluminium foil. <br> | Another nice discovery was combining a metallic sponge and a piece of aluminium foil. <br> | ||
Line 63: | Line 63: | ||
The first experiment including matrix structures was about a chain of buttons.<br> | The first experiment including matrix structures was about a chain of buttons.<br> | ||
Each of these buttons were connected via different resistor values.<br> | Each of these buttons were connected via different resistor values.<br> | ||
The last resistor of that kind of „resistor ladder“ connects the whole structure to the Arduinos analog input via a voltage divider with a 100K resistor.<br> | The last resistor of that kind of „resistor ladder“ connects the whole structure to the Arduinos analog input<br> via a voltage divider with a 100K resistor.<br> | ||
—> see the circuit drawing below <br><br> | —> see the circuit drawing below <br><br> | ||
This „button - resistor structure“ assures that each button provokes a specific and distinguishable value in the Arduinos serial reading.<br> | This „button - resistor structure“ assures that each button provokes a specific and distinguishable value<br> in the Arduinos serial reading.<br> | ||
The experiment could lead to a more complex button structure that can be used as an „analog input matrix“. <br><br> | The experiment could lead to a more complex button structure that can be used as an „analog input matrix“. <br><br> | ||
Line 78: | Line 78: | ||
'''3) hacking a toy keyboard, triggering it with relays + exploring its inner architecture''' | '''3) hacking a toy keyboard, triggering it with relays + exploring its inner architecture''' | ||
In the second experiment we took a closer look at a toy including a keyboard matrix to play a funny collection of sounds.<br> | In the second experiment we took a closer look at a toy including a keyboard matrix to play a funny collection<br> of sounds.<br> | ||
At first we traced each tone back to its switch on the matrix.<br> | At first we traced each tone back to its switch on the matrix.<br> | ||
Then we soldered external wires to the sound terminals in order to make the sounds externally accessible.<br><br> | Then we soldered external wires to the sound terminals in order to make the sounds externally accessible.<br><br> | ||
Line 89: | Line 89: | ||
These relays allowed us to turn the sound on and off so that little pieces of the sounds could be cut out. | These relays allowed us to turn the sound on and off so that little pieces of the sounds could be cut out. | ||
We stopped our experiment as soon as we realized that we would need a lot of (expensive) relays to control every available sound on the toy chip.<br><br> | We stopped our experiment as soon as we realized that we would need a lot of (expensive) relays to control<br> every available sound on the toy chip.<br><br> | ||
[[File:hacked_toy_matrix_sound.jpg]]<br><br> | [[File:hacked_toy_matrix_sound.jpg]]<br><br> | ||
Line 109: | Line 109: | ||
This is a common keyboard matrix with a 4 x 3 buttons number plate.<br> | This is a common keyboard matrix with a 4 x 3 buttons number plate.<br> | ||
I „reverse engineered“ the matrix structure (hidden in the case) after I soldered pin headers to its connectors in order to plug it into the bread board.<br> | I „reverse engineered“ the matrix structure (hidden in the case) after I soldered pin headers to its connectors<br> in order to plug it into the bread board.<br> | ||
I was mostly interested in using the matrix as a variable resistor rather than using it as a „multiple digital pin input device“. (see experiment no. 2)<br> | I was mostly interested in using the matrix as a variable resistor rather than using it as a „multiple digital<br> pin input device“. (see experiment no. 2)<br> | ||
I achieved that by connecting different resistor values in between each contact of the vertical and the horizontal button lines.<br> | I achieved that by connecting different resistor values in between each contact of the vertical and the horizontal<br> button lines.<br> | ||
In the end a voltage divider helped to create different voltage changes for the Arduinos analog input.<br> | In the end a voltage divider helped to create different voltage changes for the Arduinos analog input.<br> | ||
The matrix is actually meant to be used as a "multiple digital pin input / output interface" like shown on this website (http://pcbheaven.com/wikipages/How_Key_Matrices_Works/) . <br><br> | The matrix is actually meant to be used as a "multiple digital pin input / output interface" like shown on this<br> website (http://pcbheaven.com/wikipages/How_Key_Matrices_Works/) . <br><br> | ||
In my experiment every button represents a certain value in the analog input.<br> | In my experiment every button represents a certain value in the analog input.<br> | ||
Line 125: | Line 125: | ||
Another interesting part of that experiment was the code.<br> | Another interesting part of that experiment was the code.<br> | ||
I did not use any library - instead of that I tried to use my basic programming skills to set it up by myself.<br> | I did not use any library - instead of that I tried to use my basic programming skills to set it up by myself.<br> | ||
It surprisingly worked out quite well - despite the mentioned overlap problem and the face that I needed a lot of memory. <br><br> | It surprisingly worked out quite well - despite the mentioned overlap problem and the face that I needed<br> a lot of memory. <br><br> | ||
In order to solve these issues in the future I need to learn about programming „arrays“ and „forloops“ that can help minimizing the amount of code.<br> | In order to solve these issues in the future I need to learn about programming „arrays“ and „forloops“ that<br> can help minimizing the amount of code.<br> | ||
The overlap problem could be solved by using binary functions / average measurements that define clearer value states. <br><br> | The overlap problem could be solved by using binary functions / average measurements that define clearer<br> value states. <br><br> | ||
[[File:matrix_sketch_1.jpg]]<br><br> | [[File:matrix_sketch_1.jpg]]<br><br> | ||
Line 136: | Line 136: | ||
'''5) the toy keyboard matrix as a resistive sensor''' | '''5) the toy keyboard matrix as a resistive sensor''' | ||
The idea of using a matrix as a variable resistor was a good way of connecting the toy-keyboard to the arduinos analog input.<br><br> | The idea of using a matrix as a variable resistor was a good way of connecting the toy-keyboard to the<br> arduinos analog input.<br><br> | ||
My hacked version of the toy keyboard does not really work as a system of clear state switches.<br> | My hacked version of the toy keyboard does not really work as a system of clear state switches.<br> | ||
I used a very resistive material in order to access the matrix (graphite lines).<br> | I used a very resistive material in order to access the matrix (graphite lines).<br> | ||
This material in combination with the original matrix circuit material (also very resistive) makes it hard to define clear input values.<br><br> | This material in combination with the original matrix circuit material (also very resistive) makes it hard to<br> define clear input values.<br><br> | ||
A cool discovery: | A cool discovery: | ||
The multimeter shows that I get a certain value of resistance for each button when all the vertically and all the horizontally connected „lines“ are connected together. <br><br> | The multimeter shows that I get a certain value of resistance for each button when all the vertically and<br> all the horizontally connected „lines“ are connected together. <br><br> | ||
[[File:resistor_values_toy_matrix.jpg]]<br><br> | [[File:resistor_values_toy_matrix.jpg]]<br><br> | ||
Line 149: | Line 149: | ||
This way it is possible to use the matrix for instance as a variable resistor for a 555 timer chip in astable mode between pin 6 and pin 7: <br><br> | This way it is possible to use the matrix for instance as a variable resistor for a 555 timer chip in astable<br> mode between pin 6 and pin 7: <br><br> | ||
[[File:555_toy_matrix.jpg]]<br><br> | [[File:555_toy_matrix.jpg]]<br><br> | ||
Line 157: | Line 157: | ||
'''6) exploring different ways of implementing switches in a carpet''' | '''6) exploring different ways of implementing switches in a carpet''' | ||
The final idea after my matrix explorations is to modify our environment by implementing a similar structure in everyday objects.<br> | The final idea after my matrix explorations is to modify our environment by implementing a similar structure<br> in everyday objects.<br> | ||
I want to use a carpet as the main interface object as it is 1) easy to access and 2) something casual and omnipresent.<br> | I want to use a carpet as the main interface object as it is 1) easy to access and 2) something casual and<br> omnipresent.<br> | ||
The first problem is to install switches inside / underneath the carpet.<br> | The first problem is to install switches inside / underneath the carpet.<br> | ||
I solved this problem by using an anti-sliding mat that separates the contacts of the switches.<br> | I solved this problem by using an anti-sliding mat that separates the contacts of the switches.<br> | ||
Line 172: | Line 172: | ||
I also discovered that the size of the gaps inside the flexible grid plays a big role in connection to the performance of the switches.<br> | I also discovered that the size of the gaps inside the flexible grid plays a big role in connection to the performance<br> of the switches.<br> | ||
I tried different sizes until I found a size that responds to the size and pressure of an „average human footstep“. <br><br> | I tried different sizes until I found a size that responds to the size and pressure of an „average human footstep“. <br><br> | ||
edits