2013. 12. 10.

Final Project

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. 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


2013. 11. 19.

Project 2_Coding

Coding Program
- 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.*;

KetaiBluetooth bt;
boolean isConfiguring = true;
KetaiList klist;
ArrayList devicesDiscovered = new ArrayList(); 
ControlP5 cp5;
int margin = 150;
boolean ledState = false; 



import android.content.Intent;
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(); 
ControlP5 cp5;
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);
}

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; 
}
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;
}

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



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 01
Arduino 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/





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

Breakout Board for Electret Microphone (or Condenser microphone, Capacitor, Transistor)




Final Experiment

LED
1. Put on LED Mask
2. Speak into the Microphone
3. LED Mask is blinking based on voice pitch





Comp 1 from Hillary Kim on Vimeo.