brunch

You can make anything
by writing

C.S.Lewis

by 메이커k Mar 28. 2018

3/10 연결


#스마트폰

왜 스마트폰인가 스마트폰에 안에 전자 부품의 가치는 최신 고급 스마트폰이 일백만 원정도이다. 호환 아두이노가 일만원 라즈베리파이가 5만원 정도인것을 보면 분명 고급 장비이다. 대량 생산 되는 덕붐에 가격은 내려가고 대량 유통되고 있다. 더분에 부품부품 하나하나씩 샀으면 훨씬 비쌌을 장비이다. 요즘 스마트폰은 폰이란는 이름이 무색하게 전화를 용도는 극히 드물고, 스마트폰은 카톡과 인터넷 사용이 주용도이다. 사실 스마트폰에 내장된 센서는 훨씬 많다. 자이로 센서, 가속도 센서, gps, 카메라, 그것도 앞 뒤로 하나씩 있기도 한다.  적외선 송신기, 터치, 조도 센서 등등 많다. 심지어 일부 스마트폰은 지문,정맥인식,동공인식등 생체인식센서도 있다. 메모리도 보통 4기가를 넘어가고, 전체 성능도 펜티엄급 컴퓨터를 훌쩍 넘는다. 전체 부피도 작고,대용량 베터리도 있으며, wifi 도 되고 심지어 LTE데이망 사용이 가능하여 어디서든 인터넷도 된다. 누구나 가지고는 있으나 전화도 잘 하지 않고, 센서 장비의 총합체 덩어리를 더 잘  쓸 수는 없을까. 채팅만 하기에는 스마트폰이 아깝다.


device info 안드로이드앱을 통해서 본 센서 정보값들.



#아두이노

메이커 운동의 중심에 있는 아두이노, 온갖 센서, 모터를 연결하여 프로그램을 올리는 원하는 대로 움직이게 하는 장비이다. 버튼을 눌러 모터를 움직이게도 하고, 각종 센서 값을 받아 원하는 아웃풋을 만들어 내기도 한다.


#연결

스마트폰에 각종 센서가 있기는 하나 모터, 즉 바퀴를 달 수는 없다. 핸드폰 자체가 큰 디스플레이와 터치스크린으로 이루어 있어서이다. 스마트폰과 아두이노를 연결하여 데이터를 잘(?) 주고받으면 뭔가 만들어질 수 있을 것이다.

#시리얼통신

스마트폰과 아두이노를  usb serial로 연결하여, 아두이노에서 임으로 생성된 숫자 값을 스마트폰에서 받아 출력하는 모습이다.  


#아두이노 코드

매 초마다. tick 1, tick 2, tick 3을 시리얼 데이터로 출력한다.


serial_test.ino

static int counter = 0;

void setup() {

  Serial.begin(115200);

}

void loop() {

  Serial.print("Tick #");

  Serial.print(counter++, DEC);

  Serial.print("\n");

  if (Serial.peek()!= -1) {

    Serial.print("Read: ");

    do {

      Serial.print((char) Serial.read());

    } while (Serial.peek()!= -1);

    Serial.print("\n");

  }

  delay(1000);

}


# 안드로이드

스마트폰에서 데이터를 받으면 화면에 출력한다.


SerialConsoleActivity .java


    private void updateReceivedData(byte[] data) {

        final String message = "Read " + data.length + " bytes: \n"

                + HexDump.dumpHexString(data) + "\n\n";

        mDumpTextView.append(message);

        mScrollView.smoothScrollTo(0, mDumpTextView.getBottom());

    }


#참고

 https://github.com/mik3y/usb-serial-for-android.git

매거진의 이전글 1/10 thing
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari