13. Input Devices¶
Loaf # 15 in Barcelona
Overview of the Week¶
Springtime in the Tarn, France
Went to Gaillac, France over the break to visit my son.
One of my dreams is to intern at a bakery like this
Reflections¶
Binge read Neil’s 1999 book When Things Start to Think.
Was interesting to hear about Neil’s time at the Media Lab. Lots here on usability, affordances and making computer interfaces disappear (abstraction).
I’ve been railing against the use of the blinking cursor command line interface and other low level interfaces that preference machines, not human cognitive capabilities in the work at Fabacademy. There’s a kind of techno-machismo that celebrates the obscure, the command line, openscad over Rhino (and Rhino has a pretty big learning curve for humans)
Make me think of these two books:
Don Norman advocates for technology with affordances that are easy for humans to grasp.
Rose advocates for computing to sink into the background in such a way that interfaces like the glass slab and the keyboard and mouse disappear.
Of course there is a difference between tools for people that make technology and have to work directly with the physical components of technology and those that use the product. But Fabacademy advocates for the democratic access to making and to combine the roles of producer and consumer. Techno-machismo goes against this.
Assignments¶
Individual Assignment
design, build, and connect wired or wireless node(s)
with network or bus addresses
Group Assignment
send a message between two projects
Evaluated On
Linked to the group assignment page
Documented what you learned from interfacing an input device(s) to microcontroller and how the physical property relates to the measured results
Documented your design and fabrication process or linked to previous examples.
Explained the programming process/es you used
Explained problems and how you fixed them
Included original design files and source code
Included a ‘hero shot/video’ of your board - it's [here]((../images/week12-input-devices/movie-voltage-sunduino.mp4))
Group Assignment¶
The group assignment is here
Individual Assignment¶
I’ve started a new process in learning at Fabacademy, and it is helping me a lot. I use an arduino to do the initial exploration of a sensor or process. After I get it working on the Arduino, I then switch to one of my SAMD boards and make the sensor or process work with it.
This allows me to learn to use software and hardware without spending so much time on the bugs that seem to be inherent in using the SAMD boards with the arduino interface. I used this assignment to learn to use sensors that I will need in my final project (temperature sensor and voltage sensing with a voltage divider).
The End Result¶
Hero Video
I used the Sunduino board I built for my final project.
click here to see a video of my board reading voltages from the lab’s variable power supply
Reading Voltage and Temperature - both require a voltage divider
Voltage Sensing¶
Sunduino board connected to the variable voltage supply through a voltage divider The Sunduino board has inputs for voltage that include a voltage divider on the board. Voltage is input through screw terminals on the bottom of the board.
I’ll be reading the solar panel voltage in my final project, it’s about 30 volts.
Temperature Sensing¶
I hooked a thermistor to the Sunduino with a voltage divider. The other resistor in the volatge divider was 10K.
Temperature and Voltage Sensing Using an Arduino¶
I hooked up the arduino to do both temperature and voltage sensing. I used two voltage dividers, one for voltage and one for temperature.
Ultrasonic Sensor¶
I got an ultrasonic distance sensor working on the arduino but did not document it. Code is below.
Ultrasonic Distance Sensor
define trigPin 3¶
define echoPin 2¶
void setup() { Serial.begin (9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); }
void loop() { float duration, distance; digitalWrite(trigPin, LOW); delayMicroseconds(2);
digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH); distance = (duration / 2) * 0.0344;
if (distance >= 400 || distance <= 2){ Serial.print(“Distance = “); Serial.println(“Out of range”); } else { Serial.print(“Distance = “); Serial.print(distance); Serial.println(” cm”); delay(500); } delay(500); }
Speaker¶
I got a speaker working on the arduino but did not document it.
Files¶
No make files this week - I used the Sunduino SAMD board I made in previous weeks. It had the voltage dividers I needed on board. I’ll use this board for my final project.