SKIN ELECTRONICS¶
REFERENCE
Wearable Technology That Feels Like Skin
MICROCONTROLLER¶
As we have learned in past weeks, a microcontroller is an integrated circuit. Inside it contains a central processing unit (CPU), memory units (RAM and ROM) and input and output pins. It is like a microcomputer.
In the market we can find different microcontrollers each with different characteristics.
Some of them are,
- Adafruit It has a wide offer. They are specialized in the application of electronic products in textiles, so they have very good options for wearables, argonomic, small devices ...We can program it directly from the computer.
Some of his best-known plates are Flora, Gemma and Circuit Playground.
- Rasperry Pi Full computer. Much larger capacities than a microcontroller. Can have 1,2,3,4 GB memory and it also has USB input. its use is simpler than ATtiny.
- Sparkfun It only makes open hardware.
- Arduino It's more complex to use than Adafruit boards, does not have a usb connector and you have to use programmer. It also have very little memory and can do more simple operations than other boards, but it is small and consumes little energy.
It is very important to know what functions we want in our project, in order to choose the board that suits us best.Some of the points to consider are; How will it be fed, how many pins do we need, witch are gonna be the outputs and the imputs, if it has Bluetooth.
PROGRAMMING LANGUAGES¶
Programming language is the way to instruct the machine. A set of very simple instructions was created, with very fractional actions. The language we write when programming it's easier to understant for humans than this instruction set.
The compiler details the orders given in the programming language by the instructions in the instruction set.
The programming languages closest to the instruction set are called low level. Those who are closer to the human way of speaking are called high level.
If the language is high level, the compiler will have more work.
Many microcontrollers can be programmed with Arduino software. In the properties on the web it is named if there is this compatibility.
To program another board with the Aruino software, we first have to install the package of that board in the software.
ARDUINO REFERENCES¶
- PinMode, name if a pin is IN or OUT
- Digital Write Digital Read Read \ describe values without range
- Analog Read Analog Write \ describe values in a range or intermediate values
- Tone Notone, sound vibration
- Serial.read is an instruction for the arduino to read what we are sending
- Serial.available if someone wrote me something let me know
- Milis calculate the time that arduino is on in milli seconds. It keeps growing forever.
- Micros
- Delay quintet order, frozen in the state in which it is. Nor does it take information, it is completely stopped.
- Delay microseconds
- Random (5) example turn on random values between 0 5, turn on a random LED.
- Map, measures RangeS / analog write from 0 to 255.
- Serial.begin = communication protocols (serial).
- Serial.print does not enter.
- Serial.printlnenter
ACTUATORS¶
An actuator it is main energy source may be an electric current, hydraulic fluid pressure, or pneumatic pressure. When it receives a control signal, an actuator responds by converting the signal's energy into mechanical motion. An actuator is the mechanism by which a control system acts upon an environment.
The actuators express with an action the information collected by the sensors
Here are some cool ideas about how to apply the actions that actuators do to our projects.
Actuator actions may seem simple. Creativity lies in ingenuity when using them.
ACTUATOR EXERCISE¶
1- We will use Bekinox 12.1.2.100Z as an actuator. The first thing will be to record it with a form. You can see in the documentation of week 10 the steps to follow to do it.
Watch out to burn it. Being a very fine thread, it is easy this happen and break.
2-Look at the thread datasheet to know its resistance.
3-Calculate the distance of wire we need to have the resistance is needed. We also calculate the current that we must apply.
4- We check that the resistance of the thread we have calculated is true and there are no errors. To do this we will put the multimeter crocodiles at 46cm, the unit resulting from the calculations, and see if it effectively gives us the 14 ohms we need. We see that the calculations are correct.
5-We ride the circuit on the protoboard.
We gonna use the MOSFETt indicated on the Liza's slides. Calculate what type of Mosfet is needed is complex. MOSFET is a semiconductor device used for signal switching and amplification. The full name, Metal-Oxide-Semiconductor Field Effect Transistor (Metal Oxide Semiconductor Field Effect Transistor, MOSFET) is due to the constitution of the transistor itself.
It is the most common transistor. It acts like floodgates. The G leg (gate) is like a tap that lets current through the other legs.
The main parameters to keep in mind and that we can find in the datasheet are, pressure they support, current they can handle and the speed at which they close and to.
The function of the RESISTANCE in the circuit is to make sure that no electricity passes when it is low and that it goes to ground. It guarantees that the circuit is closed. It is a pull down.
DIODE, serves so that energy only flows in one direction, this measure being a safety measure. Watch out the direction of the diode is con the correct position.
6-We program the Arduino. We take as reference BLINCK example.
7-We make the last connections. Remember to connect the Arduino USB when the connections are already made. Finally connect the battery. This must be disconnected before moving any other cavle. Check that the thread does not overheat.
In the first test, the thread does not react. We think that the thread datasheet is not correct or maybe it needs more current. We fix it by shortening the distance in which we connect the crocodiles. Thus we decrease the resistance.
We can use the same circuit to work with thermoreactive ink
CAPACITIVE SENSORS¶
can detect and measure anything that is conductive or has a dielectric different from air. Many types of sensors use capacitive sensing, including sensors to detect and measure proximity, pressure, position and displacement, force, humidity, fluid level, and acceleration.
To understand it better, we can return to the metaphor of water buckets. Imagine that in the hose that connects them, we put a barrier.
The electrons will accumulate on one side of the hose. The amount that accumulates will depend on the thickness of the barrier, the voltage ...
When we touch the capacitor, it lowers the resistance by letting more electrons pass to the other side.
STEPS TO FOLLOW WHEN APROACH A NEW PROJECT¶
-
One of the first things to consider is energy. To know if a project is viable, approximate calculations must be made to get an idea of the energy that will be needed to start it up.
-
The two main points to consider about energy are; how it is produced and how it is stored.
-
The next step will be to draw a story board of the actions of our project. This will help us to have a clear mind when the development of the idea ends
-
Then we will go on to schematically detail these actions for. We will follow the circuit to detect errors.
-
Finally we will go to the program looking for arduino references actions that we do not know.
-
We will make the circuit.
ALGORITHM¶
Solve an action we want to execute. It divides it into small actions, if it is not a sequence or linear algorithm, it also lists how to make decisions depending on the circumstances.
PROJECT OF THE WEEK¶
Project
Our project of the week is a speaker programmed to sound in a different tone according to the button that is played.
It is focused on helping mute people to give simple imaginations in situations where lack of voice makes communication difficult.
Imagine how you can help a dumb copilot give directions to the driver while looking out the window. They only need a few minutes to agree on what tone means right, left or stop
The buttons would be on a bracelet where also would be an small buzzer.
STEP BY STEP¶
- 1 We start by drawing the actions
- 2 We calculate the energy that we will need to carry it out
- 3 We detail in steps everything that must be included in the programming
- 4 We program in Arduino
- 5 We make the circuit
Once we have verified that the basic parts are solved, we will develop the materials to be used.
MATERIALS
- Silicone cover strande
- Resistance: 56K
- Welder
- Cutter
- Rule
- Arduino kit
- Velcro, sticky both sides
- Copper paper
STEP BY STEP
Once you have collected all the necessary materials, the first step is to cut 3 samples of velcro that will be like your piano key and in the top cut 3 trips of the conductive paper. Then weld it with the silicone cover strande that will be connected to the battery. In my case i connected to the Arduino and decorated it with silver cardboard. And to finish, the final step was to draw the signals with a marker
ARDUINO CODE
#include <CapacitiveSensor.h>
/*
* CapitiveSense Library Demo Sketch
* Paul Badger 2008
* Uses a high value resistor e.g. 10M between send pin and receive pin
* Resistor effects sensitivity, experiment with values, 50K - 50M. Larger resistor values yield larger sensor values.
* Receive pin is the sensor pin - try different amounts of foil/metal on this pin
*/
CapacitiveSensor boton = CapacitiveSensor(4,2); // 10M resistor between pins 4 & 2, pin 2 is sensor pin, add a wire and or foil if desired
CapacitiveSensor boton2 = CapacitiveSensor(4,3); // 10M resistor between pins 4 & 2, pin 2 is sensor pin, add a wire and or foil if desired
CapacitiveSensor boton3 = CapacitiveSensor(4,5); // 10M resistor between pins 4 & 2, pin 2 is sensor pin, add a wire and or foil if desired
void setup()
{
Serial.begin(9600);
pinMode(9, OUTPUT); // Fija el pin 3 como salida.
}
void loop()
{
long valor = boton.capacitiveSensor(30);
long valor2 = boton2.capacitiveSensor(30);
long valor3 = boton3.capacitiveSensor(30);
if (valor > 40) { // check on performance in milliseconds
tone(9, 100); // Lanza señal a 261,63Hz por el pin 3 durante 250ms.
}
else if (valor2 > 40) {
tone(9, 400); // Lanza señal a 261,63Hz por el pin 3 durante 250ms.
}
else if (valor3 > 40) {
tone(9, 200); // Lanza señal a 261,63Hz por el pin 3 durante 250ms.
}
else{
noTone(9);
}
delay(10); // arbitrary delay to limit data to serial port
Serial.println(4,3);
}
SPECIAL THANKS to Ana Correa, and Giuseppe Marti :)