Introduction: TintPicker

Don't miss your favorite colors on the street. Tint Picker is a tangible color picker that allows you to save any colors in your life and build your color palette for the future design, painting, and fun. TintPicker is a remake of microphone toy which originally alters or exaggerates user's voice. We break down the toy and replace microphone and PCB controller with RGB sensor and Arduino Blend Micro respectively. Tint Picker sensors RGB/light value at its tip and send the data to application server through Bluetooth embedded in Arduino Blend Micro. Our web application visualizes the colors picked with colorful balls and presents your palette with recent colors.

This Instructable was made as part of the CS graduate course "Tangible Interactive Computing" at the University of Maryland, College Park taught by Professor Jon Froehlich. Please see http://cmsc838f-s15.wikispaces.com/ for more details.

Step 1: Prepare Materials

Step 2: Disassemble a Mircrophone Toy

I bought a microphone toy from Toysrus, which consists of a microphone, a circuit board, 3 buttons, and a speaker. This toy is originally used to amplify and alter user's voice. We only detach the microphone and re-use all the other parts. In order to reuse the other parts, we first disassemble the whole part and disconnect all the connections between the parts. You can do this simply by using a screwdriver and a nipper. We finally have all parts (3 buttons, circuit board, a speaker) detached and ready to remake.

Step 3: Hack the Electric Circuit and Buttons

We hack the existing circuit board to reuse 3 tactile buttons. After examining all the pins and wires on the board, we figured out 3 data pins that indicates the state of 3 buttons. By simply supplying VCC/GND to the circuit board and hook 3 data pins to Arduino board, we can sense whether each button is pushed.

Step 4: Connect Arduino/Board/Sensor/Speaker

Now we connect all the parts to Arduino board. We used Blend Micro which is small enough to fit into the toy and supports bluetooth communication. You can choose any three data pins to connect three buttons. The speaker signal should be connected to any analog data pin. The Flora color sensor should be connected to SDA and SCL pins for I2C communication between Arduino and the sensor.

Step 5: Assemble Parts and Put It in the Case

Now we bring all the electric parts back to the toy. As our Arduino(Blend Micro) is very tiny, we don't have to change the part's layout or move them. We can just put the Arduino into the space between the circuit board and the case. We also need to cut a small hole at the tip of the toy to ensure the color sensor receives the sufficient light reflected from a target object.

Step 6: Implement Arduino, Mobile App, and Web Application

[Applicationl Data Flow]

  1. TinkPicker senses the color of a target object and send it to mobile phone via Bluetooth commucation.
  2. Mobile application save the sensor data to SQL server by a simple AJAX request.
  3. Web application pulls the collected color data from SQL server and display it. It also provide physically-simulated visualization with those colors.

[Android, Implementation]

- Bluetooth communication with mobile application

- I2C communication with Flora color sensor

- Handling User interaction (button press)

- When "sensing button" is pressed, it retrieves data from the color sensor and send it to mobile application via Bluetooth communication

- When "on/off button" is pressed turn on/off the light of the color sensor

[Mobile App]

- Maintain Bluetooth(BLE) connection with Arduino (Blend Micro)

- Forward the color data received from Arduino to SQL server by using simple AJAX request

[Web Application]

- Pulls the color data from SQL server.

- Displays recently picked colors on the color palette.

- Visualizes physical simulation of balls with recently picked colors

- Add your own visualization or color palette using the color data

All Codes are availalble at https://github.com/ppp9494/2015S_MP3_TintPicker]

Step 7: Collect Your Tints