BlinkM Individual Assignment [Keyboard Trainer] – Daniel Collado
For my individual assignment using the BlinkM, I also used the Keyboard as input device.The application is a typing trainer, which calculates the time the user needs to type some colors given by the BlinkM LED.
The mechanic is the following:
- Run the application
- Immediatly, a random color will be displayed on the BlinkM LED
- The user must type the right letters as fast as possible
- If the letters have been typed correctly, the time spent on the task is displayed.
Right now the possible colors are red green and blue, but adding new colors wouldn’t be a problem. If any of the letters introduced on the keyboard are wrong, a message is displayed warinng the user about it, and the application ends.
Here you have a video of the testing:
MEA10732 Interface Prototyping (Puzzle Score)
During the design phase of our semester project, we were able to come up with a lot of ideas for teaching music to children. One of them qas the Puzzle Score, which basically was a set of pieces, each of them containing a note on a score, in a way that if you put them together side by side, you can create a simple score out of single notes. Magnets would keep the pieces together, since they don’t have a certain order, you can create whatever score you like. Once you have the desired score, you would be able to listen to it through a wireless device, which recognizes each element on the score.
We analyzed it according to Bill Verplank’s interaction design framework method:
Step by step:
- IDEA: Physical puzzle with musical teachings (Scores in this case).
- METAPHOR: Writing a score.
- MODEL: A limited set of pieces, but tons of combinations are possible when putting them together.
- DISPLAY: Squared pieces with single notes in a score piece.
- ERROR: Young children don’t easily understand the complexity of a score.
- SCENARIO: Teachers want children to learn about musical scores.
- TASK: (1)Put some pieces together. (2)Listen the result and go to step (1) if the result is not the desired.
- CONTROL: Select the pieces and put them together with your hands.
In order to get a 3D model of a piece, we used 3dStudio Max:
The piece is hollow, in order to leave some space for the magnets on the inner sides. We also added some curves to the surface, making a more fancy design and simulating the flow of the score.
We printed the model using the 3D printer:
CUI32 Individual assignment by Daniel Collado (peak detector)
For my CUI32 individual assignment I’ve decided to come up with a peak detector with some features:
- Displays temperature from 20 to 40 degrees ( each LED is one degree)
- If the temperature is stable (not changing) the LEDs remain green
- If the temperature is unstable (changing), the LEDs turn yellow
- The highest temperature displayed remains with a red LED
- If a new temperature peak is reached, the red LED is actualized to its new position and the speaker turns on for a second.
Code:
> 10 dim i, j
> 11 dim temp2
> 12 dim max
> 13 dim lasttemp
> 14 dim audio as pin rd1 for frequency output
> 20 dim cmd as byte, rsp[2] as byte
> 30 dim temp
> 40 dim leds[20] as byte
> 50 dim latch as pin rg9 for digital output open_drain
> 60 dim sync as pin rg6 for digital output open_drain
> 70 let latch = 0, sync = 0
> 71 let max = 0
> 72 let lasttemp = 1
> 80 while 1 do
> 81 let temp = rsp[0]
> 82 let temp2 = temp-20
> 83 print temp2
> 84 if temp2>max then
> 85 let max = temp2
> 86 let audio = 4000
> 87 else
> 88 let audio = 0
> 89 endif
> 90 let j = j+1
> 100 for i = 0 to leds#-1
> 101 if lasttemp==temp then
> 110 let leds[i] = 0x80+0x1*(i<=temp2%leds#)
> 111 let leds[max] = 0x80+0x4
> 113 else
> 114 let leds[i] = 0x80+0x5*(i<=temp2%leds#)
> 115 let leds[max] = 0x80+0x4
> 119 endif
> 120 next
> 130 qspi leds
> 140 let latch = 1, latch = 0
> 150 let cmd = 0
> 160 i2c start 0x48
> 170 i2c write cmd
> 180 i2c read rsp
> 190 i2c stop
> 191 let lasttemp = temp
> 230 sleep 300 ms
> 240 endwhile
> end
Concept video: