Dato: 24.05.2019
Tid: 10 timer
Kategori: #interaksjon #prosjekt
Kurs/Prosjekt: IMT1006 fysisk og taktil, BIXD
Skapere: Solveig Engevold Gaustad, Eivind Årvik Gudmundsen & Ingeborg Skjelbostad
Materialer: Tekstil, vatt, fløyel, lim, matpapir, aluminiumfolie og bobleplast
Teknologi: Arduino og diverse sensorer + lyd&lys
Beskrivelse: Videreutvikling av prosjekt for Statped. Vi har laget en duk/et teppe man kan trykke på for å spille lyder, samt få lys til å blinke i takt med lydene.
Målgruppe: Barn/funksjonshemmede.
Interaksjonen: Brukeren eller brukerne trykker på sensorer for å fremkalle lyd og få lysene til å blinke. I tillegg er flere taktile elementer som matpapir, aluminiumsfolie og bobleplast lagt til.
Metodeverk: #Prototyping
Step-123: Begynte med å kode og programmere Arduino, loddet deretter sammen lys og sensorer til lengre ledninger, klippet ut firkanter av tekstil og sydde dette sammen til en duk/et teppe. La inn vatt for å gjøre duken/teppet litt mykere, og klippet hull til lysdiodene slik at de lå på utsiden av teppet/duken. Satte også inn høyttaler, og sydde disse fast til teppet. Denne utgaven av prototypen er gjort en del større og penere.
Video
Video 1: https://photos.app.goo.gl/6a3PBJ4jMx5zaVz79
Video 2: https://photos.app.goo.gl/yDQbx7LegiLe1k1e9
Code:
#include "pitches.h"
const int buttonPin = 2;
int buttonState;
const int speaker = 3;
//notes in the melody
int melody[] = {
NOTE_C3, NOTE_C4, NOTE_D2, NOTE_C4, NOTE_F4, NOTE_E4, NOTE_C4, NOTE_C4, NOTE_D4, NOTE_C4, NOTE_G4, NOTE_F4, NOTE_C4, NOTE_C4, NOTE_C5, NOTE_A4, NOTE_F4, NOTE_E4, NOTE_D4, NOTE_AS4, NOTE_AS4, NOTE_A4, NOTE_F4, NOTE_G4, NOTE_F4
};
//note durations: 4 = quarter note, 8 = eight note, etc.
int noteDurations[] = {
16, 16, 16, 16, 4, 2, 8, 8, 4, 4, 4, 2, 8, 8, 4, 4, 4, 4, 4, 8, 8, 4, 4, 4, 2,
};
void setup() {
Serial.begin(9600);
pinMode (9, OUTPUT);
pinMode (10, OUTPUT);
pinMode (11, OUTPUT);
pinMode (12, OUTPUT);
pinMode (13, OUTPUT);
pinMode (buttonPin, INPUT);
pinMode (speaker, OUTPUT);
}
void loop() {
buttonState = digitalRead(buttonPin);
Serial.println(buttonState);
if (buttonState == HIGH) {
digitalWrite (9, LOW);
} else {
for (int thisNote = 0 ; thisNote < 4 ; thisNote++) {
int randomLight1 = random(9, 14);
int randomLight2 = random(9, 14);
int randomLight3 = random(9, 14);
digitalWrite (randomLight1, HIGH);
digitalWrite (randomLight2, HIGH);
digitalWrite (randomLight3, LOW);
digitalWrite (random(9, 13), LOW);
int noteDuration = 1130/noteDurations[thisNote];
tone (3, melody[thisNote], noteDuration);
int pause = noteDuration * 1.275;
delay (pause);
noTone(3);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
}
}
//no need to repeat
}
Comments