Final Project
- Arduino and Android device communication
Program
- Arduino
- Mit Appinventor
Device
- Arduino
- Smart Phone, Android
- HC-06 Bluetooth module
- LEDS
Final Project Result
2013. 12. 10.
2013. 12. 3.
Final Project_Experiment Failed
Final Project Experiment
- Arduino (Control Arduino)
- Processing (Application)
Experiment 1
- Used Arduino & Processing
- The Bluetooth module (HC-06) didn't connect to any of two programs
Experiment 2
- Arduino & MIT app inventor program
- MIT app inventor program and Arduino didn't not connected.
- When it connected, the application didn't work.
Experiment 3
- Arduino & ArduDroid Application
- ArduDroid Application worked fine but the LED didn't work
Conclusion
- Need to fix the code
- figure out how to connect between application and Arduino code. The Bluetooth connection had no problems of connecting.
- Need to have 2k
- Arduino (Control Arduino)
- Processing (Application)
Experiment 1
- Used Arduino & Processing
- The Bluetooth module (HC-06) didn't connect to any of two programs
Experiment 2
- Arduino & MIT app inventor program
- MIT app inventor program and Arduino didn't not connected.
- When it connected, the application didn't work.
Experiment 3
- Arduino & ArduDroid Application
- ArduDroid Application worked fine but the LED didn't work
Conclusion
- Need to fix the code
- figure out how to connect between application and Arduino code. The Bluetooth connection had no problems of connecting.
- Need to have 2k
2013. 11. 19.
Project 2_Coding
Coding Program
- Arduino (Control Arduino)
- Processing (Application)
Experiment
- LED Blinking using Smartphone
- Sub-Motor running
Processing
- Arduino (Control Arduino)
- Processing (Application)
Experiment
- LED Blinking using Smartphone
- Sub-Motor running
Processing
import android.content.Intent;
import android.os.Bundle;
import ketai.net.bluetooth.*;
import ketai.ui.*;
import ketai.net.*;
import controlP5.*;
import android.os.Bundle;
import ketai.net.bluetooth.*;
import ketai.ui.*;
import ketai.net.*;
import controlP5.*;
KetaiBluetooth bt;
boolean isConfiguring = true;
KetaiList klist;
ArrayList devicesDiscovered = new ArrayList();
boolean isConfiguring = true;
KetaiList klist;
ArrayList devicesDiscovered = new ArrayList();
ControlP5 cp5;
int margin = 150;
boolean ledState = false;
import ketai.net.*;
import controlP5.*;
int margin = 150;
boolean ledState = false;
import android.content.Intent;
import android.os.Bundle;
import ketai.net.bluetooth.*;
import ketai.ui.*;
import android.os.Bundle;
import ketai.net.bluetooth.*;
import ketai.ui.*;
import controlP5.*;
KetaiBluetooth bt;
boolean isConfiguring = true;
KetaiList klist;
ArrayList devicesDiscovered = new ArrayList();
boolean isConfiguring = true;
KetaiList klist;
ArrayList devicesDiscovered = new ArrayList();
ControlP5 cp5;
int margin = 150;
boolean ledState = false;
ARDUINO
int margin = 150;
boolean ledState = false;
ARDUINO
#include <SoftwareSerial.h>
SoftwareSerial BTSrial(2, 3); // RX, TX
int led = 13;
char chByte = 0;
int servoPin = 9;
Servo servo;
int angle = 0;
String strInput = "";
String strON = "ON";
String strOFF = "OFF";
void setup() {
pinMode(led, OUTPUT);
BTSrial.begin(9600);
servo.attach(servoPin);}
void loop() {
while (BTSrial.available() > 0) {
chByte = BTSrial.read();
if(chByte =='\r'){
if(strInput.equals(strON)) {
digitalWrite(led, HIGH);
}
if(strInput.equals(strOFF)){
digitalWrite(led, LOW);
}
strInput="";
}
else{
strInput += chByte;}{
for (angle = 0; angle < 180; angle++) {
servo.write(angle);
delay(15);}
for (angle = 180; angle > 0; angle--) {
servo.write(angle);
delay(15);
}
}
}
void onCreate(Bundle savedInstanceState)
{ super.onCreate(savedInstanceState);
bt = new KetaiBluetooth(this);
}
void onActivityResult(int requestCode, int resultCode, Intent data)
{ bt.onActivityResult(requestCode, resultCode, data);
{ super.onCreate(savedInstanceState);
bt = new KetaiBluetooth(this);
}
void onActivityResult(int requestCode, int resultCode, Intent data)
{ bt.onActivityResult(requestCode, resultCode, data);
}
void setup() {
size(displayWidth, displayHeight); orientation(PORTRAIT);
void setup() {
size(displayWidth, displayHeight); orientation(PORTRAIT);
bt.start();
isConfiguring = true;
PFont font = createFont("Arial", 40); ControlFont cf = new ControlFont(font);
int buttonSize = min(width, height) - 2 * margin;
cp5 = new ControlP5(this);
Button btnLED = new Button(cp5, "buttonLED");
btnLED.setPosition(margin, (height - buttonSize) / 2);
btnLED.setSize(buttonSize, buttonSize);
btnLED.setCaptionLabel("Turn ON the LED");
btnLED.getCaptionLabel().setControlFont(cf);
btnLED.getCaptionLabel().toUpperCase(false);
btnLED.getCaptionLabel().alignX(CENTER);
}
void draw() {
if (isConfiguring) {
klist = new KetaiList(this, bt.getPairedDeviceNames());
isConfiguring = false;
isConfiguring = true;
PFont font = createFont("Arial", 40); ControlFont cf = new ControlFont(font);
int buttonSize = min(width, height) - 2 * margin;
cp5 = new ControlP5(this);
Button btnLED = new Button(cp5, "buttonLED");
btnLED.setPosition(margin, (height - buttonSize) / 2);
btnLED.setSize(buttonSize, buttonSize);
btnLED.setCaptionLabel("Turn ON the LED");
btnLED.getCaptionLabel().setControlFont(cf);
btnLED.getCaptionLabel().toUpperCase(false);
btnLED.getCaptionLabel().alignX(CENTER);
}
void draw() {
if (isConfiguring) {
klist = new KetaiList(this, bt.getPairedDeviceNames());
isConfiguring = false;
}
public void controlEvent(ControlEvent theEvent)
{
String controllerName = theEvent.controller().name();
public void controlEvent(ControlEvent theEvent)
{
String controllerName = theEvent.controller().name();
if(controllerName == "buttonLED")
{Button btn = (Button)theEvent.controller();
if(ledState){ledState = false;
btn.setCaptionLabel("Turn ON the LED");
byte[] data = {'O', 'F', 'F', '\r'};
bt.broadcast(data);}
else{
ledState = true;
btn.setCaptionLabel("Turn OFF the LED");
byte[] data = {'O', 'N', '\r'};
bt.broadcast(data);
void onKetaiListSelection(KetaiList klist)
{String selection = klist.getSelection();
bt.connectToDeviceByName(selection);
klist = null;
}
{Button btn = (Button)theEvent.controller();
if(ledState){ledState = false;
btn.setCaptionLabel("Turn ON the LED");
byte[] data = {'O', 'F', 'F', '\r'};
bt.broadcast(data);}
else{
ledState = true;
btn.setCaptionLabel("Turn OFF the LED");
byte[] data = {'O', 'N', '\r'};
bt.broadcast(data);
void onKetaiListSelection(KetaiList klist)
{String selection = klist.getSelection();
bt.connectToDeviceByName(selection);
klist = null;
}
2013. 11. 12.
Project 2_ Application Concept Drawing
Application Concept
- Using MIT App Inventor for Android
Experience
- application using MIT app inventor program
Reference
http://appinventor.mit.edu/explore/content/hellopurr.html
Problem
- Had problem with Blocks Editor in MIT App Inventor program
- Connection between Arduino and Android
- Using MIT App Inventor for Android
Experience
- application using MIT app inventor program
Reference
http://appinventor.mit.edu/explore/content/hellopurr.html
Problem
- Had problem with Blocks Editor in MIT App Inventor program
- Connection between Arduino and Android
2013. 11. 5.
Project 2_ Concept Drawing
Concept Drawing
- Shirt connected to smart phone application.
- Control the shirt using the smart phone application.
- Click the on or off button on the application, holes on the shirt will popping out.
Experiment 01Arduino controlled by Android program
Discover
- found examples Arduino Android
- Needed bluetooth modem (wireless)
Example
Arduino- Control DC Motor via Bluetooth
2013. 10. 29.
Project 2_Concept
Concept
- Relationship between human verbal language and ASCII code (Computer Language)
- To modify and understanding language and a new approach to digital design formats.
Experiment 01
LED Mask using Arduino
Discover
- Analog to Digital language using Arduino
- Sound pitch (High/Low) converts to LED light
- Connection between humanity and digital word
- Fashion area
Development
- Using Arduino technology like as project 1
- LED light < Fan / Solenoids
- Sound < Controlling by Application
- Specific: Fashion > T-shirts
Research/Reference
http://www.indiegogo.com/projects/annikken-andee-an-easy-link-between-arduino-and-android
http://www.instructables.com/id/How-control-arduino-board-using-an-android-phone-a/
http://www.appszoom.com/android_applications/education/arduino-bluetooth-controller_hucwo.html
http://stackoverflow.com/questions/19457629/gamepad-control-for-processing-android-to-control-arduino-robot
MIT's APP
http://forum.arduino.cc/index.php?topic=148853.0
http://blog.arduino.cc/2013/07/18/how-to-control-arduino-board-using-an-android-phone/
- Relationship between human verbal language and ASCII code (Computer Language)
- To modify and understanding language and a new approach to digital design formats.
Experiment 01
LED Mask using Arduino
Discover
- Analog to Digital language using Arduino
- Sound pitch (High/Low) converts to LED light
- Connection between humanity and digital word
- Fashion area
Development
- Using Arduino technology like as project 1
- LED light < Fan / Solenoids
- Sound < Controlling by Application
- Specific: Fashion > T-shirts
Research/Reference
http://www.indiegogo.com/projects/annikken-andee-an-easy-link-between-arduino-and-android
http://www.instructables.com/id/How-control-arduino-board-using-an-android-phone-a/
http://www.appszoom.com/android_applications/education/arduino-bluetooth-controller_hucwo.html
http://stackoverflow.com/questions/19457629/gamepad-control-for-processing-android-to-control-arduino-robot
MIT's APP
http://forum.arduino.cc/index.php?topic=148853.0
http://blog.arduino.cc/2013/07/18/how-to-control-arduino-board-using-an-android-phone/
2013. 10. 15.
Project 1_Final
Final Project
- Analog vs Digital
- Relationship between Human Verbal language & ASCII code (Computer Language)
- Inspired from the Tin-Cup Telephone
Title
LED Mask
Program
Aduiro
Material
Arduino Uno
330 Resistor
Jumper wire
Jumper wire
Breakout Board for Electret Microphone (or Condenser microphone, Capacitor, Transistor)
Final Experiment
LED
1. Put on LED Mask
2. Speak into the Microphone
Comp 1 from Hillary Kim on Vimeo.
2013. 10. 1.
Project 1_ concept II
PROJECT
ONE
Digitalizing
Hand Signal
BACKGROUND
The gestures are a form of nonverbal communication in which visible
bodily actions are used to communicate important message. It includes movement
of the hands, face, or other parts of the body.
OBJECTIVE
To modify and understanding symbolic hand signals and a new approach to
digital design formats.
CONCEPT
The hand signal is nonverbal communication. Using the hand signal, we
send important messages to other without any words. By looking at it, we can
receive messages even so far away from the messenger. This hand signal brings questions
into relationship between verbal communication and nonverbal communication.
If,
Hand signal is converting to digital sound, how that could be modifying in digital
media design?
METHOD
STEP ONE
Using the Kinect, determine the hand signal
STEP TWO
X,Y points à
Frequency (Amplitude/Time)
- Using the method of frequency.
- Looking at the Hand signal pattern like as a frequency graph.
STEP THREE
VVVV
Import: frequency graph (Hand signal pattern)
Output: convert to digital audio.
2013. 9. 24.
Project 1_ concept

Analog & Digital
Tin can telephone
“A tin can telephone is a type of acoustic (non-electrical) speech-transmitting
device made up of two tin cans, paper cups or similarly shaped items attached to
either end of a taut string or wire. It is a form of mechanical telephony,
where sound is converted into and then conveyed by vibrations along a liquid or solid medium, and then reconverted
back to sound.” (wikipedia)
Concept:
Transmitting analog sound signal to digital signal language.
Analog sound through tin can > translate to > digital signal language
피드 구독하기:
글 (Atom)




















